A quantas ando

Ok, só para constar: em julho do ano passado eu pedi demissão da Unisinos. Depois de 11 anos trabalhando lá achei que estava mais que na hora de sair da zona do conforto e tentar algo novo. Assim procura aqui, procura ali, e um amigo me avisa que há uma vaga na ADPLabs do Brasil e lá fui eu. Ótimo lugar para trabalhar, com uma equipe muito legal, só que com o inconveniente de ter que ir todo o dia para Porto Alegre. Não que com o Trensurb isso seja um problema, na verdade o ruim era desembarcar na estação São Pedro e ver  o ônibus saindo naquele exato momento. Daí dá-lhe esperar uns 15 minutos até aparecer outro. Ok, tudo bem se fosse uma vez que outra, mas não, era quase todo santo dia. E depois, na hora de voltar, era comum ter que esperar quase meia hora para aparecer um para ir pro metrô. Daí, com essas esperas, mais o tempo de caminhada da minha casa até o Trensurb e vice-versa, eu gastava mais de 2 horas em traslado.E quer saber? Isso cansa.

Foi então que no começo de fevereiro apareceu um convite para trabalhar em outro lugar, no caso na F1 Soluções, empresa do meu caro amigo Eduardo “Gordinez” Oliveira, o baterista da extinta Not So Easy. Topei o desafio de pegar uma empresa pequena, que está crescendo rápido, e no dia 2 de março comecei aqui como desenvolvedor e líder técnico, ajudando a melhorar os processos de desenvolvimento da casa, baseado na minha experiência na Unisinos e nos 7 meses que tive de ADPLabs. O detalhe: a empresa é uma incubada do Pólo de Informática da Unisinos, de forma que estou praticamente de volta à casa onde me formei. É interessante ver como nesse caso a minha vida dá voltas.

E nesse meio tempo a Taila começou a trabalhar como secretária escolar numa escola municipal de São Leopoldo, ao mesmo tempo que estava estudando pro vestibular da UFRGS. Então, vendo essa correria toda não é de estranhar que o SinosRock tenha ficado para trás e tenha morrido. Simplesmente a gente não conseguiu mais dar conta de manter o site. Mas agora, com a Taila na UFRGS (a secretaria da escola ela deixou pra lá: era muito stress, de forma que não valia a pena) e comigo com mais tempo livre, nada impede a retomada do projeto, e assim que der ele volta ao ar.

Bem, basicamente é isso. E se quiser acompanhar melhor o que ando fazendo, lendo, ouvindo, etc e tal, sugiro que me acompanhe  no Twitter. 😉

Tenho que por a leitura em dia…

Eu sempre fui um cara de ler muito. Calculo que antes dos 20 anos eu tenha lido cerca de 1.000 livros, visto que eu costumava ler pelo menos uns 2 ou 3 livros por semana desde que  os meus 10 anos. Sim, eu era um adolescente com muito tempo livre, e a minha leitura era razoavelmente rápida: só para ter uma idéia eu li todos os 4 volumes d’As Brumas de Avalon em uma semana. Depois que eu entrei na universidade minha taxa de leitura de livros de ficção caiu bastante, não tanto por deixar de ler, mas sim por me voltar à leitura de livros técnicos, e com a Internet eu passei a ler menos livros ainda, já que há tanta coisa para ler na Internet que falta tempo para ler os clássicos.

