GDH Press: Blog
 
RSS

O fim dos pendrives

novembro 20, 2008 – 2:37 pm

O título que escolhi para este artigo é um pouco sensacionalista, mas a idéia é simples. Até 3 ou 4 anos atrás, a mídia mais usada para transportar dados eram ainda os disquetes de 1.44 MB. Foi criada uma cultura tão forte em torno deles que até hoje ainda são vendidos micros novos com drives de 1.44 e ainda é possível encontrar os disquetes à venda em algumas papelarias.

Apesar dos CDRs e CDRWs também serem muito populares, os legítimos herdeiros dos disquetes acabaram sendo os pendrives. Com as sucessivas quedas nos preços, hoje em dia quase todo mundo que tem alguma afinidade com tecnologia tem pelo menos um, ou em alguns casos vários deles.

Entretanto, apesar de populares, os pendrives estão rapidamente se tornando coisa do passado. A mudança não tem nada a ver com a velocidade, o tamanho ou a capacidade, mas com a massiva popularização dos cartões microSD.

A grande vantagem dos cartões microSD é que eles podem ser usados em praticamente qualquer dispositivo. Você pode usar no seu smartphone, câmera e assim por diante, sem falar na possibilidade de compartilhar o mesmo cartão entre vários dispositivos. Existem adaptadores do formato microSD para o miniSD e SD e também diversos adaptadores que permitem encaixá-los diretamente na porta USB, fazendo as vias de pendrive. Você pode inclusive usar um adaptador SD para ler o cartão microSD usando o leitor de cartões que você já tem, sem falar na possibilidade de compartilhar o mesmo cartão microSD entre vários dispositivos.

Existem até mesmo adaptadores microSD > Memory Stick Duo, o que permite utilizá-los em aparelhos da Sony, sem falar nos inúmeros modelos de leitores compactos, que transformam o microSD em um micro-pendrive:

Entretanto, o fator que está empurrando a popularização dos cartões microSD não tem nem tanto a ver com a flexibilidade, mas sim com o custo. Os cartões microSD são produzidos diretamente em torno dos chips de memória, sem o uso de nenhum circuito adicional. Os contatos do cartão são ligados diretamente em contatos do chip de memória, que é acessado diretamente pelo dispositivo no qual ele é encaixado. Você pode pensar nos cartões microSD como chips de memória flash avulsos, que você pode usar onde quiser.

Em comparação, em um pendrive é necessário incluir também um controlador (que faz a interface entre o chip de memória e o controlador USB), além da placa de circuito, o cristal de clock e outros componentes, um conjunto que acaba naturalmente saindo mais caro:

Naturalmente, os cartões microSD eram mais caros, já que no início poucos fabricantes os produziam, mas conforme o volume de produção foi crescendo, os preços foram caindo. Atualmente já é possível comprar cartões microSD de 4 GB por US$ 12, ou mesmo US$ 10 e cartões de 8 GB por menos de US$ 30 no Ebay ou em lojas como o DealExtreme, preços mais baixos que pendrives da mesma capacidade, uma tendência que em breve vai se mostrar também nos preços do Brasil.

Com isso, acaba sendo mais vantajoso comprar cartões microSD e usar os adaptadores apropriados para utilizá-los onde precisar, do que comprar pendrives, que servem apenas como pendrives. Outra tendência crescente é simplesmente usar o smartphone ou câmera como meio de transporte de dados, no lugar dos pendrives.

Um problema que afetou a geração inicial de cartões microSD foi a questão da capacidade, já que, diferente de um pendrive, onde é possível usar vários chips, em um cartão microSD existe espaço para apenas um.

A solução veio com o die-stacking, técnica na qual dois ou mais chips são "empilhados", conectados entre si e selados dentro de um único encapsulamento, que possui o mesmo formato e contatos que um chip tradicional:

Assim como em outras tecnologias, o uso do die-stacking inicialmente encarecia os chips, mas com a evolução da tecnologia ele acabou resultando em redução de custos, já que boa parte do custo de um chip de memória flash corresponde justamente ao processo de encapsulamento. Com isso, acaba sendo bem mais barato produzir um único chip, com 8 camadas, do que 8 chips separados, por exemplo.

A fronteira final para os cartões microSD pode ser uma batalha contra os SSDs e os HDs magnéticos, com a popularização de adaptadores RAID, que transformam dois ou mais cartões em um SSD que você pode plugar em uma porta SATA:

Por utilizarem um controlador RAID, estes adaptadores são capazes de combinar as velocidades de leitura e gravação dos cartões, solucionando também a questão do desempenho. Você poderia então transformar 6 cartões microSD de 4 GB cada e uma taxa de leitura de 4 MB/s em um SSD de 24 GB, com taxa de leitura acima de 20 MB/s.

