jul 30 2008

Novidades na documentação do PHP

Olá, ontem( 29-07-2008 ) foi noticiado no site do PHP sobre mudanças na documentação.

A mais importante fica por conta da mudança da licença da documentação para Creative Commons 3.0. As outras mudanças foram mudanças de navegação, a adição da documentação para “Prepared statements and stored procedures”, uma nova categoria de exemplos entre outros detalhes que realmente aumentaram a experiência de navegação (Sempre quis falar isso ;)) para o usuário.

Até a próxima!


jul 29 2008

Lançamento do PHPUnit 3.3.0 Beta 1

Olá, hoje foi lançado o beta 1 do PHPUnit 3.3.0.

Sebastian Bergmann postou em seu blog e lançou também algumas especialidades que ainda não estão neste beta, mas que estará na versão final. Ele está esperando um patch do Mike Naberezny para novos asserts para XML.

Além disso, Sabastian faz uma convocação para usarmos e mandar feedback sobre este beta, vamos ajudar então!

Até a próxima!


jul 25 2008

Certificação profissional, eu devo ter um?

Olá hoje teve um email na lista php-brasil bastante interessante. Foi sobre uma dúvida de um iniciante que gerou uma discussão bonita e foi sobre um assunto que diverge a opinião de várias pessoas, sobre Certificação Profissional.

Infelizmente no Brasil ainda quem faz a seleção para os profissionais de Tecnologia da Informação é o antigo Recursos Humanos e para essas pessoas, certificados e diplomas contam bem mais do que a experiência de trabalho. Ainda mais para os profissionais de informática onde temos a necessidade de estar sempre estudando e se atualizando com a velocidade que é essa área.

O pensamento de várias pessoas sobre certificados é que eles são apenas um material que não tem um valor real do que você é capaz. É muito fácil você conseguir tirar um certificado profissional da linguagem XYZ, mas é muito mais difícil você conseguir provar de que aquele certificado tem um valor real, um valor de estudo.

Além disso certificados fazem os profissionais serem mais bitolados, uma pessoa com um certificado quando está procurando emprego mostra o seu certificado, quem não tem mostra seu valor de profissional, mostra suas experiências e conquistas pessoais na profissão. Eu não tenho nenhum certificado sobre PHP, mas me considero um ótimo conhecedor dessa linguagem e não penso em tirar um certificado apenas para mostrar que sei sobre PHP, eu mostro o que eu escrevi, mostro os artigos que escrevi lendo e estudando sobre essa linguagem, mostro que sou pró-ativo nas listas de discussões e principalmente mostro que sempre serei um profissional “Júnior” que estará sempre aprendendo coisas novas, independente de tecnologia ZXY.

O meu maior medo é de que amanhã, logo após eu ter feito um certificado ZXY, essa linguagem/tecnologia vire obsoleta e aquele meu certificado não tenha mais nenhum valor de mercado ou que eu não tenha mais a mesma vivacidade de estudar uma nova linguagem como quem ganha um novo brinquedo por que eu “tenho meu lugar no mercado”. Esse pensamento de que as pessoas só podem trabalhar se tiver um diploma/certificado é algo que eu considero que deve ser banido. Faz nivelar as pessoas “por baixo” e realmente não mede o quanto aquela pessoa sabe sobre determinado assunto, e o pior, faz as pessoas apenas acreditarem que aquela é uma verdade absoluta, e que nada mais pode ser criado.

Esse é o meu ponto de vista sobre o assunto hoje. Até a próxima!


jul 25 2008

OSCON 2008

Para quem não sabe amanhã ( 25/07/2008 ) é o último dia da OSCON 2008 - O’Really Conferences. É a décima edição desse mundo “OpenSource”.

Evento que reúne profissionais da IBM, Google, Canonical, Engine Yard, Red Hat, Novell, MIT, Postgree SQL, Mozilla, SUN, Creative Commons, Yahoo!, Adobe entre outras empresas. Contando com 2500 desenvolvedores, hackers e amantes do software livre é um evento cheio de coisas e que não cabem em apenas 5 dias (21/07 - 24/07).

Com muita coisa sobre PHP, como uma palestra do Sebastian Bergmann criado do PHPUnit, Wez Furlong desenvolvedor da classe PDO do PHP e o criador do PHP Rasmus Lerdof entre outras palestras interessantes.

