anúncios

terça-feira, 23 de junho de 2020

Guia de sobrevivência do GIT e Git Flow

GIT

Primeiro é necessário ressaltar a diferença entre GIT e Github, Bitbucket, Gitlab.

O GIT é o sistema de controle de versão e o Github, Bitbucket, Gitlab, são plataformas para hospedar projetos de desenvolvimento por meio de repositório público ou privado, que usa o GIT como base.

Escolhendo a plataforma que irá hospedar o seu projeto no repositório remoto, crie uma conta, se ainda não tiver, gera o par de chaves privada e pública, adicione a chave pública no seu perfil da plataforma escolhida, crie um repositório e por fim o primeiro commit. Calma, que irei explicar cada item passo a passo.

Nesse artigo é explicado no Github por ser mais popular na comunidade opensource.

1. Acesse https://github.com , crie uma conta se ainda não tiver.

2. Gere um par de chaves privada e pública com SSH.

No Windows 10, com o GitBash que emula o terminal Bash do Linux, pode gerar o par de chaves privada e pública, usando o mesmo comando utilizado no Linux (qualquer distro).

$ ssh-keygen

Responda as perguntas que é solicitado, no final são gerados par de chaves privada e pública no arquivo oculto do seu usuário.

chave pública: ~/.ssh/id_rsa.pub
chave privada: ~/.ssh/id_rsa

3. Copiar o conteúdo do arquivo ~/.ssh/id_rsa.pub na configuração do perfil na plataforma escolhida, no caso do Github é https://github.com/settings/keys

$ cat ~/.ssh/id_rsa.pub

4. Colar o conteúdo no campo Key e defina um nome no campo Title, como por exemplo: máquina-casa, máquina-empresa.

Ao salvar, confirma com sua senha da conta.

5. Crie um repositório ao clicar em "+" > "New Repository"

6. Define um nome para o repositório em "Repository name"

7. Marque "Public" ou "Private" conforme a sua escolha do repositório de domínio público ou privado.

8. Clique no botão "Create repository"

9. Agora na sua máquina, crie um diretório para o projeto se não existir ou pode utilizar o diretório existente do seu projeto, adicione o repositório remoto.

10. Acesse o diretório do projeto e segue:

Apenas na primeira vez, execute o comando git init para inicializar o repositório local do Git. O próximo passo é adicionar o repositório remoto correspondente a alguma plataforma Github, Bitbucket, Gitlab ou outro servidor no modo Git Bare . Nesse artigo é utilizado o Github.

11. Adicionando o repositório remoto

É possível adicionar o repositório remoto de duas formas: protocolo https ou ssh. A diferença é que usando o protocolo ssh e com a chave pública adicionada no perfil do Github/Bitbucket/Gitlab ao fazer o push não é solicitado a senha, porém conforme foi gerado o par de chaves privada e pública, uma das perguntas é uma senha secreta corresponde a chave, isso é opcional, o default é sem, mas se caso criou, será solicitado essa senha secreta, ok?

$ git remote add origin git@github.com:< SEU-USERNAME >/< SEU-REPOSITORIO >.git

Inicializa o repositório local no diretório do projeto.

$ git init

12. Adicionando informações nome, e-mail, coloque com suas informações

$ git config --global user.name "Nome completo"
$ git config --global user.email nome.sobrenome@dominio.com

13. Adicionar os arquivos na fila de commit

$ git add .

14. Commit com comentário, se for o primeiro commit, é tradicional colocar "first commit", mas pode colocar qualquer comentário, nos demais commits é interessante colocar comentário relevantes sobre o que foi feito

$ git commit -m "first commit"

15. Enviar os arquivos para o repositório remoto

$ git push origin master

Git Flow

Manter as branches master e develop como principais no repositório do projeto, a branch master é de produção e a branch develop é que estar em desenvolvimento.

As features novas do projeto são issues publicadas no repositório, então cria-se uma branch com o id da issue a partir da branch develop sempre atualizada.

Na prática, fica assim:

Fluxo de Git-Flow

$ git checkout develop
$ git pull origin develop
$ git checkout -b < id-issue >