Estes adaptadores ainda são incomuns e os poucos modelos existentes utilizam cartões SD regulares, mas assim como todos os outros dispositivos, eles tendem a também migrar para os cartões microSD

Entendendo os processadores de 64 bits

novembro 19, 2008 – 8:28 pm

Processadores de 64 bits não são duas vezes mais rápidos nem processam (necessariamente) o dobro de dados por ciclo de clock. A grande vantagem dos processadores de 64 bits é que eles são capazes de trabalhar com endereços de memória de 64 bits, o que permite endereçar muito mais do que 4 GB de memória RAM. Temos também um aumento no tamanho dos registradores, que passam a armazenar 64 bits de informações, em vez de 32, o que representa um pequeno ganho de desempenho.

Outro benefício (embora menos significativo) é que eles são capazes de processar números inteiros de até 64 bits, ao invés de 32. Isto oferece ganhos de desempenho em algumas áreas específicas (como, por exemplo, softwares de encriptação e alguns aplicativos científicos) mas não ajuda muito nos aplicativos do dia-a-dia. Processadores de 32 bits podem processar números inteiros de 64 bits, mas eles precisam ser divididos em duas instruções separadas, o que naturalmente toma mais tempo.

A primeira tentativa de criar um sucessor de 64 bits para a plataforma x86 veio da Intel, que em 2001 lançou o Itanium, um processador de 64 bits destinado a servidores.

O Itanium quebra a compatibilidade com a família x86, passando a utilizar o IA-64, um novo conjunto de instruções. O plano inicial era popularizar a arquitetura primeiro nos servidores, onde os benefícios de um processador de 64 bits são mais evidentes, e em seguida lançar também versões destinadas a desktops. O problema com o Itanium (além do processador ser muito caro) era que não existiam softwares capazes de se beneficiar da nova plataforma. Ele incluía um sistema de emulação, que permitia rodar softwares de 32 bits, mas neste caso o desempenho era muito ruim.

Ao invés de repetir o mesmo erro da Intel, lançando uma plataforma completamente nova, incompatível com os softwares atuais, a AMD decidiu desenvolver um projeto mais simples, que adicionasse suporte a instruções de 64 bits no Athlon (incluindo novos registradores, suporte a endereços de memória de 64 bits, etc.) sem entretanto quebrar a compatibilidade com os softwares de 32 bits, nem prejudicar o desempenho do processador ao executá-los.

Com isso chegaram a um processador de 64 bits, que desfruta de um número maior de registradores e maior capacidade de endereçamento de memória, mas que é capaz também de rodar aplicativos de 32 bits nativamente, sem perda de desempenho.

Este slide de apresentação da AMD mostra os novos registradores adicionados. Os 8 registradores x86 foram expandidos de 32 para 64 bits e foram adicionados 8 novos registradores de 64 bits, o que resultou em um espaço de armazenamento 4 vezes maior. Foram adicionados ainda 8 novos registradores para instruções SSE ou SSE2, mas neste caso não houve expansão, já que o SSE utiliza registradores de 128 bits:


Novos registradores x86-64

No modo "legacy", o processador funciona como um processador x86 comum, executando instruções de 32 bits e utilizando apenas os registradores padrão. Ao mudar para o modo "long", o processador tem acesso a 16 registradores de 64 bits cada um e passa a suportar as instruções e endereços de memória de 64 bits. O chaveamento entre os dois modos é feito de maneira muito rápida, de forma que o processador pode inclusive rodar aplicativos de 32 bits dentro de um sistema operacional de 64 bits, assim como era possível rodar aplicativos DOS ou Windows 3.x (de 16 bits) dentro do Windows 98 (que já era um sistema de 32 bits).

O conjunto de instruções da AMD foi batizado de x86-64 (e posteriormente renomeado para AMD64) e acabou sendo adotado também pela Intel, na forma do EM64T, um conjunto compatível, incluído sem muito alarde a partir do Pentium 4 com core Prescott. Pela primeira vez na história, a AMD ditou o novo padrão e a Intel se viu obrigada a segui-lo.

Ao utilizar um processador Athlon 64 ou um Intel equipado com o EM64T, existem 3 possibilidades.

A primeira é continuar usando as versões de 32 bits do Windows XP, Vista ou Linux, utilizando apenas aplicativos de 32 bits. Neste modo o processador se beneficia do controlador de memória integrado (no caso dos AMD) e outras melhorias na arquitetura, mas não utiliza os novos registradores, nem é capaz de endereçar mais do que 4 GB de memória nativamente.

