Escrito por Helio Loureiro
Categoria:

Enfim a comissão européia aprovou a compra da Sun pela Oracle, criando uma gigante em hardware, sistemas e banco de dados. O futuro torna-se incerto para o MySQL, assim como OpenSolaris e OpenOffice.

Apesar de todo rumor sobre o que acontecerá com os projetos de software que eram patrocinados pela Sun, acredito que essa aquisição veio num bom momento. A Sun não andavam muito bem com suas finanças, perdendo cada vez mais mercado para servidores Intel ou HP. Seu hardware só estava sendo adquirido, junto com o Solaris, quando utilizado com o Oracle (o que faz a aquisição ter muito sentido). Fora isso, a empresa era um titã cambaleante, ofegante. Ou alguém tem a ilusão de que um servidor T5240, com 64 CPUs, 96 GB de RAM, seria comprado pra ser um servidor web?

Achei engraçada a imagem postada por James Gosling, um dos pais do Java.

é uma crítica direta, mas ele esquece que o CEO da Oracle, Larry Ellison, investiu em Linux antes da própria Sun, criando um versão própria chamada "unbreakable", anti-microsoft (aqui já é opinião minha), e fã de Java (talvez não tanto quanto a IBM). E se a coisa apertar para o lado do MySQL, isso não é nada que uma Google não possa "hostear" como projeto free software.

Eu acho que foi um final feliz. Vamos ver o que o futuro reserva.

Escrito por Helio Loureiro
Categoria:
Aproveitando a tranquilidade das férias, que juntei com as férias coletivas e mais uns dias que tinha no banco de horas (preferia em dinheiro) totalizando uns 35 dias, resolvi dar uma revisada nos meus sites, blogs, twitters, etc:

Como já esperava, o mais desatualizado é esse daqui mesmo :-)

Fui dar uma verificada nas estatísticas de acesso e encontrei algumas inconsistências no banco de dados (várias entradas para mesmo tipo de browser). Já tinha tentando arrumar isso com SQL uma outra vez, que não funcionou nada bem. Dessa vez resolvi partir para outra solução.

Utilizando o phpMyAdmin (administração do MySQL via web), fiz um backup da tabela "mos_stats_agents", e exportei a mesma no formato CSV.

Fiz um programa pra filtragem dos dados, em perl (disponível na outra parte desse post), deixando somente o valor do contador que fosse mais alto e... sucesso! Importei os dados novamente (fazendo antes um "DELETE FROM 'mos_stats_agents') e corrigi a tabela, que de 21140 entradas passou para 411. Tudo isso por falta de um "unique" num campo da tabela, que permite uns erros grotescos como esses que estavam acontencendo.

O programa permitiu visualizar umas estatísticas interessantes:

{CODE} === Report === Total accesses per browsers: 83316 Total accesses per operating system: 58728 Total accesses per countries: 104946 {/CODE}

Ou seja, a quantidade de acessos deveria ser igual. Pelos dados, vejo que o contador do site se baseia no número de sistemas operacionais que acessaram a página.

Dando uma olhada interna no gerenciamento do mamboserver, pude ver que, além de ter corrigido as entradas repetidas, a relação de browsers realmente inverteu, mostrando Mozilla e Firefox acima dos Internet Explorer, como muitos sites já tinham noticiado anteriormente (Info Exame por exemplo).

{mosimage}
Em sistemas operacionais, Windão continua sendo o número 1, seguido de alguma coisa desconhecida, que suponho ser bots do google e outros web crawlers, assim como web proxies. Linux continua com uns 5%.
{mosimage}
Sei que os acessos ao meu site não são boa amostragem, uma vez que o público que acessa é bastante específico, mas é possível notar que realmente as coisas estão mudando.

Leia mais:Estatísticas de acesso
Escrito por Helio Loureiro
Categoria:

 Acho que esse é um tema bastante procurado. Eu demorei pra encontrar os parâmetros corretos e 5 mídias (a R$ 7,00 cada). Foi um custo alto, mas com um sabor agradável de vitória :-)

