Livros

Muitas vezes esquecemos o que lemos, então vou tentar compilar algumas coisas assim que acabar de ler o livro ou artigo, assim terei uma referência para relembrar as coisas.
No momento estou lendo Sapiens e Cartas a Théo (irmão do Van Gogh).
Sapiens é escrito por um cientista que não leva em conta religião e as vezes até debocha. É bastante interessante trazendo fatos e curiosidades.
Cartas a Théo algumas vezes é cansativo, mas é interessante observar o estudo incessante de Van Gogh e a consciência que ele tinha que era alguém “fora da caixa”.
Vou deixar o registro de um livro pequeno e excelente que li: Os Quatro Compromissos. Pois sempre vale lembrar:

  1. Seja impecável com sua palavra
  2. Não leve nada para o lado pessoal
  3. Não tire conclusões
  4. Dê sempre o melhor de si

Proxy e NTLM no Firefox

Se você também não abre mão de utilizar o Firefox mas não aguenta as incessantes mensagens de autenticação causadas pelo seu Proxy Corporativo, segue uma dica que faz o Firefox pedir a senha do Proxy ao abrir e depois não pede mais:
Acessar a configuração avançada (digite na URL):
about:config
Procure por “auth”.
Altere dois parâmetros de true para false:
network.automatic-ntlm-auth.allow-proxies
network.negotiate-auth.allow-proxies

Base64 na linha de comando

Ter que acessar um site ou criar um mini-programa só para codificar ou decodificar um Base64 parece muito trabalho, certo?
Com esses aliases que podem ser inseridos no arquivo .profile por exemplo, você rapidamente executa esse trabalho usando PHP:

alias encode='php -r '\''print base64_encode($argv[1])."\n";'\'''
alias decode='php -r '\''print base64_decode($argv[1])."\n";'\'''

Teste:

-bash-4.1$ encode teste
dGVzdGU=
-bash-4.1$ decode dGVzdGU=
teste

Convertendo M4A (MP4) para MP3

Primeiramente eu tentei um script perl para converter os arquivos usando o VLC:

perl -e "$ext='m4a';@list = `ls *.$ext`;chomp(@list);foreach (@list) { $mp3 = $_;$mp3=~s/$ext$/mp3/;print '\"C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe\" \"',$_,'\" --sout=#transcode{acodec=mp3,ab=256,vcodec=dummy}:standard{access=file,mux=raw,dst=\"MP3/',$mp3,'\"} vlc://quit',\"\n\"; }" > convert.bat

Depois vi que não estava levando as informações ID3 e não achei como fazer isso com o VLC, então utilizei o seguinte programa:
https://dl.dropboxusercontent.com/u/26889773/m4a-to-mp3-converter.exe

Tipos de Matching

Determinístico: equivalência, busca exata
Fonético: considera variações sem supressão, transforma palavras em fonemas
Linguístico: fonético com variações de sintaxe específicos (nome, endereço, etc.)
Empírico: acrescenta inteligência da interação humana
Heurístico: distância ou esforço entre strings
Probabilístico: considera a frequência numa população

Iptables para acessar proxy através de outro servidor

Quero documentar um procedimento que pode ser útil em muitos casos. Especificamente eu queria acessar o proxy (http) em um servidor sem liberação no firewall para fazer isso, mas com acesso a outro servidor com essa liberação, ambos rodando Linux e com iptables.
Embora utilize o proxy no exemplo, essa técnica pode ser usada em teoria para qualquer tipo de serviço, pois o que estamos fazendo é criar uma nova rota para nossos pacotes.
Nomenclaturas (supondo que esses nomes resolvem um IP):
– servidor: a máquina que precisa acessar o serviço, no caso o proxy
– proxy: servidor que desejo acessar, cujo serviço é executado na porta 8080
– ponte: máquina que tenho acesso e utilizarei para chegar no serviço de proxy
Primeiramente, criamos uma regra no servidor para direcionar as requisições que farei para http://proxy:8080/ para o servidor ponte:

iptables -t nat -A OUTPUT -d proxy -p tcp -m tcp --dport 8080 -j DNAT --to-destination ponte

Agora vamos configurar o servidor ponte, para não esquecer vamos começar dizendo ao Kernel que ele deve fazer roteamento:

sysctl -w net.ipv4.ip_forward=1

E agora as regras do iptables, começamos dizendo que antes de rotear, ele deve trocar o destino do pacote:

iptables -t nat -A PREROUTING -s servidor -p tcp -m tcp --dport 8080 -j DNAT --to-destination proxy

E depois dizemos que o acesso desejado deve ser mascarado, ou seja, o iptables faz o acesso e repassa para o solicitante (esse é o modo mais usado de nat no iptables):

iptables -t nat -A POSTROUTING -s servidor -p tcp -m tcp --dport 8080 -j MASQUERADE

Pronto! Caso queira acompanhar os pacotes passando pela regra do iptables:

iptables -t nat -nvL