Para quem não segue essas pessoas de alguma forma (Twitter, Blogs, Agregador de Blogs) deixo aqui os links para as apresentações sobre PHP que teve até agora na OSCOM 2008.

Quando tiver novos slides coloco por aqui.

Até a próxima!


jul 22 2008

Zend Framework 1.6 RC1

Olá, hoje saiu a nova versão do Zend Framework 1.6 (ainda Release Candidate).

Essa versão do framework vem com SOAP Server/Client, além de vários outros features. Aqui você pode ver uma listagem com todas essas novas funcionalidades.

Post rápido ;-)

Até a próxima!


jul 19 2008

Futuro do PHPSpec

Olá, para quem não conhece, PHPSpec é um framework BDD para PHP.

Hoje o desenvolvedor do framework, Pádraic Brady, postou um email na lista phpspec-dev (phpspec-dev@googlegroups.com) e um artigo em seu blog sobre o futuro do PHPSpec.

A primeira e mais importante notícia, é que ele quer criar uma DSL decente (Sim, decente). Como ele citou no seu artigo, no Ruby, o BDD é sexy, mas em PHP é feito e chato. Por conta da sintaxe do PHP, a DSL acaba sendo uma coisa totalmente feia. Enquanto que no Ruby temos algo como “should score 0 for gutter game”, em PHP isso acaba virando um método:

    public function itShouldScore0ForGutterGame() {
        for ($i=1; $i<=20; $i++) {
            $this->_bowling->hit(0);
        }
        $this->spec($this->_bowling->score)->should->equal(0);
    }

Para desenvolvedores PHP isso é de fácil leitura, mas infelizmente, isso gera uma barreira enorme para pessoas que não sabem nada de PHP ou de programação, isso acaba fazendo ter um nível de explicação para o cliente ou para o interessado nesse comportamento, e isso vai diretamente contra o principio do BDD, onde todos os envolvidos tem que enteder realmente o que se está fazendo.

A outra notícia, é que ele está retomando a dianteira no desenvolvimento do Framework, desde fevereiro ele não vem dando dedicação necessária ao framework.

A primeira coisa é que ele está fazendo uma varredura nos bugs e liberar mais uma nova versão 0.2.x. Além disso ele fez uma chamada para quem quiser contribuir com alguma coisa para a versão 0.3 :).

Outra coisa importante é que anunciou que possivelmente em setembro ou outubro sairá a versão 5.3 do PHP, e pelo roadmap dele, a versão 0.5 já estará sobre o PHP 5.3 e afirmando que não fará esforços para que o framework funcione nas versões anteriores passando essa responsabilidade para a comunidade.

Agora é esperar até a DSL for sexy o suficiente para todos entender ;).

Até a próxima!


jul 15 2008

Lumine no GitHub

Olá, na semana passada o Hugo Ferreira, criador do Lumine Framework, fez um release de uma versão beta onde ele criou destrutores e um método invocando esses destrutores. Eu até comentei aqui no blog sobre esse release, e gostei muito porquê realmente fez diminuir o consumo de memória, mas uma coisa ainda me deixava com a pulga atrás da orelha, porquê o framework ainda “inchava” no consumo de memória.

Aí no sábado fiquei pensando o que eu devia fazer e no domingo comecei a fazer. A primeira coisa que fiz, foi colocar o Lumine Framework no GitHub, assim fica mais fácil as pessoas verem o que está sendo feito e pode comentar cada linha do que está lá, bem simples mesmo, apenas clicando na linha e comentando. E fica fácil para quem quiser desenvolver, é só fazer um fork e botar a mãos na massa.

Depois eu investiguei como funciona a criação dos objetos e retirei o armazenamento de um objeto de configuração dentro do objeto que estamos lidando. Removi porquê não vejo a necessidade de se manter esse objeto lá, porquê não tem como eu mudar essa configuração em tempo de execução, já que ele necessita de um objeto de configuração.

Nesse ponto, o Hugo me disse que possivelmente não funcionaria multiplas conexões com bancos distintos. Como eu ainda tive a oportunidade de testar se realmente funciona multiplas conexões, então não posso afirmar nada, mas investigando os métodos de criação de configuração, eu acho que irá conectar normalmente.

Depois, eu alterei o destrutor para realmente cumprir o que ele faz destruir o objeto, antes ele estava apenas limpando algumas propriedades do objeto, destruindo outras, agora ele realmente destrói. Se alguem tiver a necessidade de apenas reiniciar o objeto, é só usar o método reset() que ele se propõe a fazer isso.

