Month: April 2008

Como acabar com pirataria do WindowsXP em máquinas de baixo custo

É incrível como a maioria dos usuários ao adquirirem um sub-notebook (Asus EeePC) ou um computador pre-instalado com Linux logo removem o sistema e instalam WindowsXP no lugar. Tudo bem que muitas vezes a culpa é do fabricante que não colocou uma distro de Linux adequada, muitas vezes nem mesmo instalou e configurou os drivers de todo o hardware do computador.

Mas há muitos casos que a maioria das pessoas simplesmente removem o Linux por comodismo ou medo de tentar usar um novo sistema operacional.

E então como evitar que a pirataria ocorra? Poderia pensar em colocar travas na BIOS, mas isso tiraria a liberdade do usuário, então não é uma boa idéia.

Uma idéia simples e que provavelmente seria mais fácil de implentar é simplemente trocar o tipo de arquitetura usada neste computadores, algo como a Apple fazia ao usar PowerPC. Se estes notebooks viessem, por exemplo, com um processador ARM ninguém instalaria WindowsXP neles, uma vez que não existe versão do XP para esta arquitetura (tudo bem, tem o Windows CE/Mobile pra ARM, mas a quantidade de aplicativos seria muito pequena e o usuário ficaria na mão).

Já para o Linux pode-se dizer que quase todos os aplicativos estão disponíveis para as arquiteturas suportadas (entre em kernel/arch e conte), então o usuário teria todos os aplicativos desejados.

Infelizmente a industria está presa ao x86 há quase 30 anos (28), e poucas têm coragem de mudar, mas felizmente o Linux dá liberdade de arquitetura.

Leitura recomendada (tente não ir se puder):

http://www.embeddedtechjournal.com/articles_2005/20051004_msft.htm

Reacao ao descaso do governo com a pesquisa cientifica

Ja’ publiquei aqui um post falando que o governo adiou o aumento da bolsa dos alunos de mestrado e doutorado, e que nao ira’ investir em pesquisa cientifica como havia sido alardeado antes.

Pois bem, parece que alguem tomou uma atitude e resolver fazer uma peticao para que eles cumpram o prometido e invista em pesquisa, como prometido.

http://www.petitiononline.com/Pesq_08/petition.html

Ate’ o momento que escrevo este post apenas 1.900 post foram publicados, entao vamos fazer nossa parte e divulgar a peticao para que mais pessoas possam assinar a peticao.

Mais um ponto para Steve Wozniak

Sempre tive uma grande admiracao pelo Woz, nao apenas pelas invencoes que ele criou (os primeiros computadores da Apple, Controle remoto universal, etc), mas principalmente por ele como pessoa.

Hoje ao ler um post sobre ele no site http://circuitointegrado.folha.blog.uol.com.br minha admiracao aumentou ainda mais, vejam a resposta dele sobre seu pensamento sobre os sistemas de codigo fonte aberto:

Acredito que as pessoas com os ideais mais elevados estão interessadas em código aberto, e são essas pessoas que têm as maiores motivações para colocar seus talentos tecnológicos para trabalhar em benefício do mundo. Elas têm um impulso interno que diz: “Eu quero tornar o mundo um lugar melhor, eu quero que as pessoas tenham mais”. E elas são muito puras e muito distintas da ética comum nos negócios. É algo mais como uma ética pessoal, em que você é bom para outras pessoas, em vez de desejar uma situação em que você as controla e as trata como quiser para conseguir dinheiro. Então, basicamente, são pessoas muito puras que querem produzir algo melhor. Mas também não significa que elas sejam contra fazer dinheiro.

Contando linhas de codigo fonte

Contar a quantidade de linhas de codigos de um programa nao e’ uma tarefa tao simples como em principio possa parecer. Espacos vazios (linhas em brancos), comentarios e outras “tranqueiras” devem ser desconsideradas.

