Author Archives: Luis Fernando Chaim

Engenharia F1

The Ensign N179, was baptised 'the grater' in 1979 after it was designed with it radiators on the nose.

Este é o Ensign N179, motor Ford Cosworth V8, projetado por Dave Baldwin e pilotado por Derek Daly, no GP da África do Sul de 1979.
Visando deixar os sides-pods livres para trabalhar melhor a aerodinâmica, Baldwin instalou os radiadores na frente do carro e o resultado foi:
1-O Carro ficou horrível, com uma aparência de ralador de queijo ou escada;
2-A aerodinâmica continuou péssima e o carro teve que ser redesenhando durante a temporada de 1979;
3-O carro apresentava superaquecimento e fritava as pernas e pés dos pilotos.
Além de feio, nada funcional.

Salesforce Integração

Este post apresenta estratégias de integração entre sistemas legados e fornecedores.

Object x Remote Process Invocation

Acompanhando soluções de Salesforce, integrando com sistemas externos, um ponto que me questionam é sobre utilizar o Salesforce como interface de sistemas legados, utilizando integração por APIs.

Remote Process Invocation

O Remote Process Invocation define que os dados não sejam armazenados no Salesforce, sendo integrado através de APIs

Veja mais sobre esse assunto aqui.

Remote Process Invocation - State Tracking Using Lightning
VantagensDesvantagens
Armazenamento em tempo real no Remote System.
Tratamento de Segurança da Informação centralizada no Remote System.
Caso o Remote System esteja offline, o Salesforce também ficará.
Não utilizar Object, toda facilidade de gestão e permissão, que o Salesforce fornece, deve ser implementada no Remote System.

NetBeans no Ubuntu

Este post demonstra a instalação do NetBeans no Ubuntu.

OBS: Tive problemas com o OpenJDK Headless, então sugiro que utilize a instalação normal.

Caso o JDK não esteja instalado

$ sudo apt install openjdk-11-jdk

Baixar ou instalar o NetBeans. Neste exemplo, baixei e descompactei no diretório,

/opt/netbeans-12.3/

Para executar, digite o comando,

$ /hd1/opt/netbeans-12.3/netbeans/bin/netbeans

Informações de Hardware no Ubuntu

Para visualizar informações de hardware do PC e outras informações do sistema no terminal do Ubuntu, você precisa instalar o programa inxi, usando o gerenciador de pacotes, ou abrindo um terminal e executando o seguinte comando:

sudo apt-get install inxi

Em seguida, execute o comando abaixo para obter uma lista de opções de comando:

man inxi

Ou execute o comando abaixo para obter uma saída rápida:

inxi -F

Resultado:

fernando@dell-gamer:~$ inxi -F
System:    Host: dell-gamer Kernel: 5.8.0-50-generic x86_64 bits: 64 Desktop: Gnome 3.36.4 
           Distro: Ubuntu 20.04.2 LTS (Focal Fossa) 
Machine:   Type: Laptop System: Dell product: Inspiron 15 7000 Gaming v: N/A serial: <superuser/root required> 
           Mobo: Dell model: 0P84C9 v: A01 serial: <superuser/root required> UEFI [Legacy]: Dell v: 1.12.1 date: 06/19/2020 
Battery:   ID-1: BAT0 charge: 59.8 Wh condition: 59.8/74.0 Wh (81%) 
CPU:       Topology: Quad Core model: Intel Core i7-7700HQ bits: 64 type: MT MCP L2 cache: 6144 KiB 
           Speed: 3400 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 3271 2: 2833 3: 2975 4: 3277 5: 2449 6: 3286 7: 2368 
           8: 3368 
Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: nouveau v: kernel 
           Display: x11 server: X.Org 1.20.9 driver: nouveau resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 20.2.6 
Audio:     Device-1: Intel CM238 HD Audio driver: snd_hda_intel 
           Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel 
           Sound Server: ALSA v: k5.8.0-50-generic 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           IF: enp2s0 state: down mac: 8c:ec:4b:0f:53:ba 
           Device-2: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter driver: ath10k_pci 
           IF: wlp3s0 state: up mac: 2c:6f:c9:65:eb:53 
           Device-3: Qualcomm Atheros type: USB driver: btusb 
Drives:    Local Storage: total: 1.03 TiB used: 143.80 GiB (13.7%) 
           ID-1: /dev/sda vendor: LITE-ON model: CV3-8D128-11 SATA 128GB size: 119.24 GiB 
           ID-2: /dev/sdb vendor: Western Digital model: WD10SPZX-75Z10T0 size: 931.51 GiB 
