Linguagem M

micro Não, nem eu e nem ninguém sabemos muito a respeito dessa nova linguagem anunciada há poucos dias pela Microsoft. Segundo o que dizem, será uma linguagem de descrição de dados com suporte a OO, parecida com XAML. Terá integração com o Visual Studio (afinal é da M$), mas poderá ser compilada no Linux e Mac também (quero só ver!).

Bom, agora é aguardar pra ver se pega… :P

Mais informações em:
http://thecoffeedesk.com/news/index.php/archives/74

I18N com JSTL

Bom, se você, assim como eu, está dando manutenção em alguns sistemas legados da sua empresa que infelizmente não utilizam frameworks que já oferecem suporte à internacionalização, chegou a hora de parar de ficar olhando de cara feia para as mensagens escritas diretamente nos JSPs e colocar I18N utilizando JSTL!! :D

Ainda estou pesquisando a fim de descobrir se a forma que irei apresentar é a ideal e a de melhor desempenho, mas.. é aquela velha história: funcionar, funciona! :)

Passo 1: Crie um arquivo de propriedades

Crie um arquivo de extensão properties (ou mais de um, dependendo de quantas línguas você irá internacionalizar seu projeto) e coloque ali o conjunto de chaves necessárias para a I18N. Um arquivo de propriedades é composto por chaves e valores separador por igual (”=”).

Um exemplo de conteúdo deste tipo de arquivo seria:

# ---------------------------------
# Propriedades do SISTEMA X
# ---------------------------------

# --~--~---------~--~
# ARQUIVO: login.jsp
# --~--~---------~--~
login.label.login=Login:
login.label.senha=Senha:
login.botao.cadastro=Cadastro de Usuário
login.botao.login=Login

# --~--~---------~--~
# ARQUIVO: relatorios.jsp
# --~--~---------~--~
relatorios.title=Relatórios

Passo 2: Crie uma classe Java para pegar o valor das propriedades

Um exemplo de implementação:

import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 * MyProperties class.
 * 
 * This class was created in order to get strings of the properties file.  
 * 
 * @author thania
 */
public class MyProperties {

    /**
     * A ResourceBundle instance to refer the MyProperties file.
     */ 
    private static ResourceBundle resourceBundle = ResourceBundle.
        getBundle("pacote.MyProperties");

    /**
     * Gets the string of the ResourceBundle instance.
     * 
     * @param key The key for searching the string.
     * @return The value that was searched in the properties file.
     * 
     */ 
    public static String getString(String key) 
    {           
        String value = null;
        try  
        {  
            value = resourceBundle.getString(key); 
        } 
        catch(MissingResourceException e) 
        {  
            e.printStackTrace();
            System.err.println(new StringBuilder("ERROR: Properties :: getString -> ").
                append(key).append("\n").append(e));  
        }
        if (value == null) 
        {
            System.err.println(new StringBuilder("ERROR: Properties :: getString -> ").
                append(key));  
        }
        return value;
    }
}

Passo 3: Configure o web.xml

É preciso informar no web.xml qual será o arquivo que contém as mensagens do seu sistema. Para isto, basta adicionar a seguinte configuração no arquivo:

<context-param>
    <description>Arquivo de propriedades do Sistema X</description>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>pacote.MyProperties</param-value>
</context-param>

Passo 4: Use I18N no seu JSP!

Para utilizar as mensagens nas suas páginas JSP, importe a taglib fmt do JSTL:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 

Setar a classe que cria uma instância de ResourceBundle para buscar a valor no arquivo de propriedades:

<fmt:setBundle var="messages" basename="pacote.MyProperties"/>    

E, finalmente, use no texto do formulário:

<fmt:message key="login.label.senha" bundle="${messages}"/>

Isso retornará: “Senha:”

Enjoy! ;)

