Windows Media Video 9 no Ubuntu

Logo que publiquei o vídeo da palestra de Tableless que, por motivos alheios a minha vontade, estava em Windows Media 9, alguém me perguntou como fazer para tocar esse formato no Linux.

Bom, se você usa Ubuntu[bb], eu posso ajudar. Há maneiras de se fazer isso para qualquer distribuição, mas você vai ter que usar o Google 🙁

No Ubuntu, para variar, é bastante fácil. Eu uso os pacotes desse pessoal: Penguin Liberation Front. No Dapper, edite como root o arquivo /etc/apt/sources.list e inclua as seguintes linhas:


deb http://packages.freecontrib.org/ubuntu/plf dapper non-free
deb-src http://packages.freecontrib.org/ubuntu/plf dapper non-free

Depois execute:

wget http://packages.freecontrib.org/ubuntu/plf/12B83718.gpg -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install w32codecs

Pronto, você tem Windows Media 9 funcionando.

Hardware para produtividade

Algum investimento em hardware, nem sempre caro, pode tornar você bem mais produtivo. Tenho um notebook, da Itautec, um Celeron M 1.9 com 512MB RAM. Um máquina modesta, relativamente barata, mas que representa um investimento considerável. Comprei meu notebook na FastShop, onde achei preço melhor que na Santa Ifigênia com um atendimento de cair o queixo.

No dia em que peguei o notebook instalei o Ubuntu[bb], que funcionou automagicamente com quase todo o meu hardware. A placa de rede wi-fi, uma D-Link DWL-G630, foi a única coisa que me deu alguma dor de cabeça. Mas funcionou que é uma beleza ao seguir essa dica e, importante, usar o wlassistant ao invés do gerenciador de redes do Gnome (apt-get install wlassistant).

Notebook é um negócio viciante. Praticamente deixei de usar meu Desktop, mesmo ele tendo mais processamento e o dobro de memória. Para quem puder ter, recomendo.

Bom, de lá pra cá, comprei umas coisinhas que tornaram a experiência de usar o notebook muito mais divertida, e produtiva. A primeira coisa foi um segundo monitor. Na verdade, não comprei esse, tinha um enconstado aqui. Mas você consegue um bom o suficiente para usar como segunda tela por menos de R$350,00 se procurar bem. É o item mais caro de nossa lista. Usar duas telas, lado-a-lado, a do notebook e um monitor, é um negócio muito interessante. E essa é uma dica que pode servir pra você mesmo que você não tenha um notebook. Com uma placa de vídeo razoável e uma outra qualquer, que pode ser sua onboard, você pode ter duas telas em seu PC. Veja, por exemplo, esse screenshot (clique para ampliar):

Aqui tenho meu editor de código, o Kate, aberto na tela do notebook. Com a largura de 1280px, a tela me permite ter o navegador de arquivos e o navegador python abertos e ainda ter bastante espaço para editar código. Ao lado, no monitor, tenho navegador e cliente de MSN abertos. Esse é só um dos arranjos possíveis. Isso nos poupa muito trabalho também para fazer coisas com o segundo monitor como monitorar processos numa janela de terminal, conectar a um VNC ou XDMCP, rodar o VMWare, colocar as janelas de download e o que mais você imaginar.

Descubra neste artigo como configurar dois monitores no Linux e veja que idéia interessante essa aqui, usar cada tela para um computador diferente, usando o mesmo teclado e mouse para ambos. Já estou usando isso.

O segundo hardware interessante que comprei foi um adaptador Bluetooth USB. Tenho um plano GPRS de dados ilimitado da Claro (dica da Bia) mas não uso o tempo todo, então julguei que não valia a pena investir numa placa GPRS PCMCIA. Com o celular no bolso consigo navegar em qualquer lugar, mesmo sem um hotspot por perto. Claro, é meio devagar, mas quebra um galhão em lugares em que é a única opção. Paguei R$ 70,00 numa loja no Shopping da Barra, no Rio.

