1º Encontro PTJUG – 6 de Março

Tenho o prazer de anunciar que o 1º Encontro de Java User Group Português se irá realizar dia 6 de Março, entre as 18h30 e as 21h30 no Hotel Principe Lisboa. Será feito em horário pós-laboral e num tom

o mais informal possível; no fundo o que queremos é ouvir falar sobre alguns temas, discuti-los e ficar a conhecer-nos melhor. Para isso, vamos também jantar a seguir e que será certamente agradável. E também teremos alguma coisa para comer lá no hotel durante as palestras, por isso vai dar para matar a fome a quem vier directo do trabalho ou faculdade.

Mas não vai ser só comida, também vamos falar sobre java e tecnologias semelhantes. Reunimos um conjunto de 3 apresentações que penso virem a ser interessantes para todos:

– “Developers Java: o que as empresas dizem que precisam mesmo mesmo” pelo Fernando Fernandez

– “Lightweight grids with Terracotta” pelo Cesario Ramos

– “Google Web Toolkit” pelo Hugo Pinto

A apresentação do Cesario será em inglês (ele arranha o portugues, embora o nome o faça parecer um verdadeiro nativo) e podem consultar slides da apresentação que ele fez no Jug Holanda, sendo que cá vai apresentar uma versão actualizada da palestra.

Depois disto só falta mesmo registarem-se. Para isso, podem utilizar o formulário de registo no 1º Evento PTJUG, no JUG Events. Assim vamos conseguir saber o tamanho da sala a usar e quantos lanches pedir. Tanto a sala como o lanche, nesta primeira edição, são patrocinados pela Sun, a quem muito agradecemos este apoio.

E passem a palavra. No vosso trabalho, faculdade, grupo de amigos

que se interessem por estas coisas. A troca de ideias é uma excelente forma de todos nós evoluirmos.

Espero encontra-vos lá.

PS: Quem quiser ir ao jantar, por favor envie um mail para jug arroba java ponto pt com o primeiro e último nome.

Ganhar dinheiro com open-source: Netbeans Innovators Grant

Li o post do Bruno Souza no DZone e achei uma excelente ideia.

Quantas vezes não nos queixámos de esta ou aquela feature no nosso IDE

favorito, sem no entanto fazer nada para a melhorar. Ou aquele plugin que gostavamos mesmo de ter.
A Sun criou a Netbeans Innovators Grant que permite que membros da comunidade open-source ganhem dinheiro vivo com contributos para o projecto Netbeans. O que a Sun ganha são novas features implementadas para a plataforma a um custo bastante baixo e uma visibilidade pela publicidade que isto dos prémios por desenvolvimento atrai. Aliás, a jetbrains, criadores do fantástico IntelliJ IDEA, fizeram o mesmo há algum tempo atrás com sucesso.

Resumidamente, serão atribuídas as seguintes bolsas:

  • 10x bolsas de $11.500 cada, para projectos “grandes”
  • 10x bolsas de $2.000 cada, para projectos menores
  • 2x gold awards no valor de $11.000, para atribuir a 2 projectos dos 20 anteriores que tenham muito sucesso
  • 2x silver awards no valor de $5.000, para atribuir a 2 projectos dos 20 anteriores que tenham sucesso

Para isto será necessário ter boas ideias. Uma vez escolhidas as 20 ideias, são atribuídas as bolsas às mesmas sendo que só se recebe o dinheiro no fim, se o projecto for concluído com online viagra sucesso. Ou seja, não será dinheiro fácil.

A submissão de propostas dura até dia 3 de Março. Podem consultar mais detalhes no site do Netbeans.

Mesmo para gajos do Eclipse como eu isto pode vir a ser motivador :)

Queries hierárquicas em Oracle

Um caso que ocorre com frequência é ter estruturas hierárquicas em tabelas. Um exemplo típico será uma tabela empregado, que pode ter e/ou ser um supervisor. Ou seja, temos uma chave estrangeira que aponta para a chave da própria tabela, algo tipo

ID_EMP  NOME           SUPERVISOR
------- -------------- ------------
1       João           NULL
2       Pedro          1
3       Ricardo        1
4       José           2

Em que o João é supervisor do Pedro e do Ricardo e o Pedro é supervisor do José.

Por vezes, temos uma estrutura deste tipo mais ou menos complexa, com mais ou menos níveis de profundidade e queremos saber, com base num identificador, todos os resultados hierarquicamente – neste caso, ao perguntar quais os supervisionados hierárquicos do João, teríamos o Pedro, Ricardo e José.

Tipicamente, até agora fazia uma função em pl/sql que fizesse isto pois não conhecia algumas das facilidades que o Oracle fornece para isto.

Introducing CONNECT BY

DBAs e pessoal com alguma experiência em Oracle deve conhecer isto, mas para mim foi uma novidade e foi-me imensamente útil.
Com esta directiva, consigo fazer o seguinte:

SELECT
  NOME, LEVEL
FROM
  EMPREGADO
START WITH
  NOME='João'
CONNECT BY NOCYCLE
  PRIOR ID = SUPERVISOR

O resultado desta query seria aproximado a:

NOME           LEVEL
-------------- -------
João           1
Pedro          2
Ricardo        2
José            3

O que se fez foi dizer que queríamos começam com o registo com o nome João e “ligá-lo” aos seus filhos. Isto é feito com a cláusula CONNECT BY e usando PRIOR num dos campos. Podemos pensar seguindo da raiz, de registo em registo iterativamente, sendo que na primeira iteração o PRIOR ID é o campo do registo raiz e estamos a seleccionar como próximos campos, todos os que tenham SUPERVISOR = PRIOR ID.
A palavra NOCYCLE é para não se entrarem em ciclos e a coluna LEVEL que está a ser usada é uma pseudo-coluna que indica o nível em que está o registo em relação à raiz (sendo a raiz o nível 1).

Podem encontrar uma explicação mais completa aqui.