Férias(acabou)…

October 29th, 2009

Pronto, voltei de férias.  Agora a chapa via esquentar. Apesar de não estar publicando nada faz muito tempo, acabou a brincadeirinha, não é promessa de político, pode me cobrar…

Segue aí algumas coisas que eu vou colocar no blog:

  • Um review das minhas férias(Viagem para Alagoas);
  • Série de screencasts do myfuses;
  • Série de screencasts do arquitetura(PHP);
  • Migração para Canadá, todas as minhas impressões sobre o processo(que eu estou fazendo);
  • Uma receita(de algum risoto aqui que eu fiz).

Então é isso aí, novembro já vou ter muita coisa pra fazer, confiram.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Problemas entre a teratech e a comunidade pode criar um fork no projeto do fusebox

August 10th, 2009

No último dia 6 de agosto de 2009 o mantenendor do projeto fusebox, Adam Haskell, publicou na lista de discussão do fusebox 5 uma carta aberta sobre alguns problemas entre o grupo de desenvolvedores do projeto do framework e a teratech, empresa que tem os direitos registrados de uso do nome fusebox.

Eu não vou publicar aqui detalhes da carta e sim algumas considerações sobre a “treta”. Confesso que fiquei bastante preocupado com tudo o que ando lendo e conversando com os desenvolvedores, mas creio que essa situação seja uma grande oportunidade para o crescimento do framework, que considero estar estagnado em relação ao avanço de outras opções disponíveis por aí, principalmente no que diz respeito a marketing.

O endereço da carta aberta é: http://cfrant.blogspot.com/2009/08/open-letter-to-custodians-of-fusebox.html, olhem e tirem as suas conclusões.

Minhas considerações:

  1. Como eu mantenho um framework derivado do fusebox(myFuses), isso afeta de maneira direta a ferramenta que venho desenvolvendo, junto com algumas poucas pessoas, principalmente no que diz respeito ao nome;
  2. Ainda em relação ao myFuses, vejo como uma oportunidade para ter algum reconhecimento da comunidade, pelo menos um link no site oficial dizendo: Olha tem uns caras aqui fazendo um trem parecido com o que agente faz…;
  3. Estarei sempre alinhado com a comunidade. Particulamente nunca gostei do jeito que a teratech se posicionou, tanto em relação ao ownership do projeto, mas principalmente nos feedbacks que eu demandei(não consegui nenhum), no máximo algumas respostas, um pouco amarradas, dos líderes do projeto fusebox, que se não me engano, estavam trabalhando para a teratech na época;
  4. O nome do projeto não vai mudar, sempre será myFuses, mas quando terminar a “treta” em relação ao nome, usarei o MyFuses como namespace do projeto, e o nome que a comunidade adotar(fusebox, fb422, onomequeseja…) como nome da classe para estar mais alinhado à identidade do framework, mas isso só vai acontecer na versão 1.5, branch que só nascerá depois que essa situação estiver resolvida;
  5. Com relação aos líderes do projeto(comunidade), Adam Haskell, Sean Corfield e Robert Burn, pelo menos do Sean, senti que a galera tá meio na defensiva, mas gosto muito das idéas deles, principalmente no que diz respeito a visão que eles tem do framework, nos aspectos de evolução e crescimento, mas ainda está meio nebuloso o que eles vão fazer. Uma coisa eu tenho certeza, eles não vão deixar o framework morrer, se o pessoal da teratech ficar sentado em cima do nome fusebox, eles já tem um nome já pronto pra tocar um fork nesse negócio. Espero conversar mais com eles para conseguir mais detalhes;
  6. Com relação ao nosso projeto, o myFuses, espero concluir uma documentação satisfatória, isso tá matando o projeto, quem quiser ajudar, por favor, sem cerimônias.

Bom, por hoje é só, se alguma notícia nova aparecer eu publico, mas já tenho um palpite: o pau vai quebrar geral e o nome vai mudar, o que não tem problema nenhum, já que o código da teratech está sob a Apache License.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Towel Day (Dia da Toalha)

May 25th, 2009

Aproveitando a data de hoje, 25 de maio, dia do orgulho nerd e o dia da toalha. Publico algumas fotos Publico uma foto desta grande data comemorativa para a humanidade.

Para saber mais sobre o dia da toalha: clique aqui.

Foto do dia: foto1.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Viagem para Gramado

April 30th, 2009

Do dia 25 a 30 de abril de 2008 estive em viajem para Gramado. Não esperava muita coisa, pois não teria praia, mas acabei me surpreendendo com o tanto de coisa que tem pra fazer por lá, e como é divertido vijar para a Serra Gaúcha.

