<?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>Alan Willms</title>
	<atom:link href="http://alanwillms.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://alanwillms.com</link>
	<description>Desenvolvimento web</description>
	<lastBuildDate>Tue, 10 Aug 2010 19:53:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Corrigindo o ERROR NoMethodError: private method `gsub!&#8217; para carregar stylesheets, javascripts e imagens</title>
		<link>http://alanwillms.com/2010/08/07/corrigindo-o-error-nomethoderror-private-method-gsub-para-carregar-stylesheets-javascripts-e-imagens/</link>
		<comments>http://alanwillms.com/2010/08/07/corrigindo-o-error-nomethoderror-private-method-gsub-para-carregar-stylesheets-javascripts-e-imagens/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 18:45:24 +0000</pubDate>
		<dc:creator>Alan Willms</dc:creator>
				<category><![CDATA[Rails]]></category>
		<guid isPermaLink="false">http://alanwillms.com/?p=62</guid>
		<description><![CDATA[Este erro, nesta situação, ocorre exclusivamente no webrick, então existem duas soluções: 1. Instalar o mongrel e utilizar este servidor. gem install mongrel ./script/server mongrel 2. [Não recomendado] Edite a linha 15 do arquivo lib/ruby/x.x/webrick/htmlutils.rb para: str = string ? string.to_s.dup : "" O problema é que a a exceção NotModified é passa para HTMLUtils::escape]]></description>
			<content:encoded><![CDATA[<p>Este erro, nesta situação, ocorre exclusivamente no webrick, então existem duas soluções:</p>
<p>1. Instalar o mongrel e utilizar este servidor.</p>
<pre>gem install mongrel</pre>
<pre>./script/server mongrel</pre>
<p>2. [Não recomendado] Edite a linha 15 do arquivo lib/ruby/<span style="text-decoration: line-through;">x.x</span>/webrick/htmlutils.rb para:</p>
<pre>str = string ? string.to_s.dup : ""</pre>
<p>O problema é que a a exceção NotModified é passa para HTMLUtils::escape como uma classe, ao invés de uma string (originalmente lançada em HTTPServlet::DefaultFileHandler). Desde que as únicas coisas que realmente podem ser escapadas em HTML são string, deveria ser seguro sempre converter a entrada para uma string.</p>
<p>Alternativamente, no método handle_file do DispatchServlet  do webrick (lib/webrick_server.rb na gem do rails), antes que ele chame res.set_error<br />
com a exceção, você poderia forçar o err.message a ser uma string, ou até mesmo limpar a mensagem.</p>
<p>***</p>
<p>Adaptado de: <a href="http://www.ruby-forum.com/topic/206225">http://www.ruby-forum.com/topic/206225</a></p>
]]></content:encoded>
			<wfw:commentRss>http://alanwillms.com/2010/08/07/corrigindo-o-error-nomethoderror-private-method-gsub-para-carregar-stylesheets-javascripts-e-imagens/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails &#8211; Utilizando o generate scaffold com modelos fora do namespace</title>
		<link>http://alanwillms.com/2010/08/07/rails-utilizando-o-generate-scaffold-com-modelos-fora-do-namespace/</link>
		<comments>http://alanwillms.com/2010/08/07/rails-utilizando-o-generate-scaffold-com-modelos-fora-do-namespace/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 05:06:42 +0000</pubDate>
		<dc:creator>Alan Willms</dc:creator>
				<category><![CDATA[Rails]]></category>
		<guid isPermaLink="false">http://alanwillms.com/?p=47</guid>
		<description><![CDATA[Ainda estou aprendendo a trabalhar com o Rails (framework diabólico), então pode ser que haja uma solução melhor que eu desconheço! No momento, estou utilizando a versão 2.3.8 dele. 1. Primeiro passo Primeiramente, eu gero o CRUD, normalmente: ./scripts/generate scaffold admin/dog name:string age:integer Em seguida, corrijo o config/routes.rb: # Removo a linha abaixo map.resources :dogs]]></description>
			<content:encoded><![CDATA[<p><em>Ainda estou aprendendo a trabalhar com o Rails (framework diabólico), então <strong>pode ser que haja uma solução melhor</strong> que eu desconheço! No momento, estou utilizando a versão 2.3.8 dele.</em></p>
<h2>1. Primeiro passo<em><br />
</em></h2>
<p>Primeiramente, eu gero o CRUD, normalmente:</p>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>generate scaffold admin<span style="color: #000000; font-weight: bold;">/</span>dog name:string age:integer</pre></div></div>
<p>Em seguida, corrijo o config/routes.rb:</p>
<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># Removo a linha abaixo</span>
map.<span style="color:#9900CC;">resources</span> <span style="color:#ff3333; font-weight:bold;">:dogs</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># E adiciono esta</span>
map.<span style="color:#9900CC;">namespace</span> <span style="color:#ff3333; font-weight:bold;">:admin</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>admin<span style="color:#006600; font-weight:bold;">|</span>
admin.<span style="color:#9900CC;">resources</span> <span style="color:#ff3333; font-weight:bold;">:dogs</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>
<p>Em seguida, faço a correção da migração, renomeando o arquivo de <strong><em>timestamp</em>_create_<span style="text-decoration: line-through;">admin_</span>dogs.rb</strong> para <strong><em>timestamp</em>_create_dogs.rb</strong>.</p>
<p>Abrindo o arquivo, removo as referências ao namespace <em>admin</em>:</p>
<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Create<span style="color:#006600; font-weight:bold;">***</span>Admin<span style="color:#006600; font-weight:bold;">***</span>Dogs <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Migration</span>
<span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">up</span>
create_table :<span style="color:#006600; font-weight:bold;">***</span>admin_<span style="color:#006600; font-weight:bold;">***</span>dogs <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>t<span style="color:#006600; font-weight:bold;">|</span>
t.<span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#ff3333; font-weight:bold;">:name</span>
t.<span style="color:#CC0066; font-weight:bold;">integer</span> <span style="color:#ff3333; font-weight:bold;">:age</span>
&nbsp;
t.<span style="color:#9900CC;">timestamps</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">down</span>
drop_table :<span style="color:#006600; font-weight:bold;">***</span>admin_<span style="color:#006600; font-weight:bold;">***</span>dogs
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>
<p>Em seguida, posso mover o arquivos <strong>apps/models/<span style="text-decoration: line-through;">admin/</span>dog.rb</strong> para o diretório superior e renomear o modelo para <strong>Dog</strong>.</p>
<p>Neste ponto, faço a migração para testar&#8230; agora começam as alterações mais chatas:</p>
<h2>2. Corrigindo o controlador</h2>
<p>Abra o controlador de dogs (que exemplo original!) e:</p>
<p>a) substitua todos os nomes de modelo <strong><span style="text-decoration: line-through;">Admin::</span>Dog</strong> para <strong>Dog</strong>. <em> </em></p>
<p><em>(Obs: cuidado com o Ctrl+H&#8230; o controlador precisa continuar se chamando <strong>Admin::DogsController</strong>)</em></p>
<p>b) altere o nome de todas as variáveis de instância <strong>@<span style="text-decoration: line-through;">admin_</span>dogs</strong> para <strong>@dogs</strong>.</p>
<p>c) nos métodos create e update, substitua o parâmetro de <em>rediret_to</em> de <strong>redirect_to(@dog)</strong> para <strong>redirect_to([:admin, @dog])</strong>.</p>
<h2>3. Corrigindo as visões</h2>
<p>a) Na chamada do formulário e links, indique que apontam para o namespace admin: <strong>[:admin, @dog]</strong>.</p>
<p>b) Igualmente, no laço do índice índice, os links para <strong>dog</strong> por <strong>[:admin, dog]</strong>.</p>
<p>b) Substitua os <strong>xyz_dogs_path</strong> por <strong>xyz_admin_path</strong>.</p>
<p><em>É isso aí, trabalheira danada&#8230; espero nos próximos dias aprender um jeito melhor de fazer isso! Mas nada melhor pra exercitar o cérebro do que escrever sobre isso!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://alanwillms.com/2010/08/07/rails-utilizando-o-generate-scaffold-com-modelos-fora-do-namespace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Propriedade Box Shadow do CSS3</title>
		<link>http://alanwillms.com/2010/06/21/propriedade-box-shadow-do-css3/</link>
		<comments>http://alanwillms.com/2010/06/21/propriedade-box-shadow-do-css3/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 01:03:03 +0000</pubDate>
		<dc:creator>Alan Willms</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS 3]]></category>
		<guid isPermaLink="false">http://alanwillms.com/?p=25</guid>
		<description><![CDATA[Conforme o próprio nome indica, a propriedade box-shadow do CSS3 serve para criar sombras em &#8220;caixas&#8221;. Atualmente [21/06/2010] a propriedade só é suportada em navegadores baseados no Webkit ou no Firefox, através das propriedades -webkit-box-shadow e -moz-box-shadow, respectivamente. No entanto, implementei-os em um projeto pessoal, e percebi que a renderização se tornou lenta no scroll]]></description>
			<content:encoded><![CDATA[<p><a href="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-cool.png"><img class="aligncenter size-full wp-image-42" title="box-shadow-cool" src="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-cool.png" alt="" width="324" height="129" /></a>Conforme o próprio nome indica, a propriedade <strong>box-shadow</strong> do CSS3 serve para criar sombras em &#8220;caixas&#8221;.</p>
<p>Atualmente [21/06/2010] a propriedade só é suportada em navegadores baseados no <strong>Webkit</strong> ou no <strong>Firefox</strong>, através das propriedades -webkit-box-shadow e -moz-box-shadow, respectivamente. No entanto, implementei-os em um projeto pessoal, e percebi que a renderização se tornou lenta no <em>scroll</em> de textos longos.</p>
<p>Traduzindo a <a title="Documentação da W3C sobre a propriedade box-shadow do CSS3" href="http://www.w3.org/TR/2010/WD-css3-background-20100612/#box-shadow" target="_blank">documentação da W3C</a>:</p>
<blockquote><p>A propriedade ‘box-shadow’ anexa uma ou mais sombras à caixa. A propriedade é uma lista de sombras separadas por vírgulas, cada uma especificada por 2 a 3 medidas de largura, uma cor opcional, e uma palavra-chave &#8216;insert&#8217; opcional. Larguras omitidas são iguais a zero; cores omitidas são iguais à cor escolhida pelo usuário.</p>
<p>Onde</p>
<p><strong>&lt;sombra&gt;</strong> = inset? &amp;&amp; [ &lt;largura&gt;{2,4} &amp;&amp; &lt;cor&gt;? ]</p></blockquote>
<p>Os parâmetros informados para cada sombra são:</p>
<ul>
<li><strong>inset</strong> &#8211; indica que a sombra é &#8220;interna&#8221;, isto é, fica dentro da caixa. <em>[opcional]</em></li>
<li><strong>deslocamento horizontal</strong>, à direita. Utilize valores negativos para deslocar à esquerda.</li>
<li><strong>deslocamento vertical</strong>, para baixo. Utilize valores negativos para deslocar a sombra para cima.</li>
<li><strong>raio de desfoque</strong>: o quão &#8220;borrada&#8221; ficará a sombra. O padrão é 1 pixel. <em>[opcional]</em></li>
<li><strong>raio de propagação</strong>: o quão distante a sombra se expandirá além da caixa.<em> [opcional]</em></li>
<li><strong>cor</strong>: a cor da sombra. <em>[opcional]</em></li>
</ul>
<p>Um exemplo vale mais do que mil palavras:</p>
<pre>#box {
 background: #ff0;
 box-shadow: 2px 2px 6px 3px #f00;
 -moz-box-shadow: 2px 2px 6px 3px #f00;
 -webkit-box-shadow: 2px 2px 6px 3px #f00;
 padding: 10px;
 width: 150px;
}</pre>
<p>O código acima irá renderizar:</p>
<p><a href="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-1.jpg"><img class="aligncenter size-full wp-image-33" title="box-shadow-1" src="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-1.jpg" alt="Primeiro exemplo de box-shadow - uma sombra comum" width="201" height="65" /></a>Um exemplo de sombra interna:</p>
<pre>#box2 {
 background: #ccc;
 box-shadow: inset 2px 2px 5px #000;
 -moz-box-shadow: inset 2px 2px 5px #000;
 -webkit-box-shadow: inset 2px 2px 5px #000;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 padding: 10px;
 width: 150px;
}</pre>
<p>Resultado 2:</p>
<p><a href="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-2.jpg"><img class="aligncenter size-full wp-image-34" title="box-shadow-2" src="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-2.jpg" alt="Segundo exemplo de box-shadow: uma sombra interna" width="198" height="86" /></a>Múltiplas sombras, de diversas cores:</p>
<pre>#box3 {
 background: #000;
 color: #fff;
 box-shadow: -5px -5px 10px #f00,
 -5px  5px 10px #00f,
 5px -5px 10px #ff0,
 5px  5px 10px #0f0
 ;
 -moz-box-shadow: -5px -5px 10px #f00,
 -5px  5px 10px #00f,
 5px -5px 10px #ff0,
 5px  5px 10px #0f0
 ;
 -webkit-box-shadow: -5px -5px 10px #f00,
 -5px  5px 10px #00f,
 5px -5px 10px #ff0,
 5px  5px 10px #0f0
 ;
 padding: 10px;
 width: 150px;
}</pre>
<p>Resultado 3:</p>
<p><a href="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-3.jpg"><img class="aligncenter size-full wp-image-35" title="box-shadow-3" src="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-3.jpg" alt="Terceiro exemplo de box-shadow: múltiplas sombras, coloridas" width="219" height="100" /></a>Exemplo do quarto parâmetro &#8220;spread&#8221;:</p>
<pre>#box4 {
 background: #000;
 color: #fff;
 box-shadow: 0 0 1px 10px #f00,
 0 0 1px 20px #00f,
 0 0 1px 30px #ff0,
 0 0 1px 40px #0f0
 ;
 -moz-box-shadow: 0 0 1px 10px #f00,
 0 0 1px 20px #00f,
 0 0 1px 30px #ff0,
 0 0 1px 40px #0f0
 ;
 -webkit-box-shadow: 0 0 1px 10px #f00,
 0 0 1px 20px #00f,
 0 0 1px 30px #ff0,
 0 0 1px 40px #0f0
 ;
 padding: 10px;
 width: 150px;
}</pre>
<p>Resultado 4:</p>
<p><a href="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-4.jpg"><img class="aligncenter size-full wp-image-36" title="box-shadow-4" src="http://alanwillms.com/wp-content/uploads/2010/06/box-shadow-4.jpg" alt="Quarto exemplo de box-shadow: o &quot;spread&quot;" width="279" height="167" /></a>Divirta-se!</p>
]]></content:encoded>
			<wfw:commentRss>http://alanwillms.com/2010/06/21/propriedade-box-shadow-do-css3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Desmistificando @rules CSS</title>
		<link>http://alanwillms.com/2010/06/15/desmistificando-at-rules-css/</link>
		<comments>http://alanwillms.com/2010/06/15/desmistificando-at-rules-css/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 03:19:53 +0000</pubDate>
		<dc:creator>Alan Willms</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[At-rules]]></category>
		<guid isPermaLink="false">http://alanwillms.com/?p=12</guid>
		<description><![CDATA[Regras at-rules (ou @rules) CSS são assim chamadas porque elas utilizam o caractere @ (&#8220;at&#8221;). Elas não são muito utilizadas como os outros elementos CSS, então se você estiver confuso sobre elas, aqui vai um guia rápido: @charset É usado para especificar o charset de sua folha de estilos (externa). É encontrada no topo de]]></description>
			<content:encoded><![CDATA[<p>Regras at-rules (ou @rules) CSS são assim chamadas porque elas utilizam o caractere @ (&#8220;at&#8221;). Elas não são muito utilizadas como os outros elementos CSS, então se você estiver confuso sobre elas, aqui vai um guia rápido:</p>
<h3>@charset</h3>
<p>É usado para especificar o charset de sua folha de estilos  (externa). É encontrada no topo de seu arquivo, e geralmente se parece com isso:</p>
<blockquote><p>@charset “iso-8859-1″;</p></blockquote>
<h3>@import</h3>
<p>É usado para importar uma outra folha de estilos, da seguinte forma:</p>
<blockquote><p>@import url(novafolhadeestilos.css);</p></blockquote>
<p>@import geralmente é usado para ocultar estilos de browsers antigos, que não os reconhecem muito bem. Desta forma é usado em conunto com a tag &lt;link&gt;.</p>
<h3>@media</h3>
<p>Aplicará seu conteúdo apenas ao tipo de mídia especificado. Algumas de suas opções são:</p>
<ul>
<li><strong>all</strong> – qualquer mídia</li>
<li><strong>aural</strong> – sintetizadores de voz</li>
<li><strong>braille</strong> – braile</li>
<li><strong>handheld</strong> – para dispositivos portáteis</li>
<li><strong>print</strong> – para impressoras</li>
<li><strong>screen</strong> – para telas de computadores</li>
</ul>
<p>Por exemplo, eu poderia especificar que para as impressoras, todo o texto deve ser negrito em uma fonte com serifa. Eu faria isso:</p>
<blockquote><p>@media print { body {font-family:serif;  font-weight:bold;} }</p></blockquote>
<h3>@font-face</h3>
<p>É um método de especificar e embudir fontes de sua escolha no design de seu site. Para saber mais, consulte o <a title="Google Font Directory" href="http://code.google.com/webfonts" target="_blank">Google Font Directory</a>.</p>
<p><em>Este artigo é uma tradução livre de: <a href="http://www.devlounge.net/code/demystifying-css-at-rules" target="_blank">http://www.devlounge.net/code/demystifying-css-at-rules</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://alanwillms.com/2010/06/15/desmistificando-at-rules-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.382 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-04 21:13:31 -->