Primeiramente, para copiar um DVD de Xbox 360, é preciso utilizar uma mídia DL (Dual Layer), com capacidade de 8 GB. As melhores são da marca Verbatim, mas tenho algumas da Kodak (com cara de coisa vagabunda mesmo). Nem todos os gravadores de DVD suportam gravação de DL, mas é possível descobrir no ínicio da gravação, que já aborta a operação e não perde o DVD.

Se for cópia de DVD para DVD, faça uma imagem local com o bom e velho comando "dd":

 dd if=/dev/dvdrw of=imagem.iso bs=4096 

Sempre utilizo bs=4096pois os blocos dos discos de DVDs são maiores, de tamanho 4kb, o que faz com que a quantidade de I/O por bloco seja menor. Mas não afeta o resultado final, nem o tempo.

Finalmente, para gravar, o comando é:

growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2 -Z /dev/dvdrw=imagem.iso

Veja que /dev/dvdrw é a sua unidade de DVD (em geral /dev/sr0).

Se não for cópia de DVD, mas gravação de imagem, substitua o imagem.iso pelo arquivo desejado.

Leia mais:Copiando e gravando DVDs de Xbox 360 no Linux
Escrito por Helio Loureiro
Categoria:


 Depois de tantos anos lutando contra as forças das trevas, finalmente eu mesmo me rendi. Não estou usando Windows, mas comprei um Xbox 360.

Isso mesmo: comprei. Não fui forçado, nem coagido, nem nada. Simplesmente resolvi adquirir um console mais recente pra jogar.

Encontrei algumas referências sobre como rodar Linux no mesmo, como em Free60.org, então achei que daria pra fazer algo mais com ele.

Infelizmente descobri que minha versão de hardware e software não permitiam isso. Então, só jogos mesmo. E porquê não um PS3? Pelo simples motivo que a cada 2 ou 3 jogos, vc compra outro console. No Xbox, existe a possibilidade de destravar e jogar jogos... humm... digamos *alternativos*.

Mas consegui encontrar vários scripts sobre o mesmo, em Linux, que pretendo publicar (por isso a seção xbox 360).

Aos desavisados, não se preocupem, pois já fui banido da Microsoft Live por causa do meu console *modificado*:

O arrastão que baniu os *moddeds* foi numa sexta-feira 13. Ao menos o pessoal da Microsoft tem um certo humor.

Escrito por Helio Loureiro
Categoria:

Já fiz upgrade pra recém lançada versão 11.2. Mas estou gostando do uso do Suse, com zypper. Inclusive consegui uma grande conquista:

7:02pm up 46 days 5:44, 12 users, load average: 0.58, 0.37, 0.16

46 dias sem desligar o sistema...

Escrito por Helio Loureiro
Categoria:
{mosimage} Finalmente tive a oportunidade de pegar uma das placas 3G, com chip da Claro. Uma das vantagens da migração do FreeBSD pro Linux é justamente a facilidade no reconhecimento de novos hardwares. A placa foi identificada de imediato pelo meu OpenSuse 11:
{CODE} usb usb7: configuration #1 chosen from 1 choice hub 7-0:1.0: USB hub found hub 7-0:1.0: 1 port detected usb usb7: New USB device found, idVendor=1d6b, idProduct=0001 usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb7: Product: OHCI Host Controller usb usb7: Manufacturer: Linux 2.6.25.20-0.4-default ohci_hcd usb usb7: SerialNumber: 0000:03:00.1 usb 6-1: new full speed USB device using ohci_hcd and address 2 usb 6-1: configuration #2 chosen from 1 choice usb 6-1: New USB device found, idVendor=0fce, idProduct=d0b2 usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 6-1: Product: Sony Ericsson PC300 usb 6-1: Manufacturer: Sony Ericsson usb 6-1: SerialNumber: 3579310101884440 cdc_acm 6-1:2.1: ttyACM0: USB ACM device cdc_acm 6-1:2.3: ttyACM1: USB ACM device usbcore: registered new interface driver cdc_acm drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters usb0: register 'cdc_ether' at usb-0000:03:00.0-1, CDC Ethernet Device, 02:80:37:0a:03:00 usbcore: registered new interface driver cdc_ether usb0: no IPv6 routers present {/CODE}
O driver cdc_acm foi carregado automaticamente.

