Dois anos.

Maio 21, 2009

(Esse post foi escrito antes, no dia 11 de maio de 2009).

Hoje vi uma cena que me bateu forte. Ardeu como uma faca entrando dentro do peito, rasgando o que ainda existe daquilo que costumo chamar de coração. Num momento que eu não esperava, de uma cena que eu deveria tentar me acostumar a encarar, mas não consigo;

Vi de longe uma família chegando, e no semblante de todos, um senhor de idade com aproximadamente 1,80 de altura. Este vestia bermuda, chinelos e uma camiseta cavada. Caminhando ao seu lado, um menino de aproximadamente 7 anos, vestido da mesma maneira, com um casal caminhando na frente dos mesmos. O garoto com a mão esticada, quase sem alcançar, segurava a mão do senhor idoso.

O tempo passa muito rápido. Ele conforta, mas também é frio e cruel. Eu já fui aquele garoto. E isso me fez sentir uma imensa saudade de ti. De quando andávamos juntos, mundo afora, assim que tínhamos oportunidade pra isso ou mesmo não. Tu faz muita falta, avô querido. De tudo o que fizestes por mim, do que me ensinaste, da minha (má) educação e de todas as nossas andanças.

Toda a fumaça de caminhão que respirávamos, da imundícia da maioria dos lugares por onde passávamos, nossos pés embarrados, roupas sujas, muita estrada, muita terra. Muito frio, muito calor. Soja, açúcar, arroz e bobina de aço. Tantas frases apenas nossas, que só nós dois conhecíamos o significado! “Sou cosipano”! Choro a cada vez que me lembro daquele seu rosto de safado, de menino que não teve infância, mais moleque do que eu. Nunca estava de mal-humor, exceto quando os teus problemas de saúde começaram.

E me corrói lembrar o quanto errei contigo. O quanto fui imaturo desde que sua saúde foi abalada por aquele trágico AVC. Que eu não fiz nada por ti, e que fui o pior neto do mundo por não perceber a complexidade de toda aquela situação. Parecia que eu havia esquecido todas as toneladas que carregamos e os milhares de kilômetros que andamos juntos. Não me perdôo por ter errado de tamanha maneira. Mas, sei também, que o seu descanso em nosso Deus me ofereceu uma nova chance de redenção, da qual eu me afastava a cada dia que passava desde todo ocorrido.

Como estaríamos hoje? Sei que tu me ajudaria com todos os meus problemas atuais. Não teria passado nem perto da maioria de todos os erros que cometi. Tu jamais me deixava desistir, e não aceitava que eu errasse, nem que pra isso preciassse me ensinar duzentas mil vezes! Minha perna roxa daqueles “tapinhas”, oriundos daquela enorme mão de mecânico/caminhoneiro, depois de meia hora errando ao tentar arrancar o velho Mille ELX na subida era prova disso!

Queria muito poder, hoje, estar dirigindo aquele velho jacaré 77, com graneleira 3 eixos e cuja placa ainda lembro de cor. Contigo, dessa vez já ao meu lado, onde pudéssemos parar numa boa sombra, esticar nossas duas redes (a tua sempre será a maior) descansando um pouco da cabine do caminhão. Como é bom sonhar!

Sei que vamos nos encontrar novamente, como sei que a hora está cada vez mais próxima. Nesse dia você saberá dessa mensagem, e de cada pensamento minúsculo que passou pela minha cabeça durante o tempo que estamos afastados. Nesse momento, já não importará mais nada. Venceremos no final. Assim, até lá, eu pensarei em ti por todos os dias. As justificativas ou desculpas já não serão mais necessárias. Tudo terá acabado. Tu já venceu o mundo, lutou demais e agora descansa. Só falta eu.

Continuarei tentando fazer o meu melhor, para que possamos de fato nos reencontrar. Preciso te dar um abraço, com nossos corpos já livres de toda imperfeição e pecado. E aí sim, seremos felizes novamente, servindo ao nosso Deus, sem mais pranto, guerra nem dor. Te amarei pra todo o sempre.

Lucas Timm.

(Em memória de Rubem Timm)


Cúmulo do ócio:

Março 4, 2009

Discutir em comunidade Linux (do orkut) e escrever uma resposta sobre esse texto. Eu não aprendo mesmo.   :p

1) O texto se contradiz e é demasiadamente amador, no meu ponto de vista. Não tem visão corporativa concreta. Dá uns beliscões infantis na Microsoft e sempre criticando o monopólio. Independente do monopólio, é inegável que hoje temos conquistas no seguimento desktop que foram obtidas graças a Microsoft, por hora a bruxa malvada.