E por último varri todo o Lumine_Base e procurei por onde ele estava criando objeto e comecei a destruir todos após a sua execução.

Com essas alterações, agora o framework não está inchando e mantém a consumo de memória constante.

No momento estou trabalhando na perfomance dele. Ontem eu fiz o mapeamento do método save e fiz um benchmark, ele faz uma média de 32,2 linhas salvas no banco de dados por segundo. Quero aumentar a quantidade de linhas salvas por segundo e estou estudando como ele faz isso, logo após, irei fazer o inverso, verificar a quantidade de linhas navegadas por segundo.

Quem quiser contribuir com o que eu estou fazendo pode fazer um fork no GitHub e fazer os commits para lá ou para apenas quem quer acompanhar, é só assinar os feeds de commits e do projeto.

Até a próxima!


jul 15 2008

“Trabalhar online no conforto do lar: quer vida melhor?”

Esse é o título da entrevista que fiz pro site 180 Graus, o maior portal de notícias daqui do Piauí.

UPDATE: Alteraram o nome da matéria.

A entrevista foi muito boa, foi quase uma conversa, foi super legal. Agradecer a Luana Sena pela matéria :D e ao portal =]

Outra coisa totalmente fora de topico e que merece um post especial é que nesse final de semana trabalhei muito no Lumine e venho com boas notícias!

Até a próxima!


jul 11 2008

Lumine e o gerenciamento de memória

Olá, agora a pouco o Hugo lançou uma nova versão do Lumine, com algumas correções, como um destrutor explicito para o objeto (Diminuindo e muito o consumo de memória).

Então quem utiliza o lumine é bom atualizar o framework e utilizar os métodos novos :D

Até a próxima!


jul 11 2008

Integrando o PHPUnit e o PHPSpec ao CodeIgniter e ao Lumine Framework

Meu grande amigo português Ricardo Mestre me fez a seguinte pergunta esses dias:

Como faço para usar o PHPUnit no CodeIgniter?

O que vou mostrar aqui serve para esses dois frameworks (PHPUnit e PHPSpec) ou para qualquer um outro framework que necessite.

Seguinte, o CodeIgniter possui sua configuração de acesso no index.php, só que na penúltima linha, ele faz chamada ao arquivo BASEPATH.’codeigniter/CodeIgniter.php’;. Quando é requisitado, ele faz a requisição aos arquivos de inicialização e executa o método index da classe default dentro do arquivo system/application/config/routes.php. (UPDATE: o arquivo que define do controlador default a ser chamado assim que a aplicação funcina é em routes.php)

Aí, para usarmos os controladores do CI é necessário utilizar esse arquivo de configuração por conta das contantes que o CI utiliza. Para evitar de quando executarmos nossas classes de testes, elas não venham a executar por conta da saída do CI.

Então, é necessário fazer um arquivo com o mesmo contéudo do index.php, exceto da linha BASEPATH.’codeigniter/CodeIgniter.php’;. Ao fazermos isso é necessário chamar as bibliotecas básicas do CodeIgniter manualmente que estão dentro da pasta /system/codeigniter/. As bibliotecas são BaseN.php (4 para o PHP 4 e 5 para o PHP 5). Common.php e como vamos fazer teste dos controladores, é necessário importar a classe Controlller.php que está dentro da pasta /system/libraries/.

Após isso é só incluir esse arquivo criado dentro das classes de testes.

Resumindo:

  1. Criar arquivo com contéudo do index.php excluindo a penúltima linha que faz chamada ao BASEPATH.’codeigniter/CodeIgniter.php’;
  2. Incluir dentro desse arquivo chamada para /system/codeigniter/BaseN.php (N = 4 ou N = 5);
  3. Incluir dentro desse arquivo chamada para /system/codeigniter/Common.php;
  4. Incluir dentro desse arquivo chamada para /system/libraries/Controller.php;

Bom, agora para utilizar os Models do Lumine, é apenas necessário fazer chamada ao arquivo com as configurações de acesso do Lumine. A critério de convenção, podemos criar um novo arquivo de configuração apenas alterando o nome do banco de dados, assim não prejudicando seu banco de dados.

Depois disso tudo podemos testar nossos controladores e os modelos do Lumine com o PHPUnit, PHPSpec ou qualquer outro framework de testes.

Até a próxima!