terça-feira, 13 de fevereiro de 2007

OpenLaszlo 4: Laszlo Explorer em HTML

Opa legal...
está disponível a versão DHTML do Laszlo Explorer

segue o link da versão:
- em DHTML [link]
- em SWF [link]

OpenLaszlo e Flex não são realmente comparáveis...

Este post foi baseado no post: OpenLaszloNaut - OpenLaszlo and Flex are not really comparable
de um grupo de usuário de OpenLaszlo da Alemanha

É impressionante ver a quantidade de pessoas comparando OpenLaszlo com o Flex.
Sim realmente o OpenLaszlo compila o .lzx para um bytecode do Flash o SWF, assim como o Flex faz também, ambas as tecnologias utilizam uma programação baseada em tags como em um formato de arquivo XML.

Pode-se observar similiridades nos conceitos tecnicos entre ambas as tecnologias... o conceito tecnico do Laszlo Presentation Server foi copiado pela Macromedia quando les construiram o Flex Presentations Server.

Muitas pessoas não sabem ou simplesmente figem não ver o fato: a versão 1.0 do Laszlo Presentation Server foi disponibilizada em Janeiro de 2003 ( aqui um link do Apple Developers Connection anunciando a liberação da versão 1.0 ), enquanto o Flex Presentation Server foi lançado em Março de 2004, ou seja, um ano depois( o anuncio do lançamento do Flex pode ser encontrado no internet.com ). A Macromedia não teve nem o cuidado de utilizar um nome diferente no seu produto, que também utilizaram o "presentation server".

Isto não é sobre Flash...
O OpenLaszlo utiliza o plugin do Flash, porém somente foi utilizado por que não foi encontrado outra tecnologia baseada em browser que possibilitasse criar a experiência de interface para usuário que os criados do OpenLaszlo procuravam por volta do ano de 2001. Mas nunca foi ideia de utilizar somente o Flash. O desenvolvimento da experiência de usuário marcado com uma experiência cinemática de interface para o usuário pelo Laszlo é possível independentemente do runtime que o desenvolvedor utilizar. Com a versão OpenLaszlo 4.0 o sonho da Laszlo Systems irá se tornar realidade agora. Um peso enorme foi retinado dos ombros dos desenvolvedores graças ao OpenLaszlo: nos não precisamos mais gastar um tempo enorme com programação de script e funcionalidades visuais para o browser, agora temos muito mais tempo para focar em
funcionalidades para os sistemas desenvolvidos e uma melhor qualidade e experiência de uso para atender as necessidades dos usuários. Com isso agora os desenvolvedores
poderão implementar o que os designers ou os arquitetos de interface proporem, não pensando em usar Flash ou Ajax, mas qualquer nova tecnologia baseada em browser que possa surgir no futuro.


A versão 4 do OpenLaszlo oferece um suporte para multiplos runtimes

Com isso o OpenLazlo versus Flex abre uma grande vantagem, pois agora você pode gerar a saída que desejar SWF ou DHTML+AJAX, porém o Flex foi projetado para gerar saída Flash 9 e assim como no post do blog no qual esse foi baseado, acredito que o Flex continuará apenas com suporte para saída SWF...

Observação de algo que penso: sim sim o Flex possui uma vantagem que para mim é única mas sem isso prefiro muito mais o OpenLaszlo, é o chamado Flex Builder, ferramenta RAD... em outras palavras quando surgir uma ferramenta RAD de mesmo nível que o Flex Builder; bom então deixo um conselho... esqueça o Flex e invista pesado no OpenLaszlo... ou caso queira comece desde agora.

Algumas considerações sobre o Flex [link]

sexta-feira, 9 de fevereiro de 2007

OpenLaszlo: videos YouTube

opa algo legal feito por Don Hopkins foi um exemplo de como pelo OpenLaszlo acessar e assistir os vídeos do YouTube, [link] do post sobre o assunto...

Exemplo de como assistir vídeos do YouTube pelo OpenLaszlo



