<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DE8GRHs5cCp7ImA9WhRUGUs.&quot;"><id>tag:blogger.com,1999:blog-4330775950621707152</id><updated>2012-01-30T21:40:25.528-02:00</updated><category term="Python" /><category term="Heroku" /><category term="JPA" /><category term="GWT" /><category term="MVC" /><category term="Annotations" /><category term="Spring Framework" /><category term="Applets" /><category term="Rails" /><category term="MVP" /><category term="GPE" /><category term="Java" /><category term="Chromium" /><category term="Swing" /><category term="GitHub" /><category term="JavaDB" /><category term="GIT" /><category term="Google Plugin for Eclipse" /><category term="Ruby" /><category term="Injeção de Dependências" /><category term="Django" /><category term="Maven" /><category term="Java Web Start" /><category term="Eclipse" /><category term="Derby" /><category term="JMS" /><category term="Teste Unitário" /><category term="Design Patterns" /><category term="Guice" /><title>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="alternate" type="text/html" href="http://fabiolnm.blogspot.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&amp;v=2" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/mindshare" /><feedburner:info uri="blogspot/mindshare" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUEARns9eSp7ImA9WhRSFEg.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T12:27:27.561-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Heroku" /><category scheme="http://www.blogger.com/atom/ns#" term="Django" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Deploy de aplicações Rails e Django no Heroku</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/1621581175452686605?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/XnlKeQ-OISE/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-sjsLLpmK6d4/TsADEUDzd-I/AAAAAAAAAAg/cnQUSvPePhM/s72-c/heroku-rails.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LaOZrArmtGE2j7Sqo1fKiwRISK8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LaOZrArmtGE2j7Sqo1fKiwRISK8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LaOZrArmtGE2j7Sqo1fKiwRISK8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LaOZrArmtGE2j7Sqo1fKiwRISK8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/XnlKeQ-OISE" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/deploy-de-aplicacoes-rails-e-django-no.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBRH84eip7ImA9WhRSFEs.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T16:35:55.132-02:00</app:edited><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="Django" /><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="GIT" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Colaboração em projetos Rails e Django usando o Github</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/3718381037052729162?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/gN-fnU1wMTI/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">
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.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jjlhYbIhCMmrLsgrzUs44GS9t3U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjlhYbIhCMmrLsgrzUs44GS9t3U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jjlhYbIhCMmrLsgrzUs44GS9t3U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjlhYbIhCMmrLsgrzUs44GS9t3U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/gN-fnU1wMTI" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/colaboracao-em-projetos-rails-e-django.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMAQ3k6cSp7ImA9WhRTGE0.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T00:57:22.719-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Django" /><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Gerenciamento de Dependências com Bundler e PIP</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6315395412698072703?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/Pig6oIsv9qM/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/g8ogPZ5pHPR0CXOlf1aJAaG2KgU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g8ogPZ5pHPR0CXOlf1aJAaG2KgU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/g8ogPZ5pHPR0CXOlf1aJAaG2KgU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g8ogPZ5pHPR0CXOlf1aJAaG2KgU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/Pig6oIsv9qM" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/gerenciamento-de-dependencias-com.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GQXY5fip7ImA9WhRTFk4.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T01:52:00.826-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Django" /><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>Começando aplicações Rails versus Django</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/7400110478671122085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/-kKxCQaUIHc/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oRl8YVZzwnK2g6fjmeG-vK0Vycs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oRl8YVZzwnK2g6fjmeG-vK0Vycs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oRl8YVZzwnK2g6fjmeG-vK0Vycs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oRl8YVZzwnK2g6fjmeG-vK0Vycs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/-kKxCQaUIHc" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/comecando-aplicacoes-em-rails-e-django.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04GRXs5eCp7ImA9WhRXE08.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T19:25:24.520-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Django" /><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>RVM e VirtualEnv</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/9150510731295867271?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/LEEjX3zUU2w/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NTbLy8lDn02t2eiC3K7FaK1mI8Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NTbLy8lDn02t2eiC3K7FaK1mI8Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NTbLy8lDn02t2eiC3K7FaK1mI8Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NTbLy8lDn02t2eiC3K7FaK1mI8Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/LEEjX3zUU2w" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/rvm-e-virtualenv.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUEQ3cyfip7ImA9WhRTFUw.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-05T16:36:42.996-02:00</app:edited><title>Carreira Poliglota</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6334080302240792323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/ADYF9EYfPdQ/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="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">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, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W0HUxK7Xh-xtm9g6NB1LBNAMHyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W0HUxK7Xh-xtm9g6NB1LBNAMHyk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W0HUxK7Xh-xtm9g6NB1LBNAMHyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W0HUxK7Xh-xtm9g6NB1LBNAMHyk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/ADYF9EYfPdQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/11/carreira-poliglota.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEANR305eSp7ImA9WhZXEE4.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T21:26:36.321-03:00</app:edited><title>Primeiros passos com Objective-C e iOS Development</title><link rel="related" href="http://fabiolnm.blogspot.com/2011/04/primeiros-passos-objc-ios-dev.html" title="Primeiros passos com Objective-C e iOS Development" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/2021817669105063739?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/Lb25z7ip1oo/primeiros-passos-com-objective-c-e-ios.html" title="Primeiros passos com Objective-C e iOS Development" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">[Update: excelente material sobre ObjectiveC: 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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WEgjMcvDWPFwXXOjB86RK9nkPZU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WEgjMcvDWPFwXXOjB86RK9nkPZU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WEgjMcvDWPFwXXOjB86RK9nkPZU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WEgjMcvDWPFwXXOjB86RK9nkPZU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/Lb25z7ip1oo" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/04/primeiros-passos-com-objective-c-e-ios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYGRH0-eCp7ImA9WhRSEU4.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-12T19:08:45.350-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Spring Framework" /><title>Agendamento de tarefas com o Spring 3</title><link rel="related" href="http://fabiolnm.blogspot.com/2011/04/agendamento-tarefas-spring3.html" title="Agendamento de tarefas com o Spring 3" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/3542797225243536064?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/kCCvo76ns6g/agendamento-de-tarefas-com-o-spring-3.html" title="Agendamento de tarefas com o Spring 3" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><content type="html">Com relativa freqüência, nos deparamos com a necessidade de agendar tarefas:

De tempos em tempos, 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 anotar 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Km8wAFO4PHdEPR1jj0R9vdf3QYU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Km8wAFO4PHdEPR1jj0R9vdf3QYU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Km8wAFO4PHdEPR1jj0R9vdf3QYU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Km8wAFO4PHdEPR1jj0R9vdf3QYU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/kCCvo76ns6g" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/04/agendamento-de-tarefas-com-o-spring-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYARXo_eip7ImA9WhRSEU4.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-12T19:09:04.442-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><title>GWT: A longa estrada</title><link rel="related" href="http://fabiolnm.blogspot.com/2011/03/gwt-longa-estrada.html" title="GWT: A longa estrada" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/1177036079626943223?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/vKfncsx2ovQ/gwt-longa-estrada.html" title="GWT: A longa estrada" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><content type="html">Em dezembro de 2009, decidi aprender GWT. Na época, estava interessado nas possibilidades desta escolha: 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 sido 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MSCNKSV1ApCaFGcsDV04L0jn-4g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MSCNKSV1ApCaFGcsDV04L0jn-4g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MSCNKSV1ApCaFGcsDV04L0jn-4g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MSCNKSV1ApCaFGcsDV04L0jn-4g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/vKfncsx2ovQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/03/gwt-longa-estrada.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYARXo_eyp7ImA9WhRSEU4.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-12T19:09:04.443-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><title>Sudoku Solver</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/2368703614024890936?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/iAcXAnBTAIA/sudoku-solver_28.html" title="Sudoku Solver" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><content type="html">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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BPh3BpFDZqSnEDBI7zpWZ6u_gy4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BPh3BpFDZqSnEDBI7zpWZ6u_gy4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BPh3BpFDZqSnEDBI7zpWZ6u_gy4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BPh3BpFDZqSnEDBI7zpWZ6u_gy4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/iAcXAnBTAIA" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/02/sudoku-solver_28.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEGQ38zfSp7ImA9WhZSGUk.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-04T16:50:22.185-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JMS" /><category scheme="http://www.blogger.com/atom/ns#" term="Spring Framework" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><title>Gerenciamento de Dependências com Maven - Parte 2</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/1440439025215467188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/-phuFfFRE60/jms-com-activemq-spring-e-maven.html" title="Gerenciamento de Dependências com Maven - Parte 2" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6Wgn2ywEIKI/TSo9iAJrpCI/AAAAAAAAATU/64xIoazXTfs/s72-c/spring-context.PNG" height="72" width="72" /><thr:total>0</thr:total><content type="html">
Neste post, será mostrada a view "Maven Repositories" 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. Durante os exercícios são sugeridas algumas dicas para 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lIPiE9ok16eiPDM9EtKTnBZ-0GM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lIPiE9ok16eiPDM9EtKTnBZ-0GM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lIPiE9ok16eiPDM9EtKTnBZ-0GM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lIPiE9ok16eiPDM9EtKTnBZ-0GM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/-phuFfFRE60" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2011/01/jms-com-activemq-spring-e-maven.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4AQXw-eSp7ImA9Wx9XGEs.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-12T18:25:40.251-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><title>Hands-on: Dependency Management com Maven - Parte 1</title><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="3 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6147628446754415836?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6147628446754415836?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/Rgekw9V1yO8/hands-on-dependency-management-com.html" title="Hands-on: Dependency Management com Maven - Parte 1" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6Wgn2ywEIKI/TQz3b99oshI/AAAAAAAAARM/5iIVM9V5bxY/s72-c/01.1%2B-%2BInstall%2BNew%2BSoftware.png" height="72" width="72" /><thr:total>3</thr:total><content type="html">"E disse: Maven, a vida é pra valer..."

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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L_H0hvJZ_dLIPR4qoZHMxwmwZ5U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_H0hvJZ_dLIPR4qoZHMxwmwZ5U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L_H0hvJZ_dLIPR4qoZHMxwmwZ5U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_H0hvJZ_dLIPR4qoZHMxwmwZ5U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/Rgekw9V1yO8" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/12/hands-on-dependency-management-com.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUACQ3Y7eSp7ImA9Wx9TEko.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-20T16:29:22.801-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><title>Familiarização com a API RequestFactory do GWT 2.1</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6576471523333097865?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/anMFaJohJwQ/familiarizacao-com-api-requestfactory.html" title="Familiarização com a API RequestFactory do GWT 2.1" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><content type="html">
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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/inK_R1OR3nWQThG1mVspj6NCFNk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/inK_R1OR3nWQThG1mVspj6NCFNk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/inK_R1OR3nWQThG1mVspj6NCFNk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/inK_R1OR3nWQThG1mVspj6NCFNk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/anMFaJohJwQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/11/familiarizacao-com-api-requestfactory.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EEQnw4eip7ImA9WhZSGUg.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-04T18:13:23.232-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><title>Desenvolvimento GWT usando MVP com Activities e Places</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/2519898672640906745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/kPqm0by5EEM/desenvolvimento-gwt-usando-mvp-com.html" title="Desenvolvimento GWT usando MVP com Activities e Places" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">
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
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HGF6u6kTJCCKIjt_WAdkAGZIQ6M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HGF6u6kTJCCKIjt_WAdkAGZIQ6M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HGF6u6kTJCCKIjt_WAdkAGZIQ6M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HGF6u6kTJCCKIjt_WAdkAGZIQ6M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/kPqm0by5EEM" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/10/desenvolvimento-gwt-usando-mvp-com.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EFSHc6fCp7ImA9Wx5bFU0.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-31T03:06:59.914-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><title>Fontes dos Artigos sobre GWT publicados na MundoJ 40 e 41</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/5986384195765002919?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/AW5p9MVaHEU/fontes-dos-artigos-sobre-gwt-publicados.html" title="Fontes dos Artigos sobre GWT publicados na MundoJ 40 e 41" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">
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 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YwAJZMM5ZDCig-DFrsyrtS5QqI4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YwAJZMM5ZDCig-DFrsyrtS5QqI4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YwAJZMM5ZDCig-DFrsyrtS5QqI4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YwAJZMM5ZDCig-DFrsyrtS5QqI4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/AW5p9MVaHEU" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/08/fontes-dos-artigos-sobre-gwt-publicados.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YBQXo7cCp7ImA9Wx5TEkQ.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T03:39:10.408-03:00</app:edited><title>Quase 6 meses sem tempo para postar</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/5533924174033108553?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/q3pzMinltco/quase-6-meses-sem-tempo-para-postar.html" title="Quase 6 meses sem tempo para postar" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><content type="html">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,
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4moNXdwZ5sj3-xbNI-WKoJ_DsG4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4moNXdwZ5sj3-xbNI-WKoJ_DsG4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4moNXdwZ5sj3-xbNI-WKoJ_DsG4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4moNXdwZ5sj3-xbNI-WKoJ_DsG4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/q3pzMinltco" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/07/quase-6-meses-sem-tempo-para-postar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEAQH04fSp7ImA9WxBVEkg.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-15T16:30:41.335-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Swing" /><category scheme="http://www.blogger.com/atom/ns#" term="Java Web Start" /><category scheme="http://www.blogger.com/atom/ns#" term="Applets" /><title>Classicismo Tecnológico</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/3410546207405067717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/Pi9_t4eRFHM/classicismo-tecnologico.html" title="Classicismo Tecnológico" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><content type="html">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
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/11KYJovHh4P8rD_eIFnYocR-8uk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/11KYJovHh4P8rD_eIFnYocR-8uk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/11KYJovHh4P8rD_eIFnYocR-8uk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/11KYJovHh4P8rD_eIFnYocR-8uk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/Pi9_t4eRFHM" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/02/classicismo-tecnologico.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUDRn8_fip7ImA9Wx5bFUo.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-01T00:07:57.146-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><title>Aplicação de Exemplo usando Hibernate/JPA e DAOs Genéricos</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/5768225123567189212?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/byamKpzHyjQ/aplicacao-de-exemplo-usando.html" title="Aplicação de Exemplo usando Hibernate/JPA e DAOs Genéricos" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><content type="html">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.


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wId8cUCAPgfT3C5z6GmtJTVS3QI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wId8cUCAPgfT3C5z6GmtJTVS3QI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wId8cUCAPgfT3C5z6GmtJTVS3QI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wId8cUCAPgfT3C5z6GmtJTVS3QI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/byamKpzHyjQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2010/01/aplicacao-de-exemplo-usando.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMQHw9fyp7ImA9WxBSFUw.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-22T19:59:41.267-02:00</app:edited><title>Skoob - A rede social de leitores do Brasil</title><link rel="related" href="http://www.skoob.com.br/promocao/codigo/119777" title="Skoob - A rede social de leitores do Brasil" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/3037084414753552110?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/sYnk9JuBzXU/skoob-rede-social-de-leitores-do-brasil.html" title="Skoob - A rede social de leitores do Brasil" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">
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: http://
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vpt_JY6By90XD5w-MdbYo5Jgp40/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vpt_JY6By90XD5w-MdbYo5Jgp40/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vpt_JY6By90XD5w-MdbYo5Jgp40/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vpt_JY6By90XD5w-MdbYo5Jgp40/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/sYnk9JuBzXU" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/skoob-rede-social-de-leitores-do-brasil.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEENSX88fCp7ImA9WxBTGUk.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-16T03:51:38.174-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>MVC x MVP: Resumo</title><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/6066822564667623150?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/Y_FQraSrRXw/mvc-x-mvp-resumo.html" title="MVC x MVP: Resumo" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><thr:total>0</thr:total><content type="html">No artigo Considerações Históricas sobre o padrão MVC, tradução de "MVC (Model View Controller) Design Pattern", 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
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SfnMfhfmB_H666YVfAAT_JGoY-w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SfnMfhfmB_H666YVfAAT_JGoY-w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SfnMfhfmB_H666YVfAAT_JGoY-w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SfnMfhfmB_H666YVfAAT_JGoY-w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/Y_FQraSrRXw" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/mvc-x-mvp-resumo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBSX87eCp7ImA9Wx5bFUo.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-01T00:07:38.100-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><title>Seu objeto está na sessão? Entenda o conceito Attached e Dettached Objects!</title><link rel="related" href="http://tech.groups.yahoo.com/group/riojug/message/22881" title="Seu objeto está na sessão? Entenda o conceito Attached e Dettached Objects!" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/2543486516908073631?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/gBAvZlB9b4A/seu-objeto-esta-na-sessao-entenda-o.html" title="Seu objeto está na sessão? Entenda o conceito Attached e Dettached Objects!" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><thr:total>0</thr:total><content type="html">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: attached/dettached objects. Quando um objeto persistente participa de uma sessão que ainda está ativa, ele se encontra no estado "attached". Depois que a sessão é encerrada (session.close() ou entitymanager.close()), o objeto passa 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WIf7tBcAmkU6s9spCqMR7p2Z-cQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WIf7tBcAmkU6s9spCqMR7p2Z-cQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WIf7tBcAmkU6s9spCqMR7p2Z-cQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WIf7tBcAmkU6s9spCqMR7p2Z-cQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/gBAvZlB9b4A" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/seu-objeto-esta-na-sessao-entenda-o.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICRHg-eSp7ImA9WxBTGUw.&quot;"><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><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T19:46:05.651-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>Padrão MVP para Aplicações Web Cliente-Servidor</title><link rel="related" href="http://aviadezra.blogspot.com/2008/09/mvp-model-view-presenter-design-pattern.html" title="Padrão MVP para Aplicações Web Cliente-Servidor" /><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?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/817647404438310758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/pU3Qn1gZTJI/padrao-mvp-para-aplicacoes-web-cliente.html" title="Padrão MVP para Aplicações Web Cliente-Servidor" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_l4Jl8v7FyYg/SycCoNv-pvI/AAAAAAAAAJ0/fRnwfcQiI1A/s72-c/01.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">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



