Archive for the ‘Linux’ Category

Montar HDD da Xbox como um filesystem remoto

Saturday, February 28th, 2009

Depois de algumas horas quebrando a cabeça, resolvi um problema técnico que me atormentava. Estou documentando a solução pro caso de alguém (inclusive eu) precisar dela mais tarde. Se você tem medo de termos técnicos e sopa de letrinhas, fuja. :-) Não incluí links porque é trivial encontrá-los procurando pelas palavras chave que uso.

XBMC

Há vários anos eu uso a Xbox (o primeiro modelo mesmo, não a 360) mais como um media center do que como um videogame. A Xbox fica ligada na TV da sala, instalei nela o Xbox Media Center (XBMC que agora existe para Mac, Linux e Windows também), e acessa pela rede (usando SMB, “compartilhamento de arquivos do Windows”) os vídeos armazenados no PC (um Ubuntu rodando Samba).

Download no PC

Os vídeos são baixados automaticamente, via torrents que chegam através de RSS Feeds, filtrados e transferidos usando o uTorrent (que roda perfeitamente sobre o Wine). As legendas são obtidas automaticamente usando um script em python, e os arquivos (de vídeo e legenda) são renomeados automaticamente usando o excelente script tvrenamer. Assim não é preciso aquela rotina de passar cinco minutos ajeitando o vídeo, legendas e renomeando arquivos antes de assistir.

HDD Grande na Xbox

Recentemente troquei o HDD da Xbox por um muito maior (300 GB). Para isso tive que fazer o update do firmware do modchip do videogame (usei o Slayer’s Xbox Tools 2.7). Desde então resolvi armazenar os vídeos não no PC, mas no HDD da Xbox mesmo.

O problema

Mas eu não deixo a Xbox ligada 24×7, logo gostaria que o download continuasse sendo no PC, mesmo porque não quero perder meu esforço de automatização. A idéia então é fazer com o que o PC transfira os arquivos para o HDD da Xbox.

O XBMC é um cliente de SMB, mas não é um servidor, ou seja, não compartilha os arquivos do próprio HDD com outros computadores. Entretanto, ela possui um servidor de FTP. O problema é que os scripts como o tvrenamer assumem que os arquivos são locais, ou seja, não conseguem renomear sobre FTP, e sincronizar os arquivos dos diretórios usando FTP é algo bem desajeitado.

A Solução

Configurei a Xbox para usar um IP fixo, e habilitei o FTP server do XBMC. Então usei o sensacional curlftpfs (um file-system de espaço de usuário - FUSE - que usa a biblioteca CURL para montar sites de FTP). Com o curlftpfs o FTP da Xbox aparecem no Linux como como se fossem um diretório comum:

mkdir /xbox

chgrp fuse /xbox

sudo adduser muriloq fuse

curlftpfs -o user=xbox:password ftp://192.168.254.50/F /xbox

Problema: Erro ao renomear arquivos

O servidor de FTP do XBMC, o FileZilla, não permite que algumas operações sejam feitas na raiz do FTP, onde ficam as pastas correspondentes às partições da Xbox. Assim, se você montar apenas ftp://192.168.254.50/ você NÃO vai conseguir fazer um monte de coisas (inclusive renomear arquivos ou rodar o rsync). É preciso montar o drive direto, com ftp://192.168.254.50/F Eu tive que abrir o código fonte do curlftpfs e fuçar muito nos logs para descobrir isso.

Mais Problema: Erro ao rodar o rsync

Rodando o rsync eu encontrei erros do tipo

rsync: rename “/xbox/videos/.video.avi.B6uPMV” -> “video.avi”: Operation not permitted (1)

Nesse caso é um bug da versão do curlftpfs que usei, a 9.6.1:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=461455

Disseram que consertaram na 9.6.2-2, mas a instalei aqui e o problema continua.

Quando tiver tempo experimento mais um pouco…

Software livre no seu carro: “Veneno” open source

Friday, September 19th, 2008

Escrevi um artigo para o Tecnologia Inteligente sobre software livre e preparação de carros:

http://blog.vettalabs.com/2008/09/19/software-livre-no-seu-carro-veneno-open-source/

Kudos pro Marcelo Garcia, que deu dicas, revisou e forneceu fotografias do sistema dele.

Na prática: Firefox 3.1 beta com Tracemonkey

Tuesday, September 16th, 2008

Meu irmão Diogo me deu a dica de que o Firefox com Tracemonkey (a máquina virtual JavaScript com compilação Just-In-Time, de desempenho similar à V8 usada no Google Chrome) já estava funcionando bem.

