<?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-7223282403168543039</id><updated>2012-01-18T10:35:45.796-03:00</updated><category term='livros'/><category term='opinião'/><category term='pessoal'/><category term='música'/><category term='Java'/><category term='asperger'/><category term='.NET'/><title type='text'>ASPie.NET</title><subtitle type='html'>Yet another aspie geek!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-7781239892506050099</id><published>2008-10-03T09:28:00.006-03:00</published><updated>2008-10-06T03:12:59.852-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asperger'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='música'/><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>NOVO ENDERECO</title><content type='html'>Este site foi movido para o endereço: &lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://www.ezntier.com/jorge"&gt;www.jorgealbuquerque.com.br&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-7781239892506050099?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/7781239892506050099/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=7781239892506050099' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7781239892506050099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7781239892506050099'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/10/site-movido.html' title='NOVO ENDERECO'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1508728538851488579</id><published>2008-09-08T11:39:00.004-03:00</published><updated>2008-09-10T21:28:21.397-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>[Livro] Sobrevivi para Contar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zbQe8y6ysuc/SMhM66AhM5I/AAAAAAAAD4w/AETpyXRhMUY/s1600-h/2535154g.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/SMhM66AhM5I/AAAAAAAAD4w/AETpyXRhMUY/s200/2535154g.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5244526340960498578" /&gt;&lt;/a&gt;Esse livro segue a mesma linha de "&lt;a href="http://aspienet.blogspot.com/2008/03/referncia-livro-muito-longe-de-casa.html"&gt;muito longe de casa&lt;/a&gt;", ou seja, é a auto-biografia de uma pessoa comum que se vê repentinamente lutando pela sobrevivência na África contemporânea. O interessante é que tais genocídios, verdadeiros holocaustos, continuam se sucedendo sem que se desperte nenhuma reação, ou mesmo interesse, no mundo "ocidental civilizado". Aparentemente, essas vidas não possuem importância em virtude de seu reduzido valor econômico.&lt;a href="http://aspienet.blogspot.com/2008/03/referncia-livro-muito-longe-de-casa.html"&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://aspienet.blogspot.com/2008/03/referncia-livro-muito-longe-de-casa.html"&gt;Muito longe de casa&lt;/a&gt; trata da guerra civil em Serra Leoa, na visão do adolescente Ishmael Beah, que é recrutado como menino-soldado, vivendo todo o horor da guerra. O conflito mal era noticiado e não houve auxílio da ONU. Resultado final: a luta durou 10 anos, morreram 5,4 milhões de pessoas e só terminou com a intervenção do exército do Congo. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por sua vez, "&lt;a href="http://www.americanas.com.br/AcomProd/1472/2535154"&gt;Sobrevivi para contar&lt;/a&gt;" conta a história de Immaculée Ilibagiza, uma jovem que passou nada menos que 100 dias escondida num banheiro minúsculo com outras 6 mulheres para escapar do &lt;a href="http://pt.wikipedia.org/wiki/Genoc%C3%ADdio_de_Ruanda"&gt;genocídio de sua minoria étnica&lt;/a&gt; em Ruanda no ano de 1994. Não houve nenhuma resposta da ONU, nenhuma intervenção ou qualquer auxílio externo. Resultado: o extermínio de cerca de 1 milhão de pessoas da minoria tutsi (80% dessa população) pela maioria hutu. Tal conflito é retratato com primazia no filme &lt;a href="http://www.imdb.com/title/tt0395169/"&gt;Hotel Ruanda (2004)&lt;/a&gt;. O conflito somente é encerrado quando exilados tutsis (exilados durante a fuga em massa do último genocídio) invadem o país, a partir de Uganda, e derrubam o governo hutu que conduzia o genocídio. Por falar nisso, a salvação vem da mesma Uganda de Idi Amin (conhecido pelas alcunhas de "açougueiro de Kampala" e "senhor do horror", com seus hábitos de comer carne humana...), retratado de forma ultra-light em &lt;a href="http://www.imdb.com/title/tt0455590/"&gt;O último Rei da Escócia (2007)&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Qualquer semelhança entre os conflitos pode não ser mera coincidência! Ambos os livros são  importantes por trazerem a pauta um problema que simplemente não se discute. Afinal, o genocídio nos conflitos citados superam o total de mortos do holocausto judeu na segunda guerra. As atrocidades praticados na "Mama África", para qualquer instabilidade política, evidenciam uma tendência de indiferença e pervesidade da raça humana. A receita é muito simples: instabilidade política (ausência de um processo democrático consolidado), pouca educação e falta de recursos econômicos. Os ingredientes são poucos, mas a receita mostra o pior da humanidade, principalmente se aliados a questões raciais. Neste cenário, facilmente surgem grupos ursupando o poder para expropriação de riquezas, e fazendo isso as custas de extermínios. Perceba que não existe uma razão para o problema ser exclusivamente africano: isso aconteceria da mesma forma nos países de primeiro mundo se as mesmas condições estivessem presentes. Uma evidência clara disso é a total indiferença a tais genocídios. Ou seja, os mesmos podem ser aceitos com surpreendente naturalidade (i.e. desde que não existam interesses econômicos em contrário). Triste mas verdadeiro!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quando li &lt;a href="http://aspienet.blogspot.com/2008/03/referncia-livro-muito-longe-de-casa.html"&gt;muito longe de casa&lt;/a&gt;, o livro me tocou pela linguagem simples, direta e tocantemente honesta. Sem ideologias, floreamentos ou eufemismos: apenas a realidade. Esse não é o caso de &lt;a href="http://www.americanas.com.br/AcomProd/1472/2535154"&gt;sobrevivi para contar&lt;/a&gt;. A tocante história de sobrevivência, e seu relevante contexto histórico, são postos em segundo plano para dar lugar a um discurso religioso. Em diversos momentos, percebe-se claramente que sua narrativa é forçada para convergir às convicções religiosas da autora, no que beira a pregação pura e simples. Em certos momentos parece muito um livro de auto-ajuda de baixa qualidade. No entanto, em se tendo a boa vontade de relevar tais aspectos e de se concentrar na história em segundo plano, percebe-se que o livro consiste de um relato fabuloso de uma sobrevivente. Uma história a ser conhecida e disseminada como um alerta a todos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Embora não tenha lido pessoalmente, outras fontes de informação são o livro "&lt;a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=3040624&amp;amp;sid=01401482310216833384515081&amp;amp;k5=190F806E&amp;amp;uid="&gt;Gostaríamos de informá-lo de que amanhã seremos mortos com nossas famílias&lt;/a&gt;" de &lt;a href="http://delicious.com/antunesmat/Philip_Gourevitch"&gt;Philip Gourevitch&lt;/a&gt; (também disponível em &lt;a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=1571551&amp;amp;sid=01401482310216833384515081&amp;amp;k5=190F806E&amp;amp;uid="&gt;edição de bolso&lt;/a&gt;) e os documentários &lt;a href="http://www.pbs.org/wgbh/pages/frontline/shows/ghosts/video"&gt;Ghosts of Rwanda (2004)&lt;/a&gt; e &lt;a href="http://www.imdb.com/title/tt0424435/"&gt;Shake Hands with the Devil: The Journey of Roméo Dallaire (2004)&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1508728538851488579?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1508728538851488579/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1508728538851488579' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1508728538851488579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1508728538851488579'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/09/livro-sobrevivi-para-contar.html' title='[Livro] Sobrevivi para Contar'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbQe8y6ysuc/SMhM66AhM5I/AAAAAAAAD4w/AETpyXRhMUY/s72-c/2535154g.gif' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-6228261643436261517</id><published>2008-09-02T10:41:00.003-03:00</published><updated>2008-09-10T19:30:48.145-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Opinião] Os dinossauros são coisa do diabo!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;"Os dinossauros são criações do demônio!"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Parece de sacanagem, mas é coisa de &lt;span style="font-weight:bold;"&gt;evangélico&lt;/span&gt;! Cortesia do seminarista Carlos Alberto de Souza Magalhães e do "Dr." (em verdade mestre) Carlos Gama Michel. Além de atribuir uma origem demoníaca aos dinossauros, o autor ainda discute que sua extinção foi causada pelo dilúvio... Confira mais essa pérola pelo original em &lt;a href="http://www.tagnet.org/autores/monografias/Pdf/Portugues/0006mopor.pdf"&gt;PDF&lt;/a&gt; ou por sua transcrição neste &lt;a href="http://www.jesusvoltara.com.br/atuais/dinossauros_surgiram.htm"&gt;site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Só para fomentar, segue um trecho muito interessante sobre a disseminação dos dinossauros e a geologia da Terra ao final do período Cretáceo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Os ossos desses animais (os dinossauros) são encontrados em todos os continentes. Isto indica que popularam a terra toda. Apesar da teoria de continentes ligados antes do &lt;span style="font-weight:bold;"&gt;dilúvio&lt;/span&gt; que possibilitariam a ocupação destes pelos dinossauros, outra teoria é apresentada como susceptível de probabilidade pelo Doutor Ritter. Ele diz que a distribuição de animais terrestres a partir de &lt;span style="font-weight:bold;"&gt;um ponto radiante no oriente médio&lt;/span&gt;, como admitem os criacionistas, pode ser explicada por &lt;span style="font-weight:bold;"&gt;pontes terrestres unindo continentes ou unindo continentes a ilhas adjacentes&lt;/span&gt;. A simples reconstituição das &lt;span style="font-weight:bold;"&gt;enormes massas de gelo que uma vez se acumularam no Hemisfério Norte faria o nível dos oceanos descer 90 metros&lt;/span&gt;. Segundo &lt;span style="font-weight:bold;"&gt;boas fontes&lt;/span&gt;, isto seria suficiente para estabelecer um bom número de pontes terrestres, inclusive a &lt;span style="font-weight:bold;"&gt;ligação da Ásia com a América&lt;/span&gt;, e assim resolver um grande problema da distribuição de animais...&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Abaixo, corajosas incurções minhas junto aos famigerados "seres infernais" nos museus de história natural de Londres e de NY!! O enxofre estava no ar!! hehehe...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zbQe8y6ysuc/SMfSd4BtNjI/AAAAAAAAD4o/Z7Zrsa3kf08/s1600-h/viagem_europa_jan08+690.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_zbQe8y6ysuc/SMfSd4BtNjI/AAAAAAAAD4o/Z7Zrsa3kf08/s320/viagem_europa_jan08+690.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5244391701793814066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zbQe8y6ysuc/SMfSdh_GnJI/AAAAAAAAD4g/TmzKu9drwBM/s1600-h/Jorge(GrupoOhio)_Natural_History_Museum_016_MBA_NYC_Ago03.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_zbQe8y6ysuc/SMfSdh_GnJI/AAAAAAAAD4g/TmzKu9drwBM/s320/Jorge(GrupoOhio)_Natural_History_Museum_016_MBA_NYC_Ago03.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5244391695877315730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vale sempre remeter a discussão prévia "&lt;a href="http://aspienet.blogspot.com/2008/04/opinio-criacionismo-e-intolerncia.html"&gt;Criacionismo e intolerância religiosa&lt;/a&gt;"...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-6228261643436261517?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/6228261643436261517/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=6228261643436261517' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6228261643436261517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6228261643436261517'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/09/opinio-os-dinossauros-so-coisa-do-diabo.html' title='[Opinião] Os dinossauros são coisa do diabo!'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbQe8y6ysuc/SMfSd4BtNjI/AAAAAAAAD4o/Z7Zrsa3kf08/s72-c/viagem_europa_jan08+690.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-5855099697351416550</id><published>2008-08-18T09:58:00.000-03:00</published><updated>2008-09-10T19:22:57.056-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Cool] Large Hadron Collider Rap</title><content type='html'>Te cuida Eminen, senão a matéria escura te pega... :D&lt;br /&gt;&lt;br /&gt;Muito bom! Recomendo mesmo!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8wwozHsmVQI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/8wwozHsmVQI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-5855099697351416550?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/5855099697351416550/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=5855099697351416550' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5855099697351416550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5855099697351416550'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/09/large-hadron-collider-rap.html' title='[Cool] Large Hadron Collider Rap'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-5647797312940005239</id><published>2008-08-12T10:34:00.001-03:00</published><updated>2008-09-03T12:55:59.977-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Flores secas</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=d5848e908e568bae04f097b3fc8a624c" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=d5848e908e568bae04f097b3fc8a624c" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flores secas&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Flores secas não despedaçam corações&lt;br /&gt;Mas uma rosa abre todas as portas&lt;br /&gt;Quem não diz eu te amo&lt;br /&gt;Não leva pra cama um sonho&lt;br /&gt;&lt;br /&gt;Quem está ao seu lado&lt;br /&gt;Talvez não saiba o seu jogo&lt;br /&gt;Quem prepara esse bolo&lt;br /&gt;Talvez não jogue o seu dado&lt;br /&gt;&lt;br /&gt;Quem está ao seu lado&lt;br /&gt;Talvez não saiba o seu jogo&lt;br /&gt;Quem devolve em dobro&lt;br /&gt;Talvez não jogue o seu dado&lt;br /&gt;&lt;br /&gt;Canções de amor fazem sucesso&lt;br /&gt;Mulheres nuas dão IBOPE&lt;br /&gt;A bandeira desordem e progresso&lt;br /&gt;Como um aceno de boa sorte&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-5647797312940005239?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/5647797312940005239/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=5647797312940005239' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5647797312940005239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5647797312940005239'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/08/msica-flores-secas.html' title='[Música] Flores secas'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1890195982200034511</id><published>2008-08-06T10:40:00.003-03:00</published><updated>2008-09-03T12:56:34.193-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Lençois ao Vento</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=211e702c3895397691b597eb438ddfa2" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=211e702c3895397691b597eb438ddfa2" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lençois ao Vento&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Tenho forças para caminhar, mas não para erguer o mundo&lt;br /&gt;Tenho forças para respirar, mas não para o absurdo&lt;br /&gt;Se lembra de quando sabíamos de tudo&lt;br /&gt;Me venda uma passagem pelo muro&lt;br /&gt;E voam nossos lençóis &lt;br /&gt;Nos campos, giram girassóis no escuro&lt;br /&gt;&lt;br /&gt;Já não sei mais falar o que sinto&lt;br /&gt;Sofrer pra que? Tomamos absinto&lt;br /&gt;Jurar com sangue? Espero que estanque!&lt;br /&gt;Pra ser sincero, estamos tão distantes&lt;br /&gt;&lt;br /&gt;Eu vou partir pros braços de uma qualquer&lt;br /&gt;Eu vou deixar a solidão te acompanhar&lt;br /&gt;Quem sabe amar talvez saiba te magoar&lt;br /&gt;No telefone, os risos de outra você vai ouvir&lt;br /&gt;&lt;br /&gt;Ingratidão: moeda que eu pago&lt;br /&gt;Pro seu velório eu fiz um réquiem arretado&lt;br /&gt;Porque no amor sempre alguém dança no final&lt;br /&gt;Se apreveitamos, então não foi de todo mal...&lt;br /&gt;&lt;br /&gt;De todo o mal que eu fiz...&lt;br /&gt;De todo o mal que eu fiz...&lt;br /&gt;De todo o mal que eu fiz...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;E para o bom saudosismo de todos dos tempos da república! Um raríssimo vídeo gravado com uma webcam (de baixa resolução) e microfone ambiente!! Aproximadamente em setembro de 2001! Grande abraço a todos!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pNqlNdD4338&amp;hl=pt-br&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pNqlNdD4338&amp;hl=pt-br&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1890195982200034511?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1890195982200034511/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1890195982200034511' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1890195982200034511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1890195982200034511'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/08/msica-lenois-ao-vento-aovivo.html' title='[Música] Lençois ao Vento'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-7057833462006086017</id><published>2008-07-27T10:50:00.002-03:00</published><updated>2008-09-03T13:00:32.082-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Sampa (cover)</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=8f44854fa6d9b1dd49319a1c8db5a9ff" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=8f44854fa6d9b1dd49319a1c8db5a9ff" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sampa&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;(Caetano Veloso Cover - Ao vivo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://www.caetanoveloso.com.br/"&gt;Cartano Veloso&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://www.caetanoveloso.com.br/"&gt;Cartano Veloso&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-7057833462006086017?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/7057833462006086017/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=7057833462006086017' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7057833462006086017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7057833462006086017'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/07/msica-sampa-cover.html' title='[Música] Sampa (cover)'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-6923558286924570760</id><published>2008-07-17T10:21:00.001-03:00</published><updated>2008-09-03T13:01:12.933-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Eu quis me perder</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=16812d42f8890230b946ba0b8f954499" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=16812d42f8890230b946ba0b8f954499" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Eu quis me perder&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Ao ver olhos seguindo os meus&lt;br /&gt;Pensei ser paixão&lt;br /&gt;Se quis ter nos meus braços, &lt;br /&gt;Colher os teus lábios,&lt;br /&gt;Pétala por pétala&lt;br /&gt;&lt;br /&gt;Eu quis me perder&lt;br /&gt;Eu quis me perder&lt;br /&gt;Eu quis me perder&lt;br /&gt;E perdi...&lt;br /&gt;Kiss me, baby...&lt;br /&gt;&lt;br /&gt;Menina, quando estou contigo,&lt;br /&gt;Tenho medo de ser eu mesmo&lt;br /&gt;E ainda sim ser pouco&lt;br /&gt;E quando eu digo essas palavras&lt;br /&gt;É que espero que tu saibas que&lt;br /&gt;Não são só palavras&lt;br /&gt;&lt;br /&gt;Eu quis me perder&lt;br /&gt;Eu quis me perder&lt;br /&gt;Eu quis me perder&lt;br /&gt;E perdi...&lt;br /&gt;Kiss me, baby...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-6923558286924570760?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/6923558286924570760/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=6923558286924570760' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6923558286924570760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6923558286924570760'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/07/msica-eu-quis-me-perder.html' title='[Música] Eu quis me perder'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1966284842993089360</id><published>2008-07-07T10:40:00.001-03:00</published><updated>2008-09-03T13:01:40.487-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Brado Retumbante</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=29a43c447c55df202c595fbee3335d0d" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=29a43c447c55df202c595fbee3335d0d" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Brado Retumbante&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Quem vai saber o que você sentiu naquele dia&lt;br /&gt;Queria uma banho mas a água estava muito fria&lt;br /&gt;Você lavou o rosto&lt;br /&gt;Cortou o seu cabelo&lt;br /&gt;Olhava a pia, mas o rosto estava no espelho&lt;br /&gt;&lt;br /&gt;Ouvira um brado heróico&lt;br /&gt;Um brado retumbante!&lt;br /&gt;&lt;br /&gt;Você saiu bem cedo a procura de um emprego&lt;br /&gt;Parou num bar, bebeu um pouco e acabou num beco&lt;br /&gt;Você bebeu a grana, mas pediu uma grama&lt;br /&gt;Cuidado filho, senão você acaba entrando em cana...&lt;br /&gt;&lt;br /&gt;Ouvira um brado heróico&lt;br /&gt;Um brado retumbante!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1966284842993089360?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1966284842993089360/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1966284842993089360' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1966284842993089360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1966284842993089360'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/07/msica-brado-retumbante.html' title='[Música] Brado Retumbante'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-3725903867968639873</id><published>2008-06-26T11:28:00.002-03:00</published><updated>2008-09-03T13:05:06.286-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] A Vida por Diamantes</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=e1c279ca83e7b766bc09ecd7667f865f" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=e1c279ca83e7b766bc09ecd7667f865f" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Vida por Diamantes &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Só estende as mãos para receber&lt;br /&gt;Sua lei: ganhar nunca perder&lt;br /&gt;Mantêm com as mãos seu coração&lt;br /&gt;O próprio ladrão&lt;br /&gt;Correndo com a solução&lt;br /&gt;Não sabe parar para ver&lt;br /&gt;Juntando a lei pra conquistar poder&lt;br /&gt;&lt;br /&gt;E eu não sei ligar&lt;br /&gt;Pra quem não quer saber&lt;br /&gt;O que é o amor&lt;br /&gt;Pra quem não quer sentir&lt;br /&gt;Morrer de dor&lt;br /&gt;Olhando para si e para mais ninguém&lt;br /&gt;&lt;br /&gt;Futuro para construir&lt;br /&gt;Render mais que investir&lt;br /&gt;Comprar para acumular o que é seu&lt;br /&gt;Não sabe ter sem possuir&lt;br /&gt;Contenta-se com o que restou&lt;br /&gt;Joga na cara o que fez e desfaz&lt;br /&gt;&lt;br /&gt;E só não esconde a dor e frustação&lt;br /&gt;De quem correu e não chegou a lugar algum&lt;br /&gt;Que vá... Pra que voltou? Pra que?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-3725903867968639873?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/3725903867968639873/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=3725903867968639873' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3725903867968639873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3725903867968639873'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/06/vida-por-diamantes.html' title='[Música] A Vida por Diamantes'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-2920790334297687244</id><published>2008-06-15T11:36:00.001-03:00</published><updated>2008-09-03T13:06:02.004-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Beijos Aperitivos</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=791bb4beef6826b332b322310aa6d0e0" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=791bb4beef6826b332b322310aa6d0e0" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Beijos Aperitivos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Beijos Aperitivos&lt;br /&gt;Sem prato principal&lt;br /&gt;Não deixam gosto na boca&lt;br /&gt;Como o segundo no dia&lt;br /&gt;Uma eternidade&lt;br /&gt;E ao mesmo tempo&lt;br /&gt;Não valem de nada&lt;br /&gt;&lt;br /&gt;Nem com poema vai...&lt;br /&gt;Ela só dá pra trás...&lt;br /&gt;Diz que ainda não...&lt;br /&gt;Eu não agüento mais...&lt;br /&gt;&lt;br /&gt;A chamo de meu bem...&lt;br /&gt;Pra ela tanto faz...&lt;br /&gt;Diz que ainda não...&lt;br /&gt;Eu não agüento mais...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-2920790334297687244?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/2920790334297687244/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=2920790334297687244' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/2920790334297687244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/2920790334297687244'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/06/msica-beijos-aperitivos.html' title='[Música] Beijos Aperitivos'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-3333357968029988093</id><published>2008-06-03T11:07:00.004-03:00</published><updated>2008-09-03T13:07:17.216-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Todos</title><content type='html'>&lt;center&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=4ba0fcd267ed4ea5577a086abc6180ea" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=4ba0fcd267ed4ea5577a086abc6180ea" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Todos (AoVivo)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Todos estão me chamando&lt;br /&gt;Por todos os verbos&lt;br /&gt;Pelo meu nome estão&lt;br /&gt;Por todos os cantos&lt;br /&gt;Não sei não... para onde ir...&lt;br /&gt;Estagnado... estão ao meu lado...&lt;br /&gt;Todos contra mim!&lt;br /&gt;&lt;br /&gt;Estão rindo, debochando&lt;br /&gt;A gritar tornando-me grande&lt;br /&gt;Estou confuso, desorientado&lt;br /&gt;Ao meu lado&lt;br /&gt;Não há ninguém...&lt;/em&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco&lt;/strong&gt;: &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;br /&gt;&lt;strong&gt;Ouça mais&lt;/strong&gt;: &lt;a href="http://www.mp3tube.net/index.php?t=porque+neuma&amp;go=search"&gt;MP3Tube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-3333357968029988093?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/3333357968029988093/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=3333357968029988093' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3333357968029988093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3333357968029988093'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/09/todos.html' title='[Música] Todos'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1356901466358521523</id><published>2008-05-08T12:08:00.014-03:00</published><updated>2008-12-12T18:51:30.910-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asperger'/><title type='text'>[Aspie] Napoleão Dinamite: um heroi asperger?</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_zbQe8y6ysuc/SCMXnU4v1YI/AAAAAAAADkY/jGOgNW3RNHo/s1600-h/napoleon_dynamite_poster.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5198024359304746370" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="Poster de napoleão dinamite" src="http://2.bp.blogspot.com/_zbQe8y6ysuc/SCMXnU4v1YI/AAAAAAAADkY/jGOgNW3RNHo/s200/napoleon_dynamite_poster.jpg" border="0" /&gt;&lt;/a&gt; Recentemente assisti o filme "&lt;a href="http://www.imdb.com/title/tt0374900/"&gt;Napoleão Dinamite&lt;/a&gt;" na TV a cabo (procure por "Napoleon Dynamite" na &lt;a href="http://globosat.globo.com/telecine/"&gt;programação&lt;/a&gt;) e fiquei impressionado! O filme é completamente desconhecido no Brasil (nunca passou nos cinemas e é virtualmente muito difícil de alugar ou comprar, tendo sido parcamente distribuído apenas em DVD no final de 2006), mas possui uma particulariedade muito importante: &lt;em&gt;os seus personagens centrais apresentam sintomas claros da Síndrome de Asperger&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;O filme não tem a menor intenção de esclarecer o problema (nem toca no assunto), mas com certeza é muito interessante para &lt;em&gt;se identificar em alguns comportamentos e rir dos próprios problemas&lt;/em&gt; (o que de longe é a melhor postura)! O grande segredo para apreciar o filme é não se ofender com as idiossincrasias do Napoleão, mas reconhecer-se no seu esteriótipo. Além do mais, o Napoleão é o grande heroi da história! :D&lt;br /&gt;&lt;br /&gt;Na verdade o filme é de humor negro (&lt;em&gt;i.e.&lt;/em&gt; politicamente incorreto), bem ao estilo das produções da MTV, sendo classificado como "&lt;em&gt;comédia dramática&lt;/em&gt;" no Brasil. O roteirista e diretor é o &lt;a href="http://www.imdb.com/name/nm0381478/"&gt;Jared Hess&lt;/a&gt;, o mesmo de "&lt;a href="http://www.imdb.com/title/tt0457510/"&gt;Nacho Libre&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_zbQe8y6ysuc/SCMcv04v1ZI/AAAAAAAADkg/JC_4M_9UHgk/s1600-h/napoleon-dynamite-kids.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5198030002891773330" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="161" alt="" src="http://4.bp.blogspot.com/_zbQe8y6ysuc/SCMcv04v1ZI/AAAAAAAADkg/JC_4M_9UHgk/s200/napoleon-dynamite-kids.jpg" width="123" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_zbQe8y6ysuc/SCMc204v1aI/AAAAAAAADko/ThsVeePyycg/s1600-h/NapoleonDynamiteMacFarlane.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5198030123150857634" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zbQe8y6ysuc/SCMc204v1aI/AAAAAAAADko/ThsVeePyycg/s200/NapoleonDynamiteMacFarlane.jpg" border="0" /&gt;&lt;/a&gt;O filme é de 2004, e ao contrário do Brasil, provocou muita identificação ao redor do mundo. São inúmeros os fans do filme que o referem como "&lt;a href="http://www.homemnerd.com/coluna.php?sessao=CIN&amp;amp;id=2451"&gt;&lt;em&gt;um verdadeiro meio de vida&lt;/em&gt;&lt;/a&gt;". O ponto fundamental é que o heroi da trama apresenta as idiossincrasias características da síndrome de Asperger (atitudes e reações completamente "&lt;em&gt;alienígenas&lt;/em&gt;" para as pessoas normais), mas enfrenta a vida &lt;em&gt;com muita coragem em nome do que considera certo e das pessoas que gosta&lt;/em&gt;. Esta &lt;em&gt;coragem e superação&lt;/em&gt; do Napoleão comove as pessoas em geral. Essa popularidade fica evidente nas crianças com fantasias e bonecos dos personagens do filme. Desta forma, o filme (mesmo de humor negro) é &lt;em&gt;um hino a diferença&lt;/em&gt; e deveria ser visto por todos. Passa longe de ser apenas mais um entre os milhares de filmes sobre adolescentes no colégio, ou ainda, de ser apenas uma escárnio delirante sem sentido como os filmes do &lt;a href="http://www.youtube.com/watch?v=FID2zIHr_BE"&gt;Tom Green&lt;/a&gt;... Esse filme tem "alma"...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zbQe8y6ysuc/SCMiIk4v1bI/AAAAAAAADkw/UF5hHOPLA7A/s1600-h/napoleao.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5198035925651674546" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/SCMiIk4v1bI/AAAAAAAADkw/UF5hHOPLA7A/s200/napoleao.jpg" border="0" /&gt;&lt;/a&gt;Como bem resume &lt;a href="http://www.homemnerd.com/coluna.php?sessao=CIN&amp;amp;id=2451"&gt;Flávia Yacubian&lt;/a&gt;, Napoleão é "&lt;em&gt;descompassado, em todos os sentidos, com qualquer possível atitude razoável que um garoto normal pode ter&lt;/em&gt;" (assim como são percebidos os portadores da SA). Dentre as atitudes estranhas do personagem, Flávia discute: jogar um boneco preso por uma linha de anzol para ser arrastado pelo ônibus, guardar comida no bolso, praticar &lt;em&gt;dance moves&lt;/em&gt; de duas décadas atrás, usar botas de neve num calor absurdo, apoiar o amigo na entrega de um bolo para conquistar uma patricinha, comprar uma peruca de mulher para o mesmo amigo quando este raspou a cabeça por impulso num dia de calor... Mas, vamos parar neste ponto: ele comprou uma peruca para o amigo com o dinheiro ganho depois de 6 horas manipulando galinhas imundas. Não só isso, mas pelo mesmo amigo ele dançou na frente de todo o colégio e enfrentou o malvado da escola. Em outros momentos do filme ele vai conversar com as garotas, não admite ser roubado na escola, enfrenta as pessoas de sua família, tenta até mesmo viajar no tempo por seu tio egoísta e convida uma das mais bonitas da escola para o baile...&lt;br /&gt;&lt;br /&gt;Um aspecto importante é que percebe-se que Napoleão "&lt;em&gt;tenta simular&lt;/em&gt;" atitutes "&lt;em&gt;normais&lt;/em&gt;" de um adolescente revoltado, como forma de proteção, mas faz isso sem perder o &lt;em&gt;orgulho de suas habilidades, dos seus interesses e de tudo o mais que o torna único&lt;/em&gt;. Desde seu terno até seu esporte preferido.&lt;br /&gt;&lt;p&gt;Inclusive, a dança de napoleão para a música &lt;a href="http://www.youtube.com/watch?v=hGjC0wbUXzk"&gt;Canned Heat&lt;/a&gt; do Jamiroquai é um dos pontos altos do filme (abaixo) e, por sua demonstração de coragem, ele vira uma espécie de herói. Existem inúmeros vídeos (&lt;a href="http://www.youtube.com/watch?v=PWGGLU1I6u4"&gt;1&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=WqUaIbDuIS0"&gt;2&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=SCBulzK4I8M"&gt;3&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=k9DOlEkpMUA"&gt;4&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=6KCWQKJFGec"&gt;5&lt;/a&gt;) no youtube imitando seus passos de dança e até mesmo uma propaganda do &lt;a href="http://www.youtube.com/watch?v=O3yeP1zbumc"&gt;IPod&lt;/a&gt;... As camisetas "&lt;em&gt;vote for pedro&lt;/em&gt;" também viraram uma mania e podem ser compradas pela &lt;a href="http://vote-for-pedro.com/napoleon-dynamite/merchandise.htm"&gt;Internet&lt;/a&gt;. Enfim, não deixe de ver... :D&lt;/p&gt;&lt;center&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uIf8y0h3lH0&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/uIf8y0h3lH0&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1356901466358521523?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1356901466358521523/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1356901466358521523' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1356901466358521523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1356901466358521523'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/05/aspie-napoleo-dinamite.html' title='[Aspie] Napoleão Dinamite: um heroi asperger?'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbQe8y6ysuc/SCMXnU4v1YI/AAAAAAAADkY/jGOgNW3RNHo/s72-c/napoleon_dynamite_poster.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-3471218192014458406</id><published>2008-05-05T17:49:00.009-03:00</published><updated>2008-12-12T18:51:31.047-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asperger'/><title type='text'>[Aspie] Aspie Quiz</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_zbQe8y6ysuc/SB9zDD-MtvI/AAAAAAAADkQ/7jZ7WYC5tRo/s1600-h/quizpoly_php.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196998991451830002" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_zbQe8y6ysuc/SB9zDD-MtvI/AAAAAAAADkQ/7jZ7WYC5tRo/s200/quizpoly_php.png" border="0" /&gt;&lt;/a&gt;Foi publicada a tradução para o português que realizei do &lt;a href="http://www.rdos.net/br/"&gt;Aspie Quiz&lt;/a&gt;. Ao contrários dos usuais "&lt;em&gt;testes de Internet&lt;/em&gt;", este é um trabalho sério conduzido por Leif Ekblad sobre a avaliação de perfis do espectro altista, focado na síndrome de Asperger.&lt;br /&gt;&lt;br /&gt;O "quiz" consiste de um sistema especialista baseado em coeficientes de correlação com diversos perfis de neuro-diversidade tais como dislexia, esquizo-típicos, etc... (veja a metodologia em &lt;a href="http://www.rdos.net/eng/aspeval/"&gt;http://www.rdos.net/eng/aspeval/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Assim como eu, Leif trabalha e pesquisa na área de tecnologia mas tem colaboração com outras linhas, e particular interesse pela síndrome de Asperger (por razões óbvias). Estive me correspondendo com o mesmo, e estou inclusive ajudando livremente em um artigo a ser submetido, provavelmente próximo mês, em uma revista Elsevier de psiquiatria.&lt;br /&gt;&lt;br /&gt;Neste ponto, gostaria de convidar a todos (inclusive indivíduos neurotípicos), e principalmente as pessoas diagnosticadas clinicamente com síndrome de asperger, a participar da pesquisa. Quanto mais pessoas realizarem o teste, melhor sua calibração e seu desempenho na análise preliminar de pessoas com a síndrome.&lt;br /&gt;&lt;br /&gt;Outro aspecto interessante é que o teste seja repetido ao longo dos anos de forma a avaliar a progressão dos portadores.&lt;br /&gt;&lt;br /&gt;Por faver, distribuam amplamente o link para o teste: &lt;a href="http://www.rdos.net/br/"&gt;http://www.rdos.net/br/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-3471218192014458406?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/3471218192014458406/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=3471218192014458406' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3471218192014458406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3471218192014458406'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/05/artigos-aspie-quiz.html' title='[Aspie] Aspie Quiz'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zbQe8y6ysuc/SB9zDD-MtvI/AAAAAAAADkQ/7jZ7WYC5tRo/s72-c/quizpoly_php.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-6599297853491465719</id><published>2008-05-04T10:35:00.006-03:00</published><updated>2008-05-05T18:54:16.517-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Opinião] Ressonância em metrônomos</title><content type='html'>Eis um belíssimo exemplo de ressonância em ondas planas.&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/W1TMZASCR-I&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/W1TMZASCR-I&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Pessoalmente, fico sempre fascinado com a beleza da natureza.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-6599297853491465719?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/6599297853491465719/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=6599297853491465719' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6599297853491465719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6599297853491465719'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/05/pessoal-ressonncia-em-metrnomos.html' title='[Opinião] Ressonância em metrônomos'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-4318781701324431227</id><published>2008-05-01T21:54:00.007-03:00</published><updated>2008-05-09T00:59:43.895-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Opinião] Sexo, Drogas e... Matemática</title><content type='html'>&lt;div align="left"&gt;Encontrei um "interessante" artigo no &lt;a href="http://www.nytimes.com/2007/08/12/weekinreview/12kolata.html"&gt;&lt;em&gt;New York Times&lt;/em&gt;&lt;/a&gt; sobre sexualidade (&lt;em&gt;The Myth, the Math, the Sex&lt;/em&gt;). No mesmo, o autor refere que "pesquisadores britânicos" levantaram que, em média, os homens ingleses declaram terem tido 12,7 parceiros heterosexuais durante a vida, enquanto as mulheres apenas 6,5.&lt;br /&gt;&lt;br /&gt;Tal estatística vai de acordo com a noção estereótipada que os homens são mais promícuos, pois procuram ter o máximo de parceiras para disseminar seus genes, enquanto as mulheres são mais reclusas pois o alto investimento da maternidade faz mais adequado ter um parceiro fixo, que ajude a criar a prole...&lt;br /&gt;&lt;br /&gt;Ou seja, os velhos papeis do "&lt;em&gt;&lt;strong&gt;garanhão&lt;/strong&gt;&lt;/em&gt;" e da "&lt;em&gt;&lt;strong&gt;moça de família&lt;/strong&gt;&lt;/em&gt;". &lt;em&gt;Correto?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Errado&lt;/strong&gt;&lt;/em&gt;! Se as amostras foram representativas na mesma população e as relações são heterosexuais (&lt;em&gt;i.e.&lt;/em&gt; um homem e uma mulher), então devem existir 12,7/6,5 = &lt;strong&gt;1,95&lt;/strong&gt; mulheres para cada homem. Como a probabilidade de nascimento é de &lt;strong&gt;50%&lt;/strong&gt; para cada sexo, a&lt;em&gt; conta não fecha&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;em&gt;Matematicamete, o número médio de parceiros heterosexuais durante a vida deve ser o mesmo para ambos o sexos&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;em&gt;Logo, a pesquisa está errada&lt;/em&gt;! (e o mito da recatada retração sexual feminina derrubado!)&lt;br /&gt;&lt;br /&gt;Verdade seja dita, &lt;em&gt;não consegui encontrar a tal pesquisa britânica referida no &lt;/em&gt;&lt;a href="http://www.nytimes.com/2007/08/12/weekinreview/12kolata.html"&gt;&lt;em&gt;artigo&lt;/em&gt;&lt;/a&gt;! Como não há nenhuma referência além de "&lt;em&gt;pesquisadores ingleses&lt;/em&gt;" (sabe-se lá o que quer dizer isso...), &lt;em&gt;desconfiei da fidelidade desses dados&lt;/em&gt;...&lt;br /&gt;&lt;br /&gt;Porém, antes de queimar de vez a Impresa pela &lt;em&gt;falta de coerência em prover rastreabilidade das informações&lt;/em&gt;, encontrei o artigo &lt;a href="http://www.cdc.gov/nchs/data/ad/ad384.pdf"&gt;FRYAR,C.D. et al., "Drug use and sexual behaviors reported by adults: United States, 1999-2002", &lt;em&gt;Adv Data&lt;/em&gt;, v.384, n. 23, p.1-14, 2007&lt;/a&gt;. Neste último artigo, os homens americanos declaram terem tido 7 parceiros heterosexuais durante a vida, enquanto as mulheres apenas 4. Dessa forma, deveriam existir 7/4= &lt;strong&gt;1,75&lt;/strong&gt; mulheres para cada homem. Por sua vez, este resultado rastreável converge com a tal "pesquisa britânica"! &lt;em&gt;Assim, realmente existe algo de muito errado&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;No artigo no &lt;a href="http://www.nytimes.com/2007/08/12/weekinreview/12kolata.html"&gt;New York Times&lt;/a&gt;, o doutor Fryar se defende dizendo que os homens podem ter tido relações sexuais fora do país (e.g. em viagens) ou com prostitutas (que não entraram na amostra). Ou ainda, logicamente, que os homens notoriamente super-estimam o número de parceiras enquanto as mulheres notoriamente sub-estimam! Pessoalmente, acho esta última hipótese &lt;em&gt;muito mais plausível&lt;/em&gt;!!!&lt;br /&gt;&lt;br /&gt;Mas nem tudo está perdido! Também encontrei este excelente artigo &lt;a href="http://www.pnas.org/cgi/reprint/105/5/1399.pdf"&gt;Gómez-Gardeñes, J., &lt;em&gt;et al&lt;/em&gt;. "Spreading of sexually transmitted diseases in heterosexual populations", &lt;em&gt;PNAS&lt;/em&gt;, v. 105, n.5, p.1399-1404, 2008&lt;/a&gt;, que apresenta distribuições similares para as distribuições de parceiros ao longo da vida entre homens e mulheres (inclusive para Suécia, Reino Unido e Zimbabue, e com resultados semelhantes nos três países!!!). Ou seja, é possível fazer esta pesquisa com resultados coerentes!&lt;br /&gt;&lt;br /&gt;Dai levanto as seguintes hipóteses para a distroção de FRYAR &lt;em&gt;et al.&lt;/em&gt; (2007):&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;A amostra da população não foi adequada.&lt;/li&gt;&lt;li&gt;Não houve um treinamento prévio dos entrevistados sobre a definição de um "parceiro sexual" (e.g. um parceiro de um único intercurso ou um namorado estável a mais de um ano...).&lt;/li&gt;&lt;li&gt;&lt;em&gt;Os americanos mentem muito... hehehehehe... &lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;Ademais, estatisticamente, sua namorada teve o mesmo número de parceiros que você... Podes crer! :D &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-4318781701324431227?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/4318781701324431227/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=4318781701324431227' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4318781701324431227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4318781701324431227'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/05/opinio-sexo-drogas-e-matemtica.html' title='[Opinião] Sexo, Drogas e... Matemática'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-7016291556766943935</id><published>2008-04-30T10:31:00.009-03:00</published><updated>2008-12-12T18:51:31.476-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asperger'/><title type='text'>[Aspie] Colaboração: Guia de Sobrevivência para Portadores da Síndrome de Asperger</title><content type='html'>&lt;a href="http://www.universoautista.com.br/autismo/modules/news/article.php?storyid=205"&gt;&lt;img id="BLOGGER_PHOTO_ID_5195030676659549922" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/SBh04D-MtuI/AAAAAAAADkI/OITAaeJ8_jE/s200/noticia_30_04.jpg" border="0" /&gt;&lt;/a&gt; Eis uma excelente notícia! O portal &lt;a href="http://www.universoautista.com.br/autismo/"&gt;universo autista&lt;/a&gt; deixou disponível hoje o &lt;a href="http://www.universoautista.com.br/autismo/modules/news/article.php?storyid=205"&gt;material&lt;/a&gt; produzido no post &lt;a href="http://aspienet.blogspot.com/2008/04/guia-de-sobrevivncia-para-portadores-da.html"&gt;anterior&lt;/a&gt;. É edificante poder ajudar a disseminar esse conhecimento. Fico realmente muito feliz com isso! Novamente fica a chamada para a divulgação do &lt;a href="http://www.mediafire.com/?99c33mzyljx"&gt;material&lt;/a&gt; [&lt;a href="http://www.mediafire.com/?99c33mzyljx"&gt;PDF&lt;/a&gt;] [&lt;a href="http://www.mediafire.com/?st0hvtxmhgz"&gt;DOC&lt;/a&gt;] (de forma a que o conhecimento cheque a quem pecisa).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-7016291556766943935?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/7016291556766943935/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=7016291556766943935' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7016291556766943935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/7016291556766943935'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/pessoal-colaborao-guia-de-sobrevivncia.html' title='[Aspie] Colaboração: Guia de Sobrevivência para Portadores da Síndrome de Asperger'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbQe8y6ysuc/SBh04D-MtuI/AAAAAAAADkI/OITAaeJ8_jE/s72-c/noticia_30_04.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1210317843391184482</id><published>2008-04-27T23:29:00.019-03:00</published><updated>2008-10-08T02:29:55.538-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asperger'/><title type='text'>[Aspie] Guia de sobrevivência para portadores da síndrome de Asperger</title><content type='html'>A Simone está com um aluno Asperger na sala. Dai me sensibilizei e gastei a tarde traduzindo o guia da sobrevivência para portadores de Asperger do &lt;a href="http://www-users.cs.york.ac.uk/~alistair/survival/"&gt;Marc Segar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Valeu a pena porque ficou bom! Tomei a liberdade de acrescentar algo por minha conta, do pouco que aprendi da vida. Fico muito feliz de poder ajudar um menino de 9 anos. A Simone vai imprimir e deixar disponível (sem forçar). Vejamos se ele se interessa! Eu sei que foi feito com todo o carinho!&lt;br /&gt;&lt;br /&gt;&lt;div style="DISPLAY: none"&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt;&lt;object id="embedded_flash_2717998_mer80_object" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="500" width="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" name="embedded_flash_2717998_mer80_object"&gt;&lt;param name="_cx" value="17965"&gt;&lt;param name="_cy" value="13229"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2717998&amp;amp;access_key=key-boh86o42kbj8s89wve7&amp;amp;page=&amp;amp;version=1"&gt;&lt;param name="Src" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2717998&amp;amp;access_key=key-boh86o42kbj8s89wve7&amp;amp;page=&amp;amp;version=1"&gt;&lt;param name="WMode" value="Opaque"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2717998&amp;access_key=key-boh86o42kbj8s89wve7&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2717998_mer80_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="DISPLAY: none"&gt;&lt;/noscript&gt;&lt;script src="http://www.scribd.com/javascripts/view.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id="embedded_flash_2717998_mer80" style="WIDTH: 100%; HEIGHT: 100%"&gt;&lt;span style="DISPLAY: none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2717998/guia-de-sobrevivencia-para-portadores-da-sindrome-de-asperger-versao-final"&gt;guia de sobrevivência para portadores da sindrome de asperger - versao final&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="DISPLAY: none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2717998, 'key-boh86o42kbj8s89wve7');       scribd_doc.write('embedded_flash_2717998_mer80');&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Por favor, distribuam amplamente&lt;/strong&gt; este &lt;a href="http://67.199.93.173/GuiaAsperger.pdf"&gt;material&lt;/a&gt; [&lt;a href="http://67.199.93.173/GuiaAsperger.pdf"&gt;PDF&lt;/a&gt;] [&lt;a href="http://67.199.93.173/GuiaAsperger.doc"&gt;DOC&lt;/a&gt;].&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ele contêm um legado muito importante e pode ajudar muitas pessoas. Se eu tivesse tido acesso a essa informação quando criança, minha vida tinha sido muito mais fácil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1210317843391184482?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1210317843391184482/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1210317843391184482' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1210317843391184482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1210317843391184482'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/guia-de-sobrevivncia-para-portadores-da.html' title='[Aspie] Guia de sobrevivência para portadores da síndrome de Asperger'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-3582539084301104300</id><published>2008-04-27T09:16:00.008-03:00</published><updated>2008-05-02T01:58:29.737-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] Amor em pedaços</title><content type='html'>Eis mais um vídeo em homenagem ao "antológico" &lt;em&gt;Porque Neuma!&lt;/em&gt; No caso, desta música eu não participei (é uma pena!). Foi composta pelo Paulo e o Alex em Belo Horizonte, após a diáspora da banda!!! Fica uma homenagem a nova fase de todos. hehehehehe... [&lt;em&gt;enjoy!&lt;/em&gt;]&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AqipyhxAUso&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/AqipyhxAUso&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Amor em Pedaços&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Ouro, prataria, teus colares espalhados,&lt;br /&gt;espelho partido, teu pulso ferido.&lt;br /&gt;Teu corpo caido ao lado.&lt;br /&gt;Um sentimento infantil de que nada...&lt;br /&gt;Nada faz sentido!&lt;br /&gt;&lt;br /&gt;Teu desespero foi, e ainda é,&lt;br /&gt;ter que se agarrar a quem fingiu&lt;br /&gt;E como um fantasma, passou pela parede.&lt;br /&gt;E tu... Tu quebraste a cara!&lt;br /&gt;&lt;br /&gt;E se cantasses um prece, ah...&lt;br /&gt;E se os anjos te alçassem alto, alto...&lt;br /&gt;E se tocasse o telefone o que dirias?&lt;br /&gt;&lt;br /&gt;Pois quem semeia vento há que colher poeiras.&lt;br /&gt;Jogar-se do precipício nunca vale a pena.&lt;br /&gt;Nós somos frágeis mas ainda temos chance.&lt;br /&gt;Você pediu uma canção, pois agora dançe!&lt;br /&gt;&lt;br /&gt;E se cantasses um prece, ah...&lt;br /&gt;E se os anjos te alçassem alto, alto...&lt;br /&gt;E se tocasse o telefone o que dirias?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;small&gt;(eu te amo!)&lt;/small&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;strong&gt;Letras&lt;/strong&gt;: &lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt; e &lt;a href="http://flaviomateus.com/"&gt;Flávio Mateus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ademais:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Lembrem-se, Ginger Rogers fez tudo Fred Astaire fez, mas para trás e de salto alto.&lt;/blockquote&gt;&lt;a href="http://www.quotationspage.com/quote/38137.html"&gt;Faith Whittlesey&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-3582539084301104300?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/3582539084301104300/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=3582539084301104300' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3582539084301104300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3582539084301104300'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/msica-amor-em-pedaos.html' title='[Música] Amor em pedaços'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-5845794975143715614</id><published>2008-04-26T15:55:00.015-03:00</published><updated>2008-05-02T01:59:07.004-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Opinião] Criacionismo e intolerância religiosa</title><content type='html'>Este post é decorrente da inquietude em mim gerada por um vídeo enviado por um amigo, apresentado abaixo.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eaGgpGLxLQw&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/eaGgpGLxLQw&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;O vídeo, muito bem produzido por sinal, apresenta a ciência (em particular, a &lt;em&gt;teoria da evolução das espécies de Darwin&lt;/em&gt;) como &lt;em&gt;opressora&lt;/em&gt; e &lt;em&gt;inflexível a opniões divergentes&lt;/em&gt; (em particular, ao &lt;em&gt;criacionismo defendido por católicos evangélicos&lt;/em&gt;). Nele, a "&lt;em&gt;era da ciência&lt;/em&gt;" e a "&lt;em&gt;era das máquinas&lt;/em&gt;" são vistas como &lt;em&gt;tiranos que deve ser combatidos&lt;/em&gt; pois acarretarão &lt;em&gt;no fim das religiões e da liberdade&lt;/em&gt;. Neste escopo, o autor questiona o "&lt;em&gt;fato&lt;/em&gt;" de que os PhDs devem ser &lt;em&gt;ouvidos cegamente&lt;/em&gt;, e qualquer opnião diversa deve ser &lt;em&gt;excluída&lt;/em&gt;! A grande questão aqui é que o vídeo (além do fato de estar em inglês) é bem feito e tem potencial para gerar &lt;em&gt;desinformação&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Não é estranho de se imaginar que tal vídeo tenha relação com a opnião expressa por este outro criacionista, que defende o &lt;em&gt;dogma da criação do homem&lt;/em&gt; ao referenciar o pensamento crítico por "&lt;a href="http://br.answers.yahoo.com/question/index?qid=20070413151225AAfJA4s"&gt;&lt;em&gt;síndrome de lúcifer&lt;/em&gt;&lt;/a&gt;", com citações bíblicas inclusive.&lt;br /&gt;&lt;br /&gt;Neste contexto, &lt;a href="http://lattes.cnpq.br/6613678460961201%60"&gt;&lt;em&gt;sou um PhD&lt;/em&gt;&lt;/a&gt; em engenharia biomédica, logo um dos famigerados "&lt;em&gt;opressores&lt;/em&gt;". Dentre as minhas atividades, nos últimos 3 semestres chequei a orientar a incrível soma de cerca de 100 monografias de trabalhos de conclusão de curso em nível superior (fora o trabalho, aulas e demais orientados). Algo que me marcou foi que realmente pude passar os fundamentos do &lt;em&gt;método científico&lt;/em&gt; para muitas pessoas (algo que realmente só se constroi &lt;em&gt;ao realizar um trabalho científico&lt;/em&gt;) e percebi claramente a modificação do seu pensamento: fixou-se a importância do &lt;em&gt;questionamento&lt;/em&gt; e da &lt;em&gt;fiabilidade&lt;/em&gt; da informação. &lt;em&gt;Estas pessoas vão levar tais princípios para suas vidas&lt;/em&gt;!&lt;br /&gt;&lt;br /&gt;Afinal, dentre outras coisas, um dos fundamentos da ciência é o &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A9todo_Socr%C3%A1tico"&gt;&lt;em&gt;método socrático&lt;/em&gt;&lt;/a&gt;! Tal príncipio discute a &lt;em&gt;descontrução do pensamento mítico pela ironia&lt;/em&gt;, e a &lt;em&gt;indução da razão pelo questionamento e diálogo&lt;/em&gt; como caminho para a verdade.&lt;br /&gt;&lt;br /&gt;Neste contexto, Sócrates discute que deve-se, de forma não ofensiva, mostrar ao interlocutor o absurdo de suas idéias &lt;em&gt;evidenciando as contradições e incoerências lógicas do discurso através do diálogo aberto&lt;/em&gt; (exatamente o &lt;em&gt;oposto&lt;/em&gt; sugerido pelo vídeo, que mostra a ciência como &lt;em&gt;intolerante&lt;/em&gt;). Desta forma, a ironia (&lt;em&gt;i.e. evidenciamento das contradições&lt;/em&gt;) é um instrumento para a construção de idéias livres de presupostos superficiais ou preconceitos.&lt;br /&gt;&lt;br /&gt;Na discursão sobre &lt;em&gt;criacionismo&lt;/em&gt; e a &lt;em&gt;teoria da evolução das espécies&lt;/em&gt;, argumenta-se:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1)&lt;/strong&gt; &lt;a href="http://pt.wikipedia.org/wiki/Criacionismo#Argumentos_contra_o_Criacionismo"&gt;&lt;em&gt;Não existem evidências materiais&lt;/em&gt;&lt;/a&gt; da criação divina defendida pela teologia judaico-cristã (ou por qualquer &lt;a href="http://pt.wikipedia.org/wiki/Cosmogonia#As_v.C3.A1rias_vis.C3.B5es_religiosas"&gt;outra tradição religiosa&lt;/a&gt;), apenas os &lt;em&gt;escritos antigos&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2)&lt;/strong&gt; A &lt;a href="http://pt.wikipedia.org/wiki/Evolu%C3%A7%C3%A3o"&gt;&lt;em&gt;evolução&lt;/em&gt;&lt;/a&gt; e a &lt;a href="http://pt.wikipedia.org/wiki/Abiog%C3%A9nese"&gt;&lt;em&gt;abiogênese&lt;/em&gt;&lt;/a&gt; são apoiados em &lt;em&gt;evidências&lt;/em&gt;:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Bioquímicas&lt;/strong&gt;: o surgimento da vida a partir da matéria inanimada (&lt;a href="http://pt.wikipedia.org/wiki/Abiog%C3%A9nese"&gt;abiogênese&lt;/a&gt;) expressa na &lt;a href="http://pt.wikipedia.org/wiki/Abiog%C3%A9nese#Hip.C3.B3tese_Oparin-Haldane_ou_Hip.C3.B3tese_Heterotr.C3.B3fica"&gt;Hipótese Oparin-Haldane ou Hipótese Heterotrófica&lt;/a&gt; é comprovada pelo experimento de &lt;a href="http://pt.wikipedia.org/wiki/Experi%C3%AAncia_de_Urey-Miller"&gt;Urey-Miller&lt;/a&gt; de 1953.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Arqueológicas&lt;/strong&gt;: a evolução das espécies é evidenciada pela existência dos &lt;a href="http://pt.wikipedia.org/wiki/F%C3%B3ssil"&gt;&lt;em&gt;fosséis&lt;/em&gt;&lt;/a&gt;, objeto de estudo da &lt;a href="http://pt.wikipedia.org/wiki/Paleontologia"&gt;&lt;em&gt;palenteologia&lt;/em&gt;&lt;/a&gt; (&lt;em&gt;lembra dos dinossauros em Jurasic Park&lt;/em&gt;?!). Quanto à origem das espécies e do homem em particular, todos os processos de avaliação da idade dos fósseis tanto animais como do próprio homem e de seus precursores mais imediatos apontam &lt;em&gt;números totalmente incompatíveis com os fixados pelos textos religiosos&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Genéticas&lt;/strong&gt;: a evolução das espécies é evidenciada pela existência da &lt;a href="http://pt.wikipedia.org/wiki/Muta%C3%A7%C3%A3o"&gt;&lt;em&gt;mutação&lt;/em&gt;&lt;/a&gt; do &lt;a href="http://pt.wikipedia.org/wiki/DNA"&gt;DNA&lt;/a&gt; e pela &lt;a href="http://pt.wikipedia.org/wiki/Sele%C3%A7%C3%A3o_natural"&gt;&lt;em&gt;seleção natural de genes&lt;/em&gt;&lt;/a&gt;, comprovada pelos estudos de &lt;a href="http://pt.wikipedia.org/wiki/Ronald_Fisher"&gt;Ronald Fisher&lt;/a&gt; (que desenvolveu a linguagem matemática e a seleção natural nos termos essenciais dos processos genéticos), &lt;a href="http://pt.wikipedia.org/wiki/J._B._S._Haldane"&gt;J. B. S. Haldane&lt;/a&gt; (que introduziu o conceito de "custo" da seleção natural), &lt;a href="http://pt.wikipedia.org/wiki/Sewall_Wright"&gt;Sewall Wright&lt;/a&gt; (que elucidou a natureza da seleção e da adaptação), &lt;a href="http://pt.wikipedia.org/wiki/Theodosius_Dobzhansky"&gt;Theodosius Dobzhansky&lt;/a&gt; (que estabeleceu a idéia de que mutações, ao criarem diversidade genética, supriam o material bruto para a seleção natural), &lt;a href="http://pt.wikipedia.org/wiki/William_Hamilton"&gt;William Hamilton&lt;/a&gt; (que concebeu a seleção parentada), &lt;a href="http://pt.wikipedia.org/wiki/Ernst_Mayr"&gt;Ernst Mayr&lt;/a&gt; (que reconheceu a importância chave do isolamento reprodutivo para a especiação). Tais estudos são verificáveis nos contextos de &lt;em&gt;genética de populações,&lt;/em&gt; &lt;em&gt;biologia celular, botânica, zoologia, &lt;/em&gt;&lt;a href="http://pt.wikipedia.org/wiki/Sociobiologia"&gt;&lt;em&gt;sociobiologia&lt;/em&gt;&lt;/a&gt;&lt;em&gt; e ecologia&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Computacionais&lt;/strong&gt;: a evolução das espécies é evidenciada pelas soluções &lt;a href="http://pt.wikipedia.org/wiki/Algoritmo_evolutivo"&gt;&lt;em&gt;evolutivas&lt;/em&gt;&lt;/a&gt;, em particular aos &lt;a href="http://pt.wikipedia.org/wiki/Algoritmos_Gen%C3%A9ticos"&gt;&lt;em&gt;algoritmos genéticos&lt;/em&gt;&lt;/a&gt;. Pessoalmente, acho que nada mais visual neste sentido do que o projeto &lt;a href="http://www.demo.cs.brandeis.edu/golem/"&gt;&lt;em&gt;golem&lt;/em&gt;&lt;/a&gt; (&lt;em&gt;excelente para leigos!&lt;/em&gt;).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Antropológicas e sociológicas&lt;/strong&gt;: pelos mecanismos de &lt;a href="http://pt.wikipedia.org/wiki/Sele%C3%A7%C3%A3o_artificial"&gt;&lt;em&gt;seleção artificial&lt;/em&gt;&lt;/a&gt; em populações para aptidão econômica e social, demonstrando matemáticamente causas genéticas para comportamentos como seleção consangüínea (&lt;em&gt;kin selection&lt;/em&gt;), &lt;a href="http://pt.wikipedia.org/wiki/Altru%C3%ADsmo"&gt;altruísmo&lt;/a&gt;, &lt;a href="http://pt.wikipedia.org/wiki/Especia%C3%A7%C3%A3o"&gt;especiação&lt;/a&gt; e os &lt;a href="http://pt.wikipedia.org/wiki/Meme"&gt;&lt;em&gt;memes&lt;/em&gt;&lt;/a&gt;. Esta nova área do conhecimento vêm sendo referida por &lt;a href="http://pt.wikipedia.org/wiki/Sociobiologia"&gt;&lt;em&gt;sociobiologia&lt;/em&gt;&lt;/a&gt; (&lt;a href="http://pt.wikipedia.org/wiki/Portal:Sociobiologia"&gt;portal&lt;/a&gt;). Um dos ramos interessantes desta linha de pesquisa é a &lt;a href="http://pt.wikipedia.org/wiki/Psicologia_Evolucionista"&gt;&lt;em&gt;psicologia evolutiva&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Biológicas&lt;/strong&gt;: Sua aplicação pode ser observada em diversos processos, particularmente de forma mais evidente na &lt;a href="http://pt.wikipedia.org/wiki/Clad%C3%ADstica"&gt;&lt;em&gt;cladística&lt;/em&gt;&lt;/a&gt; e na a &lt;a href="http://pt.wikipedia.org/wiki/Biologia_do_Desenvolvimento"&gt;&lt;em&gt;biologia do desenvolvimento&lt;/em&gt;&lt;/a&gt; (i.e. estudo do desenvolvimento embrionário).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Matemáticas e econômicas&lt;/strong&gt;: A seleção natural é aplicada nos mecanismos de &lt;em&gt;equilíbrio econômico&lt;/em&gt; (&lt;em&gt;teoria da escolha racional&lt;/em&gt;), baseados na &lt;a href="http://pt.wikipedia.org/wiki/Teoria_dos_jogos"&gt;&lt;em&gt;teoria dos jogos&lt;/em&gt;&lt;/a&gt;. A teoria dos jogos, fundamentada nos matemáticos e economistas &lt;a href="http://pt.wikipedia.org/wiki/John_von_Neumann"&gt;John von Neumann&lt;/a&gt; e &lt;a href="http://pt.wikipedia.org/wiki/Oskar_Morgenstern"&gt;Oskar Morgenstern&lt;/a&gt; e que também inclui as contribuições de John Harsanyi, &lt;a href="http://pt.wikipedia.org/wiki/John_Forbes_Nash"&gt;John Nash&lt;/a&gt;, Howard Raiffa, Thomas C. Schelling e Herbert Simon. Esta formulação também tem aplicações em &lt;em&gt;filosofia&lt;/em&gt; e &lt;em&gt;ciência política&lt;/em&gt;, &lt;em&gt;ética&lt;/em&gt; e &lt;em&gt;jornalismo&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Cosmológicas e geológicas&lt;/strong&gt;: Embora não relacionadas com a evolução, a &lt;a href="http://pt.wikipedia.org/wiki/Cosmologia"&gt;&lt;em&gt;cosmologia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://pt.wikipedia.org/wiki/Astrof%C3%ADsica"&gt;&lt;em&gt;astrofísica&lt;/em&gt;&lt;/a&gt;&lt;em&gt; e &lt;/em&gt;&lt;a href="http://pt.wikipedia.org/wiki/Geologia"&gt;&lt;em&gt;geologia&lt;/em&gt;&lt;/a&gt; também atestam pela inveracidade científica do mito de criação do universo pela teologia judaico-cristã (na qual se insere a &lt;em&gt;criação divina da vida&lt;/em&gt; e da própria &lt;em&gt;espécie humana&lt;/em&gt;), assumindo seu início pelo &lt;a href="http://pt.wikipedia.org/wiki/Big_bang"&gt;&lt;em&gt;Big Bang&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Desta forma, a negação da evolução envolve a recusa em aceitar uma boa parte das &lt;em&gt;ciências naturais&lt;/em&gt;, principalmente as descrições da &lt;em&gt;história do planeta e da vida&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Dentre as hipotéses &lt;strong&gt;(1)&lt;/strong&gt; e&lt;strong&gt; (2)&lt;/strong&gt; reina uma questão de &lt;em&gt;bom senso&lt;/em&gt; (assim como assumido pela &lt;a href="http://pt.wikipedia.org/wiki/Navalha_de_Occam"&gt;&lt;em&gt;navalha de Ockham&lt;/em&gt;&lt;/a&gt;)!&lt;br /&gt;&lt;br /&gt;A recente discussão do criacionismo por grupos evangélicos é decorrente da &lt;a href="http://pt.wikipedia.org/wiki/Estrat%C3%A9gia_da_cunha"&gt;&lt;em&gt;estratégia da cunha&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;(ao qual se insere o vídeo motivador deste &lt;em&gt;post&lt;/em&gt;), defendendo o criacionismo pelo &lt;a href="http://pt.wikipedia.org/wiki/Design_Inteligente"&gt;&lt;em&gt;design inteligente&lt;/em&gt;&lt;/a&gt;, que consiste de uma pseudo-ciência (classifica-se como pseudo-ciência por não apresentar evidências materiais ou seguir o método científico). Especula-se que este movimento faça parte de uma estratégia política de grupos conservadores norte-americanos (particularmente do sul dos Estados Unidos), obtendo &lt;em&gt;favorecimento eleitoral&lt;/em&gt; ao subsidiar a &lt;em&gt;agenda social conservadora&lt;/em&gt; em uma ampla gama de assuntos defendidos por grupos evangélicos incluindo &lt;em&gt;aborto, eutanásia, sexualidade&lt;/em&gt; e outros movimentos de &lt;em&gt;reforma social&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Neste ponto, não tanto como &lt;a href="http://lattes.cnpq.br/6613678460961201"&gt;&lt;em&gt;pesquisador&lt;/em&gt;&lt;/a&gt; (acho que o tal título de &lt;a href="http://en.wikipedia.org/wiki/Doctor_of_Science"&gt;D.Sc.&lt;/a&gt; me concede tal denominação), mas como &lt;a href="http://pt.wikipedia.org/wiki/Humanismo_Secular"&gt;&lt;em&gt;humanista&lt;/em&gt;&lt;/a&gt; e &lt;em&gt;cidadão consciente&lt;/em&gt; (de visão &lt;em&gt;liberal&lt;/em&gt; e &lt;em&gt;social-democrática&lt;/em&gt;) me vejo na obrigação de desmistificar e desconstruir a desinformação causada pelos &lt;em&gt;dogmas&lt;/em&gt; criacionistas e do &lt;em&gt;design inteligente&lt;/em&gt;, ainda mais tendo em vista a &lt;a href="http://pt.wikipedia.org/wiki/Estrat%C3%A9gia_da_cunha"&gt;&lt;em&gt;implicação política e social&lt;/em&gt;&lt;/a&gt; implícita. No Brasil, o problema não é menos sério, conforme o &lt;a href="http://www.blogger.com/email-post.g?blogID=7223282403168543039&amp;amp;postID=3776386464854862751"&gt;&lt;em&gt;post anterior&lt;/em&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Neste ponto, me insurjo em convocar as &lt;em&gt;demais pessoas de bom senso, que acreditem na humanidade&lt;/em&gt;, a empregar esforços para conter a intolerância e fundamentalismo religioso sempre que o mesmos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Ameaçem as liberdades democráticas&lt;/em&gt;: e.g. discriminação ou resarciamento da liberdade de crença contra praticantes de cambomblé por grupos evangélicos pentecostais;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Incitem a violência, o preconceito e a intolerância&lt;/em&gt;: e.g. conflito palestino, etc;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Impuserem a exploração social/econômica do indivíduo ou a perda de sua qualidade de vida em proveito evidente de terceiros&lt;/em&gt;: e.g. instituições que induzem doações ou cobram dízimos - principalmente de pessoas com um salário ou menos - sem apresentar prestações de contas abertas e públicas (demostrativos de usos e fontes) que mostrem claramente o uso do dinheiro - Igreja Universal, Assembléia de Deus, etc.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Travestirem informações como científicas de forma a obter credibilidade: &lt;/em&gt;e.g. &lt;a href="http://www.projetoockham.org/historia_copo_2.html"&gt;&lt;em&gt;espiritismo&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://pt.wikipedia.org/wiki/Design_inteligente"&gt;&lt;em&gt;design inteligente/criacionismo&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://xenu.freewinds.cx/pt/" ref="http://xenu.freewinds.cx/pt/"&gt;&lt;em&gt;cientologia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://www.noergologia.com.br/"&gt;&lt;em&gt;noergologia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://www.projetoockham.org/pseudo_homeo_1.html"&gt;&lt;em&gt;homeopatia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://www.projetoockham.org/pseudo_astrologia_1.html"&gt;&lt;em&gt;astrologia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href="http://www.projetoockham.org/pseudo_radioestesia_1.html"&gt;&lt;em&gt;radioestesia&lt;/em&gt;&lt;/a&gt;&lt;em&gt;,&lt;/em&gt; e demais &lt;em&gt;pseudociências esotéricas&lt;/em&gt;. Note que este problema assume uma dimensão muito mais preocupante na medida em que tais "áreas do conhecimento" alcançam o &lt;a href="http://www.blogger.com/email-post.g?blogID=7223282403168543039&amp;amp;postID=3776386464854862751"&gt;&lt;em&gt;ensino superior formal&lt;/em&gt;&lt;/a&gt;, com o &lt;em&gt;apoio do estado&lt;/em&gt; inclusive. &lt;/li&gt;&lt;li&gt;&lt;em&gt;Incidam na separação entre estado e igreja:&lt;/em&gt; e.g. pressão contra pesquisa de células tronco no Brasil. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;No entanto, cabe discutir que deve-se haver um total respeito pela &lt;em&gt;liberdade de crença e o livre arbítrio&lt;/em&gt; em qualquer situação, cabendo apenas a intervenção e esclarecimento sobre aspectos negativos do fundamentalismo religioso (principalmente nos contextos descritos acima). Desta forma, a conclusão sobre o tema a ser discutida com os criacionistas supracitados deve serguir um &lt;em&gt;formato geral&lt;/em&gt; semelhante a: &lt;/p&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;em&gt;"Você tem todo o direito de ter suas crenças e não pretendo contestá-las! Você pode acreditar em Deus e que o mesmo criou o homem se assim o quiser, mas deve concordar que isto claramente não é uma verdade científica! Sua aceitação destes dogmas baseia-se apenas em sua fé, e não na lógica e nos fatos. As evidências mostram que a evolução das espécies é real e a vida se originou pela abiogênese. É possível crer em Deus e entender a ciência, desde que não se tente misturá-los ou conflitá-los e que não se obrigem terceiros aos dogmas, especialmente terceiros de outras crenças. A crença em Deus é uma verdade pessoal (cada um tem o seu) e a ciência é uma verdade universal (a natureza é a mesma para todos)!"&lt;/em&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Observe-se um ponto fundamental no discurso acima: &lt;em&gt;a sutileza e a não ofensividade&lt;/em&gt;. Deve-se sempre evitar a &lt;em&gt;negação simples&lt;/em&gt; e direta do &lt;em&gt;dogma&lt;/em&gt;, pois o &lt;em&gt;bloqueio emocional&lt;/em&gt; (que normalmente acontece em &lt;em&gt;conflitos diretos&lt;/em&gt;) dificulta, ou mesmo impede, o &lt;em&gt;pensamento crítico&lt;/em&gt;. Desta forma, a apresentação das inevitáveis contradições do &lt;em&gt;dogma&lt;/em&gt; sobre a &lt;em&gt;lógica racional&lt;/em&gt; deve seguir uma linha de &lt;em&gt;discurso sutil, polida e bem construída&lt;/em&gt; (&lt;em&gt;nunca ofensiva ou destrutiva&lt;/em&gt;).&lt;br /&gt;&lt;br /&gt;Note que a questão aqui não é o absurdo das idéais prosposta pelos dogmas dos fundamentalistas religiosos, mas o sequinte exercício: "&lt;em&gt;Como você poderia abordar estes indivídios, de forma delicada, a fim de desconstruir sua desinformação (minimizando seu o estrago) e ainda incutir nessas pessoas o pensamento crítico&lt;/em&gt;?". Note que o exercício desta dialética é realmente muito difícil!&lt;br /&gt;&lt;br /&gt;Finalmente, vale lembrar que a própria &lt;a href="http://www.comciencia.br/200407/reportagens/15.shtml"&gt;&lt;em&gt;existência das religiões, e do próprio comportamento social humano, é decorrente de mecanismos genéticos e da seleção natural&lt;/em&gt;&lt;/a&gt;, ou seja, não cabe a ciência a sua destruição, uma vez que é &lt;em&gt;um processo natural em si&lt;/em&gt;, mas o seu &lt;em&gt;esclarecimento&lt;/em&gt; e &lt;em&gt;conciliação&lt;/em&gt; para fins de evolução do conhecimento e da própria humanidade.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/JL2LzM-hmgw&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/JL2LzM-hmgw&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-5845794975143715614?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/5845794975143715614/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=5845794975143715614' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5845794975143715614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5845794975143715614'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/opinio-criacionismo-e-intolerncia.html' title='[Opinião] Criacionismo e intolerância religiosa'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-3776386464854862751</id><published>2008-04-24T19:37:00.011-03:00</published><updated>2008-05-02T01:59:59.072-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinião'/><title type='text'>[Artigo] A pseudociência nas universidades brasileiras</title><content type='html'>&lt;div&gt;Eis um excelente artigo que, apesar de carente de citação, traz a tona uma questão de suma importância: a legitimação da pseudociência no país.&lt;br /&gt;&lt;br /&gt;REIS, W.P., "A Pseudociência nas Universidades Brasileiras", &lt;em&gt;Proceedings of Ibero-American Conference on Critical Thinking&lt;/em&gt;, Buenos Aires, 2005.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;script&gt;document.write('&lt;noscript&gt;');&lt;/script&gt;&lt;/div&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="embedded_flash_2345567_qtbzw_object" name="embedded_flash_2345567_qtbzw_object" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;&lt;param name="movie"  value="http://documents.scribd.com/ScribdViewer.swf?document_id=2345567&amp;access_key=key-2la295aq2kgfiw8sqmew&amp;page=&amp;version=1"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;  &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2345567&amp;access_key=key-2la295aq2kgfiw8sqmew&amp;page=&amp;version=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="embedded_flash_2345567_qtbzw_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="display:none"&gt; &lt;/noscript&gt; &lt;script type="text/javascript" src='http://www.scribd.com/javascripts/view.js'&gt;&lt;/script&gt;&lt;/div&gt;&lt;div id='embedded_flash_2345567_qtbzw' style="width:100%;height:100%"&gt;&lt;span style="display:none"&gt;Read this doc on Scribd: &lt;a href="http://www.scribd.com/doc/2345567/A-pseudociencia-nas-universidades"&gt;A pseudociência nas universidades&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="display:none"&gt;&lt;script type="text/javascript"&gt;  var scribd_doc = new scribd.Document(2345567, 'key-2la295aq2kgfiw8sqmew');       scribd_doc.write('embedded_flash_2345567_qtbzw');&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;O autor colabora com o &lt;a href="http://www.projetoockham.org/"&gt;Projeto Ockham&lt;/a&gt; e  o blog &lt;a href="http://dragaodagaragem.blogspot.com/"&gt;"Dragão da Garagem"&lt;/a&gt;, com excelentes discursões sobre pensamento crítico. &lt;br /&gt;&lt;br /&gt;Particularmente, recomendo o último post &lt;a href="http://dragaodagaragem.blogspot.com/2008/02/o-problema-das-virgens.html"&gt;"o problema das virgens"&lt;/a&gt; em que o mesmo autor discute a "questão das 27 virgens no paraíso mulçumano", trazendo uma pespectiva etimológica inusitada para a questão.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-3776386464854862751?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/3776386464854862751/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=3776386464854862751' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3776386464854862751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/3776386464854862751'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/artigo-pseudocincia-nas-universidades.html' title='[Artigo] A pseudociência nas universidades brasileiras'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-4099117395776379342</id><published>2008-04-18T11:01:00.013-03:00</published><updated>2008-09-03T13:09:19.286-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='música'/><title type='text'>[Música] A última dança</title><content type='html'>&lt;div align="left"&gt;Eis uma pérola do tempos da república! Como estou "de molho" estes dias, acabei por fazer esta pequena colagem no &lt;a href="http://www.microsoft.com/windowsxp/downloads/updates/moviemaker2.mspx"&gt;movie maker&lt;/a&gt; com alguns vídeos do &lt;a href="http://www.videodownloadx.com/"&gt;youtube&lt;/a&gt;! Para o bom saudosismo de todos! Muita depressão e melancolia numa melodia simplesmente delicada (cortesia dos gênios Paulo e Alex). Grande abraço a todos e muitas saudades! [&lt;em&gt;enjoy!&lt;/em&gt;]&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Py-NE7Obf-M&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/Py-NE7Obf-M&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A última dança&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Os olhos da morte fitaram os meus de tao perto...&lt;br /&gt;Eu fiquei sem jeito...&lt;br /&gt;Toquei nos lábios dela com o dedo do silêncio.&lt;br /&gt;Ao toque de lábios tão frios&lt;br /&gt;Bailamos pela noite adentro&lt;br /&gt;E de tão perdido, no vazio,&lt;br /&gt;eu esqueci do tempo&lt;br /&gt;E dos resquícios de vida que ainda havia em mim. . .&lt;br /&gt;havia em mim. . .&lt;br /&gt;havia em mim. . .&lt;br /&gt;havia em mim. . .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bailando com a morte no salão do mundo&lt;br /&gt;Eu perco a vida de vista e me Afundo. . .&lt;br /&gt;E me Afundo. . .&lt;br /&gt;E me Afundo. . . &lt;/em&gt;&lt;/center&gt;&lt;p&gt;&lt;strong&gt;Letras: &lt;/strong&gt;&lt;a href="http://paulo-bueno.blogspot.com/"&gt;Paulo Rocha&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Música:&lt;/strong&gt; &lt;a href="http://alexbrasil.art.br/"&gt;Alex "Brasil"&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arranjo&lt;/strong&gt;: &lt;a href="http://bandasdegaragem.uol.com.br/porqueneuma"&gt;Porque Neuma!&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Disco:&lt;/strong&gt; &lt;a href="http://vagalume.uol.com.br/porque-neuma/directory/"&gt;A pergunta que não quer calar (2001)&lt;/a&gt; [independente]&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="60" id="mp3tube" align="middle" border="0"&gt;&lt;param name="movie" value="http://www.mp3tube.net/play.swf?id=038a3f047d0a41a6064eb2f67ff60811" /&gt;&lt;param name="quality" value="High" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="menu" value="false"&gt;&lt;embed src="http://www.mp3tube.net/play.swf?id=038a3f047d0a41a6064eb2f67ff60811" quality="High" width="260" height="60" name="mp3tube" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" menu="false"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-4099117395776379342?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/4099117395776379342/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=4099117395776379342' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4099117395776379342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4099117395776379342'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/msica-ltima-dana.html' title='[Música] A última dança'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-5193990193692130411</id><published>2008-04-12T11:32:00.002-03:00</published><updated>2008-12-12T18:51:31.921-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>[Pessoal] Assim caminha a humanidade?</title><content type='html'>Eis um fato curioso. Fui a praia. Algumas vezes até.&lt;br /&gt;&lt;br /&gt;Fui a praia. Banal por demais até.&lt;br /&gt;&lt;br /&gt;Parece até poesia, mas não é.&lt;br /&gt;&lt;br /&gt;Na areia haviam parasitas, onde enfiei meu pé.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zbQe8y6ysuc/SAD3RXBvi9I/AAAAAAAADO4/DW8crysTyTw/s1600-h/pe1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5188418648341973970" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/SAD3RXBvi9I/AAAAAAAADO4/DW8crysTyTw/s320/pe1.jpg" border="0" /&gt;&lt;/a&gt;Pois os parasitas (se chamavam "&lt;a href="http://www.abcdasaude.com.br/artigo.php?479"&gt;larvas migrans&lt;/a&gt;") infectaram a pele de bactérias, dai meu pé inchou no domingo passado (se chama "&lt;a href="http://www.msd-brazil.com/msdbrazil/patients/manual_Merck/mm_sec17_174.html#section_2"&gt;celulite&lt;/a&gt;": pra mim isso era coisa de perna de mulher, mas parece que é mais sério que isso). Fui no hospital e lá fiquei: foi internação na hora, pois a tal "celulite" pode evoluir para uma infecção generalizada (se chama "&lt;a href="http://en.wikipedia.org/wiki/Sepsis"&gt;sepsis&lt;/a&gt;", e tem muita gente que morre disso!) e assim estive no &lt;a href="http://www.hmsm.com.br/"&gt;Hospital São Mateus&lt;/a&gt; essa semana inteira (&lt;em&gt;i.e.&lt;/em&gt; 5 dias com 2 antibióticos na veia). A dose era tão alta que me deixava &lt;em&gt;grogue&lt;/em&gt; (eu não sabia que antibióticos faziam isso). Hoje tive alta (graças a Deus, pois não ia suportar outra &lt;a href="http://www.ufrgs.br/eenf/laboratorios/levi/projeto1/puncao.swf"&gt;punção na veia&lt;/a&gt;: tenho trauma disso e morro de medo - de tremer todo e bater os dentes - e pra piorar tive uma &lt;a href="http://pt.wikipedia.org/wiki/Flebite"&gt;flebite&lt;/a&gt; de leve, mas esse foi o "açucar" desse caldo! Meu medo é da agulha! hehehehehe...).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_zbQe8y6ysuc/SAD32nBvi-I/AAAAAAAADPA/kMHOgAHEsok/s1600-h/pe2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5188419288292101090" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zbQe8y6ysuc/SAD32nBvi-I/AAAAAAAADPA/kMHOgAHEsok/s320/pe2.jpg" border="0" /&gt;&lt;/a&gt; A cima e ao lado seguem fotos tiradas já em casa, hoje de manhã, do meu pé "novo de novo" (acredite: está MUITO melhor). Em verdade, o perigo maior já passou (&lt;em&gt;i.e.&lt;/em&gt; dessa eu não morro), mas como dá pra imaginar ainda vou ficar mais uns 15 dias literalmente "&lt;a href="http://www.msd-brazil.com/msdbrazil/patients/manual_Merck/mm_sec17_174.html#section_2"&gt;com o pé pra cima&lt;/a&gt;". Pior que até já desencanei e não estou ansioso com isso. Creio ser isto o mais importante dada a inevitabilidade do mundo (&lt;em&gt;i.e.&lt;/em&gt; "relaxa e goza" hehehhee...).&lt;br /&gt;&lt;br /&gt;Ademais, não produzi nada (nem fiz nada interessante) no hospital, pois a sonolência da medicação, o desamparo do desconhecimento da data de alta hospitalar e a "sombra constante" de novas &lt;a href="http://www.ufrgs.br/eenf/laboratorios/levi/projeto1/puncao.swf"&gt;punções na veia&lt;/a&gt;, meio que me desmotivaram (como dizia meu velho, "&lt;a href="http://www.blogger.com/post-edit.g?blogID=7223282403168543039&amp;amp;postID=5193990193692130411#elan"&gt;não tinha élan&lt;/a&gt;"*). Assim a única coisa que tenho para falar hoje é da minha própria história. hehehehehe... E sendo esta uma história, há de haver uma moral (ou várias morais, pois nenhuma é, em absoluto, absoluta...):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use botas "sete léguas" na praia (ou pelo menos não enterre o pé na areia - o que era um discreto costume meu, enquanto tomava um cervejinha na praia - uma "viagem" do tipo "contato com a terra, com a natureza, etc.").&lt;/li&gt;&lt;li&gt;Não leve o cachorro para a praia, oh FDP! Ou pelo menos recolha os produtos finais!&lt;/li&gt;&lt;li&gt;Eu sou um "cara de sorte"! :D&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Bem, parece que assim caminha a humanidade! Menos eu, que por enquanto, não vou a lugar algum! hehehehhehe...&lt;/p&gt;&lt;p&gt;* Uma pesquisa rápida na wikipédia esclarece que "&lt;a href="http://en.wikipedia.org/wiki/%C3%89lan_vital"&gt;élan vital&lt;/a&gt;" ou "força vital" foi uma teoria equivocada para a evolução, do começo do século passado, que atribuia a vida a um fluído mítico - sendo a base de inspiração para a "força" de Star Wars. Esperar o que do velhão: ele chama "cinema" de "&lt;a href="http://en.wikipedia.org/wiki/CinemaScope"&gt;cinemascope&lt;/a&gt;"! Falando nisso ele me trouxe umas muletas para usar esses dias. Brigadão pai, não sei o que faria sem você. Te amo!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-5193990193692130411?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/5193990193692130411/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=5193990193692130411' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5193990193692130411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5193990193692130411'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/pessoal-assim-caminha-humanidade.html' title='[Pessoal] Assim caminha a humanidade?'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbQe8y6ysuc/SAD3RXBvi9I/AAAAAAAADO4/DW8crysTyTw/s72-c/pe1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-6443020914834740295</id><published>2008-04-05T09:36:00.008-03:00</published><updated>2008-12-12T18:51:32.069-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>[Livro] Contos plausíveis</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_eBq9VQuNI/AAAAAAAADOw/f6QbaVnLQ-s/s1600-h/contos.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185756070958643410" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_eBq9VQuNI/AAAAAAAADOw/f6QbaVnLQ-s/s320/contos.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Segundo &lt;a href="http://www.tvcultura.com.br/aloescola/literatura/joaocabral/joaocabral3.htm"&gt;João Cabral de Melo Neto&lt;/a&gt;, "Carlos Drummond de Andrade mostra que ser poeta não significava ser sonhador, e que a ironia e a prosa cabem dentro da poesia". De acordo!&lt;br /&gt;&lt;br /&gt;Este &lt;a href="http://www.americanas.com.br/AcomProd/1472/365096"&gt;livro&lt;/a&gt; é realmente inusitado! Antes de mais nada, porque me foi emprestado pela Ana "da elétrica" ("da elétrica" não porque a ela fosse hiperativa, mas porque cursamos engenharia juntos na boa e velha universidade estadual de Campinas! Bons tempos!!!!) que reencontrei depois de muitos anos.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Mas o livro também "faz por onde". São contos curtos e independentes: cada um com menos de uma página (um chega a ter 3 linhas). Perfeito para quem não tem saco de ler textos longos! São extremamente divertidos, onde cada final garante uma boa risada. O texto exercita de forma primorosa dois princípios básicos: simplicidade e lógica (no meu entender, duas das grandes virtudes universais). Deveria ser usado nas escolas para ensinar redação e bom senso (isso se ensina?).&lt;/p&gt;&lt;p&gt;Verdade seja dia: o escencial é que me diverti demais lendo esse livro, o que foi um problema pois acabou quase imediatamente, me deixando "orfão". A grande "sacada" vem por conta de uma implícita crítica irônica à pretensão literária, com finais perfeitamente lógicos à situações fantasiosas (dái o nome &lt;a href="http://www.americanas.com.br/AcomProd/1472/365096"&gt;contos plausíveis&lt;/a&gt;). Desta forma, clichês são satirizados com um final comum, gerando uma surpresa e uma boa risada. Na verdade, a identificação com o livro foi tão grande, em seu culto a simplicidade e racionalidade (&lt;em&gt;i.e. simplicity is beautiful&lt;/em&gt;), que perguntei ao bom e velho&lt;em&gt; google&lt;/em&gt; se o Drummond não era engenheiro. Mas era farmacêutico!&lt;/p&gt;&lt;p&gt;Para dar o gostinho, eis um conto plausível "pseudo-aleatório":&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;&lt;strong&gt;Abotoaduras&lt;/strong&gt; &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;O maior fabricante de abotoaduras de punho fechou a indústria depois de convencer-se de que é infinitamente reduzido o número de camisas de manga comprida à disposição da humanidade. E, mais, que os exemplares deste gênero, ainda existentes, são providos de botões, dispensando abotoaduras. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;– Trabalhei a vida inteira no setor – lastimava-se – e almejava legar a meus filhos a tradição das abotoaduras de punho, como requinte terminal de uma camisa digna desse nome. Os fatos ergueram-se contra mim. Não posso mais produzir abotoaduras de punho para camisas sem punho ou de punho abastardado por míseros botões de plástico. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Concluiu que é o fim da civilização e ia enforcar-se numa camisa esporte, estampada, quando esta, movida por vento súbito, saiu pelos ares, qual bandeira solta. E era tão bonito o esvoaçar do pano bigarreado, tão graciosas as evoluções que o homem resolveu desistir da morte e aplicar sua fortuna em uma indústria colossal de camisas de manga curta.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-6443020914834740295?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/6443020914834740295/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=6443020914834740295' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6443020914834740295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6443020914834740295'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/livro-contos-plausveis.html' title='[Livro] Contos plausíveis'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbQe8y6ysuc/R_eBq9VQuNI/AAAAAAAADOw/f6QbaVnLQ-s/s72-c/contos.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-961912421608658515</id><published>2008-04-03T20:33:00.001-03:00</published><updated>2008-12-12T18:51:33.120-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>[.NET] Comunicador simples com .NET remoting</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_Vj4dVQuLI/AAAAAAAADOg/bkR5z5cTnVQ/s1600-h/chat1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185160367584622770" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_Vj4dVQuLI/AAAAAAAADOg/bkR5z5cTnVQ/s320/chat1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Os componentes das APIs .Net Remoting e Java RMI (&lt;em&gt;Remote Method Invocation&lt;/em&gt;) provêm funcionalidades para desenvolvimento de sistemas distribuídos, permitindo a chamada remota de procedimentos (&lt;em&gt;i.e.&lt;/em&gt; de forma semelhante à RPC, no entanto, sobre o paradigma OO). Neste contexo, os métodos invocados podem ser de processos distindos na mesma estação ou em estações diversas (&lt;em&gt;i.e.&lt;/em&gt; máquinas virtuais distintas).&lt;br /&gt;&lt;br /&gt;Tal tecnologia também é fundamental para a integração de sistemas, sendo um alternativa aos &lt;em&gt;webservices&lt;/em&gt; em contextos onde a performance é crítica. De forma geral, a grande vantagem sobre um implementação a nível de &lt;em&gt;sockets&lt;/em&gt; é que se dispensa o desenvolvimento de todo um protocolo de comunicação. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Para o desenvolvimento de uma aplicação cliente-servidor sobre estas APIs, deve-se definir a interface de serviços a serem oferecidos pelo objeto servidor. Os serviços especificados pela interface remota deverão ser implementados através de classes concretas. Com a interface estabelecida e o serviço implementado, é finalmente possível criar as aplicações cliente e servidor, sendo necessário apenas o registro do serviço para que as APIs citadas encapsulem toda a serialização e transferências das mensagens.&lt;br /&gt;&lt;br /&gt;Neste artigo apresenta-se uma aplicação "&lt;em&gt;chat&lt;/em&gt;" simples sobre a API .Net Remoting da plataforma .NET 2.0, onde diversos clientes contectam-se a um servidor para enviar mensagens aos outros participantes. Desta forma, a solução será dividada em 3 projetos:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;assembly&lt;/em&gt; "&lt;strong&gt;MessagerCore&lt;/strong&gt;" (DLL): contendo toda a lógica da aplicação.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;aplicação console "&lt;strong&gt;MessagerServer&lt;/strong&gt;": com responsabilidade de ser o mediador de mensagens e servidor da aplicação .Net Remoting&lt;/li&gt;&lt;br /&gt;&lt;li&gt;aplicação &lt;em&gt;Windows Forms&lt;/em&gt; "&lt;strong&gt;MessagerClient&lt;/strong&gt;": com responsabilidade de interface dos usuários e cliente .Net Remoting&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Neste aspecto, inicia-se pelo desenvolvimento do assembly "MessagerCore" (DLL), através da definição das interfaces do serviço. Foram definidas as interfaces &lt;em&gt;IChatter&lt;/em&gt; (representa o usuário cliente do chat) e &lt;em&gt;IChatServer&lt;/em&gt; (representa o mediador de mensagens). Na interface &lt;em&gt;IChatter&lt;/em&gt;, o método &lt;em&gt;MessageArrived(string message)&lt;/em&gt; dispara o evento &lt;em&gt;IncomingMessage&lt;/em&gt; para tratamento no cliente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Interface IChatter&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;namespace net.jorgealbuquerque.Messager.Core&lt;br /&gt;{&lt;br /&gt;    public interface IChatter&lt;br /&gt;    {&lt;br /&gt;        // Recupera o nome do usuário do chat&lt;br /&gt;        string Name { get; }&lt;br /&gt;        // Dispara o evento IncomingMessage para tratamento no cliente&lt;br /&gt;        void MessageArrived(string message);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;Na interface &lt;em&gt;IChatServer&lt;/em&gt;, os métodos &lt;em&gt;RegisterChatter&lt;/em&gt; e &lt;em&gt;UnRegisterChatter&lt;/em&gt; registram, respectivamente, o ingresso e abandono do cliente no chat. Por sua vez, o método &lt;em&gt;AddMessage(IChatter sender, string message)&lt;/em&gt; representa o envio da mensagem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Interface IChatServer&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;namespace net.jorgealbuquerque.Messager.Core&lt;br /&gt;{&lt;br /&gt;    public interface IChatServer&lt;br /&gt;    {&lt;br /&gt;        // Ingressa no chat&lt;br /&gt;        void RegisterChatter(IChatter chatter);&lt;br /&gt;        // Abandona o chat&lt;br /&gt;        void UnRegisterChatter(IChatter chatter);&lt;br /&gt;        // Envia mensagem&lt;br /&gt;        void AddMessage(IChatter sender, string message);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div&gt;&lt;/span&gt;&lt;/div&gt;Uma vez definidas as interfaces do serviço remoto, pode-se construir suas classes concretas. Nestes contexto, a classe &lt;em&gt;Chatter&lt;/em&gt; (realização de &lt;em&gt;IChatter&lt;/em&gt;) poderia ser implementada na &lt;em&gt;assembly&lt;/em&gt; cliente e a classe &lt;em&gt;ChatServer&lt;/em&gt; (realização de &lt;em&gt;IChatServer&lt;/em&gt;) poderia ser implementada no servidor. No entanto, foi realizada a opção de manter toda a lógica no &lt;em&gt;assembly&lt;/em&gt; "&lt;em&gt;MessagerCore&lt;/em&gt;", de forma a prover apenas lógica de apresentação nas aplicações cliente e servidor. Tal escolha quebra um pouco as o design pattern observer, mas separa eficientemetne as camadas de negócios e apresentação. Observe, no entanto, que não existe nenhuma dependência entre os &lt;em&gt;namespaces&lt;/em&gt; do cliente e servidor.&lt;br /&gt;&lt;br /&gt;A classe Chatter estende&lt;em&gt; MarshalByRefObject&lt;/em&gt;, o que permite a sua serialização e manipulação remota pela API .NET remoting. Note ainda que o método &lt;em&gt;MessageArrived(string message)&lt;/em&gt; ativa o evento &lt;em&gt;IncomingMessage&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe Chatter&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Runtime.Remoting;&lt;br /&gt;using net.jorgealbuquerque.Messager.Core;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.Client&lt;br /&gt;{&lt;br /&gt;    public class Chatter : MarshalByRefObject, IChatter&lt;br /&gt;    {&lt;br /&gt;        public Chatter(string name)&lt;br /&gt;        {&lt;br /&gt;            _Name = name;&lt;br /&gt;        }&lt;br /&gt;        public event IncomingMessageEventHandler IncomingMessage;&lt;br /&gt;        public delegate void IncomingMessageEventHandler(string Message);&lt;br /&gt;        private string _Name;&lt;br /&gt;        public string Name&lt;br /&gt;        {&lt;br /&gt;            get {   return _Name;    }    &lt;br /&gt;        }&lt;br /&gt;        public void MessageArrived(string message)&lt;br /&gt;        {&lt;br /&gt;            if (this.IncomingMessage != null)    &lt;br /&gt;                this.IncomingMessage(message);    &lt;br /&gt;        }        &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;De forma semelhante, o servidor também estende &lt;em&gt;MarshalByRefObject&lt;/em&gt;. Neste contexto, o método UpdateObsevers(string message) realiza a atualização de todos os clientes, segundo o &lt;em&gt;design pattern observer&lt;/em&gt;, por meio do evento &lt;em&gt;IncomingMessage&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe ChatServer&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Runtime.Remoting;&lt;br /&gt;using net.jorgealbuquerque.Messager.Core;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.Server&lt;br /&gt;{&lt;br /&gt;    public class ChatServer : MarshalByRefObject, IChatServer&lt;br /&gt;    {&lt;br /&gt;        private List&lt;ichatter&gt; _Chatters = new List&lt;ichatter&gt;();&lt;br /&gt;        public override object InitializeLifetimeService()&lt;br /&gt;        {&lt;br /&gt;            return null;&lt;br /&gt;        }&lt;br /&gt;        private void UpdateObsevers(string message)&lt;br /&gt;        {&lt;br /&gt;            foreach (IChatter observer in _Chatters)&lt;br /&gt;                observer.MessageArrived(message);    &lt;br /&gt;            //Console.WriteLine(message);&lt;br /&gt;        }&lt;br /&gt;        public void AddMessage(IChatter chatter, string message)&lt;br /&gt;        {&lt;br /&gt;            if (string.IsNullOrEmpty(message))&lt;br /&gt;               return;&lt;br /&gt;            UpdateObsevers(string.Format("{0}) {1} disse: {2}",&lt;br /&gt;                DateTime.Now.ToLongTimeString(),&lt;br /&gt;                chatter.Name, message));                    &lt;br /&gt;        }        &lt;br /&gt;        public void RegisterChatter(IChatter chatter)&lt;br /&gt;        {&lt;br /&gt;            _Chatters.Add(chatter);    &lt;br /&gt;            UpdateObsevers(&lt;br /&gt;                string.Format("{0}) Usuário {1} entrou.",&lt;br /&gt;                DateTime.Now.ToLongTimeString(), chatter.Name));&lt;br /&gt;        }&lt;br /&gt;        public void UnRegisterChatter(IChatter chatter)&lt;br /&gt;        {&lt;br /&gt;            _Chatters.Remove(chatter);&lt;br /&gt;            UpdateObsevers(&lt;br /&gt;                string.Format("{0}) Usuário {1} saiu.",&lt;br /&gt;                DateTime.Now.ToLongTimeString(), chatter.Name));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;/span&gt;&lt;/div&gt;Finalmente, a lógica de registro e conexão dos servidor e cliente foram encapsulados nas classes de serviço abaixo. A classe &lt;em&gt;ServerChannelService&lt;/em&gt; apresenta registro para intanciação remota do &lt;em&gt;ChatServer&lt;/em&gt; como &lt;em&gt;Singleton&lt;/em&gt; (&lt;em&gt;i.e.&lt;/em&gt; apenas um mediator para todos os clientes). Por sua vez, a classe &lt;em&gt;ClienteChannelService&lt;/em&gt; mostra a chamada remota propriamente dita da mesma classe pela construção &lt;em&gt;Activator.GetObject().&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe ServerChannelService&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Runtime.Remoting;&lt;br /&gt;using net.jorgealbuquerque.Messager.Core;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.Server&lt;br /&gt;{&lt;br /&gt;    public class ServerChannelService&lt;br /&gt;    {&lt;br /&gt;        public ServerChannelService(int port)&lt;br /&gt;        {&lt;br /&gt;            new RemotingTcpServicesHelper().ServerRegisterChannel("ChatServer", port);&lt;br /&gt;            RemotingConfiguration.RegisterWellKnownServiceType(&lt;br /&gt;                typeof(ChatServer), "ChatServer", WellKnownObjectMode.Singleton);    &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe ClientChannelService&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using net.jorgealbuquerque.Messager.Core;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.Client&lt;br /&gt;{&lt;br /&gt;    public class ClientChannelService&lt;br /&gt;    {&lt;br /&gt;        IChatServer _ChatServer = null;&lt;br /&gt;        public ClientChannelService(string url, int port)&lt;br /&gt;        {   &lt;br /&gt;            new RemotingTcpServicesHelper().ClientRegisterChannel("ChatServer", port);&lt;br /&gt;            string uri = string.Format("tcp://{0}:{1}/ChatServer", url, port);&lt;br /&gt;            _ChatServer = (IChatServer)Activator.GetObject(typeof(IChatServer), uri);&lt;br /&gt;        }&lt;br /&gt;        public IChatServer ChatServer&lt;br /&gt;        {&lt;br /&gt;            get {   return _ChatServer;   }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;Ambos os serviços consomem a classe &lt;em&gt;RemotingTcpServicesHelper&lt;/em&gt;, responsável pelo registro do canal de comunicação TCP entre servidor e cliente. No caso, esta implementação foi definida de forma a alterar o nível de segurança da instanciação de objetos remotos para "&lt;strong&gt;Full&lt;/strong&gt;" (o padrão do framework 1.1 em diante é "&lt;strong&gt;low&lt;/strong&gt;", o que impossibilita a troca de objetos serializados).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe RemotingTcpServicesHelper&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Runtime.Remoting.Channels;&lt;br /&gt;using System.Runtime.Serialization.Formatters;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Runtime.Remoting.Channels.Tcp;&lt;br /&gt;using System.Runtime.Remoting;&lt;br /&gt;using net.jorgealbuquerque.Messager.Server;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.Core&lt;br /&gt;{&lt;br /&gt;    public class RemotingTcpServicesHelper&lt;br /&gt;    {&lt;br /&gt;        public void ClientRegisterChannel(string serviceName, int port)&lt;br /&gt;        {&lt;br /&gt;            if (ChannelServices.GetChannel(serviceName) != null)&lt;br /&gt;                return;&lt;br /&gt;            IDictionary props = new Hashtable();&lt;br /&gt;            props["name"] = serviceName;&lt;br /&gt;            props["port"] = 0;&lt;br /&gt;            props["bindTo"] = "127.0.0.1";&lt;br /&gt;            props["typeFilterLevel"] = TypeFilterLevel.Full;&lt;br /&gt;            BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();&lt;br /&gt;            BinaryClientFormatterSinkProvider clientprovider = new BinaryClientFormatterSinkProvider();&lt;br /&gt;            serverProvider.TypeFilterLevel = TypeFilterLevel.Full;&lt;br /&gt;            TcpChannel channel = new TcpChannel(props, clientprovider, serverProvider);&lt;br /&gt;            ChannelServices.RegisterChannel(channel, false);&lt;br /&gt;        }&lt;br /&gt;        public void ServerRegisterChannel(string serviceName, int port)&lt;br /&gt;        {&lt;br /&gt;            if (ChannelServices.GetChannel(serviceName) != null)&lt;br /&gt;                return;&lt;br /&gt;            IDictionary props = new Hashtable();&lt;br /&gt;            props["name"] = serviceName;&lt;br /&gt;            props["port"] = port;&lt;br /&gt;            props["bindTo"] = "127.0.0.1";&lt;br /&gt;            props["typeFilterLevel"] = TypeFilterLevel.Full;&lt;br /&gt;            BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();&lt;br /&gt;            serverProvider.TypeFilterLevel = TypeFilterLevel.Full;&lt;br /&gt;            TcpChannel channel = new TcpChannel(props, null, serverProvider);&lt;br /&gt;            ChannelServices.RegisterChannel(channel, false);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;Finalmente, encerra-se o desenvolvimento do assembly "MessagerCore", passando-se a construção da aplicação servidora pelo projeto console "MessagerServer":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;MessagerServer &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using net.jorgealbuquerque.Messager.Server;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.MessagerServer&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            int port = 8080;&lt;br /&gt;            ServerChannelService service = new ServerChannelService(port);    &lt;br /&gt;            Console.WriteLine("O servidor de mensagens está ativo na porta {0}", port);&lt;br /&gt;            Console.WriteLine("Pressine enter para parar o servidor...");&lt;br /&gt;            Console.ReadLine();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;Observa-se a total abstração da lógica de negócios na camada de apresentação do servidor. Da mesma forma, apresenta-se o código fonte do único formulário (&lt;strong&gt;frmMain&lt;/strong&gt;) para a aplicação cliente Windows Forms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;frmMain.cs&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using net.jorgealbuquerque.Messager.Core;&lt;br /&gt;using net.jorgealbuquerque.Messager.Client;&lt;br /&gt;using System.Threading;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.MessagerClient&lt;br /&gt;{&lt;br /&gt;    public partial class frmMain : Form&lt;br /&gt;    {&lt;br /&gt;        private Chatter _Chatter;&lt;br /&gt;        private IChatServer _ChatServer;&lt;br /&gt;        public frmMain()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();    &lt;br /&gt;        }&lt;br /&gt;        private void InitServer()&lt;br /&gt;        {&lt;br /&gt;            _Chatter = new Chatter(txtName.Text);&lt;br /&gt;            ClientChannelService service = new ClientChannelService(&lt;br /&gt;                txtServerHost.Text,&lt;br /&gt;                Int32.Parse(txtServerPort.Text));&lt;br /&gt;            _ChatServer = service.ChatServer;    &lt;br /&gt;            _Chatter.IncomingMessage += new&lt;br /&gt;                Chatter.IncomingMessageEventHandler(Chatter_IncomingMessage);&lt;br /&gt;        }&lt;br /&gt;        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (_ChatServer != null)&lt;br /&gt;                    _ChatServer.UnRegisterChatter(_Chatter);&lt;br /&gt;            }&lt;br /&gt;            catch&lt;br /&gt;            {&lt;br /&gt;                this.Dispose();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private void SendMessageToServer()&lt;br /&gt;        {&lt;br /&gt;            string texto = txtMessage.Text;&lt;br /&gt;            txtMessage.Text = string.Empty;&lt;br /&gt;            if (_ChatServer == null  _Chatter == null  string.IsNullOrEmpty(texto))&lt;br /&gt;                return;&lt;br /&gt;            _ChatServer.AddMessage(_Chatter, texto);&lt;br /&gt;        }&lt;br /&gt;        private void Chatter_IncomingMessage(string Message)&lt;br /&gt;        {&lt;br /&gt;            txtChat.Text = txtChat.Text + Message + "\r\n";&lt;br /&gt;        }&lt;br /&gt;        private void Send()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                new Thread(new ThreadStart(this.SendMessageToServer)).Start();&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(ex.Message);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private void Register()&lt;br /&gt;        {&lt;br /&gt;            if (string.IsNullOrEmpty(txtName.Text))&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show("Nome inválido!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                InitServer();&lt;br /&gt;                _ChatServer.RegisterChatter(_Chatter);&lt;br /&gt;                pnlLogin.Visible = false;&lt;br /&gt;                pnlMain.Visible = true;&lt;br /&gt;                this.Text = string.Format("Usuário: {0}", txtName.Text);&lt;br /&gt;            }&lt;br /&gt;            catch (System.Net.Sockets.SocketException exSocket)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show("Servidor não encontrado: " + exSocket.ErrorCode, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private void btnSend_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Send();&lt;br /&gt;        }&lt;br /&gt;        private void txtMessage_KeyPress(object sender, KeyPressEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            if (e.KeyChar == Convert.ToChar(13))&lt;br /&gt;                Send();&lt;br /&gt;        }&lt;br /&gt;        private void btnRegister_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Register();&lt;br /&gt;        }&lt;br /&gt;        private void txtName_KeyPress(object sender, KeyPressEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            if (e.KeyChar == Convert.ToChar(13))&lt;br /&gt;                Register();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;O formulário foi divido em 2 &lt;em&gt;panels&lt;/em&gt; (&lt;em&gt;pnlLogin&lt;/em&gt; e &lt;em&gt;pnlMain&lt;/em&gt;), responsáveis pelo login no servidor e pela interface principal do chat. Finalmente, apresenta-se o construtor da aplicação, onde é definido a &lt;em&gt;flag CheckForIllegalCrossThreadCalls = false&lt;/em&gt;. Tal opção permite a chamada dos componentes do formulário por múltiplas &lt;em&gt;threads&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Program.cs&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;namespace net.jorgealbuquerque.Messager.MessagerClient&lt;br /&gt;{&lt;br /&gt;    static class Program&lt;br /&gt;    {&lt;br /&gt;        [STAThread]&lt;br /&gt;        static void Main()&lt;br /&gt;        {&lt;br /&gt;            Application.EnableVisualStyles();&lt;br /&gt;            Application.SetCompatibleTextRenderingDefault(false);&lt;br /&gt;            frmMain.CheckForIllegalCrossThreadCalls = false;                  &lt;br /&gt;            Application.Run(new frmMain());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-961912421608658515?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/961912421608658515/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=961912421608658515' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/961912421608658515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/961912421608658515'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/04/net-comunicador-simples-com-remoting.html' title='[.NET] Comunicador simples com .NET remoting'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbQe8y6ysuc/R_Vj4dVQuLI/AAAAAAAADOg/bkR5z5cTnVQ/s72-c/chat1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-581556725570437842</id><published>2008-03-30T20:37:00.016-03:00</published><updated>2008-12-12T18:51:33.592-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>[ASP.NET] Componentizando o upload de imagens na camada de negócios</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_AlItVQuII/AAAAAAAADOI/yHm2LpLLLhQ/s1600-h/uploader1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183684002641393794" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_AlItVQuII/AAAAAAAADOI/yHm2LpLLLhQ/s320/uploader1.jpg" border="0" /&gt;&lt;/a&gt;Um problema usual em aplicações ASP.NET é o envio de imagens. Esta necessidade é plenamente suprida pelo componente nativo ASP.NET &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx"&gt;FileUpload&lt;/a&gt;. Tal "&lt;em&gt;WebControl&lt;/em&gt;", apresenta um &lt;em&gt;TextBox&lt;/em&gt; e um botão "&lt;em&gt;Browse&lt;/em&gt;", que encapsula a manipulação da &lt;em&gt;stream&lt;/em&gt; da imagem durante o &lt;em&gt;PostBack&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;A figura ao lado apresenta-se um aplicação "&lt;em&gt;mock&lt;/em&gt;" para envio de imagens. Abaixo segue o código em C# para o delegate do evento &lt;em&gt;OnClick()&lt;/em&gt; do botão “Enviar”.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;protected void btnEnviar_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;   if (FileUpload1.HasFile)&lt;br /&gt;   {&lt;br /&gt;      // Recupera dados da imagem&lt;br /&gt;      string fileName = FileUpload1.FileName;&lt;br /&gt;      string filePath = Page.MapPath("~") + Path.DirectorySeparatorChar +&lt;br /&gt;         "images" + Path.DirectorySeparatorChar + fileName;&lt;br /&gt;      byte[] data = FileUpload1.FileBytes;&lt;br /&gt;      // Escreve a imagem em disco&lt;br /&gt;      FileStream writer = new FileStream(filePath, FileMode.Create);&lt;br /&gt;      writer.Write(data, 0, data.Length);&lt;br /&gt;      writer.Close();&lt;br /&gt;      // Apresenta a imagem salva na tela&lt;br /&gt;      lblFileName.Text = "Arquivo enviado: " + fileName;&lt;br /&gt;      Image1.ImageUrl = "~/images/" + fileName;&lt;br /&gt;      Image1.Visible = true;&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;      lblFileName.Text = string.Empty;&lt;br /&gt;      Image1.Visible = false;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No entanto, pode-se criticar esta implementação por quebrar a separação em camadas, uma vez que a lógica de manipulação da imagem está inserida no modelo da camada de apresentação (o arquivo .aspx.cs representa o model MVC). Desta forma se propõe o serviço abaixo a ser encapsulado em um assembly (dll) a parte para fins de reuso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;interface IUploader&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;using System;&lt;br /&gt;namespace net.jorgealbuquerque.Services.Uploader&lt;br /&gt;{&lt;br /&gt;    public interface IUploader&lt;br /&gt;    {&lt;br /&gt;        string BaseDir { get; set; }&lt;br /&gt;        System.Drawing.Size ThurmbnailSize { get; set; }&lt;br /&gt;        bool CreateThumbnails { get; set; }&lt;br /&gt;        string GetImageDirectory();&lt;br /&gt;        void Upload(string fileName, System.IO.Stream data);&lt;br /&gt;        void Upload(string fileName, byte[] data);&lt;br /&gt;        void Delete(string fileName);&lt;br /&gt;        void CreateThumbnail(string fileName);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;classe UploaderService&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;namespace net.jorgealbuquerque.Services.Uploader&lt;br /&gt;{&lt;br /&gt;    public class UploaderService: IUploader&lt;br /&gt;    {&lt;br /&gt;        private bool _CreateThumbnails = true;&lt;br /&gt;        public bool CreateThumbnails&lt;br /&gt;        {&lt;br /&gt;            get { return _CreateThumbnails; }&lt;br /&gt;            set { _CreateThumbnails = value; }&lt;br /&gt;        }&lt;br /&gt;        private Size _ThurmbnailSize = new Size(64, 64);&lt;br /&gt;        public Size ThurmbnailSize&lt;br /&gt;        {&lt;br /&gt;            get { return _ThurmbnailSize; }&lt;br /&gt;            set &lt;br /&gt;            {&lt;br /&gt;                Size size = value;&lt;br /&gt;                if (size == null)&lt;br /&gt;                    throw new ArgumentNullException("O tamanho do thurmbnail não pode ser nulo.");&lt;br /&gt;                if (size.Height &lt; 5 || size.Width &lt; 5)&lt;br /&gt;                    throw new ArgumentException("O tamanho do thurmbnail inválido!");&lt;br /&gt;                _ThurmbnailSize = size; &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        private string _baseDir = "images";&lt;br /&gt;        public string BaseDir&lt;br /&gt;        {&lt;br /&gt;            get { return _baseDir; }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                string dir = value;&lt;br /&gt;                if (string.IsNullOrEmpty(dir))&lt;br /&gt;                    throw new ArgumentException("Nome de diretório base inválido!");&lt;br /&gt;                dir = dir.Replace('/', ' ');&lt;br /&gt;                dir = dir.Replace('\\', ' ');&lt;br /&gt;                dir = dir.Trim();&lt;br /&gt;                _baseDir = dir;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public string GetImageDirectory()&lt;br /&gt;        {&lt;br /&gt;            return AppDomain.CurrentDomain.BaseDirectory +&lt;br /&gt;                _baseDir + Path.DirectorySeparatorChar;&lt;br /&gt;        }&lt;br /&gt;        protected void Validate(string fileName)&lt;br /&gt;        {&lt;br /&gt;            if (string.IsNullOrEmpty(fileName))&lt;br /&gt;                throw new ArgumentException("nome de arquivo inválido!");&lt;br /&gt;            string ext = Path.GetExtension(fileName).ToLower();&lt;br /&gt;            if (ext != ".jpg" &amp;amp;&amp;amp; ext != ".gif" &amp;amp;&amp;amp;&lt;br /&gt;                ext != ".bmp" &amp;amp;&amp;amp; ext != ".png" &amp;amp;&amp;amp; ext != ".tif")&lt;br /&gt;                throw new ArgumentException("extensão de arquivo inválida!");&lt;br /&gt;            string dir = GetImageDirectory();&lt;br /&gt;            if (!Directory.Exists(dir))&lt;br /&gt;                Directory.CreateDirectory(dir);&lt;br /&gt;        }&lt;br /&gt;        public void Upload(string fileName, byte[] data)&lt;br /&gt;        {&lt;br /&gt;            Validate(fileName);&lt;br /&gt;            FileStream writer = new FileStream(GetImageDirectory() + fileName,&lt;br /&gt;                FileMode.Create);&lt;br /&gt;            writer.Write(data, 0, data.Length);&lt;br /&gt;            writer.Close();&lt;br /&gt;            if (_CreateThumbnails)&lt;br /&gt;                CreateThumbnail(fileName);&lt;br /&gt;        }&lt;br /&gt;        public void Upload(string fileName, Stream data)&lt;br /&gt;        {&lt;br /&gt;            byte[] buffer = new byte[data.Length];&lt;br /&gt;            data.Write(buffer, 0, (int)data.Length);&lt;br /&gt;            Upload(fileName, buffer);&lt;br /&gt;            buffer = null;&lt;br /&gt;            GC.SuppressFinalize(buffer);&lt;br /&gt;            if (_CreateThumbnails)&lt;br /&gt;                CreateThumbnail(fileName);&lt;br /&gt;        }   &lt;br /&gt;        public void Delete(string fileName)&lt;br /&gt;        {&lt;br /&gt;            string filePath = GetImageDirectory() + fileName;&lt;br /&gt;            if (File.Exists(filePath))&lt;br /&gt;                File.Delete(filePath);&lt;br /&gt;            string thumbnailPath = GetImageDirectory() + "thumb_" + fileName;&lt;br /&gt;            if (File.Exists(thumbnailPath))&lt;br /&gt;                File.Delete(thumbnailPath);&lt;br /&gt;        }&lt;br /&gt;        public void CreateThumbnail(string fileName)&lt;br /&gt;        {&lt;br /&gt;            string thumbnailName = "thumb_" + fileName;&lt;br /&gt;            string filePath = GetImageDirectory() + fileName;&lt;br /&gt;            string thumbnailPath = GetImageDirectory() + thumbnailName;&lt;br /&gt;            System.Drawing.Image img = System.Drawing.Image.FromFile(filePath);&lt;br /&gt;            System.Drawing.Image thumbnail = img.GetThumbnailImage(&lt;br /&gt;                _ThurmbnailSize.Width, &lt;br /&gt;                _ThurmbnailSize.Height,&lt;br /&gt;                new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback),&lt;br /&gt;                IntPtr.Zero);&lt;br /&gt;            thumbnail.Save(thumbnailPath);&lt;br /&gt;        }&lt;br /&gt;        protected bool ThumbnailCallback()&lt;br /&gt;        {&lt;br /&gt;            return true;&lt;br /&gt;        }   &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;Finalmente, sugere-se uma fábrica concreta que permita um ponto de junção para a evolução do componente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;classe UploaderServiceFactory&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;using System;&lt;br /&gt;namespace net.jorgealbuquerque.Services.Uploader&lt;br /&gt;{&lt;br /&gt;    public class UploaderServiceFactory&lt;br /&gt;    {&lt;br /&gt;        private UploaderServiceFactory() { }&lt;br /&gt;        private static UploaderServiceFactory _instance;&lt;br /&gt;        public static UploaderServiceFactory GetInstance()&lt;br /&gt;        {&lt;br /&gt;            if (_instance == null)&lt;br /&gt;                _instance = new UploaderServiceFactory();&lt;br /&gt;            return _instance;&lt;br /&gt;        }&lt;br /&gt;        public IUploader GetUploader()&lt;br /&gt;        {&lt;br /&gt;            return new UploaderService();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Desta forma, o delegate do evento &lt;em&gt;OnClick()&lt;/em&gt; seria reescrito da forma abaixo. Observa-se a separação entre lógica de negócios e apresentação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;protected void btnEnviar_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    if (FileUpload1.HasFile)&lt;br /&gt;    {&lt;br /&gt;        UploaderServiceFactory().GetInstance().GetUploader().&lt;br /&gt;            Upload(FileUpload1.FileName, FileUpload1.FileBytes);&lt;br /&gt;        lblFileName.Text = "Arquivo enviado: " + FileUpload1.FileName;&lt;br /&gt;        Image1.ImageUrl = "~/imagens/" + FileUpload1.FileName;&lt;br /&gt;        Image1.Visible = true;&lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;     {&lt;br /&gt;        lblFileName.Text = string.Empty;&lt;br /&gt;        Image1.Visible = false;&lt;br /&gt;     }       &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_BsatVQuJI/AAAAAAAADOQ/ac-Pw6wKRLU/s1600-h/uploader2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183762377204611218" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_BsatVQuJI/AAAAAAAADOQ/ac-Pw6wKRLU/s320/uploader2.jpg" border="0" /&gt;&lt;/a&gt;Note ainda que o componente pode ser igualmente empregado em contexto Windows Forms sem qualquer adaptação, ampliando seu potencial de reuso. De forma a tornar mais evidente a separação em camadas obtida pelo componente descrito, propõe-se a persistência do cadastro de imagens. Neste contexto, definiu-se a camada de persistência conforme a figura ao lado através de um componente DataSet "tipado", de acordo com o &lt;a href="http://msdn2.microsoft.com/en-us/library/aa581776.aspx"&gt;modelo proposto&lt;/a&gt; pela Microsoft. Por sua vez, o serviço da camada de negócios também segue as &lt;a href="http://msdn2.microsoft.com/en-us/library/Aa581779.aspx"&gt;recomendações&lt;/a&gt; da empresa, sendo apresentado abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using net.jorgealbuquerque.Sample.Dao;&lt;br /&gt;using net.jorgealbuquerque.Sample.Dao.DataSet1TableAdapters;&lt;br /&gt;using net.jorgealbuquerque.Services.Uploader;&lt;br /&gt;namespace net.jorgealbuquerque.Sample.Services&lt;br /&gt;{&lt;br /&gt;    [System.ComponentModel.DataObject]&lt;br /&gt;    public class ManterImagesService&lt;br /&gt;    {       &lt;br /&gt;        private static ImageDAO _DAO = null;&lt;br /&gt;        protected ImageDAO DAO&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                if (_DAO == null)&lt;br /&gt;                    _DAO = new ImageDAO();&lt;br /&gt;                return _DAO;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public void Upload(FileUpload fileUpload, string comentario)&lt;br /&gt;        {           &lt;br /&gt;            UploaderServiceFactory.GetInstance().GetUploader().&lt;br /&gt;                Upload(fileUpload.FileName, fileUpload.FileBytes);&lt;br /&gt;            Insert(fileUpload.FileName, DateTime.Now, comentario);&lt;br /&gt;        }&lt;br /&gt;        public void Upload(byte[] imageStream, string nome, string comentario)&lt;br /&gt;        {&lt;br /&gt;            UploaderServiceFactory.GetInstance().GetUploader().&lt;br /&gt;                Upload(nome, imageStream);&lt;br /&gt;            Insert(nome, DateTime.Now, comentario);&lt;br /&gt;        }&lt;br /&gt;        public void Upload(Stream imageStream, string nome, string comentario)&lt;br /&gt;        {&lt;br /&gt;            UploaderServiceFactory.GetInstance().GetUploader().&lt;br /&gt;                Upload(nome, imageStream);&lt;br /&gt;            Insert(nome, DateTime.Now, comentario);&lt;br /&gt;        }                       &lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Select, true)]&lt;br /&gt;        public DataSetLisier.ImageDataTable GetAll()&lt;br /&gt;        {&lt;br /&gt;            return DAO.GetAll();           &lt;br /&gt;        }&lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Select, false)]&lt;br /&gt;        public DataSetLisier.ImageDataTable GetByID(int ID)&lt;br /&gt;        {&lt;br /&gt;            if (ID &lt; -1)&lt;br /&gt;                 throw new ArgumentException("ID inválido!");&lt;br /&gt;             return DAO.GetByID(ID);&lt;br /&gt;         }&lt;br /&gt;         public DataSetLisier.ImageRow GetRowByID(int ID)&lt;br /&gt;         {&lt;br /&gt;             DataSetLisier.ImageDataTable tbl = GetByID(ID);&lt;br /&gt;             if (tbl.Count != 1)&lt;br /&gt;                 throw new ArgumentException("Imagem não encontrada!");&lt;br /&gt;             return (DataSetLisier.ImageRow)tbl.Rows[0];&lt;br /&gt;         }&lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Delete, true)]&lt;br /&gt;        public void Delete(int ID)&lt;br /&gt;        {&lt;br /&gt;            if (ID &lt; 0)&lt;br /&gt;                throw new ArgumentException("ID inválido!");                      &lt;br /&gt;            DataSetLisier.ImageRow img = GetRowByID(ID); &lt;br /&gt;            if (img == null)&lt;br /&gt;                throw new ArgumentException("imagem não cadastrada!");&lt;br /&gt;            UploaderServiceFactory.GetInstance().GetUploader().Delete(img.nome);                        &lt;br /&gt;            int linhas = DAO.Delete(ID);&lt;br /&gt;            if (linhas != 1)&lt;br /&gt;                throw new OperationCanceledException("Erro excluindo imagem!");&lt;br /&gt;        }&lt;br /&gt;        protected void ValidaDados(string nome, DateTime data, string comentario)&lt;br /&gt;        {&lt;br /&gt;            if (string.IsNullOrEmpty(nome))&lt;br /&gt;                throw new ArgumentException("nome de arquivo inválido!");&lt;br /&gt;        }&lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Insert, true)]&lt;br /&gt;        public void Insert(string nome, DateTime data, string comentario)&lt;br /&gt;        {&lt;br /&gt;            ValidaDados(nome, data, comentario);            &lt;br /&gt;            int linhas = DAO.Insert(nome, data, comentario);&lt;br /&gt;            if (linhas != 1)&lt;br /&gt;                throw new OperationCanceledException("Erro inserindo imagem!");            &lt;br /&gt;        }&lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Insert, false)]&lt;br /&gt;        public void Insert(DataSetLisier.ImageRow row)&lt;br /&gt;        {&lt;br /&gt;            if (row == null)&lt;br /&gt;                throw new OperationCanceledException("Imagem não pode ser nula!");&lt;br /&gt;            Insert(row.nome, row.data, row.comentario);&lt;br /&gt;        }        &lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Update, true)]&lt;br /&gt;        public void Update(string nome, DateTime data, string comentario, int ID)&lt;br /&gt;        {&lt;br /&gt;            // Regra de negocio: nome e data da imagem &lt;br /&gt;            // nao podem ser alterados pela interface!&lt;br /&gt;            DataSetLisier.ImageRow row = GetRowByID(ID);&lt;br /&gt;            if (row == null)&lt;br /&gt;                throw new OperationCanceledException("Imagem não cadastrada!");            &lt;br /&gt;            int linhas = DAO.Update(row.nome, row.data, comentario, ID);&lt;br /&gt;            if (linhas != 1)&lt;br /&gt;                throw new OperationCanceledException("Erro alterando imagem!");&lt;br /&gt;        }&lt;br /&gt;        [System.ComponentModel.DataObjectMethod(DataObjectMethodType.Update, false)]&lt;br /&gt;        public void Update(DataSetLisier.ImageRow row)&lt;br /&gt;        {&lt;br /&gt;            if (row == null)&lt;br /&gt;                throw new OperationCanceledException("A imagem não pode ser nula!");            &lt;br /&gt;            ValidaDados(row.nome, row.data, row.comentario);&lt;br /&gt;            int linhas = DAO.Update(row);&lt;br /&gt;            if (linhas != 1)&lt;br /&gt;                throw new OperationCanceledException("Erro alterando imagem!");&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;Vale resaltar novamente que a classe de serviço descrita acima deve ser encapsulada em um assembly (dll) a parte, sendo plenamente compatível com aplicações &lt;em&gt;Windows Forms&lt;/em&gt;, o que demonstra a separação em camadas. Desta, pode-se evoluir o &lt;em&gt;mock&lt;/em&gt; inicial para a pequena aplicação abaixo.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_BsjtVQuKI/AAAAAAAADOY/T3uzpMEBf10/s1600-h/uploader3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183762531823433890" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_BsjtVQuKI/AAAAAAAADOY/T3uzpMEBf10/s320/uploader3.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Onde novo delegate do botão "Enviar" é apresentado abaixo, onde fica ainda mais evidente a separação em camadas entre as lógicas de apresentação, negócios e persistência:&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;protected void btnEnviar_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;     new ManterImagesService().Upload(FileUploader1, txtComentario.Text);&lt;br /&gt;     ImageGridView.DataBind();     &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-581556725570437842?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/581556725570437842/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=581556725570437842' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/581556725570437842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/581556725570437842'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/aspnet-separando-o-upload-de-imagens-na.html' title='[ASP.NET] Componentizando o upload de imagens na camada de negócios'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbQe8y6ysuc/R_AlItVQuII/AAAAAAAADOI/yHm2LpLLLhQ/s72-c/uploader1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-6132131681270811020</id><published>2008-03-29T20:13:00.001-03:00</published><updated>2008-12-12T18:51:34.488-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>[ADO.NET] Estendendo ADO.NET: Parte 1- Projeto dos provedores de persistência.</title><content type='html'>Alguns dos aspectos criticados por alguns colegas na API ADO.NET seriam: (a) a dependência sintática do SQL e (b) a arquitetura orientada a dados no &lt;a href="http://msdn2.microsoft.com/en-us/library/aa581776.aspx"&gt;modelo de referência&lt;/a&gt; sugerido pela Microsoft para a camada de persistência. Uma vez que a dependência sintática do SQL é plenamente suprimida pela API &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt; do framework 3.5, pensei em escrever alguns artigos neste escopo de adaptação dos componentes da ADO.NET. O &lt;a href="http://msdn2.microsoft.com/en-us/library/aa581776.aspx"&gt;modelo de referência&lt;/a&gt; citado obtem grande produtividade pela modelagem visual do componente &lt;em&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/04y282hb(VS.80).aspx"&gt;DataSet “tipado”&lt;/a&gt;&lt;/em&gt;. No entanto, os objetos definidos no componente &lt;em&gt;DataSet&lt;/em&gt; para representação dos objetos de transferência (&lt;em&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.data.datatable(VS.71).aspx"&gt;DataTable&lt;/a&gt;&lt;/em&gt;) e serviços (&lt;em&gt;TableDataAdapter&lt;/em&gt;) são selados (&lt;em&gt;i.e. selead&lt;/em&gt;), não permitindo sua herança, ou mesmo composição de tipos por referência.&lt;br /&gt;&lt;br /&gt;Desta forma, apresentações alternativas e relatórios podem eventualmente exigir a definição de &lt;em&gt;Value Objects&lt;/em&gt; (VO) auxiliares para transporte vertical de dados à camada de apresentação. Tal estrutura condiciona fortemente as camadas superiores ao modelo de entidades, definindo um grande esforço de refatoração no caso da mudança das definições da base de dados, ou na extensão de relatórios.&lt;br /&gt;&lt;br /&gt;Neste escopo, um primeiro ponto de interessante seria a possibilidade da referência por &lt;em&gt;reflection/remoting&lt;/em&gt; aos &lt;em&gt;service factories&lt;/em&gt; de persistência, de forma tal que extensões em &lt;em&gt;assemblies&lt;/em&gt; distintos possam ser adaptados em tempo de execução. Tal &lt;em&gt;feature&lt;/em&gt; teria alto valor agregado em sistemas de alta disponibilidade com baixa resistência a mudança.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zbQe8y6ysuc/R_AMUNVQuDI/AAAAAAAADNg/ZH9K9wfx-rQ/s1600-h/arq1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183656712419194930" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/R_AMUNVQuDI/AAAAAAAADNg/ZH9K9wfx-rQ/s320/arq1.jpg" border="0" /&gt;&lt;/a&gt; A arquitetura proposta é apresentada na figura ao lado, onde o seu principal componente consiste da classe &lt;em&gt;DaoProvider&lt;/em&gt;, projetada conforme o design pattern &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.security.membershipprovider.aspx"&gt;provider&lt;/a&gt;. Tal classe possui a responsabilidade de gerenciar os &lt;em&gt;service factories&lt;/em&gt; concretos para os objetos de persistência.&lt;br /&gt;&lt;br /&gt;Para tanto, tal classe possui uma composição de objetos &lt;em&gt;DaoProviderSettings&lt;/em&gt; (estrutura que representa a configuração para um &lt;em&gt;service factory&lt;/em&gt; concreto dos objetos de persistência), onde estes objetos podem ser acessados de forma aleatória, adicionados na lista de provedores ou interpretados a partir de uma string de conexão fornecida.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_zbQe8y6ysuc/R_AQddVQuFI/AAAAAAAADNw/ww4CdkT0n48/s1600-h/arq2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183661269379496018" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_zbQe8y6ysuc/R_AQddVQuFI/AAAAAAAADNw/ww4CdkT0n48/s320/arq2.jpg" border="0" /&gt;&lt;/a&gt; A tabela ao lado apresenta descrição da interface da classe &lt;em&gt;DaoProviderSettings&lt;/em&gt; proposta, que consiste de uma extensão da classe &lt;em&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.configurationsection.aspx"&gt;System.Configurations.ConfigurationSection&lt;/a&gt;&lt;/em&gt;. A classe pai define a associação entre um identificador textual único (“&lt;em&gt;Name&lt;/em&gt;”), a string de conexão (“&lt;em&gt;ConnectionString&lt;/em&gt;”) e a classe do provedor de acesso ao banco de dados (“&lt;em&gt;ProviderName&lt;/em&gt;”), responsável por implementar a interface de tratamento das queries SQL sobre a string de conexão. Na classe estendida, proposta neste estudo, são adicionadas a existência de uma classe &lt;em&gt;proxy&lt;/em&gt; para o provider (“&lt;em&gt;ProxyName&lt;/em&gt;”), que implementa de forma concreta um mapeamento objeto relacional. Tal proxy pode ainda ser definido no contexto da aplicação ou em um assembly externo (DLL), neste caso, sendo referenciado pelo atributo “&lt;em&gt;ProxyAssemblyName&lt;/em&gt;”. Desta forma, a extensão provê uma interface consistente para atendimento do requisito de referência por &lt;em&gt;reflection&lt;/em&gt; aoa service factories de persistência.&lt;br /&gt;&lt;br /&gt;Os parâmetros dos provedores de persistência da plataforma proposta são definidos no contexto da aplicação pelos arquivos padrões de configuração das APIs da plataforma.NET. (arquivo &lt;em&gt;web.config&lt;/em&gt; em contexto ASP.NET e &lt;em&gt;app.config&lt;/em&gt; em contexto Windows Forms). A listagem abaixo ilustra a marcação do arquivo &lt;em&gt;web.config&lt;/em&gt; de uma aplicação web implementando o modelo proposto. Observa-se a sintaxe padrão para a definição de strings de conexão sobre o nó &lt;connectionstrings&gt;. A string de conexão de nome “&lt;em&gt;Prevalente (default)&lt;/em&gt;” não apresenta um atributo “&lt;em&gt;providerName&lt;/em&gt;” conforme definido no padrão ADO.NET. Neste caso não é necessário, pois será empregado um &lt;em&gt;proxy&lt;/em&gt; (provedor concreto de serviços de persistência) da plataforma proposta. As marcações relativas aos atributos “&lt;em&gt;ProxyName&lt;/em&gt;” e “&lt;em&gt;ProxyAssemblyName&lt;/em&gt;” são definidos sobre o atributo “&lt;em&gt;ConnectionString&lt;/em&gt;”. A marcação “&lt;em&gt;Default&lt;/em&gt;” indica qual o provedor corrente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&amp;lt;connectionstrings&amp;gt;&lt;br /&gt;     &amp;lt;add connectionstring="ProxyName=net.jorgealbuquerque.pedweb.Dao.ConcreateFactories.XMLDaoFactoryProxy; Data Source=data.xml; ProxyAssemblyName=prevalentDao.dll; Default; " name="Prevalente (default)" providername=""&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;add connectionstring="Integrated Security=SSPI; Persist Security Info=False;Initial Catalog=pedweb; User ID=sa; password=; Data Source=.\SQLSERVER;" name="Microsoft SQL Server 2000" providername="System.Data.SqlClient"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/connectionstrings&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Desta forma, a classe &lt;em&gt;DaoProvider&lt;/em&gt;, realiza a leitura dos arquivos de configuração das APIs da plataforma .NET, interpreta seus parâmetros e mantêm referências aos seus provedores, que podem ser livremente criados, alterados ou removidos em tempo de execução e instanciados de forma estática.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_AXetVQuGI/AAAAAAAADN4/Ni-_IVlESjM/s1600-h/arq3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183668987435726946" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R_AXetVQuGI/AAAAAAAADN4/Ni-_IVlESjM/s320/arq3.jpg" border="0" /&gt;&lt;/a&gt;A Tabela ao lado apresenta uma descrição resumida da interface da classe &lt;em&gt;DaoProvider&lt;/em&gt;. A interpretação dos arquivos de configuração o ocorre durante a chamada do método &lt;em&gt;GetInstance()&lt;/em&gt;. O carregamento somente é definido se a própria classe não contiver uma instância desta (design pattern singleton). Neste contexto, caso não exista uma instância, o método &lt;em&gt;GetInstance() &lt;/em&gt;chama o método privado &lt;em&gt;FillFromConfigManager()&lt;/em&gt; que, por sua vez, delega a leitura dos arquivos de configuração a classe nativa da plataforma .NET &lt;em&gt;System.Configuration.ConfigurationManager&lt;/em&gt; (propriedade &lt;em&gt;ConnectionStrings&lt;/em&gt;). Uma vez obtidas as strings de conexão (definidas nos arquivos &lt;em&gt;web.config&lt;/em&gt; ou &lt;em&gt;app.config&lt;/em&gt;), a responsabilidade da interpretação das mesmas é delegada a classe &lt;em&gt;DaoProviderSettingsParse&lt;/em&gt; (método &lt;em&gt;Parse&lt;/em&gt;), retornando os objetos &lt;em&gt;DaoProviderSettings&lt;/em&gt;, que são adicionados a lista de provedores existentes (método &lt;em&gt;Add&lt;/em&gt;). A seqüência de mensagens descritas é representada em notação UML na figura abaixo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_zbQe8y6ysuc/R_AXnNVQuHI/AAAAAAAADOA/WM6T2uZ5WJc/s1600-h/arq4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5183669133464615026" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_zbQe8y6ysuc/R_AXnNVQuHI/AAAAAAAADOA/WM6T2uZ5WJc/s320/arq4.jpg" border="0" /&gt;&lt;/a&gt; Nos próximos posts pretendo implementar estas primeiras classes de serviço e a seguir projetar o serviço de prevalência propriamente dito...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-6132131681270811020?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/6132131681270811020/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=6132131681270811020' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6132131681270811020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/6132131681270811020'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/adonet-estendendo-adonet-parte-1.html' title='[ADO.NET] Estendendo ADO.NET: Parte 1- Projeto dos provedores de persistência.'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zbQe8y6ysuc/R_AMUNVQuDI/AAAAAAAADNg/ZH9K9wfx-rQ/s72-c/arq1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-4063916359134834373</id><published>2008-03-23T20:05:00.007-03:00</published><updated>2008-05-02T02:17:16.460-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pessoal'/><title type='text'>[Pessoal] Comer Sozinho</title><content type='html'>Minha mulher encontrou essa pérola no google e me mostrou! Eu não me lembrava! Foi escrito as 3:46 am num site &lt;a href="http://www.poemas-de-amor.net/comer_sozinho"&gt;obscuro&lt;/a&gt;. Claro que foi antes de efetivamente ficarmos juntos... Testemunho de uma época em que eu não estava satisfeito com a minha vida, e antes de mais nada por não estar com ela! Te amo, minha loira!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Adoro comer só&lt;br /&gt;Máxima liberdade do egoísmo&lt;br /&gt;Comer o que quiser... Quanto quiser... Como quiser...&lt;br /&gt;O cardápio é seu, assim como o tempo&lt;br /&gt;Um mini-mundo ao seu controle&lt;br /&gt;E, se você voltar mais de uma vez&lt;br /&gt;Juro que param de olhar...&lt;br /&gt;&lt;br /&gt;"Aceita o último pedaço?"&lt;br /&gt;O outro sempre aceita&lt;br /&gt;Mesmo quando você queria&lt;br /&gt;A voz de sua mãe espreita&lt;br /&gt;&lt;br /&gt;Colegas de trabalho são os piores&lt;br /&gt;Vinte pessoas num mesa (Sempre uma churascaria)&lt;br /&gt;Jung diz que aproxima o grupo&lt;br /&gt;Max diz que mistura a conta&lt;br /&gt;&lt;br /&gt;Ao invés, almoço sushi&lt;br /&gt;Self-service no supermecado&lt;br /&gt;Badejinha de isopor, tudo em 20 segundos&lt;br /&gt;Emagrece e não enche o saco&lt;br /&gt;&lt;br /&gt;Odeio lavar pratos&lt;br /&gt;Sempre janto na tupperware&lt;br /&gt;Abro a tampa,&lt;br /&gt;ligo o microondas&lt;br /&gt;e pego um garfo.&lt;br /&gt;Sempre na frente da TV&lt;br /&gt;com 2 litros coca-cola (recentemente coca-zero)&lt;br /&gt;E sem copos&lt;br /&gt;&lt;br /&gt;A pizza, então, é perfeita&lt;br /&gt;Sempre sobram ao menos 4 pedaços&lt;br /&gt;Que ficam muito melhores frios&lt;br /&gt;Perfeitos para o café&lt;br /&gt;Perfeitos na noite seguinte&lt;br /&gt;&lt;br /&gt;Mas o destino é irreverente&lt;br /&gt;Estou em vias de casar&lt;br /&gt;E adoro cozinhar para ela&lt;br /&gt;Assisto ao Oliver (o ingles) e ao Olivier (o frances)&lt;br /&gt;&lt;br /&gt;Me divirto muito preparando,&lt;br /&gt;comendo a dois&lt;br /&gt;e até lavando...&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-4063916359134834373?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/4063916359134834373/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=4063916359134834373' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4063916359134834373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/4063916359134834373'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/pessoal-comer-sozinho.html' title='[Pessoal] Comer Sozinho'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-5158021203581843551</id><published>2008-03-07T12:20:00.010-03:00</published><updated>2008-12-12T18:51:34.614-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>[Livro] Muito longe de casa</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_zbQe8y6ysuc/R9DykjV0IGI/AAAAAAAADMU/RG4Nrq46zls/s1600-h/9788500021213.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5174902681624649826" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_zbQe8y6ysuc/R9DykjV0IGI/AAAAAAAADMU/RG4Nrq46zls/s320/9788500021213.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Na contra-capa deste livro tem uma crítica da Newsweek: "É necessário ler apenas 20 páginas de '&lt;a href="http://www.americanas.com.br/AcomProd/1472/682854"&gt;Muito Longe de Casa&lt;/a&gt;' para afirmar que, se fosse ficção, o jovem autor deveria ganhar um prêmio Nobel". Parece uma chamada exagerada. Mas não é!&lt;br /&gt;&lt;br /&gt;Essa é a auto-biografia de Ishmael Beah, contanto sua infância e adolescência em &lt;a href="http://pt.wikipedia.org/wiki/Serra_Leoa"&gt;Serra Leoa&lt;/a&gt; em meio a uma guerra civil. O menino perde a família, passa a fugir para sobreviver ao conflito até ser recrutado como soldado pelo exercíto. A linguagem é simples, direta e tocantemente honesta. O livro foge a todos os lugares comuns. Ishmael não descreve em detalhes as atrocidades que comete como soldado, apenas em flashes (evidentemente pela vergonha e por querer esquecer), preferindo se ater a fuga e ao seu processo de recuperação. Mesmo assim, os &lt;em&gt;flashs&lt;/em&gt; e os relatos de sobrevivência dramática deixam claro o tipo de violência praticada no interior de Serra Leoa de 1991 a 2002. A tática geral consiste em recrutar crianças, e tomar suprimentos de pequenas aldeiras para sustentar continuo conflito entre exército oficial e rebeldes (RUF). O detalhe é que em vez de saquear o necessário, a orientação é sempre torturar e exterminar com crueldade a todos os habitantes da aldeia (aparentemente na lógica corrente, massacrar com crueldade por nada demonstra força, sendo uma postura desejável). Não é preciso imaginar o custo humano dessa política em um povo já miserável e sem recursos.&lt;br /&gt;&lt;br /&gt;Um detalhe que me chamou atenção é a discrepância entre a longevidade das pessoas e das armas. Os meninos soldados são extremamente descartáveis, mas as armas são sempre capturadas e postas novamente em circulação, nunca sendo destruídas.&lt;br /&gt;&lt;br /&gt;Coincidência ao não, assim que acabei o livro liguei a TV e estava começando naquele instante o &lt;a href="http://pt.wikipedia.org/wiki/Serra_Leoa"&gt;Senhor da Guerra&lt;/a&gt; no telecine!!! Embora o filme nem de longe sonhe em arranhar a profundidade do livro, completa o cenário discutindo o lado de quem ganha com tudo isso (apresenta a vida de um traficante de armas para Serra Leoa nesta mesma guerra civil). Ver o filme logo após ler o livro foi muito forte, porque remetia constantemente aos episódios do último, tornando-os ainda mais sinistros. O conflito de Serra Leoa ainda inspirou o filme &lt;a href="http://www.imdb.com/title/tt0450259/"&gt;Diamante de Sangue&lt;/a&gt;, que também é um conto da carochinha perto do livro. Acho que o filme que melhor captura a atmosfera desse livro (e do problema) é o &lt;a href="http://www.imdb.com/title/tt0395169/"&gt;Hotel Ruanda&lt;/a&gt;, embora não trate da questão das crianças propriamente dita (e também seja mais ameno). Em comum, o filme e o livro ilustram bem a perversidade humana, e que na falta de interesse, ninguem interfere na matança (em verdade, o presidente eleito somente tomou posse em Serra Leoa com a ajuda do exércido do Congo, aprovado pela ONU, mas essa ajuda demorou 10 anos).&lt;br /&gt;&lt;br /&gt;Muito provavelmente, as únicas publicações comparáveis que tenha entrado em contado foram as &lt;em&gt;&lt;a href="http://pt.wikipedia.org/wiki/Romance_gr%C3%A1fico"&gt;graphic novels&lt;/a&gt;&lt;/em&gt; &lt;a href="http://www.conradeditora.com.br/index.php?option=com_content&amp;amp;task=view&amp;amp;id=30"&gt;Gen&lt;/a&gt; (talvez a melhor de todos os tempos) e &lt;a href="http://pt.wikipedia.org/wiki/Maus"&gt;Maus&lt;/a&gt;, respectivamente, auto-biografias de um sobrevivente de Hiroshima e do Holocausto. Todos são impedíveis e as pessoas deveriam ler esses livros em alguma ocasição.&lt;br /&gt;&lt;br /&gt;Para se pensar! E como disse Ghandi: "a civilização é uma boa idéia".&lt;br /&gt;&lt;br /&gt;Apenas no enigma do macaco eu não vi graça: percebi a solução imediatamente!! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-5158021203581843551?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/5158021203581843551/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=5158021203581843551' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5158021203581843551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/5158021203581843551'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/referncia-livro-muito-longe-de-casa.html' title='[Livro] Muito longe de casa'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zbQe8y6ysuc/R9DykjV0IGI/AAAAAAAADMU/RG4Nrq46zls/s72-c/9788500021213.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-1969680481287842056</id><published>2008-03-06T23:41:00.006-03:00</published><updated>2008-04-26T16:44:21.429-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>[Java] Desenvolvimento declarativo orientado a anotações sobre JSF/Spring/JPA</title><content type='html'>A arquitetura definida sobre a pilha JSF/Spring/JPA apresenta um altenativa interessante para gestão da configuração de aplicações web, permitindo produtividade pelo uso extensivo de programação declarativa, desacoplamento entre camadas e independencia da persistencia/visualização. Neste contexto, é proposto um projeto "mock", demonstrando a integração JSF/Spring/JPA fortemente orientada a "annotations". A proposta consiste em somente definir por xml os elementos basicos da infra-estrutura descrita tais como datasource, entityManagerFactory e transactionManager (utiliza-se MyFaces 1.2.2 com Facelets, Spring 2.5 e JPA sobre Hibernate).&lt;br /&gt;&lt;br /&gt;A aplicação consiste de um "Xavecometro", destinado a cadasto de "xavecos" (contatos do sexo oposto). Neste contexto, existem duas categorias de "xavecos": "tchutchucas" e "bagangas". (As colegas nao se ofendam! É uma grande piada!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe Xaveco&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.entidades;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;@Entity&lt;br /&gt;public class Xaveco implements Serializable{&lt;br /&gt;&lt;br /&gt;    @Id&lt;br /&gt;    @GeneratedValue(strategy = GenerationType.AUTO)&lt;br /&gt;    private Long id;&lt;br /&gt;&lt;br /&gt;    @Basic&lt;br /&gt;    private String nome;&lt;br /&gt;&lt;br /&gt;    @Basic&lt;br /&gt;    private Integer telefone;&lt;br /&gt;&lt;br /&gt;    @Enumerated&lt;br /&gt;    private Categoria categoria;&lt;br /&gt;&lt;br /&gt;    public Xaveco() {}&lt;br /&gt;&lt;br /&gt;    public Xaveco(String nome, Integer telefone) {&lt;br /&gt;        this.nome = nome;&lt;br /&gt;        this.telefone = telefone;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Long getId() {&lt;br /&gt;        return id;&lt;br /&gt;    }&lt;br /&gt;    public void setId(Long id) {&lt;br /&gt;        this.id = id;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Integer getTelefone() {&lt;br /&gt;        return telefone;&lt;br /&gt;    }&lt;br /&gt;    public void setTelefone(Integer telefone) {&lt;br /&gt;        this.telefone = telefone;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getNome() {&lt;br /&gt;        return nome;&lt;br /&gt;    }&lt;br /&gt;    public void setNome(String nome) {&lt;br /&gt;        this.nome = nome;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Categoria getCategoria() {&lt;br /&gt;        return categoria;&lt;br /&gt;    }&lt;br /&gt;    public void setCategoria(Categoria categoria) {&lt;br /&gt;        this.categoria = categoria;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para a DAO, é definida uma interface generica para os operadores CRUD (IDAO)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Interface IDAO&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.dao;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;public interface IDAO {&lt;br /&gt;&lt;br /&gt;    T getById(ID id);&lt;br /&gt;    void persist(T entity);&lt;br /&gt;    void update(T entity);&lt;br /&gt;    void delete(T entity);&lt;br /&gt;    List getAll();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Seguindo o contrato IDAO, apresenta-se a implementação com JPA. Note que como a entityManager é instanciada. Ao inves de exterder a JPATemplate com a anotação @PersistenceContext, a entityManager é resolvida pelo Spring.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe AbstractJPADAO&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.dao;&lt;br /&gt;&lt;br /&gt;//imports are not displayed&lt;br /&gt;&lt;br /&gt;public abstract class AbstractJPADAO implements IDAO {&lt;br /&gt;&lt;br /&gt;         private Class persistentClass;&lt;br /&gt;&lt;br /&gt;         protected EntityManager entityManager;&lt;br /&gt;&lt;br /&gt;         @SuppressWarnings("unchecked")&lt;br /&gt;         public AbstractJPADAO() {&lt;br /&gt;            this.persistentClass = (Class) ((ParameterizedType) getClass().&lt;br /&gt;                   getGenericSuperclass()).getActualTypeArguments()[0];&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        @PersistenceContext&lt;br /&gt;        public void setEntityManager(EntityManager entityManager) {&lt;br /&gt;            this.entityManager = entityManager;&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        public Class getPersistentClass() {&lt;br /&gt;            return persistentClass;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public T getById(ID id) {&lt;br /&gt;           return entityManager.find(persistentClass, id);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void persist(T entity) {&lt;br /&gt;            entityManager.persist(entity);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void update(T entity) {&lt;br /&gt;            entityManager.merge(entity);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void delete(T entity) {&lt;br /&gt;            entityManager.remove(entity);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        @SuppressWarnings("unchecked")&lt;br /&gt;        public List loadAll() {&lt;br /&gt;            return entityManager.createQuery("Select t from " +&lt;br /&gt;                persistentClass.getSimpleName() + " t").getResultList();&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A interface IXavecoDAO apresenta as especializacoes (operações especificas no database) sobre a IDAO&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Interface IXavecoDAO&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.dao;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;public interface IXavecoDAO extends IDAO{&lt;br /&gt;&lt;br /&gt;    public List getByNome(String nome);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finalmente, a classe XavecoDAO recebe a anotação @Repository, desta forma o Spring pode gerenciar seu comportamento, também permitidindo ExceptionTranslation (PersistenceAnnotationBeanPostProcessor deve ser configurado no applicationContext.xml).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;classe XavecoDAO&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.dao;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;@Repository&lt;br /&gt;public class XavecoDAO extends AbstractJPADAO implements IXavecoDAO{&lt;br /&gt;&lt;br /&gt;    @SuppressWarnings("unchecked")&lt;br /&gt;    public List getByNome(String nome) {&lt;br /&gt;        Query query = entityManager.createQuery("Select m from Xaveco m where m.nome = ?1");&lt;br /&gt;        query.setParameter(1, nome);&lt;br /&gt;        return query.getResultList();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A camada de negócios apresente a ServiceBean (XavecoService) e sua interface (IXavecoService). Note a anotação @Transactional, desta forma as transações tambem são configuradas por anotações (É necessária a marcação &lt;?xml:namespace prefix = tx /&gt;&lt;tx:annotation-driven&gt;&lt;/tx:annotation-driven&gt;em applicationContext.xml)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Interface IXavecoService&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.service;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;public interface IXavecoService {&lt;br /&gt;&lt;br /&gt;    @Transactional&lt;br /&gt;    public void createNew(Xaveco xaveco);&lt;br /&gt;    public List getAll();&lt;br /&gt;    public List getByNome(String nome);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Na classe Classe XavecoService, a anotação @Service transforma a classe em uma spring bean, e a classe XavecoDAO é injetada por referência utilizando @AutoWired&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe XavecoService&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.service;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;@Service&lt;br /&gt;public class XavecoService implements IXavecoService{&lt;br /&gt;&lt;br /&gt;    private XavecoDAO xavecoDAO;&lt;br /&gt;&lt;br /&gt;    @Autowired&lt;br /&gt;    public XavecoService(XavecoDAO xavecoDAO) {&lt;br /&gt;        this.xavecoDAO = xavecoDAO;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void createNew(Xaveco xaveco) {&lt;br /&gt;        xavecoDAO.persist(xaveco);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List getAll() {&lt;br /&gt;        return xavecoDAO.getAll();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public List getByNome(String nome) {&lt;br /&gt;        return xavecoDAO.getByNome(nome);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finalmente, Beans JSF e Facelets são utilizados para criacao de novos xavecos no sistema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;createXaveco.xhtml&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A classe CreateXaveco tem a responsabildiade de manipular a página acima, sendo gerenciado pelo Spring. A anotação @Component refencia a spring bean com o nome "createXaveco". Nas views JSF, este nome é resolvido com expressões do tipo:&lt;br /&gt;#{createXaveco.Xaveco.nome}. A anotação @Scope é utilizada para definir o request, separando escopos customizados.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe CreateXaveco&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.view;&lt;br /&gt;&lt;br /&gt;//imports not displayed&lt;br /&gt;&lt;br /&gt;@Component("createXaveco")&lt;br /&gt;@Scope("request")&lt;br /&gt;public class CreateXaveco implements Serializable{&lt;br /&gt;&lt;br /&gt;    private XavecoService xavecoService;&lt;br /&gt;    private Xaveco xaveco = new Xaveco();&lt;br /&gt;&lt;br /&gt;    @Autowired&lt;br /&gt;    public CreateXaveco(XavecoService xavecoService) {&lt;br /&gt;        this.xavecoService = xavecoService;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Xaveco getXaveco() {&lt;br /&gt;        return xaveco;&lt;br /&gt;    }&lt;br /&gt;    public void setXaveco(Xaveco xaveco) {&lt;br /&gt;        this.xaveco = xaveco;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String save() {&lt;br /&gt;        xavecoService.createNew(xaveco);&lt;br /&gt;        FacesMessage facesMessage = new FacesMessage(&lt;br /&gt;            FacesMessage.SEVERITY_INFO, "O Xaveco foi salvo com sucesso!",&lt;br /&gt;            "OK");&lt;br /&gt;        FacesContext.getCurrentInstance().addMessage(null, facesMessage);&lt;br /&gt;        xaveco = new Xaveco();&lt;br /&gt;        return null;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Arquivos XML&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Arquivo applicationContext.xml&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notas sobre o spring config;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;?xml:namespace prefix = context /&gt;&lt;context:component-scan package="”net.jorgealbuquerque.tutorial.xavecometro”"&gt;&lt;/context:component-scan&gt;habilita a busca anotações nos subpacotes de xavecometro.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tx:annotation-driven manager="”txManager”/"&gt;habilita a gestao de transacoes orientada a annotations&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/tx:annotation-driven&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Arquivo persistence.xml&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;net.jorgealbuquerque.tutorial.xavecometro.entidades&lt;br /&gt;&lt;/pre&gt;&lt;hr /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Arquivo faces-config.xml&lt;br /&gt;&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;com.sun.facelets.FaceletViewHandler&lt;br /&gt;org.springframework.web.jsf.DelegatingVariableResolver&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Arquivo web.xml&lt;br /&gt;&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;javax.faces.STATE_SAVING_METHOD&lt;br /&gt;client&lt;br /&gt;&lt;br /&gt;javax.faces.DEFAULT_SUFFIX&lt;br /&gt;.xhtml&lt;br /&gt;&lt;br /&gt;contextConfigLocation&lt;br /&gt;classpath:applicationContext.xml&lt;br /&gt;&lt;br /&gt;    org.springframework.web.context.ContextLoaderListener&lt;br /&gt;    org.springframework.web.context.request.RequestContextListener&lt;br /&gt;&lt;br /&gt;JPA Filter&lt;br /&gt;org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter&lt;br /&gt;&lt;br /&gt;JPA Filter&lt;br /&gt;*.jsf&lt;br /&gt;&lt;br /&gt;Faces Servlet&lt;br /&gt;javax.faces.webapp.FacesServlet&lt;br /&gt;1&lt;br /&gt;&lt;br /&gt;Faces Servlet&lt;br /&gt;*.jsf&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adicionalmente, foi incluida uma classe de teste de integraçào para a XavecoDAO (TDD).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;font-size:100%;color:black;"&gt;&lt;b&gt;Classe XavecoDAOTest&lt;br /&gt;&lt;/b&gt;&lt;pre style="BACKGROUND-COLOR: #eeeeee"&gt;&lt;br /&gt;package net.jorgealbuquerque.tutorial.xavecometro.dao;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import org.junit.Test;&lt;br /&gt;import org.junit.runner.RunWith;&lt;br /&gt;import org.springframework.beans.factory.annotation.Autowired;&lt;br /&gt;import org.springframework.test.context.ContextConfiguration;&lt;br /&gt;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;&lt;br /&gt;import org.springframework.test.context.transaction.TransactionConfiguration;&lt;br /&gt;import org.springframework.transaction.annotation.Transactional;&lt;br /&gt;&lt;br /&gt;import net.jorgealbuquerque.tutorial.xavecometro.entidades;&lt;br /&gt;&lt;br /&gt;import static org.junit.Assert.*;&lt;br /&gt;&lt;br /&gt;@RunWith(SpringJUnit4ClassRunner.class)&lt;br /&gt;@Transactional&lt;br /&gt;@TransactionConfiguration(transactionManager="txManager")&lt;br /&gt;@ContextConfiguration(locations={"/applicationContext.xml"})&lt;br /&gt;public class XavecoDAOTest{&lt;br /&gt;&lt;br /&gt;    private XavecoDAO xavecoDAO;&lt;br /&gt;&lt;br /&gt;    @Autowired&lt;br /&gt;    public void setRepository(XavecoDAO xavecoDAO) {&lt;br /&gt;        this.xavecoDAO = xavecoDAO;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Test&lt;br /&gt;    public void shouldPersistNewXaveco() {&lt;br /&gt;        Xaveco xaveco = new Xaveco();&lt;br /&gt;        xaveco.setNome("Robertinha Fireball");&lt;br /&gt;        xaveco.setTelefone(new Integer(2342343));&lt;br /&gt;        xavecoDAO.persist(xaveco);&lt;br /&gt;        assertNotNull(xaveco.getId());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Test&lt;br /&gt;    public void shouldFindBynome() {&lt;br /&gt;        Xaveco xaveco = new Xaveco();&lt;br /&gt;        xaveco.setNome("Renatinha Raio Laser");&lt;br /&gt;        xaveco.setTelefone(new Integer(7452354));&lt;br /&gt;        xavecoDAO.persist(xaveco);&lt;br /&gt;        assertNotNull(xaveco.getId());&lt;br /&gt;        List results = xavecoDAO.findBynome("Renatinha Raio Laser");&lt;br /&gt;        assertEquals(1, results.size());&lt;br /&gt;        assertEquals("Renatinha Raio Laser", results.get(0).getNome());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Test&lt;br /&gt;    public void shouldReadAllXavecos() {&lt;br /&gt;        Xaveco xaveco1 = new Xaveco();&lt;br /&gt;        xaveco1.setNome("Pathy Tissunami");&lt;br /&gt;        xaveco1.setTelefone(new Integer(86452343));&lt;br /&gt;        Xaveco xaveco2 = new Xaveco();&lt;br /&gt;        xaveco2.setNome("Rafinha Quebra-Barraco");&lt;br /&gt;        xaveco2.setTelefone(new Integer(6734565));&lt;br /&gt;        xavecoDAO.persist(xaveco1);&lt;br /&gt;        assertNotNull(xaveco1.getId());&lt;br /&gt;&lt;br /&gt;        xavecoDAO.persist(xaveco2);&lt;br /&gt;        assertNotNull(xaveco2.getId());&lt;br /&gt;        List results = xavecoDAO.loadAll();&lt;br /&gt;        assertEquals(2, results.size());&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Desta forma, pelo estudo proposto, concluí-se que a orientação a anotações para a pilha JSF/Spring/JPA permitinde, delegando a responsabilidade de ligação das camadas ao Spring.&lt;br /&gt;&lt;tx:annotation-driven manager="”txManager”/"&gt;&lt;/tx:annotation-driven&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-1969680481287842056?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/1969680481287842056/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=1969680481287842056' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1969680481287842056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/1969680481287842056'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/referencial-java-desenvolvimento.html' title='[Java] Desenvolvimento declarativo orientado a anotações sobre JSF/Spring/JPA'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7223282403168543039.post-868624725983786169</id><published>2008-03-04T23:17:00.006-03:00</published><updated>2008-05-02T01:51:06.431-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>[.NET] Videos ASP.NET 3.5</title><content type='html'>Como parte integrante do lançamento da IDE VS 2008, a API ASP.NET 3.5 integra nativamente Ajax e novos componentes de GUI e processamento de dados. Vale a pena conferir os video-tutoriais em &lt;a href="http://asp.net/learn/3.5-videos/"&gt;http://asp.net/learn/3.5-videos/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7223282403168543039-868624725983786169?l=aspienet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aspienet.blogspot.com/feeds/868624725983786169/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7223282403168543039&amp;postID=868624725983786169' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/868624725983786169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7223282403168543039/posts/default/868624725983786169'/><link rel='alternate' type='text/html' href='http://aspienet.blogspot.com/2008/03/referencia-aspnet-videos-aspnet-35.html' title='[.NET] Videos ASP.NET 3.5'/><author><name>Jorge Albuquerque</name><uri>http://www.blogger.com/profile/03652309002069310553</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp1.blogger.com/_zbQe8y6ysuc/R8r3tNYR32I/AAAAAAAADKc/DZp0bhsAQQc/S220/f45.jpg'/></author><thr:total>0</thr:total></entry></feed>