respectivos códigos fontes desse exemplo:
- youtube.lzx
- youtubeplayer.lzx
- outros fontes para poder compilar

OpenLaszlo: editando .lzx

Como trabalhar para editar o fonte .lzx do OpenLaszlo?

bom não existe apenas o IDE4Laszlo, como muitos o conhecem e agora que o projeto foi arquivado é bom conhecer outras alternativas de edição do fonte...

na documentação do OpenLaszlo dispõem algumas dicas de como trabalhar...
outro plugin do Eclipse que pode ser utilizado é o XMLBuddy, onde na documentação é ensinado como configurar ele para trabalhar com os .lzx

veja o [link] da documentação sobre esse assunto

OpenLaszlo: Upload

Como algumas vezes já vi um pessoal questionando...
"Como fazer um Upload pelo Openlaszlo...?"

navegando pela internet encontrei um exemplo e código sobre essa funcionalidade, em um outro blog na internet de uma pessoa que também está usando o OpenLaszlo...

Sebastian Wagner Blog


como é informado no blog dele, é necessário no mínimo o Flash 8 para poder utilizar essa funcionalidade, onde no blog ele disponibiliza o exemplo em funcionamento da funcionalidade... porém o upload não irá ocorrer pois essa funcionalidade não está ativa no servidor, com isso gera o erro onHTTPError invoked: 404

ele também disponibiliza um zip com os fontes dessa funcionalidade para [download]

OpenLaszlo: OL4 projeto "Legals"

Essa é a próxima versão do OpenLaszlo, atualmente em Beta 1( digamos que atrasado pelo cronograma ) pelo qual atualmente já deveria estar liberado o Beta 2 da versão 4

digamos que um dos culpados pelo eventual atraso é o IE7, como o novo OL4 agora também disponibiliza a saída para DHTML + AJAX( ou seja, javascript ) e como visto e verificado pela maioria dos desenvolvedores de aplicações, nos deparamos com a desagradavel surpresa do IE7 quando ao seu suporte e execução do javascript, com isso até compatibilizar a saida para o IE7 também acabou acarretando um atraso para a versão final de produção da nova versão do OpenLaszlo...

bom com o OL4 ele passará a suportar uma nova filosofia:

um fonte, qualquer saída


Obs.: segundo anunciado pela OpenLaszlo sobre o OL4 está previsto para final Março desse ano(2007) a liberação da versão final do OL4, outras informações no FAQ do OL4

OpenLaszlo: plugin IDE4Laszlo arquivado

inicio desse ano muitas pessoas que foram iniciar o uso do OpenLaszlo ao irem verificar o IDE4Laszlo, plugin do Eclipse para auxiliar no desenvolvimento, se depararam com a notícia de que o projeto foi arquivado pelo Eclipse... mas o que aconteceu?

bom o projeto tem ciclos de desenvolvimento e desde o ano passado a equipe que mantinha o plugin o deixou de lado devido ao cronograma para o OpenLaszlo 4, o qual a equipe da Laszlo Systems está totalmente centrada para o desenvolvimento...

quem quizer saber mais sobre o assunto, acesse esse [link] para maiores informações

Game: Supreme Commander

a muito tempo atras tinha um jogo de estratégia de PC que eu gostava muito onde as batalhas eram muito legais, boa jogabilidade, boas unidades, um ótimo jogo...

essa semana procurando informações sobre o jogo: Total Annihilation até descobri que existe uma versão brasileira desse jogo atualmente que se encontra na 3ª versão chamado TotalaBR, então procurando videos no YouTube de game play do jogo
acabei vendo um tal de Supreme Commander, onde foi referido como a nova versão daquele estilo de game de estratégia...



uma versão Demo e a Beta estão na internet... a versão demo pode ser encontrada no site Oficial do game e a beta é possível encontra-la em .torrent [link]

Vídeo de abertura do game:

terça-feira, 6 de fevereiro de 2007

OpenLaszlo: um leitor de RSS 2.0 simples

um exemplo simples de como criar um leitor de RSS pelo OpenLaszlo:

<canvas>
   <dataset name="dset" request="true" src="http://rss.terra.com.br/0,,EI4795,00.xml"/>
   <simplelayout axis="y" spacing="5"/>
   <view datapath="dset:/rss/channel/item">
      <simplelayout axis="x" spacing="5"/>
      <text width="250" datapath="title/text()"/>
      <text datapath="description/text()"/>
      <text datapath="pubDate/text()"/>
   </view>
</canvas>

OpenLaszlo: CRUD

Outro recurso muito utilizado em aplicações são as operações CRUD:

C - Criar
R - Recuperar, listar
U - Atualizar
D - Apagar, deletar

como em uma aplicação em OpenLaszlo temos uma aplicação com 2 lados, o client-side que é onde está sendo executado a interface da aplicação, mais especificamente na máquina do usuário e o server-side que é onde está a lógica de negócio da aplicação, ou seja, esta parte da aplicação está em um servidor web na internet, ou na intranet de algum ambiente de rede...

para termos essas funcionalidades CRUD em uma aplicação RIA como o OpenLaszlo precisamos ter: os controles na interface, e os respectivos códigos de execução nos códigos da aplicação no lado do servidor, sendo que no lado do servidor podemos implementar essas utilidades usando acesso ao banco comunicando via SQLs ou utilizando algum framework como o Hiberante para facilitar o desenvolvimento...

no capítulo 35 item 7 da documentação oficial do OpenLaszlo temos um exemplo simples de como construir essa funcionalidade CRUD em uma aplicação web com interface OpenLaszlo, no qual é exemplificado através de um .jsp e de um .lzx que seria a interface em execução na máquina cliente: Updating, Deleting, and Inserting Data

OpenLaszlo: trabalhando com parâmetros

O OpenLaszlo possibilita uma boa flexibilidade na hora de determinar os parâmetros que deverão ser enviados para o servidor, porém para isso é necessário utilizar um dataset para poder enviar os dados para o servidor... neste dataset para onde será enviado os dados este pode ser um servidor de qualquer tecnologia web, java, como jsf, jsf, ou algum framework java para web, ou ainda um servidor .Net, PHP entre outros servidores, bastando definir o atributo src do dataset para o respectivo endereço URL para onde serão enviados os respectivos atributos...

digamos que no seu fonte OpenLaszlo para facilitar você crie um método para gerenciar o envio dos dados para o servidor, e dentro desse método você utilize a classe LzParam( aconselho o uso dessa classe ) termiamos no fonte .lzx algo como o respectivo código:

...
   <dataset name="ds" querytype="post" request="false" proxied="false" type="http"/>
...
   <method name="enviarDados">
   <![CDATA[
      // instancia um objeto 'LzParam' para envio dos dados por parametro...
      var param = new LzParam();

      // adiciona como parametro o objeto retirado do dataset temporário...
      param.addValue("param1", "valor1", true);
      param.addValue("param2", "valor2", true);
      // recuperando o dataset de envio de dados para o servidor
      var ds = canvas.datasets[ 'ds' ];
      // define a ação que irá executar
      ds.setSrc( "http://www.dominio.end/app/processa.jsp" );
      // seta os parametros a serem enviados para o servidor
      ds.setQueryString( param );
      // realiza a requisição
      ds.doRequest();
   ]]>
   </method>

com isso nesse formado é possível uma maior flexibilidade e controle dos parâmetros que serão enviados para um respectivo servidor...

sábado, 3 de fevereiro de 2007

OpenLaszlo: dataset interno em uma classe

Algo útil quando trabalhamos com definições de classes é utilizar os dataset's internos nas classes com isso ganhamos certos benefícios em termos de organização e manutenção de código...

mas como fazer para utilizar dataset's internos na classe, sendo que quando defino o dataset na classe ao tentar utilizar normalmente deparo com o erro me informando que não encontrou o dataset de respectivo nome informado... como no caso:

...
<class name="MyClass">
   <dataset name="dsIn">
      <tag>valor</tag>
   </dataset>
   <text datapath="dsIn:/tag/text()" />
</class>
...


