terça-feira, 20 de março de 2007

OpenLaszlo: v4 release



Agora é oficial, hoje dia 20/03/2007 está sendo liberado a versão estável do OpenLaszlo 4.0 =], confiram as novidades dele...


Laszlo Explorer - [DHTML] | [SWF]


- [link] para área de download do OpenLaszlo
- documentação OpenLaszlo 4 : [link]
- como realizar a integração com o Web Browser : [link]
- desenvolvimento de programas ( interface de aplicações ) : [link]
- utilizando o Debugger : [link]
- referências para o desenvolvedor : [link]
- biblioteca para trabalhar com Audio e Vídeo : [link]
- componentes básicos que podem ser utilizados como o nome já sugere, base para novos componentes que herdem esses para facilitar e agilizar a criação de seus componentes personalizados : [link]
- abordando um tratamento por estados : [link]
- gerenciadores de layout, para te auxiliar a exibir e gerênciar o layout da tua aplicação, ou mesmo, layout visual de algum componente : [link]
- suporte para gráficos, agora sim nessa versão já olhei rapidamente e me parece que colocaram para funcionar de vez =] : [link]
- componentes em fase de incubação, mas vale a pena conferir : [link]

informações sobre o OL 4
- OpenLaszlo Project Blog : [link]
- no OpenLaszlo.org : [link]

segunda-feira, 19 de março de 2007

Adobe : Apollo : liberado


opa pessoal, hoje conversando com o Carlos Eduardo da e-Genial, me informou sobre a disponibilidade do Adobe Apollo para seu respectivo uso...

quem quizer saber mais sobre o assunto recomendo que deem uma olhada no post no blog do e-Genial [link]

ps.: tambem testei a aplicação e realmente o funcionamento e proposta é muito interessante, para mim eu considero uma evolução a mais digamos que da topologia cliente-servidor, fomos ao ambiente web e agora estamos frente a uma possibilidade ter ter um ambiente web mais e mais, que nos faça lembrar das aplicações cliente-servidor...

sábado, 17 de março de 2007

OpenLaszlo : padrão de organização

bom algo que é muito util em projetos é utilizar um padrão de organização e eu não diferente dessa linha de raciocíneo tenho meu padrão de organização de projeto, onde para cada classe tenho um arquivo .lzx com a seguinte organização interna de conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<!--
======================================================================
    @date:  ${date} ${time}
    @author: ${user}
    @email: ${user_mail}
    
    @class: ${class_name}

    @description: ${class_description}
    
======================================================================
--> 
 
 

<library>

    <!-- @BEGIN: inclusão de outras bibliotecas -->
    <include href=""/> <!-- include list -->
    <!-- @END: inclusão de outras bibliotecas -->

    <!-- @BEGIN: definição da classe -->
    <class
        name="${class_name}"
        extends="${super_class}">

        <!-- @BEGIN: definição dos atributos da classe -->
        <!-- @END: definição dos atributos da classe -->
        
        <!-- @BEGIN: definição dos datasets da classe -->
        <!-- @END: definição dos datasets da classe -->
        
        <!-- @BEGIN: definição visual -->
        <!-- @END: definição visual -->
        
        <!-- @BEGIN: definição dos métodos da classe -->
        <!-- @END: definição dos métodos da classe -->

        
    </class>    
    <!-- @BEGIN: definição da classe -->
    
</library>


outras convenções que utilizo para nomenclatura de arquivos .lzx:
- classe: ${class_name}.class.lzx
- resources de uma classe: ${class_name}.resource.lzx
- teste: ${class_name}.test.lzx
- biblioteca: library.lzx

arquivo de execução: nomalmente caso seja apenas um único da aplicação utilizo o nome de: main.lzx sendo o conteúdo deste possuindo a tag canvas

para um entendimento mais rápido e facil, considere a tag canvas correspondente ao método de execução de aplicação do java: public static void main, por exemplo.

OpenLaszlo : gerenciamento de views

um exemplo de gerenciamento de views, pode ser util...



código fonte: [link]

OpenLaszlo : criando componentes

uma das características que mais me agrada no OpenLaszlo é a capacidade de desenvolvimento visual, onde a limitação encontra-se apenas na imaginação do desenvolvedor...

como o OpenLaszlo possibilita o desenvolvimento de novas 'classes', utilizando a tag class, sendo que esta pode herdar de qualquer outra tag existente dos componentes OpenLaszlo, ou dos proprios componentes( classes ), que o desenvolvedor ou a empresa, enfim, já tenha desenvolvido, aumenta muito o poder de desenvolvimento...

tudo bem que os componentes iniciais do OpenLaszlo não sejam lá aquelas coisas com um estilo visual apelativo, ou do genero, eu os considero apenas como um exemplo... sendo que todos esse que tem ali herdam de alguma outra classe base...

