Single page application com VueJS

VueJS

VueJS

VueJS é um framework Javascript reativo e é também conhecido como um framework progressivo, o que significa basicamente que você não vai precisar estudar toda a documentção do framework para começar a usar.

Vamos ver um exemplo básico com o mínimo preciso para ter um código VueJS funcionando:

Declaramos uma div simples com o id de nossa aplicação e com o template {{text}} que será substituido pelo valor da variável text.

  1. Na aba HTML importamos o código do framework do cdnjs
  2. Na aba Javascript criamos a instancia de nossa aplicação
  3. O parâmetro el é onde deve ser inormado um QuerySelector indicando onde a aplicação será renderizada.
  4. E por fim o parâmetro data que irá conter os valores utilizados em nossa aplicação, em nosso exemplo a variável text.

VueJS para usuários de JQuery

O jQuery tem um objetivo diferente do VueJS e por isso não devem ser considerados concorrentes, e por terem paradigmas muito diferentes, é recomendado que não sejam utilizados no mesmo projeto.

Enquanto o jQuery é uma ferramenta que tem como principal objetivo auxiliar na manipulação dirata do DOM ( HTML ) o VueJS se propoe a encapsular todo a manipulação do DOM. Neste momento surge a pergunta mais importante:

E como posso mudar a informação exibida na tela ?

O VueJS espera que seu desenvolvimento seja focado em  manipular os dados e não o html, sendo assim, sempre que você lterar os valores do campo data definido no setup de nossa aplicação o framework irá alterar automaticamente todos os pontos do html que fazem referencia a este valor.

O objetivo é que você não precise mais se preocupar com a renderização de seus dados sobrando tempo para se dedicar aos pontos mais importantes de sua aplicação.

Agora um exemplo demonstrando o framework fazendo este trabalho de “comunicação” dos dados da tela para o seu objeto e de seu objeto para a tela o que é conhecido como Two Way Data Bind.

Ex:

No exemplo acima, sempre que o iniput for alterado  o texto dentro do span será automaticamente alterado, mostrando a “reatividade” do framework.

Referencias:

VueJS no GitHub

Maven – Executando mas rápido

Maven

Maven

Por padrão o maven executa todos os teste unitários do projeto sempre que você executa o build ( package ) . O problema disto é que algumas vezes apenas precisamos atualizar a aplicação e em alguns dias fazemos isso milhares de vezes.

O maven nos da algumas opções para dinamizar esta execução.

Skiping tests:

Ao executar o maven informando o parâmetro “-Dmaven.skip.test=true” indica que o build deve ser executado sem os testes unitários.

Melhorando o tempo de execução do Maven

Seguem abaixo algumas dicas para melhorar o tempo de execução.

OBS: Algumas destas podem aumentar consideravelmente o uso de CPU.

Sem conectar a internet:

Temos também a opção de forçar o maven a trabalhar offline com o parâmetro “-o“. Por padrão todas as dependências do projeto são salvas localmente como em um serviço de cache, e sendo assim este parâmetro não fará muita diferença.

Ex.:

Para isto é recomendado que antes você execute o seguinte comando para que sejam baixadas todas as dependências e salvas no cache:

Sem logs:

Em algumas situações você pode não querer ver tudo o que o maven esta fazendo. Para isto temos a opção de executa-lo em modo “silencioso” com o parâmetro “-q”.

Ex.:

Multi thread:

É possível especificar a quantidades de threads serão utilizadas no processo de build. Este é um recurso que deve ser utilizado com cautela pois existem muitos fatore que podem influenciar no desempenho do build, como número de núcleos do processador, quantidade de submodulos do projeto e quantidade de tasks a serem executadas dentre outros fatores.

Fontes:

Site oficial

Vim programatico

Vim logo

vim

É possível utilizar o Vim de forma programática para realizar grandes tarefas de forma automatizada. Uma situação onde este recurso pode ser muito útil é na conversão do charset/encoding de arquivos sem perder os caracteres originais.

-S = indica o arquivo contendo o script

Exemplo de script:

  1. Define o encoding do buffer atual
  2. Define o encoding do arquivo atual
  3. Salva e fecha o arquivo

Um exemplo de utilização deste recurso seria modificar o charset de todos os arquivos .java de uma pasta:

O comando acima quando utilizado tendo na mesma pasta um arquivo de nome script.vim com o conteúdo de script mostrado acima, localiza dos os arquivos com a extensão .java contidos na pasta atual,  e para cada arquivo encontrado ele abre o arquivo utilizando o script previamente criado, que faz com que o Vim modifique o charset/encoding, salve e fecha o arquivo em seguida dando continuidade a busca.

Algums links úteis caso queira se aprofundar no assunto:

Tutorial para criação de scripts do Vim

Exemplos de scripts

Mais sobre o Vim na Wikipedia

Quantitativo vs Qualitativo

Quantitativo vs Qualitativo