A segunda possibilidade é utilizar um sistema operacional de 64 bits, como as versões de 64 bits do XP, Vista e de diversas distribuições Linux. Neste caso você tem um pequeno ganho de desempenho devido ao uso dos novos registradores e o processador passa a suportar mais de 4 GB de memória RAM. A maior parte dos aplicativos não exibe grandes ganhos de desempenho ao serem recompilados para rodarem em modo 64 bits, mas alguns (sobretudo bancos de dados) podem obter 15 ou mesmo 20% de ganho de desempenho em alguns casos.

A grande dificuldade em utilizar um sistema de 64 bits é encontrar versões nativas de todos os aplicativos. Chegamos então à terceira possibilidade, que é rodar um sistema de 64 bits, mas utilizar o modo de compatibilidade para executar aplicativos de 32 bits quando necessário. Neste modo, o sistema operacional precisa de mais memória, pois acaba tendo que manter carregadas muitas bibliotecas e componentes duplicados, mas o desempenho do processador não é prejudicado.

Como vimos, os aplicativos de 32 bits podem utilizar apenas 4 GB de memória (menos na prática, devido à limitações por parte dos sistemas operacionais). Um efeito colateral interessante é que, em um PC com 8 GB de memória, por exemplo, os aplicativos de 32 bits enxergarão e utilizarão apenas os primeiros 4 GB. A memória adicional poderá ser usada pelo sistema operacional e aplicativos de 64 bits, mas não ajudará muito em casos em que os aplicativos de 32 bits sejam os aplicativos principais.

Com relação à memória, os processadores AMD64 são capazes de endereçar até 1 terabyte de memória física, o que corresponde a 40 bits de endereços. Os 64 bits completos não são usados por questões relacionadas ao desempenho, já que não existem módulos e placas que permitam utilizar tanta memória atualmente.

Esta tabela, divulgada pela AMD, mostra os diferentes modos de operação suportados. Note que, além dos três modos que citei (64-Bit mode, que corresponde ao modo de 64 bits nativo; Compatibility Mode, onde são usados aplicativos de 32 bits, sob um sistema operacional de 64 bits e Protected Mode, onde são executados um sistema operacional e aplicativos de 32 bits) existe suporte também ao modo Virtual-8086 e ao Real Mode, que são os modos de legado, também suportados pelos processadores atuais. Neles o processador executa aplicativos de 16 bits, escritos para o DOS ou Windows 3.x:


Modos de operação dos processadores x86-64

Tenha em mente que a migração para os aplicativos de 64 bits é similar à migração dos sistemas operacionais de 16 bits (DOS e Windows 3.x) para os sistemas de 32 bits que ocorreu a partir de 1995. Ela acontecerá de maneira gradual, de forma que daqui a 10 anos ainda estaremos rodando alguns aplicativos de 32, ou mesmo de 16 bits, utilizando o modo de compatibilidade.

» Leia mais: Desenvolvendo um sucessor

Entendendo os celulares Made in China

novembro 19, 2008 – 5:44 pm

Pesquisando em qualquer loja online, você vai rapidamente encontrar centenas de imitações do iPhone ou de aparelhos da Nokia, HTC e de outros fabricantes, produzidos por fabricantes chineses e vendidos sob diversas marcas.

392d653

m6001a75f

À primeira vista, parecem um Nokia N95 e um iPhone, mas são na verdade "NokLa N95" e um SciPhone; dois clones made in China. Apesar da interface tentar imitar o sistema original, eles oferecem apenas algumas funções básicas (agenda, editor de texto, reprodução de arquivos MP3, AAC e vídeos 3GP, etc.) combinadas com uma câmera que tira fotos borradas e um navegador WAP, sem permitir a instalação de aplicativos e sem suporte a 3G ou qualquer outra função mais avançada.

Naturalmente, eles não rodam o S60 nem o iPhone OS, mas sim um sistema bem mais simples (mais a seguir). Eles são feitos com o objetivo de enganar o público que não sabem bem o que é um smartphone e não conhecem as funções dos produtos originais e, infelizmente, têm obtido sucesso na empreitada, a ponto de alguns chegarem a recomendá-los em fóruns e comunidades.

Tendo o aparelho em mãos, não é muito difícil perceber que se trata de uma cópia (mais leve, acabamento ruim, tela touch-screen mesmo em em aparelhos que imitam o S60 3ed., botões de atalho impressos na parte inferior da tela, e assim por diante), o grande problema é que eles são muitas vezes vendidos em sites de leilão, como se fossem os aparelhos originais. O vendedor pode jurar que se trata de um Nokia N95, mas ao comprar você recebe na verdade a versão pirata.

