Acessando o Banco do Brasil no Ubuntu 12.04 64bits

Atualização 21/07/2013: numa instalação nova do Ubuntu 12.04 além dos passos abaixo tive também que criar o seguinte link simbólico (não sei dizer se isso se deve a uma mudança no site do BB, no Java ou no Firefox)

sudo ln -s /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so /usr/lib/firefox-addons/plugins

De tempos em tempos surge algum problema para acessar o site do Banco do Brasil no Ubuntu. No começo do ano quando atualizei para a versão 12.04 do Ubuntu tive que instalar o Java 6. Esse mês fazendo uma nova instalação do Ubuntu 12.04 encontrei uma solução para que o site do BB funcione com o Java 7. Segue abaixo o que fiz (todos os comandos executados como root):

mkdir -p /etc/.java/.systemPrefs
chmod 755 -R /etc/.java
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java7-installer

A grande sacada é a criação do diretório /etc/.java/.systemPrefs. Dica que encontrei no post Banco do Brasil em 64 bits: Solução definitiva?

Se você já fez alguma tentativa de instalação do Java é uma boa ideia remove-la antes.

Como testar código que depende do sistema de arquivos com PHPUnit e vfsStream

Já faz um tempo que me interesso por testes unitários e em especial por TDD. Utilizo o PHPUnit, o principal framework da família xUnit para PHP. Neste post vou fazer uma rápida apresentação do vfsStream, um stream wrapper que permite simular um sistema de arquivos no PHP, facilitando muito a escrita de testes para código que manipula ou depende do sistema de arquivos.

Abaixo segue uma classe que utilizaremos como exemplo (para simplificar ela somente apresenta os elementos que interessam para este post):

<?php

class File
{
	/**
	 * Path to the file
	 * @var string
	 */
	protected $path;

	/**
	 * 
	 * @param string $path
	 * @return null
	 */
	public function __construct($path)
	{
		$this->path = $path;
	}
	
	/**
	 * Add a string to the end of the file
	 * @param string $string
	 * @return null
	 */
	public function append($string)
	{
		file_put_contents($this->path, $string, FILE_APPEND);
	}
	
	/**
	 * Return file contents as a string
	 * @return string
	 */
	public function get()
	{
		return file_get_contents($this->path);
	}
}

Se formos testar essa classe somente com os recursos oferecidos pelo PHPUnit, teríamos que criar e destruir os arquivos utilizando os métodos setUp() e tearDown() respectivamente. Isso funciona porém tem algumas complicações. Por exemplo, se por algum motivo a execução do teste for abortada, os arquivos criados não serão removidos do sistema de arquivos. Outro problema dessa abordagem é a manutenção dos testes quando o código a ser testado trabalha com múltiplos arquivos e/ou diretórios.

Utilizando o vfsStream não é necessário utilizar o tearDown() já que tudo é criado na memória e você tem mais controle e garantias sobre o ambiente de teste já que este é completamente virtual e não está sujeito a influência de outras operações que podem ocorrer enquanto os testes são executados.

Veja abaixo uma classe de testes que utiliza o vfsStream para testar os métodos descritos acima:

<?php

require_once('File.php');
require_once('vfsStream/vfsStream.php');

class FileTest extends PHPUnit_Framework_TestCase
{
	protected $obj;
	
	protected $file;
	
	protected $string;
	
	protected function setUp()
	{
		$this->string = "first line\n";
		
		$root = vfsStream::setup();
		
		$this->file = new vfsStreamFile('file.txt');
		$this->file->setContent($this->string);
		$root->addChild($this->file);
		
		$this->obj = new File(vfsStream::url('file.txt'));
	}
	
	public function testAppend()
	{
		$string = "second line\n";
		$expectedResult = "first line\n" . $string;
		 
		$this->obj->append($string);
		
		$this->assertEquals($expectedResult, $this->file->getContent());
	}
	
	public function testGet()
	{
		$this->assertEquals($this->string, $this->obj->get());
	}
}