o que indico mesmo é investir um tempo inicial e criar seus próprios componentes, com um estilo gráfico próprio, bom no caso de que você não seja um bom designer como eu, existem bons designers por ae que podem realizar essa tarefa de desenvolver um estilo gráfico para você depois basta transladar esse estilo gráfico para o OpenLaszlo.

e agora vem a pergunta... "e como faço isso?"

antes de começar a fazer, criar seus próprios componentes é necessário que primeiro você compreenda como que o OpenLaszlo trabalha com recursos gráficos, para isso recomendo a leitura do capítulo 17 da documentação OpenLaszlo, para os apressados olhem diretamente o exemplo de número: 17.5. Using multi-frame resources

OBS.: tenho costume de utilizar as imagens em PNG devido a sua qualidade gráfica

Game: Flow


a muito tempo que não vejo um jogo que é legal de jogar, como anunciado e comentado a respeito esse jogo não segue o genero dos atuais jogos com uma parte de gráficos apelativo, tiros, muita ação, nesse jogo você é um organismo aquático que vai evoluindo e passeando pelo mundo aquático, muito interessante a propósta...

e agora foi lançado uma versão do mesmo jogo para PS3 que ficou bem legal a parte gráfica, mas segue o genero do original, embora acredito que o do PS3 a possibilidade de evolução seja muito mais ampla que a versão original... ( até eu queria comprar o PS3 para jogar esse joguinho =D )

[site do jogo] Flow
vídeo do jogo para PS3


li sobre esse jogo em uma notícia do portal Terra : [link]

sexta-feira, 16 de março de 2007

OpenLaszlo: eventos de teclado e combo de teclas

um exemplinho de tratamento de evento de teclado e também como trabalhar com combo de teclas do genero: "Ctrl + c", por exemplo...

OBS.: a tecla 'Alt' não funciona na aplicação, ainda não descobri o motivo dessa limitação, em outras palavras, se tentar usar um combo de teclas onde tenha o alt no meio, muito provavel que não tenha nenhum efeito...

segue o exemplo de código:
<canvas debug="true">

<view
    name="v"
    x="20" y="20"
    width="100" height="100"
    bgcolor="0x7F7F7F" focusable="true">
    
    <handler name="onkeyup" reference="LzKeys" args="kc">
        // trata o evento apenas se o mouse estiver
        // na área da view
        if( this.mouseIn() ) {
            Debug.write("got onkeyup: ", kc);
        } else {
            Debug.write( "Fora" );
        }
    </handler>

    <!-- verifica se o mouse está sobre a view -->
    <method name="mouseIn"><![CDATA[
        var mouse_x = this.getMouse( "x" );
        var mouse_y = this.getMouse( "y" );
        if( mouse_x > this.width ) {
            return false;
        } else if( mouse_x < 0 ) {
            return false;            
        } else if( mouse_y > this.height ) {
            return false;            
        } else if( mouse_y < 0 ) {
            return false;            
        }
        return true;
    ]]></method>
    
    <method event="oninit">
        Debug.write("init called.");
        this._del = new LzDelegate(this, "tecla");
        LzKeys.callOnKeyCombo(_del, ["c"]);  // this works
        LzKeys.callOnKeyCombo(_del, ["shift", "b"]);  // funciona
        LzKeys.callOnKeyCombo(_del, ["control", "g"]); // funciona
        LzKeys.callOnKeyCombo(_del, ["control", "a"]); // funciona
        LzKeys.callOnKeyCombo(_del, ["alt", "s"]); // não funciona
    </method>
    
    <method name="tecla">
        Debug.write("myCallback called.");
    </method>
</view>

<button y="150">something else to focus on</button>
<button y="180">something else to focus on</button>

</canvas>

quinta-feira, 15 de março de 2007

OpenLaszlo: comunidade do Japão

alguns dos exemplos mais interessantes que vi de uso e algums componentes para OpenLaszlo encontrei na comunidade de OpenLaszlo do Japão, como é em japones acredito que isso dificulte um pouco para o pessoal encontrar material por lá, mas pelo que observei a comunidade é bem ativa =]

bom vamos lá ao que nos interessa... eles possuem algum exemplos muito interessantes de OpenLaszlo, os quais podem ser encontrados [aqui]

desses exemplos, os que me chamaram a atenção:

- Google Suggest [link][exemplo]
- Comunicação com o browser, nesse caso digo que seria mais correto dizer entre .swf do OpenLaszlo e o HTML da página onde se encontra esse .swf [link][exemplo]
- YahooMaps [link][exemplo]

quarta-feira, 14 de março de 2007

OpenLaszlo : agora oficialmente : Demo : YouTube

opa legal agora a aplicação desenvolvida por Don Hopkins | Drupal é oficialmente considerada um demo de aplicação OpenLaszlo da versão 4 =]

OpenLaszlo Demo : YouTube