O mais interessante é que mesmo entre os clones existem aparelhos de melhor e de pior qualidade, pois é comum que um fabricante copie o firmware de um modelo lançado pelo outro e passe a produzir uma cópia similar (ou seja, um clone do clone), definitivamente uma situação esquisita.

Publiquei um tutorial no GDH sobre o assunto, explicando sobre os fabricantes, o hardware e os sistemas operacionais utilizados, como estes aparelhos são comercializados e assim por diante:

» Entendendo os celulares Made in China

Wi-Fi: Detectando vulnerabilidades com o Kismet

novembro 17, 2008 – 6:04 pm

Um dos grandes problemas em uma redes wireless é que os sinais são transmitidos pelo ar. Os pontos de acesso e placas utilizam por padrão antenas baratas, que proporcionam um alcance reduzido. Apesar disso, o sinal da sua rede pode ser capturado de muito mais longe por alguém com uma antena de alto ganho.

Não existe como impedir que o sinal se propague livremente pelas redondezas (a menos que você pretenda ir morar em um bunker, com paredes reforçadas com placas de aço), de forma que a única forma eficaz de proteção é encriptar toda a transmissão, fazendo com que as informações capturadas não tenham serventia.

Como a questão da segurança em redes wireless é muito divulgada, quase todas as redes já utilizam algum tipo de proteção, seja através do uso do WEP ou do WPA, seja através de uma lista de acesso dos endereços MAC autorizados a se conectarem à rede. O problema é que é relativamente fácil burlar a maioria destas proteções e quebrar a encriptação do WEP (inclusive do WEP de 128 bits), além de descobrir passphrases WPA fáceis, usando ferramentas simples.

É melhor que você conheça os ataques mais usados e veja você mesmo como é possível derrubar cada uma das proteções que utilizamos em uma rede típica, do que ficar com um falso senso de segurança, achando que o WEP de 128 bits é inquebrável, que não é possível detectar um ponto de acesso com o SSID broadcast desativado ou que não é possível burlar a restrição de acesso baseada em endereços MAC usada em muitas redes.

O Kismet é uma ferramenta poderosa, que pode ser usada tanto para checar a segurança de sua própria rede wireless quanto para checar a presença de outras redes próximas e, assim, descobrir os canais que estão mais congestionados (de forma a configurar sua rede para usar um que esteja livre) ou, até mesmo, invadir redes. O Kismet em si não impõe restrições ao que você pode fazer. Assim como qualquer outra ferramenta, ele pode ser usado de forma produtiva ou destrutiva, de acordo com a índole de quem usa. A página do projeto é a: http://www.kismetwireless.net/.

A principal característica do Kismet é que ele é uma ferramenta passiva. Ao ser ativado, ele coloca a placa wireless em modo de monitoramento (rfmon) e passa a escutar todos os sinais que cheguem até sua antena. Mesmo pontos de acesso configurados para não divulgar o SSID ou com a encriptação ativa são detectados.

Como ele não transmite pacotes, apenas escuta as transmissões, todo o processo é feito sem prejudicar as redes vizinhas, de forma praticamente indetectável. A principal limitação é que, enquanto está em modo de monitoramento, a placa não pode ser usada para outros fins. Para conectar-se a uma rede, você precisa primeiro parar a varredura.

Essa questão da detecção dos pontos de acesso com o SSID desativado é interessante. Não é possível detectá-los diretamente, pois eles não respondem a pacotes de broadcast (por isso eles não são detectados por programas como o Netstumbler), mas o Kismet é capaz de detectá-los quando um cliente qualquer se associa a eles, pois o SSID da rede é transmitido de forma não encriptada durante o processo de associação.

A partir daí, o Kismet passa a capturar todos os pacotes transmitidos. Caso a rede esteja encriptada, é possível descobrir a chave de encriptação usando o aircrack (que veremos a seguir), permitindo tanto escutar as conexões, quanto ingressar na rede.

Como o Kismet é uma das ferramentas mais usadas pelos crackers, é sempre interessante usá-lo para verificar a segurança da sua própria rede. Tente agir como algum vizinho obstinado agiria, capturando os pacotes ao longo de alguns dias. Verifique a distância de onde consegue pegar o sinal de sua rede e quais informações consegue descobrir. Depois, procure meios de reforçar a segurança da rede e anular o ataque.

Por ser uma ferramenta popular, ele está disponível na maioria as distribuições. Algumas, como o Knoppix (a partir da versão 3.7), já o trazem instalado por padrão. Nas distribuições derivadas do Debian, você pode instalá-lo via apt-get. Leia mais …

Usando os smartphones com o Windows Mobile como modem, no Linux

novembro 14, 2008 – 5:52 pm