No método FileTest::setUp(), a chamada ao vfsStream::setup() cria o diretório raiz do sistema de arquivos virtual e retorna um objeto do tipo vfsStreamDirectory. Na sequência, nas linhas 20 e 21, é criado um novo objeto do tipo vfsStreamFile e definido seu conteúdo inicial. Por fim na linha 22 o novo arquivo é adicionado a raiz do sistema de arquivos virtual e na linha 24 uma instância da classe que vamos testar é gerada recebendo como argumento o caminho para o arquivo.

O restante do código é auto explicativo para quem está acostumado com o PHPUnit, com exceção da linha 34 onde para verificar se o arquivo foi mesmo modificado é utilizado o método vfsStreamFile::getContent().

Para mais informações veja sobre o vfsStream sugiro:

Ciclista atropelado durante a Bicicletada de outubro no Rio de Janeiro

Não pude ir na Bicicletada de outubro aqui no Rio de Janeiro então só no sábado de manhã fiquei sabendo do atropelamento do Rafael (ele está bem, sofreu uns arranhões e a roda da bicicleta ficou um pouco amassada).

A Bicicletada estava em Copacabana na Rua Santa Clara. O motorista Célio Pereira, 50 anos, que estava atrás do grupo começou a pressionar a massa, acelerando e freando em cima dos ciclistas, numa clara demonstração de violência. A mesma coisa que fazia o motorista Ricardo Neis antes de passar com seu carro no meio da Bicicletada de Porto Alegre e atropelar vários ciclistas no começo do ano.

De óculos e de frente para a foto, Celio Pereira, o motorista que atropelou um dos ciclistas da Bicicletada
De óculos e de frente para a foto, Célio Pereira, o motorista que atropelou um dos ciclistas da Bicicletada

No caso do motorista carioca, ele não passou por cima de todos, mas numa dessas aceleradas “errou” e parou o carro somente depois de ter derrubado o Rafael ao acertar a roda traseira da sua bicicleta.

Me entristece muito ver que coisas como essa ainda acontecem em nossa sociedade. Ver que um ser humano considera plausível jogar seu veículo de algumas toneladas para cima de outra pessoa por sua pressa em chegar ao próximo sinal vermelho.

Mesmo se toda a rua estivesse ocupada por bicicletas nada justifica o comportamento do Célio Pereira. Porém, as bicicletas estavam apenas em algumas pistas da via, outras estavam “livres”. Ele poderia simplesmente ter mudado de faixa e seguido com sua pressa doentia até, de novo, o próximo sinal vermelho.

Após o atropelamento a Bicicletada teve um comportamento exemplar, com muitas palavras de ordem para manifestar a perplexidade diante do que ocorreu, mas sem em nenhum momento ameaçar o motorista que ficou no local. A polícia foi chamada e o BO registrado. Agora é esperar o desenrolar dessa história na justiça.

Infelizmente até agora não apareceram imagens do momento do atropelamento. Existe um vídeo que começa logo após o fato mas que está temporariamente indisponível a pedido do advogado de defesa.

Segue abaixo alguns links para outros relatos e fotos:

Em tempo, num exercício quase impossível, deixando de lado o atropelamento, pelas fotos a Bicicletada de outubro parece ter sido muito boa. Muita gente feliz e fantasiada seguindo a temática do Halloween (bem que podíamos ter feito Dia do Saci, mas essa é outra conversa) pedalando pelas ruas do Rio por uma cidade mais lúdica e amorosa, por mais respeito aos ciclistas.

Fotos da Bicicletada ordinária de setembro no Rio de Janeiro

Segue abaixo algumas fotos da Bicicletada ordinária de setembro no Rio de Janeiro. Minha ideia inicial era publicar junto com um relato mas o tempo passou e isso não aconteceu.

Fomos até a região do Maracanã para conhecer uma ciclovia recém inaugurada pela prefeitura. O triste foi ver que essa nova ciclovia chegue em grande parte em cima da calçada, deixando pouco ou nenhum espaço para os pedestres, e no pequeno trecho que percorremos em alguns momentos ela some num quarteirão para aparecer somente no próximo.

Chegamos perto dos cem participantes 🙂

Outras fotos no Facebook da Bikelover in Rio.

Fotos da Bicicletada do Dia Mundial Sem Carro 2011 no Rio de Janeiro