Se todos os Linusers conhecessem um pouco da história da tecnologia saberiam o que a Microsoft defendeu no início da era pecê: A liberdade de escolha. Sim, a liberdade de escolha. Para deixar todo mundo ciente: A Microsoft destruiu a IBM por que seu sistema operacional (o DOS) poderia ser instalado em qualquer computador, e não apenas nos IBMs. Se não fosse por ela, provavelmente seu IBM teria OS/2, seu Apple Mac OS X, seu Dell alguma outra coisa, meu HP Vectra VL5/100 talvez rodaria o HP-Ux (eu confesso que gostaria) e o hardware dos pecês não seria vendido individualmente.

2) Na visão do autor, inúmeras empresas “boazinhas” ajudam no desenvolvimento do Linux (sic: Red Hat, Novell, IBM, Intel, Oracle, Google, HP, SGI, MIPS, Cisco, Fijitsu <– que na verdade seria Fujitsu, não importa). Claro, a Microsoft, detentora do monopólio mundial e whattever não está presente. Apesar de não contribuir diretamente com o kernel Linux, ela contribui para o OpenOffice (tá bom, foi forçada neste daqui), Apache e até para o Moonlight, doando dinheiro, código e fornecendo APIs. Prefiro acreditar que ele esqueceu de citar esse aspecto.

3) O que podemos dizer do Linux em supercomputadores, onde o monopólio é dele? Ou em servidores web, cujo monopólio é do Apache (em FreeBSD e Linux)? Segundo a idéia do texto, um monopólio só é prejudicial se for da Microsoft, por que ela é feia, boba, chata e o Linux é melhor pra todo mundo, blá blá blá. Refaço minha afirmação: Dois pesos duas medidas? Como fica a concorrência?

4) sic: Linux é especialmente bom para o Brasil. Claro, a Microsoft não é. A Imagine Cup não tem revelado brasileiros talentosíssimos em vários aspectos de desenvolvimento. Claro, infelizmente, apenas para Microsoft. Porém cadê a liberdade de escolha, e em quê isso prejudica a nação?

5) sic: Usuários leigos são refém do medo da mudança, de ter que estudar a disponibilidade de programas e procurar programas similares se for preciso e a falta de motivação para aprender algo novo já que há décadas o Windows como sinônimo de computador e por mais fácil que seja uma distribuição Linux voltada pra usuário comum seja, é diferente do Windows.
E tem mais, pessoas comuns são levadas por mitos e preconceitos. Tudo em conjunto com a falta de informação e com contribuição da pirataria para manter todo o “ciclo do medo” (leia estudo de Havard: “Pirataria favorece Windows”).

Usuários comuns não querem Linux, fato. Linux é um sistema pra g33ks e não para usuários comuns. A experiência do usuário comum para uso básico no Linux é sempre boa, até ele precisar instalar alguma coisa. Ah, chega. :P

Stay safe,

Lucas Timm.


A primeira tattoo a gente nunca esquece.

Fevereiro 17, 2009

Afinal, nerd que é nerd tatua o nome em hexadecimal nas costas. Em courier, fonte de terminais.   :D

Agradeço imensamente a idéia ao amigo Renan. :D

 

 

E não, não dói.

Stay safe,

Lucas Timm.


Por essas e outras, estou largando o Fedora.

Dezembro 21, 2008

Ahh, fala sério… Já bastou duas versões da distribuição sairem instáveis, tanto o Fedora 9 quanto o Fedora 10. Aí o pessoal sempre alardeia pra toooodo mundo que o Fedora é uma puta distribuição comunitária, que todo mundo se ajuda e blá blá blá. Aí eu tento criar um servidor NFS, que faço de cor e salteado desde o Kurumin 3, que não funciona. Googleio e não acho nada, peço ajuda e…

* Timmerman (n=timm@201.47.183.12.adsl.gvt.net.br)entrou em #fedora
<Timmerman> Hi, I’ve created a NFS server on Fedora 9; I created the “/nfs” folder, add the line  “/nfs  192.168.1.*(rw,insecure,async,no_subtree_check,no_root_squash)” on my /etc/exports and restarted the rpcidmap/rpcbind/nfs/nfslock/rpcgssd/rpcsvcgssd services
<Timmerman> so I try to mount this dir on localhost (mount -t nfs 192.168.1.2:/nfs /mnt/nfs) and he mounts normally
<Timmerman> but, in tree another hosts (with CentOS 5.2/RedHat 5.2 and NetBSD) I’ve can’t mount the shared directory
<Timmerman> In all cases I received the message “mount: mount to NFS server ‘192.168.1.2′ failed: RPC Error: Program not registered.”
<Timmerman> but, If I create with the same procedures a NFS server on RHEL/CentOS it mount normally for any host on my network
<ivazquez|laptop> Did you open the ports?
<Timmerman> ivazquez|laptop, I have no firewall, and is in my local network