fontes .lzx da aplicação: [link]

outra novidade é uma biblioteca de vídeo: [link]

Design Patterns : Crítica

bom agora uma crítica ao tema, a alguns tempos temos visto Design Patterns, isso é algo excelente porém até que ponto? em termos de padronização de projeto muito bom, mas as vezes alguns design patterns acaba aumentando a complexidade e dificultando o desenvolvimento ao invés de auxiliar e agilizar o desenvolvimento...

um exemplo que tenho visto é relacionado aos padrões de projeto focados para o Hiberante, quanto a organização excelente, mas tenho notado uma quantidade de códigos similares em n-classes do projeto, onde muitas vezes se implementa e especializa uma classe para nessa nova apenas setar 1 método com um valor diferente porém a estrutura da classe é exatamente a mesma... isso poderia e pode ser evitado, realizar uma boa analise é possível construir uma classe realmente generica o suficiente que evite que essa "repetição" de código aconteça...

em termos de desenvolvimento isso tem sido um dos problemas do desenvolvimento java, príncipalmente na área de aplicações web, onde temos visto soluções como o Ruby on Rail sendo aclamado como a solução indicada, devido a sua produtividade, onde o desenvolvimento é rápido e focalizando ao que realmente interessa, implementar o modelo de negócio da aplicação...

Flex vs OpenLaszlo: quesito ferramenta

uma avaliação de ambas soluções quanto a ferramenta de desenvolvimento o Flex ganha disparado na frente do OpenLaszlo, tudo bem, vão dizer que o Flex Builder é pago, sim realmente é pago, porem existe e é de alto nível de produtividade, enquanto o OpenLaszlo ainda não temos uma ferramenta de desenvolvimento de mesmo nível de produtividade de desenvolvimento...

o que temos hoje para o OpenLaszlo
Hoje temos o Eclipse e os respectivos plugins:
- LaszloIDE 0.2.0 para jsdk 1.5
- Spket IDE - versão que utilizei [1.2.0]
OBS.: ambos utilizo com o Eclipse 3.2
o quais combinados possibilitam uma produtividade rasoável, possibilitando o suporte de auto complete para desenvolvimento em código e exploração dos atributos de tags e de funções JS...

fora outras formas de desenvolvimento que utilizam um DTD para validar o XML do .lzx, mas ainda sim não se compara a produtividade do Flex Builder... tambem desconheço alguma ferramenta paga de mesmo genero focada para o OpenLaszlo...

mas há boas perspectivas para o OpenLaszlo esse ano
segundo alguns comentários do pessoal que está trabalhando na finalização do OL 4, assim que for liberado oficialmente o Laszlo IDE será atualizado =], o qual atualmente encontra-se arquivado no Eclipse...

OpenLaszlo V4 contagem regressiva


passando pelo site da Laszlo Systems agora ( 02:55 am | 14/03/2007 ), algo que muito me chamou a anteção na página principal... FALTAM POUCOS DIAS =D

Data prevista: 20 de Março
veja o [link] para mais detalhes

alem dessa boa notícia, vi dois showcase interessantes de uso do OpenLaszlo:
- IBM
- SureWest

Adobe Apollo : isso vai causar um agito


Adobe Apollo


bom acredito que algumas pessoas já ouviram falar do tal Apollo, é uma proposta e solução que realmente me chamou muito a atenção e realmente é uma proposta e tanto que acredito que vai gerar mais um salto nas qualidade dos softwares de que q príncipio eram Web, que depois evoluiram e tornaram-se Ricos e agora... do browser para o seu desktop de novo =]

referências:
- Adobe Apollo - A revolução, por Leonardo França
- Leonardo França Blog
- Ryan Stewart Blog
- Apresentação de um caso de uso voltado para o eBay
- Luis Polance : apresentação sobre Web Apps RIA e Apollo

terça-feira, 13 de março de 2007

RIAForge


RIAForge

uma site voltado a projetos de aplicações web RIA, porem "puxa a sardinha" para o lado das aplicações desenvolvidas com as soluções da Adobe...

Flex: v2.0.1

opa interessante nova versão do Flex...( sim o Flex é bom sim ) essa nova versão possui algumas otimizações e novidades legais =]

para realizar um tour rápido pelo componentes e brincar um pouquinho com as possibilidades do Flex v2.0.1 acesse esse [link: Style Explorer]


pelo que entendi a atualização do Flex v2.0.1 para quem já possui o Flex v2.0 é gratuíta, veja o [link] para maiores informações.

OpenLaszlo: mais 2 aplicações disponíveis na internet

tudo bem que esse meu post não é sobre algo tão recente assim e que também já foi publicado no webblog do OpenLaszlo, mas para quem ainda não viu aqui temos exemplos claros do poder que o OpenLaszlo oferece para quem tem imaginação fertil por exemplo...