Depois, comprei um mouse USB. O touchpad do Itautec é legal. A rolagem com o touchpad é melhor que a rodinha do mouse, e estou usando mesmo com o mouse conectado quando tenho um texto longo para ler. Mas, como mouse, o touchpad é bem ruizinho. Paguei R$ 40,00 numa loja no Shopping Praia da Costa, em Vila Velha (ES). Em seguida, ganhei um mouse USB sem fio do Rigonatti.

Por fim, minha última aquisição, um Access Point. Se você tem um notebook com wi-fi e não tem Access Point, compre assim que puder. É muuuito bom, o tipo de coisa que você fica se perguntando como vivia sem. Agora tenho conexão boa em qualquer lugar da casa. E o Access Point custou menos de R$ 200,00 no Stand-Center (o Diego foi quem buscou pra mim).

Ou seja, como já tinha o monitor, gastei R$310,00 para ter conexão GPRS em qualquer lugar, wi-fi em casa, dois monitores em minha mesa e um mouse bom.

Vídeo Palestra de Tableless (cara, isso é que é hospedagem!)

Percebi agora, ao acessar meu painel de controle, que o Dreamhost dobrou a banda disponível e multiplicou por dez o espaço em disco. Agora eu tenho 200GB de espaço e 2TB de banda. É um absurdo!

O que fazer com tanta banda? Presentar vocês, meus fiéis quatro ou cinco leitores. Vou começar publicando um vídeo de uma palestra que dei no CPqD em Campinas, já tem algum tempo. Não é uma palestra da qual eu me orgulhe, na verdade. Estava meio perdido, com o auditório escuro, sem conseguir enxergar as pessoas. E falei demais. Por isso, se você assistir, me dê um desconto aí. Mas vou colocar essa porque é a única que eu tenho inteira em vídeo.

Lá vai: tableless.wmv (220,7 MB)

Me digam se gostaram, e se vale a pena publicar esse tipo de material. Se vocês gostarem, coloco mais coisa ali. Vamos usar o espaço que o Dreamhost nos dá 😉

E deixa eu fazer minha propaganda aqui: usando o promocode “DESCONTUDO” você pode ter esses 200GB, com PHP, Ruby-on-Rails, MySQL e domínios ilimitados por menos de US$ 4,33 por mês.

Update: O link já está funcionando. Eu tinha apontado meu servidor de DNS para o lugar errado. Desculpem a falha.

Update 2 (5 anos depois): Veja o vídeo aqui.

Python Eggs, e SQLObject no Ubuntu

A versão mais atual do SQLObject, a 0.7, melhorou muito em relação a que vem nos repositórios do Ubuntu[bb], a 0.6. Vou mostrar então como instalá-la, uma vez que ela não está disponível via apt. O truque é que ela é distribuída num Python Egg, um pacote contendo o código, outros arquivos que forem necessários, e scripts de instalação.

A instalação de Python Eggs foi feita para ser muito fácil. Primeiro, desinstale a versão atual do SQLObject, se você a tiver:

sudo apt-get remove sqlobject

Em seguida baixe a versão atual, no formato egg, adequada a sua versão do Python[bb]. Instale então, se você ainda não tiver, o pacote python-setuptools:

sudo apt-get install python-setuptools

Em seguida, para instalar:

sudo easy_install SQLObject-0.7.1-py2.4.egg

Claro, trocando o.7.1 e 2.4 pelos números da versão que você baixou. Pronto, está feito.

Del.icio.us para ler offline

Para baixar todos os favoritos do del.icio.us de alguém:

wget -H -r --level=1 -k -p -erobots=off -np -N --exclude-directories=elcio --exclude-domains=del.icio.us,doubleclick.net http://del.icio.us/elcio

Trocando elcio pelo nome de usuário desejado. Isso baixa todo o conteúdo linkado, incluindo imagens e etc, para que você possa ler offline. Vi aqui.

Para quem quiser saber mais do wget, um programinha que eu adoro, veja aqui.

Inovações em Interface Homem-Computador para Computação Gráfica.

