Grails: aspectos interessantes na configuração de acesso a dados

Em diversas aplicações que trabalhei, o único arquivo de configuração que precisamos alterar é o DataSources.groovy. E sabe o que é mais interessante neste componente do framework? É um arquivo de configuração vivo! Grails sempre me surpreende, até em sua configuração básica. Porém, antes de mostrar alguns aspectos pouco conhecidos deste arquivo, vou começar pelo

Grails: aspectos interessantes na configuração de acesso a dados Read More »

Grails: testando sua aplicação

Sabe esta aplicação linda que você está escrevendo em Grails usando todo o dinamismo que o framework te oferece?  Funciona perfeitamente, e em sua cabeça não aparece uma situação sequer na qual algo possa dar errado, certo? Como você pode ter certeza de que esta aplicação está funcionando? Só há uma maneira: testando, e da

Grails: testando sua aplicação Read More »

Grails: entendendo as validações (constraints)

No meu último post falei sobre alguns detalhes poucos conhecidos das buscas por critérios. Agora chegou a hora de expor algumas coisas bem legais sobre as validações, aka constraints, oferecidas pelo framework. O básico As constraints nos permitem definir declarativamente as regras de validação que devemos aplicar às nossas classes de domínio. São muito similares

Grails: entendendo as validações (constraints) Read More »

Grails: entendendo a busca por critérios (criterias)

Um dos recursos mais mal compreendidos do Grails são as criterias (será que posso falar “critérias” no plural?). O objetivo deste post é ir além do feijão com arroz que encontramos na documentação oficial. Espero que assim algumas das dúvidas mais comuns que escuto a respeito deste recurso sejam resolvidas. Vamos tratar de uma situação

Grails: entendendo a busca por critérios (criterias) Read More »

Trazendo o Atari para o HTML5 com Canvas: Space Invaders

Continuando minha pesquisa sobre HTML5 usando canvas, aqui está meu mais novo experimento: recriei à minha moda o clássico “Space Invaders” do Atari. Confesso que fiquei MUITO satisfeito com o resultado e, espero, vocês também. Desta vez não posso dizer que o código seja tão mínimo quanto minha primeira grande experiência, pois um dos meus

Trazendo o Atari para o HTML5 com Canvas: Space Invaders Read More »

Levando o Atari para o HTML5 usando canvas e Javascript – Freeway

Em 1985 ganhei meu primeiro video game do meu pai: era um Atari 2600, e o jogo que o acompanhava era o “Freeway”. Sendo assim, nada mais natural que o primeiro jogo que eu tente recriar seja este! Me propus recriar em Javascript usando o novo elemento canvas presente no HTML 5 alguns clássicos do

Levando o Atari para o HTML5 usando canvas e Javascript – Freeway Read More »

Brincando com canvas/HTML5

Tenho um brinquedo novo agora: trata-se do elemento canvas presente no HTML 5 e atualmente suportado por práticamente todos os browsers modernos (há uma lista de compatibilidade aqui). Bem: meu objetivo para 2011 é começar a atuar profissionalmente com jogos. Sendo assim, comecei com OpenGL e SDL, que estou estudando frenéticamente. Porém, vi alguns demos

Brincando com canvas/HTML5 Read More »

Guia itexto: o container de Injeção de Dependências do Spring 3.0

O que é injeção de dependências? E um container de injeção de dependências? Alto acoplamento? Pra que serve o Spring framework? O que isto tudo tem a ver com o meu dia a dia como desenvolvedor? Após ouvir diversas vezes estas perguntas, resolvi arregaçar as mangas e escrever um pequeno guia que explica o que

Guia itexto: o container de Injeção de Dependências do Spring 3.0 Read More »

Ah se tivesse isto quando eu estava começando… Revista Easy Java Magazine

Quando estava começando a aprender Java, devo confessar que os únicos artigos que realmente conseguia entender eram aqueles voltados para os iniciantes presentes nas revistas especializadas, como por exemplo as seções “Tira-dúvidas” e as cartas enviadas pelos leitores (sempre me identificava com aquelas dúvidas). Me lembro que ficava perdido com aquela quantidade imensa de siglas

Ah se tivesse isto quando eu estava começando… Revista Easy Java Magazine Read More »

Java: como a serialização de objetos pode salvar sua aplicação desktop

