anúncios

segunda-feira, 23 de maio de 2022

Uma forma simples de ler os livros da Amazon

Alguns pensam que para ler livros digitais comprados na Amazon é obrigatório ter o dispositivo Kindle, mas nesse post apresento o Kindle Cloud Reader, que ao logar com a sua conta Amazon no browser em qualquer SO (Windows, GNU/Linux, macOS) e também o aplicativo Kindle, pode ler os livros normalmente.

Para quem é uma pessoa sovina, já pode economizar com o dispositivo Kindle 😂

Como acessar o Amazon Cloud Read

Acesse no browser https://read.amazon.com/ logar com a sua conta Amazon e os livros digitais que comprou estará na lista, basta clicar em um para leitura e fazer as marcações.

Também disponível para Android e iOS

Feito!

segunda-feira, 9 de maio de 2022

Conhecendo o PyScript

O que é PyScript?

PyScript é um projeto que executa scripts em Python diretamente na página web.

Sabemos que Python é uma das linguagens de programação mais populares pela sua facilidade de aprendizado e também ser considerada a caligrafia do programador, dos que não tem costume de indentar códigos.

Também o uso do Python cresceu bastante em Data Sciense (Ciência de Dados), incluindo Machine Learning e Deep Learning.

Assim surgiu o projeto PyScript, como uma biblioteca JavaScript que permite executar scripts Python na página web, inicialmente para quem conhece PHP, irá pensar que é parecido, pois mistura Python e HTML na página web.

O objetivo do projeto PyScript é permitir o público de desenvolvedores Frontend conheçam o poder do Python e as diversas bibliotecas de estatísticas, Machine Learning, Deep Learning, etc.

Se caso você é um Cientista de Dados, pode compartilhar os arquivos HTML, dashboards e modelos para pessoas interessadas poderem executar diretamente no browser a sua aplicação, de forma simples, sem precisar uma configuração complicada.

Como o PyScript funciona?

PyScript foi construído em cima do Pyodide, que é uma biblioteca que transforma código Python em WebAssembly.

WebAssembly é uma tecnologia que possibilita escrever sites em Python. Utiliza uma linguagem no formato .wat legível por humanos, então convertida para o formato .wasm binário para que os browser poder executar. Por meio disso, podemos escrever código em qualquer linguagem, compilá-lo para WebAssembly e executá-lo em um browser.

Por enquanto, o PyScript tem suporte escrever e executar apenas código Python no browser. O objetivo para o futuro é que também ofereça suporte para outras linguagens de programação.

Vamos na prática

Agora vamos executar o primeiro código Python no browser com o PyScript

O famoso Hello World com PyScript

helloword.html


<html>
  <head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body> 
    <py-script> print('Hello, World!') </py-script> 
  </body>
</html>

Execute o arquivo HTML no browser que utiliza como default e irá mostrar "Hello, World!" na página. Agora vamos para o segundo exemplo mais elaborado que executa o Histograma de uma Distribuição Padrão, como em Estatística.

histograma-dist.html


<html>
    <head>
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
      <py-env>
        - numpy
        - matplotlib
      </py-env>
    </head>

  <body>
    <h1>Histograma de uma Distribuição Padrão</h1>
    <div id="grafico"></div>
    <py-script output="grafico">
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)

rv = np.random.standard_normal(1000)

fig, ax = plt.subplots()
ax.hist(rv, bins=30)
fig
    </py-script>
  </body>
</html>

Você deve perguntar, se teria como executar o script Python separado do HTML, a resposta é sim, deixando mais limpo.

Adicione o script Python entre a tag

<py-script src="script.py"> </py-script>

<html>
  <head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body> 
    <py-script src="/script.py"> </py-script>
  </body>
</html>

Referências

https://anaconda.cloud/pyscript-python-in-the-browser

https://pyscript.com/

https://github.com/pyodide/pyodide/tree/main/packages

Feito!

sexta-feira, 6 de maio de 2022

Configurando o VSCode para C e C++

O objetivo deste post é explicar que pode utilizar o editor VSCode para programar em C e/ou C++

Instalar o VSCode

No Linux (Debian/Ubuntu)

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
$ sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg]
https://packages.microsoft.com/repos/code stable main" < /etc/apt/sources.list.d/vscode.list'
$ sudo apt install apt-transport-https
$ sudo apt update
$ sudo apt install code

No Windows

Caso ainda não tiver instalado o VSCode Setup do VSCode

Instale o MinGW (GCC for Windows)

Adicione o MinGW no PATH

No editor de variáveis de ambiente do Windows, Propriedades do Sistema, Variáveis de Ambiente, selecione PATH, editar, novo e coloque o caminho C:\MinGW\bin e clique em OK.

Instalando as extensões necessárias para a linguagem C e C++ no VSCode

No menu da barra lateral (item 5 no canto esquerdo) do VSCode, pesquise a extensões C/C++ IntelliSense, C/C++ Compile Run

Pronto, seu VSCode está habilitado para programar em C e C++

Teste na prática

Agora com as extensões C e C++ adicionadas, vamos compilar um código em C no VSCode

Crie um arquivo e salve com a extensão .c

hello-world.c


#include <stdio.h>
#include <stdlib.h>
int main() 
{
  printf("Hello World em C no VS Code!");
  return 0;
}

Tecle F6 para compilar e gerar o executável. Depois no terminal interno do VSCode, execute o nome do executável gerado que é o mesmo nome do arquivo, só executar no terminal.

