<?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-27526925</id><updated>2024-09-19T11:32:24.280-03:00</updated><category term="java"/><category term="tecnologia"/><category term="Caelum"/><category term="android"/><category term="aprendizado"/><category term="dicas"/><category term="evento"/><category term="ibiúna"/><category term="javaEE"/><category term="programação"/><category term="Android DevConference Brazil"/><category term="Bonecas"/><category term="JavaFX"/><category term="MDA"/><category term="Marina Bambina"/><category term="OS"/><category term="RIA"/><category term="Reborns"/><category term="agiles"/><category term="atualidade"/><category term="bpm"/><category term="cidadania"/><category term="concurso"/><category term="conexão java"/><category term="construção"/><category term="contrutora"/><category term="desafio"/><category term="design"/><category term="feed"/><category term="ferramenta"/><category term="filter"/><category term="imasters"/><category term="ireport"/><category term="jboss"/><category term="kfbc"/><category term="linux"/><category term="material"/><category term="maven"/><category term="meio ambiente"/><category term="mobile"/><category term="neologismos"/><category term="nextsourcing telecom empresa"/><category term="open source"/><category term="outsourcing"/><category term="pesqueiro"/><category term="política"/><category term="projeto"/><category term="rally"/><category term="script"/><category term="servlet"/><category term="sistema"/><category term="sites"/><category term="software"/><category term="software livre"/><category term="termos de internet"/><category term="web"/><title type='text'>design&amp;amp;tech ( 2.0) by caparelli</title><subtitle type='html'>Blog profissional e de discussão sobre o programação web, java, design e algo mais.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27526925.post-6540730747006638566</id><published>2015-09-02T17:23:00.001-03:00</published><updated>2015-09-02T17:23:41.233-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android DevConference Brazil"/><category scheme="http://www.blogger.com/atom/ns#" term="evento"/><category scheme="http://www.blogger.com/atom/ns#" term="imasters"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="tecnologia"/><title type='text'>Android DevConference 2015 - Links das Apresentações</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-WlbaaA4GS2PLGClxziYS3ePt0lk2itJPOQxKOdwsKfIXdlgXhB_Sja9Mt1NBZP2H9YHY0VZqr2TnQKUYmjCc8CMM8hM-z6uNAxORDn2vh-V7z4aDDSKWzB3FAgWzp7V9GntbmQ/s1600/android_devconf_2015.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-WlbaaA4GS2PLGClxziYS3ePt0lk2itJPOQxKOdwsKfIXdlgXhB_Sja9Mt1NBZP2H9YHY0VZqr2TnQKUYmjCc8CMM8hM-z6uNAxORDn2vh-V7z4aDDSKWzB3FAgWzp7V9GntbmQ/s400/android_devconf_2015.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
No último sábado (29/08) aconteceu o evento &lt;b&gt;&lt;a href=&quot;http://androidconference.imasters.com.br/&quot;&gt;Android DevConference&amp;nbsp;2015&lt;/a&gt;&lt;/b&gt;, realizado pelo &lt;b&gt;&lt;a href=&quot;http://imasters.com.br/&quot;&gt;IMasters&lt;/a&gt; &lt;/b&gt;com curadoria do &lt;a href=&quot;https://plus.google.com/+UbiratanSoares&quot;&gt;Ubiratan Soares&lt;/a&gt; do &lt;a href=&quot;https://developers.google.com/groups/chapter/102774871279745079139/&quot;&gt;&lt;b&gt;Google Developers Group São Paulo (GDG)&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Só para facilitar aos amigos que gostam de desenvolvimento Android, segue a lista com todas (ou quase todas) as apresentações do evento:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UX Mobile Micro Momentos (José Papo - Google)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://pt.slideshare.net/jpapo/ux-mobile-micro-momentos&quot;&gt;http://pt.slideshare.net/jpapo/ux-mobile-micro-momentos&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;From This To That – A deep dive into the TransitionManager and Activity Transitions (Lucas Lima – We Heart It)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/luciofm/AndroidDevConf2015&quot;&gt;https://github.com/luciofm/AndroidDevConf2015&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android Libs - (Nelson Glauber Leal – C.E.S.A.R)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.slideshare.net/nglauber/android-libs-androiddevconf&quot;&gt;http://www.slideshare.net/nglauber/android-libs-androiddevconf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Support Library v23 + &amp;nbsp;Design Support Library - Material Design consistente entre diferentes versões do Android (Walmyr Carvalho – CI&amp;amp;T)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/walmyrcarvalho/support-library-v23-plus-design-support-library-material-design-consistente-entre-diferentes-versoes-do-android&quot;&gt;https://speakerdeck.com/walmyrcarvalho/support-library-v23-plus-design-support-library-material-design-consistente-entre-diferentes-versoes-do-android&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Caminhos para uma Arquitetura Limpa e Testável no Android (Rafael Toledo – Concrete Solutions)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/rafaeltoledo/caminhos-para-uma-arquitetura-limpa-e-testavel-no-android&quot;&gt;https://speakerdeck.com/rafaeltoledo/caminhos-para-uma-arquitetura-limpa-e-testavel-no-android&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Kotlin: O Despertar da Força (Mickele Moriconi / Ademar Alvez – PorqueNão)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/mickele/kotlin-o-despertar-da-forca&quot;&gt;https://speakerdeck.com/mickele/kotlin-o-despertar-da-forca&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;RxJava (Douglas Drummond – Mobile)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/douglasdrumond/rxjava&quot;&gt;https://speakerdeck.com/douglasdrumond/rxjava&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Injeção de Dependência com Dagger (Felipe Lima - AirBnB)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/felipecsl/injecao-de-dependencia-com-dagger&quot;&gt;https://speakerdeck.com/felipecsl/injecao-de-dependencia-com-dagger&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Utilizando Espresso e UIAutomator no Teste de Apps Android &amp;nbsp;(Eduardo Carrara de Araujo - Intel)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.slideshare.net/EduardodeAraujo2/utilizando-espresso-e-uiautomator-no-teste-de-apps-android&quot;&gt;http://www.slideshare.net/EduardodeAraujo2/utilizando-espresso-e-uiautomator-no-teste-de-apps-android&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android Test Automation Workshop &amp;nbsp;(Eduardo Carrara de Araujo - Intel)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.slideshare.net/EduardodeAraujo2/android-test-automation-workshop&quot;&gt;http://www.slideshare.net/EduardodeAraujo2/android-test-automation-workshop&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android Security 101 - Uma introdução a construção de aplicações seguras no Android (Bruno Oliveira - Red Hat)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://quantum.abstractj.org/talks/2015/AndroidDevConf/index.html&quot;&gt;http://quantum.abstractj.org/talks/2015/AndroidDevConf/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android Marshmallow - O que muda para o desenvolvedor (Ubiratan Soares - Global Code)&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;https://speakerdeck.com/ubiratansoares/android-marshmallow-o-que-muda-para-o-desenvolvedor&quot;&gt;https://speakerdeck.com/ubiratansoares/android-marshmallow-o-que-muda-para-o-desenvolvedor&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/6540730747006638566/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/6540730747006638566' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6540730747006638566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6540730747006638566'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2015/09/android-devconference-2015-links-das.html' title='Android DevConference 2015 - Links das Apresentações'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEg-WlbaaA4GS2PLGClxziYS3ePt0lk2itJPOQxKOdwsKfIXdlgXhB_Sja9Mt1NBZP2H9YHY0VZqr2TnQKUYmjCc8CMM8hM-z6uNAxORDn2vh-V7z4aDDSKWzB3FAgWzp7V9GntbmQ/s72-c/android_devconf_2015.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-8484853360926307614</id><published>2012-05-11T17:37:00.002-03:00</published><updated>2012-06-13T12:02:46.904-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="Caelum"/><category scheme="http://www.blogger.com/atom/ns#" term="conexão java"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Conexão Java 2012</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikKA45AJVdeEHr4fiXGwtmgb85bcTg_IldIS297-_a-a063Ltga2F2pe8Dt-pwDcB8j844e0NCPxOZB_Mvqr5UPN1o9UXyti5zhu2_t0mBnnntA7nOooXE6lowS4Xr1xds_AmjNg/s1600/conexao-java-bd124afa48bb8d709d7af98dfc1b6094.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikKA45AJVdeEHr4fiXGwtmgb85bcTg_IldIS297-_a-a063Ltga2F2pe8Dt-pwDcB8j844e0NCPxOZB_Mvqr5UPN1o9UXyti5zhu2_t0mBnnntA7nOooXE6lowS4Xr1xds_AmjNg/s200/conexao-java-bd124afa48bb8d709d7af98dfc1b6094.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;b&gt;Eu vou... e você?&lt;/b&gt;&lt;br /&gt;
Essa é uma ótima oportunidade para aprendermos mais sobre as tendências do mercado de tecnologia e dessa plataforma tão poderosa: o Java. Segue abaixo o link para o site oficial.&lt;br /&gt;
&lt;a href=&quot;http://www.conexaojava.com.br/&quot;&gt;http://www.conexaojava.com.br/&lt;/a&gt;
&lt;br /&gt;
Eu fui no evento de 2010 e achei muito bom. De quebra esse ano tem Android, JPA, etc.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/8484853360926307614/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/8484853360926307614' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/8484853360926307614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/8484853360926307614'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2012/05/conexao-java-2012.html' title='Conexão Java 2012'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEikKA45AJVdeEHr4fiXGwtmgb85bcTg_IldIS297-_a-a063Ltga2F2pe8Dt-pwDcB8j844e0NCPxOZB_Mvqr5UPN1o9UXyti5zhu2_t0mBnnntA7nOooXE6lowS4Xr1xds_AmjNg/s72-c/conexao-java-bd124afa48bb8d709d7af98dfc1b6094.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-5964857320261908262</id><published>2011-06-14T11:08:00.000-03:00</published><updated>2011-06-14T11:08:49.693-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pesqueiro"/><category scheme="http://www.blogger.com/atom/ns#" term="sistema"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Direcional Software. Empresa de desenvolvimento de sistemas</title><content type='html'>Empresa de desenvolvimento de sistemas para automação comercial. Criação de  software para gerenciamento de empresas. A pioneira no segmento de sistemas para  controle de pesqueiros (ADM Fishing). Se você procura um sistema completo para gerenciamento de seu negócio vale a pena conferir o novo site da Direcional Software. &lt;a href=&quot;http://www.direcionalsoftware.com.br/&quot;&gt;http://www.direcionalsoftware.com.br&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/5964857320261908262/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/5964857320261908262' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/5964857320261908262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/5964857320261908262'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2011/06/direcional-software-empresa-de.html' title='Direcional Software. Empresa de desenvolvimento de sistemas'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-6985688114351366740</id><published>2010-12-22T16:54:00.000-02:00</published><updated>2010-12-22T16:54:14.653-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="tecnologia"/><title type='text'>Felipe VS Maven... Maven wins</title><content type='html'>Gostaria de repassar aos colegas desenvolvedores uma das minhas últimas conquistas, conseguir entender e domar o maven para o gerenciamento do build (e algunas cositas más) em meus projetos Java.&lt;br /&gt;
&lt;br /&gt;
Vou relatar um pouco das minhas opiniões (e de alguns colegas) sobre o uso do maven:&lt;br /&gt;
- Muito complexo e cheio de configurações;&lt;br /&gt;
- O que ele faz eu faço na mão, de maneira muito mais simples e ágil, fugindo de possíveis entraves da ferramenta;&lt;br /&gt;
- É preciso refazer as configurações de tempos em tempos e isso toma muito tempo nos projetos;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Bom, após muito sofrimento, horas de configurações, leitura de tutoriais, acesso a blogs, etc. e do grande auxilio e paciência de dois profissionais feras - Edgard Leite da Image e Luiz Eduardo Rodrigues do Tribunal de Contas do Paraná - consegui ver a luz no fim do túneo e o melhor, ver o quanto esta ferramenta é poderosa e útil. Quero ressaltar que qualquer um que for usar o maven deve antes entender de forma clara suas funcionalidades, as formas corretas de configuração (e para que elas servem), pois isso vai reduzir e muito retrabalhos futuros e problemas com compilação ou execução em seus projetos.&lt;br /&gt;
&lt;br /&gt;
O maven se propõe a ser uma ferramenta de build de projetos, mas afinal o que é isso? É simples e vou tentar explicar de forma prática e casual.&lt;br /&gt;
&lt;br /&gt;
Para o correto funcionamento de nossos projetos precisamos sempre ter em mente suas fases de construção ou criação, o desenrolar de seu desenvolvimento (adição ou atualização de módulos ou bibliotecas e/ou refactoring) e por fim como o mesmo será disponibilizado para o cliente (será uma biblioteca .jar, um projeto web .war, um módulo ou projeto de um ambiente maior contido em um conjunto de projetos .ear). Este último é um passo bem importante e relevante, pois irá definir como nosso projeto vai se relacionar com outros projetos ou outras bibliotecas (ou seja, suas dependências). Talvez o que tenha me atrapalhado no uso com o maven se deva ao fato de eu ter pego um projeto já configurado, com diversas dependências e particularidades que são bem difíceis de entender quando não se tem experiência com esta ferramenta.&lt;br /&gt;
&lt;br /&gt;
O build do projeto acontece então desde o princípio para validar os relacionamentos e dependências que constituem o core de nosso projeto - neste ponto é necessário saber o que realmente deverá seguir com o projeto e o que será disponibilizado pelo ambiente onde o mesmo será executado. Dessa forma se evita problemas básicos de ausência de bibliotecas ou excesso delas. Aqui vale ressaltar que o uso do IDE Eclipse com o plugin do maven muda e muito a forma do funcionamento do build dos projetos e de acordo com a configuração do ambiente de desenvolvimento pode gerar uma série de facilidades, mas também pode confundir bem a cabeça dos profissionais que sempre usaram o eclipse com ANT ou com os wizards da IDE. Sofri bastante até entender o grau de integração do Eclipse com o maven e o quanto isso poderia impactar na forma como a IDE trata os projetos controlados pela ferramenta. Aliás, configurar o Eclipse com o plugin do maven é um ponto que deve ser visto com muita atenção. Passei por algumas situações complicadas como por exemplo o plugin pegar a configuração a partir do usuário que eu usei para abrir o IDE e não o que estava definido em suas configurações nas preferencias do plugin ou de o mesmo não conseguir executar alguns comandos em um momento e depois sem motivo ele executar (mistérios da tecnologia). Porém, fora isso, ele é muito parrudo e um grande facilitador. Além disso a IDE permite configurar o xml de configuração do projeto (pom.xml) de forma visual e muito intuitiva e isso é de grande valia(apesar de algumas vezes eu preferir o modo texto).&lt;br /&gt;
&lt;br /&gt;
No meu caso haviam diversos módulos separados em projetos diferentes, com cada um deles tendo suas particularidades na construção do projeto final. Alguns eram projetos que deveriam ser disponibilizados como bibliotecas, outros como projetos web e outros eram apenas módulos de componentes dos outros projetos. Cada qual possuia suas configurações, o que no início me parecia muito confuso e gerador de conflitos, mas depois se mostrou versátil e dava aos projetos uma independência totalmente necessária. Com as configurações que estes projetos tinham era possível em um build atualizar as bibliotecas a partir de um repositório web ou local, testar todos (junit), exportar 4 deles como bibliotecas (.jar) independentes, montar os projetos web (.war) com seus módulos de core e view sendo agregados e atualizados dinamicamente e por fim gerar o .ear que continha todos os projetos web e suas depedências.&lt;br /&gt;
&lt;br /&gt;
Agora que tenho a clara visão do funcionamento do maven, o porquê de sua estrutura, a forma como o plugin se relaciona com a IDE e a forma como os módulos de projeto se relacionam vejo o quanto esta ferramenta auxilia no trabalho dos desenvolvedores e o quanto a mesma é uma revolução na forma de se construir e manter projetos Java. Deixo claro que só é possível usar maven de forma satisfatória mudando a visão de como se trabalha no desenvolvimento de projetos - é preciso quebrar este paradigma. Não disponibilizei nenhum material ou tutorial sobre o assunto, pois já existe uma imensidão de conteúdo para isso (links no final da postagem), mas este relato é para aqueles que estão na dúvida se devem ou não usar esta ferramenta ou que já usaram e passaram por maus bocados. Eu penei com a mesma por ter ido por um caminho errado. O correto é aprender bem e não ficar tentando fazer remendos ou entender mais ou menos. Eu recomendo e afirmo que bem usada ela aumentará a produtividade de forma significativa.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Sites para referência e estudos:&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://maven.apache.org/&quot;&gt;&lt;span class=&quot;f&quot;&gt;&lt;cite&gt;maven.apache.org&lt;/cite&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://docs.codehaus.org/display/MAVENUSER/The+Maven+2+tutorial&quot;&gt;Tutorial Maven&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.google.com.br/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBsQFjAA&amp;amp;url=http%3A%2F%2Fwww.topazproject.org%2Ftrac%2Fattachment%2Fwiki%2FMavenInfo%2FBetterBuildsWithMaven.pdf%3Fformat%3Draw&amp;amp;ei=AEkSTYjnIoWClAfF9ojRCw&amp;amp;usg=AFQjCNHS9F0o3wdVdqbck5ZjwkvCpLrrBA&amp;amp;sig2=U9D9zg8AOQSbqR7X6hSpBg&quot;&gt;Better Builds With Maven&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/6985688114351366740/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/6985688114351366740' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6985688114351366740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6985688114351366740'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/12/felipe-vs-maven-maven-wins.html' title='Felipe VS Maven... Maven wins'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-4870102860714862091</id><published>2010-10-23T12:50:00.001-02:00</published><updated>2010-10-23T12:51:15.814-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cidadania"/><category scheme="http://www.blogger.com/atom/ns#" term="meio ambiente"/><category scheme="http://www.blogger.com/atom/ns#" term="política"/><title type='text'>Apoio a campanha verde</title><content type='html'>Neste tempo de eleições é muito importante lembrarmos que nossas vidas, tanto no âmbito pessoal como no profissional, estão sendo regidas e controladas de forma direta por um governo, uma administração maior. É fato que muitas vezes pensamos que somos os únicos responsáveis pelo nosso crescimento ou regresso, mas se prestarmos atenção ao cenário nacional ou mesmo mundial, estamos acompanhando uma maré política que permite a nós certas regalias ou prejuízos.&lt;br /&gt;
Um outro fato importante são as questões ambientais, que tiveram muito enfoque nos últimos anos e não era pra menos, afinal, estamos sofrendo cada dia mais com os problemas causados pelo desmatamento, poluição dos rios, dos ares etc. Tudo isso implica em como devemos tocar nossas vidas, portanto, não podemos ser indiferentes. Cada um de nós é determinante para que as coisas possam mudar. Nosso comportamente diário deve refletir nossos pensamentos e a nossa posição como cidadãos do mundo deve ser cada dia mais cuidadosa.&lt;br /&gt;
Tudo isso está ligado através de uma teia (web, em inglês) - política, meio ambiente e nossas ações - na qual devemos tecer nossas próprias ligações e assim nos tornarmos parte importante e não sermos as moscas que estão grudadas nela esperando ser devoradas.&lt;br /&gt;
Enfim, quando chegar o segundo turno das eleições, não esqueça que você será um dos autores das estórias que verá estampada nos jornais dos próximos 4 anos. Será que o tema será corrupção, assassinatos, impostos absurdos, aumento dos problemas ambientais ou será que você consegue escrever algo diferente? Será que você, eu, nós realmente nos importamos?&lt;br /&gt;
&lt;br /&gt;
Vamos fazer nossa pequena parte para acabar com o incêndio na floresta.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/4870102860714862091/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/4870102860714862091' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4870102860714862091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4870102860714862091'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/10/apoio-campanha-verde.html' title='Apoio a campanha verde'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-272546875767986884</id><published>2010-05-12T13:10:00.000-03:00</published><updated>2010-05-12T13:10:39.498-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agiles"/><category scheme="http://www.blogger.com/atom/ns#" term="bpm"/><category scheme="http://www.blogger.com/atom/ns#" term="ferramenta"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaEE"/><category scheme="http://www.blogger.com/atom/ns#" term="kfbc"/><title type='text'>Ágiles - Ferramenta de BPM</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.imagetec.com.br/img%5CAgilesHorGreen.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;71&quot; src=&quot;http://www.imagetec.com.br/img%5CAgilesHorGreen.gif&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;A partir de agora vou publicar alguns artigos neste blog sobre a principal ferramenta de trabalho utilizada na consultoria que estou atualmente (&lt;a href=&quot;http://www.kfbc.com.br/&quot;&gt;KFBC&lt;/a&gt;), o Ágiles.&lt;br /&gt;
O &lt;a href=&quot;http://www.imagetec.com.br/agiles.html&quot;&gt;Ágiles&lt;/a&gt; é um software da empresa &lt;a href=&quot;http://www.imagetec.com.br/&quot;&gt;Image&lt;/a&gt; web-based construído usando tecnologia J2EE tem como princípio a automatização, integração e documentação de processos de negócios, utilizado hoje em grandes empresas brasileiras, públicas e privadas, tais como: &lt;a href=&quot;http://www.milenia.com.br/&quot;&gt;Milenia&lt;/a&gt;, &lt;a href=&quot;http://www.bunge.com.br/&quot;&gt;Bunge&lt;/a&gt;, &lt;a href=&quot;http://www.astrazeneca.com.br/&quot;&gt;AstraZeneca&lt;/a&gt;, &lt;a href=&quot;http://www.fiepr.org.br/&quot;&gt;FIEP&lt;/a&gt;, &lt;a href=&quot;http://www.tce.pr.gov.br/&quot;&gt;TCE-PR&lt;/a&gt;, etc. Nesta ferramenta os processos são modelados através de um desenhador gráfico que visa definir a partir da notação do BPM as etapas e tarefas do processo de forma lógica e estruturada. Segue exemplo abaixo:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggUENb4CJ4VoKdypQ3OnQwYncCtccemrEOtYRJmld_tFSLdyCDSXSecqEdLMxN6eGRy0Hm1BlMcs7y0pUOx86WW5cbiJbGr7WFCooLJpo2elH3jX_gusRChxcNT3sA2s3GPk6XYQ/s1600/agiles_desenhador_processo_bpm.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggUENb4CJ4VoKdypQ3OnQwYncCtccemrEOtYRJmld_tFSLdyCDSXSecqEdLMxN6eGRy0Hm1BlMcs7y0pUOx86WW5cbiJbGr7WFCooLJpo2elH3jX_gusRChxcNT3sA2s3GPk6XYQ/s400/agiles_desenhador_processo_bpm.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;O sistema possui toda a infraestrutura e tecnologia para dar escalabilidade, alta disponibilidade, robustez, portabilidade e manutenibilidade, requisitos obrigatórios para aplicações das grandes corporações. Até o momento da criação deste artigo o Ágiles está em sua versão 2.0.6, a qual trouxe diversas melhorias em desempenho e usabilidade para o sistema.&lt;br /&gt;
&lt;br /&gt;
A idéia dos artigos deste blog não são a de promover de forma comercial o sistema Ágiles e sim fornecer informações para usuários e desenvolvedores que usem este software como ferramenta em seu ambiente de trabalho. No próximo artigo discutirei a parte administrativa da ferramenta.&lt;br /&gt;
&lt;br /&gt;
P.S. Uma observação importante ao pessoal do Java que está acostumado em baixar sempre tudo da web, essa ferramenta é paga e vocês não vão achar aqui nenhum link para download da mesma, portanto, estes artigos servirão apenas para os profissionais que tem nas empresas que atuam esta ferramenta instalada.&lt;br /&gt;
&lt;br /&gt;
Sucesso a todos!</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/272546875767986884/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/272546875767986884' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/272546875767986884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/272546875767986884'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/05/agiles-ferramenta-de-bpm.html' title='Ágiles - Ferramenta de BPM'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEggUENb4CJ4VoKdypQ3OnQwYncCtccemrEOtYRJmld_tFSLdyCDSXSecqEdLMxN6eGRy0Hm1BlMcs7y0pUOx86WW5cbiJbGr7WFCooLJpo2elH3jX_gusRChxcNT3sA2s3GPk6XYQ/s72-c/agiles_desenhador_processo_bpm.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-9040569768976052865</id><published>2010-05-12T12:25:00.004-03:00</published><updated>2012-06-13T12:03:55.371-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="concurso"/><category scheme="http://www.blogger.com/atom/ns#" term="desafio"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="javaEE"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="projeto"/><category scheme="http://www.blogger.com/atom/ns#" term="rally"/><title type='text'>Rally Open Source JavaEE</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9GTVgX30i8dP1t4cf4Ffw0s55BEAgbtvmcfLiAzDEqcld6QtZDnLXvOEjSysl860K2fik7xHanaqJBsM3IQol5t5fADI9BM42qxvq8lMRA2bwFayyJlV8K-VrfHUTXBQTy9CltA/s1600/rally_logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;52&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9GTVgX30i8dP1t4cf4Ffw0s55BEAgbtvmcfLiAzDEqcld6QtZDnLXvOEjSysl860K2fik7xHanaqJBsM3IQol5t5fADI9BM42qxvq8lMRA2bwFayyJlV8K-VrfHUTXBQTy9CltA/s400/rally_logo.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Olá pessoal, àqueles que desejam testar suas habilidades em diversos  pontos no desenvolvimento de software e que não tenham apego ao fonte  vale muito a pena participar desta iniciativa que a PowerLogic está  promovendo. Um desafio para os desenvolvedores Java nos diversos níveis  de conhecimento e além do mais os prêmios são bem bacanas. Participem,  eu já to dentro!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.rallyjavaeeopensource.com.br/&quot;&gt;http://www.rallyjavaeeopensource.com.br/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.powerlogic.com.br/powerportal/site.do?evento=x&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;61&quot; src=&quot;http://www.powerlogic.com.br/powerportal/ecp/images.do?evento=imagem&amp;amp;urlPlc=logo_powerlogic.gif&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/9040569768976052865/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/9040569768976052865' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/9040569768976052865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/9040569768976052865'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/05/rally-open-source-javaee.html' title='Rally Open Source JavaEE'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEi9GTVgX30i8dP1t4cf4Ffw0s55BEAgbtvmcfLiAzDEqcld6QtZDnLXvOEjSysl860K2fik7xHanaqJBsM3IQol5t5fADI9BM42qxvq8lMRA2bwFayyJlV8K-VrfHUTXBQTy9CltA/s72-c/rally_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-2421477420539586290</id><published>2010-04-09T10:57:00.000-03:00</published><updated>2010-04-09T10:57:39.694-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="evento"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jboss"/><category scheme="http://www.blogger.com/atom/ns#" term="tecnologia"/><title type='text'>Evento - JBossInBossa 2010 (07 e 08 de maio)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.jbossinbossa.com.br/2010/images/redhat_logo-lg.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.jbossinbossa.com.br/2010/images/redhat_logo-lg.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jbossinbossa.com.br/2010/images/jbosscorp_logo_main.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.jbossinbossa.com.br/2010/images/jbosscorp_logo_main.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Notícia quase em cima da hora, mas para aqueles que ainda não estão sabendo vai rolar um evento muito importante pro pessoal do Java. Eu estou falando&amp;nbsp; do JBossInBossa 2010. Um evento oficial da Red Hat sobre JBoss e muitas tecnologias do mundo Java (JPA, JSF 2.0, Virtualização, Drools, etc). Muita coisa boa, discutida e ensinada (vai haver workshops) por caras que sabem o que estão falando... nossa tem até os gods da Caelum, vale muito a pena conferir. O evento acontecerá entre os dias 07 e 08 de maio de 2010 e será pago... acho que vale cada centavo investido, e olha que eu nem sou da organização ;) Para maiores informações acesse &lt;a href=&quot;http://www.jbossinbossa.com.br/&quot;&gt;http://www.jbossinbossa.com.br/&lt;/a&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cols=&quot;3&quot; frame=&quot;VOID&quot; rules=&quot;NONE&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;CENTER&quot; height=&quot;16&quot; width=&quot;145&quot;&gt;&lt;b&gt;Evento&lt;/b&gt;&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; width=&quot;86&quot;&gt;&lt;b&gt;Até 18/04&lt;/b&gt;&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; width=&quot;93&quot;&gt;&lt;b&gt;19/04 à 08/05&lt;/b&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td align=&quot;LEFT&quot; height=&quot;16&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;Palestras&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;R$ 230,00&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;R$ 280,00&lt;/td&gt;   &lt;/tr&gt;
&lt;tr&gt;    &lt;td align=&quot;LEFT&quot; height=&quot;16&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;Palestras  + Workshop&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;R$ 270,00&lt;/td&gt;    &lt;td align=&quot;CENTER&quot; style=&quot;border: 1px solid rgb(0, 0, 0);&quot;&gt;R$ 310,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/2421477420539586290/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/2421477420539586290' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2421477420539586290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2421477420539586290'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/04/evento-jbossinbossa-2010-07-e-08-de.html' title='Evento - JBossInBossa 2010 (07 e 08 de maio)'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-998649839229485415</id><published>2010-02-01T18:42:00.005-02:00</published><updated>2018-02-26T10:10:20.530-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="filter"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="programação"/><category scheme="http://www.blogger.com/atom/ns#" term="servlet"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><title type='text'>Java Servlet Filter (Adaptação para português) - Filtros de Requisição no Java</title><content type='html'>Estive pesquisando sobre o que são Filters (Filtros) de requisição e encontrei um artigo da autoria de &lt;a href=&quot;http://viralpatel.net/&quot;&gt;ViralPatel.net&lt;/a&gt;, post:&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;a href=&quot;http://viralpatel.net/blogs/2009/01/tutorial-java-servlet-filter-example-using-eclipse-apache-tomcat.html&quot;&gt;Java Servlet Filter tutorial example using Eclipse &amp;amp; Tomcat&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;bem interessante em inglês. Resolvi traduzir o artigo e adicionar algumas considerações e dicas que achei pertinentes (ágeis):&lt;br /&gt;
&lt;br /&gt;
Servlet Filters são os últimos componentes adicionados às especificações Servlet 2.3. Estes filtros são utilizados basicamente para interceptar e modificar pedidos e resposta do servidor (entenda interceptar por: entrar no meio do caminho e poder executar algum código). Considere um cenário em que você deseja validar a sessão a cada solicitação dos usuários e somente se for valida você quer deixar o usuário acesse a página. Você pode conseguir isso verificando sessões em todas as páginas do servlet (ou páginas JSP) que os usuários consultem ou acessem ou você pode fazer isso usando filtros (filters).&lt;br /&gt;
Vamos criar um filtro servlet que apenas imprime o endereço IP de Clientes e a data, apenas para registrar os usuários que estão acessando a aplicação.&lt;br /&gt;
Usaremos o IDE Eclipse para o desenvolvimento de nossa aplicação e &lt;a href=&quot;http://pt.wikipedia.org/wiki/Apache_Tomcat&quot;&gt;Apache Tomcat (servlet container)&lt;/a&gt; para implementar e executar nossa aplicação.Etapa 1: Criar um projeto web dinâmico (dynamic web project) no Eclipse.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWzE6aosPPT8O_t-vKr8PVVLLmXCASgZHDwRz6exzzF6f_gHtuqB8-CO5gbRKkKKcq7FsKsFL0jRhXq5717hyrkSIhFIJGx66M_EiTKLVnqPWaiTrdndV7Lpu4gz0aBy4wR50PCw/s1600-h/servlet-filter-create-new-project-eclipse-300x292.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWzE6aosPPT8O_t-vKr8PVVLLmXCASgZHDwRz6exzzF6f_gHtuqB8-CO5gbRKkKKcq7FsKsFL0jRhXq5717hyrkSIhFIJGx66M_EiTKLVnqPWaiTrdndV7Lpu4gz0aBy4wR50PCw/s320/servlet-filter-create-new-project-eclipse-300x292.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Inicie o eclipse e crie um novo projeto web dinâmico com o nome ServletFilterProject. Selecione o ambiente Target Runtime. Selecionei o Apache Tomcat v6.0, mas você pode escolher qualquer versão do Tomcat que tenha instalado em sua máquina. Clique em Concluir.&lt;br /&gt;
&lt;h2&gt;
&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Step 2: Create package &amp;amp; Servlet Filter 
class.&quot;&gt;Etapa 2: Criar pacote e classe Servlet Filter.&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjY_VHqs4A0BtKWA4B8teapbbgwkrgf2BlKoUiX7umpfKrQwKXxpHpWeyKB2NRB3p1z3qy2FDyTzII_WEgMiq6N1mC-TMeqqtXQoDuRrotcjy0cL9TpHT1JYpkbi5MrO4EAJwOg/s1600-h/servlet-filter-package-creation.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjY_VHqs4A0BtKWA4B8teapbbgwkrgf2BlKoUiX7umpfKrQwKXxpHpWeyKB2NRB3p1z3qy2FDyTzII_WEgMiq6N1mC-TMeqqtXQoDuRrotcjy0cL9TpHT1JYpkbi5MrO4EAJwOg/s320/servlet-filter-package-creation.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMMIR066b-PlkEBtQ5yshf2nGQBiQ-qgj8RyvfSCzEZQIyp5y4JhASEW3JztA6Bznpk61MrUvIPRWnM-yiGHBN7VTY4IunOEuuPvwuN9xhU2C5VhsZpAtTGdryfXMTTNPP81cMZg/s1600-h/servlet-filter-package-creation1-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMMIR066b-PlkEBtQ5yshf2nGQBiQ-qgj8RyvfSCzEZQIyp5y4JhASEW3JztA6Bznpk61MrUvIPRWnM-yiGHBN7VTY4IunOEuuPvwuN9xhU2C5VhsZpAtTGdryfXMTTNPP81cMZg/s320/servlet-filter-package-creation1-1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Crie um pacote para Servlet Filters na sua pasta de origem do projeto. Eu criei o pacote net.viralpatel.servlet.filters. &lt;strike&gt;Dentro do pacote, crie uma classe Java chamada LogFilter.java. *&lt;/strike&gt; Neste ponto gostaria de adicionar algo mais prático: o eclipse padrão que baixamos no site oficial vem com alguns puglins interessantes e um deles permite criar Servlet Filter de forma mais fácil e rápida. Na perpectiva Java EE temos a opção de adicionar filtros ao projeto e ao criá-lo, o mesmo já cria a classe filter, que daremos o nome de LogFilter, e ainda faz o mapeamento da mesma no nosso arquivo web.xml&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtLZYxMbxfrV7MTcLG6JmFJxkj3Rz29NneHFowpadyx6JmM_Ubtm_AR77fxyPP_xG3P8EhNr_EWYB6ggCx4XnG-pPN59Mti_yHXDReIQpt2oHa6xyUvIywbbnXhiCMzMCiBXFRgg/s1600-h/servlet-filter-filter-creation.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtLZYxMbxfrV7MTcLG6JmFJxkj3Rz29NneHFowpadyx6JmM_Ubtm_AR77fxyPP_xG3P8EhNr_EWYB6ggCx4XnG-pPN59Mti_yHXDReIQpt2oHa6xyUvIywbbnXhiCMzMCiBXFRgg/s320/servlet-filter-filter-creation.png&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Next &amp;gt; Next &amp;gt; Finish e abaixo segue o código gerado pelo Eclipse (sem a documentação):&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;package net.viralpatel.servlet.filters;&lt;br /&gt;
&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;java.io.IOException;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.Filter;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.FilterChain;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.FilterConfig;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.ServletException;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.ServletRequest;&lt;br /&gt;
&lt;b style=&quot;color: purple;&quot;&gt;import &lt;/b&gt;javax.servlet.ServletResponse;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;public class&lt;/span&gt; &lt;/b&gt;LogFilter &lt;b style=&quot;color: purple;&quot;&gt;implements &lt;/b&gt;Filter {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;public&lt;/span&gt; &lt;/b&gt;LogFilter() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;public void&lt;/span&gt;&lt;/b&gt; destroy() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;b style=&quot;color: purple;&quot;&gt;public void&lt;/b&gt; doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FilterChain chain) &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;throws &lt;/span&gt;&lt;/b&gt;IOException, ServletException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chain.doFilter(request, response);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt; &lt;/span&gt;&lt;b style=&quot;color: purple;&quot;&gt;public void&lt;/b&gt; init(FilterConfig fConfig) &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;throws &lt;/span&gt;&lt;/b&gt;ServletException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;Etapa 3: Escrevendo o código da nossa classe Servlet Filter.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Vamos modificar o método &lt;i&gt;doFilter &lt;/i&gt;e o método &lt;i&gt;init &lt;/i&gt;para que possamos executar nossa lógica:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;b style=&quot;color: purple;&quot;&gt;public void&lt;/b&gt; doFilter(ServletRequest  request, ServletResponse response,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; FilterChain chain) &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;throws  &lt;/span&gt;&lt;/b&gt;IOException, ServletException {&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;HttpServletRequest req = (HttpServletRequest)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt; request&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;//Pega o endereço IP da máquina do cliente.&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;String ipAddress = req.getRemoteAddr();&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;//Loga o endereço&amp;nbsp; IP e o horário atual.&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fff2cc; font-size: x-small;&quot;&gt;System.out.println(&quot;IP &quot;+ipAddress + &quot;, Time &quot; + new Date().toString());&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;chain.doFilter(&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;request, response&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: purple;&quot;&gt; &lt;/span&gt;&lt;b style=&quot;color: purple;&quot;&gt;public void&lt;/b&gt; init(FilterConfig fConfig) &lt;b&gt;&lt;span style=&quot;color: purple;&quot;&gt;throws  &lt;/span&gt;&lt;/b&gt;ServletException {&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #fff2cc;&quot;&gt;//Pega os parametros iniciais&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;String testParam = config.getInitParameter(&quot;test-param&quot;);&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;//Imprime &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;os  parametros iniciais&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;System.out.println(&quot;Test Param: &quot; + testParam);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;In this filter example, we have implemented 
an interface javax.servlet.Filter and override its methods init, 
doFilter and destroy.&quot;&gt;Neste exemplo de filtro, implementamos a  interface javax.servlet.Filter e substituimos os métodos init, doFilter e  destroy.&lt;br /&gt;
&lt;/span&gt;&lt;span title=&quot;The init() method is used to initialize any code that is 
used by Filter.&quot;&gt;O método &lt;b&gt;init &lt;/b&gt;() é usado para inicializar qualquer  código que é usado pelo filtro. &lt;/span&gt;&lt;span title=&quot;Also note that, init() method will get an 
object of FilterConfig which contains different Filter level information
 as well as init parameters which is passed from Web.xml (Deployment 
descriptor).&quot;&gt;Observe também que, o método init () irá receber um objeto  de filterConfig que contém informações de diferentes níveis de filtro, bem  como parâmetros de inicialização que são passadas ao web.xml (deployment  descriptor).&lt;br /&gt;
&lt;/span&gt;&lt;span title=&quot;The doFilter() method will do the actual logging of 
information.&quot;&gt;O método &lt;b&gt;doFilter &lt;/b&gt;() é quem realmente fará o registro das  informações. &lt;/span&gt;&lt;span title=&quot;You can modify this method and add your code which can modify 
request/session/response, add any attribute in request etc.&quot;&gt;Você pode  modificar esse método e adicionar o seu código, que pode modificar  request / sessão / resposta, adicione algum atributo no pedido, etc.&lt;br /&gt;
&lt;/span&gt;&lt;span title=&quot;The destroy() 
method is called by the container when it wants to garbage collect the 
filter.&quot;&gt;O método &lt;b&gt;destroy &lt;/b&gt;() é chamado pelo container quando quer  recolher lixo do filtro. &lt;/span&gt;&lt;span title=&quot;This is usually done when filter is not used for long
 time and server wants to allocate memory for other applications.&quot;&gt;Isso  geralmente é feito quando o filtro não for usada por muito tempo e  servidor quer alocar memória para outras aplicações. Hehehehe, aqui não fizemos nada.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;This is usually done when filter is not used for long
 time and server wants to allocate memory for other applications.&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Etapa 4: Criar o mapenamento do Servlet Filter no web.xml (não é necessário)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Como o Eclipse já fez esse favor pra nós vou apenas exibir o conteúdo gerado:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;lt;&lt;b&gt;filter&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;b&gt;display-name&lt;/b&gt;&amp;gt;LogFilter&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;display-name&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;b&gt;filter-name&lt;/b&gt;&amp;gt;LogFilter&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;filter-name&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;b&gt;filter-class&lt;/b&gt;&amp;gt;net.viralpatel.servlet.filters.LogFilter&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;filter-class&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;&lt;b&gt;/filter&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;&lt;b&gt;filter-mapping&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;b&gt;filter-name&lt;/b&gt;&amp;gt;LogFilter&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;filter-name&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;b&gt;url-pattern&lt;/b&gt;&amp;gt;/LogFilter&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;url-pattern&lt;/b&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Step 4: Create Servlet Filter Mapping in 
Web.xml&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;b&gt;filter-mapping&lt;/b&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Para ver o arquivo web.xml gerado acesse em seu projeto a pasta WebContent/WEB-INF&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Etapa &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;5:  Executando a aplicação Web&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;We are done with the coding part of Servlet 
Filter example.&quot;&gt;Finalizamos a parte da codificação do exemplo de  Servlet Filter. &lt;/span&gt;&lt;span title=&quot;Now execute the project by Run -&amp;gt; Run As -&amp;gt; Run on 
server (shortcut Alt+Shift+X, R).&quot;&gt;Agora execute o projeto no Eclipse:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Now execute the project by Run -&amp;gt; Run As -&amp;gt; Run on 
server (shortcut Alt+Shift+X, R).&quot;&gt;Acesse no menu &lt;i&gt;Run -&amp;gt;  Run As -&amp;gt; Run on server&lt;/i&gt; (atalho Alt + Shift + X, R).&lt;/span&gt;&lt;span title=&quot;Check the console 
you will see the output that we print using System.out.&quot;&gt;Verifique o  console e você verá na saída a impressão gerada pelo System.out.&lt;/span&gt;&lt;span title=&quot;Change the code in the way you 
want your filter to work.&quot;&gt; Altere o código da maneira que você quiser e veja o trabalho que seu filtro realiza. O filtro é muito interessante para executarmos tarefas de verificação de usuário, carregar listas com dados eliminando assim o uso de scriptlet nas nossas JSPs, etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Change the code in the way you 
want your filter to work.&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Change the code in the way you 
want your filter to work.&quot;&gt;* Neste exemplo eliminamos a escrita básica do Filter, bem como seu mapeamento no web.xml, tudo isso graças ao puglin do Eclipse. Também é possível executar muitas outras tarefas corriqueiras como essa através desses atalhos de puglins do Eclipse tornando nosso trabalho muito mais ágil e focado na lógica de negócios, que é o que mais importa em nossas aplicações.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Change the code in the way you 
want your filter to work.&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot;&gt;&lt;span title=&quot;Change the code in the way you 
want your filter to work.&quot;&gt;Espero que tenham gostado deste artigo assim como eu gostei e que ele venha a ser útil para aqueles que estão iniciando seu aprendizado nas requisições dos aplicativos web em Java.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;long_text&quot; id=&quot;result_box&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span title=&quot;Starts eclipse and create a new dynamic web 
project with name ServletFilterProject.&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;Click on Finish.&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/998649839229485415/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/998649839229485415' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/998649839229485415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/998649839229485415'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/02/java-servlet-filter-adaptacao-para.html' title='Java Servlet Filter (Adaptação para português) - Filtros de Requisição no Java'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEjWzE6aosPPT8O_t-vKr8PVVLLmXCASgZHDwRz6exzzF6f_gHtuqB8-CO5gbRKkKKcq7FsKsFL0jRhXq5717hyrkSIhFIJGx66M_EiTKLVnqPWaiTrdndV7Lpu4gz0aBy4wR50PCw/s72-c/servlet-filter-create-new-project-eclipse-300x292.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-6480108495936540264</id><published>2010-01-26T13:21:00.003-02:00</published><updated>2010-01-26T13:51:57.150-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aprendizado"/><category scheme="http://www.blogger.com/atom/ns#" term="atualidade"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Java Hoje</title><content type='html'>Atualmente, o Java vem ganhando mais e mais espaço no mercado de trabalho e no mundo dos negócios e penso que isso se deve ao esforço incansável de uma comunidade forte que se destaca na propagação das informações chaves para que qualquer pessoa possa vir a ser um grande profissional desta plataforma. Acho até que mesmo os incentivos do governo e das diversas instituições privadas ou públicas (sabe se lá Deus quantas e quais) não foram tão eficientes em difundir o Java quanto os sites, fóruns, tutoriais, blogs, videos no &lt;a href=&quot;http://www.youtube.com/results?search_query=java&amp;amp;search_type=&amp;amp;aq=f&quot;&gt;Youtube&lt;/a&gt;, etc.&lt;br /&gt;Vejo que a web vem se tornando cada dia mais um celeiro de autodidatas capazes de elaborar seus próprios roteiros de estudos e isso é facilitado pela infinita gama de materiais sobre Java presente na Grande Rede. Conheço algumas pessoas que antes desempenhavam outras tantas carreiras que nada tem a ver com tecnologia, hoje se dedicam a aprender de alguma forma Java ou qualquer outra linguagem para que possam crescer profissionalmente, psicológicamente e monetariamente, é claro!&lt;br /&gt;É importante lembrar que nem todo o conteúdo disponível na web é totalmente seguro e confiável, porém, vale lembrar também que com um pouco de dedicação e perspicácia os usuários podem verificar se as informações são corretas ou não. Muitas vezes até os materiais apresentam informações ultrapassadas e não são de grande valia para o cenário atual, com uso de ferramentas, terminologias ou padrões de trabalho que já encontram-se depreciados. Mesmo os sites (locais) mais indicados pela comunidade muitas vezes apresentam informações em seu banco de dados que já estão bem velhinhas... vale sempre olhar a data dos posts, videos ou da publicação dos tutoriais. Eu mesmo uso algumas coisas que o mercado mais moderno chama de contraprodutiva como DAO, criação de funções javascript para controle de componentes de tela, etc, porém, pra mim ainda esta servindo, até que eu aprenda as novas e boas maneiras, é claro.&lt;br /&gt;Para aqueles que querem saber mais sobre Java é importante frisar que grande parte dos materiais de alto nível ainda se encontra em inglês, falo isso por que não achei nada de EJB 3 bacana em português ou algumas outras coisas mais específicas. Meu inglês é intermediário, ou seja leio notícias ou assisto a filmes em inglês tranquilamente, mas ler documentos técnicos muito extensos e cheios de termos específicos fica bem mais complicado e demorado, além disso tenho colegas que não sabem inglês e isso se torna um empecilho muito maior para eles.&lt;br /&gt;Gostaria de agradecer neste artigo ao &lt;a href=&quot;http://www.guj.com.br/&quot;&gt;GUJ&lt;/a&gt;, &lt;a href=&quot;http://www.dfjug.org/&quot;&gt;DFJUG&lt;/a&gt;, &lt;a href=&quot;http://www.javafree.org/&quot;&gt;JavaFree&lt;/a&gt;, e tantos outros que neste momento não me lembro pelas informações importantes que me fizeram chegar a ser um programador certificado Java e atualmente estar trabalhando como Analista Java Pleno. É uma carreira bem interessante, mas vale lembrar que o aprendizado nunca para.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/6480108495936540264/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/6480108495936540264' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6480108495936540264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6480108495936540264'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2010/01/java-hoje.html' title='Java Hoje'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-7807348795914684167</id><published>2009-11-29T16:22:00.007-02:00</published><updated>2009-11-29T16:38:01.412-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bonecas"/><category scheme="http://www.blogger.com/atom/ns#" term="Marina Bambina"/><category scheme="http://www.blogger.com/atom/ns#" term="Reborns"/><title type='text'>Marina Bambina  - Bonecas Reborns - Cotia</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.marinabambina.com.br&quot;&gt;&lt;img style=&quot;margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 118px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3X1tcf9El53d-9Ycf7lS_hnuM8tMAndztLOfTCt83tGbocz3BRgpN-7sf3X8aV2xr6lGw1xzdeqzaCklidRBNOcZKHquo6NY8ehMi7bLrkNR6Ee8M0TCSDMG5tzu0nxD9wQ2t4Q/s320/logo_bambina2.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5409594654726709730&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Olá,&lt;br /&gt;venho divulgar mais um de meus trabalhos como webdesigner o site &lt;a href=&quot;http://www.marinabambina.com.br&quot;&gt;www.marinabambina.com.br&lt;/a&gt;. &lt;br /&gt;O site apresenta o trabalho de uma artesã, Marina Leite, que faz reborns - bonecos e bonecas que aparentam ser bebês de verdade. Muitas mães gostam de criar bonecas semelhantes aos filhos e por isso solicitam este trabalho tão especial. Vale a pena conferir.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/7807348795914684167/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/7807348795914684167' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7807348795914684167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7807348795914684167'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2009/11/marina-bambina-bonecas-reborns-cotia.html' title='Marina Bambina  - Bonecas Reborns - Cotia'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEg3X1tcf9El53d-9Ycf7lS_hnuM8tMAndztLOfTCt83tGbocz3BRgpN-7sf3X8aV2xr6lGw1xzdeqzaCklidRBNOcZKHquo6NY8ehMi7bLrkNR6Ee8M0TCSDMG5tzu0nxD9wQ2t4Q/s72-c/logo_bambina2.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-7841601096364668978</id><published>2009-07-21T17:31:00.002-03:00</published><updated>2009-07-21T17:34:03.444-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="contrutora"/><category scheme="http://www.blogger.com/atom/ns#" term="ibiúna"/><title type='text'>Construtora em Ibiúna</title><content type='html'>Quem vai construir em Ibiúna tem que conhecer a empresa Constructora Verde que presta serviços para a construção de casas, sítios, chácaras, piscinas, churrasqueiras, edículas, etc. Além disso a empresa presta serviços de reformas em geral em toda a região de Ibiúna, Vargem Grande e proximidades. Saiba mais acessando o site &lt;a href=&quot;http://www.constructoraverde.com.br/&quot;&gt;www.constructoraverde.com.br&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/7841601096364668978/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/7841601096364668978' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7841601096364668978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7841601096364668978'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2009/07/construtora-em-ibiuna.html' title='Construtora em Ibiúna'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-226551853497051728</id><published>2009-07-21T17:27:00.002-03:00</published><updated>2009-07-21T17:31:14.842-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="construção"/><category scheme="http://www.blogger.com/atom/ns#" term="ibiúna"/><category scheme="http://www.blogger.com/atom/ns#" term="material"/><title type='text'>Site de Engenharia e Materiais de Construção</title><content type='html'>&lt;a href=&quot;http://www.comercial74.com.br/&quot;&gt;www.comercial74.com.br&lt;/a&gt; meu mais novo site em php sobre construção e engenharia. O site contém muitas dicas para quem vai construir, reformar, regularizar plantas e projetos de construção, reformas, alvarás, etc. O site pertence a uma empresa de Ibiúna que presta serviços de engenharia, além de vender materiais para construção. Vale a pena conferir</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/226551853497051728/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/226551853497051728' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/226551853497051728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/226551853497051728'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2009/07/site-de-engenharia-e-materiais-de.html' title='Site de Engenharia e Materiais de Construção'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-7659474350532445326</id><published>2009-07-09T14:38:00.002-03:00</published><updated>2009-07-09T15:10:08.583-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dicas"/><category scheme="http://www.blogger.com/atom/ns#" term="ireport"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Relatórios no IReport: Prós e Contras</title><content type='html'>IReport. Muito se usa e se fala desta ferramenta de software livre, utilizada na criação de relatórios para aplicações contruidas em Java. Mas porque usá-la ou até porque não usá-la?&lt;br /&gt;&lt;br /&gt;Bem, por experiência própria afirmo que da mesma forma que ela pode ser muito produtiva para alguns ela pode vir a ser contraprodutiva para outros.&lt;br /&gt;&lt;br /&gt;Uma tarefa que exige muito esforço dos profissionais de programação e que geralmente não é tão valorizada quanto deveria ser, é a criação de relatórios. O profissional que tem o domínio neste ponto, encontra destaque dentro de um mercado atual, tão preocupado  com frameworks de MVC (diga-se: Struts, JSF, etc.) ou tantos outros como mapeamento Objeto-Relacional (Hibernate), RIA (ZK).&lt;br /&gt;&lt;br /&gt;Vejo que minhas experiências com o mercado de design me serviram e muito para a construção de relatórios muito mais atraentes e com características avançadas dos gráficos contidos neles.&lt;br /&gt;&lt;br /&gt;É importante ressaltar que as terminologias nas classes utilizadas para criação de relatórios são mais facilmente entendidas se o profissional conhece a área de comunicação editorial (não que isso seja um pré-requisito).&lt;br /&gt;&lt;br /&gt;Destaco esta ferramenta pois não encontrei nenhuma outra tão madura (me corrijam se eu estiver errado) na construção de relatórios de forma visual para o Java, tal como é o Crystal Reports para o .NET. O site oficial da mesma é &lt;a href=&quot;http://jasperforge.org/projects/ireport&quot;&gt;http://jasperforge.org/projects/ireport&lt;/a&gt;. O fórum tem algumas dicas interessantes.&lt;br /&gt;&lt;br /&gt;Existem alguns tutoriais básicos espalhados por alguns sites conhecidos, mas nada muito profundo em relação á subrelatórios, passagem de parametros, recebimento de objetos não nativos, configuração de classpath. Deve-se ter uma boa visão do que o software é capaz de fazer para aproveitar ao máximo dele, pois senão ficasse perdido num monte de menus e ferramentas que mais atrapalham num primeiro momento. Por exemplo: o JFreeChart é um framework para a criação de gráficos (pizza, barras, linhas, etc) tanto em 2D como em 3D. Ele está contido no IReport e permite criar gráficos visualmente muito interessantes para inserir em seus relatórios.&lt;br /&gt;&lt;br /&gt;O recebimento de dados pode ser feito através de conexão com o banco de dados, através de coleções de objetos enviados da aplicação, ou mesmo pela passagem por parametros. Isso tudo deve ser estudado com calma para que não fique confuso o entendimento e para que os relatórios não deem mais dor de cabeça do que deveriam.&lt;br /&gt;&lt;br /&gt;O interessante de usar esta ferramenta é que ela permite gerar alguns relatórios simples de forma muito rápida, quase que num next, next, finish. Porém, se o relatório tiver muitos agrupamentos de dados ou condições particulares para a exibição ou não de trechos do mesmo é bom tomar bastante cuidado com os flags presentes no software, pois com certeza eles vão confundir o usuário iniciante.&lt;br /&gt;&lt;br /&gt;O sistema de bandas (áreas do relatório que separam geralmente blocos que tem características semelhantes) ajuda bastante na hora de criar capa, contra-capa, cabeçalho, rodapé, etc. - coisas que aliás são essênciais em documentos deste tipo (outro ponto bem positivo de usar esta ferramenta).&lt;br /&gt;&lt;br /&gt;O sistema de objetos, tais como: caixas de texto, formas geométricas, imagens, etc, ainda tem muito o que melhorar, mas possuem um entendimento bem simples (neste caso, cabe um pouco de entendimento de design ou um pouco de criatividade mesmo).&lt;br /&gt;&lt;br /&gt;Bem, esse texto foi mais para ajudar a esclarecer um pouco como funciona a ferramenta e não para mostrar um passo-a-passo, uma vez que isso se encontra bem fácil por ai... digita no google que vc acha ;)&lt;br /&gt;&lt;br /&gt;abraços</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/7659474350532445326/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/7659474350532445326' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7659474350532445326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/7659474350532445326'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2009/07/relatorios-no-ireport-pros-e-contras.html' title='Relatórios no IReport: Prós e Contras'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-400672186614228544</id><published>2008-06-19T11:33:00.003-03:00</published><updated>2008-06-19T11:53:03.366-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Estude mais Java</title><content type='html'>O mercado continua com uma grande demanda para programadores Java com um nível entre Senior e Pleno. Isso porque a quantidade de conhecimentos que um programador Java tem que saber para chegar a esse nível requer bastante tempo e dedicação para ser absorvido. &lt;br /&gt;A linguagem Java é &quot;um grande filé&quot; do mercado da tecnologia, devido ao fato de ser direcionada especialmente para o desenvolvimento de sistemas robustos e para grandes corporações. Além disso, Java possui uma série de recursos melhorados a cada dia pela sua atitude open source. A comunidade Java cresce a cada dia mas precisa se empenhar cada vez mais, pois este mercado esta cada dia mais exigente.&lt;br /&gt;Não adianta aprender Hello World e sair falando que sabe Java. Nem mesmo saber apenas o pacote da Sun (Java 5, ou 6). Tem que conhecer bem Design Patterns (Padrões de Desenvolvimento), UML(Modelagem), Hibernate(Relacionamento com Banco de Dados), Struts, Servidores de Aplicação (JBoss de preferência), um pouco de SQL sempre ajuda e acima de tudo ser bem aberto a aprender sobre domínios (ramos de negócios) diversos, desde supermercados à telecomunicações.&lt;br /&gt;O importante mesmo é nunca parar de estudar. Sempre vão haver coisas novas para se aprender.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/400672186614228544/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/400672186614228544' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/400672186614228544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/400672186614228544'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2008/06/estude-mais-java.html' title='Estude mais Java'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-4179793154441788173</id><published>2008-04-21T15:03:00.004-03:00</published><updated>2008-04-21T15:32:23.190-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="MDA"/><title type='text'>MDA: prós e contras</title><content type='html'>Atualmente estou envolvido em um projeto Java que como base de seu desenvolvimento utiliza o processo MDA para gerar os códigos padrões, bem como as especificações. Vou discutir neste tópico o que vem a ser MDA, seus prós e contras.&lt;br /&gt;O &lt;strong&gt;MDA (Model-Driven Architecture)&lt;/strong&gt; é um processo pelo qual são utilizados os modelos em UML juntamente com instruções gerais de projeto para a geração dos componentes base do sistema (classes, interfaces, entre outros elementos); Essa tecnologia tem como principal objetivo eliminar procedimentos repetitivos que os programadores tem que fazer ao iniciar um projeto. Muitas vezes os desenvolvedores ao começar um novo projeto percebem que muito do que será feito poderia ser reaproveitado de sistemas anteriores, código padrões como CRUDs, os processos de persistência dos objetos, fluxos de servlets, etc. O MDA vem justamente evitar um retrabalho neste ponto e se destaca atualmente por apresentar uma solução viável para isso. É como se o programador colocasse todos os modelos UML e especificações de um lado de uma máquina e no outro lado saísse os sistema pronto. Bem, não é exatamente assim, mas essa é a idéia. &lt;br /&gt;Diversas ferramentas estão surgindo para realizar esse processo, tanto para a geração de modelos que viabilizem essa &quot;transformação&quot; (&lt;a href=&quot;http://argouml.tigris.org&quot;&gt;ArgoUML&lt;/a&gt;, &lt;a href=&quot;http://www.magicdraw.com&quot;&gt;Magic Draw&lt;/a&gt;, &lt;a href=&quot;http://bouml.free.fr&quot;&gt;BoUML&lt;/a&gt;, etc), quanto ferramentas que façam essa transformação (&lt;a href=&quot;http://www.andromda.org&quot;&gt;AndroMDA&lt;/a&gt;, &lt;a href=&quot;http://www.sysgen.com.br&quot;&gt;Celero&lt;/a&gt;, etc).&lt;br /&gt;Um ponto negativo que se apresenta em alguns casos é o fato de se criar um engessamento no processo da geração dos códigos dos esteriótipos, onde muitas vezes não podemos intervir ou se isso for feito haverá alguns complicadores caso se necessite de uma reconstrução.&lt;br /&gt;Bem, essa tecnologia, ou metodologia de programação está em processo inicial de inserção no mundo comercial e aparentemente já disperta interesses de grandes corporações. Acredito que de uma forma ou de outra venha a contribuir e muito para a eliminação dos processos repetitivos e desgastantes da programação. Como não sou nenhum especialista nesse assunto sugiro que cada um aprenda a utilizar o MDA com bastante afinco antes de querer criticá-lo sem embasamento concreto sobre o assunto.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/4179793154441788173/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/4179793154441788173' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4179793154441788173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4179793154441788173'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2008/04/mda-prs-e-contras.html' title='MDA: prós e contras'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-8379657378272840754</id><published>2008-01-22T10:28:00.000-02:00</published><updated>2008-01-22T11:02:52.727-02:00</updated><title type='text'>Inkscape ... o Corel Draw do Linux (desenhos/projetos vetoriais)</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4xFD1s1X2JNYUr8HJfrqFqB_mb4okuyQJHrUMSW9-ATPeBplXI_ROZ077aQeUPWD2Bt5Xwf5K53XN29GvuRrY-8X7nD7GfDXGTTA8GldL3pue_4XyDcRkKTZSDno0jpkG56ju1A/s1600-h/inkscape.png&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4xFD1s1X2JNYUr8HJfrqFqB_mb4okuyQJHrUMSW9-ATPeBplXI_ROZ077aQeUPWD2Bt5Xwf5K53XN29GvuRrY-8X7nD7GfDXGTTA8GldL3pue_4XyDcRkKTZSDno0jpkG56ju1A/s320/inkscape.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5158278674979724226&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Além do aplicativo do OpenOffice.org Draw, o Linux tem uma outra excelente carta na manga para brigar com os softwares proprietários de criação de imagens vetoriais (logos, cartazes, etc) e ele se chama &lt;a href=&quot;http://www.inkscape.org&quot;&gt;Inkscape&lt;/a&gt;.&lt;br /&gt;Não é nenhuma novidade, mas pretendo dar algumas dicas para quem nunca usou ou nunca ouviu falar deste aplicativo free.&lt;br /&gt;Primeiramente, se você quer realmente aprender sobre a mesma vai ter que ler os tutoriais no site oficial &lt;a href=&quot;http://www.inkscape.org&quot;&gt;www.inkscape.org&lt;/a&gt; que são muito intuitivos e estão disponíveis em nossa língua (Português brasileiro). Porém, quero ressaltar que aqueles que já estão habituados com outras ferramentas como Corel Drae, Illustrator, etc. vão ter que se acostumar com algumas particularidades como a forma de criar e editar gradientes. Esta aplicação ainda possue um suporte maravilhoso para caligrafia que pode ser utilizado com mesa digitalizadora, entre muitos outros recursos fantásticos. Vale a pena entender a forma como ela produz e trabalha com xml, gerado automaticamente na criação das imagens. O formato padrão é o SVG , que aliás será o formato que dominará em breve as aplicações de imagens vetoriais por ser muito versátil e poderoso.&lt;br /&gt;&lt;br /&gt;O interessante é que se você, por um azar do destino, ainda usa o Windows também terá a chance de usar este programa. Aliás, hoje mesmo vi um tutorial no Imasters do Fabio Pereira que é excelente para mostrar esta aplicação. Parabéns ao pessoal do Imasters, vocês continuam na ponta. Segue o link: http://imasters.uol.com.br/artigo/7858/linux/software_livre_para_web_desenho_vetorial_com_inkscape/&lt;br /&gt;&lt;br /&gt;Vale a pena conferir... eu já criei algumas coisas aqui para a empresa e ninguém percebeu que não usei o Corel Draw... ops, agora eles já sabem.&lt;br /&gt;&lt;br /&gt;Boa sorte neste maravilhoso mundo novo!</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/8379657378272840754/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/8379657378272840754' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/8379657378272840754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/8379657378272840754'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2008/01/inkscape-o-corel-draw-do-linux.html' title='Inkscape ... o Corel Draw do Linux (desenhos/projetos vetoriais)'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEh4xFD1s1X2JNYUr8HJfrqFqB_mb4okuyQJHrUMSW9-ATPeBplXI_ROZ077aQeUPWD2Bt5Xwf5K53XN29GvuRrY-8X7nD7GfDXGTTA8GldL3pue_4XyDcRkKTZSDno0jpkG56ju1A/s72-c/inkscape.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-2891984047301423873</id><published>2007-11-13T08:38:00.001-02:00</published><updated>2007-11-13T08:54:11.694-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Caelum"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaFX"/><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Java, Java... FX</title><content type='html'>Para aqueles que não conhecem ou acham bobagem conhecer a &lt;a href=&quot;http://www.sun.com/software/javafx/index.jsp&quot;&gt;Sun&lt;/a&gt; está fermentando mais uma bomba... o JavaFX... (atenção, não é plagio do Black Kamen Rider). O javaFX é a tecnologia que a Sun está trabalhando para concorrer no mercado RIA (Rich Interface Applications), que são as interfaces &quot;bonitinhas e cheias de frescuras da web&quot;; brincadeiras a parte esta tecnologia, ou melhor, esta coleção de tecnologias empregadas para produzir a sensação de desktop para os aplicativos web é a grande onda promovida e provedora da Web 2.0. Pelo que pude observar na &lt;a href=&quot;http://blog.caelum.com.br/2007/07/18/falando-em-java-introducao-ao-javafx/&quot;&gt;palestra sobre o JavaFX de Sérgio Lopes&lt;/a&gt;, instrutor da &lt;a href=&quot;http://www.caelum.com.br/caelum/index.jsp&quot;&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Caelum&lt;/span&gt;&lt;/a&gt; a tecnologia ainda é pouco evoluida, em fase quase embrionária (apesar de estar lançada desde maio deste ano), mas a idéia já está com um foco tremendo. Não conheço nenhum profissional que trabalhe com isso na atualidade (opa, nicho a vista);&lt;br /&gt;&lt;br /&gt;O JavaFX parece bastante com o ActionScript, talvez o 2, mas tem suas particularidades. É Orientado a Objetos, respeitando a grande tendência das programações atuais. Pra quem pensa que eu vou postar o Hello World se engana, pois, você pode muito bem ver isso no próprio site da Sun e aprender muito mais lá.&lt;br /&gt;&lt;br /&gt;Qualquer dúvida ou pergunta estou a disposição.&lt;br /&gt;&lt;br /&gt;Abraços e que Deus proteja a todos!</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/2891984047301423873/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/2891984047301423873' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2891984047301423873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2891984047301423873'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/11/java-java-fx.html' title='Java, Java... FX'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-6668213266605733538</id><published>2007-10-17T10:57:00.001-02:00</published><updated>2007-10-17T11:10:29.111-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aprendizado"/><category scheme="http://www.blogger.com/atom/ns#" term="dicas"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="programação"/><category scheme="http://www.blogger.com/atom/ns#" term="sites"/><title type='text'>Java Básico</title><content type='html'>Para quem deseja ingressar no mundo da programação &lt;span style=&quot;font-weight:bold;&quot;&gt;Java&lt;/span&gt;, aconselho que procure primeiramente grupos direcionados ao ensino da linguagem. Recomendo, em nossa língua mater, alguns sites bem interessantes. Segue a lista:&lt;br /&gt;GUJ - &lt;a href=&quot;http://www.guj.com.br&quot;&gt;http://www.guj.com.br&lt;/a&gt; - onde você encontra muito material bem explicado e que vai do básico ao avançado, além de uma equipe que sabe bem do que fala. É considerado o maior site brasileiro de Java. O fórum é muito bom, pode testar.&lt;br /&gt;Projeto JEDI - DFJUG - &lt;a href=&quot;http://www.dfjug.org/DFJUG/&quot;&gt;http://www.dfjug.org/DFJUG/&lt;/a&gt; - Este é fantástico, tem aulas de Java com tutoriais, apostilas (video e PDF) excelentes para quem nunca ouviu falar de Java ou até mesmo está ingressando no mundo da programação. E o melhor de tudo é grátis (e mesmo assim não peca na qualidade). Por motivos técnicos está fora do ar no momento, mas logo deve voltar ao normal.&lt;br /&gt;&lt;br /&gt;Portal Java &lt;a href=&quot;http://www.portaljava.com/&quot;&gt;http://www.portaljava.com&lt;/a&gt; - muito bom. Materiais excelentes.&lt;br /&gt;&lt;br /&gt;Java Free &lt;a href=&quot;http://www.javafree.org/&quot;&gt;http://www.javafree.org&lt;/a&gt; - Ótima fonte de pesquisa quando tiver dúvidas mais complexas.&lt;br /&gt;&lt;br /&gt;Bem, gostaria de me desculpar com outros projetos que não tenha citado, mas é que estes são os que me ajudaram no início e os que me vem a memória no momento.&lt;br /&gt;&lt;br /&gt;Caso desejem fazer cursos de Java, antes vale dar uma olhada nestes sites.&lt;br /&gt;Ainda pra quem quer fazer curso, recomendo que tenham uma base sólida de Orientação a Objetos para somente então iniciar outras matérias dentro do Java.&lt;br /&gt;&lt;br /&gt;Abraços e boa semana.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/6668213266605733538/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/6668213266605733538' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6668213266605733538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/6668213266605733538'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/10/java-bsico.html' title='Java Básico'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-2829781317810255273</id><published>2007-06-29T09:39:00.000-03:00</published><updated>2007-06-29T09:43:12.052-03:00</updated><title type='text'>Sebrae tem cursos online gratuitos</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhReNvxG_ICMtCJLHba2RLs6NC75ZqmYRGVsHdeFGddpGdZAEG8HN1olJoi0FfZovfTWF2b00qXFQB9AkL-_2oKSGWBaCqOcvTcKheThUd0hFtOa5hWMOoK0NFmreBPPoGGVncOxQ/s1600-h/logo_sebrae.gif&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhReNvxG_ICMtCJLHba2RLs6NC75ZqmYRGVsHdeFGddpGdZAEG8HN1olJoi0FfZovfTWF2b00qXFQB9AkL-_2oKSGWBaCqOcvTcKheThUd0hFtOa5hWMOoK0NFmreBPPoGGVncOxQ/s320/logo_sebrae.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5081465759403926242&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Vale a pena aprender sempre um pouco mais! O Sebrae oferece seus cursos gratuitos na web, bastando apenas você se cadastrar. O endereço é &lt;a href=&quot;http://www.ead.sebrae.com.br/&quot;&gt;http://www.ead.sebrae.com.br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Consulte, vale a pena!</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/2829781317810255273/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/2829781317810255273' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2829781317810255273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/2829781317810255273'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/06/sebrae-tem-cursos-online-gratuitos.html' title='Sebrae tem cursos online gratuitos'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEhReNvxG_ICMtCJLHba2RLs6NC75ZqmYRGVsHdeFGddpGdZAEG8HN1olJoi0FfZovfTWF2b00qXFQB9AkL-_2oKSGWBaCqOcvTcKheThUd0hFtOa5hWMOoK0NFmreBPPoGGVncOxQ/s72-c/logo_sebrae.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-1551212609834456484</id><published>2007-06-15T22:58:00.000-03:00</published><updated>2007-06-15T23:03:00.402-03:00</updated><title type='text'>Encontro Brasileiro de Arquitetura da Informação</title><content type='html'>Colocaram no ar o site do 1º Encontro Brasileiro de Arquitetura da Informação. O evento só ocorrerá em outubro e as inscrições ainda não podem ser feitas (pelo menos, não através do site).&lt;br /&gt;&lt;br /&gt;Bem acho que isso ajuda a divulgar um pouco, não to ganhando nada por isso, mas vale a informação ao público em geral. Abraços... ah, o link segue abaixo&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.aibrasil.org/encontro/&quot; title=&quot;1º Encontro Brasileiro de Arquitetura da Informação&quot;&gt;&lt;img src=&quot;http://www.aibrasil.org/encontro/imagens/banner_ai.gif&quot; alt=&quot;Publicidade&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/1551212609834456484/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/1551212609834456484' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/1551212609834456484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/1551212609834456484'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/06/encontro-brasileiro-de-arquitetura-da.html' title='Encontro Brasileiro de Arquitetura da Informação'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-3244937734720778349</id><published>2007-06-09T17:08:00.000-03:00</published><updated>2007-06-09T17:10:44.151-03:00</updated><title type='text'>Fotografia de profissa...</title><content type='html'>Esse cara é muito bom em fotografia política e social: &lt;span style=&quot;font-weight:bold;&quot;&gt;Sergio Dutti&lt;/span&gt;. Vale a pena dar uma olhada no site dele &lt;a href=&quot;http://www.sergiodutti.com/site/&quot;&gt;www.sergiodutti.com/site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraços pra minha tia Estela que mandou esse link.</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/3244937734720778349/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/3244937734720778349' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/3244937734720778349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/3244937734720778349'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/06/fotografia-de-profissa.html' title='Fotografia de profissa...'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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-27526925.post-1502138129463195840</id><published>2007-06-09T16:55:00.000-03:00</published><updated>2007-06-09T17:03:22.899-03:00</updated><title type='text'>JavaMan</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4LpVYkabzQxZileOYIaH30I7bYOsXvBnakJ2h0xhkZMBNrI0m6M3IXe8mXPb9k-FPFPT46HIn1bHspjKM30WXksdf3GrDR5hX00On4HXoH-tRQUqbT-UUE_BNDvk_XJ9OEDLYKQ/s1600-h/penduke.gif&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4LpVYkabzQxZileOYIaH30I7bYOsXvBnakJ2h0xhkZMBNrI0m6M3IXe8mXPb9k-FPFPT46HIn1bHspjKM30WXksdf3GrDR5hX00On4HXoH-tRQUqbT-UUE_BNDvk_XJ9OEDLYKQ/s320/penduke.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5074157607773110882&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Olá internautas... mais um passo para minha carreira: formado em Java - Orientação a Objeto.. só faltam alguns passos para a certificação... um deles é estudar muito. Mas isso pode deixar que eu cuido e muito bem. Estou muito entusiasmado com essa oportunidade e pretendo me dedicar 200% pra ser um exemplo de JavaMan! Ainda mais agora com essa oportunidade de trabalhar em uma empresa que emprega 100% de Java em suas aplicações. O futuro é daqueles que nunca dormem (eu devo ser quase dono dele então...); Tenho um projeto pra desenvolver uns videos e umas aulas de Java. Os videos publicarei no &lt;a href=&quot;http://www.youtube.com&quot;&gt;You Tube&lt;/a&gt; e as aulas colocarei aqui. Bom, um passo de cada vez.&lt;br /&gt;&lt;br /&gt;Um abração pra todas da turma da &lt;a href=&quot;http://www.caelum.com.br&quot;&gt;Caelum&lt;/a&gt;, lá tem um curso do caramba! Vale a pena consultar... quem é bem devagar pra ser auto-didata é a melhor pedida. &lt;br /&gt;&lt;br /&gt;Cris te amo!</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/1502138129463195840/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/1502138129463195840' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/1502138129463195840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/1502138129463195840'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/06/javaman.html' title='JavaMan'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEi4LpVYkabzQxZileOYIaH30I7bYOsXvBnakJ2h0xhkZMBNrI0m6M3IXe8mXPb9k-FPFPT46HIn1bHspjKM30WXksdf3GrDR5hX00On4HXoH-tRQUqbT-UUE_BNDvk_XJ9OEDLYKQ/s72-c/penduke.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-4515309267435324990</id><published>2007-05-31T00:49:00.000-03:00</published><updated>2007-05-31T00:59:31.354-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nextsourcing telecom empresa"/><title type='text'>Nextsourcing - minha nova casa</title><content type='html'>Estou &lt;span style=&quot;font-weight:bold;&quot;&gt;muito feliz&lt;/span&gt; nesta nova jornada na &lt;a href=&quot;www.nextsourcing.com.br&quot;&gt;Nextsourcing Tecnologia&lt;/a&gt; e gostaria de agradecer muito ao Fabio Abs pela oprtunidade e no crédito ao meu trabalho. Sem rasgação de ceda... &lt;br /&gt;&lt;br /&gt;A empresa é uma potência no que diz respeito a gerenciamento de informações, aplicações para Telecom e com alto desempenho nos diferentes ramos em que atua na área tecnológica. Conheçam melhor a mesma em seu site. &lt;a href=&quot;www.nextsourcing.com.br&quot;&gt;www.nextsourcing.com.br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIFiAzLe3kDJYaJqo02NGSKZhrwjazT7BL7CEbc5cdAD4rDRoSvFFxpv5baGyPIMaalzTPKIRGjxgDpm-nrLsJLRLCLFSLIcBOYawrqVdPkmaaHmRXH_MnJOrwi3-fJ9jU4Gvw_A/s1600-h/logo_nextsourcing_01.gif&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIFiAzLe3kDJYaJqo02NGSKZhrwjazT7BL7CEbc5cdAD4rDRoSvFFxpv5baGyPIMaalzTPKIRGjxgDpm-nrLsJLRLCLFSLIcBOYawrqVdPkmaaHmRXH_MnJOrwi3-fJ9jU4Gvw_A/s200/logo_nextsourcing_01.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5070568907148451810&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/4515309267435324990/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/4515309267435324990' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4515309267435324990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4515309267435324990'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/05/nextsourcing-minha-nova-casa.html' title='Nextsourcing - minha nova casa'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEiIFiAzLe3kDJYaJqo02NGSKZhrwjazT7BL7CEbc5cdAD4rDRoSvFFxpv5baGyPIMaalzTPKIRGjxgDpm-nrLsJLRLCLFSLIcBOYawrqVdPkmaaHmRXH_MnJOrwi3-fJ9jU4Gvw_A/s72-c/logo_nextsourcing_01.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27526925.post-4335452240268966696</id><published>2007-04-05T15:52:00.000-03:00</published><updated>2007-04-05T16:22:53.414-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="design"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="OS"/><category scheme="http://www.blogger.com/atom/ns#" term="software livre"/><title type='text'>Para amantes do mundo livre</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFFldm_wrLts17oKGrUDq-AY353U0Ipbe-sZfMCUh8EYdYzLnX4blvnAV7z_ZPQ9GNQPgZEkljWtJOF1pVVMSTDDOLz_cHbUaAFL6wbjeTctLuL3s9KT4OJZeYxpscZKY4i_yYw/s1600-h/49.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFFldm_wrLts17oKGrUDq-AY353U0Ipbe-sZfMCUh8EYdYzLnX4blvnAV7z_ZPQ9GNQPgZEkljWtJOF1pVVMSTDDOLz_cHbUaAFL6wbjeTctLuL3s9KT4OJZeYxpscZKY4i_yYw/s320/49.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5050025433560530962&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;É importante sempre ressaltar que o &lt;a href=&quot;http://pt.wikipedia.org/wiki/Software_livre&quot;&gt;software livre&lt;/a&gt; busca mudar a forma de pensar software, como visto desde os primórdios de seu uso em desktops. A idéia é que cada um possa usar aquele que tem maior afinidade ou que seja mais facilitada sua atividade no computador.&lt;br /&gt;&lt;br /&gt;Eu particularmente sempre quis um sistema operacional livre, mas até hoje não tive a oportunidade de instalar um Linux e ficar com ele por muito tempo. Isso porque não consigo trabalhar efetivamente da mesma forma que trabalho com o Windows XP, mas a questão aqui não está na OS e sim nos softwares que eu uso em conjunto, assim como a praticidade em mexer em tudo isso que eu uso. Sou designer. Adoraria usar um &lt;a href=&quot;http://www.br.redhat.com/fedora/&quot;&gt;Fedora &lt;/a&gt;com um &lt;a href=&quot;http://www.gimp.org/&quot;&gt;Gimp &lt;/a&gt;&quot;CS&quot; ;) decente que me proporcionasse maiores recursos, e algo como o Corel Draw e o Dreamweaver (livres, é claro). Mas não consegui ainda encontrar no mundo livre essas ferramentas de produção tão necessárias para meu dia-a-dia; Por gentileza, se eu estiver errado me corrigam... aliás gostaria de estar errado.&lt;br /&gt;&lt;br /&gt;Ouvi falar de emulação de softwares e OS no linux, mas acho isso muito complicado e não sei até onde isso ajuda.&lt;br /&gt;&lt;br /&gt;Enfim, acho que é uma boa coisa que virá com o tempo e espero por isso ansiosamente.&lt;br /&gt;&lt;br /&gt;Abraços</content><link rel='replies' type='application/atom+xml' href='http://felipecaparelli.blogspot.com/feeds/4335452240268966696/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/27526925/4335452240268966696' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4335452240268966696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27526925/posts/default/4335452240268966696'/><link rel='alternate' type='text/html' href='http://felipecaparelli.blogspot.com/2007/04/para-amantes-do-mundo-livre.html' title='Para amantes do mundo livre'/><author><name>Felipe Caparelli</name><uri>http://www.blogger.com/profile/08350985414867372190</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/AVvXsEhlFFldm_wrLts17oKGrUDq-AY353U0Ipbe-sZfMCUh8EYdYzLnX4blvnAV7z_ZPQ9GNQPgZEkljWtJOF1pVVMSTDDOLz_cHbUaAFL6wbjeTctLuL3s9KT4OJZeYxpscZKY4i_yYw/s72-c/49.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>