:: PORTUGUÊS ::  ENGLISH ::


Quem será o proximo presidente da republica?

 André Ferreira
 Mario Soares
 Cavaco Silva
 Jerónimo de Sousa
 Francisco Louçã


 

Parceiros:

Server time

02:58
01-Agosto-2010

Localização: Home Page > Entrevistas > Manuel Lemos

Entrevista a Manuel Lemos

André Ferreira:

Desde já, gostaria de agradecer em meu nome e em nome do MastersHelp esta possibilidade. Talvez comece por te perguntar o que é o website Phpclasses e como surgiu a ideia de o criar.

Manuel Lemos:

Já desenvolvo sites em PHP desde 1997. Em cada projecto verificava que haviam necessidades repetitivas que poderiam ser satisfeitas com as mesmas bibliotecas de código que fui acumulando. Quando comecei, estava a sair o "PHP 2 beta" . Apenas permitia usar funções e variáveis globais. Não era uma boa maneira de organizar bibliotecas de código porque, por vezes, havia sobreposição de variáveis de funções e variáveis globais com o mesmo nome, mas pertencentes a módulos diferentes. Mais tarde, quando saiu o "PHP 3" com suporte a programação por objectos, finalmente pude começar a organizar melhor o código em classes de objectos. Eu comecei a acumular bastantes classes de objectos para funções genéricas diversas que, por isso, poderiam ser úteis nos projectos de outras pessoas para além dos meus. Frequentemente, recomendava em listas de discussão de PHP o uso de classes de objectos minhas a outras pessoas, pela sua utilidade geral. Para isso, indicava os interessados para me contactarem em particular para lhes enviar os ficheiros das classes sem perturbar as listas de discussão. À medida que ia recebendo mais pedidos esta forma de "distribuição" tornava-se cada vez mais trabalhosa.

Um dia, houve um programador da Austrália que ficou tão satisfeito com uma classe de processamento de formulários que decidiu agradecer-me em público, recomendando bastante a classe a outros. Na verdade, eu não disponibilizo o meu trabalho de código aberto a outros para obter reconhecimento, mas sim para ter o maior número possível de pessoas a testar de forma a achar eventuais bugs o mais rápido possível ou até receber boas sugestões para melhorias. Porém, aquela mensagem do tal programador australiano fez com que fosse "inundado" de pedidos. Nessa altura, tornou-se claro que não dava para continuar nesse esquema de enviar por e-mail. Por outro lado, essa forma de "distribuição" permitia que anotasse quem estava a usar as minhas classes e estaria interessado em receber actualizações com bugs corrigidos ou novas capacidades.

A partir daí, decidi procurar sites que permitissem alojar componentes de código em PHP. Achei alguns interessantes, como o site PX - PHP Code Exchange - de David Sklar. Porém, esse site não tinha uma forma, mesmo opcional, de registar quem é que usava cada componente e estaria interessado em ser avisado de novas versões. Contactei o David Sklar e propus que fosse adicionado um recurso de registo de utilizadores e notificação por e-mail de novas versões. Ele não se interessou pela ideia, nem mesmo quando me ofereci para implementar o código necessário.

Nessa altura, decidi então iniciar o meu próprio repositório de componentes de PHP. Decidi desenvolver um site do zero com algumas diferenças significativas em relação ao PX, como por exemplo, a possibilidade de registo de utilizadores para fazer download, notificação por e-mail dos utilizadores de novos componentes ou actualização de componentes existentes, organização de pacotes com múltiplos ficheiros, etc. Numa semana, tinha a base do site pronta para lançar. Avisei todos os utilizadores que tinha anotado por me terem contactado e eles começaram a se inscrever no site. A partir daí passei finalmente a indicar o site aos utilizadores interessados das listas de discussão. O site passou a funcionar como self-service. Como outros autores se começaram a interessar pelo site, eu abri o site para que eles também pudessem publicar os seus componentes e a adesão começou a crescer exponencialmente até hoje.

André Ferreira

Essa forma de ver as coisas, refiro-me concretamente à partilha de código que é propriedade intelectual tua, parece-me intimamente ligada à GPL e ao movimento open source. O código é publicado sob esta licença? Identificas-te com o movimento?

Manuel Lemos

Não, na verdade penso que existe um grande equívoco sobre esse assunto.