Duas coisas interessantes que eu vi no Imagemaster Blog:

  • Hardware criativo para Photoshop – tenho um palpite de como isso tenha sido feito. Uma tablet enooorme, um bom projetor, e uma gambiarra para fazer aquela caixinha de ferramentas funcionar como um teclado. Aliás, a caixinha de ferramentas é até dispensável, poderia ser trocada por um teclado compacto. Depois, um bocado de paciência para ajustar o projetor e calibar a tablet, e pronto. Alguém aí se arrisca a tentar?
  • 3D intuitivo – esse é legal, um programinha impressionante. Teddy. Feito em Java[bb], você pode testá-lo até num applet. Aqui pra mim ficou muuuuito lento. Mas eu estava testando no notebook, que é bem modesto. É bem “rascunho” mesmo, você não vai conseguir nada parecido com o que faria usando um software de modelagem 3D “de verdade”, mas é muito fácil de usar. Até hoje eu nunca tinha visto um jeito de gente comum modelar 3D, sem horas de estudo para começar. Vale a pena ficar de olho.

Mergulhando no Python e uma possível violação da GPL

Terminei de ler agora o Mergulhando no Python. Já tinha lido o e-book, em inglês, Dive Into Python, cuja capa por sinal é muito mais bonita. Gostei bastante da tradução para português. Não é fácil encontrar boas traduções de livros técnicos e essa está bastante aceitável.
Um dos melhores livros de programação que já li, escrito sobre a melhor linguagem de programação com que já trabalhei. Não é para qualquer um, é um livro para quem já é programador. Se você estiver iniciando na área, não vai aproveitar tanto quanto os programadores mais experientes, mesmo assim vale a leitura. Gostei muito das partes sobre HTTP, tratamento de HTML[bb] e testes de unidade, além da parte inicial, o be-a-bá da linguagem, muito didático e bem humorado.
Ao final do livro, fiz uma coisa que não havia feito na versão em inglês: li os apêndices. E entre eles, estava lá o apêndice G (apêndice E na versão impressa): a licença GNU para documentação livre, que me deixou com a pulga atrás da orelha.
A seção 8 fala sobre traduções, e é pontual: ?A tradução é considerada um tipo de modificação, então você pode distribuir traduções do documento sob os termos da seção 4.? Além disso, ao finalzinho: ?Você pode incluir uma tradução dessa Licença desde que inclua também a versão original em inglês dessa Licença.? Bom, a editora Altabooks não incluiu uma cópia da versão original, em inglês, da licença.
A tal seção 4, que fala de modificações, me deixou mais encucado ainda. Dois trechos selecionados:
?Incluir, imediatamente após os avisos de copyright, um aviso de licença concedendo ao público permissão para usar a Versão Modificada sob os termos dessa Licença.?
?Preservar o endereço de rede, se houver, fornecido no Documento para acesso público a uma cópia Transparente do Documento.? (Cópia Transparente significa cópia digital. Eles chamam a cópia impressa de Cópia Opaca.)
Ao invés do ?aviso concedendo ao público permissão para usar? o livro, a Altabooks colocou, logo após o copyright original: ?Todos os direitos reservados e protegidos pela lei 5988 de 14/12/73. Nenhuma parte desse livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônico, mecânico, fotográfico, gravação ou quaisquer outros.? Isso viola também esse outro trecho da GPL: ?Você pode copiar e distribuir o Documento em qualquer mídia, comercialmente ou não, desde que … você não adicione quaisquer outras condições além das presentes nesta Licença.?
A seção 3 fala especificamente de cópias em grande quantidade. Veja esse trecho interessantíssimo: ?Se publicar ou distribuir Cópias Opacas do Documento em quantidade maior do que 100 unidades, você deve ou incluir uma Cópia Transparente legível por máquina junto com cada cópia Opaca, ou indicar, em ou com cada Cópia Opaca, um endereço de redes de computadores publicamente acessível que contenha uma Cópia Transparente completa do Documento…?
A Altabooks também não incluiu nenhum link para uma versão online do livro.
Os amigos mais instruídos que eu poderiam me ajudar a entender isso. Eu li errado, ou a Altabooks está violando a GPL? Qual o próximo passo? Com quem podemos reclamar nosso direito de ter uma cópia digital que possa ser livremente distribuída? Qualquer ajuda será muito bem-vinda.