Para fazer a discagem, instalei o aplicativo wvdial, velho companheiro dos tempos de modem discado, à 14400 bps. Utilizando o wvdialconf, a placa 3G é automagicamente identificada:
{mosimage} {CODE} Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 ttyS2<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud ttyS2<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud ttyS2<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up. Modem Port Scan<*1>: S3 ttyS4: No such device or address Modem Port Scan<*1>: S4 ttyS5: No such device or address Modem Port Scan<*1>: S5 ttyS6: No such device or address Modem Port Scan<*1>: S6 ttyS7: No such device or address Modem Port Scan<*1>: S7 WvModem<*1>: Cannot get information for serial port. ttyACM0<*1>: ATQ0 V1 E1 -- OK ttyACM0<*1>: ATQ0 V1 E1 Z -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0<*1>: Modem Identifier: ATI -- PC300 ttyACM0<*1>: Speed 4800: AT -- OK ttyACM0<*1>: Speed 9600: AT -- OK ttyACM0<*1>: Speed 19200: AT -- OK ttyACM0<*1>: Speed 38400: AT -- OK ttyACM0<*1>: Speed 57600: AT -- OK ttyACM0<*1>: Speed 115200: AT -- OK ttyACM0<*1>: Speed 230400: AT -- OK ttyACM0<*1>: Speed 460800: AT -- OK ttyACM0<*1>: Max speed is 460800; that should be safe. ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK WvModem<*1>: Cannot get information for serial port. ttyACM1<*1>: ATQ0 V1 E1 -- OK ttyACM1<*1>: ATQ0 V1 E1 Z -- OK ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM1<*1>: Modem Identifier: ATI -- PC300 ttyACM1<*1>: Speed 4800: AT -- OK ttyACM1<*1>: Speed 9600: AT -- OK ttyACM1<*1>: Speed 19200: AT -- OK ttyACM1<*1>: Speed 38400: AT -- OK ttyACM1<*1>: Speed 57600: AT -- OK ttyACM1<*1>: Speed 115200: AT -- OK ttyACM1<*1>: Speed 230400: AT -- OK ttyACM1<*1>: Speed 460800: AT -- OK ttyACM1<*1>: Max speed is 460800; that should be safe. ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. Modem configuration written to /etc/wvdial.conf. ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" {/CODE}
Esperava ver mais velocidade, mas 460k já é melhor que nada. Infelizmente a configuração padrão não funcionou de jeito nenhum. Vasculhando google afora, encontrei o link de configuração para outro tipo de modem, o E-226:

Adaptei a mesma para o PC300, como mostra meu /etc/wvdial.conf abaixo:
{CODE} [Dialer Defaults] Carrier Check = off Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Password = claro Ask Password = 0 Check Def Route = 1 Phone = *99***1# Idle Seconds = 0 Modem Type = Analog Modem Stupid Mode = 1 Compuserve = 0 Baud = 460800 Auto DNS = off Dial Command = ATDT Modem = /dev/ttyACM0 ISDN = 0 Username = claro [Dialer claro3g] Stupid Mode = on Password = claro Auto Reconnect = off Username = claro Phone = *99***1# {/CODE}
Também precisei editar o arquivo /etc/ppp/peers/wvdial para desabilitar as opções de compressão:
{CODE} plugin passwordfd.so noauth name wvdial debug kdebug 9 record /tmp/pppd.dump noccp novj novjccomp {/CODE}
Com isso consegui a conexão via 3G, bastando digitar wvdial.
{CODE} --> WvDial: Internet dialer version 1.60 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT*99***1# --> Waiting for carrier. ATDT*99***1# ~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&} } } } }%}&n>}/qzY~ CONNECT --> Carrier detected. Starting PPP immediately. --> Starting pppd at Fri Jul 31 21:34:15 2009 --> Pid of pppd: 14211 --> Using interface ppp0 --> Authentication (CHAP) started --> Authentication (CHAP) successful --> local IP address 189.94.168.217 --> remote IP address 10.64.64.64 --> Script /etc/ppp/ip-up run successful --> Default route Ok. --> Nameserver (DNS) Ok. --> Connected... Press Ctrl-C to disconnect {/CODE}
Não é muito rápido, mas ajuda muito em locais sem opção de Internet, como quando estou dentro do site de clientes.