Partition: ID-1: / size: 116.38 GiB used: 11.57 GiB (9.9%) fs: ext4 dev: /dev/sda5 
Sensors:   System Temperatures: cpu: 70.0 C mobo: 41.0 C sodimm: 42.0 C gpu: nouveau temp: 46 C 
           Fan Speeds (RPM): cpu: 4087 
Info:      Processes: 332 Uptime: 2h 16m Memory: 15.30 GiB used: 6.08 GiB (39.7%) Shell: bash inxi: 3.0.38 

Instalar Python no Linux compilando o código fonte

Para instalar o Python 3.8 no Linux compilando o código fonte, você deve fazer o seguinte:

Passo 1. Abra um terminal;
Passo 2. Instale os pacotes de compilação e bibliotecas de desenvolvimento da sua distribuição usando a central de programa da mesma (procure pelos nomes ou equivalentes listados nos comandos abaixo) . No caso do Ubuntu, Debian e derivado isso pode ser feito com o seguinte comando;

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Passo 3. Acesse a pasta opt;

cd /opt

Passo 4. Baixe o código fonte com o comando abaixo;

sudo wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz

Passo 5. Use o comando a seguir para descompactar o arquivo baixado;

sudo tar xzf Python-3.8.7.tgz

Passo 6. Agora, acesse a pasta criada durante a descompactação;

cd Python-3.8.7

Passo 7. Use o comando abaixo para preparar os arquivos para a compilação;

sudo ./configure --enable-optimizations

Passo 8. Em seguida, compile o programa com esse comando (O make altinstall é usado para impedir a substituição do arquivo binário python padrão /usr/bin/python);

sudo make altinstall

Passo 9. Verifique a versão instalada do python usando o seguinte comando;

python3.8 -V

Passo 10. Após a instalação bem-sucedida, remova o arquivo baixado para economizar espaço em disco;

As 8 melhores bibliotecas Python para Machine Learning

O que é machine learning?

O machine learning (ML), ou aprendizado de máquina, é o estudo de algoritmos de computador que melhoram automaticamente com a experiência. É visto como parte da inteligência artificial.

É o campo com maior intensidade de algoritmo na ciência da computação. Já se foi o tempo em que as pessoas tinham que codificar todos os algoritmos paramachine learning. Graças ao Python e suas bibliotecas, módulos e estruturas, agora é mais eficaz e fácil.

Algumas das melhores bibliotecas Python para machine learning em 2021

Bem, Python cresceu e se tornou a linguagem preferida para algoritmos de machine learning. Vamos dar uma olhada nas principais bibliotecas Python usadas para isto.

ML / DL envolve muitos cálculos matemáticos e operações, especialmente Matrix. Para tornar mais fácil e menos demorado, são usadas bibliotecas Python para machine learning.

De acordo com o relatório, NumPy, Pandas e Matplotlib são as bibliotecas Python preferidas para machine learning.

Imagem Ilustrativa

Agora, vamos verificar algumas das melhores bibliotecas Python para machine learning em 2021.

1- Numpy

NumPy ou Numerical Python é álgebra linear desenvolvida em Python. Um grande número de desenvolvedores e especialistas prefere isso a outras bibliotecas Python paramachine learning. Porque quase todos os pacotes de machine learning Python, como scipy, Mat-plotlib, Scikit-learn, etc, dependem fortemente dessa biblioteca em uma extensão razoável.

Além disso, ele vem com funções para lidar com operações matemáticas complexas como transformação de Fourier, álgebra linear, número aleatório e recursos que funcionam com matrizes e n-arrays em Python. Além disso, este pacote python executa cálculos científicos. Portanto, é amplamente utilizado no tratamento de ondas sonoras, imagens e outras funções binárias.

Características:
Objeto de matriz N-dimensional de alto desempenho
Interativo
Recipiente multidimensional para dados genéricos
Intuitivo
Informação adicional

2- TensorFlow

TensorFlow é uma biblioteca de machine learning Python de ponta a ponta para realizar cálculos numéricos de ponta. É uma das bibliotecas Python mais recomendadas para aprendizado de máquina. Ele pode lidar com redes neurais profundas para PNL (Processamento de Linguagem Natural), redes neurais recorrentes, reconhecimento de imagem, incorporação de palavras, classificação de dígitos manuscritos e PDE (Equação Diferencial Parcial). O TensorFlow Python garante excelente suporte de arquitetura para permitir implantações de computação fáceis em uma ampla gama de plataformas, incluindo desktops, servidores e dispositivos móveis.