Bret Victor’s website
click-shirt

muito interessante, recomendo que deem uma olhada =]

ps.: uma das características que mais me encanta no OpenLaszlo é a possibilidade de literalmente viajar e criar qualquer tipo de interface, componetes, em outras palavras explorar ao máximo a criatividade para desenvolver novos níveis de interfaces ricas e interativas para aplicações web.

Java : Framework MVC : Mentawai


algumas pessoas andaram me perguntando sobre o que vem a ser esse tal Mentawai, é bom?

minhas considerações sobre ele:
- agradável de programar
- filosofia "No XML": chega de ficar usando um monte de xml's para configurar framework
- como consequência do item anterior ganho na produtividade
- quanto a performance e execução não deixa nada a desejar para os outros frameworks existentes no mercado atualmente, como: Struts, Webwork, MyFaces, Spring; digo até que é muito mais facil de usar...

Atualmente: na versão 1.8 com um conjunto muito bom para apoio e desenvolvimento, outro fato referente a ele que me chamou a atenção foi a facilidade para desenvolver um suporte para otimizar ainda mais a produtividade com esse framework.

Mas quem usa ele ou já testou?
quem já usou/usa e quais foram suas respectivas considerações sobre o Mentawai

um caso de uso: Tribunal de Contas do Estado do Ceará
informações e notícias sobre esse assunto:
- forum Mentawai
- Slackware-Brasil
- Notícias Linux

alguns links que falam do Mentawai: [JavaFree:wiki][TheServerSide][JavaWorld]

RIA: Treina Tom : e - Genial


Treina Tom


um caso de aplicação muito, mas muito interessante que ando acompanhando, desenvolvido pelo meu amigo Carlos Eduardo da e-Genial utilizando Flex, Rails, FMS e WebOrb.

lembro a uns dias atras quando me pediu para auxiliar no teste da aplicação e realmente é uma proposta muito boa e a aplicação também, acredito que para empresas que possuem mais de uma filial, ou não, qualquer genero de empresas, para treinamentos e video conferências é um aplicativo que recomendo...

para maiores informações acessem o site do Treina Tom e deem uma conferida no Screencast, acompanhem também outras informações no blog da e-Genial

mais informações em um [PDF]

Projeto Blank: OpenLaszlo 3.3.3 + Mentawai 1.8 + PortalJavaSuport 1.1


atualização do PortalJavaSupport nesse Projeto Blank
download: [link]

outras informações ver: [versão anterior][PortalJavaSupport 1.1]

domingo, 11 de março de 2007

PortalJavaSupport 1.1


Considerações: lembrando que a versão anterior usava uma versão costumizada do Mentawai 1.8, relacionado aos templates e algumas definições de inner actions... conversando com o pessoal que mantem o Mentawai foram enviadas algumas sugestões que eram da versão costumizada, atualmente o suporte de template costumizado foi inserido diretamente no PortalJavaSupport enquanto está em fase de avaliação pela equipe do Mentawai, com isso possibilitando a total independencia de ambos os lados, saindo uma nova versão do Mentawai o PortalJavaSupport será compatível =]

download do projeto [link] ~5.4MB
download de exemplo de uso: [link] ~2.2MB
documentação do projeto [link]
versão 1.1 - 11/03/2007

Objetivo do PortalJavaSupport:
desenvolvimento rápido de aplicações Web em java, no qual possui suportes para:

- Mentawai 1.8
desenvolvimento de um conjunto de anotações para possibilitar a configuração do mesmo através dessas anotações...

- Hibernate 3.2 ( para uso de anotações )
essa parte o suporte localiza as classes anotadas com as anotações para hibernate e auto configura o suporte necessário do Hibernate para habilitar um uso mais rápido possível, esse suporte também fornece um suporte genérico para casos de CRUD

- XStream 1.1.3
uma anotação para identificar a classe que será criado um alias no XStream e qual será o nome desse mesmo alias

- Jasperreports 1.2.8
consequence do Mentawai que a sua definição de saída é um relatório Jasper

Sobre os templates:
bom como comentei no inicio os templates por hora estão com uma versão própria costumizada no projeto... para utilizar a tag lig do template use na página .jsp:

<%@taglib uri="/pjstemplate" prefix="template"%>

PS.: verifique o exemplo disponível para verificar o uso...

OBS.: essa versão também possibilita um suporte inicial para trabalhar com modulos inseridos em runtime na aplicação web, onde um novo módulo é um arquivo .jar contendo as classes Action e de processamento da camáda de négocio, sendo este jar carregado para memória pelo suporte de modulos e posteriormente podendo ser acessado e atualizando a configuração da aplicação em Runtime, sem a necessidade de reiniciar o contexto da aplicação web para que as alterações sejam efetivadas

qualquer outra informação, sugestão, dúvida, critica é só falar =]