Quantitativo vs QualitativoEm analises de dados precisamos conseguir distinguir os tipos de informações das quais dispomos para que possamos aplicar de forma apropriada as diferentes ferramentas de análise. Neste post iremos ver de forma prática as principais diferenças entre estes dois tipos de dados e em que esta diferença pode nos ajudar.

Continue lendo

R Datasets – chickwts

chickwts

R barplot result

R barplot result

Este é um DataFrame resultante de um estudo feito com 50 frangos distribuidos aleatoriamente em seis grupos, e cada um deste seis grupos foram alimentados com seis tipos distintos de suplementos. O objetivo deste estudo é identificar o tipo de alimento que propicia o melhor ganho de peso.

Continue lendo

Excel logo

Excel vs R Quando utilizar

R logo

R logo

Excel vs R – Porque comparar ?

Estas duas ferramentas possuem funcionalidades semelhantes e por isso gera este tipo de questionamento, se são parecidas então não preciso estudar as duas ?! Qual a melhor ? Este tipo de pergunta é aceitável e justificável para ferramentas novas ou que possuem uma grande diferença de “idade”. No caso do Excel e do R, talvez seja um pouco diferente porque são duas ferramentas criadas a muito tempo e as duas vem se mantendo firmes no mercado, o Excel como ferramenta fortemente presente em quase todos os ambientes corporativos, e o R como uma ferramenta poderosa na análise de dados. Continue lendo este post que eu espero que lhe auxilie nesta decisão.

Continue lendo

R vs SQL

R logo

R logo

Iniciando

Quando comecei a utilizar o R o maior problema foi a adaptação devido ao fato de já utilizar SQL com bancos relacionais, imediatamente surgiam as dúvidas:

  1. Como faço um “where” ?
  2. Tem como fazer um “like” ?
  3. Como faço um “group by”
  4. Como faço para ordenar?
  5. Como faço um “limit”

Continue lendo

Analisando o log do fail2ban

Firewall configuração com o fail2ban

Introdução

O fail2ban é uma ferramenta escrita em python que analisa os arquivos de log dos seu sistema e automaticamente cria regras de bloqueio no iptables para ips que estejam realizando alguma atividade suspeita. Por exemplo, em casos de muitas tentativas de acesso pelo ssh inválidas, o fail2ban identifica estas tentativas com erro no log do sistema ( /var/log/syslog ) e cria uma regra no iptables bloqueando este ip por alguns minutos.

Continue lendo

Ferramentas para o Shell

linux

Introdução

Muitas vezes no dia precisamos criar uma pasta e em seguida entrar nesta pasta para realização de algum procedimento dentro desta, que seria algo como:

 

Utilizando funções

É possível criar funções( comandos ) personalizados modificando o arquivo ~/.bashrc ( ou ~/.profile se for mac ) que é o arquivo com código Shell que é executando quando é iniciada uma nova instância do terminal, desta forma, toda vez que você abrir o terminal, ou logar no servidor este arquivo será executado a as funções contidas nele ficarão disponíveis.

Para isso adicione as seguinte linhas neste arquivo:

Uso:

No final você estará na pasta “pasta_final”.

OBS: nesta função foi utilizado o parâmetro -p do comando mkdir que cria toda a raiz de pasta quando a pasta “pai” não existir.

Ex.:

 

Utilizando alias

Em algumas situações o recurso que desejamos implementar é tão simples que não precisamos criar um função Shell, neste caso podemos criar apenas um alias para um determinado comando. Uma situação comum para utilização deste recurso é com comando onde costuma-se repetir sempre os mesmos parâmetros. Veja alguns exemplos:

Listando os maiores arquivos de uma pasta

Existem situações onde é preciso liberar espaço em disco rapidamente para que ou seu serviço não pare por falta de espaço no HD ou simplesmente para fazer uma limpeza.

Listando arquivos

Já se perguntou quantas vezes por dia você executa o comando ls ?

Abaixo segue alguns exemplos de como enriuecer seu arquivo .bashrc/.profile:

Você encontra estes e outros exemplos no arquivo completo aqui.

 

 

Ordenamento por Data no DataTables

Logo do DataTables plugin jQuery

O DataTables é hoje uma dos plugin jQuery mas utilizado por resolver ordenamento e paginação de forma automática. Mas em qualquer ferramenta que tente fazer ordenamento sem reflection, ocorre um problema que é a identificação automática do tipo de dados da coluna ou lista ordenada.
Isto ser torna um problema no seguinte caso:

  • 01/02/2015
  • 02/01/2015
  • 03/12/2014
Na lista acima as datas estão ordenadas como “string”.
Por padrão, o plugin do dataTables reconhece automáticamente os tipos “string”, “numeric”, e, “date” , mas todos em formato americano.

Para burlar este problema, é possível criar um tipo de dado extendendo a api do jQuery (Clique em Result para ver o resultado ):

Você pode testar o código acima no JsFiddle.