<?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-3195024526398228329</id><updated>2011-07-08T01:52:29.025-03:00</updated><title type='text'>João Ricardo Kucera</title><subtitle type='html'>XNA, ASP.NET, C# and dot dot dot NET</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-4049534437590392783</id><published>2010-06-11T00:31:00.009-03:00</published><updated>2010-06-11T17:16:47.882-03:00</updated><title type='text'>void Opera Magus - Download</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Para quem quiser, aqui está o link no sendspace para baixar o game "Opera Magus" e jogar a vontade: &lt;a href='http://www.sendspace.com/file/ittut0'&gt;DOWNLOAD AQUI!&lt;/a&gt; O formato está ".ccgame".&lt;br /&gt;&lt;br /&gt;Mas, para quem quiser baixar em .rar, está aqui no SkyDrive: &lt;a href='http://cid-1768b3db9f4a085b.office.live.com/self.aspx/.Public/OperaMagus.part1.rar'&gt;PARTE 1&lt;/a&gt; e &lt;a href='http://cid-1768b3db9f4a085b.office.live.com/self.aspx/.Public/OperaMagus.part2.rar'&gt;PARTE 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pré-requisito: Ter o XNA Framework instalado!&lt;br /&gt;&lt;br /&gt;Quem gostar e quiser jogar, por favor preencher o relatório de pesquisa e remeter para o endereço de email indicado no arquivo.&lt;br /&gt;&lt;br /&gt;Fico grato com a ajuda de todos que quiserem jogar e ainda mais se puderem me retornar a pesquisa!&lt;br /&gt;&lt;br /&gt;Obs: O arquivo tem 70Mb, onde 60Mb são com as músicas do game! Quem quiser uma versão mais leve é só entrar em contato.&lt;br /&gt;&lt;br /&gt;[]´s&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-4049534437590392783?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/4049534437590392783/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4049534437590392783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4049534437590392783'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void.html' title='void Opera Magus - Download'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-7267802215045716644</id><published>2010-06-10T15:16:00.007-03:00</published><updated>2010-06-10T15:43:03.411-03:00</updated><title type='text'>void Opera Magus - Imagens</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Imagens promocionais?! ;)))&lt;br /&gt;Me deram a idéia que postar imagens é mais atrativo aos olhos interessados e curiosos!&lt;br /&gt;Lá vão duas...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_loqDGaBoraQ/TBEvKrnkFaI/AAAAAAAAABc/q7rjgSvgIIs/s1600/1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_loqDGaBoraQ/TBEvKrnkFaI/AAAAAAAAABc/q7rjgSvgIIs/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5481214082040468898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_loqDGaBoraQ/TBEx3OwTwPI/AAAAAAAAABk/6FA8YFWQwrs/s1600/2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_loqDGaBoraQ/TBEx3OwTwPI/AAAAAAAAABk/6FA8YFWQwrs/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5481217046409887986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-7267802215045716644?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/7267802215045716644/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-primieras-imagens-do-game.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/7267802215045716644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/7267802215045716644'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-primieras-imagens-do-game.html' title='void Opera Magus - Imagens'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_loqDGaBoraQ/TBEvKrnkFaI/AAAAAAAAABc/q7rjgSvgIIs/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-749115122338984676</id><published>2010-06-10T15:10:00.003-03:00</published><updated>2010-06-10T15:43:22.258-03:00</updated><title type='text'>void Opera Magus - Vídeo</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-17dcdc0af430d87" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt1.googlevideo.com/videoplayback?id%3D017dcdc0af430d87%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329887523%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D84603F2DA6153033793A29BCA6E25CB864F5F353.62BF79B48D12719EDCBE3CBF5F1C002F2B39729A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D17dcdc0af430d87%26offsetms%3D5000%26itag%3Dw160%26sigh%3DYIEe-G4HdPJmgUQOpuZ3CJ6Byuo&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt1.googlevideo.com/videoplayback?id%3D017dcdc0af430d87%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329887523%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D84603F2DA6153033793A29BCA6E25CB864F5F353.62BF79B48D12719EDCBE3CBF5F1C002F2B39729A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D17dcdc0af430d87%26offsetms%3D5000%26itag%3Dw160%26sigh%3DYIEe-G4HdPJmgUQOpuZ3CJ6Byuo&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-749115122338984676?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/749115122338984676/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-opera-magus-video.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/749115122338984676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/749115122338984676'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-opera-magus-video.html' title='void Opera Magus - Vídeo'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-4220671450672178995</id><published>2010-06-09T18:19:00.004-03:00</published><updated>2010-06-09T18:30:25.073-03:00</updated><title type='text'>void Opera Magus()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;TCC finalizado...&lt;br /&gt;&lt;br /&gt;Instalador pronto... e em fase de testes!&lt;br /&gt;Alguns amigos testando! Aguradando o relatório de satisfação dos mesmos!&lt;br /&gt;&lt;br /&gt;Depois de muito suor, a certeza é que valeu a pena.&lt;br /&gt;O lucro foi: aprendi XNA, evolui no C# e na orientação a objetos e me proporcionei mais um desafio! Sensacional!&lt;br /&gt;&lt;br /&gt;O vídeo com o início do game está aqui: &lt;a href="http://www.youtube.com/watch?v=5eB9C3hV0-U" target="_blank"&gt;OPERA MAGUS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em um futuro muito próximo postarei o game para download! Ufaaaaaa!&lt;br /&gt;&lt;br /&gt;[]´s&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-4220671450672178995?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/4220671450672178995/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-opera-magus.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4220671450672178995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4220671450672178995'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2010/06/void-opera-magus.html' title='void Opera Magus()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-5552562306997036904</id><published>2009-12-18T15:28:00.034-02:00</published><updated>2010-06-11T01:24:55.834-03:00</updated><title type='text'>void Web.config(Autorização, Autenticação)</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Autorização e Autenticação de usuários é um assunto de extrema importância quando falamos de um sistema, independente de plataforma e linguagem de programação.&lt;br /&gt;&lt;br /&gt;Para aplicações web feitas em .NET. temos o recurso do web.config, que nada mais é que um arquivo XML protegido onde podemos definir as mais variadas assertivas, validações e permissões para desenvolvimento e segurança.&lt;br /&gt;&lt;br /&gt;Por exemplo, quando temos todo o nosso sistema protegido por login e senha de usuário, o qual espera um autenticação para uso, podemos simplesmente definir no web.config, dentro da tag "system.web", o seguinte:&lt;br /&gt;&lt;br /&gt;[Autenticação via Forms]&lt;br /&gt;&lt;div  style="color:#ffcc00;"&gt;-&gt;authentication mode="Forms"&lt;br /&gt;  &lt;span style="margin-left: 20px;"&gt;-&gt;forms name=".ASPXFORMSAUTH" defaulturl="Default.aspx" loginurl="Login.aspx"&lt;/span&gt;&lt;br /&gt;  &lt;span style="margin-left: 20px;"&gt;-&gt;/forms&lt;/span&gt;&lt;br /&gt;-&gt;/authentication&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1. Por padrão os parâmetros defaultUrl já é Default.aspx e loginUrl já é Login.aspx, assim não é  preciso criar esta tag "forms".&lt;br /&gt;2. Também por padrão o FormsAuthentication.FormsCookieName (parâmetro "name" é igual a .ASPXFORMSAUTH)&lt;br /&gt;3. As 3 propriedades definidas dentro da tag "forms" são utilizadas quando se quer criar um outro usuário de autenticação (que é desnecessário), pois por padrão é o do exemplo; ou, quando o redirect do login não deve ir para o padrão Default.aspx, mas sim para outra página qualquer; ou, quando a página de login não se chamará Login.aspx, mas sim outro nome qualquer.&lt;br /&gt;&lt;br /&gt;[Autorização para Usuários Autenticados]&lt;br /&gt;&lt;div  style="color:#ffcc00;"&gt;-&gt;authorization&lt;br /&gt;&lt;span style="margin-left: 20px;"&gt;-&gt;deny users="?"&lt;/span&gt;&lt;br /&gt;&lt;span style="margin-left: 20px;"&gt;-&gt;/deny&lt;/span&gt;&lt;br /&gt;-&gt;/authorization&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1. Aqui estou dizendo que minha aplicação está bloqueada para usuários desconhecidos, assim todas as páginas não poderão ser acessadas sem antes o usuário estar autenticado via login. &lt;br /&gt;2. O símbolo "?" serve para anônimos/desconhecidos e o símbolo "*" para autenticados/conhecidos &lt;br /&gt;3. Com "deny" bloqueamos e com "allow" permitimos!&lt;br /&gt;&lt;br /&gt;Mas, e se quermos criar uma página para acesso irrestrito? Uma página para acesso externo? Simplesmente, definos após o fechamento da tag "system.web" o seguinte:&lt;br /&gt;&lt;br /&gt;[Autorização para Página Externa]&lt;br /&gt;&lt;div  style="color:#ffcc00;"&gt;-&gt;location path="PaginaExterna.aspx"&lt;br /&gt; &lt;span style="margin-left: 20px;"&gt;-&gt;system.web&lt;/span&gt;&lt;br /&gt;    &lt;span style="margin-left: 40px;"&gt;-&gt;authorization&lt;/span&gt;&lt;br /&gt;       &lt;span style="margin-left: 60px;"&gt;-&gt;allow users="?"&lt;/span&gt;&lt;br /&gt;       &lt;span style="margin-left: 60px;"&gt;-&gt;/allow&lt;/span&gt;&lt;br /&gt;   &lt;span style="margin-left: 40px;"&gt;-&gt;/authorization&lt;/span&gt;&lt;br /&gt; &lt;span style="margin-left: 20px;"&gt;-&gt;/system.web&lt;/span&gt;&lt;br /&gt;-&gt;/location&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1. Estamos permitindo acesso sem login (usuários não autenticados) à página setada o parâmetro PATH da tag "location".&lt;br /&gt;&lt;br /&gt;Bom... era isto, mas para melhor exemplificar o que foi falado acima, está postado no SkyDrive uma solução que demonstra o funcionamento desta autenticação e autorização de página externa: &lt;a href="http://cid-1768b3db9f4a085b.skydrive.live.com/self.aspx/.Public/Exemplo%5E_Autenticacao.rar" target="_blank"&gt;Autenticacao-Autorizacao&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hasta e façam bom proveito!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-5552562306997036904?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/5552562306997036904/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/12/void-webconfigautorizacao-autenticacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/5552562306997036904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/5552562306997036904'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/12/void-webconfigautorizacao-autenticacao.html' title='void Web.config(Autorização, Autenticação)'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-4794288210470576357</id><published>2009-11-10T09:33:00.004-02:00</published><updated>2009-11-10T09:53:12.587-02:00</updated><title type='text'>void A Saga de um Processador()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Momento de descontração...&lt;br /&gt;&lt;br /&gt;Um vídeo que exemplifica de um forma divertida e simples o trabalho de um processador dentro dos nossos queridos computadores. Vale muito a pena ver, independente se você é da área ou não.&lt;br /&gt;&lt;br /&gt;Se divertam com as tiradas e comparações excelentes aqui neste link: &lt;a href="http://cid-1768b3db9f4a085b.skydrive.live.com/self.aspx/.Public/a%20saga%20de%20um%20processador%20%5E5completa%5E6.avi" target="_blank"&gt;A Saga de um Processador&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-4794288210470576357?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/4794288210470576357/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/11/void-saga-de-um-processador.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4794288210470576357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/4794288210470576357'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/11/void-saga-de-um-processador.html' title='void A Saga de um Processador()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-1315392302836183765</id><published>2009-10-16T09:40:00.016-03:00</published><updated>2010-06-11T01:30:38.903-03:00</updated><title type='text'>void XNA Câmera2D()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify; color: #f9f9f9;"&gt;&lt;br /&gt;Procurei... procurei... e finalmente achei uma boa referência de implementação de uma câmera 2D no XNA!&lt;br /&gt;&lt;br /&gt;O exemplo é super simples e tem uma lógica super adaptável a qualquer projeto. No meu caso, precisei criar a mais algumas verificações do tamanaho do cenário, pois ele é infinitamente maior que a tela de jogo.&lt;br /&gt;&lt;br /&gt;Utilizando diretamente o exemplo se perceberá que o personagem principal do game é o guia absoluto da câmera, assim ele estará sempre no centro da tela. O problema que surge quando o personagem estiver em uma das extremidades do cenário, pois a câmera força a centralização do mesmo deslocando o cenário conjuntamente. Para solucionar isso e se adaptar a qualquer tamanho de cenário que eu criar, tanto horizontalmente como verticalmente criei testes de posicionamente para os eixos X e Y. Eles farão com que a câmera se movimente apenas quando o personagem alcançar a posição central no eixo X ou Y da tela se houver cenário disponível para movimentação.&lt;br /&gt;&lt;br /&gt;O link que muito me ajudou é este: &lt;a href="http://www.theindiebay.com/2009/07/31/camera-2d-in-xna/" target="_blank"&gt;http://www.theindiebay.com/2009/07/31/camera-2d-in-xna/&lt;/a&gt; e logo abaixo está a verificação que fiz.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;italic&gt;Variáveis para os teste:&lt;/italic&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;(float) últimaPosiçãoX e últimaPosiçãoY&lt;/span&gt; [Atributos da classe Câmera]&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;(float) eixoX e eixoY&lt;/span&gt; [Os quais são zerados no início das verificações]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;italic&gt;Verificação no eixo X:&lt;/italic&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;&lt;br /&gt;Se (posição do personagem no eixo X * 2 &gt;= largura da tela)&lt;br /&gt;{&lt;div style="padding-left: 1.5em;"&gt;eixoX = largura da tela * 0.5 - posição do personagem no eixo X&lt;br /&gt;    Se (- eixoX &gt; largura da tela + largura do personagem)&lt;br /&gt;    {&lt;div style="padding-left: 1.5em;"&gt;eixoX = últimaPosiçãoX   &lt;br /&gt;    &lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;    últimaPosiçãoX = eixoX&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;italic&gt;Verificação no eixo Y:&lt;/italic&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#ffcc00;"&gt;&lt;br /&gt;Se (posição do personagem no eixo Y * 2 &gt;= altura da tela)&lt;br /&gt;{&lt;div style="padding-left: 1.5em;"&gt;eixoY = altura da tela * 0.5 - posição do personagem no eixo Y&lt;br /&gt;    Se (altura da tela + (- eixoY) &gt; altura do cenário)&lt;br /&gt;    {&lt;div style="padding-left: 1.5em;"&gt;eixoY = últimaPosiçãoY       &lt;br /&gt;    &lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;    últimaPosiçãoY = eixo Y&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Programming of Games to Live!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-1315392302836183765?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/1315392302836183765/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/10/void-xna-camera2d.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/1315392302836183765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/1315392302836183765'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/10/void-xna-camera2d.html' title='void XNA Câmera2D()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-5628509667672012232</id><published>2009-07-08T13:47:00.005-03:00</published><updated>2009-07-08T14:45:53.074-03:00</updated><title type='text'>void Árvore B()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Ufa!&lt;br /&gt;&lt;br /&gt;Essa postagem só é possível após decorrido muito tempo e esforço, pois a complexidade lógica para implementar uma Árvore B é realmente incrível.&lt;br /&gt;&lt;br /&gt;Tive a opotunidade de implementar minha primeira Árvore B, que é mais um caso onde nos perguntamos onde usar isto, e lhes digo que por baixo de toda estrutura de dados, onde há armazenamento em disco ou em memória, há implementado uma árvore B ou B+. Realmente, uma excelência quando tratamos de ordenação.&lt;br /&gt;&lt;br /&gt;Entender como funciona uma Árvore B é exatamente inverso a implemetá-la. Simples na teoria e complexa na implementação. Então, mais uma vez com a cortesia do SkyDrive, estou diponibilzando um exemplo em C# de uma &lt;a href="http://cid-1768b3db9f4a085b.skydrive.live.com/self.aspx/.Public/ArvoreB.rar" target="_blank"&gt;Árvore B&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Asta luego!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-5628509667672012232?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/5628509667672012232/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/07/void-arvore-b.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/5628509667672012232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/5628509667672012232'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/07/void-arvore-b.html' title='void Árvore B()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-317237756634197035</id><published>2009-06-04T13:28:00.013-03:00</published><updated>2009-07-08T14:46:04.268-03:00</updated><title type='text'>void Hash Table()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Opa... de novo!&lt;br /&gt;&lt;br /&gt;O mérito desta postagem se dá a algo que muitos desenvolvedores precisam fazer nas suas atividades acadêmicas, mas não sabem quando vão usá-la realmente.&lt;br /&gt;&lt;br /&gt;O assunto em questão é Hash Table, ou seja, simplesmente, são formas como os dados podem ser gravados, tanto em disco como também em memória.&lt;br /&gt;&lt;br /&gt;Voltando ao dilema de quando se vai usar, a resposta é sempre, pois por debaixo dos panos, toda estrutura tem a possibilidade de usá-la. Por exemplo, em memória como o Dictionary do DotNet, ou mesmo, a possibilidade dos SGBD´s de o utilizarem a nível de I/O.&lt;br /&gt;&lt;br /&gt;Explicar o que é e como se comporta uma Hash Table não é meu foco, mas sim, dar um norte em nível de implementação. Com a cortesia do SkyDrive, estou diponibilzando um exemplo de um tipo simples de Hash Table, o &lt;a href="http://cid-1768b3db9f4a085b.skydrive.live.com/self.aspx/.Public/HashDuplo.zip" target="_blank"&gt;Hash Duplo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Namasté!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-317237756634197035?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/317237756634197035/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/06/void-hash-table.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/317237756634197035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/317237756634197035'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/06/void-hash-table.html' title='void Hash Table()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-3255368307569360868</id><published>2009-05-27T10:15:00.003-03:00</published><updated>2009-09-22T14:34:40.529-03:00</updated><title type='text'>void Pensamentos e Mantras()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Bom... o que segue são apenas palavras soltas e minha humilde opinião.&lt;br /&gt;&lt;br /&gt;Sou daqueles que pensa que toda pessoa deve escolher um bom caminho, que seja benéfico e proveitoso, que te retorne bons frutos, que no meu caso são o conhecimento e a felicidade. Resumindo, bom mesmo é fazer o que gostamos.&lt;br /&gt;&lt;br /&gt;Atualmente sou programador, mas principalmente, um viciado no que faço, um aficcionado por bits e bytes. Paralelo a isto, a certeza que tenho é que não se descobre nada sozinho, e para mim não foi diferente. Foi lendo os artigos contidos no site &lt;a href="http://www.1bit.com.br/#artigos" target="_blank"&gt;http://www.1bit.com.br/#artigos&lt;/a&gt;, para mim um &lt;span style="font-style: italic;"&gt;mantra,&lt;/span&gt; que descobri uma paixão, que percebi que gosto mesmo é de programar,  que gosto mesmo é de falar sobre tecnologias e linguagens de programação, que o meu negócio mesmo é encarar um problema de lógica e fazer de tudo para solucioná-lo.&lt;br /&gt;&lt;br /&gt;E, como um verdadeiro e original desenvolvedor de sistemas, sigo um &lt;span style="font-style: italic;"&gt;pensamento&lt;/span&gt;: "Aquilo que não consigo fazer, não consigo entender". Logo, se quero mesmo programar, apenas teorias não bastam, tenho mesmo é que fuçar, praticar, implementar e testar muito, tenho mesmo é que me proporcionar encarar um novo desafio a cada dia.&lt;br /&gt;&lt;br /&gt;E era isso...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-3255368307569360868?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/3255368307569360868/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/05/pensamentos-e-mantras.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/3255368307569360868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/3255368307569360868'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/05/pensamentos-e-mantras.html' title='void Pensamentos e Mantras()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3195024526398228329.post-2521928059847982423</id><published>2009-05-26T23:45:00.000-03:00</published><updated>2009-05-27T14:15:00.849-03:00</updated><title type='text'>void The Begin()</title><content type='html'>{&lt;br /&gt;&lt;div style="padding-left: 1.5em; text-align: justify;"&gt;&lt;br /&gt;Como todo bom algoritmo, meu blog teve início, ou seja,  &lt;span style="font-style: italic;"&gt;starter&lt;/span&gt; nele. Espero que se mantenha em  um boa e velha função recursiva, só dando &lt;span style="font-style: italic;"&gt;loops&lt;/span&gt; por todos os lados. E, principalmente, que o &lt;span style="font-style: italic;"&gt;end&lt;/span&gt; não dê as caras tão cedo, ou melhor, nunca.&lt;br /&gt;&lt;br /&gt;Vou postar aqui, no surgimento das lacunas de tempo, algumas certezas e muitas incertezas a respeito de DotNet, C#, OO, XNA, Engines, Silverlight, Banco de dados, HTML, CSS, JavaScript, Engenharia de Software e Tecnologias em geral.&lt;br /&gt;&lt;br /&gt;Ah! É importante salientar meu interesse sobre tudo, mas tudo mesmo, a respeito do mundo dos games. A primeira certeza é que sobre games eu postarei aqui!&lt;br /&gt;&lt;br /&gt;Um abraço a todos!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3195024526398228329-2521928059847982423?l=jrkucera.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jrkucera.blogspot.com/feeds/2521928059847982423/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://jrkucera.blogspot.com/2009/05/my-blog-begin.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/2521928059847982423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3195024526398228329/posts/default/2521928059847982423'/><link rel='alternate' type='text/html' href='http://jrkucera.blogspot.com/2009/05/my-blog-begin.html' title='void The Begin()'/><author><name>João Ricardo Kucera</name><uri>http://www.blogger.com/profile/02541772364355174482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_loqDGaBoraQ/Sh1sBwTeLzI/AAAAAAAAAAM/j-9sZHfB980/S220/joker.jpg'/></author><thr:total>0</thr:total></entry></feed>