Assim, quando vi que o jornal britânico The Guardian publicou uma lista de 1000 novelas que todos devem ler fui dar uma conferida se eu estava fazendo a lição de casa. O resultado? Não, não estou fazendo. Dos 1.000 livros indispensáveis aí da lista eu só li 56 deles! A saber:

  • Our Man in Havana by Graham Greene
  • High Fidelity by Nick Hornby
  • Zazie in the Metro by Raymond Queneau
  • Portnoy’s Complaint by Philip Roth
  • A Study in Scarlet by Arthur Conan Doyle
  • The Talented Mr Ripley by Patricia Highsmith
  • Perfume by Patrick Suskind
  • Two Serious Ladies by Jane Bowles
  • The Outsider by Albert Camus
  • The Old Man and the Sea by Ernest  Hemingway
  • Steppenwolf by Herman Hesse
  • Under the Volcano by Malcolm Lowry
  • The Catcher in the Rye by JD Salinger
  • Swiss Family Robinson by Johann David  Wyss
  • Dom Casmurro Joaquim by Maria Machado de Assis
  • Breakfast at Tiffany’s by Truman Capote
  • The Lover by Marguerite Duras
  • Zorba the Greek by Nikos  Kazantzakis
  • The Unbearable Lightness of Being by Milan Kundera
  • Lady Chatterley’s Lover by DH Lawrence
  • Women in Love by DH Lawrence
  • One Hundred Years of Solitude by Gabriel Garcia Marquez
  • Tropic of Cancer by Henry Miller
  • Lolita, or the Confessions of a White Widowed Male by Vladimir Nabokov
  • Delta of Venus by Anais Nin
  • Valley of the Dolls by Jacqueline Susann
  • The Hitchhikers Guide to the Galaxy by Douglas  Adams
  • Foundation by Isaac Asimov
  • Vathek by William Beckford
  • Fahrenheit 451 by Ray Bradbury
  • Naked Lunch by William Burroughs
  • The Passion of New Eve by Angela Carter
  • The Man who was Thursday by GK  Chesterton
  • Childhood’s End by Arthur C Clarke
  • Foucault’s Pendulum by Umberto Eco
  • Neuromancer by William Gibson
  • Stranger in a Strange Land by Robert A Heinlein
  • Dune by Frank L Herbert
  • Brave New World by Aldous Huxley
  • The Left Hand of Darkness by Ursula  Le Guin
  • A Canticle for Leibowitz by Walter M Miller Jr
  • The Little Prince by Antoine de Saint-Exupery
  • Frankenstein by Mary Shelley
  • Dracula by Bram Stoker
  • The Lord of the Rings by JRR Tolkien
  • Orlando by Virginia Woolf
  • The Plague by Albert Camus
  • Couples by John Updike
  • The Sheltering Sky by Paul Bowles
  • Journey to the End of the Night by Louis-Ferdinand Celine
  • Robinson Crusoe by Daniel Defoe
  • Asterix the Gaul by Rene Goscinny
  • Moby-Dick or, The Whale by Herman Melville
  • Zen and the Art of Motorcycle Maintenance by Robert  Pirsig
  • Maus by Art Spiegelman
  • Around the World in Eighty Days by Jules Verne

Ok, ali entre os 1.000 tem um monte que eu comecei a ler e não fui até o fim (tipo o Ulisses, o O Nome da Rosa ou o Don Quixote) mas isso não atenua o fato de que eu estou meio mal na foto. Acho que é o caso de aproveitar melhor as viagens de metrô entre Porto Alegre e São Leopoldo que eu faço diariamente e meter a cara nos livros.

Tradutores online: quem sabe a gente fazendo parte do G8 eles não me melhoram?

A questão de alguns meses atrás fiz um teste com o Google Translator usando uma frase do Chico Buarque: O que será que será que dá dentro da gente e que não devia?.  Bem, estava dando uma olhadinha nos meus feeds e lá pelas tantas vi uma dica sobre um tradutor feito pela Microsoft. Na mesma hora pensei: como será que ele se sai no teste? Só para constar o Google continua traduzindo a frase acima para What would be giving into the people and that should not?, porém retornando dessa vez Qual seria o que dá para a gente e que não deve?. Como se pode ver não é nenhuma beleza de tradução… Vamos à Microsoft então:

What is to be 2003/484/CFSP(2) within the people and that should not?

MAS QUE DIABOS É ISSO ? ? ? 2003/484/CFSP(2) ????  Ok, vamos dar uma chance pro tradutor e fazer de conta que o que retornou foi What is to be within the people and that should not?. Indo na ferramenta e traduzindo a frase para o português temos então O que é nas pessoas e que não deve?, o que não é nada mal! Tem muito mais sentido que a frase que o Google retornou! Está bem longe do perfeito, mas enfim está melhor.

Mas já que estamos testando tradutores como será que se sai o AjaxTrans, site que fiquei conhecendo pelo StumbleUppon esse fim de semana? Bem, a frase em inglês saiu What would be giving into the people and that should not?. Hm, peraí, eu já vi isso antes, não? 😉 Só para confirmar, em português a frase acima foi convertida para Qual seria o que dá para a gente e que não deve?. É, como se pode ver o Joel Parish faz uso do Google Translator na ferramenta dele… 🙂

