<?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-6641959439683393974</id><updated>2012-01-29T20:46:30.756-02:00</updated><category term='eventos'/><category term='AndroidConf'/><category term='Neto Marin'/><category term='Android'/><title type='text'>Neto Marin Mobility Blog</title><subtitle type='html'>Because WE are mobile!!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-667699669691604452</id><published>2011-11-07T10:32:00.003-02:00</published><updated>2011-11-07T11:05:43.712-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AndroidConf'/><category scheme='http://www.blogger.com/atom/ns#' term='Neto Marin'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>Globalcode presente na AndroidConf</title><content type='html'>Ola pessoal,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A Globalcode sempre participou e também sempre incentivou os mais diversos eventos de tecnologia, principalmente quando voltado para os desenvolvedores. E não seria diferente com o &lt;a href="http://androidconf.com.br/"&gt;AndroidConf&lt;/a&gt;, evento voltado para os desenvolvedores Android que será realizado no Rio de Janeiro no dia 26 de Novembro.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 116px;" src="http://3.bp.blogspot.com/-CM2yGbx6OTU/TrfWDEyd9XI/AAAAAAAAAo0/u9PLgKG77ac/s400/banner_android_conf.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5672237604009801074" /&gt;&lt;div&gt;A &lt;a href="http://androidconf.com.br/programacao"&gt;programação&lt;/a&gt; já está disponível no site do evento, e eu terei a honra de apresentar a palestra "Persistência de dados em aplicações Android", representando a Globalcode que é um dos patrocinadores do evento!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;O evento também contará com outras ótimas palestras e keynotes, que com certeza, irão motivar e esclarecer muito os desenvolvedores Android. Sem falar que é uma ótima oportunidade para você aumentar e melhorar seu networking, saber o que os outros desenvolvedores estão fazendo e quem sabe, conseguir ótimas oportunidades para sua carreira!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eu vou ! E você?&lt;/div&gt;&lt;div&gt;Nos vemos lá!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Abraços&lt;/div&gt;&lt;div&gt;Neto&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-667699669691604452?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/667699669691604452/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=667699669691604452' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/667699669691604452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/667699669691604452'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2011/11/globalcode-presente-na-androidconf.html' title='Globalcode presente na AndroidConf'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-CM2yGbx6OTU/TrfWDEyd9XI/AAAAAAAAAo0/u9PLgKG77ac/s72-c/banner_android_conf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-5560240690551284681</id><published>2009-11-21T20:37:00.002-02:00</published><updated>2009-11-21T21:24:25.244-02:00</updated><title type='text'>Apresentação do CoSMo no Devoxx 2009</title><content type='html'>Ola a todos!!&lt;span id="result_box" class="long_text"&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="Hi all!!!" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;&lt;br /&gt;&lt;br /&gt;Primeiro de tudo, uma pequena explicação: Eu resolvi registrar meu dominio para poder criar um blog melhor e também poder fazer algumas coisas mais que vinha planejando, como por exemplo um webservice pro CoSMo e umas aplicações pro Facebook. E ai veio a dúvida: postar em português ou inglês?&lt;br /&gt;E então, devido a aspirações de carreira, alguns amigos que não falam português e claro, a vontade de praticar minha escrita em outro idioma resolvi postar em inglês. Para aqueles que não falam inglês ou estão com preguiça, eu irei manter sempre aqui uma versão em português dos posts, mas as demais seções do meu site vou manter em inglês, sorry! ;-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="After a tenebrous and long winter, I'm back blogging about mobility and other things I'm used to share with you." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Mas, depois de um longo e tenebroso inverno, estou de volta blogando sobre mobilidade e outras coisas que eu estou acostumado a compartilhar com você. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="And, as you can see, my blog has a &amp;quot;new house&amp;quot; because I finally decided to register my own domain, and now, I will be able to do more things than just blogging, for an example: share my &amp;quot;toy projects&amp;quot;" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;E, como você pode ver, meu blog está de "casa nova", porque eu finalmente decidi registrar meu próprio domínio, e agora, eu serei capaz de fazer mais coisas do que apenas os posts, por exemplo: compartilhar meus "toy projects" &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title=", CoSMo updates, pictures and much more!" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;, atualizações do Cosmo, fotos e muito mais! &lt;/span&gt;&lt;span title=":)" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;:)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="But, let's go to the subject of this post: My quick presentation on Devoxx 2009 about the CoSMo." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Mas, vamos ao assunto deste post: Minha apresentação no Devoxx 2009, sobre o Cosmo. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="Ok, for you that don't know what CoSMo is: it is a open-source project created in 2007 based on the JustaJava mobile application (more details available on project website)." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Ok, para você que não sabe o Cosmo é: é um projeto open-source criado em 2007 com base na aplicação JustaJava Mobile (mais informações disponíveis no &lt;a href="http://cosmo.dev.java.net/"&gt;site do projeto&lt;/a&gt;). &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="It's a Java ME application to show on your phone (Java enabled) the schedule from conferences." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;É uma aplicação Java ME para mostrar em seu celular (Java enabled) o cronograma de eventos. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="With this application, it's possible to view all the schedule, session's details and speakers' resume." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Com esta aplicação, é possível ver todo o cronograma, os detalhes da palestra e até o currículo do palestrante. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="And much more is coming..." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;E muito mais está para vir ... &lt;/span&gt;&lt;span title=":)" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;:)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title="The session" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;&lt;span style="font-weight: bold;"&gt;A apresentação&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title="The session was in Tuesday and I had 15 minutes to explain what CoSMo is, the features, roadmap and (of course) a little demo of the current version and the newest UI." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;A apresentação foi na terça-feira e eu tinha 15 minutos para explicar o que é Cosmo, as características, roteiro e (é claro) uma pequena demonstração da versão atual e também da nova interface do usuário. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="I were pretty ansious and a little nervous, but I think it's normal because it was my first international presentation." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Eu estava muito ansioso e um pouco nervoso, mas acho que é normal, afinal, foi a minha primeira apresentação internacional. &lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="And, everything went well and I also talked with Sebastien from Conference Guide (http://conferencegui.de) about a partnership between his software and CoSMo." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;E, tudo correu bem e no final da palestra eu falei com Sebastien o desenvolvedor do Conference Guide (&lt;a href="http://conferencegui.de/"&gt;http://conferencegui.de&lt;/a&gt;) sobre uma parceria entre o seu software e Cosmo. &lt;/span&gt;&lt;span title="And, at the end of this post you can find the presentation slides." onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;E, no final deste post você vai encontrar os slides da apresentação.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title="News about CoSMo:" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;&lt;span style="font-weight: bold;"&gt;Notícias sobre Cosmo: &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255);" title="I'm just finishing the new UI interface, and, I hope, soon I'll write another post describing the new interface and sharing the code with you!" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;Estou terminando a interface nova interface de usuário, e, espero, em breve escrever um post descrevendo a nova interface e compartilhar de código com vocês! &lt;/span&gt;&lt;span title=":)" onmouseover="this.style.backgroundColor='#ebeff9'" onmouseout="this.style.backgroundColor='#fff'"&gt;:)&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2514310"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/netomarin/cosmo-quick-devoxx09" title="Cosmo - Quick Devoxx09"&gt;Cosmo - Quick Devoxx09&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cosmoquickdevoxx09-091116180133-phpapp02&amp;amp;stripped_title=cosmo-quick-devoxx09"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cosmoquickdevoxx09-091116180133-phpapp02&amp;amp;stripped_title=cosmo-quick-devoxx09" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/netomarin"&gt;Antonio  Marin Neto&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-5560240690551284681?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/5560240690551284681/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=5560240690551284681' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5560240690551284681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5560240690551284681'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/11/apresentacao-do-cosmo-no-devoxx-2009.html' title='Apresentação do CoSMo no Devoxx 2009'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-948007485818517934</id><published>2009-09-15T18:57:00.003-03:00</published><updated>2009-09-17T15:59:27.290-03:00</updated><title type='text'>Criando aplicativos JME para devices touch screen</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Conforme prometido na apresentação, estou compartilhando com vocês os slides da palestra "Criando aplicativos JME para devices touch screen":&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_2013457"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/netomarin/java-me-touchscreen-just-java2009" title="Java Me Touchscreen Just Java2009"&gt;Java Me Touchscreen Just Java2009&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javametouchscreen-justjava2009-090917131841-phpapp01&amp;amp;stripped_title=java-me-touchscreen-just-java2009"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javametouchscreen-justjava2009-090917131841-phpapp01&amp;amp;stripped_title=java-me-touchscreen-just-java2009" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/netomarin"&gt;netomarin&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;Além disso, você pode fazer o download do aplicativo que faz uma linha no visor do telefone conforme o usuário passa o dedo no device touch screen. Para baixar o código, &lt;a href="http://www.4shared.com/file/133407406/94d5de6b/HelloTouch.html"&gt;clique aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Obrigado a todos que compareceram a palestra, e divirtam-se.&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-948007485818517934?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/948007485818517934/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=948007485818517934' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/948007485818517934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/948007485818517934'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/09/criando-aplicativos-jme-para-devices.html' title='Criando aplicativos JME para devices touch screen'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-2495728792523664880</id><published>2009-09-10T12:26:00.002-03:00</published><updated>2009-09-10T14:32:49.638-03:00</updated><title type='text'>Nos vemos no JustJava 2009 !</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Mais um m&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/Sqk4G8g3m6I/AAAAAAAAAZo/35dpHxsrMVw/s1600-h/justjava_logo2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 152px; height: 85px;" src="http://2.bp.blogspot.com/_boE2hlsYam4/Sqk4G8g3m6I/AAAAAAAAAZo/35dpHxsrMVw/s320/justjava_logo2.png" alt="" id="BLOGGER_PHOTO_ID_5379892921845128098" border="0" /&gt;&lt;/a&gt;ês de Setembro e isso é sinal de que mais um JustJava vem por ai. E como já vem acontecendo a alguns anos, o evento vai ser realizado nas excelentes instalações do Senac Sto. Amaro nos dias 15, 16 e 17 de setembro (próxima semana).&lt;br /&gt;&lt;br /&gt;A grade já pode ser consultada no endereço &lt;a href="http://grade.justjava.com.br/"&gt;http://grade.justjava.com.br&lt;/a&gt; e como sempre, os temas são os mais variados e atualizados possíveis. A grade também estará disponível através do CoSMo, aplicação que você pode instalar em seu celular e consultar a grade a qualquer momento.&lt;br /&gt;Eu estarei participando com duas sessões:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;JME 360 - do Sun SPOT a TV Digital&lt;/span&gt;: Irei apresentar juntamente com o Igor Medeiros uma visão geral do Java em sistemas embarcados, falando de Java Card, Sun SPOT, Lego Mindstorm, telemetria, celulares e também TV Digital.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Criando aplicativos Java ME para devices touch screen&lt;/span&gt;: com um número cada vez maior de dispositivos com touch screen disponíveis no mercado, é importante que você saiba as diferenças de criar algo para esse tipo de dispositivo e conhecer como o JME pode te ajudar nisso.&lt;/li&gt;&lt;/ul&gt;Para os interessados, mais detalhes do evento:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Site: &lt;a href="http://www.justjava.com.br/" target="_blank"&gt;http://www.justjava.com.br/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Grade: &lt;a href="http://grade.justjava.com.br/" target="_blank"&gt;http://grade.justjava.com.br/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De 15 a 17 de Setembro de 2009 (8h30 às 19h30)&lt;/div&gt;  &lt;div&gt;Local:&lt;/div&gt;&lt;div&gt;Centro Universitário SENAC - CAMPUS SANTO AMARO&lt;/div&gt;&lt;div&gt;Av. Engenheiro Eusébio Stevaux, n. 823&lt;/div&gt;&lt;div&gt;Santo Amaro - 04696-000 - São Paulo / SP&lt;/div&gt;&lt;br /&gt;Nos vemos lá! ;-)&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-2495728792523664880?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/2495728792523664880/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=2495728792523664880' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/2495728792523664880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/2495728792523664880'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/09/nos-vemos-no-justjava-2009.html' title='Nos vemos no JustJava 2009 !'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_boE2hlsYam4/Sqk4G8g3m6I/AAAAAAAAAZo/35dpHxsrMVw/s72-c/justjava_logo2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-8502496070355961388</id><published>2009-07-18T14:20:00.007-03:00</published><updated>2009-07-24T16:41:42.323-03:00</updated><title type='text'>A pergunta maldita: Qual a melhor plataforma móvel?</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Nas últimas duas semanas a lista de Java ME do &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SouJava&lt;/span&gt; (para se inscrever envie e-mail para &lt;a href="maito:j2me-list-subscribe@soujava.dev.java.net"&gt;j2me-list-subscribe@soujava.dev.java.net&lt;/a&gt;) o assunto a respeito do futuro das plataformas mobiles e do próprio &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;JME&lt;/span&gt; voltou a gerar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;flames&lt;/span&gt; e opiniões &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;acalouradas&lt;/span&gt; e bem parciais ;-) (me incluo nessas opiniões).&lt;br /&gt;Então, resolvi escrever um pouco sobre essa pergunta "maldita": Qual a melhor plataforma móvel?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;O Cardápio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Antes de qualquer coisa, é preciso saber quais são as opções entre plataformas e linguagens que demos povoando o mercado:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Symbian&lt;/span&gt; (S60): Presente principalmente nos &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;smartphones&lt;/span&gt; da &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Nokia&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;iPhone OS: Sistema operacional criado pela Apple para o iPhone&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Android&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SO&lt;/span&gt; criado pelo Google e já &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;adotado&lt;/span&gt; pela &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;HTC&lt;/span&gt; e Motorola. Logo, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Sony&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Ericsson&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Linux: Algumas distribuições de Linux já foram vistas povoando alguns celulares, como a A1200 da Motorola.&lt;/li&gt;&lt;li&gt;Plataformas &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;proprietárias&lt;/span&gt;: Para os dispositivos mais simples (não &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;smartphones&lt;/span&gt;) as fabricantes possuem seus próprios &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SOs&lt;/span&gt;, mais simples.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;A Plataforma Java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Porque eu não coloquei o Java como uma plataforma móvel junto com as demais acima? Porque ali preferi listar os &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;SOs&lt;/span&gt;, e que são de fato uma plataforma. O Java ME ou &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;FX&lt;/span&gt; Mobile são especificações ou linguagens e que com &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;excessão&lt;/span&gt; do iPhone OS rodam em todas as plataformas citadas.&lt;br /&gt;Ou seja, podem espernear e gritar a vontade, mas quando se fala em número de aparelhos que sua aplicação pode alcançar, uma aplicação em Java ME tem muito mais potencial do que as demais.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Recursos nativos x Java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;É (muito) óbvio dizer que Objective-C (iPhone) ou &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Symbian&lt;/span&gt; possuam mais recursos do que &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;JME&lt;/span&gt; por um simples motivo: são as linguagens nativas do telefone. Então é claro que o acesso a um recurso novo ou diferenciado vai estar disponível primeiro nessas linguagens.&lt;br /&gt;Entramos então na questão de que o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;JCP&lt;/span&gt; (Java &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Community&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Process&lt;/span&gt;) que foi criado para ajudar no crescimento do Java está na verdade atrapalhando o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;JME&lt;/span&gt;, mas isso é assunto pra outro &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;post&lt;/span&gt; (bastante &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;polêmico&lt;/span&gt; por sinal...), já que ele demora em especificar a API para novos recursos, exemplos: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;MIDP&lt;/span&gt; 3, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Location&lt;/span&gt; API 2.0 e outras...&lt;br /&gt;&lt;br /&gt;Mas, o que dizer de recursos já &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;sedimentados&lt;/span&gt; como o &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;bluetooth&lt;/span&gt; por exemplo? Eu não preciso aprender como &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Symbian&lt;/span&gt; ou como o Objective-C trata isso, eu preciso saber apenas a API da &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;JSR&lt;/span&gt;-82 e eu teria meu aplicativo compatível com todos os &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;devices&lt;/span&gt;... lindo não?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;E a resposta pra pergunta maldita?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Poderia escrever uma dissertação de mestrado sobre essa &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;pergunta&lt;/span&gt;, usar diferentes aspectos de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;comparação&lt;/span&gt; e então chegar a uma conclusão e mesmo assim teria milhares de pessoas que iriam contestar, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;esperniar&lt;/span&gt; e me xingar. Então, eu vou usar uma linha de &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_37"&gt;raciocínio&lt;/span&gt; bem simples: número de potenciais clientes.&lt;br /&gt;&lt;br /&gt;O pessoal no geral fica se &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;degladiando&lt;/span&gt; sobre os &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;SOs&lt;/span&gt; dos &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;smartphones&lt;/span&gt; e com recursos super modernos, que se pegarmos o Brasil, estão na mão de menos de 30% do usuários de telefone celular.&lt;br /&gt;Então, temos um número enorme de pessoas usando celulares &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;low&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;end&lt;/span&gt; que custam menos do que 150 dólares com recursos (pasmem!!) ainda limitados. Sim, são MILHÕES de celulares sem &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;touch&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;screen&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;GPS&lt;/span&gt; ou &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;acelerometro&lt;/span&gt;? &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_47"&gt;Incrível&lt;/span&gt; não?!?! É, mas isso existe ainda! ;-)&lt;br /&gt;&lt;br /&gt;E acredite, essas pessoas consomem e também querem utilizar seu celular para algo mais além de simplesmente telefonar, cabe a nós (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;desenvolvedores&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;designers&lt;/span&gt;, pesquisadores, gerentes, etc) oferecer a esses usuários serviços e &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;softwares&lt;/span&gt; simples de usar e bonitos.&lt;br /&gt;&lt;br /&gt;E adivinhe só, qual a linguagem que "ataca" principalmente esses telefones? Sim, é o "condenado" Java ME! Não há números &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;exatos&lt;/span&gt; (e seria quase impossível conseguir algo verdadeiro), mas o número de celulares &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;low&lt;/span&gt; / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;middle&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;end&lt;/span&gt; é &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;esmagadoramente&lt;/span&gt; maior do que o número de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;smartphones&lt;/span&gt; disponíveis por ai.&lt;br /&gt;Além disso, seu aplicativo Java também irá rodar nesses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;smartphones&lt;/span&gt; (menos no iPhone).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;E o mercado corporativo?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos imaginar uma situação e VOCÊ responde:&lt;br /&gt;Seu cliente chega e diz que precisa colocar em campo uma força de vendas automatizada, mas esses trabalhadores também vão usar o dispositivo para fazer ligações, ou seja, são telefones celulares. E ele tem um contrato com uma operadora para conseguir os telefones mais baratos e que além disso ele já tem uma base com vários &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;Nokia&lt;/span&gt;, Motorola e alguns &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;LG&lt;/span&gt; (!!) mas que ele ta pensando em adquirir mais alguns que você aconselhar.&lt;br /&gt;Ah, e além disso, esse telefone passa por situações onde ele pode cair, riscar e em sua grande maioria é operado por pessoas com pouco relacionamento com a tecnologia.&lt;br /&gt;&lt;br /&gt;Me diga você, o que &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;você&lt;/span&gt; escolhe?&lt;br /&gt;&lt;br /&gt;Bom, podem começar os &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;flames&lt;/span&gt; e xingamentos. Mas essa é a minha opinião, pois apesar de não ser algo com totais recursos, continua sendo uma linguagem de fácil aprendizado, menos segmentação e maior número de &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_62"&gt;possíveis&lt;/span&gt; usuários.&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-8502496070355961388?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/8502496070355961388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=8502496070355961388' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8502496070355961388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8502496070355961388'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/07/pergunta-maldita-qual-melhor-plataforma.html' title='A pergunta maldita: Qual a melhor plataforma móvel?'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7177214520203701988</id><published>2009-07-04T14:59:00.004-03:00</published><updated>2009-07-07T16:25:11.108-03:00</updated><title type='text'>Porque as pessoas se viciam no Twitter ?!?</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Sei que algumas pessoas devem estar se roendo pra ver um trecho de código aqui, ou então saber mais detalhes do &lt;a href="http://www.twitter.com/botspo1"&gt;BotSpot1&lt;/a&gt;, mas o post anterior fez um "sucesso" que eu não esperava. Um pouco inclusive por conta do Twitter, uma ferramenta onde cada vez mais gente começa sua experiência de Web 2.0 e daí em diante, se vicia. Então, por isso resolvei analisar um pouco porque as pessoas acabam se viciando em algo que na sua essência é extremante SIMPLES!&lt;br /&gt;Só para vocês terem noção, ao buscar no Google as palavras (juntas) TWITTER e ADDICTED o retorno é de (espantosos) 32.1000.000 resultados!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Simples assim!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_boE2hlsYam4/Sk-ZrUCWSPI/AAAAAAAAAZg/t9GLsfyJ8hk/s1600-h/twitter_logo_header.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 155px; height: 36px;" src="http://1.bp.blogspot.com/_boE2hlsYam4/Sk-ZrUCWSPI/AAAAAAAAAZg/t9GLsfyJ8hk/s320/twitter_logo_header.png" alt="" id="BLOGGER_PHOTO_ID_5354667451358791922" border="0" /&gt;&lt;/a&gt;A grande maioria das pessoas passa sua vida inteira tentando ter idéias brilhantes, e principalmente o pessoal que trabalha com tecnologia quer marcar o seu "nome" na história inventando um serviço, um software ou qualquer coisa que todos usem (mesmo que o autor não ganhe nada) e que se torne uma febre mundial.&lt;br /&gt;E como a maioria das grandes idéias, o Twitter veio de um momento de crise e foi resultado da melhoria de uma idéia. Essa história pode ser vista com mais detalhes no post &lt;a href="http://www.hephesto.com/agrega/?p=3856"&gt;"Como nasceu o Twitter"&lt;/a&gt; de Kris do blog Agrega.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Limitação ou inovação ? ;-)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mas afinal, o que há demais em uma página simples (sem refresh automático), com um campo de texto com limite de 140 caracteres e abaixo uma lista do que os seus "amigos" estão fazendo ou falando?&lt;br /&gt;&lt;br /&gt;Esse é justamente o motivo do sucesso. A simplicidade da sua interface faz com que mesmo os usuários não muito familiarizados com a tecnologia ou os com uma infra-estrutura precária possam participar.&lt;br /&gt;E também, o que parece ser um limite do seu post é outro grande fator de sucesso, já que ler 140 caracteres é algo muito mais rápido do que ler posts de blog ou noticias inteiras. O seu seguidor pode ter uma "introdução" sobre o assunto e ai escolher se quer saber mais ou não e isso é fundamental em uma época onde tempo livre é algo extremante raro.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Fazendo amizades...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Isso sem falar o quanto o Twitter está aproximando as pessoas. Através dessa ferramentas os laços de amizade entre as pessoas vem se "fortalecendo" pois é possível saber mai facilmente o que fulano ou ciclano anda fazendo ou pensando. Além disso, é uma ótima forma de se pedir a opinião pra diversos amigos de uma vez só ou até tirar uma dúvida rapidamente! :-)&lt;br /&gt;&lt;br /&gt;Também se tornou comum as celebridades (ajudadas por assistentes ou não) conversarem com o público, divulgarem seus shows, suas músicas ou simplesmente contar o que acabaram de jantar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Ou seja...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O Twitter passou de uma simples idéia na Web 2.0 para se tornar protocolo de comunicação de diversos aplicativos que ficam coletando informações e com isso uma mania. Onde as pessoas pensam primeiro em "colocar no twitter" do que simplesmente contar para um amigo ou para sua namorada. Sem falar no caso de pessoas que trabalham uma do lado da outra e ficam sabendo noticias a respeito do seu "vizinho" através do Twitter.&lt;br /&gt;&lt;br /&gt;Há, claro, aqueles que usam muito isso a seu favor, seja aumentando o seu networking ou até recebendo newsletters de forma mais rápida e eficiente, já que é você quem determina quem você quer seguir e pode mudar isso quando quiser.&lt;br /&gt;&lt;br /&gt;Não usa o Twitter? Experimente por 1 semana twittando e seguindo seus amigos e algumas celebridades (eu gosto muito dos humoristas...) que você terá sua própria opinião!&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7177214520203701988?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7177214520203701988/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7177214520203701988' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7177214520203701988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7177214520203701988'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/07/porque-as-pessoas-se-viciam-no-twitter.html' title='Porque as pessoas se viciam no Twitter ?!?'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_boE2hlsYam4/Sk-ZrUCWSPI/AAAAAAAAAZg/t9GLsfyJ8hk/s72-c/twitter_logo_header.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-8109335779269292828</id><published>2009-07-03T00:59:00.003-03:00</published><updated>2009-07-03T16:06:22.051-03:00</updated><title type='text'>Compartilhando... sua vida...</title><content type='html'>Esse post não tem nada de técnico, trecho de código ou algum tutorial. É apenas uma curta análise e a minha opinião pessoal sobre o crescimento incrível dos serviços de Web 2.0 com cunho "social".&lt;br /&gt;&lt;br /&gt;É incrível como hoje em dia tudo tem que ser compartilhado: As fotos da últimas festa, a lista das músicas que você ouve durante o dia (e as próprias músicas), o que você está fazendo num determinado momento, onde você está, qual foi o percurso que você fez no treino de corrida da manhã e até informar as pessoas o que você esta comendo.&lt;br /&gt;E o mais engraçado é que algumas pessoas "acusam" o Google de ler seus e-mails (por causa do GMail), saber quem são seus amigos (Orkut), saber em quais sites você navega (Chrome) e mais uma série de informações que ele recolhe através de seus serviços, mas não reclamam de expor sua vida completa através de diversas ferramentas na Internet.&lt;br /&gt;&lt;br /&gt;Isso sem falar da sensação do momento: Twitter!&lt;br /&gt;Hoje em dia celebridades e anônimos passam o dia emitindo opiniões, trocando noticias, links e até fotos. Na minha opinião o maior exemplo de que o Twitter virou a principal media foi a morte do Michael Jackson. Eu (pelo menos) fique sabendo pelo Twitter antes de ler em qualquer site de noticias "convencional".&lt;br /&gt;Outra coisa que fascina no Twitter é como ele é capaz de aproximar pessoas. Você se acha mais amigo de fulano simplesmente porque sabe que naquele momento ele está em uma reunião X discutindo o assunto Y e tem uma certa opinião.&lt;br /&gt;&lt;br /&gt;E por fim, mas não menos importante, o melhor é ter tudo isso na palma da sua mão. Se foi o tempo em que tínhamos que ter um trambolho (computador) ligado fisicamente a um cabo pra ter acesso a tudo isso!&lt;br /&gt;Basta colocar seu celular pra fazer algo a mais do que receber chamadas e dar toques a cobrar nos seus amigos. Com alguns programinhas instalados no seu celular você pode:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Acessar MSN, GoogleTalk ou qualquer outro programa de MI.&lt;/li&gt;&lt;li&gt;Checar seu e-mail.&lt;/li&gt;&lt;li&gt;Atualizar no mapa a sua localização atual através do Google Latitude.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Postar no twitter que acabou de entrar no ônibus e que está atrasado.&lt;/li&gt;&lt;li&gt;Tirar uma foto de um amigo que não via a muito tempo e imediatamente postar no Twitter e subir também para o seu álbum no Facebook ou MySpace.&lt;/li&gt;&lt;li&gt;Ouvir sua música preferida e atualizar no Last.FM que você acabou de ouvir.&lt;/li&gt;&lt;/ul&gt;Enfim, hoje não há invasão de privacidade, mas sim um compartilhamento tão grande de informações que a estamos perdendo a noção do que é privado ou público. Só espero que isso não gere uma paranóia e tudo isso comece a retrair.&lt;br /&gt;&lt;br /&gt;Bom, é isso... depois volto com os códigos Java e outras coisas mais.&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-8109335779269292828?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/8109335779269292828/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=8109335779269292828' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8109335779269292828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8109335779269292828'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/07/compartilhando-sua-vida.html' title='Compartilhando... sua vida...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-8260850157336353971</id><published>2009-07-01T16:50:00.003-03:00</published><updated>2009-07-01T18:02:37.188-03:00</updated><title type='text'>Começando com Sun SPOT</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Após ver o pessoal ganhando spots no M3DD e também depois de algumas demonstrações do Roger Brinkley, eu fiquei ainda mais curioso e com vontade de fazer algumas "brincadeiras" com esse interessante dispositivo. Foi então que lembrei que aqui no INdT temos dois kits desses e com isso poderia bolar alguma coisa para começar a entender o funcionamento desse "negócio".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pro-linux.de/NB2/images/indiv/sunspot.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 304px; height: 410px;" src="http://www.pro-linux.de/NB2/images/indiv/sunspot.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Afinal, o que é o Sun SPOT ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Trata-se de um dispositivo criado pela Sun como o objetivo de promover a pesquisa e experimentos utilizando a tecnologia JME. Como mostra a figura ao lado, ele é composto por:&lt;ul&gt;&lt;li&gt;Sunroof: Uma capa de acrilico para proteger a placa e compor o spot.&lt;/li&gt;&lt;li&gt;Sensor board: Uma placa com sensores de temperatura, luminosidade, acelerometro, 8 leds e dois botões.&lt;/li&gt;&lt;li&gt;Processor board: Um pequeno processador que receberá suas MIDlet (SIM, MIDLETS) e irá fazer todo esse conjunto funcionar.&lt;/li&gt;&lt;/ul&gt;Além disso ele possui um rádio transmissor que permite que ele se comunique com uma estação radio-base que normalmente fica ligada via USB em um PC (Mac, Windows, Linux, etc) com uma aplicação que possa fazer a interação que seja necessária.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gostei, como consigo um?&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/SkvGVTu32wI/AAAAAAAAAZQ/t6yh0EOEC7s/s1600-h/alexandreganhandosunspot.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 196px; height: 303px;" src="http://2.bp.blogspot.com/_boE2hlsYam4/SkvGVTu32wI/AAAAAAAAAZQ/t6yh0EOEC7s/s320/alexandreganhandosunspot.jpg" alt="" id="BLOGGER_PHOTO_ID_5353590651436391170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Então, esse é um grande problema! Devido ao fato dele possuir um rádio transmissor ele se torna um dispositivo que precisa da homologação da ANATEL, e isso é um processo altamente burocrático e demorado.&lt;br /&gt;Você pode tentar importá-lo, comprando no site &lt;a href="http://www.sunspotworld.com/"&gt;Sun SPOT World&lt;/a&gt;, mas talvez vá ter alguns problemas. Outra opção é que em alguma viagem que você (ou um amigo) faça aos EUA, você pode comprar o dispositivo por lá e trazer na mala. OU, ser muito sortudo como o Igor Medeiros ou muito chorão como o Alexandre Gomes e ganhar um quando alguém da Sun estiver em algum evento que você está! :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalando&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A instalação é bem tranquila, basta visistar o site Sun SPOT World Manager e fazer a instalação pelo web start oferecido. O problema é, se você tem um Mac OS X (o meu caso) o funcionamento pode não ocorrer tão bem. E aí, ter que apelar para um VirtualBox ou VMWare, eu estou usando na VMWare.&lt;br /&gt;Depois, o primeiro passo é atualizar o firmware dos seus spots via Spot Manager.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BotSpot1 - O SPOT que usa o Twitter.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para não estender esse post, não vou entrar em detalhes de código. Vou apenas apresentar o BotSpot1. É uma aplicação que fiz em parceria com um amigo e que tem como objetivo ler de hora em hora a temperatura da sala onde trabalho, enviar via rádio para a estação radio base e a aplicação host publica essa informação no twitter.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_boE2hlsYam4/SkvOgLWbECI/AAAAAAAAAZY/QclRfMTUq7A/s1600-h/14964179.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_boE2hlsYam4/SkvOgLWbECI/AAAAAAAAAZY/QclRfMTUq7A/s320/14964179.jpg" alt="" id="BLOGGER_PHOTO_ID_5353599634257940514" border="0" /&gt;&lt;/a&gt;Para acompanhar, basta visitar o perfil do BotSpot no twitter acessando &lt;a href="http://www.twitter.com/botspot1"&gt;http://www.twitter.com/botspot1&lt;/a&gt;. Por enquanto ele apenas informa através do microblog, a próxima feature que estará disponível vai ser a interação com o spot através de posts direcionados para ele (usando @botspot1).&lt;br /&gt;&lt;br /&gt;Nos próximos posts vou explicar como criar uma aplicação, como fazer o deploy no spot e como rodar uma host application.&lt;br /&gt;&lt;br /&gt;Fique ligado!&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-8260850157336353971?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/8260850157336353971/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=8260850157336353971' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8260850157336353971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8260850157336353971'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/07/comecando-com-sun-spot.html' title='Começando com Sun SPOT'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_boE2hlsYam4/SkvGVTu32wI/AAAAAAAAAZQ/t6yh0EOEC7s/s72-c/alexandreganhandosunspot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-4824164199749203462</id><published>2009-06-30T11:24:00.003-03:00</published><updated>2009-06-30T12:08:03.919-03:00</updated><title type='text'>M3DD LA - Goiânia</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Depois de um tempo de ausência estou de volta com algumas novidades. No dia 20 de junho tive o prazer de participar do evento &lt;a href="http://www.m3ddla.com.br/"&gt;M3DD LA&lt;/a&gt; em Goiânia apresentando uma palestra sobre a plataforma Nokia WRT Widgets.&lt;br /&gt;O evento foi muito interessante (e me surpreendeu) por vários fatores:&lt;ul&gt;&lt;li&gt;Nivel excelente da maioria das palestras.&lt;/li&gt;&lt;li&gt;Um ótimo público (o maior M3DD já realizado).&lt;/li&gt;&lt;li&gt;Ótimas instalações do Senac.&lt;/li&gt;&lt;li&gt;Poder visitar Goiânia, onde morei por 10 anos!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/Skomcl7BHMI/AAAAAAAAAZI/vfiOY1iXyI0/s1600-h/m3dd.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_boE2hlsYam4/Skomcl7BHMI/AAAAAAAAAZI/vfiOY1iXyI0/s320/m3dd.JPG" alt="" id="BLOGGER_PHOTO_ID_5353133379741097154" border="0" /&gt;&lt;/a&gt;Além é claro de poder reencontrar alguns "teimosos" dessa área de softwares móveis e saber o que o pessoal tem de novidade e trocar algumas idéias. Inclusive com a visita ilustre do Roger (líder da comunidade &lt;a href="http://community.java.net/mobileandembedded/"&gt;Mobile &amp;amp; Embedded&lt;/a&gt;) e também do Terrence (engenheiro da Sun e grande conhecedor do &lt;a href="http://lwuit.dev.java.net"&gt;LWUIT&lt;/a&gt;).&lt;br /&gt;Na foto temos (da esquerda pra direita): Igor Medeiros, Roger Brinkley, Elói Jr., eu, Robison Brito e Alexandre Gomes.&lt;br /&gt;&lt;br /&gt;No site do evento você pode encontrar os slides das apresentações e em breve irão disponibilizar os videos as apresentações que foram feitas no auditório e que foram gravadas.&lt;br /&gt;&lt;br /&gt;Além disso o que me chamou atenção foi a partipação do pessoal nos dois painéis que dividi com o Alexandre, Robison e Elói. Infelizmente vemos que temos mais vontade do que ações no mundo da mobilidade no Brasil, mas o pessoal já está se movimentando e buscar oportunidades.&lt;br /&gt;&lt;br /&gt;Os slides da minha palestra você pode ver aqui:&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1644918"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/netomarin/wrt-widgets-m3dd-la?type=presentation" title="WRT Widgets - M3DD LA"&gt;WRT Widgets - M3DD LA&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=widgets-m3ddla-gyn-20090620-090626102554-phpapp02&amp;amp;stripped_title=wrt-widgets-m3dd-la"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=widgets-m3ddla-gyn-20090620-090626102554-phpapp02&amp;amp;stripped_title=wrt-widgets-m3dd-la" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/netomarin"&gt;netomarin&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;Em breve estou de volta com alguns posts sobre minhas aventuras com o Sun SPOT. Se quiser saber mais noticias ou acompanhar mais de perto, visite meu perfil no twitter: http://www.twitter.com/netomarin&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-4824164199749203462?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/4824164199749203462/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=4824164199749203462' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4824164199749203462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4824164199749203462'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/06/m3dd-la-goiania.html' title='M3DD LA - Goiânia'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_boE2hlsYam4/Skomcl7BHMI/AAAAAAAAAZI/vfiOY1iXyI0/s72-c/m3dd.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7561982407664175033</id><published>2009-03-24T10:06:00.003-03:00</published><updated>2009-03-24T10:34:50.837-03:00</updated><title type='text'>Instalando o ambiente do QT 4.5 para Série 60</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/Scjb7pvfFtI/AAAAAAAAAYQ/V1hkcmtDG68/s1600-h/qt.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 90px;" src="http://4.bp.blogspot.com/_boE2hlsYam4/Scjb7pvfFtI/AAAAAAAAAYQ/V1hkcmtDG68/s320/qt.png" alt="" id="BLOGGER_PHOTO_ID_5316741177974658770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Que a Nokia havia comprado a Trolltech (proprietária do QT que inclusive já teve seu nome trocado para QT Software) já é notícia velha, mas, enfim foi anunciado e disponibilizado o primeiro port para a S60 que inclui os principais celulares (smartphones e série multimedia) da fabricante finlandesa.&lt;br /&gt;Mas, se você já pensou que ia poder sair programando em Symbian C++ logo de cara, infelizmente não é tão "simples" assim. O QT facilita (e muito) a criação de interfaces e alguns outros detalhes, mas não elimina o conhecimento básico de Symbian, principalmente se você quiser acessar recursos nativos do telefone ou dar um comportamento mais profissional a sua aplicação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalação&lt;/span&gt;&lt;br /&gt;Para utilizar o QT, é necessário ter um SDK do Symbian instalado. Eu indico que se você vai fazer o download agora, instale logo a versão 1.0 do SDK 5, que inclusive contempla os novos celulares (como o 5800 e N97). Também será necessário ter uma versão do Carbide C++ (v. 2.0.0 ou superior).&lt;br /&gt;Para facilitar sua vida, foi criado um guia de instalação: &lt;a href="http://pepper.troll.no/s60prereleases/doc/install-s60.html"&gt;Installing QT on S60&lt;/a&gt;. É só seguir os passos indicados que não haverá problema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Referência&lt;/span&gt;&lt;br /&gt;O Forum Nokia é um ótimo lugar para se encontrar qualquer documentação e exemplos para tecnologias relacionadas a Nokia. E lá já foi disponibilizado uma library inteira sobre o assunto: &lt;a href="http://library.forum.nokia.com/index.jsp?topic=/Qt_for_S60_Developers_Library/GUID-97A34C6E-9F2B-4743-86F8-563362F7047A_cover.html"&gt;QT for S60 Developer's Library&lt;/a&gt;. Também, há uma &lt;a href="http://pepper.troll.no/s60prereleases/doc/index.html"&gt;documentação completa&lt;/a&gt; sobre todo o framework no site da Trolltech.&lt;br /&gt;E claro, você pode encontrar também o Wiki do Forum Nokia sobre &lt;a href="http://wiki.forum.nokia.com/index.php/Category:Qt_for_S60"&gt;QT&lt;/a&gt; e sobre &lt;a href="http://wiki.forum.nokia.com/index.php/Category:Symbian_C%2B%2B"&gt;Symbian&lt;/a&gt;, caso ainda esteja começando ou tenha alguma dúvida.&lt;br /&gt;&lt;br /&gt;Bom pessoal, por enquanto é só porque ainda estou instalando e fazendo algumas experiências. Em breve volto com algumas curiosidades e links para quem está começando nessa plataforma.&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7561982407664175033?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7561982407664175033/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7561982407664175033' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7561982407664175033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7561982407664175033'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/03/instalando-o-ambiente-do-qt-45-para.html' title='Instalando o ambiente do QT 4.5 para Série 60'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_boE2hlsYam4/Scjb7pvfFtI/AAAAAAAAAYQ/V1hkcmtDG68/s72-c/qt.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-104400001674365563</id><published>2009-03-20T10:26:00.004-03:00</published><updated>2009-03-20T10:43:29.204-03:00</updated><title type='text'>Gartner pública números mundiais sobre os SOs móveis para 2008</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Estou a tempo afastado, mas esses números públicados pelo Gartner me motivaram a escrever algumas palavrinhas por aqui. Esses dados são referentes ao market share e vendas de aparelhos smartphones no ano de 2008.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/ScOa5D-Es_I/AAAAAAAAAYI/UNOIBOrJGII/s1600-h/gartner-worldwide-mobile-os-2008.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="http://2.bp.blogspot.com/_boE2hlsYam4/ScOa5D-Es_I/AAAAAAAAAYI/UNOIBOrJGII/s320/gartner-worldwide-mobile-os-2008.png" alt="" id="BLOGGER_PHOTO_ID_5315262290336199666" border="0" /&gt;&lt;/a&gt;Para os mais aficionados pela Apple, a interpretação dessa tabela pode ser tendenciosa, principalmente se considerarmos o expressivo crescimento de 245% (!!) enquanto o líder Symbian teve uma queda de 6.1%.&lt;br /&gt;Mas, a diferença entre eles ainda é muito grande, de 44,2% ! Ou seja, o iPhone teria que continuar com um ritimo "alucinado" de crescimento e as outras fabricantes se estagnarem totalmente para que ele conseguisse chegar perto da liderança.&lt;br /&gt;&lt;br /&gt;Além disso, essa tabela ficará ainda mais interessante no ano de 2009 pois temos diversas novidades no mundo mobile:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Mais aparelhos com o Android (SonyEricsson, Motorola, HTC, etc);&lt;/li&gt;&lt;li&gt;Novos aparelhos touch da LG e Samsung;&lt;/li&gt;&lt;li&gt;N97 e Ovi Store (loja de aplicativos Nokia);&lt;/li&gt;&lt;li&gt;Saída do Steve Jobs da Apple (vão manter o folego???);&lt;/li&gt;&lt;li&gt;Java FX Mobile&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Enfim, a escolha de qual plataforma móvel utilizar vai continuar sendo motivo para discussões, dúvidas e erros! Se eu tenho alguma opinião? Tenho, mas isso é assunto pra outro post... e dos grandes...&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-104400001674365563?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/104400001674365563/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=104400001674365563' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/104400001674365563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/104400001674365563'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2009/03/gartner-publica-numeros-mundiais-sobre.html' title='Gartner pública números mundiais sobre os SOs móveis para 2008'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_boE2hlsYam4/ScOa5D-Es_I/AAAAAAAAAYI/UNOIBOrJGII/s72-c/gartner-worldwide-mobile-os-2008.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-4351565086166446220</id><published>2008-08-13T01:00:00.006-03:00</published><updated>2008-08-13T01:06:31.884-03:00</updated><title type='text'>Artigo na Java Magazine</title><content type='html'>Ola a todos!&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sei que estou um pouco afastado dos posts, mas as mudanças recent&lt;/div&gt;&lt;div&gt;es me fizeram dar uma afastada. Porém, a um tempo atrás havia enviado ao pessoal da revista um artigo sobre a biblioteca LWUIT e esse mês a revista, com o artigo, foi publicada.&lt;/div&gt;&lt;div&gt;A revista apresenta uma reformulação que a tornou mais atrativa ainda. Vale a pena conferir, e abaixo segue a imagem da capa, extraída do site da DevMedia.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.devmedia.com.br/loja/img/capaJava60_M.jpg" border="0" alt="" /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-4351565086166446220?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/4351565086166446220/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=4351565086166446220' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4351565086166446220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4351565086166446220'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/08/artigo-na-java-magazine.html' title='Artigo na Java Magazine'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-5684819957445647431</id><published>2008-06-26T19:55:00.005-03:00</published><updated>2008-11-13T16:26:06.487-02:00</updated><title type='text'>Mudando o nome do blog...</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Quando fui ao Forum Nokia Tech Days em São Paulo, o Python me surpreendeu e foi realmente uma boa surpresa. Porém, ficou uma dúvida de quando utilizar, já que trabalho em uma empresa onde quando fazemos um produto não podemos focar em nenhuma plataforma especifica e  aí ficou aquele gostinho de frustração.&lt;br /&gt;&lt;br /&gt;Mas, a alguns dias a lista de Java ME do SouJava começou a ser "palco" de diversas de threads&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_boE2hlsYam4/SGQgmf8riKI/AAAAAAAAAPA/JavY85Y0QYA/s1600-h/mobilepython.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_boE2hlsYam4/SGQgmf8riKI/AAAAAAAAAPA/JavY85Y0QYA/s320/mobilepython.png" alt="" id="BLOGGER_PHOTO_ID_5216330114185005218" border="0" /&gt;&lt;/a&gt; com o assunto relacionado as diversas plataformas disponíveis para o mundo móvel. Isso me fez pensar que na verdade, devemos estar preparado para criar softwares móveis independentes da plataforma. Pois a "melhor" plataforma é aquela que te atende naquele projeto e que irá trazer o melhor resultado considerando: qualidade, desempenho e custo.&lt;br /&gt;E então, para "juntar" tudo, estou tendo que fazer uma pesquisa sobre uma solução para ser apresentada para um cliente e a melhor solução está parecendo ser usar aparelhos da S60 com o aplicativo feito em Python ou C++. Por isso comecei a fazer várias pesquisas e testes com diversas soluções.&lt;br /&gt;&lt;br /&gt;Por isso, resolvi mudar o nome desse blog que era "Neto Marin JME Blog" para "Neto Marin Mobility Blog" onde irei também colocar relatos de experiências que estou fazendo com Python e outras linguagens. Espero que gostem dessa mudança também! :)&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-5684819957445647431?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/5684819957445647431/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=5684819957445647431' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5684819957445647431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5684819957445647431'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/mudando-o-nome-do-blog.html' title='Mudando o nome do blog...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_boE2hlsYam4/SGQgmf8riKI/AAAAAAAAAPA/JavY85Y0QYA/s72-c/mobilepython.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-5594066104479837421</id><published>2008-06-24T16:51:00.001-03:00</published><updated>2008-06-24T16:52:19.262-03:00</updated><title type='text'>Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!</title><content type='html'>&lt;b&gt;Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!&lt;/b&gt;&lt;br /&gt;…e também a pen drives, card drives, camisetas geeks, livros e mais! O &lt;a href="http://br-linux.org/"&gt;BR-Linux&lt;/a&gt; e o &lt;a href="http://efetividade.net/"&gt;Efetividade&lt;/a&gt; lançaram uma &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;campanha&lt;/a&gt; para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;participe&lt;/a&gt; - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-5594066104479837421?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/5594066104479837421/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=5594066104479837421' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5594066104479837421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5594066104479837421'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/ajude-sustentar-wikipdia-e-outros.html' title='Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-4916022886022281164</id><published>2008-06-24T10:25:00.002-03:00</published><updated>2008-06-24T10:30:46.124-03:00</updated><title type='text'>E o Android vai atrasar...</title><content type='html'>É pessoal, para aqueles quem vinham apostando no Android e falando empolgantemente que o Google iria dominar também a área de dispositivos móveis, eles jogaram um grande e cheio balde de água fria!&lt;br /&gt;Ontem foi anunciado que o lançamento do Android foi atrasado do segundo para o quarto quarto do ano. Ou seja, o pessoal vai ter que continuar "brincando" com o emulador do Android. É, digo brincar porque na minha opinião é para isso que serve o Android por enquanto.&lt;br /&gt;&lt;br /&gt;Sei que vários vão querer me jogar pedra por falar isso, mas por enquanto não é possível testar uma aplicação Android, é impossível saber o seu real desempenho (que na minha opinião não deve ser nada bom), portabilidade. Enfim, para aqueles que estão no mercado sabem que esses são aspectos determinantes para o sucesso de uma aplicação móvel. Nada adianta ela ser bonitinha (como o Android aparenta ser) se ela não for fácil de usar e não tiver um desempenho razoável.&lt;br /&gt;&lt;br /&gt;Não que eu torça contra, mas eu acho que se o Android não "pertencesse" ao Google, já teria nascido morto!!! ;-)&lt;br /&gt;&lt;br /&gt;Para mais detalhes, visite: &lt;a href="http://mobhappy.com/blog1/2008/06/24/check-mate-for-googles-android/"&gt;http://mobhappy.com/blog1/2008/06/24/check-mate-for-googles-android/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-4916022886022281164?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/4916022886022281164/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=4916022886022281164' title='25 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4916022886022281164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4916022886022281164'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/e-o-android-vai-atrasar.html' title='E o Android vai atrasar...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-6037144744891817391</id><published>2008-06-18T15:49:00.001-03:00</published><updated>2008-06-18T15:49:47.687-03:00</updated><title type='text'>Novo número: 130 milhões de celulares no Brasil !!</title><content type='html'>Ola pessoal,&lt;br&gt;&lt;br&gt;Apenas para comentar a noticia que acabo de encontrar no G1 Tecnologia, que diz que em maio o número de assinantes foi de 130,5 milhões. E além disso, o mês apresentou o incrível número de 2,8 milhões de novas assinaturas. Grande parte impulsionadas pelo dia das mães. Outro dado que chama atenção é a grande proporção de telefone pré-pagos, que representam um total de 80,9% do total das habilitações no Brasil.&lt;br&gt; Claro que essa quantidade de celulares pré-pagos diminui em muito a empolgação daqueles que sonham em fazer aplicações e serviços para a rede e tal. Mas, não se pode desprezar os outros 19% que representam um total de aproximadamente 24,7 milhões !! Bom, mas isso seria conversa pra pelo menos uns 2 ou 3 posts seguidos! ;-)&lt;br&gt; &lt;br&gt;Quem quiser mais informações, veja a matéria completa em: &lt;a href="http://g1.globo.com/Noticias/Tecnologia/0,,MUL605604-6174,00-NUMERO+DE+CELULARES+NO+PAIS+SUPERA+OS+MILHOES+EM+MAIO.html"&gt;http://g1.globo.com/Noticias/Tecnologia/0,,MUL605604-6174,00-NUMERO+DE+CELULARES+NO+PAIS+SUPERA+OS+MILHOES+EM+MAIO.html&lt;/a&gt;&lt;br&gt; &lt;br&gt;[]s&lt;br&gt;Neto&lt;br&gt; &lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-6037144744891817391?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/6037144744891817391/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=6037144744891817391' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6037144744891817391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6037144744891817391'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/novo-nmero-130-milhes-de-celulares-no.html' title='Novo número: 130 milhões de celulares no Brasil !!'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-1045182725795951704</id><published>2008-06-17T21:20:00.002-03:00</published><updated>2008-06-17T22:23:47.653-03:00</updated><title type='text'>Widgets e Code Camp !!</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;De volta a Campinas, resolvi fazer um resumo de como foi o code camp e sobre o tema desse code camp: Widgets!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O Code Camp:&lt;/span&gt;&lt;br /&gt;O dia começou com o pessoal chegando cedo, principalmente pra achar uma tomada e pegar uma vaguinha na rede ;-) e além disso, estava todo mundo querendo achar uma grande idéia para conseguir ganhar um N95 com 8 GB :D&lt;br /&gt;No inicio a idéia era fazer algo utilizando a API do GoogleCalendar ou algum tipo de rede "social". Mas ai, surgiu uma idéia que parecia boa: um "navegador" pelos bookmarks do del.icio.us, exibindo os links salvos, as tags e etc. Acabamos tendo alguns problemas com a integração XML + JavaScript + CSS e ai no final conseguimos fazer apenas a listagem dos links salvos e ai abrir o navegador ao clicar no link.&lt;br /&gt;&lt;br /&gt;Várias aplicações interessantes foram mostradas, mas a vencedora foi uma onde o pessoal executava um comando no widget (notepad, calc, cmd, etc) e o pc que era o servidor executava o comando, tirava uma "foto" (screenshot) e então enviava para o celular.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Widgets&lt;/span&gt;&lt;br /&gt;No site do Forum Nokia há bastante material sobre como criar os widgets. Mas, resumindo é uma página HTML onde você pode utilizar JavaScript e CSS para fazer as interações e executar ações com o usuário. Nada que você já não tenha visto em páginas de internet comum. E alem disso, para ajudar, a Nokia oferece um kit básico que contém elementos que facilitam sua interação, como por exemplo: TextField, UIManager, Label, ListSelections e outros.&lt;br /&gt;&lt;br /&gt;Para saber mais sobre widgets acesse &lt;a href="http://www.forum.nokia.com/main/resources/technologies/browsing/widgets.html"&gt;http://www.forum.nokia.com/main/resources/technologies/browsing/widgets.html&lt;/a&gt; e tenha acesso a "getting started", exemplos, APIs e muito mais.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;E o futuro?&lt;/span&gt;&lt;br /&gt;Olha pessoal, eu não sou fã de HTML e muito menos (mas muito menos mesmo) fã de JavaScript. Porém, não tem como não dizer que os widgets são a forma mais simples para se criar uma pequena aplicação móvel. Ele pode servir como a porta de entrada para um serviço qualquer da web, ou até para difundir mais facilmente um serviço que você queira oferecer.&lt;br /&gt;Além disso,  a Nokia parece estar apostando muito nessa nova "leva" de aplicativos móveis e inclusive através do site Mosh (&lt;a href="http://mosh.nokia.com"&gt;http://mosh.nokia.com&lt;/a&gt;) você pode publicar seu widget e assim ter muitos usuários acessando seus serviços.&lt;br /&gt;&lt;br /&gt;Logo que acertar o que ficou errado no meu widget eu posto pra vocês aqui.&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-1045182725795951704?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/1045182725795951704/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=1045182725795951704' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1045182725795951704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1045182725795951704'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/widgets-e-code-camp.html' title='Widgets e Code Camp !!'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-8289651256044822583</id><published>2008-06-17T10:34:00.003-03:00</published><updated>2008-06-17T10:40:13.924-03:00</updated><title type='text'>Começando o segundo dia...</title><content type='html'>Bom dia pessoal,&lt;br /&gt;&lt;br /&gt;Estamos começando o segundo dia e no momento estamos ouvindo Ravi e Daniel falando sobre a criação de widgets para a S60, na verdade está primeiro mostrando o site do &lt;a href="http://forum.nokia.com"&gt;Forum Nokia&lt;/a&gt;. É bem interessante pois se trata de um novo conceito de "aplicativo" móvel e forma de interação com o usuário.&lt;br /&gt;Na parte da tarde haverá um code camp e o melhor widget dará a dupla vencedora um device N95 para cada um. Ainda estou sem idéias, mas até a hora do almoço alguma irá aparecer =)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Material do evento&lt;/span&gt;&lt;br /&gt;Para aqueles que querem material do Nokia Forum Tech Days e saber mais sobre o que está acontecendo pode visitar a página do evento em: &lt;a href="http://wiki.forum.nokia.com/index.php/Tech_Days_Brasil_08"&gt;http://wiki.forum.nokia.com/index.php/Tech_Days_Brasil_08&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quando acabar o meu widget e tiver mais detalhes faço um novo post contado como se faz e etc.&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-8289651256044822583?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/8289651256044822583/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=8289651256044822583' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8289651256044822583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8289651256044822583'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/comeando-o-segundo-dia.html' title='Começando o segundo dia...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-3197008496968737861</id><published>2008-06-16T16:39:00.002-03:00</published><updated>2008-06-16T16:49:32.197-03:00</updated><title type='text'>Desenvolvimento em C++ ou Python para Symbian S60</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Já tivemos hoje uma palestra sobre desenvolvimento em C++ com o Ravi Belwal e depois uma outra palestra muito interessante com o Daniel Rocha falando sobre o desenvolvimento com Python e inclusive com alguns exemplos. E até o exemplo de um player de música onde é possível trocar de faixa "balançando" o celular.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desenvolvimento com C++&lt;/span&gt;&lt;br /&gt;O que podemos resumir da programação com C++ é que, não é tão complexo quanto se acha que é, porém ainda possui suas particularidades. Mas, sempre vai ser possível ter acesso as mais novas bibliotecas disponíveis até porque é a linguagem nativa do SO.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Python e Symbian S60&lt;/span&gt;&lt;br /&gt;É indiscutível que a produtividade e simplicidade de se programar em Python é muito melhor em relação ao C++ ou ao próprio JME, pois inclusive é possível ter acesso a "trechos" do sistema que não são alcançados pelo Java porém, na minha humilde opinião, é mais um passo em direção a segmentação!!!&lt;br /&gt;Afinal, se você tem uma empresa e cria um produto com certeza irá querer que esse produto alcance o maior número de dispositivos possíveis, mas, programando com Python você verá a quantidade de dispositivos "alvos" diminuirem muito.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Então não vale a pena usar Python ?!?!&lt;/span&gt;&lt;br /&gt;Eu diria que tudo DEPENDE. Vamos supor a sequinte situação: Você possui um escopo fechado e um alvo bem definido. E além disso você precisa de recursos que te permitam acessar funcionalidades especificas de algum dispositivo, então, use Pyton e seja feliz!!&lt;br /&gt;Agora, você quer desenvolver um produto corporativo onde você não possui muita influência sobre o que seus clientes vão usar, então prefira Java ME ! :D&lt;br /&gt;&lt;br /&gt;Mais tarde volto com mais "flashes" aqui do evento.&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-3197008496968737861?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/3197008496968737861/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=3197008496968737861' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/3197008496968737861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/3197008496968737861'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/desenvolvimento-em-c-ou-python-para.html' title='Desenvolvimento em C++ ou Python para Symbian S60'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7011224900913494801</id><published>2008-06-16T11:57:00.002-03:00</published><updated>2008-06-16T13:29:45.983-03:00</updated><title type='text'>Forum Nokia Tech Days - Brasil</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Estou aqui no hotel Gran Meliá em São Paulo participando do primeiro dia do Forum Nokia Tech Days. A primeira vista parece ser bem empolgante, principalmente por mais uma vez a Nokia estar mostrando que realmente se preocupa com a comunidade de desenvolvedores e além de tudo, ajudar a gerar negócios com isso.&lt;br /&gt;&lt;br /&gt;Uma coisa que me chamou bastante atenção foi o portal "OVI" (http://www.ovi.com) que busca trazer diversos serviços e formar de integrar os serviços que a Nokia oferece a sua plataforma. E como os próprios palestrantes disseram, a Nokia está se reformulando e oferencedo diversas novas oportunidades!&lt;br /&gt;&lt;br /&gt;Bom, vou indo porque minha bateria está se acabando e ainda não consegui achar uma tomada!! =( Mas logo, volto com mais alguns detalhes e dicas para aqueles que estão curiosos sobre esse evento!!&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7011224900913494801?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7011224900913494801/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7011224900913494801' title='12 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7011224900913494801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7011224900913494801'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/forum-nokia-tech-days-brasil.html' title='Forum Nokia Tech Days - Brasil'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-8643977565342904506</id><published>2008-06-11T23:37:00.002-03:00</published><updated>2008-06-12T00:28:49.830-03:00</updated><title type='text'>Classe Properties para JME</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Esses dias tive que armazenar e trafegar algumas configurações de aplicações móveis. E ai, pra facilitar minha vida resolvi usar o esquema de properties. Ou seja, uma chave = valor.&lt;br /&gt;E você pode pensar que estou ficando louco né!!! Afinal nem a implementação da classe Properties existe e além disso o dispositivo deve implementar a JSR 75 para que seja possível salvar esse properties em "formato" de arquivo.&lt;br /&gt;&lt;br /&gt;Mas utilizando properties eu tenho algumas vantagens:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Padronização na forma de montagem de dados.&lt;/li&gt;&lt;li&gt;Não há necessidade de fazer muitos parses, afinal a forma de composição é bem simples!&lt;/li&gt;&lt;li&gt;Causa pouco acréscimo de dados. Compare com XML ! =)&lt;/li&gt;&lt;/ul&gt;E além das vantagens, não é somente possivel salvar em arquivo. Assim como a implementação da classe Properties em JSE, você consegue obter um OutputStream e ai, gerar um ByteArrayOutputStream obtendo um array de bytes e salvar em um RMS! =)&lt;br /&gt;Também é possível receber um arquivo properties enviado através de um HTTP e utilizando InputStream, carregar o properties de forma automática e transparente!&lt;br /&gt;&lt;br /&gt;Quem se interessar, basta clicar &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/Properties.zip"&gt;aqui para fazer o download&lt;/a&gt; do zip que contém o .java da classe que implementei! Fiquem a vontade para usar, alterar e etc.&lt;br /&gt;A classe não implementa TODOS os métodos da original porque não tive tempo e porque não me interessava quando a criei. Mas, acho que pode facilitar a vida de alguns!&lt;br /&gt;&lt;br /&gt;Se tiver interesse em exemplos de como utilizar, deixe seu comentário!!!&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-8643977565342904506?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/8643977565342904506/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=8643977565342904506' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8643977565342904506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/8643977565342904506'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/06/classe-properties-para-jme.html' title='Classe Properties para JME'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-1087185046695639012</id><published>2008-05-26T21:18:00.007-03:00</published><updated>2008-11-13T16:26:07.076-02:00</updated><title type='text'>FishEyeList com LWUIT</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Continuando com minhas experiências com a biblioteca &lt;span style="font-weight: bold;"&gt;LWUIT&lt;/span&gt;, fiz agora um outro tipo de menu: um &lt;span style="font-weight: bold;"&gt;FishEyeList &lt;/span&gt;!!&lt;br /&gt;Ou seja, conforme você alterna entre os itens da lista, o ícone correspondente fica maior, dando um destaque e indicando que item está selecionado. Esse tipo de lista ficou muito conhecida com o uso de Ajax e também com iPhone. E agora, você vai poder ter essa lista, fácil... fácil... na sua aplicação Java ME! ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/SDtXpKD-ehI/AAAAAAAAAN8/8Pwcx3y0nWY/s1600-h/fisheyelist_internet.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_boE2hlsYam4/SDtXpKD-ehI/AAAAAAAAAN8/8Pwcx3y0nWY/s320/fisheyelist_internet.png" alt="" id="BLOGGER_PHOTO_ID_5204850158944025106" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/SDtX_KD-eiI/AAAAAAAAAOE/YAWcp3t7sWs/s1600-h/fisheyelist_rss.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_boE2hlsYam4/SDtX_KD-eiI/AAAAAAAAAOE/YAWcp3t7sWs/s320/fisheyelist_rss.png" alt="" id="BLOGGER_PHOTO_ID_5204850536901147170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A lista&lt;/span&gt;&lt;br /&gt;Esse tipo de menu em relação ao apresentado antes tem uma vantagem, usar menos imagem. Isso porque para dar o efeito de que a imagem está maior que a "normal" não é necessário gerar outra, mas sim utilizar o método&lt;span style="font-weight: bold;"&gt; image.sclaed(nova_larga, nova_altura).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O exemplo&lt;/span&gt;&lt;br /&gt;Esse exemplo também foi todo feito em uma única classe &lt;span style="font-weight: bold;"&gt;MIDlet&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;FishEyeListMIDlet&lt;/span&gt;, e que tem o método &lt;span style="font-weight: bold;"&gt;montaFishEyeList &lt;/span&gt;que é chamado no &lt;span style="font-weight: bold;"&gt;startApp &lt;/span&gt;para que seja exibido o &lt;span style="font-weight: bold;"&gt;Form &lt;/span&gt;com o menu. E as ações dos botões são tratadas no actionPerformed, como vc já está se acostumando a ver aqui nesse blog! ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;montaFishEyeList( )&lt;/span&gt;&lt;br /&gt;É o método que monta o menu com a FishEyeList. Para que ele faça a montagem, o método recebe 2 parametros:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Image[] icone&lt;/span&gt;: Array com os ícones a serem utilizados nos botões.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;String[] label&lt;/span&gt;: Strings com os labels a serem utilizados nos botões.&lt;/li&gt;&lt;/ul&gt;No inicio do método há a criação do &lt;span style="font-weight: bold;"&gt;Form &lt;/span&gt;e a definição da figura de fundo. Também nesse ponto é definido o layout para o &lt;span style="font-weight: bold;"&gt;Form&lt;/span&gt;, que nesse caso será utilizado o layout &lt;span style="font-weight: bold;"&gt;BoxLayout &lt;/span&gt;e com a orientação no eixo Y, ou seja, cada item adicionado será colocado em uma linha dando a "impressão" de uma lista. O código relativo a essa parte se encontra abaixo:&lt;br /&gt;&lt;pre&gt;Form fishEyeForm = new Form("FishEye List");&lt;br /&gt;       fishEyeForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS));&lt;br /&gt;       try {&lt;br /&gt;           fishEyeForm.setBgImage(Image.createImage("/background.png"));&lt;br /&gt;       } catch (IOException e) {}&lt;/pre&gt;Depois disso, é a hora de adicionar os botões e definir o comportamento de cada um. Isso será feito dentro de um loop que irá percorrer cada item dos arrays recebidos e em cada iteração serão executadas as seguintes ações:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Criação de um novo botão, com o texto e a imagem do array (utilizando o indice do loop). A forma de instanciar o novo botão é &lt;span style="font-weight: bold;font-family:courier new;" &gt;new Button(label[i], icone[i]).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Quando um botão é selecionado, o LWUIT coloca automaticamente uma cor indicando a seleção do botão. Para isso não acontecer e "atrapalhar" o comportamento usamos o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setBgTransparency(0)&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;O comportamento do botão precisa ser controlado por alguém e nesse caso, o midlet do exemplo é quem implementa a interface ActionListener e que deverá ser passado como parametro para o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;addActionListener&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;O efeito de FishEye (aumento da imagem) é feito alterando a imagem que é exibida quando o item está selecionado, através do método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setRolloverIcon, &lt;/span&gt;e nesse caso aumentando o tamanho da imagem. No exemplo o aumento é de 30% da imagem utilizando o método scaled da imagem passada.&lt;/li&gt;&lt;li&gt;Além disso, o ícone também tem seu tamanho diminuido em 20% quando é clicado. Isso também é feito com o método scaled sendo passado para o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setPressedIcon.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;O normal de um botão é ter sua borda desenhada para melhorar a visualização do componente. Porém, como estamos utilizando em um menu e o foco é a imagem a ser mostrada, a borda pode não ser desenhada. Para providenciar isso, iremos utilizar o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setBorderPainted(false)&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;O código do loop e criação do botão segue abaixo:&lt;br /&gt;&lt;pre&gt;//criando os botões&lt;br /&gt;Button b = null;&lt;br /&gt;for ( int i = 0; i &lt; icone.length; i++ ) {            &lt;br /&gt;   b = new Button(label[i], icone[i]);            &lt;br /&gt;   b.getStyle().setBgTransparency(0);            &lt;br /&gt;   b.addActionListener(this);            &lt;br /&gt;   b.setRolloverIcon(icone[i].scaled((int)(icone[i].getWidth()*1.3),                    &lt;br /&gt;       (int)(icone[i].getHeight()*1.3)));            &lt;br /&gt;   b.setPressedIcon(icone[i].scaled((int)(icone[i].getWidth()*0.8),                    &lt;br /&gt;      (int)(icone[i].getHeight()*0.8)));            &lt;br /&gt;   b.setBorderPainted(false);            &lt;br /&gt;   fishEyeForm.addComponent(b);        &lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Tratando o uso do botão&lt;/span&gt;&lt;br /&gt;Pessoal, nesse ponto para não perder muito tempo e não extender muito o post, veja esse mesmo tópico no post anterior, pois essa parte é exatamente igual a anterior! ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download e código completo&lt;/span&gt;&lt;br /&gt;Para facilitar, todo o código do exemplo pode ser baixado em um ZIP, clicando &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/FishEyeListLWUIT.zip"&gt;AQUI&lt;/a&gt;, e dentro da pasta deployed é possível encontrar o JAR e JAD da aplicação para você ver o exemplo funcionando ou até instalar no seu celular.&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-1087185046695639012?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/1087185046695639012/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=1087185046695639012' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1087185046695639012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1087185046695639012'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/fisheyelist-com-lwuit.html' title='FishEyeList com LWUIT'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_boE2hlsYam4/SDtXpKD-ehI/AAAAAAAAAN8/8Pwcx3y0nWY/s72-c/fisheyelist_internet.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-5367944325247557799</id><published>2008-05-24T19:01:00.004-03:00</published><updated>2008-11-13T16:26:07.350-02:00</updated><title type='text'></title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Continuando no assunto da biblioteca LWUIT, resolvi fazer um menu e assim comparar também com o menu em canvas que fiz a um tempo aqui e que é o post mais acessado... disparado!!! :)&lt;br /&gt;O menu também será bem simples, como foi o seu antecessor. Seu comportamento será da seguinte forma: na navegação há mudança na imagem indicando que o item está selecionado e quando clicado é disparado alguma ação, no nosso exemplo um Alert ("convencional"). Abaixo, imagens de como ficou:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/SDiMdaD-efI/AAAAAAAAANs/_l-KIachXDs/s1600-h/menulwuit_bluetooth.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_boE2hlsYam4/SDiMdaD-efI/AAAAAAAAANs/_l-KIachXDs/s320/menulwuit_bluetooth.png" alt="" id="BLOGGER_PHOTO_ID_5204063806266702322" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_boE2hlsYam4/SDiMiqD-egI/AAAAAAAAAN0/7aMpGOt8h6k/s1600-h/menulwuit_bluetooth_alert.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_boE2hlsYam4/SDiMiqD-egI/AAAAAAAAAN0/7aMpGOt8h6k/s320/menulwuit_bluetooth_alert.png" alt="" id="BLOGGER_PHOTO_ID_5204063896461015554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;As imagens do menu&lt;/span&gt;&lt;br /&gt;Para deixar o menu com uma visualização melhor, para cada opção eu escolhi um icone e criei uma outra imagem com uma iluminação para dar impressão de que está apagado. Então, a cada vez que um icone é selecionado a imagem que foi indicada na criação do botão é trocada pela imagem que parece "acesa".&lt;br /&gt;O único cuidado com essa prática é a questão de desempenho, pois se você escolher muitos ícones e icones muito grandes o desempenho pode cair muito e ao invés de ajudar, apenas piorar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O exemplo&lt;/span&gt;&lt;br /&gt;Para ilustrar, o exemplo consiste em apenas um MIDlet que contém um método chamado &lt;span style="font-weight: bold;font-family:courier new;" &gt;montaMenuForm( )&lt;/span&gt; e que é chamado no startApp para retornar o Form que será exibido para o usuário. As imagens são carregadas no construtor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;montaMenuForm( )&lt;/span&gt;&lt;br /&gt;É o método responsável por montar o Form com o menu e retornar para que ele seja exibido. Esse método recebe três parametros:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;Image[] icones&lt;/span&gt;: Array com todos os icones que serão utilizados quando o itens estão selecionados.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;Image[] iconesOff&lt;/span&gt;: Array com todos os icones que serão utilizados na criação do botão e quando o mesmo não está selecionado.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;String[] label&lt;/span&gt;: Array de String para o label do botão.&lt;/li&gt;&lt;/ul&gt;Dentro do método, no inicio há a criação do Form, definição do background e configuração do layout a ser utilizado. No exemplo foi definido que será exibido 4 icones por linha e a quantidade de linhas do menu foi calculado de acordo com o número de itens do array, o trecho do código é o seguinte:&lt;br /&gt;&lt;pre&gt;//Criando form&lt;br /&gt;//Criação do Form&lt;br /&gt;Form menu = new Form("Menu LWUIT");&lt;br /&gt;try {&lt;br /&gt; //definindo background&lt;br /&gt; menu.setBgImage(Image.createImage("/background.jpg"));&lt;br /&gt;} catch (IOException e) {}&lt;br /&gt;&lt;br /&gt;//Montagem do layout&lt;br /&gt;//4 colunas&lt;br /&gt;int cols = 4;&lt;br /&gt;//Calculando quantidade de linhas&lt;br /&gt;int rows = (int)Math.floor(icones.length/4);&lt;br /&gt;//Layout de exibição em grids&lt;br /&gt;menu.setLayout(new GridLayout(rows,cols));&lt;/pre&gt;Depois de montado o layout, é hora de adicionar os botões e definir o comportamento de cada botão. Para isso será feito um loop pelo array de imagens e em cada interação serão executadas as seguintes ações:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Criação de um novo botão, com o texto e a imagem do array de imagens "não-selecionadas" (utilizando o indice do loop). A forma de instanciar o novo botão é &lt;span style="font-weight: bold;font-family:courier new;" &gt;new Button(label[i], iconesOff[i]).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Definir a imagem que será exibida quando o item do menu estiver selecionado, através do método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setRolloverIcon&lt;/span&gt; passando como parametro a imagem do array de imagens selecionadas, também de acordo com o indice do loop.&lt;/li&gt;&lt;li&gt;Definir a imagem que é exibida quando o item é clicado, através do método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setPressedIcon&lt;/span&gt; passando como parametro a imagem do array de imagens selecionadas, também de acordo com o indice do loop.&lt;/li&gt;&lt;li&gt;Quando um botão é selecionado, o LWUIT coloca automaticamente uma cor indicando a seleção do botão. Para isso não acontecer e "atrapalhar" o comportamento usamos o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setBgTransparency(0)&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;O normal de um botão é ter sua borda desenhada para melhorar a visualização do componente. Porém, como estamos utilizando em um menu e o foco é a imagem a ser mostrada, a borda pode não ser desenhada. Para providenciar isso, iremos utilizar o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;setBorderPainted(false)&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;E por fim, o comportamento do botão precisa ser controlado por alguém e nesse caso, o midlet do exemplo é quem implementa a interface ActionListener e que deverá ser passado como parametro para o método &lt;span style="font-weight: bold;font-family:courier new;" &gt;addActionListener&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;O código do loop e criação do botão segue abaixo:&lt;br /&gt;&lt;pre&gt;//Criando botões e adicionando ao grid&lt;br /&gt;for ( int i = 0; i &lt; icones.length; i++ ) {&lt;br /&gt;   b = new Button(label[i], iconesOff[i]);       &lt;br /&gt;   //imagem para exibir ao selecionar botão       &lt;br /&gt;   b.setRolloverIcon(icones[i]);       &lt;br /&gt;   //imagem para exibir ao clicar no botão       &lt;br /&gt;   b.setPressedIcon(icones[i]);       &lt;br /&gt;   //Removendo o fundo de seleção do botão       &lt;br /&gt;   b.getStyle().setBgTransparency(0);       &lt;br /&gt;   //alinhamento e posição do texto do botão       &lt;br /&gt;   b.setAlignment(Button.CENTER);       &lt;br /&gt;   b.setTextPosition(Button.BOTTOM);       &lt;br /&gt;   //não desenhar borda no botão       &lt;br /&gt;   b.setBorderPainted(false);       &lt;br /&gt;   //indicando o listener do botão       &lt;br /&gt;   b.addActionListener(this);       &lt;br /&gt;   //adicionando o botão ao form       &lt;br /&gt;   menu.addComponent(b);&lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Tratando o uso do botão&lt;/span&gt;&lt;br /&gt;Quando o usuário clica no botão é necessário tratar esse botão. Esse tratamento é feito através do método actionPerformed na classe que implementar a interface ActionListener. No nosso exemplo isso é feito no midlet da aplicação.&lt;br /&gt;A programação desse método pode ser feita conforme cada programador desejar, o importante nesse ponto é identificar qual botão foi clicado e ai direcionar corretamente o usuário. O método recebe o objeto ActionEvent que permite que através do método getSource() seja recuperado o objeto que originou a chamada, e no nosso caso o botão cliclado.&lt;br /&gt;Com o botão clicado, para distinguir qual botão foi clicado usaremos o texto que foi indicado na criação do botão através do método getText() e ai então, exibir um Alert.  Nesse caso, customize qual ação deseja tomar. Um trecho desse método segue abaixo:&lt;br /&gt;&lt;pre&gt;public void actionPerformed(ActionEvent evt) {&lt;br /&gt;   //Obtendo botão que disparou o evento&lt;br /&gt;   Button b = (Button) evt.getSource();&lt;br /&gt;   //Verificando pelo titulo qual botão é&lt;br /&gt;   if ( b.getText().equals("Bluetooth")) {&lt;br /&gt;       Alert a = new Alert("Selecionado", "Bluetooth", null, AlertType.INFO);&lt;br /&gt;       javax.microedition.lcdui.Display.getDisplay(this).setCurrent(a);&lt;br /&gt;   } else if ( b.getText().equals("Pesquisar")) {&lt;br /&gt;       Alert a = new Alert("Selecionado", "Pesquisar", null, AlertType.INFO);&lt;br /&gt; javax.microedition.lcdui.Display.getDisplay(this).setCurrent(a);&lt;br /&gt;   }&lt;br /&gt;   //Continua comparações&lt;br /&gt;   //definindo focus&lt;br /&gt;   menu.setFocused(b);&lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Download e código completo&lt;/span&gt;&lt;br /&gt;Para facilitar, todo o código do exemplo pode ser baixado em um ZIP, clicando &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/MenuLWUIT.zip"&gt;AQUI&lt;/a&gt;, e dentro da pasta deployed é possível encontrar o JAR e JAD da aplicação para você ver o exemplo funcionando ou até instalar no seu celular.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusão e comparação&lt;/span&gt;&lt;br /&gt;Bom, quem já viu o outro exemplo e esse agora pode de cara perceber que esse tem um melhor acabamento e é muito mais facil de ser criado e customizado. Porém, o overhead causado pela quantidade de imagens necessárias e pela inclusão da biblioteca LWUIT. Para ver isso, basta comparar o tamanho das duas aplicações.&lt;br /&gt;Mas, na minha opinião, se for um menu pequeno e com imagens não tão complexas, o uso vale a pena!! E além disso, você pode estudar e fazer o menu de uma forma que atenda melhor suas necessidades!&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-5367944325247557799?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/5367944325247557799/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=5367944325247557799' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5367944325247557799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5367944325247557799'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/ola-pessoal-continuando-no-assunto-da.html' title=''/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_boE2hlsYam4/SDiMdaD-efI/AAAAAAAAANs/_l-KIachXDs/s72-c/menulwuit_bluetooth.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-6951058238029891920</id><published>2008-05-20T21:40:00.003-03:00</published><updated>2008-11-13T16:26:08.694-02:00</updated><title type='text'>Uma pequena análise da LWUIT</title><content type='html'>Ola pessoal!!&lt;br /&gt;&lt;br /&gt;Essa semana eu tive a oportunidade de escrever um artigo sobre essa interessante biblioteca e para ilustrar o artigo acabei montando uma aplicação de exemplo e então consegui tirar algumas conclusões e vou dar algumas opiniões aqui para vocês! :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nova forma de programar&lt;/span&gt;&lt;br /&gt;Como os próprios autores declararam no site do projeto, a LWUIT foi feita pensada no Swing, então a forma de utilizar alguns componentes é bem parecida com seus "similares" no Swing, como por exemplo um Button. Abaixo, um exemplo onde se cria um botão e define a chamada de um método estático qualquer quando um botão é clicado:&lt;br /&gt;&lt;pre&gt;Button botao = new Button("Processar");&lt;br /&gt;botao.addActionListener(new ActionListener(){&lt;br /&gt;  public void actionPerformed(ActionEvent evt) {&lt;br /&gt;      //chamada para um método qualquer...&lt;br /&gt;  }});&lt;/pre&gt;Para alguns que não possuem muita vivência com Swing (como é o meu caso), algumas coisas podem soar estranhas, mas considero ser apenas questão de costume pois apesar de diferente são bem simples.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Novos recursos interessantes&lt;/span&gt;&lt;br /&gt;Algumas das principais funcionalidades que o LWUIT oferece, podem ser consideradas como novas versões de funcionalidades já existentes no pacote javax.microedition.lcdui. Porém, a biblioteca traz algumas novidades como por exemplo: caixa de diálogo, abas, transição entre telas, novas opções de fonte, criação de temas. Além de automatizar (facilitando também é claro) alguns comportamentos, como por exemplo o scrol de uma tela.&lt;br /&gt;&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/SDOUP49hxTI/AAAAAAAAANc/mO3vTdZ9aNg/s1600-h/caixadedialogodemo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_boE2hlsYam4/SDOUP49hxTI/AAAAAAAAANc/mO3vTdZ9aNg/s320/caixadedialogodemo.png" alt="" id="BLOGGER_PHOTO_ID_5202664995252454706" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_boE2hlsYam4/SDOUQI9hxUI/AAAAAAAAANk/faZ3asXhukY/s1600-h/abasdemo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_boE2hlsYam4/SDOUQI9hxUI/AAAAAAAAANk/faZ3asXhukY/s320/abasdemo.png" alt="" id="BLOGGER_PHOTO_ID_5202664999547422018" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt; &lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Acima imagens retiradas da aplicação demo fornecida pelo projeto.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Estabilidade&lt;/span&gt;&lt;br /&gt;É claro que por se tratar de um "lançamento" ainda há alguns pequenos ajustes a serem feitos. Como é o caso do TabbedPane que aceita um Component como paramêtro e então, eu resolvi criar um Form com diversos componentes e colocar esse Form dentro de uma aba. Compilou, executou e foi exibido corretamente, mas quando tentei usar não conseguia entrar na aba que eu queria e a navegação pelas abas ficava completamente perdida.&lt;br /&gt;O que fazer então? Mandei um e-mail na lista de users do projeto e recebi a resposta de que realmente isso não funciona, e que eles iriam colocar uma exception de &lt;span style="font-style: italic;"&gt;illegalargument&lt;/span&gt; no caso de alguém tentar fazer a mesma coisa, já que eu não era o primeiro a perguntar sobre isso.&lt;br /&gt;Enfim, a melhor coisa a fazer é entrar em contato com o pessoal e repassar os problemas e assim ajudarmos a biblioteca a evoluir!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ferramenta deskotp&lt;/span&gt;&lt;br /&gt;Como dito antes, é possivel se criar temas para o LWUIT e isso é feito através de uma aplicação desktop bem simples de usar, onde você vai configurando cada tipo componentes a ser utilizado e seu estilo. Permitindo assim um alto nivel de acabamento da sua aplicação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Performance&lt;/span&gt;&lt;br /&gt;É claro que a performance em alguns casos deixa a desejar, porém isso acontece principalmente se você sobrecarregar sua aplicação com tudo que o LWUIT lhe oferece. Mas você pode fazer a mescla de componentes LWUIT e componentes high level.&lt;br /&gt;Por exemplo: Pode ser feito um menu utilizando um Form com o Layout grid e com diversos botões, e após isso, utilizar os forms (ou lists) comuns e sua aplicação continuará "leve".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusão&lt;/span&gt;&lt;br /&gt;É uma biblitoeca que me surpreendeu, assim como a mais pessoas, e que com certeza colaborará com a melhoria da qualidade das interfaces e na facilidade do desenvolvimento. Mas, deve ser utilizado com muito cuidado, pois pode comprometer a sua aplicação. Tente sempre testar em dispositivos reais para ter uma noção desse comprometimento. E é claro, contribua enviando sugestões e notificando possiveis bugs. Pois assim, ela vai sendo "polida" e cada vez mais melhorada!&lt;br /&gt;&lt;br /&gt;E atenção, estou preparando um menu utilizando um Form com Button e que teria o comportamento similiar a um &lt;a href="http://netomarin.blogspot.com/2007/03/menu-utilizando-canvas-estilo-nokia_26.html"&gt;menu que publiquei a muito tempo atrás&lt;/a&gt; aqui e que é o post mais acessado. E assim, poderemos comparar a facilidade e agilidade no desenvolvimento.&lt;span style="font-weight: bold;"&gt; Aguardem!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-6951058238029891920?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/6951058238029891920/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=6951058238029891920' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6951058238029891920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6951058238029891920'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/uma-pequena-anlise-da-lwuit.html' title='Uma pequena análise da LWUIT'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_boE2hlsYam4/SDOUP49hxTI/AAAAAAAAANc/mO3vTdZ9aNg/s72-c/caixadedialogodemo.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-4526504688336561130</id><published>2008-05-17T09:16:00.006-03:00</published><updated>2008-11-13T16:26:09.061-02:00</updated><title type='text'>Usando StringItem para fazer listagens.</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Algumas vezes queremos fazer algumas listagens em nossos Forms, ou mesclar conteúdo e permitir uma navegação pelos itens e a sua seleção e o uso da lista compromete a usabilidade ou simplesmente não funciona!&lt;br /&gt;Por exemplo, aqueles que já tiveram a oportunidade de usar o JustJava mobile no ano passado (com a grade horária) ou já deu uma olhada no &lt;a href="http://cosmo.dev.java.net/"&gt;CoSMo&lt;/a&gt; (que "nasceu" do JustJava Mobile), viram que na listagem das palestras do dia é possível clicar em uma determinada palestra e ver o detalhe dessa palestra, como nas figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_boE2hlsYam4/SC7St49hxSI/AAAAAAAAANU/LocKR_tVZPk/s1600-h/formListagemCosmo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_boE2hlsYam4/SC7St49hxSI/AAAAAAAAANU/LocKR_tVZPk/s320/formListagemCosmo.jpg" alt="" id="BLOGGER_PHOTO_ID_5201326305485899042" border="0" /&gt;&lt;/a&gt;O problema nesse caso é que os nomes dos locais e o título das palestras poderia ser grande, e como eu não confio muito no comportamento do List em diferentes dispositivos, a solução intuitiva era usar StringItem !!&lt;br /&gt;Mas ai eu tinha um problema: Como "descobrir" em qual palestra o usuário clicou para exibir o detalhe corretamente?&lt;br /&gt;No List (ou ChoiceGroup) seria fácil, já que eu tenho o indice selecionado. Então, o mais fácil era ter um indice próprio para que eu pudesse recuperar o registro certo no RMS, nesse caso o próprio ID no RMS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Criando um novo "StringItem"&lt;/span&gt;&lt;br /&gt;Bom, nesse caso então a minha idéia foi criar um novo componente que extendia de um StringItem, portanto eu tinha todo o comportamento já conhecido, e adicionar um atributo de código "escondido", para poder armazenar o ID e depois usar. E a nova classe que criei ficou assim:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class HiddenIdStringItem extends StringItem {&lt;br /&gt;   private int hiddenId;&lt;br /&gt;&lt;br /&gt;   public HiddenIdStringItem(String label, String text) {&lt;br /&gt;&lt;br /&gt;       //Uso normal como se fosse um simples StringItem...&lt;br /&gt;       super(label, text);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public HiddenIdStringItem(int toHiddenId, String label,&lt;br /&gt;       String text) {&lt;br /&gt; &lt;br /&gt;       //construtor da superclasse&lt;br /&gt;       super(label, text);&lt;br /&gt;       //salvando o ID que se deseja "esconder"&lt;br /&gt;       this.hiddenId = toHiddenId;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public HiddenIdStringItem(String label, String text,&lt;br /&gt;       int appearanceMode) {&lt;br /&gt;&lt;br /&gt;       //Uso normal como se fosse um simples StringItem...&lt;br /&gt;       super(label, text, appearanceMode);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public int getHiddenId() {&lt;br /&gt;       return hiddenId;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void setHiddenId(int sessionId) {&lt;br /&gt;       this.hiddenId = sessionId;&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Como habilitar o click?&lt;/span&gt;&lt;br /&gt;Para que o usuário possa clicar no seu novo componente, basta você usar o método setDefaultCommand (no seu item do tipo HiddenIdStringItem), passando como parâmetro algum comando e depois o método setItemCommandListener (também no seu item), passando a instância de uma classe que implementa a interface ItemCommandListener, para que alguém "trate" esse comando que você adicionou.&lt;br /&gt;A classe que implementa a interface, deverá então implementar o método commandAction que recebe o comando associado ao seu item e qual item que se trata. No nosso caso, um item do tipo HiddenIdStringItem. Então, você faz o cast adequado (de item para HiddenIdStringItem) e pode utilizar o método getHiddenId para obter o id que você associou quando criou o componente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vantagens&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Utilizando esse componente você evita problemas com Lists e Choice Groups.&lt;/li&gt;&lt;li&gt;Você não precisa ficar comparando o label ou o text para saber qual item é aquele.&lt;/li&gt;&lt;li&gt;Ja herda todo o comportamente conhecido do StringItem.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cuidados:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adicionar o comando e seu listener corretamente.&lt;/li&gt;&lt;li&gt;Utilizar os layouts corretamente para não ter surpresas desagradáveis com a exibição dos itens na tela.&lt;/li&gt;&lt;/ul&gt;Bom pessoal, espero que isso possa ajudar alguém ou que facilite a vida de seus usuários! ;-)&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-4526504688336561130?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/4526504688336561130/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=4526504688336561130' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4526504688336561130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4526504688336561130'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/usando-stringitem-para-fazer-listagens.html' title='Usando StringItem para fazer listagens.'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_boE2hlsYam4/SC7St49hxSI/AAAAAAAAANU/LocKR_tVZPk/s72-c/formListagemCosmo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-1577753710872793878</id><published>2008-05-08T00:14:00.002-03:00</published><updated>2008-05-08T00:37:47.244-03:00</updated><title type='text'>Melhore o visual da sua aplicação com LWUIT !!</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Eu já tinha lido uma prévia do projeto LWUIT no blog do &lt;a href="http://weblogs.java.net/blog/terrencebarr/"&gt;Terrence&lt;/a&gt; na "&lt;a href="http://community.java.net/mobileandembedded/"&gt;Mobile &amp;amp; Embedded Community&lt;/a&gt;" e já tinha me deixado empolgado, pois até o título do post era promissor: "Em Breve: Swing para mobile, mas melhor" (em tradução livre). E não era para menos, deem uma olhada nos screenshots que divulgaram:&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 163px; height: 215px;" src="http://weblogs.java.net/blog/terrencebarr/Picture%205.jpg" alt="" border="0" /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 161px; height: 211px;" src="http://weblogs.java.net/blog/terrencebarr/Picture%207.jpg" alt="" border="0" /&gt;&lt;br /&gt;E hoje, durante o JavaOne, o pessoal do projeto apresentou o primeiro release dessa biblioteca que promete melhorar e muito o visual dos aplicativos em Java ME. Além disso, é um projeto apoiado pela Sun (interno) e que está sob a licença GPL, porém com o classpath exception, ou seja, você pode usá-lo tranquilamente em aplicações fechadas.&lt;br /&gt;Tem algumas features interessantes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Swing-like MVC&lt;/li&gt;&lt;li&gt;Layouts&lt;/li&gt;&lt;li&gt;Suporte look-and-feel e temas&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fontes&lt;/li&gt;&lt;li&gt;Suporte Touch screen&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Animações e transições&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Integração 3D&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Suporte I18N/L10N (internacionalização)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Performance moderada e baixo footprint.&lt;/li&gt;&lt;li&gt;Multi-plataforma (MIDP/CDC/FP/PBP)&lt;/li&gt;&lt;li&gt;Compatibilidade com SVG (scalable vector graphics)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Eu acabei de ler o tutorial que eles publicaram e estou fazendo uma pequena aplicação para controle de despesas pessoais e irei utilizar LWUIT para testar e posteriormente implementar também no projeto CoSMo. Então, assim que concluir esse pequeno aplicativo eu posto aqui uma avaliação, tutorial e o aplicativo para vocês usarem e testarem!!&lt;br /&gt;&lt;br /&gt;Para saber mais, visitem o site do projeto &lt;a href="https://lwuit.dev.java.net/"&gt;LWUIT&lt;/a&gt; !&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto Marin&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-1577753710872793878?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/1577753710872793878/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=1577753710872793878' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1577753710872793878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1577753710872793878'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/melhore-o-visual-da-sua-aplicao-com.html' title='Melhore o visual da sua aplicação com LWUIT !!'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-6125085484576325004</id><published>2008-05-01T19:20:00.004-03:00</published><updated>2008-05-02T02:31:15.770-03:00</updated><title type='text'>Tooltip para listas.</title><content type='html'>Ola pessoal,&lt;br /&gt;&lt;br /&gt;Seguindo a idéia de apresentar alguns problemas que encontrei no desenvolvimento JME e soluções que utilizei, segue uma funcionalidade que pode ser incorporada a listas e ajudar o seu usuário durante a utilização da sua aplicação.  Trata-se de um "tooltip" que é exibido quando o usuário fica um determinado tempo parado "em cima" de um determinado item da lista.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A idéia&lt;/span&gt;&lt;br /&gt;A idéia era que quando o usuário ficasse um tempo parado em um item da lista fosse exibido algo onde pudesse ser exibida alguma explicação para o usuário sobre esse item que ele esta "selecionando". Alguns celulares Nokia possuem esse recurso e quando bem utilizado pode trazer um alto grau de usabilidade!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O Exemplo&lt;/span&gt;&lt;br /&gt;No exemplo que vou mostrar aqui (e que o código está disponivel), eu optei por utilizar um Alert. Mas, fica ao gosto do fregues! =)  E se achar que fica melhor utilizar um Ticker, ou um CustomItem e mostrar um aviso no meio da tela, fique a vontade, eu mostrarei o trecho que você deve alterar! ;-)&lt;br /&gt;A aplicação está dividida em 3 classes (ListTooltipMIDlet, ListSelectionListener e TooltipTimer) que terão o seu funcionamento básico explicado abaixo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ListSelectionListener&lt;/span&gt;&lt;br /&gt;Essa classe, que implementa a interface Runnable, recebe como parametro para seu construtor a instância do Display atual da aplicação e a lista que terá suas ações "controladas" e o tooltip exibido. Essa classe é feita como uma thread pois ela tem que ficar o tempo todo verificando a mudança de seleção da lista.&lt;br /&gt;Sua tarefa consiste básicamente em um loop (eterno) dentro do corpo do método run, que a cada interação é verificado se o indice de seleção da lista foi alterado desde a ultima execução. Caso o indice tenha sido alterado (o usuário mudou de opção dentro da lista), a variável de controle é atualizada, o schedule antigo de exibição é cancelado e uma nova instância da classe TooltipTimer é criada e schedulada para 2 mil milisegundos, ou seja, 2 segundos. Em seguida, a thread recebe o comando de sleep de 500 milisegundos (meio segundo).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TooltipTimer&lt;/span&gt;&lt;br /&gt;Essa classe, que extende de uma TimerTask, assim como a ListSelecionListener recebe como parametro do seu construtor a instância do Display e da lista. Essa classe será executada 2 segundos após ela ter sido schedulada na classe ListSelectionListener e caso não tenha seu timer cancelado.&lt;br /&gt;Sua tarefa a ser executada está dentro do método run e, nesse caso, é mostrar um alert com um texto. É justamente esse ponto que você deve alterar caso deseje que ele faça uma ação diferente, como por exemplo atualizar um ticker da sua List, chamar um novo form ou o que você achar interessante! =)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ListTooltipMIDlet&lt;/span&gt;&lt;br /&gt;Bom, essa midlet nada mais é que apenas uma simples classe para poder fazer o exemplo funcionar. Aqui eu somente criei uma lista com alguns itens (que chamei de &lt;span style="font-style: italic;"&gt;itens&lt;/span&gt;), exibi e depois fiz a utilização das classes que criei aqui, através da seguinte linha:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Thread t = new Thread(new ListSelectionListener(Display.getDisplay(this),&lt;br /&gt;itens));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;t.start();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fiquem a vontade para usar o código, modificar ou até ignorar !! =)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Downloads&lt;/span&gt;&lt;br /&gt;Projeto completo (Eclipse) com código fonte, clique &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/ListTooltip.zip"&gt;aqui&lt;/a&gt;!&lt;br /&gt;Aplicação exemplo (.jar), clique &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/ListTooltip.jar"&gt;aqui&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-6125085484576325004?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/6125085484576325004/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=6125085484576325004' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6125085484576325004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6125085484576325004'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/05/tooltip-para-listas.html' title='Tooltip para listas.'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-799656436030555661</id><published>2008-04-30T15:53:00.001-03:00</published><updated>2008-04-30T15:53:05.493-03:00</updated><title type='text'>Internacionalização com solução "caseira"</title><content type='html'>Ola pessoal,&lt;br&gt;&lt;br&gt;Depois de um &amp;quot;longo e tenebroso inverno&amp;quot;, consegui um tempinho para voltar a escrever algumas coisas que acho interessante sobre o desenvolvimento de aplicativos para dispositivos móveis, e principalmente utilizando Java ME! :)&lt;br&gt;    E já que o espirito desse blog é passar para vocês algumas das minhas experiências e também soluções que encontro para algumas situações, vou mostrar hoje como resolvi um &amp;quot;problema&amp;quot; de internacionalização para aplicativos em Java ME.&lt;br&gt;   &lt;br&gt;&lt;div style="text-align: center;"&gt;&lt;font style="font-weight: bold; background-color: rgb(255, 255, 0);"&gt;** ATTENTION:&lt;/font&gt;&lt;span style="background-color: rgb(255, 255, 0);"&gt; This is a portuguese version of &lt;/span&gt;&lt;a style="background-color: rgb(255, 255, 0);" href="http://weblogs.java.net/blog/netomarin" target="_blank"&gt;http://weblogs.java.net/blog/netomarin&lt;/a&gt;&lt;span style="background-color: rgb(255, 255, 0);"&gt; **&lt;/span&gt;&lt;br&gt;  &lt;/div&gt;  &lt;br&gt;&lt;font size="4"&gt;&lt;b&gt;O problema:&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Queria fazer um aplicativo que chegasse no maior número de usuários, mas antes da aplicação em si eu tinha uma barreira: &lt;b&gt;Idioma&lt;/b&gt;!&lt;br&gt;Não gostaria de ter uma versão diferente para cada idioma que eu fosse&amp;nbsp; distribuir minha aplicação. Então, minha primeira idéia foi utilizar a JSR 238 (Mobile Internationalization API), porém ao consultar a matriz de dispositivos que implementam essa API, adivinhem só ? Poucos aparelhos e somente da Sony Ericsson.&lt;br&gt;    Nesse caso, a saída então era utilizar algum &amp;quot;walk around&amp;quot; que permitisse o usuário ter a opção de escolher entre diversos idiomas, dentro de uma única distribuição do aplicativo, o que com certeza, iria facilitar a minha vida.&lt;br&gt;    &lt;br&gt;&lt;font size="4"&gt;&lt;b&gt;Solução &amp;quot;caseira&amp;quot;:&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Sei que a JSR 238 trata a internacionalização como um todo, e não somente a questão do idioma, mas como no meu caso o problema era SOMENTE o idioma da aplicação, minha solução caseira é com foco no suporte a diversos idiomas.&lt;br&gt;    Então, criei uma classe LanguageManager que possui dois métodos estáticos para o uso dos idiomas, a interface MessagesKey que contém todas as chaves para as mensagens utilizadas no aplicativo e, claro, arquivos properties para cada idioma que se deseja disponibilizar. &lt;br&gt;    &lt;br&gt;&lt;b&gt;Arquivos de properties:&lt;/b&gt;&lt;br&gt;Esse arquivo não tem nenhum mistério. Trata-se do clássico formato &amp;quot;CHAVE=VALOR&amp;quot;, de forma que cada par deve estar em uma linha própria. Para facilitar a leitura desse arquivo, ele pode ter comentários em linhas iniciadas com &amp;quot;#&amp;quot;.&lt;br&gt;    Além da regra de &amp;quot;composição&amp;quot; do conteúdo do arquivo, o nome do arquivo também deve seguir uma regra: Ele deve estar em um diretório separado chamado &amp;quot;properties&amp;quot; e seu nome deve ser composto do código do idioma com a extensão &amp;quot;.properties&amp;quot;, como por exemplo &amp;quot;pt-br.properties&amp;quot;. Abaixo, exemplo de um trecho de um propertie que utilizo:&lt;br&gt;    &lt;br&gt;&lt;b&gt;&lt;span style="font-family: courier new,monospace;"&gt;pt-br.properties&lt;/span&gt;&lt;/b&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;#COMMANDS&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;    &lt;span style="font-family: courier new,monospace;"&gt;CMD_CONTINUE=Continuar&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;CMD_EXIT=Sair&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;    &lt;span style="font-family: courier new,monospace;"&gt;CMD_SEARCH=Pesquisar&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;A interface MessagesKey&lt;/b&gt;&lt;br&gt;Para que o seja possível encontrar a mensagem desejada, essa classe deve conter a chave desejada, pois é através de uma referência para uma constante dessa classe que será buscada a mensagem desejada. Cada chave existente no arquivo de properties deve ter o seu correspondente nessa classe. Abaixo, exemplo da classe contendo as chaves indicadas no trecho acima do properties:&lt;br&gt;    &lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;public interface MessagesKey {&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;    &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Command Label&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;    &lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String CMD_CONTINUE = &amp;quot;CMD_CONTINUE&amp;quot;;&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String CMD_EXIT = &amp;quot;CMD_EXIT&amp;quot;;&lt;br&gt;    &lt;/span&gt;&lt;span style="font-family: courier new,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String CMD_SEARCH = &amp;quot;CMD_SEARCH&amp;quot;;&lt;/span&gt;&lt;br style="font-family: courier new,monospace;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br&gt;    &lt;br&gt;&lt;b&gt;A classe LanguageManager&lt;/b&gt;&lt;br&gt;Essa classe é a responsável pela carga do idioma desejado e também é a classe que deverá ser utilizada pelo desenvolvedor para obter o texto desejado de acordo com a chave informada. Para fazer esse &amp;quot;trabalho&amp;quot;, ela tem dois métodos:&lt;br&gt; &lt;ul style="font-family: courier new,monospace;"&gt;&lt;li&gt;public static boolean &lt;b&gt;loadLanguage&lt;/b&gt;(String language) throws LanguageNotFoundException&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left: 40px;"&gt;Esse método é o responsável for fazer a &amp;quot;carga&amp;quot; do idioma desejado. O parâmetro que ele recebe é o prefixo do idioma (no caso do português do Brasil, seria pt-br), que é utilizado para carregar o propertie correspondente (pt-br.properties, no nosso exemplo). Essa carga é feita percorrendo cada linha do arquivo texto e então atribuindo o par chave/valor a um Hashtable stático (privado) da classe.&lt;br&gt; &lt;b style="background-color: rgb(255, 255, 102);"&gt;Atenção&lt;/b&gt;&lt;span style="background-color: rgb(255, 255, 102);"&gt;: Esse método deve ser executado ao menos uma vez antes de você tentar usar as mensagens internacionalizadas, pois ele é o responsável por carregar o Hashtable com as mensagens, senão, você com certeza terá uma exceptions de NullPointer !!! =)&lt;/span&gt;&lt;br&gt; &lt;/div&gt;&lt;ul&gt;&lt;li&gt;public static String &lt;b&gt;getMessageText &lt;/b&gt;(String messageKey)&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left: 40px;"&gt;Para acessar o Hashtable que possui as mensagens que devem ser exibidas, o acesso é feito por esse método que irá simplesmente devolver a String que tiver associada a chave fornecida no parâmetro. Para evitar erros de execução e simplesmente facilitar o tratamento, esse método não possui nenhum excessão, apenas retorna null caso não haja valor nenhum para a chave indicada.&lt;br&gt; &lt;br&gt;&lt;/div&gt;&lt;font size="4"&gt;Exemplo de como usar:&lt;/font&gt;&lt;br&gt;&lt;br&gt;Abaixo, vai exemplo de como utilizar a solução indicada acima:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Carregando o idioma: Esse passo deve ser feito de preferência quando você carrega a aplicação pela primeira vez. Para facilitar meu trabalho, eu criei um parâmetro no meu JAD que indica o idioma padrão, e lá coloquei pt-br. Exemplo:&lt;/li&gt; &lt;/ul&gt;&lt;div style="margin-left: 40px;"&gt;&lt;span style="font-family: courier new,monospace;"&gt;LanguageManager.loadLanguage(this.getAppProperty(&amp;quot;DefaultLanguage&amp;quot;));&lt;br&gt;&lt;br&gt;&lt;/span&gt;ou usando o idioma &amp;quot;explicitamente&amp;quot;:&lt;br&gt; &lt;br&gt;&lt;span style="font-family: courier new,monospace;"&gt;LanguageManager.loadLanguage(&amp;quot;pt-br&amp;quot;);&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Criando um novo Command, onde o label dele é &amp;quot;internacionalizado&amp;quot;:&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left: 40px;"&gt; &lt;span style="font-family: courier new,monospace;"&gt;Command continueCmd = new Command(LanguageManager.getMessageText(MessagesKey.CMD_CONTINUE), Command.OK, 1);&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;Bom pessoal, espero que tenha ficado fácil e que isso possa ajudar a alguém!! :)&lt;span style="font-family: courier new,monospace;"&gt;&lt;/span&gt;&lt;br&gt; Código fonte exemplo do que utilizo na minha aplicação (apenas o pacote internationalization): &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/internationalization.zip"&gt;internationalization.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt; Abraços a todos!&lt;br&gt;Neto Marin&lt;br&gt; &lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-799656436030555661?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/799656436030555661/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=799656436030555661' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/799656436030555661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/799656436030555661'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2008/04/internacionalizao-com-soluo-caseira.html' title='Internacionalização com solução &quot;caseira&quot;'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7895796720122156352</id><published>2007-04-23T11:57:00.000-03:00</published><updated>2008-11-13T16:26:09.232-02:00</updated><title type='text'>Wanna use Bluetooth with JME ? Try Marge !!</title><content type='html'>Hi all!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/RizNf07ifiI/AAAAAAAAABk/SvD1fnPndCI/s1600-h/marge-logo2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_boE2hlsYam4/RizNf07ifiI/AAAAAAAAABk/SvD1fnPndCI/s320/marge-logo2.png" alt="" id="BLOGGER_PHOTO_ID_5056642428298231330" border="0" /&gt;&lt;/a&gt;Have you ever wanted to (or had to) develop a JME application with connectivity by Bluetooth but gave up ? Have you already thought: I'll create something to get it easier ?&lt;br /&gt;So, two guys from Florianópolis thought the same and created a framework that can help you on creating applications with Bluetooth: The Project Marge (visit the project´s home page at: &lt;a href="https://marge.dev.java.net/"&gt;https://marge.dev.java.net/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;They are at the beginning, but with the available release you can create games and whatever you want. They said that the major goal of the project is create something easy to use and using the framework you would create bluetooth applications with a minimum knowledge on bluetooth theory, just with some gets and sets! ;-) .&lt;br /&gt;&lt;br /&gt;I'll be involved at the project helping them creating a game support for the framework and providing all support at JME Brasil. They going to put all documentation at JME Brasil and providing some examples and articles about the framework.&lt;br /&gt;&lt;br /&gt;I think it´s a great project and I'm sure you won´t waste your time visiting their home page!!&lt;br /&gt;&lt;br /&gt;[]s!!!!&lt;br /&gt;Neto&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7895796720122156352?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7895796720122156352/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7895796720122156352' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7895796720122156352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7895796720122156352'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/04/wanna-use-bluetooth-with-jme-try-marge.html' title='Wanna use Bluetooth with JME ? Try Marge !!'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_boE2hlsYam4/RizNf07ifiI/AAAAAAAAABk/SvD1fnPndCI/s72-c/marge-logo2.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-1609973430490997699</id><published>2007-04-21T00:46:00.000-03:00</published><updated>2008-11-13T16:26:09.825-02:00</updated><title type='text'>Sun Tech Days @ São Paulo</title><content type='html'>Hi all!&lt;br /&gt;&lt;br /&gt;Well, don´t be afraid... you are really at "Neto Marin" blog´s !!!&lt;br /&gt;From now on i´ll ever write my posts in English to reach more users, but if you didn´t like it please let me know sending me an e-mail and I will send to you the translation of this post. It´s in my TO DO list create a portuguese version of this Blog ;-)&lt;br /&gt;&lt;br /&gt;So, let´s talk about Sun Tech Days 2007 @ São Paulo (March 18-20) =D&lt;br /&gt;It was a fantastic moment to get contact with many different kind of people and exchange a lot of experience and impressions about JME, major at the JME Day!&lt;br /&gt;&lt;br /&gt;Yes! We had a day to discuss this great technology (in my opinion &lt;span id="misp_compose_11" class="hm"&gt;&lt;/span&gt;hehe) and to close with a "gold key" the participates of STD could discuss at the JME Fishbowl!!! A lot of (very) interesting themes was discussed and I had the great opportunity to talk about JME Brasil!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_boE2hlsYam4/RimR-07ifhI/AAAAAAAAABc/85XiguXHj-8/s1600-h/community.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_boE2hlsYam4/RimR-07ifhI/AAAAAAAAABc/85XiguXHj-8/s320/community.PNG" alt="" id="BLOGGER_PHOTO_ID_5055732565246377490" border="0" /&gt;&lt;/a&gt;And because this, I did fantastics contacts like with Phil and Roger from Sun Microsystems about the Mobile and Embedded Community!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_boE2hlsYam4/RimRCk7ifgI/AAAAAAAAABU/x6-msEI4owY/s1600-h/marge-logo2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_boE2hlsYam4/RimRCk7ifgI/AAAAAAAAABU/x6-msEI4owY/s320/marge-logo2.png" alt="" id="BLOGGER_PHOTO_ID_5055731530159259138" border="0" /&gt;&lt;/a&gt;Also, I talked a lot with Bruno and Lucas about &lt;a href="https://marge.dev.java.net/"&gt;Marge Project&lt;/a&gt;  (a bluetooth jme framework) and the decided to put all the project documentation at JME Brasil and I´ll collaborate with game extension to Marge Framework :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, I have a lot of news, but now I wanna sleep... after this three days driving everyday Campinas/São Paulo/Campinas I´m broken!!!&lt;br /&gt;&lt;br /&gt;On next days I'll post my impressions (and opinions) about the themes explored at Sun Tech Days of this year!!&lt;br /&gt;&lt;br /&gt;Thanks all!&lt;br /&gt;Cya!!!!!!&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-1609973430490997699?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/1609973430490997699/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=1609973430490997699' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1609973430490997699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/1609973430490997699'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/04/sun-tech-days-so-paulo.html' title='Sun Tech Days @ São Paulo'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_boE2hlsYam4/RimR-07ifhI/AAAAAAAAABc/85XiguXHj-8/s72-c/community.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7869800520469898372</id><published>2007-04-09T09:57:00.001-03:00</published><updated>2007-04-09T09:57:58.897-03:00</updated><title type='text'>Aqui jaz o Palm (e similares)! Vá em paz...</title><content type='html'>Bom dia a todos,&lt;br&gt;&lt;br&gt;Começando a semana estava dando uma lida nas notícias do G1 (site de noticias da Globo) Quando me deparei com a matéria: Celular &amp;quot;faz tudo&amp;quot; decreta morte do Palm - que pode ser acessada em:  &lt;a href="http://g1.globo.com/Noticias/Tecnologia/0,,MUL18201-6174,00.html"&gt;http://g1.globo.com/Noticias/Tecnologia/0,,MUL18201-6174,00.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Isso na verdade é algo que eu (por exemplo) já vinha conversando com algumas pessoas e a grande maioria era unânime em dizer que também achavam isso, mas que não tão rápido. Porém, nos últimos meses vimos uma INVASÃO dos famigerados &amp;quot;Smartphones&amp;quot; com seus teclados QWERTY e recursos que antes só encontravamos em palms (e claro em seus similares como Pocket PC entre outros). E como está escrito na própria matéria do G1 a venda desses dispositivos vêm mês a mês batendo recordes. &lt;br&gt;&lt;br&gt;Outro fator que vem impulsionando isso é o incentivo que as próprias operadoras estão dando para esses tipos de aparelhos principalmente no mundo corporativo. Na Claro pode-se obter diversos tipos de Smartphones (Treo, Qtek, Nokia, etc) por preços melhores do que os handhelds disponiveis no mercado com recursos similares, e é claro, os Smartphones ainda fazem ligação ;-) &lt;br&gt;&lt;br&gt;E aquela velha pergunta: E eu com isso? Os palms (e similares) já rodavam Java, o que eu ganho com os Smartphones?&lt;br&gt;O que ganhamos são devices com recursos ainda melhores e que estão ligados a uma rede, seja GPRS, EDGE, 3G... Sendo que antes, nem sempre os handhelds tinham alguma rede ao seu alcançe. &lt;br&gt;&lt;br&gt;Pense nisso, você pode criar aplicativos incriveis para esses devices e conquistar um ótimo mercado!!!&lt;br&gt;&lt;br&gt;Por isso: Don´t think BIG, think MICRO!! JME!!&lt;br&gt;&lt;br&gt;[]s&lt;br&gt;Neto&lt;br&gt; &lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7869800520469898372?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7869800520469898372/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7869800520469898372' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7869800520469898372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7869800520469898372'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/04/aqui-jaz-o-palm-e-similares-v-em-paz.html' title='Aqui jaz o Palm (e similares)! Vá em paz...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-6272877770305742771</id><published>2007-03-29T10:14:00.001-03:00</published><updated>2007-03-29T10:14:42.088-03:00</updated><title type='text'>E a revista eletrônica JME Brasil vai sair =)</title><content type='html'>Bom dia pessoal !!!&lt;br&gt;&lt;br&gt;Hoje pela manhã depois de trocar alguns e-mails fiquei ainda mais animado com a idéia da revista eletrônica JME Brasil!!&lt;br&gt;Já tinhamos algumas matérias confirmadas, como por exemplo:&lt;br&gt;&lt;ul&gt;&lt;li&gt; Tutorial de JME Game - Parte I&lt;/li&gt;&lt;li&gt;IA em JME Games&lt;/li&gt;&lt;li&gt;Artigo sobre a criação de um Menu em Canvas com direitos e tudo mais!&lt;/li&gt;&lt;/ul&gt;Além de mais algumas pessoas que falaram que ia escrever algo, mas sem confirmação do tema ainda. &lt;br&gt;Mas hoje, conseguimos já mais alguns temas para colocarmos na revista:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Conectividade Bluetooth&lt;/li&gt;&lt;li&gt;Conectividade HTTP&lt;/li&gt;&lt;/ul&gt;E se você deseja escrever algo para publicarmos na revista, fique a vontade!!! &lt;br&gt;Me envie um e-mail com uma sugestão de tema, idéia, how-to, tutorial ou o que você quiser escrever e teremos muito prazer em colocar seu artigo na revista!&lt;br&gt;&lt;br&gt;Vamos lá pessoal!&lt;br&gt;&lt;br&gt;&lt;div style="text-align: center;"&gt; &lt;span style="font-weight: bold;"&gt;Você também faz parte dessa comunidade!!!!!&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;[]s&lt;br&gt;Neto &lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-6272877770305742771?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/6272877770305742771/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=6272877770305742771' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6272877770305742771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/6272877770305742771'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/03/e-revista-eletrnica-jme-brasil-vai-sair.html' title='E a revista eletrônica JME Brasil vai sair =)'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-4800954635771874726</id><published>2007-03-26T16:39:00.001-03:00</published><updated>2008-11-13T16:26:10.282-02:00</updated><title type='text'>Menu utilizando Canvas - Estilo Nokia, Sony Ericsson...</title><content type='html'>&lt;div class="Section1"  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_s1027" type="#_x0000_t75" style="'position:absolute;" allowoverlap="f"&gt;  &lt;v:imagedata src="cid:image001.jpg@01C76FC2.99AA93A0" title="nokia-n95"&gt;  &lt;w:wrap type="square"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_boE2hlsYam4/Rgg6V3wJAsI/AAAAAAAAAAM/MnPmpZuaJds/s1600-h/n95.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_boE2hlsYam4/Rgg6V3wJAsI/AAAAAAAAAAM/MnPmpZuaJds/s320/n95.PNG" alt="" id="BLOGGER_PHOTO_ID_5046347529886171842" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Seja&lt;/span&gt;&lt;span style="font-size:100%;"&gt;m bem-vindos novamente&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ! :-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Meu post hoje &lt;/span&gt;&lt;span style="font-size:100%;"&gt;é&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;para mostrar a vocês um menu&lt;/span&gt;&lt;span style="font-size:100%;"&gt; que criei utilizando Canva&lt;/span&gt;&lt;span style="font-size:100%;"&gt;s e me inspirando um pouc&lt;/span&gt;&lt;span style="font-size:100%;"&gt;o n&lt;/span&gt;&lt;span style="font-size:100%;"&gt;os men&lt;/span&gt;&lt;span style="font-size:100%;"&gt;us da Nokia (série 60, série N, etc), Sony Ericss&lt;/span&gt;&lt;span style="font-size:100%;"&gt;on, entre outros modelos que mesclam figuras e textos.&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;A figura ao lado m&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ostr&lt;/span&gt;&lt;span style="font-size:100%;"&gt;a o celular N95 da Nokia&lt;/span&gt;&lt;span style="font-size:100%;"&gt; que utiliza esse conceito &lt;/span&gt;&lt;span style="font-size:100%;"&gt;de Menu.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Funcionam&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;ento bá&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;sico:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;É um menu compo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;sto por figuras, onde existe um "qua&lt;/span&gt;&lt;span style="font-size:100%;"&gt;drado" de sele&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ção q&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ue fica de fund&lt;/span&gt;&lt;span style="font-size:100%;"&gt;o das figuras conforme o usuário na&lt;/span&gt;&lt;span style="font-size:100%;"&gt;veg&lt;/span&gt;&lt;span style="font-size:100%;"&gt;a pelas opçõ&lt;/span&gt;&lt;span style="font-size:100%;"&gt;e&lt;/span&gt;&lt;span style="font-size:100%;"&gt;s. O nome da&lt;/span&gt;&lt;span style="font-size:100%;"&gt; opção é mostrado c&lt;/span&gt;&lt;span style="font-size:100%;"&gt;omo título e fica no&lt;/span&gt;&lt;span style="font-size:100%;"&gt; alto da tela ( o posicionamento ex&lt;/span&gt;&lt;span style="font-size:100%;"&gt;at&lt;/span&gt;&lt;span style="font-size:100%;"&gt;o depende da imple&lt;/span&gt;&lt;span style="font-size:100%;"&gt;mentação de &lt;/span&gt;&lt;span style="font-size:100%;"&gt;cada &lt;/span&gt;&lt;span style="font-size:100%;"&gt;fabricante).&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;As figuras ab&lt;/span&gt;&lt;span style="font-size:100%;"&gt;aixo &lt;/span&gt;&lt;span style="font-size:100%;"&gt;mostram o menu no emulado da No&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ki&lt;/span&gt;&lt;span style="font-size:100%;"&gt;a para série 40 (duas primeiras ima&lt;/span&gt;&lt;span style="font-size:100%;"&gt;gens, se&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ndo a &lt;/span&gt;&lt;span style="font-size:100%;"&gt;s&lt;/span&gt;&lt;span style="font-size:100%;"&gt;egunda a continuação da pr&lt;/span&gt;&lt;span style="font-size:100%;"&gt;imeira) e a ultima imagem uma figur&lt;/span&gt;&lt;span style="font-size:100%;"&gt;a &lt;/span&gt;&lt;span style="font-size:100%;"&gt;do em&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ulado&lt;/span&gt;&lt;span style="font-size:100%;"&gt; para sér&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ie&lt;/span&gt;&lt;span style="font-size:100%;"&gt; 60.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size:100%;"&gt;  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/Rgg9wnwJAzI/AAAAAAAAABE/j8N_gXojUHw/s1600-h/s40.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_boE2hlsYam4/Rgg9wnwJAzI/AAAAAAAAABE/j8N_gXojUHw/s320/s40.PNG" alt="" id="BLOGGER_PHOTO_ID_5046351287982555954" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_boE2hlsYam4/Rgg9wnwJA0I/AAAAAAAAABM/8sKuahDkd-8/s1600-h/s60.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 302px;" src="http://2.bp.blogspot.com/_boE2hlsYam4/Rgg9wnwJA0I/AAAAAAAAABM/8sKuahDkd-8/s320/s60.PNG" alt="" id="BLOGGER_PHOTO_ID_5046351287982555970" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;span style=""&gt;&lt;span style="font-weight: bold;"&gt;Porque fiz esse menu?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Utilizo esse menu como o menu principal das minhas aplicações, e da forma como estava antes (eu fixava a quantidade de imagens por linha, e não havia scroll dos icones) eu tinha sérios problemas com modelos diferentes e telas diferentes, pois fiz a montagem inicial me baseando nos celulares da Série 40 2ª edição da Nokia (com um visor de 128x28).&lt;br /&gt;Então resolvi criar um menu novo, onde a própria classe faria os cálculos de como posicionar as imagens na tela e assim não teria problemas com as diferentes telas de celulares.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Como reutilizar o menu?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Depois de fazer o &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/MenuNokiaStyle.zip"&gt;dowload&lt;/a&gt; do menu, você irá encontrar o arquivo MenuNokiaStyleCanvas.java que é o menu em si.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Nessa classe você irá alterar apenas TRÊS variáveis: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="1" type="1"&gt;  &lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;widthIcon&lt;/span&gt;: Largura do ícone em pixels.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;heightIcon&lt;/span&gt;: Altura do ícone em pixels.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;margemQuadrante&lt;/span&gt;: Margem do quadrante, servirá de      base para desenhar o fundo que serve de indicação de seleção&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Além disso, a carga com os dados de cada opção do menu será encontrada no método &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;protected void carregaOpcoes()&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Também coloquei alguns comandos para exemplificar alguns pontos e demonstrar outros.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;E o código foi comentado da melhor maneira possível (na minha opinião) para que conforme você vá lendo o código, consiga entendê-los! ;-)&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Esse menu ainda é uma primeira versão, pretendo adicionar diversas funcionalidades, mas acho que serve de base pro pessoal que ta começando e não tem muita noção de como fazer um menu sem ser aqueles terríveis lists !!! ;-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;No zip disponível, é possível encontrar o .jad e o .jar caso deseje testar o menu.&lt;br /&gt;Arquivo disponível em: &lt;a href="http://weblogs.java.net/blog/netomarin/archive/examples/MenuNokiaStyle.zip"&gt;http://weblogs.java.net/blog/netomarin/archive/examples/MenuNokiaStyle.zip&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;[]s a todos!!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-4800954635771874726?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4800954635771874726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/4800954635771874726'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/03/menu-utilizando-canvas-estilo-nokia_26.html' title='Menu utilizando Canvas - Estilo Nokia, Sony Ericsson...'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_boE2hlsYam4/Rgg6V3wJAsI/AAAAAAAAAAM/MnPmpZuaJds/s72-c/n95.PNG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-5081292207410941036</id><published>2007-03-23T18:54:00.000-03:00</published><updated>2007-03-23T19:01:29.554-03:00</updated><title type='text'>Mais uma opção GSM no Brasil</title><content type='html'>Como a maioria já devia saber, a &lt;span style="font-weight: bold;"&gt;Vivo&lt;/span&gt; havia anunciado que iria construir uma &lt;span style="font-weight: bold;"&gt;rede GSM&lt;/span&gt; e passar a disponibilizar essa forma de telefonia para seus clientes. O motivo principal alegado oficialmente é de que queriam dar mais opções aos seus clientes que poderiam optar pelo uso de GSM.&lt;br /&gt;Porém, o que circulou foi que na verdade, a migração para 3G da rede CDMA seria muito cara e também  estavam tendo muitos custos com os royaltes pagos a Qualcomm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bom, e o que isso interessa para nós?&lt;/span&gt;&lt;br /&gt;De acordo com a matéria no WNews ( &lt;strong&gt;          &lt;a href="http://wnews.uol.com.br/site/noticias/materia.php?id_secao=4&amp;id_conteudo=7660"&gt;Vivo já tem mais de 300 mil clientes GSM&lt;/a&gt;&lt;/strong&gt; ), já existem em circulação mais de 300 mil aparelhos Vivo GSM no mercado, ou seja, &lt;span style="font-weight: bold;"&gt;mais 300 mil devices que suportam Java.&lt;/span&gt;&lt;br /&gt;Resta saber, se a Vivo não fez nenhum bloqueio nesses celulares, o que não seria de se espantar.&lt;br /&gt;&lt;br /&gt;É isso ai, e fiquem ligados porque amanhã irei disponibilizar para vocês um menu no estilo dos menus da Série 60 da Nokia aqui no meu blog.&lt;br /&gt;&lt;br /&gt;[]s a todos!&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-5081292207410941036?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5081292207410941036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/5081292207410941036'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/03/mais-uma-opo-gsm-no-brasil.html' title='Mais uma opção GSM no Brasil'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-6641959439683393974.post-7559866579841832920</id><published>2007-03-17T00:54:00.000-03:00</published><updated>2007-03-19T00:37:28.134-03:00</updated><title type='text'>(Não) Usando POO em JME</title><content type='html'>Normalmente, os programadoes que dão seus primeiros passos no JME tendem a trazer velhas (e boas) práticas da programação do Java "convencional" (JSE e/ou JEE)&lt;span style="font-weight: bold;"&gt;, &lt;/span&gt;principalmente a forte utilização da POO (Programação Orientada a Objetos) e a utilização de padrões de projeto (os famosos Design Patterns).&lt;br /&gt;&lt;br /&gt;É indiscutivel que essas práticas trouxeram inúmeras vantagens em relação a se desenvolver sem utilizá-las. Porém sua utilização no JME deve ser bem entendida e usada com extrema cautela para que o ganho em produtividade e reaproveitamento de código não se tornem causa de perda de desempenho e aumento do tamanho ocupado em memória pela aplicação - lembrando que os dispositivos que usam JME são bem mais limitados do que os que se utilizam de JSE e/ou JEE.&lt;br /&gt;&lt;br /&gt;Porém, a palavra "limitado" para caracterizar os dispositivos que implementam o JME não é exagero, pois eles realmente possuem limitações em memória, armazenamento e processamento. Por isso, &lt;span style="font-weight: bold;"&gt;qualquer ganho de desempenho e memória por menor que seja se torna significativo, principalmente quando levamos em conta os recursos que temos disponíveis no celular.&lt;/span&gt; A uma hora dessa você já deve estar perguntando: "Então quer dizer que devo diminuir a criação de novos objetos e classes porque isso custa muito caro ?"&lt;br /&gt;&lt;br /&gt;Você não precisa necessariamente sacrificar suas idéias de orientação a objetos ou deixar de usar um determinado pattern. &lt;span style="font-weight: bold;"&gt;O que se deve fazer é analisar o cenário da sua aplicação e adaptar o que já existe para as limitações dos devices.&lt;/span&gt; Então, o que se deve levar em consideração sobre ao excesso uso de orientação objetos? Veja abaixo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;O &lt;span style="font-weight: bold;"&gt;overhead natural da linguagem Java&lt;/span&gt; que é adicionado na geração do byte code a CADA CLASSE.&lt;/li&gt;&lt;li&gt;O &lt;span style="font-weight: bold;"&gt;custo para se executar o carregamento de cada classe&lt;/span&gt; nova gerada quando é utilizada.&lt;/li&gt;&lt;li&gt;O &lt;span style="font-weight: bold;"&gt;custo gasto para se alocar/desalocar a memória heap&lt;/span&gt; da classe em questão.&lt;/li&gt;&lt;li&gt;O &lt;span style="font-weight: bold;"&gt;custo para a montagem da pilha de execução e montagem do escopo&lt;/span&gt; da classe e dos métodos.&lt;/li&gt;&lt;li&gt;Além de se aumentar o número de objetos que o garbage collector precisa inspecionar.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;O que fazer então para que todos esses custos se tornem o minimo possível ?&lt;br /&gt;Algumas medidas podem ser tomadas, como por exemplo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Atribua/recupere os valores diretamente das variáveis.&lt;/span&gt; Os métodos get/set fazem sua aplicação perder tempo entrando em um método, montando a pilha de execução, definindo o escopo da execução, etc.&lt;/li&gt;&lt;li&gt;Tente&lt;span style="font-weight: bold;"&gt; reutilizar ao máximo suas variáveis&lt;/span&gt; e assim evitando a perda do tempo que a KVM leva para fazer o class loader.&lt;/li&gt;&lt;li&gt;Quando for criar uma nova classe derivada de outra análise ao máximo se realmente precisa criar uma classe nova ao invés de &lt;span style="font-weight: bold;"&gt;usar as classes já existentes adicionando a elas os componentes do JME.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Somente crie &lt;span style="font-weight: bold;"&gt;novas classes&lt;/span&gt; quando precisar &lt;span style="font-weight: bold;"&gt;realmente adicionar algum comportamente&lt;/span&gt; diferente ao já existente na classe. &lt;span style="font-weight: bold;"&gt;O tratamento de comando não precisa ser feito especificamente dentro do componente que possue o comando&lt;/span&gt;, PENSE NISSO!!&lt;/li&gt;&lt;li&gt;Projetar suas &lt;span style="font-weight: bold;"&gt;novas classes&lt;/span&gt; que tenham o &lt;span style="font-weight: bold;"&gt;máximo de caracteristicas para que sejam reaproveitadas &lt;/span&gt;ao máximo, por exemplo: Quando for criar uma classe nova de personagem para o seu jogo, tente fazê-la de modo que todos os personagens usem a mesma classe, mudando apenas os atributos.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;As vezes, o que não parece elegante do ponto de vista de POO ou de algum design pattern pode ser a diferença entre o sucesso e a falha de sua aplicação, pois ela roda em um dispositivo que na maioria das vezes não é o computador principal do usuário e mesmo assim o usuário quer respostas rápidas e precisas!&lt;br /&gt;Abaixo estão dois artigos nos quais me baseei para escrever essa minha pequena contribuição para o melhor desempenho da sua aplicação.&lt;br /&gt;&lt;br /&gt;Por isso, como eu sempre digo: &lt;span style="font-weight: bold;"&gt;Don´t think BIG! Think MICRO! JME!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;&lt;a href="http://www-128.ibm.com/developerworks/java/library/j-dyn0429/"&gt;&lt;span style="color: rgb(153, 153, 153);font-family:courier new;" &gt;Java programming dynamics, Part 1: &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;a href="http://www-128.ibm.com/developerworks/java/library/j-dyn0429/"&gt;Classes and class loading&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.microjava.com/articles/techtalk/recycle?PageNo=1"&gt;&lt;span style="font-weight: normal;"&gt;Reduce, Reuse and Recycle:  Reusing Objects - Part I&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div class="blogger-post-footer"&gt;Neto Marin Blog&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6641959439683393974-7559866579841832920?l=netomarin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://netomarin.blogspot.com/feeds/7559866579841832920/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6641959439683393974&amp;postID=7559866579841832920' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7559866579841832920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6641959439683393974/posts/default/7559866579841832920'/><link rel='alternate' type='text/html' href='http://netomarin.blogspot.com/2007/03/no-usando-poo-em-jme.html' title='(Não) Usando POO em JME'/><author><name>Neto Marin</name><uri>http://www.blogger.com/profile/12100531037007535554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_boE2hlsYam4/ScOY4SQqUvI/AAAAAAAAAXo/Exd-lcMb_fo/S220/DSC04255.JPG'/></author><thr:total>2</thr:total></entry></feed>
