blog do Zé

22/2 de 2008

Sun tenta empurrar Solaris na marra para usuários do Java 6 de 64 bits

Categoria: Blah, hmmm, etc — jfonseca @ 5:22 am

A Sun, criadora da linguagem Java, vem usando uma tática que lembra os piores tempos da Microsoft quando se trata de promover seu kernel Open Solaris.

Eles não distribuem uma versão 64 bits do Java para Linux mas, se você selecionar Solaris como sua plataforma, há uma versão prontinha para download. Se você perguntar, é claro que dirão que é porque eles tem o Solaris na plataforma SPARC e que ainda não tiveram tempo de fazer uma versão pra x86. Mas isso não faz sentido nenhum.

O Linux e o Solaris obedecem aos mesmos padrões POSIX e possuem interfaces semelhantes dos utilitários mais comúns dos Unix em geral. Fornecer uma distribuição de 64 bits do Java para Linux seria questão de adaptar alguns detalhes, literalmente alguns minutos ou horas de trabalho de um especialista da Sun. No entanto, eles obrigam a comunidade Linux a utilizar o Java 1.4.2 de mais de 4 anos atrás enquanto que o usuário Solaris tem o privilégio de usar o 1.6

Na minha opinião isso é uma tentativa fútil e imatura de obrigar a comunidade GNU a adotar o OpenSolaris ao invés do Linux.

Mas, por que fariam isso? Se a Sun tem realmente a intenção de manter o OpenSolaris aberto, por que então tentam condicionar o uso do Java em 64 bits ao Solaris? O Java também não é aberto? Realmente não faz sentido.

Aliás, faz sentido, sim, se a intenção deles é a de prender todo mundo ao Solaris e depois cobrar por isso de alguma forma.

Veja bem, eu acho que a Sun deve cobrar pelos excelentes produtos que oferecem, mas tem que ser coerente na sua política. Ou é, ou não é, aberto. Se querem vender o Solaris, então vendam, é mais que um direito deles. Mas ficar fazendo picuinhas para nos obrigar a usar Solaris é bobagem, vejam aí a situação triste da Microsoft por ter jogado baixo durante tantos anos. A Microsoft tentou condicionar o uso do Windows à adoção do Internet Explorer. Dançou.

Se a Sun entrar nas estratégias da Microsoft ela não durará mais uma década sequer. Condicionar o uso do Java 64 bits à adoção do Open Solaris pode indicar o início do fim da linguagem Java(e da própria Sun).

Problemas com Java em 64 Bits no Linux? Ora pois, use Perl
Pra falar a verdade, o Java é uma linguagem burocrática e, sem ofensas, chata demais de trabalhar. Um simples programa exige o conhecimento de uma API cheia de nuances, cheia de “burocracia”, interfaces que tem que ser obrigatoriamente implementadas por completo ou dá pane no compilador, objetos pesados até para tratar de strings e por aí vai.

Quem trabalha com Java sabe que realmente não é uma linguagem muito produtiva. Os melhores programadores Java que conheco afirmam a mesma coisa : é demorado desenvolver em Java. Uma coisa eu concordo : ela promove um design elegante de programas, e esses costumam ter boa escalabilidade devido a sua estrutura (obrigatoriamente) bem organizada, mas, sinceramente, a minha filosofia é de não entrar na casa alheia porque não fui convidado e não porque há uma cerca elétrica me impedindo.

Se você achou essa última frase familiar, é porque eu a plagiei de Larry Wall, criador da linguagem Perl. E essa sempre foi minha filosofia com software. Veja bem, o Java vigia tudo o que você faz. É uma KGB vigiando tudo o que voce programa, controlando, medindo e intervindo o tempo todo.

A linguagem Perl, no entanto, te permite destruir seu programa com facilidade. Não há cercas, nem muitas regras. O if() pode vir antes ou depois da acão, como na linguagem humana. Pegue o carro se quiser ou, se quiser pegue o carro, significam a mesma coisa, e assim funciona no Perl também.

O Perl tem um coletor de lixo(GC) e não conheco qualquer vazamento de memória encontrado no Perl de muitos anos pra cá, portanto se argumentarem sobre o GC inteligente do Java, eu respondo que o do Perl é igual (ou melhor, dependendo de onde voce olhe).

Perl não é burocrática, com algumas linhas apenas você implementa um filtro que abre um arquivo, processa linha por linha, e fecha. Sem class, main(), try, catch e meia dúzia de “imports”. Web e Perl nasceram juntas, programar em Java na web é mais ou menos como estudar fisica quântica pro vestibular. Não que java seja tão complexa quanto a fisica quântica, mas porque é um exagero de complexidade para nosso tempo cada vez mais raro.