Em um dos meus clientes é muito comum o desenvolvimento de aplicações Java voltadas para o ambiente desktop, aonde não raro enfrento problemas sérios de performance e consumo de recursos. O objetivo deste post é expor como usando o recurso de serialização de objetos oferecido pela plataforma Java consegui resolver (ou ao menos minimizar ao

Java: como a serialização de objetos pode salvar sua aplicação desktop Read More »

Maquiavel e os palpiteiros da TI

Estou relendo “O Príncipe” de Maquiavel: o que é realmente bacana neste texto é como se aplica a práticamente todas as esferas do cotídiano. Claro: eu precisava trazer algo para a minha área: desenvolvimento de software. Vou tratar  do capítulo XXIII, chamado “De como se devem evitar os aduladores”. Troque o termo adulador por palpiteiro

Maquiavel e os palpiteiros da TI Read More »

Boas Práticas com Spring 3.0 na Java Magazine 84 (artigo de capa!)

Meu último artigo: “Boas práticas com Spring – Aplicando boas práticas ao container de IoC do Spring” acaba de ser publicado na edição 84 da Java Magazine (wow! é o artigo de capa!). O foco é o container de IoC do framework. São expostas boas práticas que, quando aplicadas ao gerenciamento do container aumentam a

Boas Práticas com Spring 3.0 na Java Magazine 84 (artigo de capa!) Read More »

Dica Grails: parâmetros com nomes duplicados

Há situações nas quais é interessante ter mais de um parâmetro passado ao nosso controlador com o mesmo nome. Para ilustrar a situação, eis um exemplo: imagine que você deseje criar um sistema de cotação de itens aonde seja interessante fornecer ao usuário a possibilidade de cadastrar mais de um preço de uma única vez.

Dica Grails: parâmetros com nomes duplicados Read More »

Grails: usando invocação dinâmica de métodos

Então você sabe que Groovy possui invocação dinâmica de métodos (já falei sobre isto aqui) mas não faz a menor idéia de como tirar proveito deste recurso, certo? Aqui vai um exemplo. Imagine a seguinte situação: você possui um controlador responsável por gerar relatórios baseados em um período  que será digitado pelo usuário em uma

Grails: usando invocação dinâmica de métodos Read More »

Primeiros passos com Clojure – Iniciando com o pé direito

Clojure é um tópico que tem ocupado boa parte do meu tempo nos últimos meses. É a realização de um sonho antigo: ver uma variante do Lisp emplacando no ambiente corporativo. Isto porquê a linguagem é feita para ser executada dentro de uma máquina virtual. Atualmente, há implementações da linguagem tanto para a JVM quanto

Primeiros passos com Clojure – Iniciando com o pé direito Read More »

Grails: lutando contra o cache do navegador (CSS e Ajax)

Um problema no desenvolvimento de aplicações web é o cache do navegador. É muito comum situações nas quais alteramos arquivos CSS em nosso projeto, enviamos a aplicação para o ambiente de produção e mesmo assim nossos clientes continuam vendo o layout da versão anterior. Isto ocorre porquê o browser cacheia os arquivos baixados da Internet

Grails: lutando contra o cache do navegador (CSS e Ajax) Read More »

Grails: resolvendo o problema de queda de conexão com o MySQL

Você que trabalha com Grails e MySQL já topou com excessões como estas: “com.mysql.jdbc.CommunicationsException: Communications link failure“, “java.net.SocketException: Broken pipe” , “java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.” ? Normalmente ocorrem após algumas horas de inatividade da sua aplicação. Normalmente acontecem porquê

Grails: resolvendo o problema de queda de conexão com o MySQL Read More »

Você REALMENTE acha que vai aprender assim?

Uma lição importante aprendida com o Grails Brasil foi como não aprender alguma coisa.  A foto do Baudrillard ai ao lado não é acidental. Há alguns anos atrás li um pequeno livro de Baudrillard chamado “A Ilusão Vital”  que chega a uma conclusão fascinante: se você quiser privar um indivíduo de informação, afogue-o nela. E

Você REALMENTE acha que vai aprender assim? Read More »

Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também)

Então finalmente aconteceu: precisei aprender .net direito para um projeto. No caso, o requisito do cliente foi o de que tudo deveria ser desenvolvido em VB.net.  Sendo assim, busquei material para aprender DIREITO esta linguagem (recomendo o livro “Pro VB 2008 and the .NET 3.5 Platform” de Andrew Troelsen (que fala MUITA merda sobre Java,

Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também) Read More »

Grails: do Groovy à Web – Quinta e última parte publicada na Java Magazine 79

Acaba de sair a edição digital (o que quer dizer que a versão impressa já deve estar a caminho) da revista Java Magazine n. 79, que contém a quinta e última parte da minha série “Grails: do Groovy á Web”. Desta vez o assunto é a camada de visualização: dei foco ao detalhamento da tecnologia

Grails: do Groovy à Web – Quinta e última parte publicada na Java Magazine 79 Read More »

Primeiros passos NoSQL com MongoDB: manipulando documentos

Continuando meu post anterior sobre o assunto, é hora de colocarmos a teoria em prática. Meu objetivo agora é expor o básico sobre o funcionamento e operação do MongoDB para que, em seguida, possamos aplicar este SGBD a alguma linguagem de programação (muito provávelmente usarei o Groovy, que cai como uma luva). Instalando o Servidor

Primeiros passos NoSQL com MongoDB: manipulando documentos Read More »

Uma experiência bem sucedida com o Memcached

Memcached é um sistema de cache em memória distribuido muito fácil de usar. Como recentemente tive uma experiência maravilhosa com esta ferramenta acredito que é interessante expô-la neste post (prometo que o próximo post será sobre MongoDB). A natureza do Memcached é extremamente genérica – trata-se de um serviço de rede – sendo assim, o

Uma experiência bem sucedida com o Memcached Read More »

Rolar para cima