valeu canastra !
instalando a jvm da sun no ubuntu 10
fui juntando as informacoes aqui e acolah e vamos aos passos para instalar o java6 no ubuntu server
1. faça um copia do arquivo com as configurações do apt
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
https://help.ubuntu.com/community/Repositories/CommandLine
2. habilite a linha com os partners, o arquivo possui um monte de lugares onde o apt-get busca instalações, adicionamos uma onde tem o jdk da sun que eh proprietario por isto não é default do ubuntu.
chame o editor nano com a seguinte linha
sudo nano /etc/apt/sources.list
descomente as linhas :
deb http://archive.canonical.com/ubuntu lucid partner deb-src http://archive.canonical.com/ubuntu lucid partner
para salvar pressione Ctrl+O
3. mande o apt-get se atualizar !! at’e porque vc contou para ele sobre novos amiguinhos ..
sudo apt-get update
4. mande instalar e aceite a licenca no processo de instalação.
sudo apt-get install sun-java6-jre sudo apt-get install sun-java6-jdk
5. definir qual o JRE usar como default,
https://help.ubuntu.com/community/JavaInstallation
execute o seguinte para listar os JRE instalados
update-java-alternatives -l
e depois este comando trocando o nome no fim para o nome que vc escolher da lista anterior
sudo update-java-alternatives -s java-6-sun
depois execute java-version para receber a boa noticia que funcionou …
hora de fazer backup da maquina virtual, antes que algo de errado
quantas vezes não fiquei fuçando arquivo de log atrás de um erro, e sempre era algo do tipo : aconteceu lá pelas 10 da manhã, e nem sempre a data do servidor estava … assim como diremos … certa ! ou seja quase sempre o erro é achado quase por milagre
Um dia destes não sei que servidor que estava acessando e rolou um erro no server bizzaro, que explodiu um monte de caracteres na saida http, mas a mensagem era algo do tipo : oh este monte de letras ae em baixo explica o que aconteceu para alguem que saiba ler isto … e era um monte de dados no formato BASE64, não me dei ao trabalho de converter de volta, mas criptografar um stacktrace de um erro, e colocar no formato BASE64 para poder mostrar pareceu uma idéia bem legal.
fiz uma versão reduzida disto, gerando somente um ID para o erro e retornando junto com a mensagem de erro assim na comunicação entre usuário e suporte surge um elemento em comum que é o identificador do erro.
o código Java é extremamente simples, as podia ser mais simples ainda heheheh
public class ErrorID {
private static int counter = 0;
public static synchronized String getErrorID(String string) {
String result = string + " ERROR.ID:" + System.currentTimeMillis() + "-" + counter++;
if (counter >= Integer.MAX_VALUE - 1) {
counter = 0;
}
return result;
}
}
e na hora de usar é algo do tipo :
...
} catch (SQLException e) {
String errorID = ErrorID.getErrorID("error inserting something");
logger.error(errorID, e);
throw new Exception(errorID);
...
Como estou implementando uma integracao entre servidores, a comunicacao vai ser no formato JSON (apesar dos dois por enquanto serem Java),
escrevendo codigo para comunicacao em rede em Java e diversao garantida, na verdade eh diversao em qualquer linguagem …
nestas aventuras eu estava passando por um problema muito interessante, que vou compartilhar.
Uma aplicacao amiga de streaming de video que manda imagens de um servidor para um cliente, que rodando o cliente na
propria maquina do servidor todos iam felizes, ateh que resolvi testar acessando de outra maquina … legal funcionou maneiro !
de outra maquina diferente … bum !! os dados davam uma zoneada firme !! nossa pensei que podia ser perda de pacote, configuracao de rede e outros breguetes.
mas o problema real, eh que um valorzim sinistro que eh sempre esquecido, estava de fato sendo esquecido, que eh o numero de bytes lidos pelo stream
ou seja na maioria dos casos o inputstream lia o tamanho do buffer, mas as vezes nao conseguia encher o buffer, e o numero vinha menor !!!
e eu nao estava verificando isto (topeira)
o codigo alterado ficou mais ou menos assim (o trecho do inputstream)
int bytesRead = reader.read(buffer);while (bytesRead < buffer.length) {bytesRead += reader.read(buffer, bytesRead, buffer.length - bytesRead);}

simples e objetivo ! bum bum bum explode tanques ![]()
www.permadi.com/java/battletank/index.html

ld15-athanazio-v2
Olas esta eh a segunda versao com algumas melhorias do jogo que fiz para a competicao de 48 Ludum Dare #15.
basta levar o Glaucon pela caverna, coletar os artefatos, evitar zumbis, e jogar tochas neles, tem 4 fases.
divirta-se !!
achei este port interessante do Box2d para Java qiue maneiro … acho que vou juntar com algumas coisas de JavaFx .. ![]()

Jbox2d http://jbox2d.sourceforge.net/
box2d http://www.box2d.org/
Segue a parte 3/3 do video da apresentacao no Riojug
em abril de 2009 sobre a criacao de jogos usando JavaFX
JavaFX para criação de Jogos 3/3 from Hamilton Lima on Vimeo.
Segue a parte 2/3 do video da apresentacao no Riojug
em abril de 2009 sobre a criacao de jogos usando JavaFX
JavaFX para criação de Jogos 2/3 from Hamilton Lima on Vimeo.
Segue a parte 1/3 do video da apresentacao no Riojug
em abril de 2009 sobre a criacao de jogos usando JavaFX
JavaFX para criação de Jogos 1/3 from Hamilton Lima on Vimeo.
Temos grandes novidades neste preview:
- Uma interface para entrar com nome dos usuarios que estão jogando
- a tela de como jogar
- o envio da pontuação para o servidor
Ufa … os novos graficos ainda nao estao lah, mas estao no forno !!
este eh o link para os arquivos do preview
http://svn.vacavitoria.com/cabecudinhos_1/cabecudinhos_1/preview/2009-03-18/
e este eh o video

Olas ! estamos quase terminando o jogo dos cabecudinhos, episodio I o ataque dos mosquitos ! as partes graficas estao saindo do forno, valeu Mariana !! as coisas estao se encaixando, e em breve vai rolar o envio de pontuacao para o servidor.
Coisas novas bem legais estao neste preview :
- feedback do tempo para a criacao do novo mosquito e tempo que o item vai ficar sem gerar mosquito
- efeito quando os personagens sao atingidos pelo mosquito
- contagem dos pontos
baixe o arquivo de webstart da implementacao atual
cabecudinhos_episodio_um.jnlp
curta o video do preview
e aproveite a moleza do codigo fonte disponivel no subversion

Quando criamos uma cena em Javafx, por vezes precisamos controlar grupos de componentes como um só, neste exemplo demonstro como adicionar dois grupos distintos em uma mesma cena, e fazendo com que uma fique invisivel enquanto a outra visivel. Neste exemplo são criados dois objetos Group que juntos compõe o content da Scene
import javafx.scene.Cursor;
import javafx.scene.effect.DropShadow;
import javafx.scene.Group;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
/**
* @author athanazio
*/
Stage {
title: "Application title"
width: 250
height: 150
scene: Scene {
content: [
Group{
id: "me"
content: [
Rectangle {
cursor: Cursor.HAND
x: 5
y: 25
width: 50
height: 30
arcWidth: 20
arcHeight: 20
fill: Color.BLACK
stroke: Color.BLACK
effect: DropShadow{
offsetX: 5
offsetY: 5
color: Color.BLACK
}
}
Text {
font: Font {
size: 16
}
x: 10,
y: 40
content: "one"
fill: Color.WHITE
}]
onMouseClicked: function(e){
e.node.scene.lookup("myself").visible = true;
e.node.scene.lookup("me").visible = false;
}
}
Group{
visible: false
id: "myself"
content: [
Rectangle {
cursor: Cursor.HAND
x: 65
y: 25
width: 50
height: 30
arcWidth: 20
arcHeight: 20
fill: Color.BLACK
stroke: Color.BLACK
effect: DropShadow{
offsetX: 5
offsetY: 5
color: Color.BLACK
}
}
Text {
font: Font {
size: 16
}
x: 70,
y: 40
content: "two"
fill: Color.WHITE
}]
onMouseClicked: function(e){
e.node.scene.lookup("me").visible = true;
e.node.scene.lookup("myself").visible = false;
}
}
]
}
}
Note que a ideia eh de ter dois grupos, e neste exemplo dentro de cada um um retangulo e um texto, mas qualquer conjunto de Node poderia ser adicionado. veja no link abaixo a aplicação criada funcionando
groupgroup


