terça-feira, julho 29, 2008

Como criar tabelas com chaves compostas via SQL

Este exemplo foi testado no HSQLDB, vindo direto do projeto free2share:

A tabela principal...:
CREATE TABLE Transfer (
idTransfer INTEGER IDENTITY,
serverID INTEGER,
serverURL VARCHAR,
transferSize INTEGER NOT NULL,
hits_last_hour INTEGER,
hits_total INTEGER,
register_time TIMESTAMP
);

A primeira tabela dependente da principal:
CREATE TABLE TransferBlock (
idTransfer INTEGER NOT NULL,
idTransferBlock INTEGER IDENTITY,
serverBlockId INTEGER,
pointer INTEGER NOT NULL,
datasize INTEGER NOT NULL,
dataoffset INTEGER NOT NULL,
hash INTEGER,
version INTEGER NOT NULL,
FOREIGN KEY (idTransfer) REFERENCES Transfer,
UNIQUE (
idTransfer,
idTransferBlock
)
);

E a terceira tabela, dependente das duas primeiras:

CREATE TABLE TransferBlockLink (
idTransfer INTEGER NOT NULL,
idTransferBlock INTEGER NOT NULL,
idLink INTEGER IDENTITY,
url VARCHAR(255) NOT NULL,
downloaded BOOLEAN NOT NULL,
damaged INTEGER NOT NULL,
FOREIGN KEY (idTransfer) REFERENCES Transfer,
FOREIGN KEY (idTransferBlock) REFERENCES TransferBlock,
UNIQUE (
idTransfer,
idTransferBlock,
idLink
)
);
O resultado deverá ser algo parecido com o do diagrama:

domingo, julho 20, 2008

quinta-feira, maio 01, 2008

Lib Utils

Lib Utils v1.1:
  • DataResources: Faz a serialização de objetos e leitura/escrita em arquivos de texto puro
  • ExternalIPFinder: Descobre o endereço IP externo do computador utilizando o serviço de automação do site www.whatismyip.com.
  • ImageLoader: Carrega uma pasta de imagens com nome no padrão [d*] e retorna um conjunto randômico de tamanho especificado
  • JarResources: Acessa recursos existentes em arquivos .jar ou .zip de forma direta
  • ValidadorCNPJ: Fornece método static boolean isValido (String cnpj)
  • ValidadorCPF: Fornece método static boolean isValido(String cpf )
Link para download (14KB)

Vista Business x64 SP1 vs. Microfone

Nota: A instalação automática do Service Pack 1 via Windows Update ferrou com o microfone.
Ele aparecia normalmente no painel de controle, mas na hora de gravar algo - tanto no Skype, no Gravador de Som e no MSN - nada.
Solução? Desinstalar o driver do controlador de som (com a opção de 'excluir' selecionada) e reiniciar o computador. Voilà!

quinta-feira, abril 17, 2008

Componente: Board


Componente que implementa um tabuleiro simples, com algum suporte à jogadas. Foi utilizado no Jogo da Memória, feito para a disciplina INE5612.

Pode ser rodado como um JavaBean (por exemplo, inserido na tab Beans do NetBeans) ou inserido no código à mão - a classe tests.DemoBoard exemplifica o processo.

Update: v1.1, corrigindo a visibilidade do construtor Position e adicionando métodos para suporte de Posições Próximas.

Link para download (11KB)

quinta-feira, abril 10, 2008

Java: Jogo da Memória


Extremamente simples, mas funciona... e o código ficou bonito! (:
Usa os componentes Board (tabuleiro), JGoodies Forms (layout) e JGoodies Looks (aparência).
Imagens, libs e código inclusos no .zip.
Falando nisso, quem quiser conhecer um jogo online legal, dá uma olhada aqui. Dá pra fazer login com o Facebook (é seguro) e é bem divertido depois que se pega o jeito. Se quiserem umas dicas, só me mandar mensagem ingame (:

UPDATE:
v1.1.1, corrigindo um bug no término do jogo que exigia um clique adicional e implementando um novo construtor na classe PanelMain - agora o jogo pode ser adicionado em outro programa simplesmente chamando-se new PanelMain().getPanel();
v1.1, com suporte à Threads (a imagem fica na tela por alguns instantes, mesmo não fechando o par).

Link para download (626KB)

UPDATE 20/04/2010:
Se você quer utilizar o código para [insira qualquer coisa aqui], sinta-se à vontade - só peço a gentileza de deixar um comentário depois com o que você fez, de curioso mesmo (:

terça-feira, março 11, 2008

O Analista de Sistemas

O que é trabalhar com Informática:

1 - Você trabalha em horários estranhos (que nem as putas).
2 - Te pagam para fazer o cliente feliz (que nem as putas).
3 - Seu trabalho vai sempre além do expediente (que nem as putas).
4 - Você é mais produtivo à noite (que nem as putas).
5 - Você é recompensado por realizar as idéias mais absurdas do cliente (que nem as putas).
6 - Seus amigos se distanciam de você e você só anda com outros iguais a você (que nem as putas).
7 - Quando você vai ao encontro do cliente você precisa estar apresentável (que nem as putas), mas quando você volta parece que saiu do inferno (que nem as putas).
8 - O cliente sempre quer pagar menos e quer que você faça maravilhas (que nem as putas).
9 - Quando te perguntam em que você trabalha você tem dificuldade para explicar (que nem as putas).
10 - Se as coisas dão errado é sempre culpa sua (que nem as putas).
11 - Todos os dias você acorda e diz: NÃO VOU PASSAR O RESTO DOS MEUS DIAS FAZENDO ISSO (que nem as putas).

quarta-feira, janeiro 30, 2008

terça-feira, janeiro 15, 2008

Download do conteúdo de uma URL em Java

Estava com problemas pra baixar o conteúdo de uma java.net.URL (uma imagem, no caso) sem corromper os dados. Bem, o código a seguir funcionou que é uma maravilha:

URL downloadLink = new URL("http://xxxxxx.jpg");

FileOutputStream output = new FileOutputStream("arquivo.jpg");
BufferedInputStream input = new BufferedInputStream(downloadLink.openStream());

byte[] buf = new byte[4096];
int lenght;
while ((lenght = input.read(buf)) > 0){
output.write(buf, 0, lenght);
}
input.close();
output.close();


Só faltou, claro, o tratamento das exceções :)

segunda-feira, janeiro 14, 2008

HD do Google


O Google vai dominar o mundo...