Ordenação de Strings com Acento

Dezembro 3, 2009

Ao tentar ordenar um ArrayList de objetos por um campo do tipo String, percebi que os textos acentuados não eram corretamente ordenados. A explicação para este fato é o seguinte: na linguagem Java, a ordenação de um texto varia de acordo com o Locale (idioma).

Como o default do Locale é o idioma inglês, onde quase nenhum caractere acentuado existe, as letras acentuadas não são equiparados às respectivas letras sem acento. Desta maneira, como caracteres acentuados têm códigos numéricos superiores aos sem acento, acabam indo parar no final da listagem ordenada.

Para demonstrar a solução deste problema, segue abaixo código fonte que ordena listagem de clientes pelo nome. A classe Cliente possui os atributos privados codigo e nome, além de seus respectivos métodos de acesso. Ela implementa a interface Comparable sobrescrevendo o metodo compareTo que realiza a ordenação comparando o atributo nome de duas instâncias da classe Cliente.

Leia o resto deste post »


Brain Computer Interfaces

Novembro 26, 2009

I did a research about Brain Computer Interfaces in my english course. This tecnology caught my attention because we always see themes like thought control and mind power in the movies.

But we can realy establish a trustful communication between electric signals from the brain and bits from a computer? I can’t assert, but after study this subject I’ve been asked to myself “It’s Science Fiction Becoming Reality?”.

Below follows my presentation:

Leia o resto deste post »


Padrões de Software – Composite

Agosto 4, 2009

O Composite é um padrão estrutural que compartilha objetos em estruturas de árvore para representar hierarquias parte-todo, permitindo que clientes tratem objetos individuais e composições de objetos uniformemente. Ele é utilizado para aplicações que desejam ignorar a diferença entre composição de objetos e objetos individuais.

Um exemplo de problema solucionado pelo Composite é o seguinte: um congresso inscreve participantes que podem ser um indivíduo ou uma instituição, e cada indivíduo tem um assento no congresso.

Segue abaixo o diagrama de classes e o código fonte que demonstram a implementação do padrão como solução.

Diagrama de Classes utilizando o padrão Composite

Diagrama de Classes utilizando o padrão Composite como solução

Leia o resto deste post »


Feature Driven Development (FDD)

Setembro 4, 2008

O Desenvolvimento Guiado Por Funcionalidades (FDD) é uma metodologia ágil para o processo de engenharia de software, elaborado com foco na entrega freqüente de “software funcionando” para os clientes e na utilização de boas práticas durante o ciclo de seu desenvolvimento.

Criado em 1997 num grande projeto de sistema de empréstimos em Java para o banco United Overseas Bank, em Singapura. União entre a experiência de análise e modelagem orientadas por objetos de Peter Coad, e o gerencimento de projetos de Jeff De Luca.

- Site Oficial e Conceito no WikiPedia:


- Heptagon – Consultoria e Treinamento em FDD.

- Entrevista Com Jeff DeLuca Sobre FDD (PodCast em Inglês)


Na Natureza Selvagem (Into The Wild)

Maio 7, 2008

Depois de terminar a faculdade com brilhantismo, Chris McCandless, jovem americano saudável e de família rica, doa todo o dinheiro que tem, abandona o carro e a maioria de seus pertences, adota outro nome e some na estrada, sem nunca mais dar notícias aos pais. Dois anos depois, aparece morto num lugar ermo e gelado no Alasca.