Feito!

quarta-feira, 4 de maio de 2022

Conhecendo a IDE CodeBlocks

CodeBlocks é um Ambiente de Desenvolvimento Integrado (IDE) de código aberto e multiplataforma, que suporta os compiladores: MinGW/GCC, Digital Mars, Microsoft Visual C++, Borland C++, LLVM Clang, Watcom, LCC e Intel C++ Compiler.

Apesar de ser uma IDE projetada para linguagens C e C++, também possui suporte para outras linguagens, como Fortran e Assembly.Inclui o debug também.

Instalando o CodeBlocks no ambiente GNU/Linux

Abre o terminal na distro que estiver utilizando e segue os procedimentos

No Debian e derivados (Ubuntu)

$ sudo apt update
$ sudo apt install codeblocks codeblocks-contrib

No Fedora

$ sudo dnf install codeblocks*

No Arch/Manjaro e derivados

$ sudo pacman -S codeblocks

No Gentoo

# emerge -av codeblocks

Referências

CodeBlocks Manual

Feito!

segunda-feira, 18 de abril de 2022

Conhecendo 5 exemplos práticos da ferramenta Nmap

O Nmap é uma ferramenta de portscan da rede, desenvolvido pelo Gordon Lyon, autoproclamado hacker Fyodor. É bastante utilizado para avaliar a segurança de redes de computadores.

Instalando o Nmap no GNU/Linux

Debian e derivados

$ sudo apt install nmap

RHEL e derivados

$ sudo yum install nmap

Arch e derivados

$ sudo pacman -S nmap

openSUSE

$ sudo zypper install nmap

Veja os 5 exemplos práticos que podem ser utilizado com a ferramenta Nmap

Descobrir endereços IP conectados na rede

$ sudo nmap -sP <IP/MASK>

Descobrir quais portas TCP estão abertas na máquina

$ sudo nmap -sT <IP>

Descobrir se uma determinada porta está aberta na máquina

$ sudo nmap -p <PORTA> <IP>

Descobrir o SO de uma máquina

$ sudo nmap -O <IP>

Inventário das máquinas da rede

$ sudo nmap -sS -O -T3 -oA invent <IP/MASK>

Referências

https://nmap.org/book/toc.html

Feito!

domingo, 17 de abril de 2022

Criando um container SGBD MySQL e acessar no cliente DBeaver

O presente post é explicar os procedimentos de como criar um container SGBD MySQL 8 e acessar no cliente DBeaver.

Premissa: Ter o Docker e o DBeaver instalado.

Com o Docker instalado em seu sistema GNU/Linux (qualquer distro), abre o terminal e digita o comando seguinte:

$ docker run -p 3306:3306 --name mysql8 -v $HOME/volume-mysql8:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=secret -d mysql mysqld --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Agora, abra o DBeaver, cria uma nova conexão em MySQL8, informe os seguintes dados no formulário. Veja também os screenshots.

Figura 1: Screenshot de criar a conexão no SGBD MySQL com o DBeaver

Figura 2: Screenshot no preenchimento dos dados de conexão

Server Host: localhost

Port: 3306

Username: root

Password: o mesmo que informou no comando na variável MYSQL_ROOT_PASSWORD

Clique no botão "Testar conexão", estando OK, finalize no botão "OK".

Na próxima vez que for utilizar o mesmo banco de dados com o SGBD MySQL criado no container, basta inicializar-lo e abrir o DBeaver, que estará lá.

Inicializa o container SGBD MySQL


$ docker container start mysql8

Feito!

segunda-feira, 11 de abril de 2022

Configurando o bloqueador de anúncios na sua rede no ambiente Docker

Já foi explicado os procedimentos de instalação e configuração do Pi-hole na forma manual aqui , nesse post é explicado no ambiente Docker.

Como funciona o Pi-hole?

Pi-hole funciona de maneira semelhante a um firewall de rede, o que significa que os anúncios e domínios de rastreamento são bloqueados para todos os dispositivos por trás dele, enquanto os bloqueadores de anúncios tradicionais são executados apenas no navegador do usuário e removem os anúncios apenas na mesma máquina.

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Composer no Linux (qualquer distro) ou Instalando Docker e Docker Compose no Windows 10

$ mkdir $HOME/pi-hole && cd $HOME/pi-hole

docker-compose.yml


version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    # For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
      - "80:80/tcp"
    environment:
      TZ: 'America/Sao_Paulo'
      WEBPASSWORD: 'secret'
    # Volumes store your data between container upgrades
    volumes:
      - './etc-pihole:/etc/pihole'
      - './etc-dnsmasq.d:/etc/dnsmasq.d'    
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
    restart: unless-stopped
 

OBS: Esteja atento a indentação do arquivo docker-compose.yml para o correto funcionamento na hora que for executar.

Executar o build e executação do ambiente Pi-hole no diretório raiz do mesmo.

$ docker-compose up -d

Aguarde e após estiver OK, verifique o status com o comando

$ docker ps

Acesse o Dashboard no browser http://localhost/admin entre com o password que definiu no arquivo docker-compose.yml na variável WEBPASSWORD.

Lembra de adicionar no seu roteador o IP do servidor Pi-hole como DNS para que os clientes conectados à sua rede se aplicam as regras aplicadas configuradas no Pi-hole.

Feito!