Author Archives: Luis Fernando Chaim

Microservices

Introdução

Arquitetura de microservices consiste em dividir a aplicação em conjunto de serviços. É recomendável utilizar em aplicações robustas e/ou que necessitam evoluir rapidamente.

 

Links:

https://www.infoq.com/br/articles/microservices-intro

https://dzone.com/articles/building-microservices-with-java

GitHub Desktop

Download

Procurando no Google, encontrei o GitHub Desktop em: https://desktop.github.com/

  1. Clique no link Download GitHub Desktop
  2. Instale o aplicativo
  3. Serão criados 2 atalhos no Desktop, GitHub e Git Shell

Git Shell

Baixando um projeto (Clone)

  1. Abra o programa Git Shell
  2. Vá no diretório onde deseja baixar o projeto, por exemplo c:\opt\wokspace\github
  3. Digite: git clone https://github.com/[[DIR_USER]]/[[REPOSITORY]]
    1. Pode ocorrer erro no Checkout, devido a incompatibilidade de arquivos (entre diferentes sistemas operacionais)

Criando novo arquivo

  1. Com o projeto baixado, crie o seu arquivo localmente
  2. Para verificar o status dos arquivos, utilize
    1. git status
    2. Apresentará o arquivo untracked em vermelho
    3. git log (apresenta o log de todas as alterações feitas pelo usuário)
  3. Para adicionar o arquivo novo
    1. git add [NOME_DO_ARQUIVO]
    2. Quando efetuar o “git status” deverá apresentar o nome do arquivo em verde
    3. Para cancelar o comando add
      1. git reset HEAD [NOME_DO_ARQUIVO]
    4. Para adicionar todos os arquivos
      1. git add .
  4. Comitando o arquivo adicionado
    1. git commit -m ‘Arquivo atualizado com nova regra’
    2. Se vários arquivos foram adicionados no “add”, o comentário será adicionado a todos. Para adicionar comentários diferentes, os comandos “add” devem ser isolados.
  5. Enviando para o servidor
    1. git push origin master
    2. Todos os arquivo comitados, serão efetivados no master do Github
  6. Resetando todo o projeto
    1. Para retornar a última versão remota, utilize o comando
      1. git reset –hard
  7. Pronto, arquivo atualizado no Github

Criando uma Branch

  1. Comando para criar branch
    1. git checkout -b [NOME_BRANCH]
    2. Os comandos para atualizar os arquivos são os mesmos (add e commit)
    3. O comando push agora deve ser feito apontando a nova branch
      1. git push origin [NOME_BRANCH]
    4. Trocando de branch
      1. git checkout [NOME_BRANCH]

Sincronizando Branch

  1. Estando na branch de destino (master)
  2. git merge [NOME_BRANCH]
  3. git push origin master

Comando Pull

  1. Quando existe um arquivo novo no Git não é possível consultar essa alteração com “git status”
  2. Para sincronizar com o master
    1. git fetch
    2. Agora podes-se usar o “git status”
  3. Para pegar todas as atualizações
    1. git pull
    2. O arquivo será atualizado na máquina do desenvolvedor

Iniciando um diretório no Git (por exemplo Github)

  1. Acesse o site www.github.com e crie o repositório (exemplo: java-redis)
  2. Acesse o diretório onde será enviado ao repositório (diretório: java-redis)
  3. Digite os comandos na sequência
    1. git init
    2. git add –all
    3. git commit -m “Initial version”
    4. git remote add origin https://github.com/lfchaim/java-redis.git
    5. git pull origin master
    6. git push -u origin master

Outros comandos

  1. git diff (mostra a diferença entre o arquivo local e a branch)
  2. git clean -d -f (remove modificações efetuadas localmente)

Problema com nome longo de arquivos (filename too long)

  1. git config –system core.longpaths true

 

MySQL – Configuração Windows

Instalando MySQL – Arquivo Zip

Quando utiliza-se o MySQL baixado como zip, é necessário:

  1. Baixar o MySQL, por exemplo mysql-5.7.16-winx64.zip
  2. Descompactar no local desejado, no meu caso foi o próprio drive C (C:\mysql-5.7.16-winx64)
  3. Abrir o prompt de comando como administrador
  4. Estando em C:\mysql-5.7.16-winx64\bin, digitar
    1. mysqld –initialize
    2. Após o comando, verifica-se a criação do diretório /data

 