Escrito por Helio Loureiro
Categoria:

Identidade mantida em sigilo...

(15:29:18) JR: helião....tá por ai?
(15:57:28) helio: to
(15:57:29) helio: diga
(15:58:36) JR: então cara...continua a mesma merda...não consigo escrever no disco ntfs...
(16:02:44) JR: não sei mais o que fazer...
(16:05:43) helio: vc olhou a manpage?
(16:06:00) JR: manpage?
(16:06:37) helio: RTFM
(16:06:46) JR: o que é isso?
(16:07:06) helio: man ntfs-3g
(16:07:19) JR: ah tah
(16:07:20) JR: hehe

Escrito por Helio Loureiro
Categoria:

{mosimage} Depois de mais de 3 anos rodando exclusivamente FreeBSD em meu laptop (sempre na versão RELEASE), finalmente resolvi voltar ao universo Linux. Nada contra os BSDs, especialmente o FreeBSD, mas era isso ou usar Windão, e Vista ainda por cima. Preferi ficar com o Suse, ou melhor, OpenSuse.

Realmente a instalação é bem facilitada. Comecei com o release 10.3, compatível com a versão do Enterprise Suse em uso na empresa, mas vi que o OpenSuse 11.1 também pode ser usado sem problemas (sempre a revelia do depto. de TI).

Filesystems criptografados, hibernação e uso da webcam no skype foram algumas das melhorias conseguidas com Linux. VirtualBox também está funcionando perfeitamente, o que me permite instalar o FreeBSD em uma máquina virtual.

Em semelhança ao Debian/Ubuntu, Suse/OpenSuse utilizam o aplicativo "zypper" para manter e atualizar o sistema. Bem inferior ao sistema do apt-get, mas ainda assim superior ao RPM por si só. Fui levado a versões não funcionais do xorg várias vezes por conta do uso do zypper. Fora que o sistema se perde quando proxy é habilitado ou desabilitado depois do sistema já em funcionamento. Nem o Yast ajuda muito nesse ponto.

O maior problema que passei, ou melhor, ainda passo, é em relação ao Xorg. O upgrade para o release 11.1 fez com que a interface gráfica ficasse tão lenta que era quase impossível sua utilização. glxgears mostrava por volta de 10, até menos, fps. Pelos links abaixo, foi possível ver que é um problema devido a mudança de arquitetura no xorg, da antiga XAA para EXA, causando vários problemas com chipsets Intel, inclusive o 945GM, que tenho no laptop.

Seguindo as dicas do link, consegui melhorar a performance adicionando "INTEL_BATCH=1" no /etc/environment, e modificando o "/etc/X11/xorg.conf" da seguinte forma:

{CODE} Section "Device" BoardName "945 GM" Driver "intel" Identifier "Device[0]" Screen 0 VendorName "Intel" Option "AccelMethod" "EXA" Option "MigrationHeuristic" "greedy" Option "DRI" "True" Option "ExaNoComposite" "false" Option "monitor-LVDS" "Monitor[0]" EndSection {/CODE}

Ainda inclui um script para forçar a configuração do registradores do placa de vídeo:

{CODE} echo "base=0xe0000000 size=0x10000000 type=write-combining" >> /proc/mtrr {/CODE}

Sendo 0xe0000000o endereçamento da placa de vídeo, que pode ser visto com "lspci -v". Com isso consegui uma performance melhor, como mostra a saída do glxgears:

{mosimage} {CODE} 5630 frames in 5.0 seconds = 1125.839 FPS 5623 frames in 5.0 seconds = 1124.464 FPS 5608 frames in 5.0 seconds = 1121.535 FPS 5598 frames in 5.0 seconds = 1119.583 FPS 5611 frames in 5.0 seconds = 1121.975 FPS 5633 frames in 5.0 seconds = 1126.477 FPS 5631 frames in 5.0 seconds = 1126.196 FPS 5580 frames in 5.0 seconds = 1115.859 FPS 5633 frames in 5.0 seconds = 1126.471 FPS 5519 frames in 5.0 seconds = 1103.767 FPS 5525 frames in 5.0 seconds = 1104.990 FPS 5514 frames in 5.0 seconds = 1102.650 FPS 5468 frames in 5.0 seconds = 1093.563 FPS 5413 frames in 5.0 seconds = 1082.578 FPS 5363 frames in 5.0 seconds = 1072.389 FPS 5516 frames in 5.0 seconds = 1103.187 FPS 5559 frames in 5.0 seconds = 1111.795 FPS {/CODE}

Infelizmente, após o sistema voltar da hibernação, o problema se repete, mas provavelmente deve depender de alguma atualização do próprio xorg. Enquanto isso, longa vida ao OpenSuse!

Escrito por Helio Loureiro
Categoria:

Depois de um período fora do ar, consegui arranjar um tempo para recuperar o site.

Fiz várias coisas que gostaria de ter descrito, mas... o importante é estar de volta (ainda que com alguns erros).

Back online!

Escrito por Helio Loureiro
Categoria:

Uma das vantagens de trabalhar em empresas multinacionais (incluindo gigantes da área de telecomunicações) é a possibilidade de brincar com máquinas de gente grande. T5240 da Sun é uma delas: 98 GB de RAM, 64 CPUs... Só roda Solaris 10, e da versão 10/08 (setembro de 2008) em diante.

T5240, No Keyboard 
Copyright 2008 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.30.0, 98080 MB memory available, Serial #00112233.
Ethernet address 0:21:28:cc:bb:aa, Host ID: 01234567.

Alguns desses gigantes será a base de dados de assinantes pré-pago (uns 3 milhões). Dois para redundância. Outro, um sistema de administração de VPN, para telefonia. Nada relacionado com VPN criptográfica, com túneis, etc de redes de computadores.

Escrito por Helio Loureiro
Categoria:

 Por motivos bizarros e nada claros para ninguém, resolveram fazer alguma "regra de segurança" na empresa para bloquear as máquina que não estejam rodando Windows Vista. Não que eu seja o único fora do padrão, mas existem os consultores externos que, assim como eu, são lembrados dessa limitação de tempos em tempos.

Como resolvi não perder mais tempo com isso, ou ficar bloqueado durante horário de trabalho sem aviso, e não migrar pro "Vista", resolvi fazer um script que altera meu MAC address da placa de rede a cada boot.

Fiz uma função em shell para poder ser utilizado em qualquer Unix, mas estou rodando em bash e não testei seu funcionamento em /bin/sh e /bin/ksh.

make_mac() { 
mac=""
for blk in 0 1 2 3 4 5
do
for id in 0 1
do
macid=`jot -r 1 0 15`
case $macid in
10) macid="a";;
11) macid="b";;
12) macid="c";;
13) macid="d";;
14) macid="e";;
15) macid="f";;
esac mac="$mac$macid"
done
mac="$mac:"
done
mac=`echo $mac | sed 's/:$//'`
if [ ! $mac ]; then
echo "Failed to generate MAC"
exit 1
else
echo "$mac"
fi
}

Para utilizar, basta fazer uma chamada como no código abaixo (já adaptado pra Linux e FreeBSD):

mymac=`make_mac` 
echo "Using MAC ADDR: $mymac"
case `uname -s` in
FreeBSD) INTF="bge0"
ifconfig $INTF lladdr $mymac ;;
Linux) INTF="eth0"
ifconfig $INTF hw ether $mymac ;;
*) echo "Operating System not supported"
exit 1
esac
Escrito por Helio Loureiro
Categoria:

FreeBSDA alegria do homem é realmente fugaz. Só o fato de olhar meu site e ver que não foi hackeado (SIC) novamente já me deixa feliz.

Assistindo alguns vídeos de umas palestras, encontrei por acaso o vídeo abaixo. Desconsiderando o título (BSD está morrendo), é uma palestra muito legal e engraçada. Infelizmente totalmente em inglês e sem legendas. Mas não se acanhe: eu também não entendi boa parte do que foi dito! Mas dá pra acompanhar bem a idéia pelos slides.