Eu desenvolvo software profissionalmente. É muito difícil subsistir desenvolvendo software disponibilizando-o gratuitamente ao público, mesmo com as restrições da licença GPL. Há sempre quem copie o código e se aproveite sem nunca se saber, e mesmo sem roubar o código há sempre quem roube as técnicas de execução escrevendo código novo com esse conhecimento. A licença GPL só poderá alguma vez servir quando o roubo de código for óbvio e a entidade que rouba seja suficiente grande para poder ter a sua imagem prejudicada com uma eventual denúncia pública. Quem pretende sobreviver vendendo código desenvolvido por si, precisa quase inevitavelmente de o fechar distribuindo com uma licença proprietária ou então cobrar um valor de tal forma alto que tornará o eventual roubo de código um prejuízo menor. O motivo pelo qual eu mesmo assim disponibilizo estes componentes que disponibilizo no site PHP Classes, é porque esses componentes são de base e por isso não pretendo tirar proveito financeiro com eles. Por esse motivo, terei mais proveito disponibilizando os componentes de forma aberta porque isso atrai mais utilizadores que poderão ajudar avisando sobre bugs que possam existir ou sugerindo novas capacidades. Há sempre a possibilidade haverem utilizadores que corrigem bugs ou adicionam novas capacidades, mas esses são muito raros uma vez que esse tipo de contributo requer uma capacidade técnica maior por parte do programador que contribui e acaba só por acontecer de forma significativa com projectos extremamente populares.

André Ferreira

Nesse caso, o código que tens é livremente distribuído sem estar sob qualquer tipo de limitação. Permites-me que te pergunte porquê?

Manuel Lemos

Inicialmente eu não tinha muito a noção sobre a necessidade de explicitar a licença de uso. Isto acontece com a maioria dos programadores quando começam a abrir o código porque não existe uma preocupação legal. Porém quando alguns utilizadores perguntavam-me sobre se poderiam usar o meu código em sistemas fechados ou mesmo comerciais, eu dei-me de conta que era preciso adoptar uma licença suficientemente conhecida que se identificasse com os meus fins. Normalmente, eu lanço os meus projectos de código aberto sob a licença BSD porque essencialmente expressa o que me interessa que é que permito uso da versão original ou de versões alteradas em projectos que podem ser abertos ou fechado, gratuitos ou comerciais, desde que mantenham o copyright da licença.

Resumindo, o que me interessa é aumentar ao máximo a base de utilizadores que testam o código. Não me oponho que alguém consiga vender o meu código. Se tivesse alguma objecção não o disponbilizaria com código fonte aberto. Por esse motivo, obviamente não disponibilizo sempre o código de todos os projectos que desenvolvo. Os projectos que têm valor comercial e dos quais depende a minha subsistência, obviamente não os vou abrir. Seria como "entregar o ouro aos bandidos".

André Ferreira

De uma forma simples, como descreves então o que é uma classe em PHP? Como se utiliza?

Manuel Lemos

Uma classe é uma biblioteca que encapsula funções que servem para executar operações eventualmente manipulando variáveis que guardam informação relacionada. Por exemplo, uma das minhas classes mais populares serve para gerar e validar formulários. Os objectos dessa classe podem guardar informação que define os campos desse formulário e ter funções para apresentar o formulário numa página Web, processar o formulário quando o utilizador submete o formulário, determinar se os valores dos campos obedecem a regras de validação pré-estabelecidas, etc.

Para se usar uma classe em PHP, é preciso incluir o ficheiro de definição da classe no script da página na qual se pretende usar formulários. Depois cria-se um objecto da classe com o comando new, e a partir daí atribuem-se valores às variáveis da classe para configurar detalhes e invoca-se as diferentes funções da classe que executam as operações que se pretende usar.

André Ferreira

Cerca de 55% dos teus utilizadores são da Europa. Qual é a estratégia de marketing que utilizas na promoção do site? Procuras audiências especificas?

Manuel Lemos

No início eu não tinha um interesse comercial de forma a gerar receita a partir do site. Apenas me interessava divulgação para aumentar o número de pessoas a testar os meus componentes. O que fazia para divulgar o site, era o que já fazia antes de criar o site, que era participar nas listas de discussão e ajudar pessoas que poderiam resolver os seus problemas com componentes meus.

Mais tarde, à medida que o site se foi tornando mais visível, recebi um convite de um dono de um site de conteúdo para utilizadores de PHP e MySQL, para fazer uma troca de banners. Nessa altura comecei a ganhar consciência do potencial de receber mais utilizadores interessados através de trocas de publicidade entre sites. Como era uma forma gratuita de conseguir mais audiência, era algo que se encaixava perfeitamente no meu "orçamento".

Uma outra forma de divulgação que ocorre automaticamente com sites de bastante conteúdo são os sites de pesquisa que indexam conteúdo, como o Goggle. Hoje em dia, o Google traz cerca de 2000 visitas por dia ao site. Essas visitas são feitas por pessoas que acharam algo que procuram no resultados de pesquisa do Google. Portanto, é importante ter o site de alguma forma optimizado para maximizar as visitas orginadas pelo Google e não só, como o Yahoo Search, MSN Search, etc... O Google é de longe o mais importante porque é o que traz mais utilizadores.