My.ini

Na instalação do MySQL, é apresentado o arquivo my-default.ini. Devemos renomeá-lo para my.ini e editar a linhas:

  1. basedir = C:\\mysql-5.7.16-winx64
  2. datadir = C:\\mysql-5.7.16-winx64\data
  3. port = 3306
  4. server_id = 1

 

MySQL – Alterando a senha root

Caso esteja rodando o MySQL como serviço, parar o serviço.

  1. Criar um arquivo txt (exemplo: C:\mysql-5.7.16-winx64\MySQL.txt)
  2. Criar o seguinte conteúdo no arquivo criado (válido para 5.7.6 ou superior)
    1. ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
  3. Salvar o arquivo
  4. Abrir o prompt de comando
  5. Digitar em C:\mysql-5.7.16-winx64\bin
  6. mysqld –init-file=C:\mysql-5.7.16-winx64\MySQL.txt
  7. O MySQL subirá e alterará a senha. Basta então matar o processo mysqld que foi criado e nos serviços do Windows subir novamente.

 

Instalando MySQL como serviço do Windows

Para instalar o MySQL como serviço, devemos:

  1. Abrir um Prompt de Comando
    1. Windows 10
      1. Clique no botão Iniciar e digite “prompt”
    2. Aparecendo o item “Prompt de Comando”, clique com o botão direito do mouse e escolha “Executar como Administrador” (sem esta opção, não funciona)
  2. Com a tela de Prompt de Comando aberta, vá até o diretório do MySQL
    1. No meu caso, C:\Program Files\MySQL\MySQL Server 5.6\bin
    1. Digite: mysqld –install MySQL
  3. Abra a tela de serviços (services.msc) e verifique que foi criado um item “MySQL”

Elasticsearch – Guia de Introdução

Este texto tem como objetivo apresentar a solução Elasticsearch, um motor de busca capaz de manipular grandes quantidades de dados. Possui código-fonte aberto, sob licença da Apache.

Características

  • Open Source, baseado em Apache Lucene e Hadoop
  • Escrito em Java
  • Foco em escalabilidade – Comece pequeno e cresça
  • Pode utilizar dados de qualquer fonte, analisar e entregá-lo
  • Trabalha com JSON sob Http

Conceito

Como foi baseado no Lucene, herdou suas características:

  • Índice: define o endereço para acesso às informações guardadas no ES. De forma parecida com o esquema nos BDRs, necessitamos saber o nome e a localização na rede de um índice (por exemplo, localhost:9200/nome_indice) para conectar-se e manipular as estruturas de armazenamento do ES;
  • Type: recurso usado para nomear conjuntos de documentos armazenados em um índice, podendo ser comparado ao conceito de tabela em BDRs, pois contém vários documentos que obedecem a uma mesma estrutura de campos;
  • Documento: é um texto plano – isto é, não corresponde a formatos binários como .doc ou .pdf – organizado em campos delimitados por chaves e vírgulas, de acordo com o padrão JSON. Sua função é similar ao das linhas de tabelas, já que é sobre os documentos que as operações de manuseio de dados (inserção, recuperação, alteração e exclusão) são realizadas;
  • Campo (field): é a unidade mínima de informação armazenada em um documento. Deve possuir um tipo, que pode ser padrão – por exemplo: string, integer/long, float/double, boolean, ou null – ou criado pelo desenvolvedor. O campo tem a mesma função de uma coluna no BDR;
  • Mapeamento (mapping): define a estrutura de um documento, contendo campos e a maneira como cada um deve ser armazenado e recuperado. O mapeamento funciona como a definição de colunas nas tabelas em BDRs;
  • Query DSL: é a linguagem de busca (para mais detalhes, veja a seção Links). Está para o Lucene como o SQL está para os BDRs;
  • Score: valor numérico que representa quão bem um documento está relacionado a uma busca em Query DSL;
  • Analisador: mecanismo para transformação de texto – por exemplo: a conversão de letras maiúsculas em minúsculas, o tratamento de espaços em branco – durante o armazenamento e recuperação de informações.

Aguarde nova atualização.

How to Configure BitBucket Git Repository with eGit