Em posts anteriores falei sobre como usar o smartphone como modem bluetooth através do DUN, que está disponível em aparelhos da Nokia e na maioria dos aparelhos de outros fabricantes, com uma exceção importante: os aparelhos com o Windows Mobile.

Até o Windows Mobile 5, o sistema oferecia suporte a DUN e a conexão funcionava perfeitamente. A partir do Windows Mobile 6 (mais especificamente, a partir do WM 5 com o AKU3), a Microsoft decidiu introduzir um novo sistema de compartilhamento, baseado no perfil PAN, que é usado através do "Compartilhamento de Internet". O uso do PAN é vantajoso sobre alguns pontos de vista; o grande problema é que optaram por simplesmente remover o suporte a DUN, obrigando todos os interessados a migrarem para o novo sistema. Isso complicou as coisas não apenas para usuários de outras plataformas, mas também para usuários de versões antigas do Windows, anteriores ao XP SP2.

No caso do Linux, o PAN é bem suportado, desde que você utilize uma distribuição recente, como o Ubuntu 8.04 (ou mais recente) ou o Mandriva 2008. Eles já vem com o suporte a Bluetooth e os módulos necessários pré-instalados, o que torna a configuração bastante simples.

O primeiro passo é fazer o pairing entre o PC e o smartphone, o que no Windows Mobile 6 é feito através do "Iniciar > Configurações > Conexões > Bluetooth > Bluetooth Manager > Menu > Dispositivos com Correspondência >Adicionar". Certifique-se também de que o smartphone está configurado para aceitar conexões dentro da configuração do Bluetooth

Com o pairing realizado, abra o "Iniciar > Programas > Compartilhamento de Internet", usando o "PAN do Bluetooth" como conexão para o PC e a conexão referente ao serviço de acesso como conexão de rede. Ao clicar no "Conectar" o aparelho passa para o modo NAP, onde ele fica disponível para conexão de outros dispositivos autorizados:

Falta agora fazer a conexão no PC, que na verdade consiste em apenas 3 comandos, executados como root. Comece carregando o módulo "bnep", que é o responsável por fazer tudo funcionar:

# modprobe bnep

O próximo passo é abrir a conexão usando o comando "pand -n --role PANU --connect", seguido pelo endereço do aparelho (que você descobre usando o "hcitool scan"):

# pand -n --role PANU --connect 00:1E:75:67:2B:30

Da primeira vez que executar o comando, o smartphone exibe uma mensagem perguntando se deve aceitar conexões vindas do PC (que naturalmente você deve autorizar). A partir daí, você verá uma série de mensagens confirmando o estabelecimento da conexão, como em:

pand[8471]: Bluetooth PAN daemon version 3.7
pand[8471]: Connecting to 00:1E:75:67:2B:30
pand[8471]: bnep0 connected
Em caso de erros, verifique se o pairing foi feito corretamente e se o PC foi definido como dispositivo autorizado nas configurações do Bluetooth.

Com isso, é criada uma interface de rede virtual, a "bnep0", que é usada para a comunicação entre o PC e o smartphone. Para que a conexão seja finalmente ativada, falta configurá-la via DHCP, usando o comando:

# dhclient bnep0

Com isso, seu PC receberá um endereço na faixa 192.168.0.x e o smartphone passará a compartilhar a conexão, ficando disponível através do endereço 192.168.0.1 (que é usado pelo PC como gateway e como DNS), de forma muito similar ao que temos ao compartilhar a conexão usando o ICS do Windows.

Esta é justamente a grande diferença entre o sistema PAN e o DUN. No PAN o bluetooth é usado como uma interface de rede e o smartphone compartilha a conexão via NAT, enquanto no DUN o bluetooth é usado como porta serial e o PC estabelece a conexão "discando" para o provedor, como se estivesse usando um modem discado.

Para fechar a conexão posteriormente, use:

# pand -K

Para listar as conexões ativas (em caso de dúvidas sobre se a conexão está ativada ou não) use:

# pand -l

Como pôde ver, a conexão usando o sistema PAN a partir do Linux é até mais simples do que usando o DUN. A principal observação é que você precisa de uma distribuição relativamente recente para usar esta receita. Em distribuições antigas o suporte é ainda incipiente, fazendo com que você tenha problemas diversos. Assim como em outras áreas, a solução mais simples nesses casos é simplesmente atualizar o sistema.

Com relação à usabilidade, o principal problema com o PAN é que você precisa ativar o Compartilhamento de Internet no smartphone cada vez que for conectar através do PC. Não é possível simplesmente ativar a conexão e sair navegando sem tirar o telefone do bolso, como no caso dos aparelhos da Nokia. Isso elimina parte do appeal de usar o Bluetooth em vez de simplesmente ligar o smartphone no cabo USB.