nesse formato vai informar que não encontrou o dataset com o respectivo nome informado, então como fazer para utilizar o dataset interno da classe? bom nesse exemplo acima falta apenas um pequeno detalhe para então funcionar:

...
<class name="MyClass">
   <dataset name="dsIn">
      <tag>valor</tag>
   </dataset>
   <text datapath="local:classroot.dsIn:/tag/text()" />
</class>
...


agora sim esse é o formato correto para indicar que o dataset é interno a classe em questão =]

OpenLaszlo: Sessões HTTP

Em aplicações web normalmente é utilizado a sessão para manter algumas informações da aplicação ou mesmo do usuário logado, mas utilizando uma interface Openlaszlo... como fazer para acessar a sessão da aplicação?

antes que digam que não é possível e que não tem como, sim tem como trabalhar com sessão Http porém o modo de trabalhar é um pouco diferente inicialmente do modo geral que as pessoas estão acostumadas a fazer em aplicações web sem utilizar alguma tecnologia RIA como no caso de uma aplicação web com interface OpenLaszlo...

é preciso lembrar que o acesso a sessão é feito no server-side e não no client-side, lembrando que o client-side é a máquina do usuário que está acessando a aplicação e é ali que está em execução a interface da aplicação, então para acessar a sessão para setar ou recuperar algum valor deve ser feito no server-side, em outras palavras, parte da aplicação que está em execução num servidor web e ali sim realizar as manipulações necessárias de sessão...

no forum oficial do OpenLaszlo esse assunto também foi abordado no respectivo [link] onde também foi disponibilizado um exemplo para o respectivo caso [download do exemplo]

na documentação oficial do OpenLaszlo também possui um capítulo que aborda o respectivo assunto Chapter 38. Cookies and Sessions - [link]

OpenLaszlo: DataGrid + Drag and Drop

Um componente normalmente bem utilizado em aplicações são os Datagrid agora algo interessante, um datagrid onde você possa arrastar os componentes usando o estilo drag and drop, bom se um dia você quiz um componente assim...

alguem também um dia quiz e acabou fazendo e agora está disponível para uso =] mais um componente muito interessante da comunidade japonesa de OpenLaszlo veja um exemplo em funcionamento [link]

autor do componente submeteu um post sobre o assunto no forum oficial do OpenLaszlo no respectivo [link]

Integração entre Openlaszlo e o HTML via JS

Como algumas pessoas já questionaram algumas vezes, se é possível integrar uma aplicação
desenvolvida com OpenLaszlo com o restante da página HTML... e a resposta é sim é possível sim =]

na comunidade Laszlo do Japão foi publicado um exemplo de como fazer essa integração,
no respectivo [link:exemplo de funcionamento da integração]

verifique o código HTML da página do link anterior, observe que para isso é utilizado um javascript
para proporcionar a ponte de comunicação com o OpenLaszlo: flashobject.js [download]

o autor desse exemplo também submeteu um post sobre esse assunto para o forum oficial do OpenLaszlo [link]

sexta-feira, 2 de fevereiro de 2007

PortalJavaSupport 1.0

Primeira versão de um conjunto de suporte para desenvolvimento rápido de aplicações Web em java, no qual possui suportes para:

- Mentawai 1.8 ( versão costumizada )
- Hibernate 3.2 ( para uso de anotações )
- XStream 1.1.3
- Jasperreports 1.2.8

download do projeto [link]
documentação do projeto [link]
versão 1.0 - 02/02/2007

um caso de uso que demonstra o uso da maioria das anotações de configurações relacionado ao Mentawai [link]

* Sobre a costumização do Mentawai 1.8

foram alterados algumas classes para possibilitar algumas funcionalidades que ao meu entender deveriam estar funcionando mas quando testei essas não estavam...

como o caso de inner action exemplo 3 do respectivo [link]

as respectivas classes alteradas do mentawai podem ser encontradas no diretório \proj_files\proj_lib\mentawai\Classes_alteradas

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

quinta-feira, 1 de fevereiro de 2007

