<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4330775950621707152</id><updated>2024-09-01T14:38:23.761-03:00</updated><category term="Design Patterns"/><category term="GWT"/><category term="Rails"/><category term="MVP"/><category term="Guice"/><category term="Injeção de Dependências"/><category term="Teste Unitário"/><category term="Django"/><category term="JPA"/><category term="MVC"/><category term="Python"/><category term="Ruby"/><category term="Eclipse"/><category term="Spring Framework"/><category term="Java"/><category term="Maven"/><category term="Annotations"/><category term="Applets"/><category term="Chromium"/><category term="Derby"/><category term="GIT"/><category term="GPE"/><category term="GitHub"/><category term="Google Plugin for Eclipse"/><category term="Heroku"/><category term="JMS"/><category term="Java Web Start"/><category term="JavaDB"/><category term="Swing"/><title type='text'>Mind Share...</title><subtitle type='html'>Compartilhando know-how sobre desenvolvimento de software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-5919900582753215385</id><published>2012-08-06T00:27:00.001-03:00</published><updated>2012-08-22T16:00:43.374-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><title type='text'>MultiModel forms, parte 3: Nested Forms</title><summary type="text">Este post é o terceiro de uma série de quatro artigos:
Parte 1: Nested Models - One-to-One
Parte 2: Nested Models - One-to-Many
Parte 3: Nested Forms
Parte 4: Nested Forms dinâmicos usando Knockout.js
O código desta aplicação de exemplo está disponível neste repositório Github.

Nested FormsNos dois primeiros posts desta série, foi mostrado o poder do uso de Nested Models. O Rails fornece ainda </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/5919900582753215385/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2012/08/multimodel-forms-parte-3-nested-forms.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5919900582753215385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5919900582753215385'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2012/08/multimodel-forms-parte-3-nested-forms.html' title='MultiModel forms, parte 3: Nested Forms'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihn0vQgHZIWcBfodfpxbYOfMM6IM409T3uj13NTI9jmnjly5KLH9Ax__HetdyNmb6Vgp4r1od-3lreFqbzHF5xPMSNGQyJgbO0kdldufGk1pHX2P7zUzcIsGRfo-MQbSpYb8KPePzNn0UZ/s72-c/new_person.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-4723612030812044732</id><published>2012-08-05T02:16:00.002-03:00</published><updated>2012-08-22T16:01:10.457-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><title type='text'>MultiModel forms, parte 2: One-To-Many</title><summary type="text">Este post é o segundo de uma série de quatro artigos:
Parte 1: Nested Models - One-to-One
Parte 2: Nested Models - One-to-Many
Parte 3: Nested Forms
Parte 4: Nested Forms dinâmicos usando Knockout.js
O código desta aplicação de exemplo está disponível neste repositório Github.
Nested Models - One-to-ManySegue o modelo utilizado neste tutorial:
Person has one UserAccount (parte 1)
UserAccount has </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/4723612030812044732/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2012/08/multimodel-forms-parte-2-one-to-many.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/4723612030812044732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/4723612030812044732'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2012/08/multimodel-forms-parte-2-one-to-many.html' title='MultiModel forms, parte 2: One-To-Many'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6611370356239073426</id><published>2012-08-01T12:15:00.000-03:00</published><updated>2012-08-22T16:02:05.505-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><title type='text'>Um formulário, multiplos modelos: a praticidade dos MultiModel Forms</title><summary type="text">MultiModel forms são um poderoso recurso oferecido pelo Rails desde a versão 2.3 - porém desconhecido de muitos programadores. Com eles, é possível editar complexas hierarquias de objetos numa única view. É uma situação que nos deparamos com bastante freqüência:
Editar Carrinho de Compras e Itens do Carrinho
Dados de uma Pessoa e Informações de Contato
Dados de um Usuário e Permissões.
Post num </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6611370356239073426/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2012/07/um-formulario-multiplos-modelos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6611370356239073426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6611370356239073426'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2012/07/um-formulario-multiplos-modelos.html' title='Um formulário, multiplos modelos: a praticidade dos MultiModel Forms'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-1621581175452686605</id><published>2011-11-13T14:19:00.029-02:00</published><updated>2011-11-16T12:27:27.561-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Heroku"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><title type='text'>Deploy de aplicações Rails e Django no Heroku</title><summary type="text">No post anterior foi mostrada a importância de se colocar o projeto num servidor de controle de versões, mesmo logo após a sua criação. Algumas preocupações puderam ser rapidamente testadas e solucionadas, por exemplo o setup em máquinas de outros desenvolvedores.

