sexta-feira, 30 de março de 2007

OpenLaszlo : Usando dados não XML

uma notícia bem interessante que vi hoje sobre o OpenLaszlo, uma forma de trabalhar com dados para OpenLaszlo, sem utilizar XML para representar os dados...

veja o Artigo: "Breaking OpenLaszlo loose from XML data", escrito por Geert Bevin

Fonte da notícia: theserverside
postado também uma notícia no PortalJava, sobre o assunto

quarta-feira, 21 de março de 2007

OFFLINE : por tempo indeterminado

uma péssima notícia:

ontem a noite meu computador me deixou na mão...
como diria a lei de Murphy: "nada está ruim o suficiente, que não possa piorar mais..."
tudo bem... status atual:

> Sem trabalho > sem dinheiro > agora sem computador tambem

ainda estou procurando emprego em outra cidade, estou tentando sair de Foz do Iguaçu - PR, infelizmente o mercado de trabalho na área de TI não é tão amplo como nas grandes cidades, tentando a princípio ir para Curitiba-PR, ou para qualquer outro grande centro e me reestabilizar financeiramente, que por hora a minha situação financeira atual está bem complicada

OpenLaszlo : v4 : atenção

pessoal o OpenLaszlo 4 recem foi liberado, então recomendo que por hora sejam realizados testes... mas caso forem desenvolver alguma aplicação para o atual momento que o façam utilizando o OpenLaszlo 3.3.3...

OBS.: eu ainda não tive tempo suficiente para realizar os testes da nova versão, também não poderei realizar os mesmos durante um tempo...

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 =]

sábado, 10 de março de 2007

OpenLaszlo: um relógio legal

ainda navegando pelo forum do OpenLaszlo vendo os posts da galera mostando as aplicações que desenvolveram com OpenLaszlo vi uma outra implementação de relógio digital muito interessante...

[ver o relógio]


fonte forum OpenLaszlo: [link: Cool Clock]
download do fonte: [host:primario] | [host:alternativo]

OpenLaszlo: Leitor RSS + PHP

Navegando pelo forum do OpenLaszlo vi uma implementação de leitor de RSS feito com OpenLaszlo + PHP

um exemplo:


quem tiver interesse ver em: FeedFlash
tópico no forum OpenLaszlo: [link]

Novidade: Plugoo no blog =]

Opa pessoal uma novidade que estou adicionando ao blog, no lado direito =]
Plugoo, vi em outro site na internet e resolvi verificar do que se tratava isso e achei muito interessante, é um meio pelo qual as pessoas que estão acessando o site podem entrar em contato com o "Dono", responsável pelo site e conversar

para outras pessoas que possuem blog ou sites de informações é algo interessante que recomendo dar uma olhada...


Plugoo

OpenLaszlo: serviço de busca de empregos

opa hoje de manha, vou eu no site do OpenLaszlo e eis que vejo uma notícia de uma nova aplicação de busca de empregos que foi desenvolvido a interface utilizando o OpenLaszlo : Monster.com



por curiosidade acessei a aplicação para fazer um teste, como de costume mais uma excelente implementação usando OpenLaszlo =]

mais informações ver em: OpenLaszlo Project Blog
também existe um tópico no forum oficial do OpenLaszlo: [link]

RIA: sinopse de aplicação

bom acredito que muito das dúvidas das pessoas relacionados ao uso de tecnologias RIA como o OpenLaszlo, Flex, AJAX, dentre outras soluções, é que não conseguem ver como que se configura uma aplicação agora usando tais soluções...



Client-Side | Lado do Cliente

- nesse caso temos, a aplicação OpenLaszlo, Flex, AJAX, etc, executam na máquina do cliente, da qual diz respeito os eventos de mouse, teclado, animações manipulação de dados da interface...

- vale lembrar que usando essas tecnologias não é valido perguntar, tem como usar por exemplo EJB? o EJB, controle de sessões, geração de relatórios, essas tarefas são realizadas no...

Server-Side | Lado do servidor

- aqui sim é a parte onde é executado a lógica de negócio, integração com outros serviores, no caso o questionado EJB será manipulado aqui desse lado, esse lado do servidor pode ser um servidor Java, servidor para ASP, PHP, Ruby, .NET ou qualquer outro servidor web que exista no mercado

