Postagens

Mostrando postagens de 2017

Linux / Shell Script - Repetindo um comando no terminal a cada X intervalos de tempo

Imagem
Muitas vezes precisamos monitorar o funcionamento de aplicações que precisam pegar dados em web services, APIs, gerar arquivos de tempos em tempos, logs e etc. O comportamento das aplicações podem variar muito conforme o tipo de dados que recebemos e processamos, principalmente quando não temos o controle completo do dado que chega. Um bom meio para fazer isso é deixar sua aplicação rodando por algum tempo sozinha, coisa que seria muito chata de fazer manualmente. O Shell do Linux nos permite fazer facilmente um timer para rodar nossa aplicação, por exemplo, a cada 20 minutos. No final do dia podemos ver os logs, arquivos gerados ou as atualizações em um banco de dados de testes para verificar se o comportamento foi o esperado. O comando Shell é o que segue abaixo: while true; do <your_command>; sleep <interval_in_seconds>; done Vamos supor que queremos rodar uma aplicação NodeJs a cada 20 minutos. Para isso vamos na pasta em que se encontra nossa apl...

MySQL - Como fazer múltiplos updates com uma única query

Imagem
Vamos supor que temos uma tabela chamada parameters com os campos param , value , type e description : +-------------+------------------------+------+-------------------------------------+ | param | value | type | description | +-------------+------------------------+------+-------------------------------------+ | EXPERIMENTO | 1504037801122 | int | ID do experimento atual | | CONFIG | {"idPublication":"10"} | str | Configurações de treinamento atuais | +-------------+------------------------+------+-------------------------------------+ Supondo que precisamos atualizar apenas o campo value das duas linhas acima com updates, como seria o processo "sem pensar muito"? Bom, seria simplesmente utilizar duas queries UPDATE, correto? UPDATE parameters SET value = '174305845' WHERE param = 'EXPERIMENTO' UPDATE parameters SET value = ...

NodeJs - Corrigindo o encode do retorno de um request com iconv-lite

Imagem
Uma maneira prática de corrigir o problema de caracteres UTF8/ISO-8859-1 é usando iconv-lite. Para instalar o iconv-lite em seu projeto Node: npm install iconv-lite ( ou npm install iconv-lite --save caso queira registrar no arquivo package.json) Aplicando a solução: const iconv = require('iconv-lite'); request( { url : 'http://www.minhaurl.com.br' , encoding : null } , function ( error , response , body ) { if( !error ) { let textEncoded = iconv.decode( body , 'iso-8859-1'); console.log( textEncoded ); } } );

NodeJS / Javascript - Como utilizar o método .reduce() para contar itens de uma array

Imagem
.reduce() é um método pouco explorado pela maior parte dos desenvolvedores que geralmente preferem trabalhar com for/whiles. A utilização do método .reduce() torna o código mais elegante e profissional porém para isso precisamos fazer uma pequena investigação de como ele funciona para depois disso, utilizando o conhecimento adquirido, criar nosso método de contagem de itens. Sua estrutura básica segue o padrão: array.reduce(callback, [initialValue]) Onde callback é uma função de retorno e initialValue é o valor inicial recebido pelo método. Para isso vamos trabalhar com a Array simples indicada abaixo: words = ['abacaxi','banana','maçã','abacaxi','pera','banana','uva','laranja'] Vamos agora investigar como .reduce() trata a Array através do código abaixo: words.reduce(function( object , item ){ console.log( object , item ); },{})   .reduce() interage em cada elemento da Array li...

Usando o EditorConfig para padronizar a formatação de seu projeto

Imagem
Uma das coisas que mais incomodam desenvolvedores profissionais é a formatação e padronização de código, principalmente em situações que vários membros de um time trabalham em um mesmo código ou aplicação. O EditorConfig ajuda a resolver uma parte deste problema mantendo a consistência na formatação do código, tanto entre diferentes desenvolvedores quanto entre os diversos IDEs. O projeto EditorConfig consiste em um arquivo contendo as definições de formatação que são aplicadas automaticamente na IDE que você está usando . Para que o EditorConfig funcione você precisa criar um arquivo chamado .editorconfig com as definições de formatação apropriadas dentro da pasta de seu projeto (na raiz por exemplo). Ao abrir o projeto através de sua IDE preferida o PlugIn procurará nas pastas pelo arquivo até encontrá-lo. Cada IDE tem um procedimento próprio de instalação do PlugIn. Como exemplo segue o passo a passo para instalar o EditorConfig no Sublime Text. Vá no menu 'Prefere...