Mas enfim, resolvi antes de fechar esse post fazer mais um teste: como seria se cada ferramenta convertesse para o português a frase gerada em inglês pela concorrente? Bem, a Microsoft converteu What would be giving into the people and that should not? para O que seria dar para as pessoas e que não deve?, e o Google translator converteu What is to be within the people and that should not? para Qual é a de estar dentro das pessoas e que não deve?. Esperava ver um resultado melhor, as duas trabalhando junto, mas ainda não foi dessa vez…

Jeito capilé de ser

Olha, pode-se falar o que for de São Leopoldo, menos que ela não é uma cidade interessante. Por mais que a gente veja a decadência no centro, as armações políticas, as paradas que se dá na produção cultural, sempre há algo para se ver na cidade. Ok, pode ser que algumas coisas você não goste, como o perfil da vida noturna da cidade que é composta por carros andando na rua principal da cidade tocando funk sem parar, com o povo na calçada parado em grupos tomando cerveja, mas o caso é que há uma vida noturna. Esses dias o namorado da minha cunhada soltou um “Lá em Caxias às 22 horas dão o toque de recolher e todo mundo some” com um certo toque de inveja na voz, isso quando a gente estava caminhando à meia-noite na Independência, meio que indignados com o movimento àquela hora.

Enfim, assim é São Leopoldo, e entre as coisas boas de São Leopoldo é que tem um povo que trabalha para levantar a cidade. Ok, nem todas as tentativas dão certo, mas que se tenta se tenta. E uma das iniciativas mais interessantes que tem nos últimos tempos é o do podcast Paisanos em Prosa, onde 3 turrões chatos (o Éver Ribeiro, o Zeca Baronio e o Tchakaruga de Paranaguá) que tem como característica um gosto meio esnobe onde só Chico Buarque realmente presta “coletam” figuras de São Leopoldo e entrevistam elas. Eu, da minha parte, só fui conferir o projeto quando o Marcelo Armani da SOL e o Cidade da Viana Moog* foram lá, e acabei indo conferir as edições anteriores e confesso que achei bem interessantes as pessoas entrevistadas, o que mostra que se numa cidade de quase 200 mil habitantes você não acha pessoas interessantes tu tá morando num lugar muito dos mequetrefes…

* Ah sim, já que falei na Viana Moog, aí vai a dica: tá na rede (com a devida autorização verbal – “pode por na rede! precisamos divulgar esse disco!” – do Cidade) o cd Viana Moog, de 2008.

Oi! Voltei! Sentiu minha falta? Não? Imaginei…

Pois é, eis que depois de 5 meses eis que estou de volta ao blog. Não que isso fizesse grande falta ao mundo, mas pode ter certeza que eu senti falta de blogar. Mas se eu senti falta disso porque não blogava? Bem, vários fatores, mas os dois principais são: eu não conseguia mais entrar no WordPress, já que o mesmo estava hiper-mega-desatualizado, e como eu não estava com vontade de incomodar o síndico fui deixando, sempre pensando “um dia eu atualizo o WP, e aproveito para tirar os posts antigos do b2…” até que resolvi esse fim de semana tomar vergonha na cara e mandar ver. Infelizmente não passei os comentários ainda, já que vou ter que acertar o índice de todos, assim como não relacionei os posts com as categorias, mas isso é tudo coisa que vou fazer na medida do possível…

Já o segundo motivo é que o trabalho lá na ADP Labs tá rendendo. Sim, valeu a pena sair da Unisinos para ganhar um pouco menos. Sim, valeu a pena ter que enfrentar quase 3 horas para ir e voltar ao trabalho, quando antes eu podia ir e voltar à pé em 1h30. Sim, valeu a pena quebrar toda a rotina que eu tinha, o que fez com que o meu regime fosse pra cucuia. Sim, valeu a pena tudo isso. Estou aprendendo muito, sinto que estou crescendo como profissional e posso dizer que sair da zona de conforto dá um medo desgraçado, mas é uma coisa muito boa a se fazer.

Bem, enfim, cá estou eu de volta. Sentiu minha falta? Não? Imaginei…

Troca tudo!