- e desde será feito o acesso a base de dados usando a tecnologia de sua preferência, no caso do Java normalmente utilizam junto aos projetos o framework de persistência ORM Hibernate...

Comunicação/integração entre os lados da aplicação

- o meio de campo assim digamos, a forma pela qual ambos os lados da aplicação conversa, normalmente nessas aplicações RIA temos o uso de XML para trabalhar com os dados entre ambos os lados, levando em consideração também que o OpenLaszlo, Flex e AJAX trabalham mais facilmente com dados estruturados em tag(XML)

- utilizando Java temos algumas opções para trabalhar com essa parte, DWR que já te fornece toda uma infra estrutura que realiza esse meio de campo de modo "simples" e/ou uso do XStream o qual é uma API de persistência/transporte a qual realiza a transformação do Objeto para XML e de XML para Objeto

sexta-feira, 9 de março de 2007

Flex: também possui muitos atrativos

muitas pessoas vendo meus posts sobre OpenLaszlo pode até pensar que tenho algo contra o Adobe Flex, muito pelo contratio eu também reconheço que o Flex é uma excelente solução, algumas das capacidades dele podemos ver no respestivo [Link: FlexStyleExplorer]

OpenLaszlo: problemas com acentuação

esse é um dos casos que muitos acabam tendo problemas quando estão trabalhando com o OpenLaszlo, enquanto estão fazendo testes tudo funciona tranquilamente, mas quando começa a usar mais, com uma base de dados e surgem os tais caracteres especiais como os acentuados, ae eis que surge o problema.... no OpenLaszlo mostra normalmente uns quadrados ou até uns ? no lugar do caractere...

mas como resolver?

simples na saída da fonte do XML é preciso tratar o encoding, o .swf executado pelo plugin Flash trabalha com textos usando como base o encoding UTF-8, então é só ajustar o encoding no servidor =]

exemplos:
- PHP
$XML = "<tag>á é í ó ú ç ã õ ... </tag>"; 
echo utf8_encode( $XML );


- Java
no java tem uma característa um pouco diferente, para resolver os problemas de encoding resolvi criando 2 métodos...

String text = "<tag>á é í ó ú ç ã õ ... </tag>";

* para tratar os caracteres para enviar ao OpenLaszlo:

  public static String toISO88591(String textthrows Exception{
    byte p[] = text.getBytes("UTF-8");
    return new String(p, 0, p.length, "ISO-8859-1");
  }


* para tratar os caracteres recebidos do OpenLaszlo:

  public static String toUTF8(String textthrows Exception{
    byte p[] = text.getBytes("ISO-8859-1");
    return new String(p, 0, p.length, "UTF-8");
  }

OpenLaszlo: finalmente um livro =]

sim, enfim eis que surge um livro sobre o OpenLaszlo e nada mais nada menos que da série ... In Action =]



Manning: Laszlo in Action



sobre os autores: um deles é fundador da Laszlo Systems, empresa que criou a primeira versão do hoje então OpenLaszlo( Max Carlson ), Norman Klein um consultor da Laszlo Systems com mais de 20 anos de experiência em engenharia de software e Glenn MacEwen relacionado a universidade de Queen's University do Canada.

ps.: isso sim eu considero uma ótima notícia =]

OBS.: Ainda em fase de formulação / escrita =(, previsão de finalização para Agosto de 2007

quinta-feira, 8 de março de 2007

OpenLaszlo: integração com FusionCharts

bom como sempre em aplicações soluções de gráficos são necessárias em algum momento para exibir dados de algo importante de modo que, facilite a compreenção dos mesmos...
em um post no Portal Java referente ao assunto de um usuário que não estava conseguindo
integrar o FusionCharts internamente em uma app Openlaszlo, fui verificar do que se tratava...

encontrei um tópico sobre o assunto no forum oficial do Openlaszlo: [ Embedding Fusion Charts], onde tinha um exemplo de como realizar tal integração, fiz um teste local com o OpenLaszlo 3.3.3 e verifiquei que funcionou...

ver um exemplo: [link]
download do exemplo: [link:forum] [link:alternativo]

ps.: nesse tópico do forum possui mais informações sobre o assunto, deem uma verificada =]