Como eu e minha esposa não gostamos de ficar com a parte convencional dos passeios turísticos, e o tempo era bastante curto, procuramos aproveitar o máximo de tempo e levantar algumas informações importantes para quando voltarmos, com certeza voltaremos.

A impressão que tivemos é que se ficássemos um mês por lá, teríamos alguma coisa pra fazer, estarei publicando algumas impressões e dicas, sobre Gramado e a Serra Gaúcha, para marinheiros de primeira viajem que queiram evitar alguns transtornos ou aproveitar melhor a viajem.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Monografia sobre myFuses

November 24th, 2008

Meu trabalho de conclusão de curso (1° semestre de 2008) foi justamente o myFuses, framework que mantenho e desenvolvo.

Um trabalho muito gratificante, que amadureceu bastante o myFuses como ferramenta.

Estou disponibilizando o material para apreciação baixe aqui.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Consoft 2008

November 18th, 2008

Na sexta passada (14/11/2008) estive apresentando a palestra “Interoperabilidade, abordando aspéctos importantes em PHP”, no congresso Consoft 2008 em Goiânia.

Foi muito bacana participar deste evento, e poder compartilhar um pouco sobre um tema tão relevante e atual.

Apesar da presença do público tivesse ficado um pouco a baixo da expectativa, o evento foi bastante interessante, principalmente o fato de ser organizado por grupos de usuários de PHP, Java e .Net de Goiânia, o que é muito raro, geralmente quando mistura grupos de usuários deste jeito, acaba em briga, mas ao contrário, neste evento, o que deu para perceber foi uma grande integração e um diálogo entre os grupos, bom para o mercado de trabalho de Goiânia.

Para mim foi uma correria, conciliar tabalho, família e apresentação, mas o esforço foi recompensado, mas só sobrou tempo para colocar o meu mapa mental em uma apresentação, segue o material:

Apresentação.

Vou compilar os exemplos e postar neste post, pois eles são bastante complicados.

Gostaria de agradecer ao Almir Neto e ao Otávio Xavier da GOPHP, pelo convite e ao Pablo Sánchez da PHPDF pela indicação ao evento.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Projetos, projetos, projetos…

October 22nd, 2008

É tão bom começar um projeto! O problema é que depois de começamos um projeto, temos que terminá-lo, uma terefa bem complicada.

Você deve estar pensando, “putz isto é lógico, todo mundo sabe disso”, mas não é tão simples e lógico como se parece.

Como me envolvi com desenvolvimento de software open source, e sempre tem uma idéia nova pipocando na minha cabeça, estou com vários projetos em andamento iniciados, mas poucos estão andando bem, ou da forma que eu gostaria (em vez de bem, ótimo).

O diferencial dos meus projetos que estão andando bem são:

  1. Não sou a única pessoa envolvida;
  2. Não centralizo as decisões;
  3. Tento divulgar de qualquer forma (pessoalmente não sou o melhor cara nessa tarefa);
  4. Organizo as atividades (pontuando, priorizando, distribuindo);
  5. Conheço muito bem do negócio ou conceito que estou planejando, analisando ou executando.

Acho que existem outros diferenciais, mas estes cinco aí já são um bom começo, servem tando para projetos open source como para os profissionais.

Se eu conseguir achar mais algum por aí, postarei em uma outra oportunidade. Por enquanto tentarei mais, a continuar os meus projetos, do que iniciar, que como já falei, é uma tarefa muito difícil.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

É possível ficar mais rápido?

September 28th, 2008

Durante o desenvolvimento da engine do myFuses, dois detalhes são considerados de forma quase compulsiva:

  • A performance está aceitavel?
  • É possível ficar mais rápido?

Em relação a segunda preocupação eu sempre trabalho de forma pessimista, pois ao fazer os testes de velocidade, tento correr atrás de centésimos de segundo.

Mudando de assunto, para depois voltar de novo a ele, dois colegas meus, no Ministério do Meio Ambiente, fizeram um gerador de código para aplicações utilizando iFlux/myFuses, que a partir de um banco de dados( bem modelado ), telas básicas são construídas com as o CRUD funcional para cada entidade(tabela) do banco funcional. Este gerador de código trabalha analizando até tabelas de relacionamento.

O produto gerado contém um DAO bem estruturado, templates do smarty, circuitos completos, fachadas de negócio e arquivos de configuração do iFlux/myFuses.

