Aplicações
Design patterns
Adapter
Este é um exemplo do padrão de projeto adapter, onde mostro como classes com interfaces diferentes podem ser utilizadas através de uma interface em comum. Básico, mas muito útil.
Exemplo de aplicação Model-View-Presenter feita na mão
Quando comecei a estudar o padrão MVP, resolvi fazer alguns testes e tentar implementar algo na prática.
Groovy
Exemplo de DSL para rolagem de dados de RPG
Após ler alguns artigos sobre o assunto, esta seria minha primeira implementação de DSL. Neste exemplo, eu mostro como utilizar a linguagem Groovy para permitir instruções do tipo (3.d10 - 5 + 4.d12).best(2). Apesar da complexidade aparente, a linguagem Groovy torna bastante trivial a criação desse tipo de coisa. Informações extras podem ser obtidas neste post.
Java EE
Diabo Verde
Trata-se de um exemplo que mostra como montar uma aplicação Java para web. Basicamente, ela implementa operações CRUD em um banco de dados MySQL. Utiliza o Hibernate na camada de persistência e JSP/Servlets que implementa o padrão MVC modelo 1.
Livro de Visitas
Esta aplicação é um exemplo bem simples de como trabalhar com bancos de dados via JDBC.
Tapestry Guestbook - Hivemind
Esta aplicação foi mostrada e explicada na terceira parte do meu tutorial sobre o Tapestry 4.1, o Molhando os pés com o Tapestry. A aplicação em si é bem simples, mas ela mostra como utilizar o HiveMind (que já é utilizado internamente pelo Tapestry) para integrar a camada web com o backend escrito em EJB3.
Tapestry Guestbook - Spring
Esta aplicação é uma modificação da aplicação explicada na terceira parte do meu tutorial sobre o Tapestry 4, o Molhando os pés com o Tapestry. A diferença é que esta utiliza o Spring em vez do HiveMind para integrar a camada web com o backend EJB3. É interessante para aqueles que acham o HiveMind meio “esquisito” e preferem utilizar um framework DI mais simples. O procedimento de integração entre o Tapestry 4 e o Spring é explicado em detalhes neste post.
Guestbook - Wicket + Java EE 5
Este guestbook foi um pequeno teste que montei aqui para tentar aprender um pouco mais sobre o framework Wicket. Mais detalhes a respeito podem ser vistos neste post.
Testando código JavaMail
Este projeto mostra como podemos fazer para testar um código que usa a API JavaMail para envio de e-mails. Neste projeto, mostro como usar duas ferramentas; a primeira é um servidor SMTP “de mentira” chamado SubEthaSMTP Wiser e a segunda é a API MockJavaMail. Este post mostra algumas informações relacionadas a essa aplicação.
Java Native Interface (JNI)
Windows HelloWorld
Uma aplicação que mostra como implementar um “HelloWorld” usando JNI, onde o código Java invoca um método criado em linguagem C. Funciona em Windows.
Java SE
Componente Swing: Flickr Slideshow
Esta aplicação mostra o funcionamento de um componente Swing cujo objetivo é mostrar as fotos de um usuário do Flickr. É um bom exemplo de como se criar componentes Swing customizados.
Componente Swing: Loading Image
Esta aplicação mostra um exemplo de como podemos estender o Swing com a criação de novos componentes. Neste exemplo, o componente serve para carregar uma imagem (através de uma URL), mostrando uma animação enquanto a imagem é obtida.
Dijkstra
Este programa foi feito para a faculdade. O objetivo dele é permitir que o usuário insira os nós de um grafo e os interligue com arcos bidirecionais, indicando um peso. Depois de informar o grafo, o usuário pode escolher um nó de origem e um nó de destino para que o programa informe o menor caminho entre eles.
Processamento de imagens (binarização)
Esta aplicação foi desenvolvida como trabalho para a faculdade e mostra um jeito de implementar um filtro conhecido como binarização.
Send Mail
Este programa foi feito para a faculdade, cujo objetivo foi implementar uma parte do protocolo SMTP no braço. Até que ficou legal! Possui alguns recursos interessantes, como autenticação de usuário, envio de mensagens formatadas em HTML, anexos (inclusive anexos inline).
Surf - Hello world
Esta aplicação mostra como implementar um Hello World com o Surf, um framework que desenvolvi (e que hoje é um projeto inativo, infelizmente). Podemos ver como fica fácil implementar aplicações Swing, já que não precisamos transportar dados manualmente entre o Model e a View e não precisamos criar classes Listeners para que a aplicação possa responder aos eventos do usuário. O código é explicado com mais detalhes neste post.
Teste de aplicações Swing com FEST-Swing
Esta aplicação é um exemplo de como podemos utilizar o FEST-Swing para efetuar testes em uma aplicação Swing. Trata-se de um conversor de temperaturas bem simples; o projeto inclui testes para validar tanto a lógica de conversão de temperaturas quanto o comportamento da aplicação em relação à interação do usuário. Para mais detalhes sobre como esta aplicação foi desenvolvida, veja este post.
Python
PyGod
O PyGod é um “inutilitário” similar àqueles programas que você usava há vários anos atrás para assustar seus amigos e familiares, onde o programa responde a todas as suas perguntas! Mais detalhes neste post.
Smalltalk
Seaside - Guessing application
Neste post, eu mostrei um pouco do que venho aprendendo a respeito do Seaside, um poderoso framework web implementado em Smalltalk. Esta aplicação é uma implementação simples de um “jogo de advinhação”, onde o usuário tenta adivinhar um número gerado aleatoriamente. Clique aqui para conferir detalhes a respeito do funcionamento desta aplicação.
Seaside - Exemplo de sistema de login
Em mais uma das minhas experimentações no Squeak/Seaside acabei desenvolvendo esta aplicação, que mostra como podemos implementar um esquema simples de autenticação com páginas públicas/administrativas e formulário de login. Para que a aplicação funcione, sua imagem Squeak deve ter versões recentes do Seaside e o Magritte-Seaside. Este post comenta alguns aspectos interessantes a respeito desta aplicação.

