Arquivo da tag: script

Google Apps Scripts – Ferramenta do Google para integração entre seus apps, automatização de tarefas e aplicações na loja do Google Chrome

Olá pessoal,

O Google sempre surpreendendo e melhorando cada vez mais, lançou uma ferramenta chamada Google Apps Script.

Se eu pudesse comparar com algum produto, iria selecionar o VBScript da Microsoft integrado ao Office para este fim, porém o GAS (Google Apps Script) vai bem mais além, pois você pode automatizar qualquer coisa nas ferramentas do Google (docs, sheets, calendar, etc), acessando todas as ferramentas cloud do Google e usando JavaScript para tal.

Será difícil colocar aqui todos os detalhes, mas vou destacar aqueles que me chamaram a atenção:

  1. Editor de códigos JavaScript do Google com Auto Complete (online)
  2. Integração com todos os produtos do Google (docs, sheet, drive, calendar, etc)
  3. Integração com cloud (ex: banco de dados key-value)
  4. Editor visual de formulários (RAD)
  5. Reaproveitamento do script em todas as ferramentas (em qualquer ferramenta você pode chamar o script se houver esta opção, eles não são exclusivos de uma ferramenta, mas ficam gravados em sua conta)
  6. Publicação da aplicação na loja do Google Chrome (Google Chrome Web Store)

 

Fazendo alguns testes foi bem simples, por exemplo, exibir uma mensagem em um novo menu que criei no Google Spreadsheet:

O seu script pode se tornar um código para diversos tipos de aplicação no ambiente do Google, como pode ser visto na imagem abaixo:

É claro que este teste foi bem simples, mas você pode estudar toda a documentação e fazer seus testes, coletando dados de outras aplicações e montando aquilo que vai te ajudar no dia-a-dia ou automatizar o seu trabalho. Acesse o link da documentação completa em:

https://developers.google.com/apps-script/

Vou deixar também o código do teste que fiz:

function menuMostraMsg() {
  Browser.msgBox("Até funciona!")
}

function menuSobre() {
  Browser.msgBox("Visite: pcoutinho.com")
}

function createMenu() {
  var menuEntries = [
    { name : "Clique Aqui!", functionName : "menuMostraMsg" },
    null,
    { name : "Sobre", functionName : "menuSobre" }
   ];
  
   SpreadsheetApp.getActiveSpreadsheet().addMenu("Meu Menu", menuEntries );
}

function onOpen(e) {
  // quando todo os script é carregado
  createMenu(); 
}

function onInstall(e) {
  // quando alguém instala o add-on
  onOpen(e); 
}

function onEdit(e) {
  // quando alguém edita algum dado
}

 

Bom, espero ter ajudado com estas dicas.

Obrigado e até o próximo post pessoal.

Golang – Novo projeto opensource chamado Gonotin

Olá,

Recentemente necessitamos fazer uma comparação de arquivos para saber se os números de telefone de uma base existiam em outra e depois de várias tentativas para achar a quantidade correta de registros, eu desenvolvi alguns scripts para fazer essa comparação independente da ordem dos dados e realizando a comparação um a um.

Inicialmente fiz em PHP, porém usando a função IN_ARRAY, notei que a performance estava péssima. Com um arquivo de 200mil (2.5mb) registros esperei quase 45 minutos e ainda não tinha finalizado, por fim desisti e resolvi reescrever usando o Go.

Ao reescrever o código em Go o processamento foi quase que imediato usando a abordagem do MAP. Você cria um map com a chave a valor sendo o texto que você tem e verifica se os itens existem no MAP ou não.

Após esta abordagem funcionar muito bem no Go, escrevi diversas formas no PHP de processar os mesmos arquivos para fazer um benchmark de performance e a melhor performance alcançada foi usando a função ISSET.

Depois decidi também criar um gerador de arquivos com números aleatórios para fazer listas com dados para os meus testes e validar possíveis erros e melhorar os scripts.

Todo o código está disponível no Github de forma gratuita e pode ser acessado em:

https://github.com/prsolucoes/gonotin

 

Dá pra fazer a mesma usando a função DIFF do linux/osx, porém os dados precisam estar ordenados nas duas listas.

Espero com este script poder ajudar a todos que precisam resolver este problema de forma prática.

Obrigado e até o próximo post pessoal.

PHP – Script para executar uma limpeza de e-mails inválidos e ruins em um arquivo

Olá,

Por muitas vezes precisamos exportar uma base de e-mails para ferramentas de e-mail marketing e ao importar a base de dados nessas ferramentas por diversas vezes são importados e-mail inválidos, escritos de forma incorreta, faltando um ponto e ao enviar uma campanha a ferramenta detecta esses problemas e o IP do sender do e-mail marketing é bloqueado.

Para resolver estes problemas, resolvi criar um script para remover os e-mails que são considerados como inválidos (ex.: aqueles domínios de e-mails temporários, que um usuário usa só pra se cadastrar no seu site e que no final você é prejudicado por enviar um e-mail para estes domínios) e para consertar os domínios mais comuns escritos de forma errada.

Analisei uma base real de 300mil registros e detectei que apenas 1/3 da base continha e-mail escritos de forma correta e com domínios válidos através de um script que fiz para saber quantos e-mail estavam escritos errados e quantos continham domínios inválidos antes de realmente corrigir. De toda a base, apenas 5 e-mails tinham domínio inválido e mais de 200mil usuários escreveram o domínio do e-mail de forma incorreta, ex: Ao invés de @gmail.com colocavam @gmai.com ou @gmailcom.

Após o término do script o processo removeu apenas 5 dos 300mil e pude ainda usar os outros 299995 como base limpa.

Agora você imagina o quanto de melhora em relação aos resultados do e-mail marketing pôde ser obtido com este simples script.

 

Baixe o script gratuitamente no repositório:

https://github.com/prsolucoes/clean-emails

 

Não é obrigatório, só peço que as novas regras que forem úteis e puderem ser compartilhada, que você faça um pull-request para que cada vez mais o script fique melhor.