Google Analytics apenas em produção

O Google Analytics é uma ferramenta espetacular para trabalhar com métricas de navegação e e-commerce, implementei o "tracking" de diversos eventos no Eu Compraria que estão nos auxiliando a melhorar a interface e identificar os produtos mais procurados, pontos de desistência de compra, etc.

Mas como executamos diversos testes isso estava influenciando um pouco nossas métricas, então fui pesquisar como executar os códigos do Analytics apenas em produção (sem gambiarras) e descobri na documentação que tem uma variável do próprio GA que cuida disso.

Bloqueando o Google Analytics

O Analytics permite que você bloqueie a execução de determinada conta ativa na página através da criação de uma variável.

window['ga-disable-UA-XXXXXX-Y'] = true;

Substitua o UA-XXXXXX-Y pelo código identificador da sua conta no Google Acalytics e todas as páginas que tiverem esta variável (javascript) como true não irão armazenar cookies ou enviar dados para os servidores do Analaytics.

Com o Code Igniter adicionei no header das minhas views uma verificação do ENVIRONMENT da aplicação, sempre que for diferente de produção esta variável do Analytics é criada. Assim nem ambiente de homologação e nem ambiente de desenvolvimento afetam as métricas dos meus projetos. 🙂

Iniciando o Sublime do terminal no Mac OS

Apesar de gostar do Notepad++ e do Komodo, eu não me arrependo de ter mudado para o Sublime Text 2, comecei a usar ele no Linux e continuo no Mac (não sei como é o desempenho dele no Windows, mas deve ser bacana também).

Com o tempo de uso, executar tarefas no terminal é bem mais rápido do que em uma interface gráfica, então é comum estar sempre com um terminal aberto, certo?

Que tal iniciar o Sublime (ou qualquer outro aplicativo que você usa com frequência) através do terminal?

Quer abrir o projeto Eu Compraria?

sublime www/eucompraria

Ou ainda:

cd www/eucompraria
sublime.

Entendeu, né?

 

Executando o Sublime pelo terminal no Mac OS

Primeiro você precisa saber onde está instalado o Sublime, se você instalou no local padrão (Applications) e digitar:

open /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl

Se o Sublime abriu, você está pronto para criar um atalho. Se não abriu, você precisa descobrir onde ele está instalado para pegar o caminhodo "subl".

Para uma aplicação ficar disponível diretamente no terminal ela deve estar em algum diretório listado nas configurações do seu bash_profile, isto é assunto para outro post e provavelmente o seu /usr/local/bin é um destes diretórios, portanto vamos para o próximo passo: criar um link simbólico.

Digite no terminal:

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime

Caso você queira mudar o atalho que você deverá digitar no terminal, mude o sublime negritado no comando aí em cima para o que você desejar.

Pronto, seu sublime deve estar funcionando diretamente pelo terminal do seu mac, para testar digite

sublime

Ou ainda:

sublime nome-de-um-diretorio

 

Espero ter ajudado!

PHP short_open_tag

Uma vez um colega me disse que os erros bobos são os mais difíceis de serem detectados, e é onde acabamos perdendo mais tempo – por isso eu acho pair programming uma ótima idéia.

Resolvi escrever este post para que os leitores, quando se depararem com situação parecida, economizem o precisoso tempo indo direto a solução e não fazendo os testes como eu fiz. O problema: meu apache parou de executar algumas tags do PHP, imprimindo o código PHP na tela.

 

No Mac OS configurei o Apache, PHP, NodeJS e o MongoDB. Tesstei e todos estavam funcionando, porém vários dos meus projetos, como o And After e o Eu Compraria deixaram de funcionar corretamente. As páginas abriam, algumas sem CSS, tudo estranho! Fui verificar o código e o PHP não estava interpretando nada dentro do e estava imprimindo o código no HTML.

Com alguns testes descobri que <?php funcionava e <? não, com mais um pouco de pesquisa descobri uma configuração que nunca dei importância no PHP, a short_open_tag.

 

PHP short_open_tag

short_open_tag é a configuração que permite o atalho de sintaxe <? ser interpretado da mesma forma que <?php.

Como habilitar ou desabilitar a short_open_tag?

Esta configuração está no php.ini, portanto abra ele no seu editor de texto e faça uma busca por "short_open_tag", encontre a linha e altere o valor da configuração.

 

Não sei o motivo, mas no Mac OS o padrão (pelo menos da minha instalação) foi a short_open_tag desabilitada. Quer saber mais sobre o assunto? Documentação do PHP.

Zen Coding agora é Emmet

Emmet é uma ferramenta que substitui o Zen Coding, uma série de snippets de código que tornam o desenvolvimento mais ágil.

 

Nunca fui um adepto fervoroso do Zen Coding, tinha ele instalado mas não aproveitava muito o que ele tinha para oferecer. Agora, trabalhando apenas como freelancer, resolvi apostar mais no Emmet para ver se me ajuda a produzir mais.

Para mais informação, leia também:

MySQL error #2002 – No such file or directory

Ainda configurando meu ambiente de trabalho no Mac OS X, me deparei com um problema que eu não conhecia no MySQL: Error #2002 – No such file or directory.

O arquivo nao encontrado é o MySQL socket, então seu PHP está apontando para um arquivo de socket inexistente.

O primeiro passo é descobrir onde está o mysql.socket, para isso você precisa estar com o MySQL server rodando e abrir um terminal do MySQL. No terminal do MySQL digite status, e você terá informações parecidas com estas:

Connection id: 4 
Current database:
Current user: guilhermeserrano@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.28 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 42 min 26 sec

O UNIX socket mostra o local correto do seu arquivo de socket, agora você só precisa fazer seu PHP apontar para este mesmo arquivo. Abra seu PHP.ini e procure pelos atributos listados abaixo, substituindo pelo valor correto (o do status no terminal do seu MySQL):

  • pdo_mysql.default_socket
  • mysql.default_socket
  • mysqli.default_socket
  • pdo_mysql.default_socket

Agora é só reiniciar seu Apache para aplicar as novas configurações e você estará apto a conectar ao MySQL com o PHP.

Dúvidas e sugestões nos comentários. 🙂