Eu baixei um nightly build do Firefox, e acontecia um crash ao entrar no GMail, então fiquei bastante frustrado. Pensei que o problema eram as extensões - eu uso a Nightly Tester Tools para forçar a instalação de extensões mesmo que o número de versão não bata, mas rodando com firefox -safe-mode deu o mesmo problema.

Hoje descobri a causa: a interface antiga do GMail (a que você acessa clicando no link “Older version” no canto superior direito, ou com a URL https://mail.google.com/mail/?ui=1 ) é que dava a zica! Passei a usar a interface nova, default, e tudo está bem (até agora), com todas as extensões funcionando redondinho.

Vejamos se dá pra manter ou se vou precisar voltar pra versão estável… Até agora já deu uns random crashes (um deles quando cliquei em “Send” dessa mensagem no GMail, mas o Draft me salvou), então só recomendo se você souber dar uns nós. :-)

UPDATE: Tive mais vários crashes depois que escrevi essa mensagem, mas usando o browser em -safe-mode eles sumiram, logo a culpa é de alguma extensão. Como a Tab Mix Plus e a Tree Style Tabs apresentaram comportamento estranho (não se abriam novas tabs ao clicar em bookmarks) estou suspeitando delas; desabilitei-as e vou continuar o test drive.

UPDATE: Hmm, desabilitar a Tab Mix Plus e a Tree Style Tabs ajudou, mas não resolveu o problema - às vezes cai tudo quando clico no Send do GMail… :-( Vou ficar mais tempo em safe-mode agora.

UPDATE: Firefox sem extensões não tem muita graça, então deixei de lado apenas as mais complexas como WebDeveloper e Firebug, pelo menos até descobrir as culpadas. Uma delas era mesmo a Tab Mix Plus; instalei o último build de desenvolvimento fornecido pelo autor, e desde então o browser não deu um problema sequer (estou rodando há várias horas)!

Com o tempo fui testando mais algumas extensões, e fiquei feliz ao notar que quase tudo está redondinho! A principal dica que dou é a seguinte:

Se você tiver problemas com a tracemonkey e uma extensão específica, uma alternativa é habilitar a tracemonkey apenas para o conteúdo de páginas web, e não para as extensões propriamente ditas.

Isso pode ser configurado indo na página about:config e modificando, respectivamente, as seguintes variáveis:

javascript.options.jit.chrome

javascript.options.jit.content

Note que por default ambas são false, ou seja, a tracemonkey só é usada se você explicitamente mudar esses valores! Desabilitei a primeira para poder usar a Password Maker e a Tree Style Tab, e continua tudo OK.

Por enquanto, aqui está a lista das que estou usando (produzida por outra extensão, a FEBE) sem problemas:

  • AdblockPlus{0.7.5.5}.xpi
  • BugMeNot{2.0}.xpi
  • CacheViewer{0.4.7.1}.xpi
  • ClassicCompactOptions{1.1.3}.xpi
  • ColorfulTabs{3.4}.xpi
  • Console{0.3.9.1}.xpi
  • DOMInspector{2.0.0}.xpi
  • DownThemAll{1.0.3}.xpi
  • DownloadStatusbar{0.9.6.3}.xpi
  • FEBE{6.0.1}.xpi
  • FaviconPicker3{0.5}.xpi
  • Flashblock{1.5.6}.xpi
  • TabMixPlus{0.3.7pre.080830}.xpi
  • UnitedStatesEnglishDictionary{3.0.3}.xpi
  • VerificaoOrtográficaPT-BR{1.1}.xpi
  • XPather{1.4.1}.xpi

Porque não acho graça no Google Chrome

Tuesday, September 16th, 2008

2008/9/12 Gustavo Fraguas wrote:

Eu pergunto: ande estão as extensions para o Chrome? Se não tiver extensions esse browser não vale uma bufa enfiada num cordão.
Pode esperar sentado, porque vai demorar *muito* pra aparecer. Existem tantas extensões para o Firefox porque você escreve uma com Javascript e XML (XUL, especificamente). Qualquer um que sabe fazer uma página html com JS sabe fazer extensão para o Firefox.

Isso rola porque a interface do Firefox inteira é definida com arquivos XML (XUL). Se você não gosta de JS dá pra fazer com Java e Python (mas fica meio tosco).

Já a interface do Chrome, IE e outros browsers são tradicionais, hard-coded, e pra mudar só mexendo no código-fonte e recompilando. Então simplesmente não dá pra ter um esquema simples de extensão como no Firefox (só dá pra fazer plugins, que usam uma interface limitada).

O problema é que a flexibilidade do XUL traz lentidão e maior consumo de memória, além de expor o browser a instabilidades causadas por extensões mal-escritas. Dá pra otimizar isso, mas é algo trabalhoso.

O legal é que a cada improvement na VM javascript (como o Tracemonkey) a interface e as extensões do Firefox inteiro ficam mais rápidas. E renderizar interface (botões, janelas, scrollbars) definidas por XML não é muito diferente de renderizar páginas web definidas por HTML, então cada otimizações em rendering engines em geral acabam melhorando o desempenho de interfaces XUL.

Eu acredito que vai ser mais fácil o Firefox chegar no nível do Chrome em termos de velocidade e consumo de memória (o Firefox 3 é mais rápido e mais leve que o 2, que era mais que 1, etc.) do que o Chrome chegar na flexibilidade e extensibilidade do Firefox.

Digo isso porque o Google segue um pouco a linha da Apple, acha melhor manter tudo o mais simples possível para atender 90% do gado do que dar a corda que os os geeks usam pra escalar montanhas e fazer bondage na namorada e os manés usam pra se enforcar… :-)