Ainda nesta fase tão precoce, podemos ir mais além: testar o deploy da aplicação num ambiente production-like. Desta forma, cria-se </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/1621581175452686605/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/deploy-de-aplicacoes-rails-e-django-no.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1621581175452686605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1621581175452686605'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/deploy-de-aplicacoes-rails-e-django-no.html' title='Deploy de aplicações Rails e Django no Heroku'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw3CndPvVDTv0y-bB5dK4gykBr0DeYZZc_z_-OwycfPz6-BJK01ObW25ZUkRjzk8mLyTRjY0a2Rz2Aa60YpvDy39TNcC1Bh5LGRRS1s775HpPjPDsfYq71_8jCqQO95XAJeIUpHLMudgDE/s72-c/heroku-rails.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-3718381037052729162</id><published>2011-11-09T00:39:00.014-02:00</published><updated>2011-11-16T16:35:55.132-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="GIT"/><category scheme="http://www.blogger.com/atom/ns#" term="GitHub"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>Colaboração em projetos Rails e Django usando o Github</title><summary type="text">
Nos posts anteriores, foi mostrada a criação de projetos Rails e Django, e explicado o uso do Bundler e do PIP para gerenciamento de dependências do projeto. Foi mostrado também como iniciar servidores web com os comandos 


rails s

e


python manage.py runserver,


nos projetos recém criados, bem como os utilitários para acesso rápido a banco de dados


rails db


e


python manage.py dbshell.</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/3718381037052729162/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/colaboracao-em-projetos-rails-e-django.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3718381037052729162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3718381037052729162'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/colaboracao-em-projetos-rails-e-django.html' title='Colaboração em projetos Rails e Django usando o Github'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6315395412698072703</id><published>2011-11-08T22:49:00.013-02:00</published><updated>2011-11-09T00:57:22.719-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>Gerenciamento de Dependências com Bundler e PIP</title><summary type="text">No post anterior, foi mostrado como criar novos projetos em Rails e Django. Neste estágio inicial de projeto, algumas preocupações começam a surgir: que bibliotecas usar no projeto? Como irei baixar e instalar essas bibliotecas? Meus colegas de time conseguirão baixar o projeto de um repositório e configurar facilmente seus ambientes com as bibliotecas selecionadas?

Neste momento, fica muito </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6315395412698072703/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/gerenciamento-de-dependencias-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6315395412698072703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6315395412698072703'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/gerenciamento-de-dependencias-com.html' title='Gerenciamento de Dependências com Bundler e PIP'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-7400110478671122085</id><published>2011-11-06T19:49:00.022-02:00</published><updated>2011-11-07T01:52:00.826-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>Começando aplicações Rails versus Django</title><summary type="text">No post anterior, foi mostrado como criar ambientes de desenvolvimento Rails e Django, comparando o RVM (Ruby Version Manager) com o PIP (Python Install Packages).

Este artigo dá um pequeno passo adiante, mostrando as similaridades e diferenças durante a criação aplicações usando estes dois frameworks web.

Não se preocupe se não leu o artigo anterior, este post mostrará todos os passos </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/7400110478671122085/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/comecando-aplicacoes-em-rails-e-django.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/7400110478671122085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/7400110478671122085'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/comecando-aplicacoes-em-rails-e-django.html' title='Começando aplicações Rails versus Django'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-9150510731295867271</id><published>2011-11-05T16:38:00.018-02:00</published><updated>2011-12-19T19:25:24.520-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>RVM e VirtualEnv</title><summary type="text">Em Ruby uma das primeiras coisas que se aprende é a instalar novos pacotes através do RubyGems:
 


Em Python, o gerenciamento de pacotes (eggs) era feito tradicionalmente com o easy_install, mas que sendo substituído pelo PIP.

 