Faz a codificação na branch da issue e ao terminar, faz o commit e push nessa branch. Em seguida, faz o Pull Request da branch da issue para branch develop e outro desenvolvedor faz o Code Review do que foi feito e estando OK, faz o merge para develop.

git add .
git commit -m "comentário resumido do que foi feito na issue"
git push origin

No final da Sprint que geralmente é de uma ou duas semanas e após testado e OK na develop, faz o merge da branch develop para master.

Segue o fluxo na próxima issue.

Pronto, por meio deste artigo foi possível aprender sobre o Git, plataformas Github, Bitbucket, Gitlab e o fluxo de desenvolvimento utilizando o Git Flow.

Feito!

segunda-feira, 22 de junho de 2020

Conhecendo P5JS

O p5.js é uma biblioteca JavaScript para codificação criativa, com foco em tornar a codificação acessível e inclusiva para artistas, designers, educadores, iniciantes e qualquer outra pessoa. O p5.js é gratuito e de código aberto, porque acreditamos que o software e as ferramentas para aprendê-lo devem estar acessíveis a todos.

Usando a metáfora de um esboço, o p5.js possui um conjunto completo de funcionalidades de desenho. No entanto, você não está limitado à sua tela de desenho. Você pode pensar em toda a página do navegador como seu esboço, incluindo objetos HTML5 para texto, entrada, vídeo, webcam e som.

Para saber mais verifique a documentação

domingo, 21 de junho de 2020

Instalando o Docker com WSL2 no Windows 10

Em 2016, a Microsoft anunciou a possibilidade de rodar o Linux dentro do Windows 10 como um subsistema e o nome a isto foi dado de WSL ou Windows Subsystem for Linux.

O acesso ao sistema de arquivos no Windows 10 pelo Linux era simples e rápido, porém não tinhamos uma execução completa do kernel do Linux e outros artefatos nativos e isto impossibilitava a execução de várias tarefas no Linux, uma delas é o Docker.

Em 2019, a Microsoft anunciou o WSL2, com uma dinâmica aprimorada em relação a 1ª versão:

  • Execução do kernel completo do Linux
  • Melhor desempenho para acesso aos arquivos dentro do Linux
  • Compatibilidade completa de chamada do sistema

O WSL2 já estava disponível na versão Insider do Windows, mas na última semana de maio de 2020 passou a estar disponível em final release na atualização 20.04 do Windows 10.

Assim, o WSL2 permitiu que executemos Docker no Linux usando o Windows 10.

Compare as versões: https://docs.microsoft.com/pt-br/windows/wsl/compare-versions

Vamos entender como usar o Docker com o WSL 2.