(Já houve quem risse dizendo que os 1990s ligaram para pedir a metáfora obsoleta de volta, então não precisa repetir a piada)

E nem precisa usar exemplos extremos de extensões sofisticadas voltadas para desenvolvedores e usuários avançados, como a WebDeveloper, Firebug, XPather e XQUSEME. Veja as minhas sugestões de modificações exclusivamente visuais, muito simples e que fazem uma diferença enorme:

  • Classic Compact: tema enxuto para ocupar menos espaço.
  • Classic Compact Options: (habilite a opção Merge Menubar into One Button) e coloque a barra de navegação ao lado da entrada “Menu”.
  • Tree Style Tab: Tabs na lateral do browser, organizadas hierarquicamente.
  • Colorful Tabs: tabs coloridas por domínio.
  • FavIcon: defina ícones personalizados para os bookmarks; escolha ícones para bookmarklets e páginas que não os definem em favicoop.com (são mais de 20.000 ícones). Depois remova o nome dos seus bookmarks, e identifique-os apenas pelos ícones.
  • LocationBar²: barra de endereços formatada (com highlight pro domínio e outras opções)

E essas não são nem metade de todas as extensões que uso. Obviamente não é pra qualquer usuário; é preciso saber dar uns nós. :-)

Tim Web Banda Larga no Ubuntu 8.04 Hardy Heron

Sunday, July 20th, 2008

Acabei instalando o Ubuntu 8.04 Hardy Heron no meu EEE PC (701, com 4G de storage e 512 MB de RAM, funciona redondinho). Tive alguma dificuldade para instalar o Tim Web Banda Larga nele, mas acabei descobrindo uma forma trivial de fazê-lo.

O problema é que está cheio de páginas por aí ensinando a instalar o modem da Tim em versões antigas de Ubuntu e outras distros Linux. No 8.04 tudo isso é completamente desnecessário, e tentar seguir os passos é uma perda de tempo.

Simplesmente conecte o modem (o meu é um Huawei E226, branco) à USB. Use o cabo com duas tomadas USB, para conseguir mais energia pro modem.

Clique no ícone da conexão de rede (Network Manager), no canto superior direito da tela, e selecione Configuração Manual. Clique em Desbloquear, e entre a senha de administrador.

Se o modem está ligado e funcionando haverá uma opção para acesso discado (como um modem de linha telefônica comum).

Selecione essa opção, e vá, em propriedades.

Entre com a configuração conforme as imagens abaixo, A senha também é “tim” (sem aspas).

Um detalhe importante é desativar a opção “Usar servidores de nome do provedor de internet”. O modem não consegue pegar os servidores de DNS corretamente, então se você usar essa opção você vai conectar mas não vai acessar nenhum site. Às vezes mesmo desativando essa opção o problema acontece; certifique-se de que não há um linha usepeerdns no arquivo /etc/ppp/peers/ppp0 .

Como não vamos usar o DNS da TIM, é preciso configurar outro. Na tela principal do Network Manager (primeiro screenshot) escolha a aba DNS e entre com os servidores do OpenDNS:

Certifique-se que esses mesmos endereços aparecem no arquivo /etc/resolv.conf . Se você não removeu a opção usepeerdns no passo anterior esse arquivo vai ser sobrescrito assim que o modem conectar!