Segue abaixo algumas fotos da Bicicletada do Dia Mundial Sem Carro 2011 no Rio de Janeiro. Minha ideia inicial era publicar junto com um relato mas o tempo passou e isso não aconteceu.

Outras fotos no Facebook da Bikelover in Rio.

Bicicletada extra e demais atividades do Dia Mundial Sem Carro 2011

No próximo dia 22 de setembro de 2011 ocorrerá mais uma edição do Dia Mundial Sem Carro. O principal objetivo “(…) é estimular uma reflexão sobre o uso excessivo do automóvel, além de propor às pessoas que dirigem todos os dias que revejam a dependência que criaram em relação ao carro ou moto. A ideia é que essas pessoas experimentem, pelo menos nesse dia, formas alternativas de mobilidade, descobrindo que é possível se locomover pela cidade sem usar o automóvel e que há vida além do para-brisa.” (fonte http://pt.wikipedia.org/wiki/Dia_Mundial_sem_Carro).

Segue abaixo o cartaz de divulgação da Bicicletada extra que ocorrerá no próprio dia 22 (a tradicional Bicicletada da última sexta-feira do mês, que em setembro será no dia 30, está mantida). Para saber mais sobre a Bicicletada carioca veja a página no site bicicletada.org e para saber mais sobre a edição extra do DMSC2011 veja a página do evento no Facebook.

Cartaz de divulgação da Bicicletada do Dia Mundial Sem Carro (arte por Fox Goulart)
Cartaz de divulgação da Bicicletada do Dia Mundial Sem Carro (arte por Fox Goulart)

 

Outras atividades para celebrar o DMSC2011 estão sendo organizadas por diversos grupos. Segue abaixo uma lista incompleta do que consegui reunir até agora (se souber de alguma atividade que não está listada por favor deixe um comentário):

  • Dia 16/09:
  • Dia 18/09: Passeio Ciclístico Um Dia Sem Carro organizado pela FECIERJ no Aterro do Flamengo (enquanto isso em São Paulo o presidente da Federação Paulista de Ciclismo continua afirmando que bicicleta não deve andar na rua…).
  • Dias 19 até 22/09: A loja Pedal 2 promove passagens guiadas da Saens Peña até o centro, nos horários da rush, para quem quer usar bicicleta como meio de transporte, mas tem medo, ou não conhece um caminho bom.
  • Dia 22/09:
    • Será proibido estacionar no centro (da Rio Branco até a Bahia Guanabara).
    • Proibido estacionar nos prédios da prefeitura.
    • Inauguração de nova sinalização em lugares de 30km/h, avisando que a rua é para compartilhar com a bicicleta.
  • Dia 24/09: Moving Planet, uma manifestação mundial para exigir soluções para a crise climática.
  • Dia 25/09: Passeio de abertura do BiciRio
  • Dias 26-27/09: Congresso BiciRio

 

Erro ao importar um blog do Blogspot para o WordPress

Estou trabalhando na importação do blog de receitas da Rede Ecológica que ficava no Blogspot para dentro do novo site que usa o WordPress (o que já está pronto pode ser visto em http://redeecologicario.org/blog e o blog original em http://ecosdarede-receitasecologicas.blogspot.com/). Já fiz importações como essa anteriormente sem grandes problemas. Mas dessa vez me deparei com um erro estranho e como demorei um tempo para descobrir a melhor solução compartilho aqui nesse post caso alguém passe pelo mesmo problema.

O WordPress possui uma ferramenta (o plugin Blogger Importer) para facilitar essa migração. Após instalá-lo o primeiro passo é clicar no botão “Authorize” para autorizar o acesso do WordPress ao conteúdo que está no Blogspot. Porém para minha surpresa apareceu o seguinte erro:

“Não é possível exibir a página solicitada. Outro site estava solicitando acesso à sua conta do Google, mas enviou uma solicitação incorreta. Entre em contato com o site que estava tentando usar quando recebeu essa mensagem para informá-los do erro. Segue abaixo uma mensagem de erro detalhada:

O site “http://redeecologicario.org” não foi registrado.”

Ou em inglês:

The page you have requested cannot be displayed. Another site was requesting access to your Google Account, but sent a malformed request. Please contact the site that you were trying to use when you received this message to inform them of the error. A detailed error message follows:

The site “http://example.com” has not been registered.

Infelizmente, como acontece muitas vezes no mundo dos computadores, a mensagem de erro não explica exatamente qual é o erro como vamos ver mais abaixo. Encontrei muitos relatos desse mesmo erro porém sem a solução. Parecia que o único jeito era contornar o problema exportando o blog do Blogspot para um arquivo XML e então convertendo esse arquivo para o formato do WordPress usando o site http://blogger2wordpress.appspot.com/ ou uma conta temporária no wordpress.com.

Só depois de um tempo que encontrei uma explicação para o erro em questão e a respectiva solução no post abaixo:

http://bloggertowp.org/solution-error-the-site-has-not-been-registered-during-wordpress-import/

Para poder utilizar o importador é necessário primeiro registrar o site que importará conteúdo do Blogspot na sua conta do Google. Para fazer isso acesse a URL:

https://www.google.com/accounts/ManageDomains

E pronto, agora é só seguir com a importação. Muito estranho isso não estar documentado no próprio plugin.

Nasce uma nova Bicicletada: Divinópolis – MG

De tempos em tempos alguém que está organizando uma nova Bicicletada na sua cidade escreve solicitando uma página no site http://bicicletada.org (para saber como solicitar uma nova página veja http://bicicletada.org/Adicione+sua+cidade).

No final de junho a Valéria Gomes de Divinópolis entrou em contato falando que estavam organizando uma Bicicletada na cidade dela. Criei a página (http://bicicletada.org/divinopolis) e na sequência trocamos alguns e-mails pois ela tinha algumas dúvidas normais de quando estamos começando um novo movimento.

Fiquei feliz ao receber um e-mail dela um tempo depois com o vídeo que segue abaixo documentando como foi a primeira edição da Bicicletada de Divinópolis:

Encontrei também um vídeo convite para a edição de agosto:

Esse mês três novas cidades entraram em contato: São Sebastião – SP, Poá – SP e Canoas – RS.

Ps: adicionei na interface de edição das páginas wiki do site da Bicicletada botões para que fique mais fácil colocar vídeos do Youtube, Vimeo e Blip.tv. Me dei conta que isso não estava habilitado ao ver como o pessoal de Divinópolis tinha feito para adicionar o vídeo acima na página deles.

Link para baixar o documentário “O Veneno Está na Mesa”

Algumas semanas atrás fiquei sabendo através de uma entrevista no Brasil de Fato com Silvio Tendler do “O Veneno Está na Mesa”. Neste documentário, produzido para a Campanha Permanente Contra os Agrotóxicos e pela Vida, o diretor mostra como diariamente comemos alimentos envenenados: o brasileiro lidera o ranking dos que mais consomem agrotóxicos em todo o mundo, cerca de 5,2 litros a cada ano por pessoa.

O filme foi feito para ser distribuído e exibido livremente. Ele foi publicado no Youtube em várias partes: http://www.youtube.com/user/contraosagrotoxicos. Quem preferir pode baixar o filme em um arquivo de 480MB.

Atualização 19/08/2011: Encontrei o filme inteiro no Youtube – http://www.youtube.com/watch?v=8RVAgD44AGg.

Documentários como este reforçam a importância dos produtos orgânicos do ponto de vista da saúde do consumidor. Mas também não podemos perder a dimensão social do consumo. Nesse sentido, em várias cidades brasileiras grupos se articulam já há alguns anos para comprar orgânicos diretamente de pequenos produtores de acordo com os princípios da Economia Solidária. Visando garantir a qualidade de vida tanto na cidade quanto no campo.

No Rio de Janeiro existe a Rede Ecológica, em São Paulo o Comer Ativamente e em Campinas o Trocas Verdes.

Relato e fotos da Bicicletada carioca de maio

Na última sexta de maio, como já de costume, ciclistas cariocas se encontraram na frente do Odeon para mais uma edição da Bicicletada. Nessa edição tive o prazer de reencontrar o Manoel, ciclista da Bicicletada de Porto Alegre, que em 2005 me hospedou durante minha viagem de bicicleta para Montevideo.

Tirei algumas fotos com o celular para registrar (espero que nas próximas alguém com talento para fotógrafo, o que não é meu caso, cuide disso :-)) e a Maíra Dias publicou um relato na lista da Bicicletada que replico abaixo:

Fui a primeira a chegar no ODEON e, confesso, cheguei a ficar
preocupada com a demora para ter companhia. O bonde de Botafogo veio
cheio. Logo depois mais alguns. Já com o roteiro definido, outros.
Durante o percurso, outros. Acho que o Fox tem os números, o Rodrigo
as fotos.. Eu fiquei só nas sensações/impressões..

Pra uma sexta-feira chuvosa, fomos muitos. Pra uma sexta-feira
chuvosa, fizemos o percurso necessário.

Éramos todos da zona sul e por isso a escolha foi rápida: Praia
Vermelha. Tivemos momentos pontuais de chuvisco e um momento crítico
de chuva no descanso na Praia… Mas foi perfeito para uma fuga de um
bando de ciclistas até a lanchonete mais próxima pra açaís (e algumas
cervejas).. Fiquei feliz com a bicicletada de ontem. Vendo gente
chegar junto, gente afim. Afim de alegria! Adorei os apitos!!!

Queria só dar três “retornos” pro grupo de coisas que acho que podem
ser melhores.. Precisamos pensar percursos mais possíveis para a
quantidade de pessoas que temos “sido”. Pensando depois achei que
aquela saída da São Clemente e rua da Passagem não funcionaram pra
“massa”, por exemplo. Não consigo visualizar agora qual o percurso que
poderia ter sido feito, mas acho que podemos ter esse cuidado..

Outra coisa é falar do megafone. Funcionou, mas acho que pode
funcionar melhor. A massa ontem, em muitos momentos, ficou muito
cumprida, mais do que precisava – deixando o meio “frágil” (eu mesma,
estava no meio da massa e levei uma cortada de uma moto). O megafone
na maior parte do tempo ficou bem atrás e os “gritos” acabavam ficando
confusos.. Algumas vezes alguém da frente puxava o grito e o Ernesto
não ouvia e puxava outro no megafone no meio, enfim… Acho que pode
ter uma função legal, principalmente para organização da massa (como
pedir pra juntar, acelerar, avisar as mudanças de faixas, …) e para
a comunicação com alguns motoristas – de ônibus, por exemplo. Lembro
bem de um momento na Praia de Botafogo que tinha um táxi parado na
faixa em que estávamos e vinha um ônibus de ar-condicionado na faixa
do lado. Conseguimos, numa pausa deste ônibus, segurá-lo para que a
massa tomasse a sua frente na faixa e seguissem em segurança. O
motorista ficou contrariado e não tinha como falar com ele por conta
das janelas fechadas. Cheguei a tentar agradecer, mas minha voz era
baixa se comparada ao megafone que gritava outra coisa.. Acho que este
é um momento estratégico para, com o volume necessário, atingir esse
motorista com um agradecimento.

Meu último ponto foi reparado logo após a nossa saída… Na última
bicicletada fizemos uma conversa sobre aqueles tópicos do que era
legal ou não fazer durante o pedal. E essa conversa faz diferença.
Sempre tem gente nova, acho que vale a gente sempre relembrar que na
massa a gente não xinga motoristas, respeita leis de trânsito, pedala
junto – formando a massa, … Esses lembretes que evitam estresses
dispensáveis… E poderíamos nos apresentar nesse momento de conversa
tb, né?! Que acham?

Acho que esses pontos são simples, mas necessários pra gente ir
aprimorando.

Um último registro é um agradecimento. Ontem na volta pra casa fui
escoltada por dois bike-anjos. Verdadeiros bike-arcanjos! Rafael e
Jaime: um luxo ser trazida pra casa por vocês. Nunca teria coragem de
pegar a Pinheiro Machado sozinha! rsrs Obrigada!

Desculpem as delongas 😉

Até a próxima: BICICLETADA de FERIADÃO! 24 de Junho!