1 de mai. de 2010

Lighttpd e codificação padrão

Passei um tempo tentando configurar Lighttpd + eRuby no Ubuntu e dava problema com a codificação.

Tentei setar no lighttpd.conf um mimetype, mas não dava certo. Então, googlando, achei essa solução.

Você precisa especificar a codificação para o eRuby, de forma que ele já repasse para o Lighttpd codificado corretamente.


28 de abr. de 2010

Boas práticas de programação 3 - Java Collections Framework

Collections - Classe Java para Manipular Listas.

Se você estava a procura de uma forma rápida de ordenar listas, embaralhá-las, entre outras coisas, esta é a classe.
Ela pode manipular várias Interfaces do java, como:
  • Set
  • List
  • Map
  • SortedSet
  • entre outras.

A classe Collections oferece vários métodos que são de bastante utilidade. Confira:

  • sort(List) - ordena uma lista usando o algoritmo merge sort, o qual provê uma performance média comparado com o algoritmo quicksort, mas garantindo performance de [n*log n] (diferente do quicksort), e estabilidade (diferente do quicksort).

obs.: Você deve implementar a Inteface Comparable. Mas como eu faço isso? Simples. Veja ai!

Vamos supor que você tenha uma classe Produto com essa cara:

public class Produto {

private Integer id;
private String descricao;
private Double preco;
private Long codigoBarra;

// getters and setters ...
}


Para que o Collections.sort(List) ordene o Produto pela descricao, por exemplo, primeiro implemete a Interface Comparable.
E implemente o método compareTo(Object).

public class Produto implements Comparable {

// continua o mesmo acima ...
@Override
public int compareTo(String value) {
return this.descricao.compareTo(value);
}
}


Mas por que isso deve ser feito? Bom, primeiro pois o sort ordena seus elementos a partir do resultado que retorna o compareTo(Object). Esse método tem por função retornar números inteiros negativos(não necessariamente -1), positivos (não necessariamente 1) ou zero.
Dica: se você tiver uma List de String, por exemplo, não é necessário implementar o compareTo, pois esse trabalho já foi feito pelos desenvolvedores da Sun. Isso vale para as várias classes conhecidas como Integer, Long, Double, etc.

Bom, o próximo passo é chamar o método:

public class ProdutoDao {

// atributos e construtor ...

public List findAll() {

List list = new ArrayList();
// conexão com o banco e a query ...
while (rs.next()) {
// Pegue os dados do ResultSet e adicione na lista
list.add(produto);
}
Collections.sort(list);
return list;
}
}


  • reverse(List) - Reverte a ordem dos elementos na lista.

Vamos supor a seguinte situação: Você quer os elementos de uma lista ordenados de forma decrescente. Bem, agora
que você já aprendeu a ordenar de forma crescente, basta chamar o sort(List) e depois o reverse(List).

public List findAll() {

List list = new ArrayList();
// conexão com o banco e a query ...
while (rs.next()) {
Produto produto = new Produto();
// Pegue os dados do ResultSet e adicione na lista
list.add(produto);
}
Collections.sort(list);
Collections.reverse(list);
return list;
}


  • swap(List, int, int) - Troca elementos da List a partir do índice.

Útil quando necessário algum tipo de prioridade de certo elemento, basta achá-lo e trocar de lugar com outro
usando o método swap.

// ...
Collections.swap(list, 3, 1);
// ...


No caso o elemento 3 da list foi para a primeira posição e o 1 foi para a terceira posição.

  • shuffle(List) - permuta randomicamente uma lista usando um código randômico padrão.

É ideal quando você precisa embaralhar, por exemplo, uma lista de cartas de uma baralho.

// ...
Collections.shuffle(list);
// ...


Para mais informações sobre Java Collections Framework visite: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html

26 de mar. de 2010

Ranking Global de Internet

Dados do relatório Global Information Technology Report 2009-2010 (Relatório Global de Tecnologias da Informação).

Avalia o nível de preparo dos países para usar as tecnologias de comunicação e informação em três áreas no ambiente regulatório, empresarial e de infraestrutura destas tecnologias. No preparo dos três principais grupos (indivíduos, empresas e governos) para o uso e aproveitamento destas tecnologias; e na implementação real das últimas tecnologias de comunicação e informação disponíveis.



Então vamos lá galera, vou listar os 10 primeiros paises da lista.












1 – Suécia

2 – Cingapura

3 – Dinamarca

4 – Suíça

5 – Estados Unidos

6 – Finlândia

7 – Noruega e Canadá

8 – Hong Kong

9 – Holanda



O estudo foi feito com 133 países.

Há é mesmo já ia me esquecendo do Brasil ele ficou em 61º, na minha opnião posição ruim pelo que o Brasil representa no em relação à tecnologia. Mas acontece, um dia espero ver o Brasil na lista dos 20 primeiros.

Referência: http://olhardigital.uol.com.br/digital_news

11 de fev. de 2010

DADP - Desenvolvimento de aplicativos desktop em Java utilizando padrões

Estão abertas as inscrições para a terceira turma do curso a distância DADP - Desenvolvimento de aplicativos desktop em Java utilizando padrões.
Ministrada pelo Prof. Antonio Passos.
Trata-se de curso livre e de qualificação, online e gratuito, voltado para estudantes e profissionais de TI. Entre seus objetivos está a capacitação dos participantes para:

* Projetar aplicativos desktop estruturados em camadas;
* Aplicar padrões de projeto no desenho de aplicativos desktop;
* Construir aplicativos desktop usando a linguagem Java, a IDE NetBeans e bancos de dados relacionais.

Para mais informações acessem o link abaixo:
https://docs.google.com/Doc?docid=0Aef7Mov4Vj1OZGhjN3FkNGZfMGd4NzJwa2Ny&hl=en&pli=1