Pronto, agora você pode conectar clicando na checkbox da conexão discada, ou indo no ícone do Network Manager e escolhndo “Conexão Discada” / “Conectar-se a ppp0 via modem”.

Para testar que você conectou, rode ifconfig ppp0 . Veja possíveis problemas em /var/log/messages . Para testar se você conectou mas não está usando um DNS válido, execute ping 208.67.220.220 ; se estiver tudo OK, ping muriloq.com não vai mostrar nenhum erro,

Subclipse no Eclipse 3.4 Ganymede e Ubuntu 8.04

Wednesday, July 16th, 2008

Apesar do Eclipse 3.4 “Ganymede”, lançado recentemente, ter suporte nativo ao sistema de controle de versão Subversion (SVN), eu prefiro continuar usando o plugin Subclipse, que era necessário nas versões anteriores do Eclipse.

O problema é que só o Subclipse mais recente (1.4.x) funciona no Ganymede, e esse plugin exige o svn 1.5. O Ubuntu 8.04 Hardy Heron vem com o svn 1.4.6.

Instalei então o subversion 1.5 e também a biblioteca libsvn-java, que substitui a antiga libsvn-javahl, usada nas versões anteriores. Para fazer isso, acrescentei à lista de repositórios do Ubuntu (usando o Synaptic ou editando o arquivo /etc/apt/sources.list manualmente) o repositório “intrepid”, inserindo a seguinte linha:

deb http://archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse

Depois de atualizar os repositórios (sudo apt-get update, ou clicando em “Reload” no Synaptic) o subversion 1.5 e as respectivas bibliotecas (incluindo a libsvn-java) estavam disponíveis para instalação, sem problema algum. Após instalar eu removi o repositório intrepid.

Depois disso bastou instalar o Subclipse 1.4 e tudo funcionou redondinho.

Tim Web Banda Larga num EEE PC

Wednesday, July 9th, 2008

Perguntaram-me o que achei do serviço Tim Web Banda Larga, especialmente quando usado com o EEE PC:

Minha mãe me emprestou o Tim Web Banda Larga para usar enquanto estou com o Max no hospital. Ela ganhou o modem Huawei E220 na compra do EEE (na Info2 do BH Shopping - o PC701 lá está R$ 1099 em 10x, mas eu comprei lá semana passada por R$ 990 em 3x). Ele custa R$ 189 avulso, e pode ser substituído por um celular high-end (que suporte 3G). Ela está com um plano de 1 Mb/s, que sai por R$ 99 / mês; há planos de até 7.4 MB/s, por cento-e-tantos.

Eu tive dificuldade para instalar no EEE, porque ele não pegava DNS via DHCP. Configurei na unha editando o script (porque editar na GUI não adiantava!) e passou a funcionar 100%.

O sinal de celular no Biocor é horrível (mal dá pra falar às vezes). Quando eu ligo o modem com um conector USB só ele só consegue se conectar à rede GPRS (que é lenta - uns 50 Kb/s - o led fica verde); quando conecto usando dois USBs (para puxar mais corrente) ele se liga à rede 3G (HSDPA, led azul), então dá full speed. O consumo de bateria, entretanto, é muito alto (EEE PC + TWBL em 3G devem durar 1h).