cri… cri… cri… cri…

Depois do Ubuntu 8.10, acredito que finalmente, quem está amadurecendo é o Ubuntu, e depois do Fedora 9/10, ele é quem passou a regredir. Fato é que, meu desktop precisa mudar. Não migrei pra Linux pra usar um sistema operacional instável e resintalar a cada 6 meses por causa das novas versões. Quero estabilidade e viabilidade em primeiro lugar. E ainda não decidi se adoto o CentOS ou o NetBSD como meu próximo desktop. Mas, do jeito que vai, não dá…

Stay safe,
Lucas Timm.

UPDATE: Resolvido com a solução Microsoft (Reboot). Aliás, resolveu em parte. De outros Linuces ele montou o NFS. No NetBSD acesso negado… ULTRAJE! -_-’


Usando (e criando um roteador com) NetBSD

Dezembro 15, 2008

O princípio. Senta que lá vem história!

Há muitas coisas que realmente adoro. E, uma delas, são os servidores. Máquinas preparadas para o funcionamento 24×7, com pouquíssimo downtime. Ahh, os servidores!  ^-^’  O gerenciamento, a instalação, configuração, os testes, e os uptimes são coisas muito legais de se acompanhar no dia-a-dia. Pra quem gosta, claro. E, como sysadmin, é legal ter algo para brincar nas horas vagas.

Então, em casa, possuo um HP Vectra VL5/100. Não é um servidor, mas sim um desktop construído em 1996 com uma incrível configuração: Pentium 166, 96MB Ram (em pentes EDO!) e funcionando perfeitamente. Ganhei-a de um amigo que estava se desfazendo de suas velharias tecnológicas, e preparei a máquina para executar a função de um servidor doméstico. É basicamente um roteador, controlado por porta serial e cabo RS-232!

Assim, quando o ganhei, troquei o HD por um cartão Compact Flash de 2GB espetado na IDE através de um adaptador (R$60,00 no total, pelo ML), substituindo o velho e barulhento Quantum Fireball de 4GB. Retirei o fan do processador e coloquei um dissipador de cobre, do meu finado Athlon XP, bem como uma melhora na circulação de ar. Essa máquina veio com Windows Millenium, e coloquei o sistema operacional Linux assim que o recebi. Mas, por ser bem velho, a única coisa que funcionou nele foi o Slackware 11. Instalada em Maio de 2008, sobreviveu até alguns dias atrás com pouquíssimo downtime.

Os problemas

Quando instalei-o, originalmente, queria utilizar o Vectra com FreeBSD. Porém, o sistema nem bootava, indicando alguma incompatibilidade feia com a controladora IDE do rapaz. Foi até tolerável, até por que, pior que configurar um ADSL PPPoE com modem bridgeado no FreeBSD é só configurar esse mesmo ADSL PPPoE com modem bridgeado no Solaris. O Slackware 11 funcionou muito bem enquando durou.

Porém, para acelerar o longo processo de boot, com mais de um minuto e trinta segundos, havia retirado a verificação do sistema de arquivos ReiserFS, o que garantiria a rapidez no caso de um reboot inesperado. Não me causou problemas durante seis meses, até o momento que mudei de casa.

Na casa nova, a rede elétrica é monofásica, e qualquer coisa estava provocando a reinicialização do Vectra. Em menos de um mês o sistema de arquivos já estava destruído, e numa bela manhã, o sistema operacional já não bootou mais. Basicamente um fsck.reiserfs –rebuild-tree resolveria o problema. Mas, pelo gabinete ser desktop (e o monitor ficar em cima), e a máquina não ter cdrom nem disquete, o trabalho seria o mesmo de uma reinstalação.

Então, tive um lapso de vontade de testar novamente o NetBSD no Vectra. Sem motivo ou razão aparente. No segundo semestre da faculdade, havia instalado o NetBSD em várias máquinas velhas de um laboratório que não possuia internet. Utilizava mesmo para idiotices, e nunca havia explorado nem o gerenciamento de pacotes do sistema operacional. Será que funcionaria nessa máquina? Afinal, o FreeBSD não funcionou, mas não custaria nada tentar.