&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Gg6cnRxSK55yoSY2okV_1OjgkJ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gg6cnRxSK55yoSY2okV_1OjgkJ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Gg6cnRxSK55yoSY2okV_1OjgkJ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gg6cnRxSK55yoSY2okV_1OjgkJ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/pU3Qn1gZTJI" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/padrao-mvp-para-aplicacoes-web-cliente.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IFRnYzeyp7ImA9WxBTGEg.&quot;"><id>tag:blogger.com,1999:blog-4330775950621707152.post-1635511718858932684</id><published>2009-12-13T19:13:00.006-02:00</published><updated>2009-12-15T02:31:57.883-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T02:31:57.883-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>MVC em Aplicações Web</title><link rel="related" href="http://aviadezra.blogspot.com/2008/07/mvc-for-web-applications-and-aspnet.html" title="MVC em Aplicações Web" /><link rel="replies" type="application/atom+xml" href="http://fabiolnm.blogspot.com/feeds/1635511718858932684/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://fabiolnm.blogspot.com/2009/12/mvc-em-aplicacoes-web.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/1635511718858932684?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/1635511718858932684?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/mBm9w4x3Vos/mvc-em-aplicacoes-web.html" title="MVC em Aplicações Web" /><author><name>Fábio Miranda</name><uri>http://www.blogger.com/profile/10000260194961110292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6Wgn2ywEIKI/SyVYNi6I9lI/AAAAAAAAALw/Mxor9vUiEFs/s72-c/00.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">Este post é o terceiro 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