bitbucket_logo - Crunchify Tips

Bitbucket is a distributed version control system (DVCS) code hosting site that supports Mercurial and Git. With Mercurial and Git, your data is distributed by definition but you still need a place to share it and keep track of your development. That is where Bitbucket comes in.

You may need to check why I choose bitbucket over github.

Bitbucket provides a fully-featured environment for managing your development project, including a code repository, a wiki (naturally backed by Mercurial and Git – you can clone it), a powerful issue tracker and easy collaboration with others.

Simply put, Bitbucket takes the pain out of sharing code and lets you focus on what you do best: Code. Bitbucket offers both commercial plans and free accounts. It offers free accounts with an unlimited number of private repositories (which can have up to five users in the case of free accounts).

Here are quick steps to setup BitBucket Repository to you Eclipse Environment.

Step-1

Register for Bitbucket.

Step-2

Create Private/Public repository

Step-3

On Overview page https://bitbucket.org/dashboard/overview, look for your repository information.

Bitbucket Dashboard Overview page

Mouse hover will give you Repository URL which we will use later to import project into Eclipse.

Step-4

Now let’s make Eclipse ready for Git.

  • Open Eclipse
  • Click on Help menu
  • Click Install New Software

Eclipse Install New Software

Step-5

Install eGit into Eclipse. Git version control with Eclipse (EGit) – Tutorial.  How to use bitBucket with EGit in Eclipse.

URL: http://download.eclipse.org/egit/updates

Eclipse - Add Repository

Step-6

Select Eclipse Git Team Provider and JGit form option and click next and finish install.

Eclipse Install Git

Step-7

Now Open Perspective and choose Git from list.

Eclipse Git Prospective

Step-8

Click Clone Repository Button

Clone Git Repository to Eclipse and Add to View

Step-9

Enter your Bitbucket URL and User Information as mentioned in below diagram. Click Next andFinish. No need to change other configuration in next window.

Clone Repository Options Page in Eclipse

Step-10

You should see your Bitbucket repository now in eclipse.

Checked Out Bitbucket repository in Eclipse

Step-11

Now you may want to import the project so you can work on the source code.

  1. Click
    1. ‘Windows’ >
    2. ‘Open Perspective’ >
    3. ‘Resource’
  2. Click
    1. ‘File’ >
    2. ‘Import’ >
    3. ‘Git’ >
    4. ‘Projects from Git’ >
    5. ‘Existing local repository’ >
    6. ‘Select a Git Repository’ >
    7. ‘Import as General Project’ >
    8. ‘Next’ >
    9. ‘Finish’
  3. The code should then appear in your ‘Project Explorer’ window as a normal project
  4. Now make changes to your file as you want
  5. Look at ‘Git Staging’ view to see your changed files and Click ‘Commit and Push

Git Staging View in Eclipse

Pneu sólido Tannus promete acabar com o problema de furos

A empresa sul-coreana Tannus, de gerência familiar e com um pé na indústria de calcados, desenvolveu o que eles dizem ser o fim dos problemas de pneus furados.

Um pneu inteiramente sólido, feito com um composto de poliéster que leva um nome bastante forte, Aither –o nome da divindade grega que personifica o puro-. O material é composto por minúsculas bolinhas de ar, cada uma com aproximadamente 10 micrômetros de largura, em uma malha robusta de construção de muros de proteção. Fazendo uma analogia, o material é parecido com um favo de mel, ou seja, se algumas bolinhas são estouradas, diferentemente do que acontece nos pneus pneumáticos, o restante do material não é atingido.

Pneus sólidos sempre foram um sonho de muitos ciclistas, mas por serem muito pesados, fracos e muito vulneráveis ao calor nunca conseguiram ganhar mercado. Maciek Karlowski, Gerente-Técnico da Tannus na Europa, admite que sua nova tecnologia não supera o desempenho dos pneus tradicionais, mas que já é capaz de oferecer conforto e segurança para todos os ciclistas que não aguentam mais empecilhos em suas pedaladas por conta de furos nos pneus. E brinca que se a pessoa não for informada nem percebe a diferença no desempenho, de tão ínfima que ela é.