Mesmo com tamanha facilidade para instalar e gerenciar pacotes que ambas as linguagens oferecem, existirão casos onde será necessário trabalhar simultaneamente com </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/9150510731295867271/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/rvm-e-virtualenv.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/9150510731295867271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/9150510731295867271'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/rvm-e-virtualenv.html' title='RVM e VirtualEnv'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6334080302240792323</id><published>2011-11-05T16:32:00.002-02:00</published><updated>2011-11-05T16:36:42.996-02:00</updated><title type='text'>Carreira Poliglota</title><summary type="text">Em 2011, as experiências de trabalho na Concrete Solutions e na Globo.com têm sido um grande incentivo para buscar uma carreira poliglota. Apesar de ainda trabalhar boa parte do tempo com Java, já pude passear por vários mundos:
Ainda em Java, finalmente conheci o Maven (indispensável), Spring3 (muito bom!) e o ActiveMQ.Objective-C e Android: desenvolvimento mobile é desafiador e divertido!PHP, </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6334080302240792323/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/carreira-poliglota.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6334080302240792323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6334080302240792323'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/11/carreira-poliglota.html' title='Carreira Poliglota'/><author><name>fabiolnm</name><uri>http://www.blogger.com/profile/16004657252379082114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-2021817669105063739</id><published>2011-04-28T17:55:00.008-03:00</published><updated>2011-04-28T21:26:36.321-03:00</updated><title type='text'>Primeiros passos com Objective-C e iOS Development</title><summary type="text">[Update: excelente material sobre ObjectiveC:&amp;nbsp;http://www.astro.iag.usp.br/~algol/computacao/ObjCtutorial.html. Dá até pra programar usando MinGW no Windows!]

Pois é, cá estou me aventurando com MacBook, Objective-C e iOS, visando aprender a desenvolver aplicações para iPhone. A iniciativa surgiu da necessidade de ter mais independência em um projeto que estou desenvolvendo. Fiz o backend da</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/2021817669105063739/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/04/primeiros-passos-com-objective-c-e-ios.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2021817669105063739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2021817669105063739'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/04/primeiros-passos-com-objective-c-e-ios.html' title='Primeiros passos com Objective-C e iOS Development'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-3542797225243536064</id><published>2011-04-04T16:46:00.009-03:00</published><updated>2011-11-12T19:08:45.350-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Framework"/><title type='text'>Agendamento de tarefas com o Spring 3</title><summary type="text">Com relativa freqüência, nos deparamos com a necessidade de agendar tarefas:

De tempos em tempos,&amp;nbsp;executar uma regra de negócio e enviar o resultado para um e-mail.
Escanear periodicamente um determinado diretório, para verificar se existem novos arquivos
Disparar newsletters
etc

A simplicidade de criar tarefas agendadas no Spring 3 impressiona. Basta configurar o namespace &amp;lt;task&amp;gt; e </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/3542797225243536064/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/04/agendamento-de-tarefas-com-o-spring-3.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3542797225243536064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3542797225243536064'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/04/agendamento-de-tarefas-com-o-spring-3.html' title='Agendamento de tarefas com o Spring 3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-1177036079626943223</id><published>2011-03-13T18:31:00.000-03:00</published><updated>2011-11-12T19:09:04.442-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><title type='text'>GWT: A longa estrada</title><summary type="text">Em dezembro de 2009, decidi aprender GWT. Na época, estava interessado nas possibilidades desta escolha:&amp;nbsp;apps mais inteligentes e interativas, menos round-trips no servidor, melhor tempo de resposta, envio de cálculos para serem feitos no lado cliente, deixando para o servidor apenas a responsabilidade de entregar os dados necessários para os cálculos, etc...



Porém o aprendizado não tem </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/1177036079626943223/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/03/gwt-longa-estrada.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1177036079626943223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1177036079626943223'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/03/gwt-longa-estrada.html' title='GWT: A longa estrada'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-2368703614024890936</id><published>2011-02-28T01:25:00.009-03:00</published><updated>2011-11-12T19:09:04.443-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><title type='text'>Sudoku Solver</title><summary type="text">Ontém, o amigo Edcana comentou no twitter que estava escrevendo um resolvedor de Sudokus. Sempre gostei desse jogo, mas nunca tinha passado pela cabeça em escrever um programa para resolvê-lo... E foi uma diversão interessante...