O registo do site nos sites de directórios que listam sites organizados por temas também é muito importante. Aliás, a listagem nestes directórios ajuda a aumentar a probabilidade de aparecer colocado nos primeiros resultados de pesquisa, principalmente do Google. Os directórios globais mais importantes penso que são o DMOZ e o Yahoo. Enfim, sobre optimização de sites para maximizar o número de visitas, haveria muito mais para dizer porque é quase uma ciência à parte na Internet. Se para um site de conteúdo é importante, imagine-se a importância disto para sites de comércio electrónico e outros com fins lucrativos. Hoje em dia existe até uma profissão chamada SEO (Search Engine Optimizer) em que estão enquadradas as pessoas que trabalham neste sector da Internet.

André Ferreira

O trabalho que realizas no phpclasses.org é rentável? Como?

Manuel Lemos

No momento, o trabalho no site é rentabilizado através de publicidade paga nas páginas do site. Sempre procurei uma forma de rentabilizar o esforço despendido no site. A publicidade é uma forma mas não é algo que gere receita regular. Há meses muito melhores que outros. De qualquer forma, o importante que aprendi é que a venda directa de publicidade é quase inviável. Quero dizer, se eu me dedicar a andar atrás de potenciais anunciantes até consigo alguns, mas fico quase sem tempo para nada. Por outro lado, eu não sou um vendedor. Quero dizer, não tenho a conversa e a técnica de um profissional de vendas. Isso faz muita diferença na hora de conseguir fechar vendas de publicidade com potenciais anunciantes.

A alternativa a esta "limitação pessoal" que me demorou tempo a descobrir enquanto o site era apenas um hobby, seria ou contratar uma equipe de vendas ou contratar uma empresa que fizesse isso. A primeira alternativa requer um investimento que pode não ter retorno garantido por factores diversos e por isso constitui um risco que não me interessou. A segunda alternativa é a mais realista uma vez que não tenho que investir nada. O problema é que a maior parte das agências de publicidade apenas trabalham com sites que atingem um nível de audiência significativo. Por isso precisei de esperar até ao fim de 2002 para ser aceite pela primeira agência. Hoje em dia o site trabalha com 3 empresas que funcionam como agências de publicidade. É sempre bom não colocar todos os ovos no mesmo saco. A primeira é a TribalFusion que vende publicidade para anunciantes colocando anúncios que aparecem no meu site. Eles pagam por valor e quantidade de páginas com anúncios mostrados, porém não mostram anúncios em todas as páginas. O Google com o seu programa AdSense é uma outra empresa que funciona como agência de publicidade. Colocam anúncios de texto relacionados com o conteúdo das páginas onde aparecem. Existe uma terceira empresa que paga um valor fixo por mês por links de texto fixo colocado na home page do site. Existem ainda anunciantes que são contactados directamente por mim, mas esses não geram uma receita regular uma vez que apenas pagam apenas por campanhas esporádicas.

A receita de publicidade hoje em dia é suficiente para me dedicar a tempo inteiro. Porém, não é regular nem oferece garantias de continuar a ser uma fonte de receita que assegure a viabilidade do site no futuro. Isto limita também a minha capacidade de investir em novos recursos que levem a novas despesas ou contratação de pessoal. Por esse motivo, pretendo lançar num momento ainda não determinado, um pacote de serviços pagos por assinatura aos utilizadores do site interessados em aderir pagando um valor baixo por mês. Esse pacote de serviços ainda não está totalmente definido mas incluirá serviços estudados a partir de sugestões enviadas por utilizadores do site. São serviços que de certa forma melhoram as possibilidades do site, mas como requerem recurso que aumentam significativamente a despesa, apenas será possível fornecê-los aos utilizadores que se dispuserem a pagar uma assinatura. Os restantes recursos do site que hoje são gratuitos, continuarão a ser gratuitos. Conto que com esta evolução na profissionalização do site possa também continuar a adicionar mais serviços gratuitos de forma sustentável.

André Ferreira

Que linguagens, aplicações e bases de dados utilizas no phpclasses?

Manuel Lemos

No momento o site está escrito totalmente em PHP. Tudo usa PHP desde os scripts das páginas até aos scripts que enviam newsletters, processam devoluções e outras operações que são executadas fora do servidor Web.A base de dados que é usada é MySQL, mas podia ser uma outra qualquer (PostgreSQL, Oracle, Microsoft SQL server, etc..) sem ter de mudar uma linha de código do site uma vez que foi escrito usando um pacote de abstracção de acesso à base de dados que eu desenvolvi chamado Metabase que proporciona total independência da aplicação em relação à base de dados usada.

André Ferreira

O metabase terá de ficar para outra oportunidade. Quantas tempo dedicas ao desenvolvimento do site?

Manuel Lemos