Este levou dez anos para ser desenvolvido plenamente. Em testes de laboratório o desempenho de Tannus foi surpreendente e a diminuição do material só aconteceu depois de 5.000 km, sendo de 1 milímetro. Por isso, a empresa acredita que eles durem para além dos 10.000 km rodados. Vale lembrar que os novos pneus da Tannus ainda não são adequados para montanhas ou Ciclismo Artístico, dentre outros esporte.

Aither é um material bastante leve, com praticamente o mesmo peso do pneu de borracha mais seu tubo interno, sendo assim, sua bicicleta não ficará mais pesada com os novos pares de sapato.O produto está disponível online no site da Tannus.

https://www.youtube.com/watch?v=qXu9yg6xIqQ

Como pagar mais barato na Centauro usando Meliuz

Olá.

Este post vai ajudá-lo a comprar mais barato no site Centauro, utilizando o Méliuz. Esta é uma demonstração específica, mas pode ser utilizada em qualquer site que tenha parceria com a Méliuz.

Além de conseguir mais desconto no site, você pode receber parte do dinheiro da compra de volta.

Só para ter uma idéia, foi possível comprar uma Fuji Nevada 29 1.5, que normalmente custa R$3.599,90, por R$2.413,33 e ainda por cima o Méliuz me devolveu 10% (R$241,33). Veja a economia, a bike saiu por R$ 2172,00!

Gostou?! Então veja como fazer!

1 – Acesse o site da Méliuz

2 – Escolha o tipo de cadastro: Facebook ou Email

3 – Aceite os termos de uso e confirme o cadastro

Pronto! Você já faz parte do grupo de desconto Méliuz!

Se desejar, pode incluir a extensão do Google Chrome para o Méliuz. Facilita em muito o acesso dos cupons, estando no site dos parceiros.

Para adicionar a extensão Lembrador Méliuz

1 – No Google Chrome, clique no menu de contexto (do lado direito do navegador)

2 – Escolha “Configurações”

3 – Clique em “Extensões”

4 – Clique em “Obter mais extensões”

5 – Digite “meliuz” e aperte “Enter”

6 – Adicione a extensão “Lembrador Meliuz”

Com essa extensão, aparecerá no canto direito do navegador, o ícone do “Lembrador Méliuz”.

Se você estiver num site dos parceiros, esse ícone ficará laranja e aparecerá um Popup “Ver descontos”. Basta clicar e aparecerão os cupons do site.

Aproveite!

 

Como instalar MySQL 5.6 no Windows – Arquivo Zip

Baixando o Arquivo ZIP

Acesse o site de download do MySQL e selecione o arquivo ZIP da versão desejada do MySQL:

Página de download do MySQL

Na página seguinte clique na opção “No thanks, just start my download.” para começar a baixar o arquivo sem fazer o login:

Baixando o arquivo de instalação na página do MySQL.

Instalando o MySQL

Descompacte o arquivo baixado na pasta onde deseja instalar o MySQL. Por padrão a pasta de instalação do MySQL é C:\mysql. Se ele for instalado em outra pasta, é preciso atualizar o diretório de instalação no arquivo de configurações.

Para facilitar o nosso trabalho iremos adicionar a pasta bin do MySQL na variável PATH do Windows. Assim poderemos executar os programas da pasta no prompt de comandos sem ter que acessar a pasta bin diretamente.

Abra o prompt de comando como administrador e execute o comando sysdm.cplpara abrir a janela de configuração do sistema. Acesse a opção Configurações Avançadas do Sistema > Avançado > Variáveis de Ambiente…, selecione a variável PATH na lista e clique em Editar…. Adicione o caminho da pasta bin do MySQL no final do valor da variável usando ; para separá-lo dos outros valores e clique em OK para concluir:

valor-da-variavel-path;<caminho-para-a-pasta-bin-do-mysql>

Para testar se está tudo funcionando corretamente abra o prompt de comando e digite o seguinte comando:

mysqld --version

Se tudo estiver correto, deverá ser exibida uma linha com informações sobre a versão instalada do MySQL.

Criando o Arquivo de Configurações

Caso seja necessário especificar as configurações iniciais antes de rodar o servidor, podemos definir estas configurações através da linha de comando, ou criando um arquivo de configurações que será usado na inicialização do servidor. Isso é necessário quando alteramos alguma configuração, como por exemplo, instalamos o MySQL em um diretório diferente do padrão, ou quando queremos alterar configurações de cache, memória, etc.