Enfim, aproveitando que a Sun não quer que seu Linux 64 bits tenha o Java 6, tire um tempinho para aprender Perl. Verá que seu dia vai render mais e seus programas vão rodar em 32 e 64 bits do mesmo jeito sem ter que implorar à Sun para lhe fornecer uma máquina virtual.


 

Gerenciador Financeiro BB: Como evitar ter que cadastrar o computador 2 vezes

Categoria: Blah, hmmm, etc — jfonseca @ 5:00 am

Se você, por acaso, tiver que formatar a máquina de sua empresa que é registrada pra uso do Gerenciador Financeiro do BB, talvez ache esta dica útil.

Se não modificar fisicamente o computador, então isso não configura nada errado perante o Banco do Brasil, visto que é o mesmo computador e portanto o mesmo “cadastro de computador”.

É muito simples.
1) Grave a pasta c:\BancoBrasil inteira num pendrive ou qualquer meio externo
2) Formate seu PC, reinstale o Windows
3) Baixe e instale a última VM Java visitando clicando neste link
4) Copie a pasta BancoBrasil de volta do pendrive para o C:
5) Abra o Explorer (o de arquivos, não o Internet Explorer) e clique em C:\, depois em BancoBrasil, depois em officePLUGIN e em seguida em index.html
6) Se tudo tiver instalado certo, seu navegador abrirá o Gerenciador Financeiro (Coloque-o nos favoritos pra não ter que repetir.)

Também funciona com o navegador Firefox. Parece óbvio que funcionaria, mas algumas versões atrás do GF ele dava um problema de segurança com o Mozilla / Firefox.


 

19/2 de 2008

Flash CS3 e o ActionScript 3 são elefantes numa sala de 10m quadrados

Categoria: Blah, hmmm, etc — jfonseca @ 11:55 am

“Perfeição não é quando você não tem mais o que acrescentar a uma obra, e sim quando não há mais nada a retirar dela.”
- Antoine de Saint Exupery

O autor do Pequeno Príncipe cunhou essa frase que acredito que reflete o espírito da boa engenharia. Uma obra está terminada quando você não tem mais nada a retirar dela para que ela cumpra sua função. Tem-se assim simplicidade que funciona.

Eu não quero começar uma “guerra entre linguagens”. Sei que cada um domina suas linguagens prediletas e que todas elas tem suas vantagens. E antes que me critiquem: sou fã do Flash (como espectador), apesar de não ser designer e não conseguir produzir mais que brincadeiras nessa tecnología.

Vou direto ao ponto, cá entre nós : por que a Adobe foi enfiar uma linguagem tão pesada dentro do Flash CS3?

O Macromedia Flash começou como uma alternativa mais leve ao Shockwave. Quem trabalhou com Shockwave nos anos ’90 lembra que tinha que criar os “filmes” no Director e depois passar por um programa chamado “Afterburner”(ou algo assim) para depois produzir o filme Shockwave. Dava pane direto, tinha que salvar o trabalho o tempo todo. Enfim, tudo era assim no Windows nos anos 90…

E aí chegou o Flash! Que alivio….o Flash resolveu 99% das necessidades de todo mundo no que dizia respeito a interatividade nas páginas. Nasceram sites como JoeCartoon.com que rapidamente divulgaram o poder do Flash como plataforma de publicação multimídia. E o sucesso imediato do Flash tinha uma motivo: uma interface e uma mini-linguagem que todo mundo poderia dominar.

Então vieram os Flash 3, 4, 5, MX e assim por diante até chegarmos no Flash CS3. E, junto com as melhorias na interface e na otimização dos recursos multimídia dos PC’s modernos, veio o peso, a lentidão e o excesso de funções. Já ouviu essa história antes?

