Arquivo da tag: web

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.

PHP – Yii Framework 2.0

Olá pessoal,

Acabou de ser lançado o Yii Framework 2.0.

Framework que eu particularmente utilizo devido a sua robustez, arquitetura, segurança e ao mesmo tempo simplicidade para fazer uma aplicação enterprise.

Algumas coisas que se destacaram nesta versão que vale a pena citar aqui:

  • O gerador de códigos conhecido como Gii agora possui um gerador via web e via console.
  • Framework com foco em testes.
  • Utiliza frameworks conhecidos no mercado e especificações PSR.
  • Debugger integrado (não precisamos mais de plugins para visualizar o que acontece na aplicação).
  • A parte de segurança foi feia com a ajuda de 2 especialistas em segurança com PHP, que revisaram e rescreveram esta parte.
  • O Yii 1 já era um dos frameworks top em performance, e a versão 2 foi reformulada pra ter um desempenho ainda melhor, inclusive na parte relacionada ao banco de dados (ActiveRecord).
  • Uma coisa que me incomodava no Yii 1 era o fato de você alterar um único campo no modelo e ao dar o “save/update” ele alterava todos os campos (montava um update com todos os campos) da tabela. Agora na versão 2 ele controla isso internamente e monta a query de “update” somente com os campos que você modificou.
  • O Yii Framework 2 vem com suporte nativo a RESTful, possibilitando nativamente escrever API RESTful de forma simplificada.
  • A parte de autenticação agora possui suporte a autenticação externa, vindo com suporte nativo a OAuth1, OAuth2 e OpenID, ou seja, você já pode integrar com autenticação via Google e Facebook por exemplo de forma simples. Veja o exemplo no site oficial para entender a simplicidade do negócio.
  • Todos os widgets vem com suporte ao Bootstrap.
  • Vários helpers adicionados para trabalhar com elementos html, gerar links e todas aquelas coisas comuns em que as vezes criávamos funções estáticas para ter o mesmo resultado.
  • Criação de modelo para trabalhar com formulários simplificado.
  • Criação de regras para as classes ActiveRecord e Model (antigo CFormModel), simplificados.
  • Uso de namespace em todo o framework.
  • A arquitetura de pastas foi reformulada e proporcionou ainda mais a separação com o código do projeto, pois ele foi ainda mais projetado nesta versão para ser extensível e modular.
  • O componente de envio de e-mail padrão é o Swift com suporte a engine de templates do Yii.

Com todos esses recursos, potência, segurança e cuidado que os engenheiros do Yii possuem ao fazer o framework, que outro framework vai conseguir bater de frente com ele?

Fica aqui o meu parabéns a equipe de engenheiros que desde de sua versão 1 que eu uso até hoje, fizeram um excelente trabalho.

O link da notícia no site oficial é:
http://www.yiiframework.com/news/81/yii-2-0-0-is-released/

Obrigado e até o próximo post pessoal.

Javascript – Usando o sistema de notificações do WebKit com o Chrome

Olá pessoal,

Não sei se já perceberam, mas no Gmail existe um recurso de notificações, que só funciona no Google Chrome.

Essas notificações aparecem quando você recebe um novo email, por exemplo.

Estas notificações não foram inventadas exclusivamente para o Google Chrome, na verdade é um padrão W3C que está sendo implementado aos poucos nos navegadores, mas somente no Chrome já está funcionando.

Referência: http://dev.w3.org/2006/webapi/WebNotifications/publish/Notifications.html

Mas como podemos usufruir deste recurso em nossos websites?

É bem simples, usando obviamente os novos recursos do Javascript, temos acesso a todas essas APIs. Os passos básicos para implementar são:

1 – Verificar se o navegador tem suporte

2 – Pedir permissão para exibir notificações

3 – Exibir as notificações

Vamos ao que interessa, o código:

function verificarSuporte()
{
    var c = ( window.webkitNotifications !== undefined );
if (!c)
{
    alert("Seu navegador não suporta notificações desktop. Por favor, use o Google Chrome!");
}
    return c;
}

Esta função é a que verifica se o seu navegador tem suporte a notificações desktop ou não. Se o navegador não suportar, a função exibe um alert.

function verificarPermissao()
{
    if ( !verificarSuporte() ) return;

    switch ( webkitNotifications.checkPermission() )
    {
        case 0: // PERMITIDO
        alert( "Permitido" );
        break;
        
        case 1: // NÃO PERMITIDO
        alert("Não permitido");
        break;

        case 2: // PERMISSÃO NEGADA
        alert( "Permissão negada" );
        break;
    }
}

Esta função é a que verifica a permissão de exibir as notificações que seu navegador definiu para a sua página. Para cada caso de permissão, é exibido um alert com a descrição.

function solicitarPermissao()
{
    if (!verificarSuporte()) return;
    webkitNotifications.requestPermission();
}

Esta função que solicita ao navegador a permissão de exibir as notificações. Assim que ela é chamada, o navegador exibe uma caixa de confirmação.

function testeDeNotificacao()
{
    if ( !verificarSuporte() ) return;
    if ( webkitNotifications.checkPermission() == 0 )
    {
        var icone = "http://www.prsolucoes.com/downloads/logo_notificacao.png";
        var titulo = "Mensagem de PRSoluções";
        var subTitulo = "Eu irei desaparecer em 10 segundos!";
        var notificacao = webkitNotifications.createNotification( icone, titulo, subTitulo );
        
        notificacao.show();
        
        setTimeout( function() { notificacao.cancel() }, 10000 );
    }
    else
    {
        alert( "Por favor, solicite permissão primeiro." );
    }
}

Esta função exibe a notificação em si. É bem simples, basta passar a url do icone, o título e o subtítulo.

Obrigado pessoal e até o próximo post.

PHP – Usar aspas simples ou duplas para criar uma String?

Olá pessoal,

A um tempo atrás estava pesquisando sobre performance e um dos pontos levantados foi o fato de usar aspas duplas, pois para o interpretador do PHP custa muito mais processamento exibir uma frase do tipo:

"Nome: $nome"

Do que:

'Nome: ' . $nome

E para comprovar isso, usei o codepad.org para executar e medir o tempo de processamento de um script bem simples que realiza o teste nestes dois cenários.

O primeiro script que usa no teste aspas duplas está aqui:

https://gist.github.com/prsolucoes/bbb047c320f9e50e875f

O segundo script que usa no teste aspas simples está aqui:

https://gist.github.com/prsolucoes/7677b60d600feb6b091c

 

Resultado (média de tempo em MS para 3 execuções):

Com aspas duplas: 76ms

Com aspas simples: 60ms

 

São 16ms acrescentados no tempo de execução do script, simplesmente por suar aspas duplas. Imagina isso multiplicado por N em um sistema cheio de códigos utilizando aspas duplas por todo lado.

Espero que tenha ajudado.