E eis que veio o NetBSD!

Testei dias antes numa máquina virtual, no trabalho, e como me diverti! Unix _É_ o sistema. (E que o Open Group não me leia). É ótimo editar um rc.conf, ler os manuais bem elaborados e diretos que os desenvolvedores de sistemas BSDs criam, bem como seus handbooks. Decidi-me a instalar o NetBSD no Vectra. A instalação foi horrivelmente rápida, e o sistema estava instalado na velha carroça menos de 30 minutos depois.

Informações básicas sobre o sistema

1) Gerenciamento de pacotes

O NetBSD possui o pkgsrc, ferramenta de gerenciamento de pacotes semelhante ao Ports, do FreeBSD, e ao Portage, do Gentoo Linux. Porém, numa máquina com 166MHz e 2GB de armazenamento físico, nem cogitei a instalação compilação de qualquer programa através do pkgsrc.

Então, os repositórios do NetBSD também possuem pacotes pré-compilados para o sistema operacional. Óbvio que não garante a mesma otimização, mas quebra o galho e é muito fácil de gerenciar. Para isso, no NetBSD, os comandos são o pkg_add, pkg_info, pkg_delete, pkg_view e pkg_admin. Sintaxe mais limpa impossível: pkg_add (nomedopacote).

Os pacotes são buscados através do caminho absoluto (ou relativo), ou então através da variável de ambiente $PKG_PATH. Como a máquina não tem cdrom, setei-a apenas para o FTP do NetBSD com os pacotes atualizados:

export PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/packages/4.0/i386/All

A resolução de dependências é automática e eficaz, não como o horror do dpkg utilizado no Debian Linux.

Por ele instalei o bash, rp-pppoe (que não funcionou), o screen, apache, samba, pciutils, wget, vim (:split > ALL!) e irssi. Assim como o pkg-get do Solaris, os programas instalados pelo pkg_add ficam localizados numa hierarquia separada do resto do sistema: /usr/pkg/(whattever).

2) Configurações a nível de sistema

Fora os arquivos de configuração (que são iguais em todos os Unices/Linuces), uma coisa que eu nunca fui muito fã no Linux são as configurações na /proc. Funciona bem, mas organização do diretório não é muito prática. Assim como no FreeBSD, o NetBSD utiliza o comando sysctl. O sysctl -a mostra todas as configurações de sistema em execução naquele momento. Para que as configurações possam ser carregadas automaticamente, basta editar o arquivo /etc/sysctl.conf. O sysctl usa MIBs, assim como as de SNMP.

As configurações de inicialização, também como o FreeBSD e como várias distribuições Linux (como o Arch), são realizadas no arquivo /etc/rc.conf. Os scripts ficam no diretório /etc/rc.d. E, os exemplos como de praxe, ficam em /etc/defaults/rc.conf. Boa parte das configurações são realizadas somente nesses dois arquivos.

Os arquivos de exemplo também ficam localizados em /usr/share/examples e /usr/pkg/share/examples.

Configuração do Roteador

E enfim, a configuração de um roteador no NetBSD. Todos os programas necessários para a criação já estavam disponíveis após a instalação, bastou configurá-los: DHCPD, PPPOECTL e Packet Filter. A configuração do DHCPD é simplíssima como em qualquer sistema operacional, nem vou explicar aqui.

a) Definindo o IP fixo da interface de rede interna:

ifconfig ex1 inet 192.168.1.1 netmask 255.255.255.0 up

Para subir automaticamente durante o boot, basta adicionar ao /etc/rc.conf:

ifconfig_ex1=”192.168.1.1 netmask 255.255.255.0″

b) Configuração do PPPoE

Primeiramente é preciso criar o dispositivo virtual que utilizará o pppoe. Isso pode ser feito com os seguintes comandos:

ifconfig pppoe0 create
ifconfig pppoe0 inet 0.0.0.0 0.0.0.1 down

Após isso, é necessário vincular o dispositivo físico ao virtual:

ifconfig ex0 plumb
ifconfig ex0 up
pppoectl -e ex0 pppoe0

Então a linha de conexão. A senha é real, pois se trata da operadora GVT, e não é única.

pppoectl pppoe0 myauthproto=pap ‘myauthname=turbonet@turbonet’ ‘myauthsecret=gvt25′ hisauthproto=none