Antes de começarmos o que você precisa ter para rodar o WSL:

  • Windows 10 Home ou Professional
  • Uma máquina compatível com virtualização
  • Pelo menos 4GB de memória RAM
  1. Verifique a versão do seu Windows, se já for a versão 20.04 ótimo, estamos prontos, senão precisamos instalar a atualização para instalar a 20.04.
    https://www.microsoft.com/pt-br/software-download/windows10
    O software da atualização verificará se sua máquina é compatível com a atualização. A atualização poderá levar muito tempo, pra mim levou mais de 1 hora para atualizar.
  2. Instale a última atualização do kernel do WSL 2:
    https://docs.microsoft.com/pt-br/windows/wsl/wsl2-kernel
    Basta instalar, não precisa de mais nada
    Recomendar este tutorial e colocar no Youtube Install Windows Subsystem for Linux (WSL) on Windows 10
  3. Habilite o recurso do WSL no Windows
    Digite no PowerShell em modo administrador:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    Reinicie sua máquina somente por segurança.
  4. Atribua a versão default do WSL para a versão 2
    wsl --set-default-version 2
  5. Escolha sua distribuição Linux no Windows Store
    Ao iniciar a versão, você deverá criar um usuário que poderá ser o mesmo da sua máquina e uma senha, este será o usuário root da sua instância WSL.
  6. Alterar a versão do WSL de uma distribuição
    wsl --set-version
  7. Dicas:
    • Atalho no menu iniciar Ou executando C:\Windows\System32\wsl.exe
    • O sistema de arquivos do Windows é acessível em /mnt
    • É possível acessar o sistema de arquivos do Linux pela rede do Windows digite \\wsl$
    • É possível acessar uma pasta digitando explorer.exe
    • É possível abrir uma pasta com o VSCode digitando code .
    • É possível acessar executáveis do Windows no terminal do Linux.
  8. Instale o Docker Desktop versão maior ou igual 2.3
  9. Habilite o WSL no Docker Desktop
    Vá em Resources/WSL Integration
  10. Teste o seu Docker
    Execute o comando docker run ou docker-compose up
  11. Por padrão o WSL2 pode utilizar “recursos de forma ilimitada” na sua máquina
    Se você quiser limitar os recursos, crie um arquivo .wsconfig na pasta do seu usuário
    https://docs.microsoft.com/pt-br/windows/wsl/wsl-config#configure-global-options-with-wslconfig
    Depois de configurar execute no power shell:
    wsl --shutdown
    (vai reiniciar o Docker também e vai aparecer uma mensagem se você quer iniciar o Docker
  12. As duas distribuições WSL do docker
    https://www.docker.com/blog/new-docker-desktop-wsl2-backend/
  13. Liberar memória no host
    https://linux-mm.org/Drop_Caches
    echo 1 | sudo tee /proc/sys/vm/drop_caches
    echo 3 | sudo tee /proc/sys/vm/drop_caches
  14. Use BuildKit and multi-stage builds
    Acrescente export DOCKER_BUILDKIT=1 no .profile do seu usuário

Referências:

Guia rápido de instalação do WSL2

Feito!

quarta-feira, 10 de junho de 2020

Executando primeira aplicação Electron

O que é Electron?

Electron é um framework de código aberto criado por Cheng Zhao, e agora desenvolvido pelo GitHub. Permite desenvolver aplicações para desktop com interface gráfica usando componentes frontend e backend originalmente criados para aplicações web: Node.js para o backend e Chromium para o frontend.

Estrutura de uma aplicação Electron

Um aplicativo Electron básico consiste em três arquivos: package.json (metadata), main.js (código) e index.html (ambiente gráfico com frontend) e o framework é fornecido pelo arquivo executável (electron.exe no Windows, electron.app no macOS e electron no Linux).

Se desejar adicionar ícones customizados podem renomear ou editar o arquivo executável.

O arquivo mais importante é o package.json. Nele mantém as informações sobre os pacotes. As informações mais comuns são:

  • "name", nome da aplicação;
  • "version", versão da aplicação;
  • "main", nome do script principal da aplicação;

package.json é um arquivo npm.

Aplicações que usam Electron

Um número significativo de aplicativos desktop é construído com o Electron, dentre os quais:

  • Atom
  • GitHub Desktop
  • Visual Studio Code
  • Discord
  • Entre outros

Criando primeira aplicação com Electron

Ps: Necessário instalar antes o Nodejs

Crie um diretório para a aplicação Electron, acesse esse diretório e execute npm init

$ mkdir -p electron/first-app
$ cd electron/first-app
$ npm init

O NPM guiará o arquivo package.json com base das perguntas solicitadas. O script especificado por main é onde inicializa o aplicativo.

package.json

{
  "name": "first-app",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "Reginaldo",
  "license": "MIT"
}

Instalar o Electron de forma global

$ sudo npm install -g electron

main.js

const { app, BrowserWindow } = require('electron')

function createWindow () {
// Create the browser window.
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: { nodeIntegration: true
}
})

// and load the index.html of the app.
win.loadFile('index.html')

// Open the DevTools.
//win.webContents.openDevTools()
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(createWindow)

// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit()
}
})

app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.


Finalmente o arquivo index.html de exemplo

< !DOCTYPE html>
< html>
< head>
< meta charset="UTF-8">
< title>Hello World!

< meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
< /head>
< body>

Hello World!


We are using node , Chrome , and Electron .
< /body>
< /html>

Executar a aplicação Electron

$ npm start

Feito!

terça-feira, 9 de junho de 2020

Conhecendo o Google Colab

O que é Google Colab?

