Programação

modelviewcontrollerdiagram

Estudando python EFL – parte 2

Continuando a série de post sobre a tecnologia EFL , a qual estou estudando e trabalhando.

Este post visa ser uma visão geral do que é e como funciona esta tecnologia e está respectivamente divido em duas seções: O que é ? e Como Funciona ?.

O que é ?

EFL é um conjunto de bibliotecas escrita em C para facilitar o desenvolvimento de um gerenciador de janelas baseado no X, o famoso Enlightenment, o qual possui muitos recursos eye candy sem precisar de gerenciadores de janela com suporte a aceleração através de OpenGL, ex: compiz. E sempre fez um ótimo trabalho sem esse tipo de recurso.

Segui alguns vídeos coletados no youtube do Enlightenment em ação.

E existem outros mais. É possível implementar funcionalidades muito parecidas com as do iphone, por exemplo:

E olha um teclado virtual feito com EFL baseado no teclado do iPhone, feito pelo Gustavo Barbiery, um dos geeks que trabalha com EFL aqui no Brasil e que por sinal próxima semana estará em Manaus para dar um treinamento de EFL na FPF¸após eu ter tido muitas conversas com o chefinho. :-)

E como o EFL faz muito com pouco processamento, foi portado para outras arquiteturas como ARM, onde roda em dispositivos como o Internet Tablet N810 da Nokia e existem algumas aplicações rodando com EFL, mas a aplicação de referência de uso do EFL no Maemo é o Canola, que é um player para o maemo. Alguns vídeos do canola em ação:

E roda também em celulares, e já está sendo feito uma plataforma completa para dispositivos móveis, o Illumine, e um dos geeks é um dos criadores do EFL, o Rasterman (Carsten Haitzler) e olhem só sua gang que já roda illumine:

Rasterman Gangs

Rasterman Gang's

E tudo isso e muito mais foi desenvolvido primariamente com EFL, Ficou afim de entender melhor e começar a desenvolver ? Bom…. posso guiá-lo pelo caminho que percorri no estudo. :-)

Como funciona ?

Já que na primeira parte instalamos as técnologias básicas(ecore, evas, edje), vamos dá uma olhada em seu funcionamento.

Bem, vamos começar pelo começo. :-)

Arquitetura completa do EFL.

Concentre-se na parte azul da arquitetura, o core EFL.

Evas é o canvas onde tudo é renderizado e também gera sinais para aplicação.

Ecore é o responsável por capturar todos os eventos de uma janela originados do X11 e direcionar esses eventos para os devidos callbacks, possui também um mecanismo de MainLoop e uma série de ferramentas que auxiliam o trabalho com EFL e tarefas comuns de programação.

Alguns componentes do Ecore:

  • Ecore_Con – Comunicação em rede
  • Ecore_IPC – Comunicação entre processos
  • Ecore_Config – Sistema de configuração
  • e outros.

Edje é um meio de separar o código da aplicação do código da interface, basicamente é o responsável por te prover o mecanismo de manipulação de objetos da interface, ou seja, manipular o canvas(evas) de forma descritiva e orientada a estados. Apartir do momento que você faz essa separação ou dividi a aplicação em camadas, você imediatamente ganha vantagens, como por exemplo no Enlightenment e no canola a interface é feita com Edje e por isso possui um mecanismo de Temas(Themes) avançado e flexível de temas, ou seja, você pode mudar toda a interface sem mexer no código da aplicação.

Fazendo uma analogia a arquitetura de desenvolvimento web, seria mais ou menos assim, olhe a figura do MVC abaixo

modelviewcontrollerdiagramSabemos que no desenvolvimento web, o Model é responsável pela lógica de negócio da aplicação, o Controller é responsável por capturar as requisições que vem da View e processa-lás junto a Model e então devolver a resposta a View, a View é a camada de apresentação que no contexto web é o html/css/javascript.

Olhando essa arquitetura MVC podemos fazer a seguinte analogia, que o View é o Edje, o Controller é o Ecore. E o Evas é o browser onde tudo é renderizado. :-)

Consegui explicar alguma coisa ? Se não,  deixe um comentário.

Falei alguma besteira ? Se sim, deixe um comentário corrigindo e colocarei os devidos créditos.

Próximos posts (Aguardem):

Estudando python EFL – parte 3 (Ecore-Evas)

Estudando python EFL – parte 4 (Edje)

YUI + widget DataTable + Ordenação Customizada

Eu tenho utilizado exaustivamente a biblioteca de componentes YUI (Yahoo User Interface) para re-redesenhar a interface dos sistemas web que desenvolvo no meu atual local de trabalho.

Acredito que há muitas opniões sobre esta nova abordagem de web2.0, desenvolvedores nacionais renomados ja se expressaram sobre esta questão, a web2.0 é boa para diversas situações, mas não tudo. Um exemplo é o Yahoo Mail Beta, é legal e bonito mas é lento demais, sem falar que no firefox qualquer ação o processamento vai para 100% e isso é caos!. É tudo uma questão de bom senso, usar web2.0 para dá um turbinada na aplicação com validações e chamadas assíncronas, melhorar a usabilidade ou ainda aplicar um comportamento para um determinado componente na tela é uma boa opção. Mas usar web2.0 para emular sistemas que rodam no desktop é complicado, por que são muitos eventos, muitos widgets, muitas regras de css(posicionamento, imagens e etc) e acaba que a aplicação fica extremamente lenta e de difícil manutenção, com certeza não é o que queremos.

More >

PHP Power !

Mais uma vitória do PHP!

PHP Power !

Notícia não está quente mas está morna! rs…

É hora de criar seu espaço também nos mainframes da IBM!

A Equipe da IBM que desenvolve z/OS acabou de portar o PHP. A versão portada é a 5.1.2 e foi portada para utilização nos 2 ambientes suportados pelo PHP, o CLI (Command Line Interface) e para o ambiente web através de CGI e claro já vem incluída a extensão PDO_ODBC para comunicação com o DB2, mas isso é claro ! :)

Fonte: http://info.abril.com.br/blog/sandra/20070208_listar.shtml

Fonte: http://www.alphaworks.ibm.com/tech/php4zos

Ajax + IE(Ca)che

Ao escrever chamadas em Ajax, me deparei com um problema, ao fazer uma requisição de dados do servidor, o IE guarda os dados localmente e isso é extremamente irritante porque estou lidando com dados temporários, portanto na próxima requisição será preciso obter dados atualizados, mas pelo IE(ca) será utilizado os dados da última requisição.
Procurando no google achei um link que explica como enganar o IE para sempre trazer novamente as informações ao invés de usar os dados que estão em cache.

No script Ajax, você irá fazer uma requisição e será preciso passar uma url para então obter os dados, na variável que contém url você acrescentará

+’&dummy=’ + new Date().getTime()

, esta dica só serve para o tipo de requisição GET(eu não testei se funciona com POST):

Exemplo:

var url = ‘automovel.php?placa=JXX-0101′

Acrescente:

var url = ‘automovel.php?veiculo=JXX-0101′+’&dummy=’ + new Date().getTime()

Link: http://weblogs.asp.net/pleloup/archive/2006/06/08/451583.aspx