Clique Aqui

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sKL6jF0qA8Vg3ScN2jWcnp-mODM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sKL6jF0qA8Vg3ScN2jWcnp-mODM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sKL6jF0qA8Vg3ScN2jWcnp-mODM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sKL6jF0qA8Vg3ScN2jWcnp-mODM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/mBm9w4x3Vos" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/mvc-em-aplicacoes-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDSXg7fSp7ImA9WxBTGEg.&quot;"><id>tag:blogger.com,1999:blog-4330775950621707152.post-514833239413231831</id><published>2009-12-13T15:48:00.010-02:00</published><updated>2009-12-15T04:24:38.605-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T04:24:38.605-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>Do MVC para o MVP (Model-View-Presenter)</title><link rel="related" href="http://aviadezra.blogspot.com/2007/07/twisting-mvp-triad-say-hello-to-mvpc.html" title="Do MVC para o MVP (Model-View-Presenter)" /><link rel="replies" type="application/atom+xml" href="http://fabiolnm.blogspot.com/feeds/514833239413231831/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://fabiolnm.blogspot.com/2009/12/do-mvc-para-o-mvp-model-view-presenter.html#comment-form" title="3 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/514833239413231831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/514833239413231831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/_HzsoiBY-UU/do-mvc-para-o-mvp-model-view-presenter.html" title="Do MVC para o MVP (Model-View-Presenter)" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_l4Jl8v7FyYg/SyUj1Uc31WI/AAAAAAAAAIs/KuzUKXWwnrc/s72-c/01.png" height="72" width="72" /><thr:total>3</thr:total><content type="html">Este post é o segundo 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