OpenLaszlo: outra mini aplicação voltada para o Portal Java

mais uma mini aplicação OpenLaszlo feita para o Portal Java, agora para o bloco das ultimas postagens no forum, atualização a cada 2 minutos, podendo ser configurado para o mínimo de 1 minuto, também possui a capacidade de configurar como irá abrir o link para o post, [self] ou [blank], padrão [self], tamanho da fonte padrão em 10px, mas pode ser alterado no intervalo de 9 a 12px, essa aplicação também possui uma novidade que é a tecla 'R' para atualizar os dados...

Obs.: use a tecla 'ESC' para acessar as configurações



download do fonte: [link]

OpenLaszlo: exemplo de organização de projeto

bom agora para exemplificar, já temos o exemplo da mini aplicação OpenLaszlo a qual mostra os dados do status do Portal Java.com e atualiza em certo intervalo de tempo, essa nova aplicação a interface é exatavamente a mesma, o que muda dela é a sua organização do projeto, a qual diferentemente da versão anterior que era tudo em um único .lzx, agora está separada em classes para possibilitar o reuso dos componentes gerados em outras aplicações...



como comentei, visualmente essa nova versão é exatamente igual a diferença está na forma que foi estruturada quanto ao código... compare ambas as versões para ver a estrutura...

download da versão anterior: [link]
download da versão estruturada em classes: [link]

com isso pode-se até traçar um paralelo das vantagens de uma programação mais organizada, quando se pensa em reuso, manutenção e até expansão de aplicação =]

quarta-feira, 7 de março de 2007

OpenLaszlo: usando o relógio do Openlaszlo dentro de outra aplicação

Muitas pessoas já viram o relógio do OpenLaszlo que é usando na página principal do Laszlo-Explorer onde vemos esses tipo de relógio sendo usado dentro de uma aplicação OpenLaszlo, mas como fazer para usar esse relógio?


Download do exemplo: [link]

Observação: usa a classe do relógio disponível no Laszlo-Explorer, porém com uma costumização para funcionar diretamente, não fiz nenhum teste usando mais de 1 relógio na mesma aplicação...

[Código] Exemplo de uso:
<canvas
    title="Exemplo de uso do relógio OpenLaszlo">
    
    <!-- incluindo a classe -->
    <include href="class/relogio"/>
    
    <simplelayout axis="y" spacing="20"/>
    
    <clock name="myclock" local="true" x="40" />
    <text multiline="true">
        Usando o relógio do Openlaszlo<br/>
        dentro de uma outra aplicação<br/>
        OpenLaszlo...
    </text>
</canvas>

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

OpenLaszlo: um exemplo completo de mini aplicação

bom base no exemplo de uso do LzTimer, alguns amigos sugeriram fazer uma mini aplicação com OpenLaszlo que também listasse o login dos usuários logados no Portal Java.com e também possibilitasse algum tipo de configuração, bom estão lá vai um exemplo de mini aplicação com OpenLaszlo =]

Observação: para acessar a parte de configuração precione a tecla ESC para exibi a tela de configuração, e ESC novamente para voltar a tela com as informações... também foi definido um tempo inicial de atualização de dados em 5 minuto, possibilitando uma configuração para o valor, sendo o mínimo de 1 minuto de tempo de espera. ( A fonte de dados desse app é um .php )

* tamanho da aplicação: 104 kB



Código fonte da mini aplicação: [link]

Modelo dos XML das fontes de dados:
* ds_status
<pjonline>
   <membros>?</membros>
   <visitantes>?</visitantes>
   <total>?</total>
</pjonline>


* ds_user
<list>
   <item number="1" user="usuário A" />
   <item number="2" user="usuário B" />
   <item number="3" user="usuário c" />
   <item number="4" user="usuário D" />
   ...
</list>

domingo, 4 de março de 2007

OpenLaszlo: exemplo de LzTimer