O Google Colab (Colaborativo) é um serviço de nuvem gratuito hospedado pelo Google para incentivar a pesquisa de Aprendizado de Máquina e Inteligência Artificial, onde muitas vezes a barreira para o aprendizado e o sucesso é a exigência de um tremendo poder computacional.

Para quem pretende explorar o Machine Learning em simulações com enorme conjunto de dados, o Google Colab é uma solução ideal para você.

Benefícios do Colab

  • Suporte para Python 2.7 e Python 3.6;
  • Aceleração de GPU gratuito;
  • Bibliotecas pré-instaladas: Todas as principais bibliotecas Python, como o TensorFlow, o Scikit-learn, o Matplotib, entre muitas outras, estão pré-instaladas e prontas para serem importadas;
  • Construído com base no Jupyter Notebook;
  • Recurso de colaboração (funcionna como o Google Docs): o Google Colab permite que os desenvolvedores usem e compartilhem o Jupyter Notebook entre si sem precisar fazer download, instalação ou executar qualquer coisa que não seja um navegador;
  • Suporta comandos bash;
  • Os Notebooks do Google Colab são armazenados no GDrive.

Criando um Notebook com o Colab

  1. Acessar com uma conta logada do Google o Google Colab
  2. Clique em "novo notebook" e selecione Notebook Python 2 ou Notebook Python 3

OU

  1. Acessar com uma conta logada do Google o Google Drive;
  2. Crie um novo diretório para o projeto;
  3. Clique em Novo > Mais > Colaboratório

Configurando o acelerador de GPU

O hardware padrão do Google Colab é a CPU ou pode ser GPU.

Clique em Editar > Configuraçoes do Notebook > Acelerador de hardware > GPU

OU
Clique em Runtime > Hardware Accelerator > GPU

Executando uma célula

Certifique-se de que o runtime esteja conectado. O bloco de anotações mostra uma marca verde e "Conectado" no canto superior direito;

Existem várias opções de tempo de execução em "Runtime".

OU
Para executar a célula atual, pressione SHIFT + ENTER.

Agora, pode simular um conjunto de dados e aplicar técnicas de Machine Learning no Google Colab.

Referências



Python Data Sciense Handbook

Feito!

domingo, 7 de junho de 2020

Calculando sub-rede IPv4 e IPv6 com sipcalc

O que é sipcalc?

O sipcalc é um projeto de código aberto com licença GNU/GPL, que pode ser instalado em sistemas UNIX like, assim como nas distros Linux.

Qual a função do sipcalc?

É uma calculadora de sub-rede (VLSM) no ipv4 e ipv6.

O aplicativo sipcalc recebe como parâmetro um endereço IP e uma másca de rede (netmask) e exibe as informações sobre a rede.

Instalação do sipcalc nas principais distros Linux


Debian, Ubuntu e afins

$ sudo apt install sipcalc

Fedora

$ sudo dnf install sipcalc

Arch, Manjaro

$ sudo pacman -S sipcalc

Utilização do sipcalc

$ sipcalc 192.168.1.2/23 192.168.1.50

Também é possível exibir informações da rede de um domínio, como no exemplo abaixo:

$ sipcalc -d www.google.com.br

E no IPv6?

Visualizando uma classe IPv6

$ sipcalc 2001:0DB8::/32

Dividindo uma classe IPv6

$ sipcalc -S /33 2001:0DB8::/32

Com a opção -S podemos subdividir nossa classe /32 em quantas classes forem necessárias, vejamos o exemplo abaixo:

$ sipcalc -S /64 2001:0DB8::/32

Nesse caso teremos mais de 65 mil classes possíveis contendo mais de 4 Bilhoẽs de endereços ao todo, ou seja, um IPv4 completo.

Com os resultados obtidos conseguimos visualizar onde a rede inicia e termina, lembrando que no IPv6 não existe porção de rede e porção de host.

Podemos também gerar endereços para DNS reverso, conforme segue no exemplo abaixo:

$ sipcalc -r 2001:0DB8:/32

Referência

https://github.com/sii/sipcalc

Feito!

sábado, 6 de junho de 2020

Crie seu próprio Dropbox com o Nextcloud

