Pearl Jam at Lollapalooza 2013, São Paulo. It’s definitely my favorite rock band.
A nice explanation on Address Resolution Protocol (ARP). One interesting thing to point out is that when you’re sniffing a network, you can capture some ARP packets like who has 192.168.1.1? tell 192.168.1.33. It means that 192.168.1.33 wants to send data to 192.168.1.1, but it doesn’t know the destination’s MAC address. So it sends this broadcast ARP packet —destination FF:FF:FF:FF:FF:FF— through the network and when/if the destination host responds, it’ll be added in the source’s —192.168.1.33— ARP table.
I lead a reeeckless life!
Spanning Tree Protocol (STP) Introduction
A good text to learn the basic concepts of Spanning Tree Protocol. I don’t know if it’s a typo, but the author states that Bridge Priority is 32769, but the other sources I researched pointed that it’s 32768.
Renomeando Arquivos para Minúsculo
Hoje vou dar meus 2 centavos para a renomeação de arquivos.
Sabe aquele diretório em que todos os arquivos estão com seus nomes EM MAIÚSCULO? Estando dentro do diretório, basta rodar o comando abaixo para colocar as letras em minúsculo:
$ for i in $(/bin/ls); do mv "$i" "$(echo "$i" |tr [A-Z] [a-z])"; done
Infelizmente isso não funciona com caracteres acentuados, mas para casos mais elaborados, as FunçõesZZ fazem bem o trabalho.
Renomeando arquivos like a boss! Yeah!
Top 10 Comandos
Estava lendo um post do saudoso Déo e resolvi entrar na onda, com quase 6 anos de atraso. Nessa corrente, você verifica quais os seus comandos mais usados e posta para o mundo.
Eu achei bem interessante a solução que ele usou para encontrar os top 10 comandos no histórico do Bash:
$ history |sed -r 's/[ 0-9]+ ([^ |]+).*/\1/' |sort |uniq -c |sort -rn |head -10
Bem, o meu resultado foi —na minha workstation:
210 ls
84 cd
77 git
62 vi
47 rm
47 cat
39 sudo
31 ping
27 echo
26 ss
Descobri aí que eu tenho um TOC, pois vivo dando ls no prompt, mas já estou me policiando. O cd e o rm, acredito, são por eu ter trabalhado bastante com testes no Weback. O vi é meu editor de textos favorito e junto com o cat é bem usado para verificar arquivos de configuração e scripts.
O echo eu uso bastante para testar algum comando ou verificar o estado de uma variável de ambiente e o git está lá, porque migrei recentemente meus projetos para o Github.
O sudo é quase obrigatório no Ubuntu, já que não gosto de trabalhar como root e tanto o ping quanto o ss são ferramentas de rede. Tenho achado o ss até mais interessante que o netstat.
O número reduzido de comandos é porque eu tenho limpado o histórico com certa frequência. Alguns comandos que eu utilizo bastante, como o tcpdump e o iptables não estão aí porque eu os executo em servidores.
Uma dica final é que se você quiser acessar —ou usar— meus arquivos de configuração, pode achá-los aqui.
You’ve been thunderstruck!
IRPF 2013 no Linux
Para minha surpresa foi bem fácil instalar os programas de declaração Imposto de Renda Pessoa Física (IRPF) no Linux. Eis o que precisei fazer no Debian Squeeze 64 bits.
O Java é essencial para o funcionamento dos programas e para minha alegria, neste ano, a Receita fez algo compatível com o OpenJDK, que acompanhou a minha instalação do Debian —optei por pacotes gráficos e básicos do sistema.
Então foi só acessar o site da Receita e baixar os debs do IRPF —declaração— e Receitanet —envio— e instalá-los como em:
$ cd ~/Downloads # dpkg --install irpf2013_1.0-0_all.deb receitanet-1.03.deb
O IRPF criou um atalho no meu desktop e em Applications > ProgramasRFB2013 > IRPF2013. Já o Receitanet, ficou acessível em Applications > Programas RFB > Receitanet. Ao executá-los, um diretório, ProgramasRFB, foi criado no home do meu usuário e ali ficam os dados da minha utilização.
Notei uma grande evolução dos programas este ano —apesar de ter declarado pelo Mac em 2012— e o fato de ser compatível com OpenJDK me impressionou muito —ainda que possa ser mérito do OpenJDK. Só faltou uma integração melhor com o Linux, como na colocação dos ícones nos menus e a opção de escolha para o diretório de dados —um ~/.programas-rfb seria melhor—, mas no geral, deixo um ponto positivo para o time de desenvolvimento da Receita.
Remoção
Se, como eu, você prefere remover esses programas depois de enviar a declaração, guarde os debs e quando da remoção, após fazer seu backup, digite:
# dpkg --purge ~/Downloads/irpf2013_1.0-0_all.deb # dpkg --purge ~/Downloads/receitanet-1.03.deb
It’s only rock’n’roll, but I like it!
Backups dos Backups
Eu tenho um cenário onde alguns servidores possuem scripts para fazer backups de si próprios e armazenar os arquivos localmente, pois não é possível montar o file server neles.
Por causa disso, acabei criando um script que sincroniza, a partir da minha workstation, os dados de backup destes servidores no file server. Sei que é uma gambiarra, mas é uma gambiarra com Shell Script, então resolvi postar aqui.
O código-fonte está disponível como um Gist no Github, mas pode ser conferido abaixo. Temos ali leitura de senhas, montagem usando o smbfs e sincronização com rsync.
#!/bin/bash
#sync-bkps.sh
#
# Author: José Lopes de Oliveira Jr. <indiecode.com.br>
##
BKP_PATH="$HOME/Public/backups-servers"
# Is file server mounted?
while [ ! -e "$BKP_PATH" ]; do
read -sp "AD password for user service: " pass
sudo mount -t smbfs \
-o username=service,password="$pass",uid=1000,gid=1000 \
//10.0.1.2/files \
"$HOME/Public"
done
echo # Next line, please.
# Sync backups.
echo "PIRANHA"; rsync -avz root@10.0.1.1:/var/local/piranha \
"$BKP_PATH"
echo "TRAIRA"; rsync -e "ssh -p 2222" \
-avz lopes@10.0.1.3:/var/local/traira \
"$BKP_PATH"
echo "AGULHA"; rsync -e "ssh -p 2222" \
-avz lopes@10.0.1.4:/var/local/agulha \
"$BKP_PATH"
Hey! Wait! I’ve got a new complaint!
IndiPv4
O segundo projeto que fiz com Web2py foi o IndiPv4, uma calculadora IP.
Um pouco mais complexo que o Indiesummer, este projeto me levou à criação do indipv4.py, que contém a classe IPv4, para tratamento de endereços IPv4.
Com esta classe fica trivial realizar cálculos com o endereço IP, pois ela converte —de forma transparente para o usuário— o endereço em sua notação string para decimal.
Rock’n’roll!
P.S.: O @rafjaa me apresentou a biblioteca ipaddress, que faz o mesmo trabalho da classe que criei.
Indiesummer
Há cerca de um ano eu tinha resolvido aprender um framework web em Python e optei pelo Web2py.
O Indiesummer foi o primeiro projeto que eu criei e é um simples gerador de hashes MD5, SHA-1 e SHA-256. Basta acessar a página do aplicativo, digitar qualquer string e teclar enter.
Yeah!
Do Pagamento do Adsense
Em dezembro de 2012 eu completei US$ 100,00 no Adsense. O que venho a descrever nas próximas linhas é o meu calvário processo para receber o dinheiro.
Tudo começou com um email do Google avisando que eu precisava preencher meus dados bancários, para que pudesse receber meu pagamento. Eu resolvi receber pelo Itaú e por isso precisei do código SWIFT do banco —ITAUBRSP—, que foi conseguido com certa facilidade na Internet.
Preenchidos os dados, aparentemente nada acontece e, pior, o formulário fica em branco quando você o acessa novamente —que mancada, Google! Mas o processo já estava rolando. O lance é que leva um tempo para a grana sair da conta do Google e cair na sua.
No início de fevereiro, eu percebi que havia um aviso na homepage da minha conta no Itaú, informando que havia uma ordem de pagamento (OP) à minha disposição. Como eu não achava na Internet qual o próximo passo, liguei para o “Fale Conosco” do banco, que foi enfático em dizer que eu não tinha valores a receber.
Navegando no site, já imaginando que poderia ser o pagamento do Google, descobri em Produtos e Serviços > OPR, os detalhes do meu pagamento e realmente era o que eu esperava. Resolvi então ligar para a central de câmbio do banco —4004-4536— e fui muito bem atendido e instruído a procurar o gerente em qualquer agência e pedir o “Termo de Liquidação Automática” —basicamente um termo em que se aceita o valor de conversão do câmbio no momento da transação, para valores até US$ 5.000,00. Também confirmei a má notícia que tinha visto no site: o Itaú cobrava R$ 105,00 + IOF pela operação, um roubo! Mas como o dinheiro já estava lá, não vi muito o que fazer.
Fui a uma agência e fiz como disseram, mas o gerente me mandou para o caixa, dizendo que lá eu receberia o dinheiro. A atendente pediu então um “número de referência”, para poder rastrear a transação. Como não tinha, fui para casa buscar nos emails do Google ou no site do Itaú por este número. Nada.
No site do Itaú, na página de OPR, eu achei um número “Referência Itaú”. Como não tinha achado mais informações na Internet, voltei ao banco com este número, mas a caixa não conseguiu prosseguir, pois —e somente aí ela me disse— o tal número teria apenas 8 dígitos.
Voltando para casa, pesquisei novamente por isso e nada. Liguei então para a central de câmbio e informei tudo. Segundo eles, o pessoal da agência estava tentando fazer a operação por uma modalidade de recebimento diferente —MoneyCraft, acho— e eu devia informá-los que realmente precisaria do “Termo de Liquidação Automática” e que se não soubessem, deviam ligar para aquele número.
Anotei todos os dados e me dirigi à agência novamente. Os gerentes já iam me dizendo a mesma coisa, mas com as informações que eu tinha, resolveram ligar para a central de câmbio e conseguiram tirar o termo. Eles o imprimiram, eu assinei umas 3 páginas e tudo certo. Saí da agência com a informação que a operação seria realizada ao final do dia.
No outro dia, eu fui logo cedo conferir se a operação tinha sido processada e tive a grata supresa de terem debitado “apenas” R$ 54,00 —tarifa—, mais R$ 0,70 —IOF. Ainda assim achei caro, mas pelo menos consegui receber meu primeiro pagamento do Adsense.
Come on, come on, love me for the money!
Conclusões
O Adsense é uma boa para ganhar dinheiro, mas é preciso levar isso a sério. O site realmente precisa ter muitos acessos e ter textos sobre assuntos mais populares ajuda muito. As técnicas de SEO devem ser cuidadosamente trabalhadas.
Ao ir ao banco ou comentar que tem o dinheiro a receber, é bom estar disposto a responder perguntas como “o Google está dando dinheiro agora?”
Acho interessante agora deixar habilitada retenção automática de pagamentos —no Adsense—, pois desta forma pode-se escolher a melhor hora para fazer a retirada. É imprescindível levar em consideração a cotação do dólar na época e as taxas cobradas pelo banco, pois dependendo dos valores, pode-se até perder dinheiro com isso.


