Analisando os dados de coronavírus (Covid-19) no Brasil

Ciências de Dados e Big Data

A partir dos dados disponibilizados na Plataforma Ivis do Ministério da Saúde, foi realizado a limpeza e conversão dos dados e plotado em gráficos.

Também poderá baixar o código-fonte disponibilizado no meu GitHub.

# Para melhor visualização, acesse http://ycaro.net/wp-content/uploads/2020/03/20200316-Analise-de-dados-de-coronavirus-no-Brasil.html

Analisando os dados de coronavírus (Covid-19) usando Pandas e Plotly

Ciências de Dados e Big Data

# Para melhor visualização, acesse http://ycaro.net/wp-content/uploads/2020/03/Analisando-dados-de-coronavirus.html

Separando o appsettings de desenvolvimento e de produção no .Net Core

O appsettings.json é um arquivo de configuração para projetos .NET Core e funciona de forma semelhante ao web.config e o app.config dos projetos .NET Framework.

No Core, a separação da configuração de Debug e Release (desenvolvimento e produção) não são tão intuitivas, porém é de fácil implementação.

Essa separação é importante para evitar principalmente a utilização de string de conexão que não corresponda ao ambiente que você esteja utilizando, por exemplo, a publicação em produção utilizando um banco de desenvolvimento.

Separando o appsettings

Dada a estrutura padrão de um projeto em ASP.Net Core MVC ou api, crie o arquivo na pasta raiz chamado appsettings.Production.json, onde ficará as configurações especificas da publicação em produção.

Estrutura padrão de um projeto no ASP.Net Core MVC

Observação: é importante tomar cuidado de deixar no appsettings.json somente os parâmetros que são comuns aos dois. O development ou o production não sobrescreve a configuração, dando prioridade total para o appsetings.json.

O appsettings de desenvolvimento

Abra o appsettings.Development.json e adicione a seguinte configuração:

{
  "Parametros": {
    "Local": "Development"
  },
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;userid=root;password=123456;database=banco_desenvolvimento;"
  }
}

Observação: a configuração ConnectionStrings.DefaultConnection poderá variar, por isso, se for um projeto já existente, é importante manter a estrutura já utilizada.

O appsettings de produção

Abra o appsettings.Production.json e adicione a seguinte configuração:

{
  "Parametros": {
    "Local": "Development"
  },
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;userid=root;password=123456;database=banco_producao;"
  }
}

Testando e publicando

A configuração Parametros.Local é só para testar se a configuração funciona. Você poderá criar um ContentResult em uma Controller qualquer com o seguinte código para mostrar esse parâmetro e assim verificar o correto funcionamento:

[AllowAnonymous]
public ContentResult Teste([FromServices]IConfiguration configuration)
{
    return Content(configuration["Parametros:Local"]);
}

Execute o projeto e verifique se retornará o valor correspondente.

Ao publicar o projeto, marcando o publish como release que a configuração do appsettings.Production.json irá automaticamente para o a produção.

Instalar o Redis via Docker e conectar com o Python

Imagem com as logos do Docker, Python e Redis

Essa publicação faz parte dos meus estudos da pós-graduação em Ciências de Dados e Big Data. Os pré-requisitos necessários para instalar o Redis via Docker e conectar com o Python são:

Prosseguindo, execute as etapas abaixo:

  • Crie um arquivo chamado docker-compose.yml com o código abaixo:
version: '3'

services:
  redis:
    image: redis
    command: redis-server --requirepass Redis2019!
    container_name: meuredis
    ports:
      - "6379:6379"
  • Execute o comando abaixo dentro do diretório que foi salvo o docker-compose.yml
docker-compose up

Conectar com o Python

Para conectar com o Python, inserir e ler:

  • Crie um arquivo redislab.py com o código abaixo
import redis

r = redis.StrictRedis(
    host="127.0.0.1", 
    port=6379, 
    password="Redis2019!",
    charset="utf-8")

r.set("D", "candidato 1")
r.set("E", "candidato 2")

print(r.get("D"))
  • Execute o Python para testar
python .\redislab.py

Como ter uma empresa com os melhores talentos

Série Líderes e Empresas

Neste vídeo, Mariano Gomide, fundador e co-CEO da VTEX, fala sobre como ter uma empresa com os melhores talentos, o “desconforto necessário” para uma empresa líder e o processo de contratação para qualquer cargo na empresa.

A VTEX é uma empresa de desenvolvimento de software SaaS para e-commerce com atuação global. Fortemente consolidada na América Latina, também atua na América do Norte, também possuí escritórios na Europa, somando mais de 25 países e 2500 lojas, em empresas como Walmart, Lego, Disney, Sony, Coca-Cola entre outras.