Pois é, um problema que volta e meia aparece por aí é o de que temos um diretório e ali temos uma série de arquivos onde temos que trocar uma string por outra. Não simplesmente trocar uma string, mas várias, e de forma não tão simples quanto trocar uma letra aqui e ali. Assim sendo, precisamos fazer uso de expressões regulares.

Então, que tal um scriptizinho para fazer isso? Foi o que me pediram no trabalho e que disponibilizo aqui (depois de receber a devida autorização). Assim, o que temos são dois arquivos, o noshorttags.php (que é usado para substituir os <? por <?php e os <?= por <?php echo em arquivos php) e o TreeReplacer.class.php (que é uma classe que faz todo o trabalho sujo). Para utilizar eles basta baixar o arquivo TreeReplacer.class.zip para o seu servidor web, descompactar e no arquivo noshortags.php definir na chamada do método DefinePath qual é o diretório onde será efetuada a substituição de strings. Daí é só acessar. Ah sim: por via das dúvidas faça um backup antes dos seus arquivos, já que aqui funcionou sem problemas, mas você sabe que informática não é de longe uma ciência exata… 😉

Ah se eu fosse pai…

… ia encher muito o saco da Claro por conta dessa campanha aqui (o negrito é meu):

Claro 3G promove ação para namorados
10/06/2008 09:00 – Márcia Lima
A Claro e o Kzuka, unidade no media do Grupo RBS especializada na comunicação e relacionamento com o público jovem, realizam ação para o o Dia dos Namorados através da terceira geração.

A iniciativa, chamada “A Claro te ajuda a encontrar a cara metade através da tecnologia 3G”, envolve a participação de jovens dos principais colégios de Porto Alegre, proporcionando que eles encontrem o seu par ideal em outra instituição instantaneamente.

Promotores das duas empresas já estão nas escolas auxiliando os alunos na procura dos seus pares. Cada grupo pergunta aos jovens quais são as características físicas ideais de seus possíveis namorados e namoradas.

Os promotores buscam nos colégios os alunos que correspondam às características mencionadas e coloca os participantes em contato por vídeo chamada. Os casais que se formarem a partir desta ação ganharão um presente da Claro e do Kzuka.

Características físicas ideais… Nada de gostos musicais, filmes preferidos, lugares que costuma frequentar, nada disso. Simplesmente a coisa fica em “características físicas ideais”. Em vez de aproximar as pessoas pelo que elas tem em comum, o que faz aumentar consideravelmente a chance do namoro de fato ser algo válido para os dois envolvidos, essa promoção entra na armadilha de valorizar os dotes físicos. Daí o que temos? Temos dois jovens que vão lá, vão ficar se olhando abobalhados e no que vão conversar vêem que não tem absolutamente nada em comum.

Isso lá é forma de aproximar as pessoas? Pft!

Por favor, estatizem a Brasil Telecom…

Pois é…

Acabo de ficar mais de meia hora pendurado no telefone ligando para a Brasil Telecom. Primeiro liguei para cancelar meu BR Turbo. Espero espero espero cerca de 25 minutos para ser atendido, lá pelas 21h03, 21h04. No que sou atendido a atendente pergunta porque eu quero cancelar, eu explico que assinei a GVT. Ela começa a falar que a GVT é uma franquia (hein?), etc, etc. Peço para ela falar mais alto, já que tem muito barulho no fundo. Ela pede um minuto, me coloca novamente na espera e… DESLIGA.

Sim, desligou a ligação. Ligo novamente e após passar por toda a cascata de menus vem a mensagem:

“Prezado cliente, nosso horário de atendimento é de segunda a sexta-feira, das 8 às 21 horas, horário de Brasília. A Brasil Telecom agradece a sua ligação.” e puff, o telefone é desligado.

