Troca tudo!

Julho 17th, 2008

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…

Junho 10th, 2008

… 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…

Junho 4th, 2008

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!

Maio 28th, 2008

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

Maio 28th, 2008

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!

Brincando com o ZF

Maio 26th, 2008

Não é de hoje que tenho olhado o Zend Framework, e só não tenho feito um uso mais intensivo dele por que onde eu trabalho o desenvolvimento em PHP é feito em cima do Joomla e do WordPress, de forma que fazer uso do framework, pelo menos por hora, não é o meu foco. Pelo menos onde eu trabalho, vale lembrar…

De qualquer maneira estou brincando com ele, fazendo algumas coisinhas, e pretendo ir publicando o que estou fazendo. A base dos meus testes é o aplicativo de álbuns de disco do tutorial do Rob Allen, de forma que vou publicar aqui trechos que tenham a ver com as funcionalidades que eu vou testando.

Ah sim, a questão clássica: por que o Zend Framework, e não o CakePHP ou o Prado ou qualquer outro framework que usa o modelo MVC? Bem, primeiramente por um motivo simples, que é o fato de que este é um framework desenvolvido pela mesma empresa que desenvolve o PHP em si. Segundo: a participação de empresas como IBM e Nokia no desenvolvimento do framework é algo que deve ser levado em consideração. Terceiro: enquanto boa parte dos frameworks estão preocupados em rodar no PHP 4 e no 5 o ZF tem uma visão voltada pro futuro, onde já se definiu que ele só vai rodar no PHP 5 em diante. E quarto a licensa usada pelo ZF é o BSD, e não a GPL. Pode parecer bobagem, mas nunca se sabe quando você vai precisar fornecer um código fechado…

Bem, então é isso.

Aos poucos vamos estar melhorando a coisa

Maio 14th, 2008

Fazia um tempinho já que eu não ia lá no Google Translate e nem estava sabendo que recentemente ele recebeu uma atualização. De qualquer maneira é o seguinte: a tempos atrás (mais especificamente falando em 31 de janeiro) fiz um teste com a frase O que será que será que dá dentro da gente e que não devia?, da música O que será (à flor da pele), do Chico Buarque. O resultado da tradução para o inglês foi o seguinte:

What would be giving in the people and which should not?

Traduzindo de volta para o português:

Quais seriam dando no povo e que não deveria?

Como se vê não é nenhuma maravilha de tradução, e o sentido original da frase se perde. Sim, eu sei que escolhi uma sentença particulamente difícil, mas para que facilitar? Além disso lá está, na frase em português, o maldito gerundismo dando as caras.

Bem, hoje fui lá testar novamente e o resultado foi esse:

What will we be giving into the people and that should not?

Como se pode ver o “dentro da gente” foi convertido em “into the people”. Não sei muito de inglês, mas será que ali não seria o caso de um “into us”? Bem, de qualquer maneira mandei ver novamente na tradução inglês -> português e o resultado foi:

O que é que vamos estar dando para o povo e que não deveria?

Deus! Gerundismo de novo não!!! De onde sai tal tradução? Será que é culpa do pessoal que clica no link “Suggest a better translation”?