O status pode ser acompanhado pelo comando pppoectl pppoe0. Após a conexão, subir a interface:

ifconfig pppoe0 up

Para conectar automaticamente durante o boot, basta criar o arquivo /etc/ifconfig.pppoe0 com o seguinte conteúdo:

create
! /sbin/ifconfig ex0 up
! /sbin/pppoectl -e ex0 $int
! /sbin/pppoectl $int myauthproto=pap ‘myauthname=turbonet@turbonet’ ‘myauthsecret=gvt25′ hisauthproto=none
0.0.0.0 0.0.0.1 up

E adicionar os seguintes ítens ao /etc/rc.conf:


ifwatchd=YES
ipnat=YES

c) Habilitar o roteamento de pacotes

sysctl -w net.inet.ip.forwarding=1

Para ativar a cada boot, basta editar o /etc/sysctl.conf e adicionar o mesmo parâmetro ao final do arquivo.

d) Criação do ipnat.conf

Adicionar as linhas a seguir no arquivo /etc/ipnat.conf

map pppoe0 192.168.1.0/24 -> 0/32 portmap tcp/udp 40000:60000 mssclamp 1440
map pppoe0 192.168.1.0/24 -> 0/32

Os dois parâmetros estabelecem o nat das redes informadas através do dispositivo virtual pppoe0.

Novamente, para serem carregados durante o boot, basta adicionar no /etc/rc.conf:

ipnat=YES

Estado final do arquivo /etc/rc.conf:

#       $NetBSD: rc.conf,v 1.96 2000/10/14 17:01:29 wiz Exp $
#
# see rc.conf(5) for more information.
#
# Use program=YES to enable program, NO to disable it. program_flags are
# passed to the program on the command line.
#

# Load the defaults in from /etc/defaults/rc.conf (if it’s readable).
# These can be overridden below.
#
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
fi

hostname=”Vectra.timm.net”
sshd=yes
ifconfig_ex1=”192.168.1.1 netmask 255.255.255.0″
#defaultroute=”192.168.1.2″
ifwatchd=YES
ipnat=YES
dhcpd=YES  dhcpd_flags=”ex1″ #Definir interface para o sinal DHCP
smbd=YES
nmbd=YES
samba=YES
apache=NO
pf=YES
pf_rules=”/etc/pf.conf”
clear_tmp=YES

# If this is not set to YES, the system will drop into single-user mode.
#
rc_configured=YES

# Add local overrides below
#
wscons=YES

Reboot para testar se tudo vai subir automaticamente, e está pronto seu roteador em NetBSD! :-)

Pendengas

a) Uma coisa que eu realmente não gosto nos Unices (independente da família) é a nomenclatura dos dispositivos de rede. No Linux, independente do tipo, é sempre ethX, wlanX, pppX. No Unix não, e no NetBSD não é diferente. Minhas duas 3Coms, contidas no Vectra, são as ex0 e ex1. Placas de rede de outro modelo obterão nomenclaturas diferentes, mas não mudará no contexto do artigo.

b) Meu console serial, infelizmente, agora só funciona quando quer. O arquivo /etc/ttys está corretamente configurado, e não se trata de problema no cabo RS-232 ou nos adaptadores. O pessoal do canal #netbsd, da FreeNode, bem que tentou. Mas não deu certo.

c) Me adaptar a utilizar o vmstat no lugar do free:P

Conclusões

Sério. Esse Vectra nunca foi tão rápido em toda a sua (longa) existência. O NetBSD é um sistema operacional leve, enxuto e eficaz, e não tão repleto de cacarias como o FreeBSD. Isso pode garantir alguns anos a mais na existência deste velho guerreiro, apesar de continuar cogitando a aquisição de um Pentium 3 (Dell, Compaq, HP ou outro montado) para executar a mesma função quando este vier a óbito! :D

Porém, também é interessante para aqueles que reclamam sem conhecer. O NetBSD não é tão fácil como o Linux no quesito usuabilidade, afinal é um Unix de verdade. (Novamente, que o Open Group não me leia).  Recomendo para todo e qualquer geek (e aos usuários Windows também, pra aprenderem a não recalmar  :D ) a utilização deste sistema operacional, se possível em máquina pré-histórica equivalente. Vale a pena e é uma excelente chance de aprendizado.

E sim. Cogito seriamente em adotá-lo como desktop.

Stay safe!
Lucas Timm.

UPDATE: Vivendo e aprendendo. Não sabia que o Linux também tinha sysctl…