Apesar do contratado ser 1 Mb/s eu na prática consigo 750 +/- 100 Kb/s de download,  e 200 +/- Kb/s de upload (medidos no http://www.testesuavelocidade.com.br ). Não parece haver traffic shaping (torrents funcionam 100%). O uptime no Biocor é bem alto (às vezes a conexão cai para GPRS, mas reconectando “pega” 3G de novo); depois que resolvi o problema do DNS eu não fiquei hora nenhuma desconectado. Uma curiosidade é que a primeira tentativa de conexão sempre falha, mas basta um retry parar funcionar.

Na prática com o EEE+3G dá pra usar a Internet normalmente; eu fiquei particularmente satisfeito com o desempenho do Youtube, que fica excelente. Também não vi problemas de lag (apesar do ping ser alto, 200-300 ms), e usei o Skype (com o microfone e webcam do EEE) sem dificuldade. Eu instalei (sujando as mãos na linha de comando) o Firefox 3 no EEE, e fica fantástico por causa do novo zoom (no Firefox 3 os atalhos Ctrl+ e Ctrl- escalam as imagens junto com o texto).

No fim das contas, estou muito satisfeito, mas não vou pegar um pra mim; eu passo a maior parte do tempo em casa com o Max, logo para mim um roteador wi-fi já resolve.

Acentuaçao em português no EEE PC

Sunday, July 6th, 2008

A versão do Xandros Linux do meu EEE PC veio em inglês e chinês. Com isso, tive alguma dificuldade para configurar os acentos. Resolvi assim:

Abri um terminal com Ctrl+Alt+T

Removi os pacotes relacionados a entrada em chinês:

sudo apt-get remove gcin

(entre com a senha de administrador e aperte Y para remover os três pacotes relacionados).

CORREÇÃO: Agora instalei o scim, que substitui o gcin e suporta melhor português:

sudo apt-get install scim

Reconfigurei os locales com

sudo dpkg-reconfigure locales

(selecionei apenas as opções en_US.UTF-8 e pt_BR.UTF-8)

Reiniciei a interface gráfica com Ctrl+Alt+Backspace

Agora os acentos funcionam do jeito tradicional (’+a=á). A cedilha é feita do jeito correto, com RightAlt+, (a tecla Alt da direita, também chamada AltGraph). Note que ‘+c dá o caractere ć, o que é o comportamento correto esperado do teclado US-International (o Windows faz errado, violando o padrão).

GMail lento no Firefox 3

Friday, May 2nd, 2008

Todo mundo está reclamando que a interface nova do GMail é desgraçadamente lenta para fazer scrolling de uma lista com muitas mensagens, especialmente com o Firefox 3.

Eu andei investigando em vários fóruns e bug trackers a causa disso; o Google simplesmente diz que o GMail novo é incompatível com o Firefox 3.

Depois de vários dias e de conversar com muita gente, eu finalmente encontrei a causa do problema. Não é exclusivo nem do GMail nem do Firefox (também acontece com o Epiphany, mas não com o Galeon), e dá zica até em diferentes sistemas operacionais.

O problema é um bug no xulrunner, um componente importante usado no Firefox. O bug “real” é esse daqui:

https://bugzilla.mozilla.org/show_bug.cgi?id=424423

Outros bugs que na verdade são causados por ele são:

https://bugzilla.mozilla.org/show_bug.cgi?id=413280

https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/217580

Aqui tem um caso de teste: https://bugzilla.mozilla.org/attachment.cgi?id=309977

UPDATE:

Esse bug acabou de ser corrigido - usando o último nightly build o GMail está rapidinho mesmo com a interface nova. Assim, a versão final do Firefox 3, que deve ser lançada em breve, não vai ter esse problema.

Firefox 3 lento no Ubuntu 8.04 Hardy Heron

Wednesday, April 30th, 2008

Minha irmã tem um notebook AmazonPC que veio com o Kubuntu 7.04 em português. Recentemente eu instalei para ela o novo Ubuntu 8.04 “Hardy Heron”; adorei como todo o hardware foi detectado automaticamente, e como coisas bacanas como o Compiz Fusion (efeitos avançados em 3D no desktop) funcionaram “de cara”. Além disso a tradução para português brasileiro do novo Gnome está impecável, ao contrário do KDE da versão 7.04 (kudos para o Og Maciel).

Mais tarde eu atualizei o meu Ubuntu 7.10 para o 8.04, usando um dist-upgrade (e não uma instalação “limpa” como no caso do notebook). Só que dessa vez notei que o novo Firefox 3 beta 5 (que eu já usava no 7.10) estava muito mais instável que o de costume, congelando por vários segundos (deixando a tela preto-e-branca).

Notei o seguinte:

- Em Tools / Add-Ons / Plugins havia mais de um plugin Flash instalado (sequer sabia que era possível). Removi e instalei o mais recente, e os problemas no Youtube acabaram

- Por default o plugin Java instalado é o IceTea (que é baseado no Gnu Java Compiler, gcj, não na distribuição oficial da Sun). O IceTea não funciona direito: não roda o meu primeiro programa em Java, o emulador de arcade Phoenix, e depois que o removi, instalando o plugin padrão da Sun com apt-get install sun-java6-plugin meu Firefox voltou ao normal.

A última dica é relacionada à nova versão do GMail, que é desgraçadamente lenta para fazer scroll caso você tenha muitas mensagens na tela. Usando a versão antiga o problema desaparece ( basta ir em  no link no canto superior direito do GMail, ou clicar aqui ).

Acho que todos os problemas (exceto o uso por default do IceTea) foram causados pelo dist-upgrade, que é sempre algo delicado (especialmente se você “fuça” mais o sistema do que o de costume).

De qualquer forma, estou bem feliz com o Hardy Heron ! :-D