quinta-feira, 3 de fevereiro de 2011

Lançado o mwsX 1.1

Para quem gosta de fazer sites "web 2.0+" em PHP, mas tem preguiça de fazer a comunicação entre o PHP e o JavaScript, hoje foi lançada a versão "1.1" do mwsX.

O mwsX se enquadra na categoria de “mais outra biblioteca facilitadora de AJAX” e versões dele estão rodando em muitos sites que participei/participo desde 2007. Esta nova versão permite usar o PHP no lado cliente e fornece maior compatibilidade com as várias versões de PHP e JS.

Página do projeto:
http://code.google.com/p/mwsx/

Sobre o Projeto:

Por quê criar mais uma biblioteca facilitadora de AJAX ?
Quando descobri o AJAX, da mesma forma que muitos, fiquei empolgado: aquilo era a nova Web. Não precisaríamos mais recarregar toda a página - e isto era só a ponta do iceberg, havia muito mais.

Da mesma forma que muitos, procurei mais sobre a tecnologia e cheguei na combinação “Apache + JSP + Tomcat + AXIS”. Tentei instalar ele e dias depois estava mais confuso do que no início.

Da mesma forma que muitos, a tentativa resultou em um trauma que não gosto nem de comentar: incompatibilidade entre versões, compilações que ficavam em cache, ter que escrever XMLs "na mão". Agora sei como vítimas de crimes graves se sentem - foi horrível, humilhante e vergonhoso.

Com base nesta terrível experiência tentei fazer algo com os motes “fácil de instalar/usar” e “não intrusivo” - e o resultado foi o mwsX. Não estou dizendo que o mwsX é o mais fácil de instalar e usar, isto é relativo de quem o usa e não pode ser medido - você pode usar e achá-lo horrível, dependerá de suas experiências pessoais, mas para mim ele é a biblioteca de AJAX mais fácil de usar e instalar e espero que o seja para muitos.

Valores do projeto
a) ser menos intrusivo possível: você não tem que alterar seu código PHP (ou terá que alterar muito pouco)
b) fácil de instalar e usar: não há instalação, compilação, etc. Você precisa de 2 arquivos e 2 linhas de inclusão (“include” no PHP e “script” no JS): só.

Clientes
no momento existem clientes para o PHP e para o JavaScript, mas sinta-se a vontade para fazer clientes em outras linguagens.

segunda-feira, 24 de janeiro de 2011

Padrões de Codificação

Conheci um profissional de criação web incrível, suas páginas são como impactantes obras de arte. É o tipo de pessoa que está só esperando que alguma grande empresa o descubra. Enfim, é “o cara”. Ao elogiá-lo para um colega, fui perguntado se ele era bom criativamente ou tecnicamente. “Ué, mas não é a mesma coisa ?” pergunto eu. “Ele faz ótimos trabalhos e o resultado é perfeito. Mas e a codificação dele faz jus à criação?” pergunta o colega.

Isto me fez refletir: já desenvolvi muitos programas que estão em atividade em empresas, mas meu código pode ser realmente uma porcaria. Programo há 21 anos e nunca li sobre padronizações. Por consequência, meu estilo de programação muda a cada semana e nem eu o entendo após algum tempo - imagine outros programadores. Alguns chegam a dizer que o código é criptografado.

O objetivo é alcançado, mas não seria também objetivo dar manutenção posterior ? A falta de ferramentas adequadas (no caso estilo de programação) não poderia estar limitando a criatividade ?

Dito isto, resolvi correr atrás de padronizações de código-fonte e achei os documentos a seguir que espero que sejam úteis para quem quiser criar código para o mundo e não para si só:

OWASP - guia de programação segura: http://www.owasp.org/images/e/e2/OWASP_SCP_Quick_Reference_PT-BR_v1.0.pdf

material sobre padronização de programação PHP:
http://www.dagbladet.no/development/phpcodingstandard/ (Inglês, para mim, o melhor) 
http://www.walkeralencar.com/PHPCodeStandards.pdf (pt-BR, um resumo traduzido do guia da Zend) 
http://framework.zend.com/manual/en/coding-standard.coding-style.html (Inglês, guia da Zend - "fabricante" do PHP)  

artigos sobre padronização: 
http://blog.walkeralencar.com/archives/25 http://www.arnaut.eti.br/op/cppfl25.htm

padronização Java (Oracle). Para programadores de outras linguagens, serve para encontrar pontos em comum com outras comunidades: http://www.oracle.com/technetwork/java/codeconventions-141999.html#680


UPDATE 17/02/2011:
Não sabia que a Google também tem seu próprio guia de estilos:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

Divulgando conhecimento

Existem 2 formas de passar conhecimento - criando conteúdo original ou ecoando conteúdo de terceiros. Existe uma piada comum entre estudantes universitários que diz que “copiar de alguém é plágio, copiar de vários é pesquisa”. A menos que seja uma cópia tal e qual, com as mesmas palavras, eu discordo.

Reproduzir conteúdo de terceiros, é muitas vezes considerado plágio, principalmente se o conteúdo é pago. Porém o conteúdo original nem sempre é explicado de forma que todos consigam interpretar - sempre existe alguém que não entende patavinas do que foi dito. Isto quando o conteúdo não peca pela falta de divulgação. 

Ao reescrevermos o conteúdo original, podemos alcançar um número maior de pessoas tanto por usarmos outras formas de expressão - formas muitas vezes mais lúdicas (com outras palavras, vídeos, etc), mas também por divulgar mais o conteúdo. Aí entra o efeito “Twitter” onde a importância da notícia não é medida pelo seu conteúdo, mas sim pela quantidade de repetições feitas pelas pessoas.

A idéia de criar conteúdo original parece nobre, afinal não é plágio. Mas criatividade não é pegar 2 coisas comuns na nossa vida, mas diferentes entre si e mostrá-las juntas, de uma forma que ninguém viu (citação plágio do Stephen King) ? Não seria a originalidade nada mais do que uma criação coletiva que tudo aquilo recebemos (de Michelangelo à TV) e que regurgitamos à nossa maneira (citação plágio de César Brod) ?

Não importa como, mas me parece que a divulgação de conhecimento sempre se justifica.