Jun 21
Jun 14
Bubble para quotes do twitter
Meus quotes do twitter no blog nunca mais serão os mesmos
♻ @microcontoscos  Alô vc q está assistindo a Copa no seu MP15 comprado no camelódromo. Torça pelo Paraguai, pelo menos por gratidão.
CSS devidamente kibado daqui.
Jun 14
SVN Branching e Manutenção
É comum não compreender como funciona o conceito de branching em um repositório SVN, fiz um diagrama para exemplificar como funciona o branching para manutenção de uma versão antiga de software em um repositório SVN. Sintam-se a vontade para editar/imprimir redistribuir ou qualquer coisa.
Você pode editar o SVG original (gziped) usando o Inkscape. Ou a versão para impressão.
Jun 09
Jornalismo Meia-Boca
A Globo.com gasta milhões com as interwebs, é referência em qualidade na organização e implementação do seu portal de notícias G1 e a ultima reforma ficou digna de aplausos. Mas parece que seus produtores de conteúdo não entenderam ainda o que diabos é a internet. A base da internet é a referência, o famoso “link”.
O mundo está conectado, isso é fato. Mas a cultura de não referenciar ninguém de graça que é uma característica forte nas agências nacionais faz com que notícias em um portal na internet sejam feitas esquecendo esse conceito. Veja essa matéria publicada no G1 e perceba que o texto como era de se esperar é muito bem escrito, cita fontes e fala da TriCities e ABC News. Algo que já deve ter ficado evidente para quem há freqüenta a internet há algum tempo: NÃO TEM NENHUM LINK PARA NENHUMA DAS REFERÊNCIAS.
Eu tive o trabalho de entrar no TriCities.com e pesquisar no site(medonho diga-se de passagem) para encontrar a notícia referenciada pelo G1 e eles por sua vez, fizeram o dever de casa e colocaram o devido link para a página que o cidadão montou com o domínio da polícia de Bluff City.
Essa não é a primeira vez que notícias no G1 não linkam suas fontes na internet. Nem quando o assunto é referente a algo que está na internet, como vídeos no YouTube ou o site do senhor Brian McCrary. Pra mim o jornal já morreu há tempos mas parece que os jornalistas ainda vivem o tempo todo dentro dele.
Notem porém que as mesmas criaturas que sonegam isso para suas fontes, incentivam para que os outros usem-nos como referência e transmitam o link. Hipocrisia? imagina.
Jun 04
Nossos Medidores Apontam Um Elevado Nível De Gambiarra
Uma transferência assistida no Asterisk gera os seguintes canais e links.
newchannel: SIP/192.168.10.252-00000008 newchannel: SIP/1001-00000009 link: SIP/192.168.10.252-00000008 - SIP/1001-00000009 unlink: SIP/192.168.10.252-00000008 - SIP/1001-00000009 link: SIP/192.168.10.252-00000008 - SIP/1001-00000009 unlink: SIP/192.168.10.252-00000008 - SIP/1001-00000009 link: SIP/192.168.10.252-00000008 - SIP/1001-00000009 unlink: SIP/192.168.10.252-00000008 - SIP/1001-00000009 link: SIP/192.168.10.252-00000008 - SIP/1001-00000009 unlink: SIP/192.168.10.252-00000008 - SIP/1001-00000009 newchannel: Local/1002@transferencias-aaa8,1 newchannel: Local/1002@transferencias-aaa8,2 newchannel: SIP/1002-0000000a link: Local/1002@transferencias-aaa8,2 - SIP/1002-0000000a link: SIP/1001-00000009 - Local/1002@transferencias-aaa8,1 unlink: SIP/1001-00000009 - Local/1002@transferencias-aaa8,1 link: SIP/1001-00000009 - Local/1002@transferencias-aaa8,1 unlink: Local/1002@transferencias-aaa8,2 - Local/1002@transferencias-aaa8,1hangup: Local/1002@transferencias-aaa8,1 hangup: Local/1002@transferencias-aaa8,2 unlink: SIP/1001-00000009 - SIP/1002-0000000a newchannel: Transfered/SIP/192.168.10.252-00000008 link: SIP/192.168.10.252-00000008 - SIP/1002-0000000a hangup: SIP/1001-00000009 hangup: Transfered/SIP/192.168.10.252-00000008 unlink: SIP/192.168.10.252-00000008 - SIP/1002-0000000a hangup: SIP/1002-0000000a hangup: SIP/192.168.10.252-00000008
Jun 03
Tuneis SSH
SSH é uma das coisas mais lindas em sistemas UNIX-like. Mas o SSH é ainda mais lindo se executado com as opções -D e -L. Imaginem o seguinte caso: você está em uma rede quase que completamente bloqueada só lhe sobra uma porta 22 pra acesso ssh remoto em um servidor que você paga em uma vps ou melhor ainda quando a sua universidade lhe fornece acesso ssh a alguma maquina gratuitamente. Agora imaginem que vocês precisam ver aquele vídeo de um fã do restart sendo trucidado por um rinoceronte endiabrado. Há solução, uma solução segura e livre de proxys afegãos suspeitos. Os tuneis ssh podem salvar sua vida.
Como? fazendo com que sua conexão seja protegida e criptografada até a maquina da qual você tenha acesso ssh e de lá você saia para web sem restrições de firewalls facistas. A magica é feita por um comando simples e nenhum tipo de acesso administrativo em qualquer uma das maquinas é necessário:
$ ssh -D 3000 guax@freedom -N -f
O que esse comando faz é um tunel ssh do tipo dinâmico (-D) que gera um proxy SOCKS 5 na porta 3000 da sua maquina o -N diz que você não quer abrir o shell do ssh da outra maquina e o -f diz que você quer o tunel executando em background. Então no firefox ou browser que suporte.
Agora vamos a um problema menos subversivo. Você precisa acessar a porta 80 de algum ip que está escondido em uma rede do cliente, geralmente para configurar um ATA, router e outros equipamentos com configuração web. Se você tem acesso a um firewall ou outra maquina que enxergue as duas redes basta usar o seguinte comando.
$ ssh -L 3000:192.168.10.100:80 guax@cliente
E voila. Basta apontar seu browser para localhost:3000. Sem configurar proxy nem nada. =)
Referências
$ man ssh
May 29
Dunga escondido
May 24
Pacotes Debian Por Um Mano Do Slackware
Primeiro vamos aos esclarecimentos para tentar evitar qualquer flame. Sou usuário de Slackware ha 6 anos mais ou menos mas faz 2 anos que convivo diariamente com Debian. Esse ensaio sobre os pacotes desta última distro é feito em cima da minha experiência com as duas e não representa qualquer tipo de preconceito com a distro. Espero que leiam até o final antes de comentar ou expressar uma opinião mais acalorada. Agora vamos ao que interessa.
Estrutura Do Pacote
A estrutura de um pacote .deb pronto é simples e não tem nada complexo. E um pacote do Slackware não fica atrás. A diferença principal é que os dados do software estão em um tar separado dos arquivos que fazem o controle da instalação. Não são muitos arquivos e em resumo o principal de um pacote .deb é:
- debian-binary
- Arquivo de texto com a versão do binário do pacote.
- control.tar.gz
- Meta informação do pacote. Dependências e coisas do tipo.
- data.tar ou data.tar.gz ou data.tar.bz2 ou ainda data.tar.lzma
- O diretório que contém os arquivos do programa a ser instalado.
Tudo isso comprimido em um pacote ar. Acho que é o mínimo e o máximo necessário para um controle de pacotes com dependencias como no Debian.
No Slackware a estrutura é semelhante mas é basicamente um pacote tar gzip, bzip ou xz que representa o mesmo que o data.tar no pacote Debian, mas com um sub-diretório install onde estão os arquivos de controle da instalação.
Geração do Pacote e a Aberração Debianization
Ok, aqui o bixo pega. Então vou fazer em forma de comparativo entre Slackware e Debian.
No Slackware
A geração de pacotes no Slackware é feita usando preferivelmente um script em shell para automatização da compilação e empacotamento chamado SlackBuild Script, é um shell script perfeitamente normal que qualquer pessoa com o mínimo de experiência no mesmo consegue dar manutenção. Em geral o que o slackbuild faz pode ser divido em duas fases:
- Compilação e instalação do pacote em um diretório temporário
- Geração do pacote com o facilitador makepkg
A primeira fase é feita usando as ferramentas disponíveis pela aplicação. Pode ser autoconf, ant ou qualquer build system. Até mesmo um chroot se faz necessário em alguns casos. A segunda parte é a normalização do pacote que consiste em compactação de man pages, strip de shared libraries, a inclusão do próprio build script como doc e dos arquivos para o diretório install/ e por fim a compactação do diretório e criação do t?z.
É importante ressaltar que nos pacotes Slackware o código fonte original não é mexido e sequer distribuido junto com os SlackBuilds na maioria dos casos. Alguns casos existem onde patches são necessários para que o pacote funcione corretamente mas estes são aconselhados somente se o programa não puder funcionar sem este ou isso representar um risco grave de segurança e estabilidade. A politica pura e simples é: Desenvolvimento é papel dos desenvolvedores e não dos empacotadores.
No Debian
O documento de política de desenvolvimento do Debian é um monstro de 10 sessões com mais 10 sub-sessões cada e 7 anexos. Recomendo a leitura se quiser confirmar o que eu digo aqui. Vou resumir a forma de criação padrão de pacotes.
A mudança na forma de pensar já começa na nomenclatura do indivíduo que empacota. No Slackware é um empacotador. No Debian é um desenvolvedor.
Primeiro salva-se o código fonte original em um .orig e então pode se começar a Debianização do aplicativo. Um pacote é feito geralmente usando de 2 a 4 aplicativos facilitadores e geralmente o autoconf é o responsável pela geração do pacote. Tudo isso fica dentro do código fonte em um diretório debian/. A estrutura é complexa e é necessário um longo periodo e leitura da documentação para a compreensão do sistema de empacotamento e criação de um pacote seguindo todas as guidelines.
Na documentação em vários trechos é recomendado a edição do código fonte original para debianização do aplicativo. O que ao meu ver só maximiza as possibilidades de problema como aquele infame warning no openssl que foi silenciado por um Debian desenvolver e fez com que as chaves de milhares de servidores fossem geradas de forma previsível.
Também há uma preocupação grande mas parcialmente justificável de separar os cabeçalhos de bibliotecas em pacotes adicionais e usar a mesma estrutura para gerar mais de um pacote elevando a complexidade do sistema.
Pensamentos Finais
Não muitos, eu não gosto desse sistema e as guidelines do Debian são uma aberração pra mim. Vou tentar criar um DebBuild script para gerar pacotes Debian no estilo Slackware e posto aqui se o fizer.
Meu chefe certo dia falou que o sistema do Slackware dependia do “artista” e não era processual o suficiente. Mas lendo a guideline do Debian eu descobri que ele está errado nisso, pois a inversa é verdadeira. O sistema do Debian é justamente isso, um sistema com sub-sistemas e macro-sistemas usados para gerar coisas que no final das contas são simples, uma arquitetura digna de um arteiro e não artista.
PS IMPORTANTE
Eu falo aqui da forma de geração de pacotes recomendada e ensinada pelo documento abaixo. NÃO estou considerando outras formas, se existirem, de gerar pacotes Debian. Como por exemplo a utilização de um script sh ou CDBS.
Referências
deb (file format) From Wikipedia, the free encyclopedia
Debian Policy Manual From Debian.org
PS. gentil correção do caio:
[11:39] <caio1982> guax: debian-binary nao eh a versao do pacote, seu animal, eh a versao dos binarios do debian (.debs em geral distribuidos em “formato debian”, nao sao backward compatible pra sempre)
PS2. adição do caio: http://build-common.alioth.debian.org/cdbs-doc.html
May 24
Estelionato
De conformidade com o Código Penal brasileiro o estelionato é capitulado como crime ecônomico (Título II, Capítulo VI, Artigo 171), sendo definido como “obter para si ou para outrem, vantagem ilícita, em prejuízo alheio, induzindo ou mantendo alguém em erro, mediante artifício, ardil ou qualquer outro meio fraudulento.”
May 20