E foi uma diversão interessante... Abaixo uma versão parcial da aplicação, escrita em GWT, com 2 estratégias se solução (resolvem os níveis fácil e médio de problemas </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/2368703614024890936/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/02/sudoku-solver_28.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2368703614024890936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2368703614024890936'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/02/sudoku-solver_28.html' title='Sudoku Solver'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-1440439025215467188</id><published>2011-01-10T00:14:00.007-02:00</published><updated>2011-04-04T16:50:22.185-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Framework"/><title type='text'>Gerenciamento de Dependências com Maven - Parte 2</title><summary type="text">
Neste post, será mostrada a view &quot;Maven Repositories&quot; do Eclipse, ilustrando algumas tarefas básicas, por exemplo, indexar um repositório para configurar / atualizar a busca de dependências pelo editor pom.xml do Eclipse.

A dinâmica do artigo será simular um projeto que utiliza usando Spring, JMS e ActiveMQ, para um projeto de mensageria.&amp;nbsp;Durante os exercícios são sugeridas algumas dicas </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/1440439025215467188/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2011/01/jms-com-activemq-spring-e-maven.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1440439025215467188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/1440439025215467188'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2011/01/jms-com-activemq-spring-e-maven.html' title='Gerenciamento de Dependências com Maven - Parte 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjJrgZZeBUUb8a9Sh8sofYBeG0Hu_v4AgeGTkDb1Vmr76v6K0e4t9CdyZghGJSzZOCxSZbOEu6XZA3h6iOw6vltJRVzpMZy8ftUUaG1lZBiOGV5K-e7wFarEuO8IAwuTe6cyxojMb_3KJp/s72-c/spring-context.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6147628446754415836</id><published>2010-12-18T18:06:00.009-02:00</published><updated>2011-01-12T18:25:40.251-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><title type='text'>Hands-on: Dependency Management com Maven - Parte 1</title><summary type="text">&quot;E disse: Maven, a vida é pra valer...&quot;

Neste post, listarei algumas vantagens de se usar o maven em projetos Java - todas de situações que já vivenciei na pele, e que o Maven resolve com agilidade e elegância. No final, segue uma série de screenshots mostrando desde a instalação do Maven no Eclipse, à criação de um projeto e à configuração de algumas dependências.


Happy Maven!



A parte 2 </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6147628446754415836/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/12/hands-on-dependency-management-com.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6147628446754415836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6147628446754415836'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/12/hands-on-dependency-management-com.html' title='Hands-on: Dependency Management com Maven - Parte 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRNWj8B2u2SmhtQ1KTWu8eYIILeN4fwCx3BBJZ8g47cMitiiLLviwwD6A4o0ZSnKC5LDuS3caMbn5XbxNFO1gZs5NBfjULbo03em6bF4gh4ymaHA4i9x1r9Iyf087_-ev8JxvPpk9VMINq/s72-c/01.1+-+Install+New+Software.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6576471523333097865</id><published>2010-11-01T00:09:00.001-02:00</published><updated>2010-11-20T16:29:22.801-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><title type='text'>Familiarização com a API RequestFactory do GWT 2.1</title><summary type="text">
Uma das novidades introduzidas pelo GWT 2.1 diz respeito a uma nova abordagem a serviços orientados a dados, responsáveis pelas operações CRUD da aplicação. Esta abordagem oferece formas de automatizar as tarefas relacionadas ao tratamento dos DTOs, responsáveis por trafegar os dados entre cliente e servidor.


Além disso, o GWT finalmente passa a oferecer uma solução para o binding entre os </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6576471523333097865/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/11/familiarizacao-com-api-requestfactory.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6576471523333097865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6576471523333097865'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/11/familiarizacao-com-api-requestfactory.html' title='Familiarização com a API RequestFactory do GWT 2.1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-2519898672640906745</id><published>2010-10-31T02:04:00.015-02:00</published><updated>2011-04-04T18:13:23.232-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><category scheme="http://www.blogger.com/atom/ns#" term="MVP"/><title type='text'>Desenvolvimento GWT usando MVP com Activities e Places</title><summary type="text">
Esta semana, foi anunciado o esperadíssimo lançamento do GWT 2.1. Neste release, o GWT finalmente incluiu um framework MVP baseado nas best practices recomendadas no Google I/O 2009.


Este post é a tradução que fiz para a documentação deste novo framework. Particularmente achei a documentação pouco didática e relaxada com os novos usuários. 


Para os usuários já acostumados com o estilo GWT de</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/2519898672640906745/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/10/desenvolvimento-gwt-usando-mvp-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2519898672640906745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2519898672640906745'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/10/desenvolvimento-gwt-usando-mvp-com.html' title='Desenvolvimento GWT usando MVP com Activities e Places'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-5986384195765002919</id><published>2010-08-04T06:24:00.004-03:00</published><updated>2010-10-31T03:06:59.914-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GWT"/><category scheme="http://www.blogger.com/atom/ns#" term="MVP"/><title type='text'>Fontes dos Artigos sobre GWT publicados na MundoJ 40 e 41</title><summary type="text">
Pra galera que leu e gostou dos artigos, segue repositório onde coloquei o código da aplicação de exemplo.

http://code.google.com/p/gwt-mundoj/

Cada commit corresponde a um conceito que foi desenvolvido nos artigos, então é possível acompanhar o artigo baixando sequencialmente cada revisão do repositório, à medida que avançar na leitura da revista.

Espero que possa ser útil a quem desejar </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/5986384195765002919/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/08/fontes-dos-artigos-sobre-gwt-publicados.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5986384195765002919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5986384195765002919'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/08/fontes-dos-artigos-sobre-gwt-publicados.html' title='Fontes dos Artigos sobre GWT publicados na MundoJ 40 e 41'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-5533924174033108553</id><published>2010-07-28T03:29:00.002-03:00</published><updated>2010-07-28T03:39:10.408-03:00</updated><title type='text'>Quase 6 meses sem tempo para postar</title><summary type="text">Well, well, quase 6 meses sem postar nada... De fevereiro pra cá muitas coisas aconteceram:

Estudo incansável de GWT em fevereiro/março
Servidor Dedicado Expresso na Locaweb foi descontinuado - gastei o mês de março inteiro configurando um novo servidor cloud - o tempo foi maior pois aproveitei a oportunidade para gravar os vídeos da configuração do servidor linux, usando o VMWare. Valeu à pena,</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/5533924174033108553/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/07/quase-6-meses-sem-tempo-para-postar.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5533924174033108553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5533924174033108553'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/07/quase-6-meses-sem-tempo-para-postar.html' title='Quase 6 meses sem tempo para postar'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-3410546207405067717</id><published>2010-02-15T15:13:00.004-02:00</published><updated>2010-02-15T16:30:41.335-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Applets"/><category scheme="http://www.blogger.com/atom/ns#" term="Java Web Start"/><category scheme="http://www.blogger.com/atom/ns#" term="MVP"/><category scheme="http://www.blogger.com/atom/ns#" term="Swing"/><title type='text'>Classicismo Tecnológico</title><summary type="text">Em Arte, o Classicismo refere-se, geralmente, à valorização da Antiguidade Clássica como padrão por excelência (...), que os classicistas pretendem imitar.


Até 2 semanas atrás, estava estudando / exercitando GWT 2.0 em um módulo de uma aplicação web que desenvolvo.


Naquele momento, o cliente fez uma solicitação que demandaria processamento local, algo como o usuário selecionar arquivos em sua</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/3410546207405067717/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/02/classicismo-tecnologico.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3410546207405067717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3410546207405067717'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/02/classicismo-tecnologico.html' title='Classicismo Tecnológico'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-5768225123567189212</id><published>2010-01-08T11:44:00.006-02:00</published><updated>2010-11-01T00:07:57.146-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="JPA"/><title type='text'>Aplicação de Exemplo usando Hibernate/JPA e DAOs Genéricos</title><summary type="text">Desafio DF-JUG
Este post foi escrito com o objetivo de responder ao desafio proposto pelo colega Roberto Messa no DFJUG em 07/01/2010. A solução proposta pelo Messa era baseada em JDBC puro, usando DAOs que encapsulavam comandos SQL. Seria interessante se aproveitássemos o desafio para fazer um estudo comparativo entre várias tecnologias, mostrando como cada uma delas soluciona o problema.

</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/5768225123567189212/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2010/01/aplicacao-de-exemplo-usando.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5768225123567189212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/5768225123567189212'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2010/01/aplicacao-de-exemplo-usando.html' title='Aplicação de Exemplo usando Hibernate/JPA e DAOs Genéricos'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-3037084414753552110</id><published>2009-12-22T19:59:00.000-02:00</published><updated>2009-12-22T19:59:41.267-02:00</updated><title type='text'>Skoob - A rede social de leitores do Brasil</title><summary type="text">
Esta mensagem que não é exatamente sobre desenvolvimeto de software, mas achei genial a idéia da aplicação Skoob: vc monta sua estante virtual, e avalia os livros que vc já leu. É uma ferramenta interessante, que pode ajudar a fazer boas compras, baseado na opinião de outras pessoas que já leram livros de seu interesse.

Quem se cadastrar essa semana tb está concorrendo a livros:&amp;nbsp;http://</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/3037084414753552110/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/skoob-rede-social-de-leitores-do-brasil.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3037084414753552110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/3037084414753552110'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/skoob-rede-social-de-leitores-do-brasil.html' title='Skoob - A rede social de leitores do Brasil'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-6066822564667623150</id><published>2009-12-16T03:50:00.000-02:00</published><updated>2009-12-16T03:51:38.174-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="MVP"/><title type='text'>MVC x MVP: Resumo</title><summary type="text">No artigo Considerações Históricas sobre o padrão MVC, tradução de &quot;MVC (Model View Controller) Design Pattern&quot;, você encontra uma série de 4 posts explicando as origens do MVC e suas variações, mostrando também como as interações entre Modelo, View e Controller são reorganizadas dando origem ao padrão MVP. Em resumo:

O MVC surgiu no início dos anos 80 e inspirou muitas frameworks na época. Cada</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/6066822564667623150/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/mvc-x-mvp-resumo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6066822564667623150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/6066822564667623150'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/mvc-x-mvp-resumo.html' title='MVC x MVP: Resumo'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-2543486516908073631</id><published>2009-12-15T14:02:00.004-02:00</published><updated>2010-11-01T00:07:38.100-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JPA"/><title type='text'>Seu objeto está na sessão? Entenda o conceito Attached e Dettached Objects!</title><summary type="text">Esta manhã respondi no RioJUG uma dúvida sobre JPA que achei interessante registrar aqui no blog:

Em JPA, é interessante jogar uma luz sobre um importante conceito:&amp;nbsp;attached/dettached objects. Quando um objeto persistente participa de uma sessão que ainda está ativa, ele&amp;nbsp;se encontra no estado &quot;attached&quot;. Depois que a sessão é encerrada (session.close() ou entitymanager.close()), o </summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/2543486516908073631/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/seu-objeto-esta-na-sessao-entenda-o.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2543486516908073631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/2543486516908073631'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/seu-objeto-esta-na-sessao-entenda-o.html' title='Seu objeto está na sessão? Entenda o conceito Attached e Dettached Objects!'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4330775950621707152.post-817647404438310758</id><published>2009-12-15T01:46:00.009-02:00</published><updated>2009-12-15T19:46:05.651-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="MVP"/><title type='text'>Padrão MVP para Aplicações Web Cliente-Servidor</title><summary type="text">Este post é o quarto e último de uma série de traduções de artigos do blog 
Design Codes, 
que falam um pouco sobre a evolução do padrão MVC desde o final dos anos 70, até chegar aos dias de hoje, momento em que uma de suas variações - 
o MVP - está se popularizando, tendo inclusive sido citado como uma best practice no Google I/O 2009 para o desenvolvimento de aplicações GWT.




Clique Aqui


</summary><link rel='replies' type='application/atom+xml' href='http://fabiolnm.blogspot.com/feeds/817647404438310758/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/padrao-mvp-para-aplicacoes-web-cliente.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/817647404438310758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4330775950621707152/posts/default/817647404438310758'/><link rel='alternate' type='text/html' href='http://fabiolnm.blogspot.com/2009/12/padrao-mvp-para-aplicacoes-web-cliente.html' title='Padrão MVP para Aplicações Web Cliente-Servidor'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpouaB9WppF6MUPDe6H_Vf_ZnntLQmvkLGI54WMgiEG8spaxPtcVLJutBuu1KpIEXXkiutuf1mLpViLoA5uknXkuVDiEMvm_ktqiWfEQ335UHNaIeXXUsgxx-wQb4Ra3DCtGTrkkDpCto/s72-c/01.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>