Crie uma cópia do arquivo my-default.ini, localizado na pasta de instalação do MySQL e salve-o com o nome my.ini. Abra o arquivo num editor de texto e altere as seguintes opções da seção [mysqld]:

basedir = <caminho/para/a/pasta/de/instalacao>
datadir = <caminho/para/a/pasta/data>
tmpdir = <caminho/para/a/pasta/temp>
port = 3306

NOTA: Os caminhos de diretório no Windows são definidos usando a barra normal (/). Se for usar barras invertidas, elas precisam ser escapadas (\\).

A opção basedir define onde o MySQL está instalado. Já a opção datadir define qual é a pasta de dados raiz, onde são armazenados os arquivos dos bancos de dados. Se for usar uma pasta de dados diferente é necessário copiar todo o conteúdo da pasta data presente no diretório de instalação do MySQL para a nova pasta de dados.

A opção tmpdir define qual a pasta de arquivos temporários do MySQL, sendo o padrão a pasta temp presente no diretório de instalação. Já a opção port define a porta usada pelo servidor MySQL para comunicação, tendo como valor padrão 3306.

Para testar se as configurações estão corretas abra o prompt de comando e digite o seguinte comando para inicializar o servidor:

mysqld --defaults-file=<caminho-para-o-arquivo-de-opcoes>

O parâmetro –defaults-file indica o arquivo de configurações que deve ser utilizado ao iniciar o servidor.

O prompt ficará ocupado até que o servidor seja desligado. Para isso abra outro prompt e digite o seguinte comando para parar o servidor:

mysqladmin -P 3306 -u root shutdown

O parâmetro -P indica o número da porta usada pelo servidor, 3306. O parâmetro -u indica o nome do usuário, root. Como inicialmente o usuário root não possui uma senha nós não precisamos definir o parâmetro -p <senha>. Finalmente, o comando shutdown pára o servidor.

Caso queira evitar o trabalho de iniciar e parar o servidor via linha de comando podemos instalar o MySQL como um serviço do Windows, assim ele será iniciado junto com o sistema.

Instalando o MySQL como um Serviço do Windows

Para instalar o MySQL como um serviço do Windows abra o prompt de comando como administrador e execute o seguinte comando:

mysqld --install <nome-do-servico-do-mysql> --defaults-file=<caminho-para-o-arquivo-de-opcoes>

Se tudo estiver correto será exibida a mensagem Serviço instalado com sucesso. Digite então o seguinte comando para iniciar o serviço:

net start <nome-do-servico-do-mysql>

Se precisar parar o serviço digite o seguinte comando:

net stop <nome-do-servico-do-mysql>

E caso precise remover o serviço digite o comando a seguir após ter parado o serviço:

mysqld --remove <nome-do-servico-do-mysql>

Como eliminar erro do motor usando ELM327 – Check Engine

Este tutorial foi desenvolvido com base nos meus conhecimentos obtidos na prática.

Possuo uma Ranger 1995 que começou a apresentar erro Check Engine, após a retirada do Kit GNV.

Então adquiri o Scanner Diagnostico Automotivo Elm327 Obd2 Bluetooth.

Procedimento de execução:

  1. Baixe o aplicativo para Android, OBD2 Bluetooth ELM 327
  2. Conecte o scanner no veículo desligado
  3. Habilite o Bluetooth do celular
  4. Abra o aplicativo OBD2 Bluetooth ELM327
  5. Clique na lupa. O processo de escaneamento do aparelho se inicia. Quando aparecer o novo Device (OBDII ou OBD2ECU), selecione-o.
  6. Já aparecerá a tela indicando a voltagem
  7. Agora, dê a partida no veículo
  8. Os demais mostradores começam a funcionar

Como apagar os avisos de erro:

  1. Com o scanner e o veículo funcionando
  2. Clique no ícone da seta para cima (SETPID)
  3. Clique no botão “Clear Faults”
  4. No meu caso, deu um erro, avisando que o OBD2 parou de funcionar, mas apagou o erro Check Engine
  5. Pode deligar o veículo e retirar o OBD2

Abaixo, coloquei algumas telas do aplicativo.

tela1 tela2 tela scanELM-327-Wi-Fi