Felizmente alguem ja passou por este problema e resolveu criar a solucao, chama-se SLOCCount (Source Lines of Code Counter). Este programa serve para contar a quantidade de linhas de codigo em programas escritos em linguagens como Ada, Assembly, C, C++, Cobol, C#, Java, Python e varias outras.

So’ faltou contar as linhas de codigo da linguagem whitespace 😉

Mais info:

http://www.dwheeler.com/sloccount/

Quem usa Debian e derivados pode simplesmente executar:

apt-get install sloccount

Implementando estatistica de trafego no Linux

Infelizmente estou limitado a baixar 2GB de dados por mes, concordo que deve haver um limite, mas este valor parece piada de mau gosto. So hoje baixando o codigo fonte do E17 consumi mais de 200MB (puxa vida, nao sabia que o “trem” era tao grande assim, tudo bem que grande parte disso sao arquivos de imagem, mas mesmo assim). Isto significa que so hoje gastei mais de 10% da minha cota, e o que eu consumir a mais pagarei R$ 0,16 por MB.

O pior de tudo isso e’ que a Claro nao fornece nenhuma informacao online do meu consumo ate’ o momento.

Entao procurei na internet e achei uma dica interessante de como criar um script para gerar estatisticas:

http://ubuntuforums.org/showthread.php?t=381138

A ideia de colocar um pre-down em /etc/network/interfaces como o comando para salvar a quantidade de bytes enviados e recebidos nao funcionou. Entao comecei a investigar outras possibilidades. Em /etc/ppp/ip-down.d posso colocar os scripts que serao executados quando a interface for desconectada. Colocar o comando da dica do forum nao funciona porque a interface ja’ foi desativada quando os scripts neste diretorio sao chamados.

Entao fazendo testes com o pppd vi que ele joga para o syslog (/var/log/messages), no momento que a conexao termina, a quantidade de bytes enviados e recebidos:

Apr 20 22:51:05 linux pppd[3450]: local IP address 189.94.20.138
Apr 20 22:51:05 linux pppd[3450]: remote IP address 10.64.64.64
Apr 20 22:51:05 linux pppd[3450]: primary DNS address 10.11.12.13
Apr 20 22:51:05 linux pppd[3450]: secondary DNS address 10.11.12.14
Apr 20 22:52:21 linux pppd[3450]: Terminating on signal 15
Apr 20 22:52:21 linux pppd[3450]: Connect time 1.3 minutes.
Apr 20 22:52:21 linux pppd[3450]: Sent 7830 bytes, received 5107 bytes.
Apr 20 22:52:21 linux pppd[3450]: Connection terminated.

Entao resolvi criar um script em /etc/ppp/ip-down.d para pegar estes valores e adicionar num arquivo de log. O script ficou assim:

#!/bin/sh
tail /var/log/messages | grep “Sent ” | cut -d’ ‘ -f7,10 >> /var/traf/volume.log

E o script que soma e retorna a quantidade de dados trafegados ficou o mesmo da dica do forum, apenas modifiquei para funcionar com o sh ao inves do bash (nao quis usar o let):

#!/bin/sh
total=0
for part in `cat /var/traf/volume.log`; do total=$(($part+$total)) ; done
total=$(($total/1048576))
echo “Quantidade de dados trafegado conforme volume.log = $total MB”

===ATUALIZADO===
Para evitar o problema de outros processos enviarem mensagens de log para /var/log/messages e atrapalharem o funcionamento do script, resolvi enviar as mensagens de log do pppd para um arquivo separado. Para isto apenas adicionei no /etc/syslog.conf:

!ppp
*.* /var/log/ppp.log

Precisei criar um arquivo /var/log/ppp.log vazio antes de “restartar” o syslog, do contrario nao funcionaria.
Depois disso apenas modifiquei o script para usar ppp.log ao inves de messages:

tail /var/log/ppp.log | grep “Sent ” | cut -d’ ‘ -f7,10 >> /var/traf/volume.log