O que isto tem a vem com a velocidade do myFuses? Tudo, pois em um dos testes de uma aplicação com mais de 117 tabelas, foi descoberto que nem a performance  do myFuses não estava aceitavel, para aplicações com um grande número de circuitos, lembrem-se para cada tabela do banco, a aplicação gera um circuito, ou seja foram gerados mais de 117 circuitos. Ao rodar esta aplicação, cada requisição ficava demorava 20 segundos.

Qual o motivo desta demora? O myFuses 0.9.6, apesar de ser muito mais rápido que todas as versões anteriores, trabalha da seguinte forma, carrega o myfuses.xml, para cada circuito, ele carrega seus respectivos circuit.xml, para depois processar a requisição.

No caso da aplicação gerada, o arquivo de cache de meta dados ficou com quase  13Mb e quando subia para memória, esses metadados ultrapassavam 23 Mb. Ou seja para aplicações de com muitos circuitos( mais que 80 ) o myFuses estava muito lento, mas estável.

Pensei que fosse difícil resolver o problema, mas em duas semanas, só alterando alguns métodos da engine de lugar, conseguimos modificar o carregamento do circuito, agora ele é feito por demanda, ou seja, se uma tela utiliza 3 circuitos, o myFuses só carrega os 3 circuitos na memória, além de armazenar esses meta-dados em arquivos diferentes, um para cada circuito, em vez de um arquivão para todos.

O resultado dos testes desta estratégia na aplicação gerada foi 2s de execução, mantendo a estabilidade, para uma pesquisa que retorna mas de 120000 registros paginados. A performance está aceitavel para aplicações grandes. Mas e para aplicações pequenas? Um teste em uma aplicação de médio porte foi, de 1,6 segundos, ela passou a rodar em 0,9 segundos. Em uma aplicação pequena não será possível ver uma melhora significativa, acho que fique até mais lento, mas a idéia de rodar melhor em aplicações de médio/grande porte é bastante animadora.

Se dá pra ficar mais rápido? Acho que sim. Esta a versão 0.9.7 será a primeira vesão a utilizar esta estratégia, com a prática, será possível encontrar algumas possibilidades de melhora, já estou bem feliz com o resultado atingido, que bom que esse teste do gerador foi realizado, sem ele só seria possível realizar o teste no final do produto.

Dia 22 de outubro de 2008 22 de dezembro de 2008 estará disponível a vesão 0.9.7 para download, confiram.

Nota:

Os testes foram realizados em uma máquina rodando windows, e meio mundo de anti-vírus, aplicações de controle de software corporativo, em fim aquele bando de sistema que fica rodando por trás de uma máquina windows e ocupando o segundo processador de um dual core. Estes valores em uma máquina linux/unix em ambiente de produção seriam bem melhores. Depois farei um benchmark mais ciêntífico entre a versão 0.9.6 para a 0.9.7.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Parâmetros para plugins

September 15th, 2008

Agora é possível utilizar parâmetros nos plugins do myFuses. Este recurso é utilizado para adicionar uma nova possibilidade de configuração para os plugins desenvolvidos, descartando a utilização de outros tipos de arquivos e centralizando a configuração no arquivo myfuses.xml.

A adição de um parâmetro a um plugin é feito da seguinte maneira:

<plugin name=”Teste”>

<parameter name=”param1″ value=”value1″/>

</plugin>

Depois é só utilizar os métodos getParameter( name ) ou getParamters() para consumir os parâmetros definidos.

Este recurso estará disponível na versão 0.9.7 do myFuses, por enquanto é possível utilizar no trunk do svn.

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Voltando a ativa…

September 8th, 2008

Depois de muito tempo de parado, volto a ativa, trabalhar com projetos Open Source é barra, principalmente quando os resultados demoram a aparecer.

Este era o problema, esperar os resultados, em vez de continuar trabalhando. Problemas pessoais, profissionais e a falta de retorno me deixaram um pouco desanimado, ao ponto da minha média de comits no myFuses/iFlux, que estava na faixa de 120 commits/mês, cair para 3, em julho e agosto.

O foco deste post não é o a perda do ânimo, da vontade de trabalhar nos projetos, mas sim a perda do sonho, do delírio de transformar esses projetos em ferramentas largamente utilizadas pela comunidade de desenvolvedores. Na verdade, quando estou programando no myFuses ou no iFlux, estou sonhando e não escrevendo código, me divertindo e não trabalhando.

Voltar a ativa é tentar sonhar de novo, se divertir e não trabalhar. Escrevo este post para que daqui a uns meses eu volte a ler e depois refletir, mas se ajudar alguém, que bom!

Bons sonhos…

Compartilhe/Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google