ps.: Se alguém tiver uma maneira melhor de fazer isso, por favor, mande-me um comentário. Nesse caso, não vale usar framework. Estou com um sistema legado aqui sem direito a refactoring e replanejamento da arquitetura, por enquanto. :~(

Minhas considerações sobre o Mês de Java Floripa

Ontem de manhã fui no evento “Mês de Java Floripa”, organizado pela galera do GUJavaSC.

A primeira palestra, “Java na Ponta dos Dedos: A revolução Invisível”, foi ministrada por Roger Brinkley. Quando vi a programação do evento e li o nome da palestra, não tinha uma idéia exata sobre o que seria, pois o nome não era muito sugestivo, mas resolvi arriscar. Fiquei um pouco surpresa na hora, pois tinha a impressão de que era um outro rapaz que apresentaria. Mas, tudo bem, no final das contas demos muita sorte pois o Roger é um cara muito experiente na área de mobile e embedded, e ainda por cima trabalha na Sun! :D

Bom, a palestra do Roger foi ótima. Na minha opinião, o inglês dele não estava difícil de entender. Ele apresentou diversos dispositivos mobile e embedded e deu algumas demostrações ao vivo. Em uma das demostrações, eu acabei participando, pois pelo visto, ninguém além de mim no auditório sabia tocar piano. Quando eu levantei a mão, dizendo que sabia, ele logo pediu pra ir lá na frente. “Arght, por que eu fui levantar a mão?!” - pensei. Bom, basicamente ele tinha uma caneta “mágica” que me possibilitava tocar piano com ela. Foi preciso seguir algumas instruções ditas em inglês pela caneta (sim! a caneta tinha instruções gravadas em voz!) a fim de desenhar o piano em um papel e pronto, ela ficava disponível para tocar. Como só as notas da oitava principal estavam desenhadas, toquei um trecho da nona sinfonia de Bethoven. Eu só não sei se o público entendeu que era isso que estava acontecendo (que fiz um desenho de um piano e que, de alguma maneira, a caneta emitia um tom quando se tocava em algum dos retângulos em vertical. Estes retângulos representavam as notas do piano e foi através deles que eu consegui tocar a música :)… Acabei ganhando uma meia com o desenho do Duke pela participação, mas como era uma meia masculina e de tamanho 42 (detalhe: meu pé é 35), doei ela para o Caio.

A segunda palestra, e última da manhã, foi ministrada pelo pessoal do Floggy, um framework para persitência de dados no JavaME. Achei bem interessante, apesar de atualmente eu não trabalhar com JavaME. Nem fiquei com sono nem nada… Eles souberam explicar direitinho como usar o framework, apresentando exemplos práticos.

No final da manhã, houveram sorteios de brindes. Ganhei uma bolinha laranja da Sun que eles estavam atirando na platéia (realmente atirando! hehehe..) e uma camiseta de Java, por eu ser uma das únicas mulheres ali no evento. Infelizmente, a tarde não pude ir assistir as outras palestras, pois tinha aula de inglês. Eu realmente queria ter assistido a palestra sobre Glassfish v3 (afinal eu trabalho com o Glassfish v2), uma pena eu não poder ter ido. Quem tiver ido, por favor, mande-me um comentário me dando uma idéia geral. Espero que os slides fiquem disponíveis.

De qualquer forma, Bruno Ghisi e demais organizadores, parabéns pelo evento!! :)

PyConBrasil 2008 ao vivo

Para quem não teve condições de ir pro Rio esse ano e gosta de Python, é bom saber:

O evento brasileiro da comunidade Python, a PyConBrasil, que está sendo realizada na Universidade Veiga de Almeida no Rio de Janeiro pode ser acompanhado online através de vídeo, twitter e irc.

Fonte: pyconbrasil.com.br

Minhas considerações sobre o 1º Seminário Catarinense de Qualidade e Teste de Software

Oi, pessoal!!

Hoje passei o dia todo em um evento aqui no SENAI de Florianópolis. Foi o 1º Seminário Catarinense de Qualidade e Teste de Software. Sim, estava muito bom! Valeu a pena ter perdido horas de trabalho para ir lá assistir as palestras. Mesmo não sendo a minha área direta, valeu a pena receber dicas de pessoal especializado dessa área. :^)

Os palestrantes vinham de todos os lugares.. Um gaúcho, um carioca, outros paulistas… Incrivel a diversidade. Todos bastante experientes e com temas bem diferenciados. A platéia em geral era composta por testers ou analistas de qualidade. Mas tinham também alguns desenvolvedores perdidos, como eu.

Começou com o Lucas dos Santos, abordando testes de unidade. Depois de apresentar os conceitos, ele explicou sobre a metodologia TDD (Test-driven development) de uma maneira bem abrangente. A palestra dele foi realmente muito boa, bem objetiva e prática. Mais no final, ele apresentou alguns exemplos de testes em Java para a platéia.

Tivemos também a palestra do Elias Nogueira. Nossa, esse rapaz soube ser muito bacana. Ele apresentou de uma maneira muito divertida, o processo de automação de testes. Ele é engenheiro de testes da empresa TestAnywhere e nos explicou onde e como a profissão dele atua no mercado. Show de bola! Rimos bastante. Eu nem sabia que existia essa profissão. =)

O João, um velho amigo meu do Instituto Stela, também palestrante, abordou a importância do design na qualidade de software. Foi muito bom ouvir os comentários que ele fez em relação ao papel do designer em um projeto. Ele apontou as várias formas de como um projeto é guiado do ponto de vista de um usuário, de um desenvolvedor, de um gerente… Bom, nem preciso dizer que a palestra dele estava ótima em relação à disposição e apresentação dos slides. Tinham várias imagens interessantes, que chamaram a atenção. Esse sim é que é um design. :D

Outro palestrante bacana também foi um japonês de Londrina, o Fábio Sumiya. Ele foi muito gente boa e muito comediante. Deu vários brindes para o pessoal que respondia as perguntas que ele fazia (eu ganhei um chaveirinho da IBM nessa história!). O Fábio lidera uma fábrica de teste na empresa dele, a Audare. Ele apresentou vários conceitos de engenharia de software para nós e nos explicou como a empresa dele atua no mercado de teste de software.

empresas Bom, como disse antes, o seminário estava muito interessante como um todo, valeu muito a pena. Apesar de eu ter me atrapalhado para encontrar o local do evento (são 2 SENAIs em Floripa), o resto foi recompensador. A Tatiana e a Erika (Real Testing e Supreme Quality, respectivamente), organizadoras do evento, estão realmente de parabéns. Espero que ocorram cada vez mais eventos sobre testes e qualidade de software em Florianópolis, pois ainda é uma área que deixa muito a desejar por aqui e precisa ser mais explorada. Valeu, meninas!!!

:)

« Página AnteriorPróxima Página »