O que é Nextcloud?


Nextcloud tem funcionalidade muito semelhante ao Dropbox, com a diferença de ser código aberto, e assim permitir que qualquer pessoa instalar e operá-lo sem custo em um servidor privado. Nextcloud é um fork do projeto ownCloud.

O objetivo deste post é de apresentar a forma de usar o Nextcloud no Docker, pela imagem oficial disponível no Docker Hub . No entanto, se ainda não tiver o Docker instalado, verifica o howto de instalação do Docker e Docker-compose no Linux .

Instalação do Nextcloud no Docker

$ docker container run -d -p 8080:80 -v $HOME/nextcloud:/var/www/html nextcloud

Unable to find image 'nextcloud:latest' locally
latest: Pulling from library/nextcloud
afb6ec6fdc1c: Pull complete
3d895574014b: Pull complete
c309fdad6410: Pull complete
c201f6a5d6f9: Pull complete
e87f853892aa: Pull complete
998b2113b400: Pull complete
b3c0b4710d3b: Pull complete
c79fb2b38801: Pull complete
30aa6f0dd423: Pull complete
8af9a337c36d: Pull complete
64ec85e06910: Pull complete
606f88b4f608: Pull complete
845e768a44c5: Pull complete
232824f4bf64: Pull complete
e62b2704afd5: Pull complete
3fb461b8f323: Pull complete
5a8c7e728bd1: Pull complete
840cc11060b3: Pull complete
26156e8cea36: Pull complete
2413ad1c2967: Pull complete
56e02c3217ca: Pull complete
Digest: sha256:b1bf8942e85c76aa86362a9ec7eef7ac12ac3c0f3106dd6a0ee89871186dff73
Status: Downloaded newer image for nextcloud:latest
92d2a3be6ec67012df6441d8350a9010ab772662a2970834e3c914e09b8c4e86


$ docker container ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92d2a3be6ec6 nextcloud "/entrypoint.sh apac…" 14 minutes ago Up 14 minutes 0.0.0.0:8080->80/tcp suspicious_mendel

No browser acessar http://localhost:8080

Na primeira vez é feito o cadastro com usuário e senha, nas próximas vezes só acessar com as credenciais que forem cadastradas.

Confira o volume no diretório definido mapeando entre a máquina x container nextcloud.

Feito!

segunda-feira, 1 de junho de 2020

Conhecendo o Brave

O que é Brave?

Brave é um browser, software livre e de código aberto [4], desenvolvido pela Brave Software Inc., e baseado no browser Chromium, focado em privacidade e segurança online, que bloqueia por default anúncios e rastreamento virtual. Também pode navegar na rede TOR com um simples atalho.

Desde 2018, o Brave suporta: Windows, Linux, macOS, Android e iOS.

O Brave permite que os usuários suportem os sites que visitam usando BAT (Basic Attention Token) [1]. Os usuários podem ganhar BAT assistindo anúncios ou acrescentando fundos á sua carteira recebem 70% da receita gerada. Os 30% restantes são divididos entre a Brave e o publicador do anúncio [2].

A plataforma de troca de anúncios Basic Attention Token da Brave Software recebeu investimento da Danhua Capital, Digital Currency Group, Foundation Capital, Founders Fund, Huiyin Blockchain Venture Pantera Capital e Propel Venture Partners [3].

Instalação do Brave Browser nas principais distros Linux

Debian e derivados


sudo apt install apt-transport-https curl
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser

RHEL/CentOS, Fedora


sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install brave-browser

openSUSE


sudo zypper install curl
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo zypper addrepo https://brave-browser-rpm-release.s3.brave.com/x86_64/ brave-browser
sudo zypper install brave-browser

Atalho para abrir o Browser Brave no modo TOR

Para abrir o Browser Brave no modo TOR, basta usar a combinação de teclas: Alt+Shift+N


Referências


[1] Keck, Catie. Brave Wants to Destroy the Ad Business by Paying You to Watch Ads in its Web Browser

[2] Brave Ads History Collection Privacy Policy

[3] Basic Attention Token

[4] Repositório brave-browser no Github

[5] https://brave.com

Feito!