Praticamente todo tempo livre tirando no máximo uma hora por dia para moderar e aprovar as novas classes que foram submetidas. Eu trabalho em casa. A prioridade é a família. Pelo que o tempo livre é o que sobra. Alguns dias não sobra nada, noutros só vou dormir quando terminar as tarefas que me propus. Pelo que é muito variável.

André Ferreira

Tens cuidados a nível de acessibilidade e usabilidade? Quais?

Manuel Lemos

Sim, mas isso é problemático. Eu tento não mexer muito na disposição das coisas. A disposição actual reflecte muitas melhorias que foram feitas de acordo com sintomas de problemas de acessibilidade que me foram transmitidos pelos utilizadores. Por exemplo, mais de uma vez recebi queixas de pessoas com dificuldade de visão de que com as cores usadas no site não conseguiam ler bem por falta de contraste. As melhorias foram feitas e as pessoas ficaram satisfeitas. O problema é que de vez em quando recebo propostas de alteração do design meramente por questões estéticas. Muitas das questões estéticas são subjectivas. O que agrada a uns pode não agradar a outros. Por isso prefiro não mexer muito porque nada me garante que qualquer mudança arbitrária no design do site vá satisfazer mais uns do que outros. Pior que isso, se deixar mudar qualquer coisa, pode ocorrer que algumas pessoas deixem de conseguir achar coisas que estão habituadas a achar nos mesmos lugares desde há anos. De qualquer forma tenho alguns cuidados básicos com a usabilidade, como dar alternativas de usar teclas para activar campos de formulários para evitar que os utilizadores tenham de alternar entre o teclado e o rato frequentemente e outros detalhes por vezes mais subtis.

André Ferreira

Quantos colaboradores tens no phpclasses de momento?

Manuel Lemos

Na verdade os maiores colaboradores são os autores que submetem as suas classes para publicação no site. De resto eu faço quase tudo. Existem apenas duas pessoas que por vezes ajudam em detalhes únicos. Há um utilizador da Austrália que se dispôs a melhorar o inglês que uso nas críticas de livros ou mensagens de anúncio de novas capacidades. Há um utilizador da França que concebeu o logo elePHPant que é usado no site. Ele também concebeu o logo da iniciativa PHP Programming Innovation Award lançada no site no mês passado para dar reconhecimento aos autores que contribuem com as classes mais inovadoras ou que de outra forma dão valor adicional aos projectos de outros que os usam.

André Ferreira

O que podemos encontrar no teu site que não podemos encontrar noutro lado? Que garantias dás aos utilizadores a nível de qualidade?

Manuel Lemos

O que eu dou aos utilizadores do site que talvez não seja dado noutros sites é consequência de algo que dou aos autores que por vezes têm dificuldade de encontrar, que é poderem publicar os seus componentes, por mais simples ou complexos que possam e com isso poder alcançar uma audiência de muitas dezenas de milhares de utilizadores ansiosos para saber sobre novos componentes de programação em PHP. A partir daí os utilizadores podem receber por e-mail avisos imediatos sobre actualizações das classes que anteriormente trouxeram sem qualquer burocracia. Os que não quiserem receber avisos imediatos podem receber apenas a newsletter semanal que contém sumários de tudo que foi actualizado. Existem eventualmente outras coisas de interesse únicas deste site, mas penso que estas são mais importantes.

André Ferreira

Segundo as estatísticas que tens disponíveis, 22% dos teus utilizadores utilizam Mozilla. Acreditas que alguma vez a utilização deste browser ou doutro publicado sobre GPL poderá ultrapassar o IE?

Manuel Lemos

Não. O domínio do IE tem directamente a ver com o domínio do Windows no desktop. Enquanto este domínio continuar, nada deve mudar. Sei que a Microsoft não vai disponibilizar novas versões do IE para download. Porém, o que importa é que o browser vai vir de graça com novas versões do Windows e enquanto as pessoas usarem o Windows, nada vai mudar na divisão do mercado dos browsers.

André Ferreira

Que futuro desejável e possível ambicionas para o phpclasses.org?

Manuel Lemos

Para já, pretendo continuar a trabalhar no sentido de implementar o pacote de serviços pagos por assinatura. De momento esta é a minha maior ambição. Penso que mais do que isto seria pensar em dar um passo maior que a perna, o que nunca foi o meu espírito.

André Ferreira

Para finalizar, deixa-nos um conselho para quem começar a trabalhar com PHP: qual é o melhor caminho a percorrer até chegar às classes?

Manuel Lemos

RTFM! ;-)

Entrevistador: André Ferreira
Idioma Original

Ver Comentários: 0 | Comentar Entrevista
 

On-line: 4 Visitantes - 0 Membros

[Acerca]  [Regras]  [Privacidade]  [Contacto

© 2004-2005 André Ferreira