um exemplo simples de como criar uma aplicação do genero Timer, para a cada intervalo de tempo realizar algum tipo de processamento, no caso este exemplo mostra o status em tempo real das pessoas que estão acessando ao Portal Java.com



Código fonte da aplicação: [link]
<canvas
    title="Portal Java Who is Online"
    width="200" proxied="false">
    
    <attribute name="flag" value="true" type="boolean" />
    
    <!-- dataset da aplicação -->
    <dataset
        name="ds"
        src="http:whoisonline.php"
        querytype="post"
        request="false"
        proxied="false"/>
    <!-- trata o evento de recebimento de dados pelo dataset -->    
    <handler reference="ds" name="ondata"><![CDATA[
        // verifica o tratamento de tempo para executar a cada 1 segundo
         if( typeof this.del == "undefined" ) {
            this.del = new LzDelegate( this, "atualizaInfo" );
            LzTimer.addTimer( this.del, 1000 );
        } else {
            LzTimer.resetTimer( this.del, 1000 );
        }
    ]]></handler>    
    <!-- método que trata a inicialização da aplicação -->
    <method name="init"><![CDATA[
        this.atualizaInfo();
    ]]></method>
    <!-- método para atualizar -->
    <method name="atualizaInfo"><![CDATA[
        if( this.flag ) {
            // requisita os dados para o servidor
            this.ds.doRequest();
        }
    ]]></method>    
    <!-- @BEGIN: definição visual -->
    <simplelayout axis="y" spacing="5"/>
    <text><u><b> Pessoas on-line: </b></u></text>
    <view>
        <text>Membros: </text>
        <text x="65" datapath="ds:/pjonline/membros/text()"/>
    </view>
    <view>
        <text>Visitantes: </text>
        <text x="65" datapath="ds:/pjonline/visitantes/text()"/>
    </view>
    <view>
        <text>Total: </text>
        <text x="65" datapath="ds:/pjonline/total/text()"/>
    </view>
    
    <button x="20" name="btn" text="Parar">
        <handler name="onclick"><![CDATA[
            if( canvas.flag ) {
                canvas.btn.setAttribute( "text", "Atualizar" );
                canvas.flag = false;
            } else {
                canvas.btn.setAttribute( "text", "Parar" );
                canvas.flag = true;
                canvas.ds.doRequest();
            }
        ]]></handler>
    </button>
    <!-- @END: definição visual -->    
</canvas>


Formato do XML recuperado com as informações:
<pjonline><membros>4</membros><visitantes>185</visitantes><total>189</total></pjonline>

sexta-feira, 2 de março de 2007

Linux time line

bom a título de curiosidade uma imagem interessante relacionado as distros linux existentes até o ano de 2006

quinta-feira, 1 de março de 2007

OpenLaszlo: exemplo de campo com Mascara

algo útil e que normalmente iremos nos deparar é com a necessidade de um campo com mascara para entrada de data, hora, CEP, CPF, entre outros tipos de entradas formatadas...

neste exemplo é um bem simples de como implementar um campo de mascara para CPF
onde a mascara é: xxx.xxx.xxx-xx, porém este exemplo não trata a entrada de teclado a qual também poderia ser incluída de modo simples



[Fonte]


<canvas width="200">
<view width="115" height="20" bgcolor="gray">
        <inputtext
            name="field"
            bgcolor="white"
              x="1" y="1"
              width="$once{parent.width-2}"
              height="$once{parent.height-2}" maxlength="14">
              
              <method name="init"><![CDATA[
                  super.init();
              ]]></method>
              <method event="onkeydown" args="akeycode"><![CDATA[
                Debug.write( String.fromCharCode(akeycode) + " : " + akeycode + " >> " + this.getText() );
                
                // tecla backspace
                if( akeycode != 8 ) {
                    
                    switch( this.getText().length ) {
                        case 3:
                            this.addText( "." );
                            break;
                        case 7:
                            this.addText( "." );
                            break;
                        case 11:
                            this.addText( "-" );
                            break    
                    }
                var lastP = this.getText().length;
                this.setSelection( lastP, (lastP+1) );                  
                }           
                ]]></method>
              <!-- @END: métodos do inputtext -->
          </inputtext>
</view>
</canvas>