Ligo novamente para a assistência técnica dessa vez. Quem me atende é o Diogo. Pergunto se por ali dá para cancelar a ligação. Ele diz que não, que tem que ser das blá-blá-blá etc e tal. Puxo o ar e “Alô Diogo, essa ligação está sendo gravada, não? Ok, então não leve pro lado pessoal e repasse no fim essa gravação pros teus chefes, ok?” e mando ver. Não, não fui grosso, apesar da vontade enorme de ser. Reclamo do fato de deixarem o cliente pendurado na linha, reclamo do fato do cliente ter que aguentar uma espécie de pós-venda onde antes de ouvir o cliente já se fez a instalação da linha nova, reclamo do fato de que partiram para uma acusação ad hominem do tipo poço envenado contra o concorrente, reclamo do fato de ter que aguentar aquela droga de propaganda (quem disse que linha telefônica presta para anúncios com fundo musical???) e reclamo do fato de terem desligado o telefone na minha cara. No fim peço desculpas pro Diogo, digo que sei que o ouvido dele não é penico, e pergunto para ele se há como a gravação ser mandada para o chefe dele. Ele dá uma resposta burocrática, dizendo que tenho que ligar no dia seguinte para o ramal certo. Foi educado o garoto, mas mesmo assim dou avaliação negativa para o atendimento. Espero que ao verem que o julgamento do cliente sobre o atendimento 237505498 não foi bom a chefia pare e escute a ligação.

Ah, o quê? Se eu quero MESMO que estatizem a Brasil Telecom? Não, passou a raiva. Desabafar faz bem. =)

Linux é coisa de marginal!

Pois é, não bastasse o Hans Reiser ter matado a esposa e agora aparece um assassino que matou uma jovem lá em Nova Iguaçú usando uma camiseta do Slackware ao ser preso:


Se continuar desse jeito logo logo vão dizer que mexer no kernel faz despertar em alguns a vontade de mexer nas entranhas dos outros…

Update: acabei de ver que no MeioBit disseram que fui eu que encontrei a notícia no jornal Hora H. Bem, a César o que é de César: quem me passou o link foi o Eduardo Costa Lisboa, lá no Resposta42. =)

ZF: Criando um ambiente de testes

Antes de mexer no Zend Framework convém criar um ambiente de testes. Para isso a gente precisa de um servidor Apache com o PHP 5. Como o meu ambiente de desenvolvimento é o Windows eu recomendo o uso do Portable XAMPP Lite, que permite que inclusive seja instalado num pendrive. Para simplificar o processo vamos partir do princípio que tudo está sendo feito a partir da raiz do drive C.

Bem, baixado o XAMPP Lite é necessário baixar o Zend Framework e, uma vez descompatado, copiar o diretório library para dentro do diretório c:\xamplite\php. Aí é necessário abrir o arquivo c:\xampplite\apache\bin\php.ini e alterar o valor da variável include_path para

include_path = “.;\xampplite\php\pear\;\xampplite\php\library\”

(

Aliás, já que estamos no php.ini, vamos aproveitar e ativar a extensão PDO do SQLite. Para isso basta tirar o ponto e vírgula que tem na frente da linha:

extension=php_pdo_sqlite.dll

)

Vaos agora ativar o URL Rewriting.
Assim vamos abrir o arquivo c:\xampplite\apache\conf\httpd.conf e retirar o # que tem na frente da linha:

LoadModule rewrite_module modules/mod_rewrite.so

Feito isso vamos botar o aplicativo de álbum de discos do tutorial do Rob Allen para trabalhar para ver se está tudo ok. Assim, após fazer o download do código fonte de exemplo nós descompactamos o conteúdo do diretório zf_tutorial-150 do arquivo zf_tutorial-150.zip para dentro do diretório c:\xampplite\apache\htdocs\zf_tutorial . Configuramos então o tutorial para acessar a base de dados do MySQL da máquina, abrindo o arquivo c:\xampplite\htdocs\zf_tutorial\application\config.ini e colocando o seguinte conteúdo:

[general]
db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = root
db.params.password =
db.params.dbname = zftest

Pronto, agora pode executar o arquivo c:\xampplite\xampp_start.exe (se você quiser que o Apache e o MySQL rodem sempre que o Windows for inicializado execute o c:\xampplite\xampp-control.exe e defina os dois como serviços) e acessar o endereço http://localhost/phpmyadmin/. Vá em Create new database e entre com zftest. Vá então na opção Import e em Location of the text file entre com c:\xampplite\htdocs\zf_tutorial\application\dbschema.sql, clicando então em Go. Com isso a base de dados do tutorial está carregada.

Agora é acessar http://localhost/zf_tutorial/public/ e voilà, você está com um aplicativo usando o Zend Framework instalado na sua máquina para você brincar!