Em seguida temos o compartilhamento da conexão via USB, que também é um problema. Em outros aparelhos, ao conectar o smartphone ao PC em modo de sincronismo, ele é detectado pelo sistema como um modem USB e você pode criar a conexão seguindo os passos tradicionais, mas no Windows Mobile as coisas são um pouco diferentes.

Eles usam usam um sistema próprio de compartilhamento de conexão, também ativado através do "Compartilhamento da Internet:

Mesmo ao indicar que o PC está ligado através da porta USB e clicar no "ativar", nada acontece. Não é criada a porta "/dev/ttyACM0" nem a "/dev/ttyUSB0" e, em muitos casos, não é sequer exibida nenhuma mensagem no dmesg.

A dificuldade é que, mais uma vez a Microsoft decidiu "inovar", criando um novo sistema de compartilhamento em vez de simplesmente usar o perfil de modem USB como em outros aparelhos. No sistema da Microsoft é simulada uma conexão de rede entre o PC e o smartphone através da porta USB, através da qual a conexão é compartilhada.

Com isso, passou a ser necessária toda uma nova camada de drivers e, como pode imaginar, a compatibilidade com o Linux não é exatamente uma prioridade para a Microsoft e a compatibilidade com o Windows Mobile também não é exatamente uma prioridade para as distribuições, já que pouca gente os utiliza no Linux de qualquer forma.

Apesar disso, é possível configurar a conexão usando versões modificadas dos módulos "usbnet", "cdc_ether" e "rndis_host", desenvolvidos pela equipe do SynCE.

Para instalá-los, você vai precisar dos compiladores básicos. No Ubuntu, você pode instalá-los através do pacote "build-essential":

# apt-get install build-essential

Em seguida, baixe o arquivo "usb-rndis-lite-0.11.tar.gz" (ou mais recente), disponível no:
http://www.synce.org/moin/SynceInstallation/Source

O passo seguinte é descompactar o arquivo, o que no terminal pode ser feito usando o tar:

# tar -zxvf usb-rndis-lite-0.11.tar.gz

Isso criará a pasta "usb-rndis-lite-0.11/" no diretório atual. Acesse-a e execute os comandos "make", "./clean.sh" e "make install" para fazer a instalação:

# cd usb-rndis-lite-0.11/
# make
# ./clean.sh
# make install

Esta é a receita genérica. Você pode também encontrar instruções de instalação em várias distribuições no http://www.synce.org/moin/SynceInstallation.

A partir daí, ao plugar o smartphone na porta USB e ativar o compartilhamento da conexão, o aparelho passa a exibir a mensagem "Aguardando a rede" ou "Conectado" em vez de "Verifique a conexão do cabo USB" (em alguns aparelhos você precisa desconectar e reconectar o cabo USB depois de clicar no "Conectar" para que ele detecte a conexão do PC).

Do lado do PC, o sistema detectará o smartphone como uma nova interface de rede, a "rndis0". Você pode confirmar a detecção usando o comando dmesg, que incluirá mensagens similares a:

usb 2-2: new full speed USB device using ohci_hcd and address 22
usb 2-2: configuration #1 chosen from 1 choice
usbcore: registered new interface driver cdc_ether
rndis0: register 'rndis_host' at usb-0000:00:02.0-2,
RNDIS device (SynCE patched), 80:1b:00:00:77:e4
usbcore: registered new interface driver rndis_host

Se tiver curiosidade de rodar o comando "cat /proc/net/dev" (que lista as interfaces de rede presentes no sistema), você verá uma entrada referente à interface "rndis0" no final da lista.

Se você estiver usando o Ubuntu ou outra distribuição que utilize o NetworkManager, a interface será ativada automaticamente e passará a ser exibida na lista de conexões:

Em outros casos, você pode ativar a conexão usando o dhclient, de forma que o PC obtenha o IP e a configuração da rede via DHCP:

# dhclient rndis0

Se por acaso você tiver outra conexão ativa (uma conexão de rede local, por exemplo), use primeiro o comando "route del default" para eliminar a rota padrão e fazer com que o sistema realmente use a conexão.

Assim como ao usar o compartilhamento via Bluetooth, o smartphone fornece um endereço dentro da faixa "192.168.0." (ou na faixa "169.254.2.", dependendo do aparelho) via DHCP e assume o papel de gateway da rede.

Em caso de problemas, acesse (no smartphone, dentro do "Compart. de Internet") o Menu Configurações da Conexão > USB para PC" e desmarque a opção "Habilitar funcionalidade avançada de rede". Ela costuma causar problemas não apenas no Linux, mas também no Windows XP.