Uma notícia muito triste

Hoje ao verificar os post no Portal Java tive o desprazer de ler um tópico relatando uma notícia
de algo que ainda não havia visto e que consequêntemente me deixou muito triste ao ler...

Segundo site do Mentawai um amigo e um dos desenvolvedores do Mentawai MVC, morreu ao ser atingido por uma bala perdida, segundo o relato na página principal do Mentawai:

" É com profundo pesar que comunicamos o falecimento do nosso querido amigo Alex Fortuna. Apesar de não conhecê-lo pessoalmente, sempre tive admiração pela sua humildade. Sempre foi muito fácil conversar com ele pelo messenger. Uma pessoa tranquila, bem-humorada, de paz com a vida, sempre disposto a ajudar. Estava passando por um momento bom profissionalmente, onde estava iniciando um novo desafio numa empresa em Manaus. Infelizmente acabou sendo mais uma vítima da violência, atingido por uma bala-perdida enquanto conversava com alguns amigos da empresa após uma partida de futebol. Só podemos pedir que ele descanse em paz, que encontre em outros planos a paz que ele merece. Para nós, ficam as lembranças e a esperança de reecontrá-lo um dia, além do agredecimento pelo prazer de te-lo tido como um companheiro de projeto. Obrigado Alex!

26/01/1984 ~ 30/01/2007"


Deixo aqui a minha homenagem a essa pessoa que me ajudou muito em momentos de dúvidas
com algumas tecnologias e mesmo com boas conversas extroverdidas e divertidas que tivemos,
sou grato por ter tido a oportunidade de compartilhar bons momentos...

mesmo assim ainda não consigo acreditar nessa notícia :(

terça-feira, 30 de janeiro de 2007

Projeto Blank: OpenLaszlo 3.3.3 + Mentawai 1.8 + PortalJavaSuport 1.0


Está disponível um novo projeto blank para OpenLaszlo agora com algumas novidades no projeto.


itens que compoem o projeto:

- OpenLaszlo 3.3.3
- Mentawai 1.8 ( versão costumizada )
- Hibernate 3.2, utilizando mapeamentos com annotations
- XStream 1.1.3
- Jasperreports 1.2.8
- Log4j 1.2.12
- PortalJavaSupport 1.0

nesse novo projeto blank, foi adicionado o Projeto Portal JavaSupport que é um conjunto de suporte para agilizar o processo de desenvolvimento de aplicações Web utilizando como base o framework Mentawai MVC

osb.: apesar de utilizar o Mentawai, esse projeto utiliza uma versão costumizada do Mentawai original, porém que não afetam o funcionamento do Mentawai original quanto a seu suporte, apenas ampliam as funcionalidades e algumas revisões de performance para os códigos relacionados ao gerenciador de templates...

uma das novidades desse projeto blank é a possibilidade da configuração das actions e de templates utilizando anotações

e como configuração básica apenas a definição de uma linha de comando na classe application.config.ApplicationManager.java no método init()...

a configuração de template modelo basico foi definido na classe: application.config.TemplateManager.java

obs2.:
descompactar o projeto diretamente no /webapps do tomcat e após isso importar o projeto no Eclipse...

segunda-feira, 8 de janeiro de 2007

domingo, 7 de janeiro de 2007

[Revolta] bloqueio do Youtube

Hoje como de costume, ao abrir uma aba no meu Firefox vou eu tentar acessar o Youtube...
e eis que nada de acessar, passado um tempo, nova tentatica e nada... verificando meus e-mails recebo um de um colega no qual havia um link falando que o Youtube estava bloqueado o acesso por alguns provedores de serviço de internet no Brasil...

eis que também foi notícia na Info Online [ link ]

o pessoal do BR-Linux também debateu sobre este assunto, nos respectivos links:
Bloqueio do Youtube: vídeo da Cicarelli traz o retorno da censura no Brasil?
Furando o bloqueio: como acessar o YouTube censurado

segundo link do BR-Linux, digo que seria uma resposta da comunidade para essa decisão ao meu ver ridícula...