Clique Aqui


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yOyLL4-aT6OnRxa1rZtSmeOTAj4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yOyLL4-aT6OnRxa1rZtSmeOTAj4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yOyLL4-aT6OnRxa1rZtSmeOTAj4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yOyLL4-aT6OnRxa1rZtSmeOTAj4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/_HzsoiBY-UU" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/do-mvc-para-o-mvp-model-view-presenter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYNQHw8eip7ImA9WxBTGEg.&quot;"><id>tag:blogger.com,1999:blog-4330775950621707152.post-8981844636588032064</id><published>2009-12-12T01:42:00.010-02:00</published><updated>2009-12-15T04:23:11.272-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T04:23:11.272-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GWT" /><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="MVP" /><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>Considerações Históricas sobre o Padrão MVC</title><link rel="related" href="http://aviadezra.blogspot.com/2008/06/mvc-model-view-controller-design.html" title="Considerações Históricas sobre o Padrão MVC" /><link rel="replies" type="application/atom+xml" href="http://fabiolnm.blogspot.com/feeds/8981844636588032064/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://fabiolnm.blogspot.com/2009/12/consideracoes-historicas-sobre-o-padrao.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/8981844636588032064?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4330775950621707152/posts/default/8981844636588032064?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/mindshare/~3/dFLAVB2_df4/consideracoes-historicas-sobre-o-padrao.html" title="Considerações Históricas sobre o Padrão MVC" /><author><name>Fábio Miranda</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_l4Jl8v7FyYg/SwXddq5sMkI/AAAAAAAAABQ/4x92ir_cuuU/S220/001.PNG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_l4Jl8v7FyYg/SyKp6J20F8I/AAAAAAAAAHE/-7nBcLhBVkc/s72-c/01.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">Este post é o primeiro 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

A História do Padrão MVC (
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3C5ahmODs2u9z-R7CSks4a8o0kc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3C5ahmODs2u9z-R7CSks4a8o0kc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3C5ahmODs2u9z-R7CSks4a8o0kc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3C5ahmODs2u9z-R7CSks4a8o0kc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/mindshare/~4/dFLAVB2_df4" height="1" width="1"/&gt;</content><feedburner:origLink>http://fabiolnm.blogspot.com/2009/12/consideracoes-historicas-sobre-o-padrao.html</feedburner:origLink></entry></feed>