Um dos principais benefícios do TensorFlow é a abstração para projetos de machine learning e IA. Esse recurso permite que os desenvolvedores se concentrem na lógica abrangente do aplicativo em vez de lidar com os detalhes mundanos da implementação de algoritmos. Além disso, com esta biblioteca, os desenvolvedores de Python agora podem aproveitar IA e ML sem esforço para criar aplicativos responsivos exclusivos, que respondem às entradas do usuário, como expressão facial ou de voz.

Características:
Ele é otimizado para velocidade e faz uso de técnicas como o XLA para operações rápidas de álgebra linear.
Construto Responsivo
Flexível
Facilmente treinável
Treinamento de rede neural paralela
Grande Comunidade
Código aberto

3- Pytorch

Você já pensou por que o PyTorch se tornou uma das bibliotecas Python populares para machine learning em tão pouco tempo?

PyTorch é uma biblioteca de machine learning Python pronta para produção com excelentes exemplos, aplicativos e casos de uso suportados por uma forte comunidade. Esta biblioteca absorve forte aceleração da GPU e permite que você a aplique a partir de aplicativos como o NLP. Como ele suporta computação de GPU e CPU, ele fornece otimização de desempenho e treinamento distribuído escalonável em pesquisa e produção.

Redes neurais profundas e computação de tensor com aceleração de GPU são os dois recursos de ponta do PyTorch. Ele inclui um compilador de machine learning chamado Glow, que aumenta o desempenho de estruturas deste processo.

Características:
Front-end híbrido
Treinamento Distribuído
Python First
Bibliotecas e ferramentas

4- Pandas

Em projetos de machine learning, uma quantidade substancial de tempo é gasta na preparação dos dados, bem como na análise de tendências e padrões básicos. É aqui que o Python Pandas atrai a atenção dos especialistas em machine learning. Python Pandas é uma biblioteca de código aberto que vem com uma ampla gama de ferramentas para manipulação e análise de dados. Com a ajuda dessa biblioteca, você pode ler dados de uma ampla variedade de fontes, como bancos de dados SQL, CSV, arquivos JSON e Excel.

Ele permite que você gerencie operações de dados complexas com apenas um ou dois comandos. Além disso, Python Pandas vem com vários métodos embutidos para combinar dados e agrupar e filtrar a funcionalidade de série temporal. No geral, o Pandas não se limita apenas a lidar com tarefas relacionadas a dados; também serve como o melhor ponto de partida para criar ferramentas de dados mais focadas e poderosas.

Características:
Objeto DataFrame rápido e eficiente com indexação padrão e customizada.
Ferramentas para carregar dados em objetos de dados na memória de diferentes formatos de arquivo.
Alinhamento de dados e tratamento integrado de dados ausentes.
Remodelagem e dinamização de conjuntos de dados.

5- Matplotlib

Como o nome sugere, Matplotlib oferece uma interface semelhante ao MATLAB e fornece aos usuários uma excelente experiência de usuário. Ele usa kits de ferramentas GUI padrão como Qt, wxPython, GTK + ou Tkinter para fornecer aos programadores uma API orientada a objetos para incorporar gráficos e plotagens em seus aplicativos.

Matplotlib ajuda a produzir gráficos e figuras 2D de alta qualidade em vários formatos. Os tipos de gráficos e gráficos incluem gráficos de erros, gráficos, histogramas, gráficos de dispersão e gráficos de barras com o mínimo de linhas de código.

Características:
Renderização de texto mais rápida
Mapa de cores qualitativo
Suporte de imagem aprimorado
Melhor escolha de texto de deslocamento

6- Scipy

SciPy é uma das bibliotecas Python populares para machine learning. Tem sido uma biblioteca favorita entre os entusiastas do machine learning, pois contém diferentes módulos para integração, otimização, álgebra linear e estatística. Há uma diferença entre a biblioteca SciPy e a pilha SciPy. O SciPy é um dos pacotes principais que compõem a pilha do SciPy. Além disso, SciPy também é muito útil para a manipulação de imagens.

Características:
Lida facilmente com operações matemáticas.
Oferece rotinas numéricas eficientes, como integração e otimização numérica, usando submódulos.
Suporta processamento de sinal.

7- Keras

Keras é uma das melhores bibliotecas Python para machine learning. Se você for um iniciante em machine learning, sugiro que use Keras. Além disso, fornece uma maneira mais fácil de expressar redes neurais. Além disso, ele também fornece alguns dos utilitários para compilar modelos, processar conjuntos de dados, avaliar resultados, visualizar gráficos e muito mais.