O Flash CS3 é um verdadeiro elefante sentado no sofá. Não dá pra conversar com ele porque sinceramente ninguém vai ter tempo para decorar uma outra versão de Java(é Java, mas fala diferente) que embutiram dentro dele. ActionScript 3 é uma imitação completa do Java, ou imitação da imitação do Java(pensou C# ??).

Para que foram embutir uma linguagem completa, totalmente orientada a objetos e com 2000 bibliotecas dentro do Flash??? Daquí a pouco vão transformar o ActionScript em linguagem autônoma, fora do Flash…já está, inclusive, caminhando para isso. É aí que está o erro. Por que todas as linguagens que nascem pra resolver UM problema acabam se tornando num novo dialeto de algo que já existe há 40 anos? O Java trouxe inovações no início dos anos 1990. Essas linguagens que estão por aí que rodam em bytecode, o C# da Microsoft por exemplo, nada mais são que engenharia reversa do Java e das idéias por trás dessa plataforma. Não me leve a mal, é a mais pura verdade.

O Flash era tão bom porque ele fazia o que tinha que fazer e ponto final. O ActionScript era o que tinha que ser : uma mini-linguagem para dar vida ao filme Flash. E fazía tudo direitinho.

Agora, com esse trambolho que a Adobe criou, estou aquí lendo 200 classes, API’s, delegação de eventos, import pra cá e import pra lá e, enfim, basicamente me sinto como nos velhos dias aprendendo Java 1.0 todo de novo.

Pra que a Adobe foi enfiar uma linguagem tão grande e tão pesada no Flash? Já temos Java e C# se quiséssemos isso. Acho que foi um tiro no pé e sinceramente eu só queria fazer um filme que, quando clicado, me levava a um endereço X. E aquí estou lendo 200 páginas de enrolação da Adobe….

Áh! Bem, se você precisa que um filme Flash te leve a um URL específico quando clicado em qualquer parte, esta é uma solução que encontrei:


import flash.net.URLRequest;
import flash.net.navigateToURL;

function gotoURL(url:String):void {
var rURL:URLRequest = new URLRequest(url);
navigateToURL(rURL, ‘_blank’);
}

function onClick(event:MouseEvent):void {
gotoURL(“http://zefonseca.com”);
}

root.addEventListener(MouseEvent.CLICK, onClick);

Compara com o ActionScript que eu sabia há anos atrás (era algo assim, pode ter erros…):


on (click) {
getURL(“http://zefonseca.com”);
}


 

18/2 de 2008

“Virus do Google”: Leitores do Globo reclamam do erro grosseiro da redacão

Categoria: Blah, hmmm, etc — jfonseca @ 10:23 am

Clicando neste link você acessa a matéria do Globo sobre o suposto problema do vírus. Eu não havía visto os comentários ainda, mas realmente o povo está revoltado com o erro da Globo.

Um leitor diz “não adianta mudar o texto, está postado”. Bem, nós também capturamos aquí algumas telas. Até a Globo mandar eu tirar está aí pra vocês verem!


 

Virus engana redacão da Globo. Matéria errada vai parar na capa

Categoria: Blah, hmmm, etc — jfonseca @ 8:20 am

Muitos programas maliciosos, “trojans”, virus e coisas do tipo modificam o nome do seu navegador de internet. Então em vez de se apresentar só como “Internet Explorer” ele transforma o nome em “Internet Explorer turbinado por VIRUS JOHN”.

 

google_sob_ataque_home_c.png

Quando você acessa o Google com um desses navegadores infectados, ele mostra um CAPTCHA (aquelas letrinhas que tem que digitar pra vc provar “que é humano” e não robô) e impede pesquisas repetitivas vindas de seu endereco de rede. É para se proteger de um eventual ataque DDoS, onde por exemplo um vírus poderia se espalhar em milhares de computadores e todos pesquisarem no google automaticamente e repetitivamente, derrubando a rede(é, eles tem que pensar em tudo mesmo….).

Bem…..tendo explicado tudo isso, olhem só o que acho que aconteceu no Globo de hoje…. Entrei e ví a chamada “Google sob ataque de virus, servidores restringem acesso!!!” E pensei vixe Maria, como é que não vi isso…estive usando o google a manhã toda e não percebí!!! Então entrei no Digg.com e pensei “deve ser a matéria mais votada da hora” …. Não tinha nada no Digg. Nem no Propeller. Nem no próprio news.google.com.br….. Comecei a desconfiar que o Globo é que tivesse pegado um virus….

E, claro, tanto o Google.com quanto o com.br estavam normaizinhos…..

Imaginei-me na situacão do jornalista. O computador lá da redacão foi infectado com algum virus. O Google recebeu pedidos em série desses computadores, detectou e já marcou o IP do Globo como infectado…o jornalista viu a pagina do Google com CAPTCHA e não percebeu que o texto que ele próprio colou na reportagem diz que VOCE ESTA INFECTADO e não o Google.

Acontece que nessas redacões todo mundo sai pra internet por um mesmo IP, então o jornalista deve ter chamado outros e verificaram e viram a mesma coisa….então, voilà, pareceu um tremendo furo de reportagem! O Google está fora do ar!!!

E a nota foi parar na página principal do Globo….. e não dá pra dar crédito, porque ninguém assinou a matéria…. A chamada diz “Google sofre ataque e restringe acesso a pesquisas”

E a matéria diz :

RIO – Quem tenta realizar buscas no Google (tanto no “.com” quanto no “.com.br”) nesta segunda-feira está recebendo uma mensagem avisando que os servidores da empresa estão sendo atacados. Para realizar sua pesquisa, o internauta é obrigado a digitar um código de autentocação para, aí sim, ser encaminhado à página de respostas.

É o CAPTCHA meu chapa…alguém ai na redacão está infectado e jogou o IP geral de vocês na lista negra temporária do Google…. Não tem virus nenhum atacando o Google, ele está é se protegendo do virus que vocês pegaram aí nos computadores da redacão!

 

Matéria do início da tarde:
google_sob_ataque_c.png

 

Foi parar até no Google News! So que só tem a matéria do Globo lá…..
Globo com virus

 

Atualizacão 15:50 – “Google pode estar sob ameaca”

google_pode_estar_sob_ataque_home_c.png

O texto da matéria também foi modificado….o melhor que eles fazem é contactar o Google diretamente e tirar isso a limpo. Confiram como está o lead da matéria neste momento:

RIO – Alguns usuários que tentam realizar buscas no Google (tanto no “.com” quanto no “.com.br”) nesta segunda-feira estão recebendo uma mensagem diferente no lugar da resposta para a busca solicitada. Um alerta publicado pelo portal avisa que os servidores da empresa podem estar sendo atacados.

Atualizacão 17:15 – Pior que errar é insistir no erro.

Alguém tem que avisar pro pessoal da Globo que a tela que eles encontraram é normal, ela acontece quando uma faixa de IP’s tenta abusar do servico do Google. Foi só isso que aconteceu, não tem nenhum vírus no Google. Pior que errar a primeira vez e fazer alarde onde nao tinha notícia é persistir no erro e continuar publicando notas cada vez mais evasivas. Foi só uma faixa de IP’s que foi atingida, foi um erro e todo mundo erra na Internet. Mas o erro feio mesmo é continuar insistindo em que houve um problema sério…não houve nada.
google_pode_talvez_estar_sob_ataque_c.png


 

9/2 de 2008

Vários cabos de dados submarinos cortados…por uma âncora?

Categoria: Blah, hmmm, etc — jfonseca @ 1:11 pm

SeaCable.jpgSemana passada uma notícia chamou a atenção : um cabo de dados submarino rompeu-se e interrompeu a conexão com a Internet de diversos países do Oriente Médio e Asia. Ontem a empresa responsável pelo cabo anunciou que a causa do rompimento teria sido uma “âncora de 5.5 toneladas abandonada no local”. A notícia não fornece detalhes quaisquer sobre o rompimento e não esclarece boatos de que teriam sido diversos cabos rompidos.

A falta de informação sobre o acontecido e o fato de Israel e o Iraque não terem sido afetados tem levantado teorias da conspiração nos fóruns da internet. Pode ter sido um ataque terrorista? Um ato de vandalismo? As câmeras de segurança do Egito não registraram embarcações nas cercanias do local na data do rompimento(23 de Janeiro). E o incidente levou 7 dias para ser noticiado na imprensa, o que aumenta ainda mais o mistério.

Um especialista citado na matéria afirma que o acontecimento é muito comúm, e que normalmente não recebe muita atenção da imprensa. Acontece que desta vez, supostamente, foram diversos cabos rompidos e a interrupção em países de enorme população chegou a mais de 60%.

Para saber mais sobre os cabos submarinos, confira alguns links que separei sobre o assunto.

A Wikipedia traz uma interessante cobertura do acontecimento e você pode conferir clicando neste link(por enquanto não há tradução).

Clique aquí para conferir uma foto em alta resolução de um antigo cabo submarino da época da II Guerra Mundial.

Confira aquí um mapa do cabeamento mundial.


 

6/2 de 2008

Technorati!

Categoria: Blah, hmmm, etc — jfonseca @ 10:53 am

O Technorati exige que eu mostre que este é meu blog! Para isso é preciso postar aquí um link para eles com um digest criptográrico único. Quando o robô deles ver este link saberá que realmente este blog pertence a mim.

Então lá vai o link que mandaram eu colocar aquí: Technorati Profile


 

5/2 de 2008

Por que o OS/2 da IBM nunca se tornou software livre / open source?

Categoria: Blah, hmmm, etc — jfonseca @ 5:55 am

Um interessante artigo da IT Management especula sobre os motivos pelos quais o OS/2, que um dia já foi o carro-chefe dos sistemas operacionais para PC’s da IBM, jamais foi lancado como projeto de Software Livre.

O produto foi descontinuado em 1997 e completamente retirado do mercado em 2005. Ou seja, seu valor tende ao zero a cada dia que passa. Por que a IBM tem negado liberar o código?

Será que o código ainda existe?
O artigo traz algumas hipóteses, entre elas a de que a IBM simplesmente não tenha mais o código fonte todo organizado e que portanto sairía caro demais empacotá-lo num .tar.gz para a alegria da comunidade SL. Ou que talvez tenha sido destruído. A possibilidade existe, principalmente a de uma destruicão proposital do código. Os escritórios IBM em Boca Raton(seguindo pela famosa avenida A1A ao norte de Miami) onde o OS/2 foi, em grande parte, desenvolvido já não existem mais, e há a possibilidade da propriedade intelectual alí produzida ter sido perdida. A reportagem cita pelo menos uma fonte da IBM que afirma que essa hipótese é plausível.

E vale lembrar que em 1997 a idéia de liberar código fonte de sistemas corporativos ainda não era lá considerada muito inteligente. Muito menos código produzido em parceria com a Microsoft, conforme discutiremos adiante.

Java e o Solaris custaram bilhões – e a Sun abriu
Hoje, com o Java e o Solaris abertos por exemplo, sabemos que projetos de bilhões de dólares estão sendo desenvolvidos muito mais rapidamente pela comunidade do Software Livre do que estaria sendo no ambiente fechado dos anos 80 e 90. Mas, em 1997 a IBM jamais poderia sonhar em “dar de presente”(era assim que muita gente pensava sobre o Software Livre então) um trabalho colossal como o OS/2. Naquela época o Software Livre era visto como um movimento ideológico e não como uma metodología de trabalho extremamente eficiente.

O pioneiro do Unix Eric Raymond, em seu livro “The Art of Unix Programming”(que você pode ler gratuitamente clicando aquí) afirma que a grande virada na visão do Software Livre como instrumento eficiente de compilar conhecimento humano, e não como ideología, foi em 2000. Nesse ano o mundo corporativo adotou de vez a metodología aberta como parte de sua estratégia.

Mesmo assim, com seus principais rivais adotando o Software Livre e a cada dia mais enfraquecida no mercado de PC’s, a IBM não liberou o código do OS/2, preferindo vê-lo desaparecer. Posteriormente, a IBM vendeu sua unidade de PC’s para um grupo Chinês. E assim, a empresa que tem o nome sinônimo com computacão, e que criou o IBM-PC, saiu do ramo, pela porta dos fundos. Uma empresa inteligente como a IBM não faria isso se não houvesse um motivo muito forte.

A Microsoft tem uma arma encostada nas costas da IBM?
Outra possibilidade, na minha opinião mais provável, seriam as implicacões legais da liberacão do código fonte do OS/2. Vale lembrar que o OS/2 já foi um projeto conjunto da Microsoft com a IBM. As duas empresas separaram os projetos e cada uma ficou com código que havía sido desenvolvido até aquele momento. O da Microsoft se tornou o Windows NT e o da IBM o OS/2 Warp. Talvez existam cláusulas desse acordo de separacão que tornem impossível a divulgacão do código pela IBM. A única empresa que ganha com o segredo do OS/2 é a Microsoft. A IBM, como já falamos acima, nada tem a ganhar com um produto descontinuado.

Um dos maiores segredos do Windows NT é o seu sistema de arquivos NTFS. Apesar do esforco de milhares de hackers de todo o mundo, até as versões mais recentes o Kernel Linux era incapaz de utilizar esse sistema de arquivos. Certo dia decidí arriscar e o Linux simplesmente destruiu um disco NT que eu tinha usado em testes. Talvez o NTFS seja um dos motivos para que a IBM não possa liberar o código do OS/2. Enfim, mais um motivo que só beneficia a Microsoft.

Minha opinião? Bem, eu acho que está mais para o problema legal mesmo com a Microsoft e outros que licenciaram o sistema IBM, entre eles governos. Existe a possibilidade forte do OS/2 ter sido usado em sistemas militares dos EUA e, assim, ter seu código considerado segredo até daquí a 30 anos(ou algo por aí).

Mas tem uma outra possibilidade, e está bem próxima a nós aquí no Brasil.

O OS/2 é o sistema operacional de centenas de milhares de caixas eletrônicos. Por aquí, se você passar por um caixa eletronico vermelhinho “24 Horas”, entre outros, que deu pane, verá que na telinha de boot aparece o logotipo IBM OS/2 Warp todo orgulhoso. Até um tempo atrás o Banco do Brasil utilizava OS/2 em seus equipamentos de auto-atendimento também, não sei como anda hoje. O que nos tráz à questão da seguranca do OS/2.

Seria ele um sistema seguro? Se nos basearmos no Windows NT nós temos todos os motivos para desconfiar que não e, pelo contrário, trata-se de um sistema bastante vulnerável.

O fato de não conhecermos muitas falhas de seguranca no OS/2 vem, na minha opinião, de 2 causas muito simples:

1) Internet: o OS/2 não chegou a ser amplamente testado nem como sistema caseiro ou como sistema de servidores na Internet
2) Forca Bruta: se você for pego testando a seguranca de um caixa eletrônico, provavelmente será preso

Então eu desconfio que, se nos basearmos na quantidade de furos de seguranca que descobriram no Windows NT de 1997 em diante, o código do OS/2 provavelmente não é exatamente um caixa-forte. Se isso é verdade, e a IBM divulgasse o código-fonte, vandalos poderiam estudar o ataque preciso no código fonte e então centenas de milhares de caixas eletrônicos estariam subitamente abertos a todo tipo de fraude.

O nome disso é seguranca por obscuridade, e foi o ponto fraco do Windows dos anos 90 para cá. A Internet permitia a divulgacão de uma informacão no que os hackers chamam de “tempo zero”, ou seja, garantir a seguranca digital por um segredo não funciona na Internet. A seguranca tem que ser por mecanismo, por política, e não por obscuridade. Um exemplo triste disso era a senha “Microsoft Barney” que vinha oculta no código compilado do programa de Planilhas Excel. Nos anos do DOS e dos usuários desconectados, o segredo jamais vazou. Mas na Internet alguem descobriu e divulgou a senha que era capaz de abrir todos os documentos Excel, mesmo os codificados com a “protecão” da senha Excel. Esse tipo de prática era muito comúm nos anos 80 e 90.

Mas, como vimos no Iraque, os George Bush dos anos 80 conseguiam manter em segredo coisas que não são mais possíveis esconder pelos George Bush dos anos 2000. O mundo mudou, e o OS/2 ficou para trás.

Confira o artigo clicando aquí.


 

2/2 de 2008

Configurando um adaptador USB Wi-Fi Encore ENUWI-G no Fedora 8

Categoria: Linux — jfonseca @ 8:05 pm

Há uns 15 dias instalei o Fedora Core 8 em meu notebook mas até hoje não tinha tido tempo para configurar tudo o que preciso para trabalhar. Aproveitei o fim de semana para colocar o note em dia e eis que a instalacão do adaptador Wi-Fi USB me deu um pouco de trabalho.

Primeiramente é preciso descobrir o chip que o adaptador utiliza. Normalmente a marca e nome fantasia não resolvem. Para saber o ID real do chip use o comando “lsusb” no shell do Linux.

O resultado deve ser algo tipo:
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 009: ID 0457:0163 Silicon Integrated Systems Corp.

A linha que nos interessa é a que tem o ID 0457:0163. Se você tiver vários dispositivos no USB e os nomes gerarem confusão, desligue-os temporariamente e teste com apenas o adaptador Wi-Fi para saber seu ID.

Jogando esse ID no Altavista encontro que o chip que possui esse ID é o SiS163u.

Agora que sabemos o modelo, precisamos encontrar um modulo de kernel para esse chip. No presente momento não me parece que exista um driver Linux para esse chip, assim precisamos utilizar o NDISWrapper para pegar emprestado um driver de Windows XP.

Instalando o NDISWrapper

Para comecar a instalacão, crio o diretorio /root/wifi para baixar os arquivos que vou precisar, compilar o ndiswrapper e etc.

O NDISWrapper, conforme o nome em inglês sugere, é um “embrulho” em torno do padrão NDIS do Windows. As chamadas do NDIS são interceptadas por essa camada de código e traduzidas para algo que o Kernel do Linux pode entender, assim migrando o driver do Windows para o Linux de forma quase transparente. Nem todos os drivers funcionam, mas pelo que se tem visto o desenvolvimento do Wrappers anda em ritmo acelerado e hoje grande parte dos cartões PCMCIA, placas PCI e dispositivos via USB estão funcionando através desse artifício. Mais uma conquista dos hackers Linux que, com isso, conseguiram migrar milhares de drivers nativos do Windows para o Linux. Como todo wrapper, este artificio torna o driver necessáriamente mais lento por inserir uma camada de compatibilidade entre o hardware e o kernel. Porém não é perceptível para redes caseiras visto que nossas conexões internet normalmente são muito mais lentas que o bus utilizado, neste caso o USB. Para redes de alta performance, clusters, etc, este tipo de wrapper poderia se tornar um gargalo. Não é nosso caso, então vamos prosseguir.

Baixe o ndiswrapper mais recente neste link do Sourceforge. Escolha a versão mais recente e estável da lista, no meu caso a 1.52. Baixe o pacote ndiswrapper-1.52.tar.gz dentro da pasta /root/wifi/ e instale seguindo os seguintes passos:

cd /root/wifi/
tar xjvf ndiswrapper-1.52.tar.gz
cd ndiswrapper-1.52
./configure –prefix=/usr
make install

O make install irá chamar as dependências, que incluem o make e instalará o ndiswrapper no /usr/sbin/ndiswrapper assim que a compilacão terminar. Não devem ocorrer erros nessa etapa, que é bastante simples. Se tiver algum problema me envie pelo campo de comentários deste post ou tente resolver lendo atenciosamente quaisquer mensagens na tela. Na instalacão padrão do Fedora não houve qualquer problema, então vamos adiante.

Encontrando o Driver NDISWrapper correto
Jogo a consulta ’0457:0163 ndiswrapper’ novamente no Altavista e recebo no primeiro resultado esta lista de dispositivos aceitos, há 2 ou 3 drivers compatíveis com esse chip. Escolho o seguinte, ao acaso:

# Card: Atlantis-Land Wireless USB Adapter (A02-UP-W54). 54mbps
* Chipset: SiS163
* usbid: 0457:0163
* Driver: http://www.atlantis-land.com/firmware/3463_A02-UP-W54%5BV10-20%5D.ZIP
* Other: I mount this on a slackware 10.2 with a 2.4.31 stable kernel. The device work very well!

Faco o download do link acima no diretorio /root/wifi e o descompacto assim:

cd /root/wifi
unzip 3463[teclo TAB para completar o nome extenso]

O pacote .ZIP descompactará um diretório Drivers, o qual acessamos e prosseguimos assim:

cd Drivers
cd Windows\ XP

E agora vem a parte importante, instalamos o driver Windows em nossa máquina com o seguinte comando:

ndiswrapper -i SiS163u.INF

Testamos a instalacão com o comando:

ndiswrapper -l

O qual deve retornar algo tipo:

sis163u: driver installed
device (0457:0163) present

Geramos o modules.dep novamente com o comando

depmod -a

E inserimos o módulo ndiswrapper no kernel atual através do comando:

modprobe ndiswrapper

Testamos se está tudo ok com o comando

lsmod | grep ndis

Cujo resultado deve ser algo semelhante a :

ndiswrapper 168860 0

Para termos certeza, vemos se o kernel tentou nos dizer algo no syslog através do comando

dmesg

Em alguma parte no fim do registro dmesg deve haver algo semelhante a :

ndiswrapper: driver sis163u (OEM,11/29/2004,5.1.1039.1020) loaded
wlan0: ethernet device 00:11:22:33:44:55 using NDIS driver: sis163u, version:0×10000000, NDIS version: 0×501, vendor: ‘NDIS Network Adapter 0457:0163.F.conf
wlan0: encryption modes supported: WEP, TKIP with WPA; AES/CCMP with WPA

No momento em que inserimos o módulo no kernel, este passa a enxergar o nosso hardware como um dispositivo de rede, wlan0 em nosso caso, que pode ser configurado com as ferramentas de rede tradicionais do Linux. No caso da interface Wi-Fi temos que fornecer os específicos da nossa rede para tentarmos obter um lease DHCP de nosso Access Point.

Configuracão Wi-Fi
Aquí em casa o access point é um D-Link DI-524 padrão 802.11g. O prédio onde moro está qualhado de access points abertos e sem senhas, porém já pago minha ADSL e não desejo abusar da rede alheia. Assim, fecho o access point com WPA e crio uma chave bem segura.

A configuracão do WPA no Fedora 8 é mais prática usando o wpa_supplicant. Este método exige que tenha algumas coisas configuradas corretamente na máquina, a saber: o arquivo /etc/wpa_supplicant/wpa_supplicant.conf

Primeiro vamos ver que redes estão disponíveis para conectar, usando o comando:

iwlist scan

Que resulta em

wlan0 Scan completed:
Cell 01 – Address: 77:88:99:aa:bb:cc
[DIVERSAS INFORMACÕES REMOVIDAS]

Procure a linha ESSID. Essa é a identificacão da rede encontrada, é nela que iremos conectar. Se você fechou seu AP com uma senha WPA, é preciso inserí-la no seu arquivo wpa_supplicant.conf. A senha não é fornecida em ASCII, e sim numa string hexadecimal que é facilmente gerada com o comando:

wpa_passphrase MEUSSID

Ele pedirá para digitar a senha do access point(AP) e o resultado pode ser colado diretamente no arquivo wpa_supplicant.conf. Exemplo:

#reading passphrase from stdin
teste123

O resultado é

network={
ssid=”minhawan”
psk=7d7ad77ad7ad7ad7a7d7ad7a7d7ad7a7d7ad7a7da7d7ad7a7d7ad
}

Copie e cole esse texto diretamente em /etc/wpa_supplicant/wpa_supplicant.conf substituindo, claro, o ssid pelo seu nome de rede e acrescentando quaisquer dados necessários à sua rede. Para cada rede sem fio que deseje conectar-se crie uma secão network={} nesse arquivo. Os parâmetros você obtem com o seguinte comando.

man wpa_supplicant.conf

Estamos quase lá! Agora coloque o wpa_supplicant para suplicar para você, através do comando:

wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 &

Substituindo o nome de interface e caminho do arquivo de acordo(exemplo, se voce tiver diversos arquivos, um para cada cidade onde trabalha ou algo assim) e dependendo do driver pode ser eth1 ou wlan0, etc. No caso do sis163u é wlan0. Coloco para trabalhar como processo de fundo utilizando o & no fim do comando.

Agora obtenha um endereco de rede à partir de seu AP com o comando:

dhclient wlan0

E se tudo correr bem você deverá receber um IP!!! O próprio dhcliente alterará seu /etc/resolv.conf para conter o nameserver correto.

Em meu caso precisei setar a rota principal na mão por algum motivo. Ainda não descobrí por que o DHCP não se encarregou disso, porém é muito simples em meu caso. Verifiquei que o IP obtido foi 192.168.1.25 e sabia que meu modem ADSL é o 192.168.1.1, então adicionei a rota default assim:

route add default gw 192.168.1.1

Novamente, não sei por que o DHCP não se encarregou desse passo final…deve haver uma solucão mais elegante, mas no momento preciso voltar ao trabalho!

Conclusão
São os mesmos passos que devem ser seguidos em qualquer sistema operacional, a diferenca principal é entre configurar as coisas em modo texto ou através de uma interface mais amigável. Existem diversas ferramentas para trabalhar essa configuracão em modo gráfico e outras para operar o wpa_supplicant dentro do X – como por exemplo o wpa_supplicant_gui – porém eu já tenho costume de trabalhar no shell. O NDISwrapper é uma mão na roda, esta solucão só foi possível gracas a ele!


 

1/2 de 2008

Microsoft usa a máxima da programacão : Na dúvida, use forca bruta (E nasce a Microhoo?!!)

Categoria: Blah, hmmm, etc — jfonseca @ 4:01 am

Nasce a Microhoo!Ironicamente, foi um dos criadores do UNIX que cunhou essa frase: Ken Thompson, inventor do UNIX. Mas é uma grande verdade. Muitas vezes estamos programando algo e pensando em um algoritmo elegante para o problema mas a solucão, na verdade, é um bloco feio e cheio de GOTOs – porém eficiente. No código de boot do Linux tem um bocado de coisa feita, mas são só os primeiros 512 bytes de um sistema que, de resto, funciona maravilhas.

A Microsoft sempre agiu assim, e a julgar pela popularidade de seus softwares posso dizer, com certa intencão de provocar os UNIXeiros aí, que eles acertaram mais do que erraram. E olha que não sou Microsoftie ein! Quem me conhece sabe o que penso da Microsoft.

Só que forca bruta tem seu charme. É a diferenca de um filme do Steven Seagal(graduado 6o Dan no Aikido) onde ele derruba todo mundo sem esforcos e um verdadeiro brutamontes feito Chuck Norris que entra no Iraque sozinho atirando, ganha a guerra e salva a loirinha sequestrada das garras do Saddam.

Eis que a Microsoft sempre entrou pé-na-porta atirando. Temos que admitir, isso tem seu charme. Há um tempo, e eu não achei o link para citar essa entrevista, perguntaram a um alto oficial da Microsoft o que eles pretendiam fazer para combater o Google. Ele respondeu “nós temos dinheiro em caixa para comprar o Google à vista na Bolsa”… E não é que é verdade?

Bem, todo esse papo é porque a Microsoft anunciou que vai comprar o Yahoo! por quase 50 bilhões de U$. O Yahoo! é o portal mais acessado da Internet, à frente do Google, e possui um sistema de buscas competitivo, apesar que na minha opinião ainda aquém da qualidade do sistema Google.

A oferta da Microsoft é em cash, são 40 bilhões em espécie – é pegar ou largar. Sabem o que é isso? É o velho estilo Bill Gates de fazer as coisas. Como Gates saiu da MSFT, eles andavam meio morocoxôs. Aposto com você que ele disparou um telefonema pro Steve Ballmer e disse “o que você pensa que está fazendo, KCT, compra logo o Yahoo”. E assim se fez a luz.

Para nós webmasters isso trará enormes mudancas, e agora é esperar para ver o que vão mudar de imediato.