Como detectar impactos de mudanças no algorítmo da busca do Google

Boa parte do tráfego, ou audiência, de um site vem da busca do Google. Isto porque o buscador é ainda um dos mais populares do mundo. Dado que o algorítmo estabelece qual página é mais adequada para cada termo buscado, saber como as modificações no ranking alteram o fluxo de acesso é muito importante para quem mantém um site.

Esta é exatamente a ideia do MozCast. O serviço criou métricas baseadas em análises e estabeleceu um ranking como se fosse uma previsão do tempo. Em dias ensolarados, está tudo sobre controle para as melhores práticas daquela época. Uma mudança ou um teste que o Google faça é identificado com agilidade. Aí os especialistas correm para descobrir como se dar bem com as novas regras.

Dentre os métodos de análise estão:

Diversidade de domínio (porcentagem subdomínios), contador de SERP (Search Engine Ranking Page), influência EMD (Exact Math Domain), influência PMD (Partial Match Domain) e posição de 10 domínios influentes.

Veja em: http://mozcast.com/

4 sites para aprender e testar expressões regulares

Expressões regulares são formas de se especificar um padrão para um texto. Em programação este padrão é utilizado no processamento de textos. Muito útil para identificar a quantidade de ocorrência de uma palavra em um texto extenso ou substituir um termo por outro. Se você está aprendendo, recomendo a leitura de alguns manuais – e livros – escritos pelo brasileiro Aurelio Marinho (http://aurelio.net/regex/). Caso já saiba um pouco, sugiro usar os seguintes sites para testar sua habilidade:

http://regexr.com/
http://www.regextester.com/
http://rubular.com/
http://www.phpliveregex.com/

Interpretador de comandos bash e zsh modificados para facilitar o uso do git

Ok. Você é um desenvolvedor que usa o sistema de controle de versão distribuído ou gerenciador de código fonte git. Então certamente já rodou comandos para identificar qual versão está trabalhando, ou até, já se esqueceu que comando rodou há horas atrás.

Uma forma prática é usar o poder do terminal para deixar à vista qual repositório está trabalhando e quantas modificações você já fez. Para o interpretador de comandos Bash, há o hack bash-git-prompt. Se você tem o brew instalado, basta rodar o brew install bash-git-prompt.

Quem quer se aventurar pelo Zsh, o desenvolvedor Wes Bos, preparou uma série de vídeo, disponível no site commandlinepoweruser.com.

Gerenciando serviços no OSX

Instalou muitos aplicativos e eles instalaram serviços desnecessários que tornaram seu sistema lento? Está na hora de usar o comando launchctl. Ele é a interface de controle do launchd, o gerenciador de serviços (daemons). Veja como fazer:

Abra um Terminal e execute o comando abaixo para listar os serviços:

$ launchctl list

A direita está o PID (Process ID) que identifica se o serviço está ativo. O segundo o último status do serviço quando ele deixou de ser executado e o terceiro o nome do serviço. É com o nome que tomamos as ações:

$ launchctl remove <nome do serviço>    ( exemplo:  $ launchctl remove com.rim.BBLaunchAgen)


Se não quiser remover, mas só desativar, o comando é: 

$ launchctl unload <nome do serviço>

Para maiores informações rode o comando sem parâmetro ou consulte o manual com o comando:

$ man launchtl

Aprendendo a construir interfaces para Android

No sistema operacional móvel Android, construir interfaces significa basicamente escrever em uma linguagem própria, seguindo a sintaxe XML. O Google criou uma ferramenta de teste online desta “linguagem”, para quem acompanhar o treinamento básico fornecido pela Udacity. Resolvi listá-los aqui para quem quiser experimentar:

Simulador Android Visualizer – http://labs.udacity.com/android-visualizer/

Elementos básicos de interface – https://drive.google.com/file/d/0B5XIkMkayHgRMVljUVIyZzNmQUU/view

Paleta de cores – http://www.google.com/design/spec/style/color.html

Tipografia – http://www.google.com/design/spec/style/typography.html

Como extrair o user-agent do arquivo de log do apache

Existem diversas maneiras de descobrir quais são os browsers utilizados pelos clientes que navegam em seu site. As mais fáceis são por scripts como o Google Analytics. Mas e se eu quiser obter estes dados direto do arquivo de log do Apache? Confira os comandos:


cat /var/log/apache2/access.log | perl -ne 'if(/"([^"]+)"$/){$ua{$1}++;} END{for(keys %ua){print "$ua{$_} $_n"}}' | sort -nr

Exemplo de resposta: 

1781 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
1194 Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
760 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
408 Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1678.0 Safari/537.36
367 Mozilla/5.0 (Android; U; Android 2.1; en-us;) AppleWebKit/525.10 (KHTML, like Gecko) 341 Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 303 Mozilla/5.0 (Windows 

Organizado por tipo:

cat /var/log/apache2/access.log | awk '{print $12}' | sort | uniq -c | sort -nr

Exemplo de resposta: 

19335 “Mozilla/5.0
187 “facebookexternalhit/1.1
163 “Mozilla/4.0
140 “Opera/9.80

 

 OBS: A formatação do arquivo de log pode alterar os parâmetros. Utilizei a padrão. 

 

Como participar e lucrar com projetos open source

A questão parece estranha para quem não é familiarizado. Projetos open source geralmente se sustentam com colaboração gratuita de muitos desenvolvedores. Mas isto não quer dizer eles não possam remunerar desenvolvedores e até lucrar.

Empresas como Facebook, Mozilla e IBM pagam por soluções open source. Os desafios são listados no Bounty Source e quem conseguir desenvolver uma solução pode ganhar um bom extra. Desenvolvedores com experiência em segurança da informação podem afiar suas ferramentas no Bug Crowd. Lá empresas como Indeed, Pinterest e Humble Bundle remuneram bem por cada bug encontrado.

Se você já tem um projeto open source e quer financiar grandes mudanças, talvez a solução seja apelar para sites de financiamento coletivo. Os especializados Flattr e Pledgie são geralmente adotados por projetos de software.

Reativando o botão de desligar no OSX Yosemite

O OSX Yosemite mudou o comportamento do botão de ligar/desligar do notebook. Por padrão agora ele coloca o sistema em modo de hibernação. Para voltar a caixa de diálogo que permite desligar o notebook, execute o comando no terminal:

defaults write com.apple.loginwindow PowerButtonSleepsSystem -bool no

Se você quer voltar o comportamento anterior é só mudar o valor booleano para verdadeiro (-bool yes).

Bash: Script para trocar textos em muitos arquivos

A automatização é um pouco antiga e não se trata da mais elegante. Mas pode ser útil se você não sabe usar o xargs no Linux. Segue um exemplo de script para substituir algum texto em muitos arquivos.

#!/bin/bash

ORIGINAL=texto_original
REPLACEMENT=texto_alterado

for word in $(find -type f -name *.txt | sed 's/.///g' | grep -v ^".")
do
ex $word <<EOF
:%s/$ORIGINAL/$REPLACEMENT/g
:wq
EOF

done