Dica para quem tem problemas com o UTF-8 no Wordpress

novembro 14, 2008 – 4:41 pm

Ao instalar o Wordpress, você tem a opção de utilizar codificação em ASCII ou em UTF-8, que são os dois sistemas mais usados atualmente. O ASCII é o sistema que "simplesmente funciona", enquanto o UTF-8 é a novidade, o sistema novo e melhorado, mas que em compensação possui sua dose de problemas.

No meu caso, o que mais incomodava era a substituição das aspas por aspas inglesas e dos dois traços pelo traço longo, que atrapalhavam no caso dos posts com scripts, já que a substituição dos caracteres resultavam em erros ao copiar e colar o texto.

A solução veio com uma dica do Marcos Elias, que indicou o plugin Unfancy Quote. Originalmente ele é destinado a uma tarefa simples: substituir as aspas inglesas por aspas simples e as instruções no site não sugerem que ele faça nada além disso.

Entretanto, uma olhada rápida no código revela que ele é na verdade muito mais poderoso do que as aparências sugerem. Ele é um script bastante simples, que é executado pelo wordpress antes de exibir qualquer página, fazendo a substituição dos códigos das aspas. Isso é feito pela função "strip_quotes" no final do script:

function strip_quotes($text = ")
{
$text = str_replace(array("‘", "’", "′"), "'", $text);
$text = str_replace(array("“", "”", "″"), """, $text);
return $text;
} # end strip_quotes()

Como pode ver, ela é uma função bem simples. Dentro dos parenteses vão os códigos UTF-8 pelos quais o script procura e em seguida vai o código que substitui qualquer um deles quando encontrado.

Você pode ver as correspondências dos códigos no http://www.tony-franks.co.uk/UTF-8.htm. O """ corresponde às aspas duplas, enquanto o "'" às aspas simples.

O segredo é que você pode adicionar novas linhas dentro da função para substituir qualquer outro caracter com o qual estiver tendo problemas. Basta abrir uma página do seu blog onde ele apareça usando o navegador, usar a função de exibir o código fonte para descobrir qual é o código do caracter e consultar a tabela do link anterir para ver qual é o código do caracter correto. No meu caso, quero substituir o traço longo, cujos códigos são o &#8211 e o – por dois traços simples, cujo código é -. Para isso, precisei apenas modificar o script, incluindo uma nova linha com as instruções:

function strip_quotes($text = ")
{
$text = str_replace(array("‘", "’", "′"), "'", $text);
$text = str_replace(array("“", "”", "″"), """, $text);
$text = str_replace(array("–", "–"), "--", $text);
return $text;
} # end strip_quotes()

Como pode ver, este simples plug-in acaba sendo a solução mais simples para os problemas de substituição de caracteres no UTF-8. Basta alimentá-lo com os códigos dos caracteres que devem ser substituídos, criando uma tabela de substituição.

O sucessor do Nokia E62

novembro 14, 2008 – 2:09 pm

Em 2006 a Nokia lançou o E61, que foi logo complementado pelo E62. Apesar da numeração sugerir o oposto, o E62 é na verdade uma versão de baixo custo do E61, sem suporte a 3G (e, consequentemente, sem o processador auxiliar), sem Wi-Fi e com alguns softwares a menos. Apesar disso, o E62 acabou sendo de longe mais popular, devido ao preço. Durante algum tempo, ele foi o smartphone mais acessível disponível no mercado:

O E61 foi sucedido pelo E61i, que manteve as mesmas características básicas, mas incluiu uma câmera de 2 MP e um acabamento mais elaborado. Se você fosse escolher entre um E61 e um E61i, o melhor acabamento do E61i faria com que ele levasse a melhor, mas a diferença entre os dois não é suficiente para convencer alguém que já tem um E61i a trocar de aparelho.

Mês passado veio a atualização definitiva, o E71. Apesar de consideravelmente menor e mais fino, o E71 inclui na verdade um teclado mais confortável, com uma boa ergonomia e teclas mais macias. Ele usa também um processador mais rápido, é equipado com o S60 3ed. FP2 (com algumas atualizações importante em relação ao S60 3ed. initial release no E61i) usa uma câmera de 3.2 MP com foco automático e possui um receptor de GPS bastante competente.

Apesar dos recursos, a Nokia adotou uma estratégia de preços bastante agressiva para o E71. Na Europa ele foi lançado por 350 euros (valor cheio, sem subsídios) e, contra todas as espectativas, chegou ao Brasil por apenas R$ 999 (pré-pago, na Vivo).

Apesar de ser mais barato que a maioria dos concorrentes diretos, o E71 é ainda um aparelho relativamente caro. Para preencher a lacuna foi anunciado um modelo de baixo custo, o E63, lançado oficilamente ontem:

Ele é uma versão de baixo custo do E71, que mantém o mesmo formato e as mesmas características básicas, incluindo o teclado, a tela e o suporte a Wi-Fi. As principais diferenças residem nos materiais usados (o E63 tem o corpo de plástico e usa um acabamento barato, bem longe do padrão de qualidade usado no E71) no tamanho (o E63 é um pouco maior e mais espesso), na câmera (o E63 usa uma câmera de 2 MP, com foco fixo, similar à usada no 6120c) e na remoção do GPS, que é um dos pontos fortes do E71. E E63 vem com o Nokia Maps pré-instalado (permitindo que você use o recurso de localização por triangulação celular), mas para usar o serviço de navegação de forma efetiva você vai precisar de um receptor GPS externo.

Outra limitação importante é que, embora seja um aparelho com suporte a 3G, o E63 não oferece suporte a HSDPA, o que limita as transferências aos 384 kbits oferecidos pelo W-CDMA (não confundir com o CDMA, que é o padrão concorrente do GSM). Isso faz com que ele não seja um aparelho recomendável para uso como modem 3G, já que as taxas de transferência ficarão severamente limitadas. A decisão de limitar o E63 ao padrão HSDPA permitiu que a Nokia removesse o processador auxiliar, responsável pelo processamento dos sinais do rádio, reduzindo o custo de fabricação.

Apesar das limitações, o E63 tem duas pequenas vantagens, que são o uso de um conector de áudio de 3.5mm (o E71 usa um conector de 2.5mm e a pinagem usada faz com que ele seja  incompatível com muitos fones e adaptadores, ativando-os em modo mono) e o uso de um teclado sutilmente mais espaçoso, com duas teclas adicionais na última linha.

Entretanto, o principal argumento a favor dele é mesmo o preço. O E63 custa apenas 199 euros, contra os 350 euros do E71. A expectativa é que ele seja lançado em breve também aqui no Brasil, custando na faixa dos R$ 600 nos planos pré-pagos e bem menos nos planos com contrato.

Usando o smartphone como modem Bluetooth, no Windows

novembro 13, 2008 – 5:42 pm

Em um post anterior, falei sobre como usar um smartphone como modem Bluetooth no Linux. Apesar da lista de passos parecer longa, na verdade a configuração poderia ser resumida em três passos: fazer o pareamento entre o PC e o smartphone, configurar a porta serial virtual entre os dois e criar a configuração no wvdial (ou outro discador escolhido) para poder então conectar. Vamos agora ver como fazer o mesmo no concorrente.

No Windows a configuração é mais automática, já que você pode contar com os discadores oferecidos pelos fabricantes. No caso dos aparelhos da Nokia, por exemplo, você precisa apenas instalar o PC Suíte e usar a opção "Conectar à Internet". É possível também configurar a conexão manualmente,  que é o objetivo deste post.

Se você está usando o XP SP2 ou o Vista, você pode fazer o pairing usando o ícone do Bluetooth ao lado do relógio. Ele pede que você defina a passphrase de acesso e a partir daí você pode fazer o processo de pairing no celular, fornecendo o mesmo código de segurança. Feito o pairing, acesse as propriedades do dispositivo e confirme se o "Rede Dial-up (DUN)" está ativado:

Se por acaso você está usando uma versão antiga do Windows, que ainda não possua a stack Bluetooth nativa, pode fazer a configuração usando o BlueSoleil, que é encontrado no CD de instalação da maioria dos adaptadores. Dento do programa, use a opção "Tools > Find Device" para localizar o celular. Clique sobre ele com o botão direito e use a opção "Pair Device". Depois feito o pairing, clique sobre ele novamente para que sejam detectados os profiles suportados. Para o DUN, que é o que nos interessa, é ativado o ícone com o modem:

Feito isso, crie uma conexão via modem através do Painel de Controle > Redes, indicando a porta serial referente ao celular. A partir daí, os passos são similares à criação de uma conexão normal via modem, onde você informa o número de discagem e a senha da conexão. Apesar das operadoras divulgarem senhas de acesso (vivo/vivo, claro/claro, etc.) você pode na verdade usar qualquer valor, pois a autenticação é feita pelo próprio smartphone:

Nas propriedades do modem (Geral > Configurar), não se esqueça de aumentar a velocidade da porta para 921600 bps, para que ela não limite a velocidade da conexão. É recomendável também desativar as extensões LCP dentro da opção "Rede > Configurações", o que previne o problema da conexão ser encerrada a cada dois minutos.