Keras usa internamente Tensorflow ou Theano como backend. Algumas outras estruturas de rede neural populares como CNTK também podem ser usadas. Keras é lento quando comparado a outras bibliotecas porque constrói um gráfico computacional usando a infraestrutura de back-end e depois o usa para realizar operações. Além disso, Keras fornece muitos conjuntos de dados pré-processados ​​e modelos pré-treinados como Inception, SqueezeNet, Mnist, VGG, ResNet, etc.

Características:
Ele funciona perfeitamente na CPU e GPU.
Conjuntos de dados pré-etiquetados
Vários métodos para pré-processamento de dados
Avaliação de modelo
Modularidade

8- Theano

Em essência, Theano é uma conhecida biblioteca de computação científica que permite definir, otimizar e avaliar expressões matemáticas que lidam com matrizes multidimensionais. O fundamento de vários aplicativos de ML e IA é o cálculo repetitivo de uma expressão matemática complicada.

Theano permite que você faça cálculos com muitos dados mais rápido do que executando somente em sua CPU. Além disso, é bem otimizado para GPUs, o que oferece diferenciação simbólica eficaz e inclui recursos de teste de código extensos.

Quando se trata de desempenho superior, Theano é uma ótima biblioteca de machine learning Python, pois inclui a capacidade de lidar com cálculos em grandes redes neurais. Tem como objetivo aumentar o tempo de desenvolvimento e o tempo de execução de aplicativos de ML, principalmente em algoritmos de aprendizado profundo. Apenas uma desvantagem do Theano na frente do TensorFlow é que sua sintaxe é bastante difícil para iniciantes.

Características:
Integração total com NumPy
Uso transparente de uma GPU
Diferenciação simbólica eficiente
Otimizações de velocidade e estabilidade
Geração de código C dinâmico
Teste de unidade extensivo e autoverificação

Conclusão

O ecossistema python é enorme, tanto em termos de contribuição quanto de uso. Discutimos as bibliotecas Python para machine learning usadas em todas as principais áreas do ML, desde o estágio de manipulação de dados ao aprendizado profundo, processamento de linguagem natural e até mesmo visualização.

Web Sequence Diagrams

Web Sequence Diagrams é um site para geração de diagramas de sequência, a partir de anotações.

Site: https://www.websequencediagrams.com/

Veja um exemplo de anotação:

title [POST] seguranca/v1/serpro

SerproEntryPoint->SerproUseCase: processSerpro(core)
alt Fluxo Gateway
SerproUseCase->GatewayTokenWebClient: getToken()
GatewayTokenWebClient->SerproUseCase: String token
SerproUseCase->SerproGatewayWebClient: getBureauResponse()
SerproGatewayWebClient->SerproUseCase: BureauResponse
else Fluxo Direto
SerproUseCase->SerproWebClient: getBureauResponse()
SerproWebClient->SerproUseCase: BureauResponse
end
SerproUseCase->SerproEntryPoint: BureauResponse

Resultado:

Ubuntu – Java, Docker, Maven e Gradle

Este post demonstrará a instalação mais fácil de fazer.

Java

Para testar se o Java está instalado, digite:

$ java -version

Se o retorno do comando for:

Command 'java' not found, but can be installed with:

sudo apt install default-jre              # version 2:1.11-72, or
sudo apt install openjdk-11-jre-headless  # version 11.0.7+10-3ubuntu1
sudo apt install openjdk-13-jre-headless  # version 13.0.3+3-1ubuntu2
sudo apt install openjdk-14-jre-headless  # version 14.0.1+7-1ubuntu1
sudo apt install openjdk-8-jre-headless   # version 8u252-b09-1ubuntu1

Instale o Java, facilmente com:

$ sudo apt install default-jdk

Ou:

$ sudo apt install openjdk-11-jdk-headless

Verificar a instalação:

$ java -version

Maven

Para verificar se está instalado, digite:

$ mvn -version

Se o comando falhar, digite:

$ sudo apt install maven

Gradle

Execute o comando para verificar a instalação:

$ gradle -version

Se o comando falhar, digite:

$ sudo apt install gradle

Docker

Verificar versão do Docker

$ docker --version

Remover versão instalada

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Instalando Docker

$ sudo apt install docker.io

Docker-Compose

Para instalar, digite os comandos:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Definir permissões para execução:

$ sudo chmod +x /usr/local/bin/docker-compose

Testando a instalação:

$ docker-compose --version