O Zen e a arte cavalheiresca da programação orientada a objeto

Meninos e meninas, Danilo Medeiros está de volta:

O Zen e a arte cavalheiresca da programação orientada a objeto.

Putzgrilo! Muito, muito bom! Leitura altamente instrutiva para os iniciantes nessa arte insana e apaixonante. Se você está começando a programar agora, não deixe de acompanhar Danilo e seus gnomos.

E terrivelmente divertida e nostálgica para nós que já vivemos isso há algum tempo.

Por falar em OO, alguém me perguntou esses dias sobre como criar classes abstratas no Python. Minha resposta foi: “para quê?”

Pois é, o Python não tem classes abstratas, assim como uma porção de outras coisas consideradas essenciais por quem programa em outras linguagens, como tipos estáticos ou variáveis realmente privadas. Eu também fiquei muito assustado quando descobri isso, é normal. Mas, com o tempo, fui percebendo que isso é uma vantagem, e não uma desvantagem do Python[bb]. É uma linguagem que nunca te diz que você não pode fazer alguma coisa.

Assim, eu não modifico externamente minhas variáveis privadas, não porque eu não possa fazê-lo, mas porque eu não acho que seja bom. E se, para alguma solução específica, eu precisar fazê-lo, o Python não vai me dizer que não posso. Assim, para criar uma classe abstrata, eu faria:

class Automovel:
def acelerar():
self.velocidadeatual+=self.aceleracao
print "Acelerando. A velocidade atual agora é de %i km/h" % self.velocidadeatual

Está certo, se você vem de Java[bb], por exemplo, isso pode parecer muito inseguro. Isso é coisa da sua cabeça, acredite. Mas, se você não quiser acreditar, então pode tentar um truque como o dessa página (Procure por “abstract”) ou isso aqui.

Clonezilla, configurando um andar inteiro de computadores em 50 minutos.

Sua empresa acaba de comprar 50 computadores[bb] (ou, quem sabe, 500) iguaizinhos e você precisa configurá-los todos? Como fazer?

Bom, se você, como eu, trabalha com Linux, logo deve ter pensado em configurar uma máquina, usar dd para criar uma imagem do disco, e em seguida usar boot PXE (pela rede) com um scriptzinho para copiar a imagem para cada máquina. Se as máquinas tiverem que ser Windows, faria a mesma coisa, mas a máquina não estaria exatamente “pronta”. A imagem copiada estaria naquela parte do “digite o número serial”, com os drivers e programas a serem instalados já copiados no HD.

Pois não é que fizeram um software para automatizar essas tarefas? Clonezilla. Interessante.

Linux, Windows, Install, Clonezilla, PXE

Jonas Galvez não morreu!

Tive o privilégio de encontrar o Jonas Galvez online na semana passada. Estávamos ocupados, tanto eu quanto ele, por isso não conversamos muito. Mas já deu para saber algumas coisas que muita gente me escreveu perguntando. Primeiro, que ele está vivo, não se mudou para o Tibet, não virou monge nem vendedor de sanduíche natural na praia. Depois, sobre o antigo domínio, jonasgalvez.com. Morreu mesmo. Mas ele já tem endereço novo: JonasGalvez.org.

Outra novidade é que ele me disse que logo volta a publicar. Estamos esperando, Jonas, não demore.

Hospedagem Barata, Host Bom.

Me ajude a pagar as contas desse blog:

Hospedagem PHP, Ruby-on-Rails e MySQL, com:

  • 20Gb de disco
  • 1 terabyte de transferência mensal
  • Um domínio grátis
  • acesso SSH
  • WebDav
  • Extensões do FrontPage[bb]
  • Streamming Quicktime
  • Real Audio e Vídeo
  • Instalação de WordPress, phpBB, MediaWiki, Joomla e Gallery com um click
  • Servidor Jabber
  • Subversion
  • 3000 contas de e-mail (POP, SMTP, IMAP e webmail, com filtro de Spam)
  • Domínios ilimitados
  • E-mail aliases ilimitados
  • Listas de discussão ilimitadas
  • Acesso ao crontab
  • Painel de Controle, Estatísticas, Suporte 24 horas, etc.

Sim, você sabe, é o Dreamhost que oferece essa maravilha. Servidores muito estáveis, que hospedam, por exemplo, o Tableless.com.br.

E, se você optar por pagar de uma vez dois anos de hospedagem, tudo isso custa apenas US$ 7,95 por mês. E tem mais, usando o código de desconto “DESCONTUDO”, você estará ajudando este humilde blogueiro a manter seu blog online e vai obter dois anos de hospedagem por apenas US$ 103,80. Ou seja, você pode hospedar quantos sites conseguir em 20Gb por menos de US$ 4,33 por mês .

Para fazê-lo é preciso ter cartão de crédito internacional. Você acessa a página de comparação de planos para escolher o plano que melhor se adapte às suas necessidades. Com o “DESCONTUDO”, os preços para o pacote de dois anos vão ficar:

  • Crazy Domain Insane! – US$ 103,80
  • Sweet Dreams – US$ 295.80
  • Code Monster – US$ 295.80

Em seguida acesse a página de cadastro e preencha o formulário. Não se esqueça de colocar, lá no final, o promocode “DESCONTUDO” para obter seu desconto. A página seguinte já mostra o valor com desconto e pede os dados de cartão de crédito. Pronto.

Encerrando o Blog

Senhoras e senhores leitores, em virtude dos recentes acontecimentos, este blog está encerrado até que eu tenha certeza de que possuir um blog e escrever nele sem diploma de jornalismo não é contravenção.

Naturalmente, aceito doações de leitores que desejem colaborar pagando advogados para esclarecer a questão ou me custeando uma faculdade de jornalismo. Err… pensando bem, fico só com os advogados mesmo.

(É claro que é brincadeira. Vou continuar postando irregularmente aqui, como sempre tenho feito. Já me sinto um fora-da-lei.)

Usabilidade ao pagar contas no Internet Banking do Bradesco

Uso o Internet Banking do Bradesco há alguns anos. Passei anos pagando minhas contas nessa tela:

Pagando contas de consumo no Bradesco

Sem ler aquele texto “Se necessário consulte a Relação das Concessionárias Conveniadas”. Ou seja, preenchia o código de barras, a data, e em seguida clicava no select:

Pagando contas de consumo no Bradesco

E encontrava, naquela loooooonga lista, a empresa cuja conta estava pagando. Passei mais de um ano xingando o Bradesco por este campo a mais, tão complicado de usar, e elogiando o Itaú pelo seu sistema mais simples. Até o dia que, não sei porquê, li aquele texto em negrito.

O que me motivou a escrever este post é que vi um amigo fazendo a mesma coisa esses dias. E ele já é a quarta pessoa que eu vejo fazer isso. Culpa nossa, que não lemos o texto? Pode ser. Mas quem perde com isso é o Bradesco, que passa a imagem de complicado e burocrático[bb] enquanto esse mal entendido podia ser evitado com facilidade.

Minha sugestão? Tirar esses campos dali. Se alguém tentar pagar uma conta de uma concessionária não conveniada, envie o sujeito para uma tela informando isso e, se acharem conveniente, exibindo a lista. De preferência numa lista HTML, não num select. Duvido muito que aquela lista ali esteja ajudando alguém. A idéia é que, se o sujeito tem uma conta que não pode ser paga pelo sistema, ele descobre isso ali na lista, antes de perder seu tempo digitando o código numérico. Você acha que alguém realmente consulta aquela lista antes de digitar?

Usability, Usabilidade, Bradesco, InternetBanking