<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Distópico &#187; rest</title>
	<atom:link href="http://blog.distopico.org/tag/rest/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.distopico.org</link>
	<description>Na teoria a prática é outra</description>
	<lastBuildDate>Mon, 22 Feb 2010 21:10:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Voltando a escrever</title>
		<link>http://blog.distopico.org/2008/06/10/voltando-a-escrever/</link>
		<comments>http://blog.distopico.org/2008/06/10/voltando-a-escrever/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 00:33:41 +0000</pubDate>
		<dc:creator>edgard</dc:creator>
				<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[luaeclipse]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://distopico.wordpress.com/?p=26</guid>
		<description><![CDATA[Após um tempo sem escrever, algumas palavras: Fiquei apenas com o notebook por enquanto, o desktop parece que queimou a fonte &#8230; O que me rendeu inúmeros problemas. No momento estou trabalhando num projeto, então meu tempo para escrever diminuiu. Fim de semestre pra quem estuda é sempre complicado, e comigo não é diferente. Estou [...]]]></description>
			<content:encoded><![CDATA[<p>Após um tempo sem escrever, algumas palavras:</p>
<ul>
<li>Fiquei apenas com o notebook por enquanto, o desktop parece que queimou a fonte &#8230; O que me rendeu inúmeros problemas.</li>
<li>No momento estou trabalhando num projeto, então meu tempo para escrever diminuiu.</li>
<li>Fim de semestre pra quem estuda é sempre complicado, e comigo não é diferente.</li>
<li>Estou brigando feio com a <acronym title="Abstract Syntax Tree">AST</acronym> de <a href="http://www.lua.org/">Lua</a> para adaptar nos moldes do <a href="http://www.eclipse.org/dltk/"><span class="caps">DLTK</span></a> </li>
<li>Já que eu fiz o comentário, quem puder dê uma olhada no projeto <a href="http://luaeclipse.luaforge.net/">LuaEclipse</a> é uma <acronym title="Integrated Development Enviroment">IDE</acronym> para <a href="http://www.lua.org/">Lua</a> uma linguagem brasileira, que não deve nada para as linguagens atuais, só pra ter uma idéia ela é usada no <a href="http://www.worldofwarcraft.com">World of Warcraft</a> e também pela <a href="http://www.adobe.com/">Adobe</a> &#8230; Pronto, já fiz minha propaganda.</li>
</ul>
<p>Mas as boas novas. O que vem por aí?</p>
<ul>
<li>Vou continuar a série de explicações sobre <span class="caps">REST</span>, e colocarei um exemplo prático.</li>
<li>Ainda sobre <acronym title="Representational State Transfer">REST</acronym>, alguns tutoriais de <a href="http://rubyonrails.com/">Ruby on Rails</a>, que é o framework que eu conheço que tem melhor suporte a <acronym title="Representational State Transfer">REST</acronym>.</li>
<li>Estou trabalhando num projeto de tradução de livros, é bem interessante, estou precisando de ajuda, mais detalhes em breve.</li>
<li>Consegui uma conta para teste da nova hospedagem de <a href="http://rubyonrails.com/">Ruby on Rails</a> da <a href="http://www.locaweb.com.br/">Locaweb</a> então como eu critiquei a hospedagem anterior, logo eu publicarei o que eu achei para ser justo.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.distopico.org/2008/06/10/voltando-a-escrever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tradução do &quot;How I Explained REST to My Wife&quot;</title>
		<link>http://blog.distopico.org/2008/05/16/traducao-do-how-i-explained-rest-to-my-wife/</link>
		<comments>http://blog.distopico.org/2008/05/16/traducao-do-how-i-explained-rest-to-my-wife/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:57:23 +0000</pubDate>
		<dc:creator>edgard</dc:creator>
				<category><![CDATA[Conceitos]]></category>
		<category><![CDATA[magritte]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://distopico.wordpress.com/?p=22</guid>
		<description><![CDATA[Como início da explicação sobre REST resolvi traduzir o How I Explained REST to My Wife um texto antigo (2004), mas muito explicativo. Ainda empolgado como o Gil Giardelli utilizou várias citações clássicas, aqui vai uma pergunta que está no What do HTTP URIs Identify?. O que a URL &#8220;http://www.vrc.iastate.edu/magritte.gif&#8221; representa? Um cachimbo. Não sei [...]]]></description>
			<content:encoded><![CDATA[<p>Como início da explicação sobre <abbr title="Representational State Transfer">REST</abbr> resolvi <a href="http://distopico.wordpress.com/traducao-de-how-i-explained-rest-to-my-wife/">traduzir</a> o <a href="http://tomayko.com/writings/rest-to-my-wife">How I Explained REST to My Wife</a> um texto antigo (2004), mas muito explicativo. Ainda empolgado como o <a href="http://gilgiardelli.wordpress.com/">Gil Giardelli</a> utilizou várias citações clássicas, aqui vai uma pergunta que está no <a href="http://www.w3.org/DesignIssues/HTTP-URI.html">What do HTTP URIs Identify?</a>.</p>
<dd>O que a <abbr>URL</abbr> <a href="http://www.vrc.iastate.edu/magritte.gif">&#8220;http://www.vrc.iastate.edu/magritte.gif&#8221;</a> representa?</dd>
<dt>
<img class="aligncenter" src="http://www.vrc.iastate.edu/magritte.gif" alt="A traição da imagem" title="Tradução do &quot;How I Explained REST to My Wife&quot;" /></p>
<ol>
<li>Um cachimbo.</li>
<li>Não sei o que é, mas não é um cachimbo.</li>
<li>Uma contradição.</li>
<li>Uma pintura do Magritte</li>
<li>A fotografia de uma pintura do  Magritte</li>
<li>Uma representação na forma de 341632 bits de uma foto de uma pintura.</li>
<li>4, 5 e 6 estão corretas, mas 1 não.</li>
</ol>
</dt>
]]></content:encoded>
			<wfw:commentRss>http://blog.distopico.org/2008/05/16/traducao-do-how-i-explained-rest-to-my-wife/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O quanto você sabe sobre desenvolvimento Web?</title>
		<link>http://blog.distopico.org/2008/05/16/o-quanto-voce-sabe-sobre-desenvolvimento-web/</link>
		<comments>http://blog.distopico.org/2008/05/16/o-quanto-voce-sabe-sobre-desenvolvimento-web/#comments</comments>
		<pubDate>Fri, 16 May 2008 11:52:46 +0000</pubDate>
		<dc:creator>edgard</dc:creator>
				<category><![CDATA[Conceitos]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://distopico.wordpress.com/?p=20</guid>
		<description><![CDATA[Nesses últimos dias acabei fazendo uma pesquisa informal com desenvolvedores web de vários níveis, desde quem está iniciando, a quem já trabalha a alguns anos com isso. E o resultado foi o que eu infelizmente esperava, nem todos sabem o básico. Estranho? Acho que não. Antes de continuar pense na resposta para a seguinte pergunta [...]]]></description>
			<content:encoded><![CDATA[<p>Nesses últimos dias acabei fazendo uma pesquisa informal com desenvolvedores web de vários níveis, desde quem está iniciando, a quem já trabalha a alguns anos com isso. E o resultado foi o que eu infelizmente esperava, nem todos sabem o básico. Estranho? Acho que não. Antes de continuar pense na resposta para a seguinte pergunta &#8220;Para que serve no protocolo <abbr title="HyperText Transfer Protocol">HTTP</abbr> os métodos GET e o POST e quais suas diferenças?&#8221;.</p>
<p>As respostas foram as mais variadas, algumas muito boas, melhores até do que a explicação que vou dar a seguir, mas a maioria foi focada nas diferenças, essa sim todo mundo sabe. O GET coloca os parâmetros na <abbr title="Uniform Resource Locator">URL</abbr> da requisição e o POST coloca os parâmetros no corpo da requisição. Exemplificando, quando você envia por um formulário por GET a <abbr title="Uniform Resource Locator">URL</abbr> expõe todos os parâmetros e o POST esconde-os. Ótimo isso é uma das diferença, mas não responde para que serve, pois o GET não serve para passar parâmetros e o POST pra escondê-los. Dos que se arriscaram a dizer para o que servia o POST a maioria respondeu assim: é para tratar submissões de formulários. Nada errado com a reposta, mas não é apenas isso.</p>
<p>Segundo a <abbr title="Request For Comments">rfc</abbr> do <abbr title="HyperText Transfer Protocol">HTTP</abbr> o GET serve para recuperar conteúdo, e o POST para enviar dados a serem processados. Mas não é isso que os formulários fazem? Sim, é. Mas o ponto é que muitos desenvolvedores acabam além de processar os dados exibindo conteúdo na requisição POST. Ou seja utilizando o POST para uma coisa que ele não foi feito para ser usado, a mesma coisa é passar os parâmetros a serem processados por GET. Mas, o que tem de ruim nisso?</p>
<p>Bom, usar uma ferramenta errada para o problema certo é algo certamente ruim. Mas desenvolvedores insistem no lema “Se tudo que você tem é um martelo, trate tudo como se fosse prego”, e acabam martelando muitos parafusos, mesmo tendo uma chave de fenda também. Que é claro, esses mesmo desenvolvedores não vêem que tem. Mas voltando a prática, o problema de exibir informações depois de um POST é que o browser guarda a última requisição para caso você queira fazer um refresh da página. Ou seja mesmo que não tenhamos um formulário na página, o usuário pode acabar reenviando os mesmos dados novamente apenas apertando F5 (ou ⌘+R), e isso logicamente é ruim. Usar GET para passar dados é mais sutil, pois a intenção do GET é ser uma requisição que não tenha efeitos colaterais, ou seja não mudem o estado de uma aplicação. Mas, o que eu ganho com isso? Bom, tem a ver com o fato de o <abbr title="HyperText Transfer Protocol">HTTP</abbr> ser um protocolo sem estado. Mas também tem a ver com a capacidade de você paralelizar sua aplicação, ou seja, rodar eficientemente em vários servidores. Mas para explicar isso é preciso saber o porquê de as linguagens puramente funcionais serem trivialmente paralelizáveis (vou explicar isso em um post futuro, mas se tem curiosidade, procure saber sobre isso, é algo que com toda certeza vale a pena aprender).</p>
<p>E como eu critiquei <a href="http://distopico.wordpress.com/2008/05/08/10˚-encontro-locaweb-tendencias-do-mercado-de-internet/">aqui</a> por fazerem confusão com <abbr title="Representational State Transfer">REST</abbr>, que tem tudo a ver com métodos <abbr title="HyperText Transfer Protocol">HTTP</abbr>, os próximos posts vão ser sobre isso, afim de explicar este padrão arquitetural. Que não é tão complicado, é só pensar na razão de <abbr title="Uniform Resource Locator">URL</abbr> significar &#8220;Uniform Resource Locator&#8221;, ou seja &#8220;Localizador uniforme de recursos&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.distopico.org/2008/05/16/o-quanto-voce-sabe-sobre-desenvolvimento-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached (user agent is rejected)
Database Caching 8/15 queries in 0.004 seconds using memcached

Served from: blog.distopico.org @ 2010-09-08 03:33:06 -->