“Os melhores talentos geram a melhor empresa”

E para se criar uma empresa com os melhores talentos, a VTEX, além do conhecimento específico de atuação da empresa, é necessário ter conhecimento em matemática, acessar dashboard de uma ferramenta BI, acessar uma query (acredito que seja SQL ou GRAPHQL) ou no Postman (cliente de acesso direto a APIs restful). Veja como foi a fala dele:

  • Testes de hard skills:

“(…) fazemos uma prova se a pessoa sabe acessar um dash de BI, uma query ou um Postman. Mesmo se a pessoa está sendo contratada para o RH. A empresa do futuro é a empresa em que as pessoas saibam fazer isso.”.

  • Testes de soft skills:

“(…) fazemos o teste de ‘reference voice’. (É a capacidade) de escrever artigos, dar aula, se expor publicamente à opiniões de terceiros”.

Além dos testes internos, avaliações por outros colaboradores que não estão diretamente dependentes do cargo em que a pessoa que será contratada. Dessa forma, se tem opiniões sem o interesse profissional.

São processos de avaliação que necessitam de pessoas que se qualifiquem a cada dia, em se atualizar e aprofundar nas tecnologias do momento, que facilitam a tomada de decisões e melhoram a qualidade do serviço.

Para mais detalhes da palestra, assista ao vídeo abaixo publicado no LinkedIn:

Aquela história do profissional de tecnologia ser introvertido, nerd, que não sabe lidar com sua profissão e vida pessoa fora do seu mundo de estudos e códigos é ultrapassado e perderá espaço no mercado de trabalho.

VTEX, Linguagens e Tecnologias Utilizadas

Fiz uma pesquisa sobre quais linguagens e tecnologias que a VTEX utiliza atualmente no desenvolvimento de seus softwares, onde poderá nos ajudar com melhores soluções e caminhos para seguir na carreira de desenvolvimento.

No próprio site da empresa e em anúncios de vagas, a VTEX utiliza:

  • React, GraphQL, Node.js + Typescript, .NET;

Desenvolvendo:

  • Microservices de alta escalabilidade;
  • APIs de baixa latência;
  • Sites altamente responsivos (para ser utilizado em perfeitamente em smartphone’s);

Esta é a primeira publicação da série Líderes e Empresas, confira aqui as próximas publicações.

Instalação do Anaconda Navigator no Windows

Distribuição Anaconda Open Source

A Anaconda Distribution é uma popular plataforma open source de estudos para ciências de dados. Porém, a instalação da versão mais recente do Anaconda não funciona corretamente no Windows. Para resolver esse problema é necessário instalar a versão Anaconda2-5.3.1 disponível no repositório oficial do projeto:

https://repo.continuum.io/archive/Anaconda2-5.3.1-Windows-x86_64.exe

Instalando essa versão, aparecerá corretamente todos os programas do pacote, como Anaconda Navigator, Jupyter Notebook, Spyder, …

Com mais de 19 milhões de usuários em todo o mundo, é o padrão do setor para desenvolvimento, teste e treinamento em uma única máquina, permitindo diversas funcionalidades para cientistas de dados individuais, confira algumas:

  • Faça o download de mais de 7.500 pacotes de ciência de dados Python/R;
  • Gerenciar bibliotecas, dependências e ambientes com o Conda;
  • Desenvolver e aprendizagem de máquina de trem e modelos de aprendizagem profundas com scikit-learn, TensorFlow e Theano;
  • Analise dados com escalabilidade e desempenho com Dask, NumPy, pandas e Numba;
  • Visualize resultados com Matplotlib, Bokeh, Datashader e Holoviews.

Como instalar um plugin no RabbitMQ no Docker

No prompt de comando do host execute o código abaixo para entrar na linha de comando do container:

docker exec -it <nome_do_container_do_rabbitmq> bash -l

Atualize o apt-get

apt-get update &&

apt-get install -y curl unzip

Abra a pasta do plugin do rabbitmq:

cd /var/lib/rabbitmq/mnesia/rabbit@meurabbitmq-plugins-expand

Execute:

curl https://dl.bintray.com/rabbitmq/community-plugins/3.7.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171201-3.7.x.zip > rabbitmq_delayed_message_exchange-20171201-3.7.x.zip && 

unzip rabbitmq_delayed_message_exchange-20171201-3.7.x.zip && 

rm -f rabbitmq_delayed_message_exchange-20171201-3.7.x.zip

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

rm rabbitmq_delayed_message_exchange-20171201-3.7.x.ez