<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Levy Carneiro</title>
	
	<link>http://levycarneiro.com</link>
	<description>Ruby, Rails, RSpec, BDD, Git, Scaling, REST, CSS</description>
	<pubDate>Mon, 28 Sep 2009 14:28:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/LevyCarneiro" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Portraits and Photography</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/qPEu38c_oRQ/</link>
		<comments>http://levycarneiro.com/2009/09/portraits-and-photography/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 01:32:24 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Photography]]></category>

		<category><![CDATA[portrait]]></category>

		<category><![CDATA[strobist]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=139</guid>
		<description><![CDATA[Clique aqui para a versão em Português.
My latest passion has been portraiture and photography in general.
From an old hobby, the interest only grew even more after I discovered the Strobist website. David Hobby teaches everything about lighting your little flash unit, and the secret is: use it off your camera.
A photographer named Jeremy Cowart created [...]]]></description>
			<content:encoded><![CDATA[<p><a href="#portuguese">Clique aqui para a versão em Português</a>.</p>
<p>My latest passion has been portraiture and photography in general.<a href="http://www.flickr.com/photos/levycarneiro/sets/72157622468546652/"><img class="alignright size-medium wp-image-142" style="margin:3px;" title="_dsc0600-flickr" src="http://levycarneiro.com/wp-content/uploads/2009/09/_dsc0600-flickr-210x300.jpg" alt="_dsc0600-flickr" width="210" height="300" /></a></p>
<p>From an old hobby, the interest only grew even more after I discovered the <a title="Strobist Blog" href="http://strobist.blogspot.com">Strobist</a> website. David Hobby teaches everything about lighting your little flash unit, and the secret is: use it off your camera.</p>
<p>A photographer named Jeremy Cowart created a movement called Help Portrait, check the video <a href="http://www.scottkelby.com/blog/2009/archives/6301">here</a> and the <a href="http://www.help-portrait.com/">Help Portrait website</a>. On December 12th photographers from around the world will go out in the streets and reach people in need, and simply take their photographs. This is to help people that would never been able to pay for a photograph. The idea is: shoot and deliver the prints later. Just that. Connections will be made and you&#8217;ll learn a lot about people.</p>
<p>Inspired by a <a href="http://www.zarias.com/?p=450">post on Zack Arias blog</a>, I started to take some portraits right away. This is in preparation for the Help Portrait official day. So I went ahead and asked if a local retirement home would open their doors so I could photograph (for free) all of their 60 residents, elderly ladies and men. They were very happy to get this offer and yesterday I could do the photo session.</p>
<p>I&#8217;m really happy with the results. Many of the ladies and men were very happy about the photos. Some were not excited about having a photo taken, so for these I&#8217;d just showed some of the previous photos and let them decide. After this, some got excited and let me take their photos. Soon I&#8217;ll be able to see their joy when I deliver them the prints.</p>
<p>I started to process some of the images, and the best ones I posted on Flickr. I&#8217;ll be printing all photos and giving to them.</p>
<p>I learned that from very small things we can make people in need a little more happier. I saw a phrase written on their car that read &#8220;Love never gets old&#8221;.</p>
<p>Check some of the <a href="http://www.flickr.com/photos/levycarneiro/sets/72157622468546652/">elderly portraits</a> I shot on the retirement home.</p>
<hr/>
<div id="portuguese"></div>
<p>Minha recente paixão tem sido retratos e fotografia em geral.</p>
<p>A partir de um hobby antigo, o interesse cresceu ainda mais depois que descobri o site <a title="Strobist Blog" href="http://strobist.blogspot.com">Strobist</a>. David Hobby ensina tudo sobre como iluminação com flashs portáteis, e no final das contas o segredo é: use ele fora de sua câmera.</p>
<p>Um fotógrafo chamado Jeremy Cowart criou um movimento, o Help Portrait. Confira o vídeo <a href="http://www.scottkelby.com/blog/2009/archives/6301">aqui</a> e o site do <a href="http://www.help-portrait.com/">Help Portrait</a>. Em 12 de dezembro fotógrafos do mundo inteiro vão sair nas ruas, encontrar pessoas com algum tipo de necessidade (seja pessoas sem-teto, crianças órfãs, ou qualquer tipo de necessidade), e simplesmente vão dar um presente: tirar uma fotografia delas e depois levar a foto impressa. Isto será feito para ajudar aqueles que talvez nunca poderiam pagar por uma fotografia. Conexões serão feitas e você vai aprender bastante coisas sobre pessoas.</p>
<p>Inspirado por um <a href="http://www.zarias.com/?p=450">post no blog de Zack Arias</a>, comecei a tirar alguns retratos imediatamente. Esta é uma preparação para o dia oficial do Help Portrait. Fui em frente e perguntei em uma casa de repouso da cidade, se eu poderia visitá-los e tirar fotos (gratuitas) de todos seus 60 residentes. Eles ficaram muito felizes com a oferta e ontem eu pude fazer a sessão de fotos.</p>
<p>Estou muito feliz com os resultados. Muitos das senhoras e senhores ficaram felizes com a idéia de tirar fotos. Alguns não ficaram muito animados com a idéia, mas nestes casos eu mostrava as fotos de outras senhoras e alguns se animavam depois disso. Em breve vou poder ver a alegria deles ao receberem as fotos em mãos. </p>
<p>Comecei a processar algumas das imagens, e postei algumas das melhores no Flickr. Vou imprimir todas as fotos e dar de presente para eles.</p>
<p>Aprendi que com pequenas coisas você pode fazer pessoas em necessidades um pouco mais felizes. Vi uma frase escrita em um carro deles escrita assim &#8220;O amor nunca envelhece&#8221;.</p>
<p>Confira alguns dos <a href="http://www.flickr.com/photos/levycarneiro/sets/72157622468546652/">retratos das senhoras</a> da casa de repouso.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/09/portraits-and-photography/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/09/portraits-and-photography/</feedburner:origLink></item>
		<item>
		<title>Palestra: Web Performance Client Side</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/gXZIPYntmXw/</link>
		<comments>http://levycarneiro.com/2009/09/palestra-web-performance-client-side/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 12:26:03 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Performance]]></category>

		<category><![CDATA[client-side]]></category>

		<category><![CDATA[fast]]></category>

		<category><![CDATA[faster]]></category>

		<category><![CDATA[pdf]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=129</guid>
		<description><![CDATA[Há algumas semanas tive a oportunidade de palestrar internamente em dois eventos aqui na Locaweb:

Locaweb Tech Day: um evento de dia inteiro que ocorre a cada 2 meses, onde cada pessoa pode palestrar sobre um assunto de interesse;
Palestras Técnicas: ocorre às quintas-feiras, durando 1 hora. Uma pessoa por semana palestra sobre um assunto técnico.

Nas duas [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-133" title="215987893_f665d2fa1d" src="http://levycarneiro.com/wp-content/uploads/2009/09/215987893_f665d2fa1d-150x150.jpg" alt="215987893_f665d2fa1d" width="150" height="150" />Há algumas semanas tive a oportunidade de palestrar internamente em dois eventos aqui na Locaweb:</p>
<ul>
<li>Locaweb Tech Day: um evento de dia inteiro que ocorre a cada 2 meses, onde cada pessoa pode palestrar sobre um assunto de interesse;</li>
<li>Palestras Técnicas: ocorre às quintas-feiras, durando 1 hora. Uma pessoa por semana palestra sobre um assunto técnico.</li>
</ul>
<p>Nas duas oportunidades palestrei sobre como fazer um site ficar mais rápido, e abrir num &#8220;estalo&#8221;. O título das palestras foi: <strong>Web Performance Client Side</strong>.</p>
<p>Se você já parou pra pensar em otimização de um website, vai perceber que o lado server side (sua aplicação Rails, PHP, etc) conta na velocidade de carregamento, mas na prática representa muito pouco. Isto acontece porque uma requisição é processada pelo servidor em 200 milisegundos, digamos, enquanto o mesmo site pode levar 10 segundos para carregar no browser. Então qualquer otimização que ocorra em server-side só vai afetar a quantidade de pessoas que podem acessar seu site ao mesmo tempo. Não afeta a velocidade individual que cada pessoa vai ter ao navegar nas páginas de seu site.</p>
<p>E para melhorar a velocidade client-side, a que realmente importa na maioria das vezes, existem várias técnicas inteligentes e interessantes. Na apresentação que coloquei no SlideShare, você pode pegar um apanhado com as últimas técnicas para desenvolvimento web com vistas à performance no browser.</p>
<p>Existe muita coisa mesmo na apresentação, e é imperdível pra quem trabalha com Desenvolvimento Web.</p>
<p>Veja a apresentação sobre <a title="Web Performance Client Side" href="http://www.slideshare.net/levycarneiro/web-performance-client-side" target="_blank">Web Performance Client Side</a> no SlideShare. Ou baixe o <a title="Web Performance Client Side: PDF" href="http://www.slideshare.net/levycarneiro/web-performance-client-side/download">PDF</a>, mas para isso você precisa ter conta no SlideShare.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/09/palestra-web-performance-client-side/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/09/palestra-web-performance-client-side/</feedburner:origLink></item>
		<item>
		<title>Quick and dirty way to find broken links on your website</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/ldjrkDxNcPk/</link>
		<comments>http://levycarneiro.com/2009/07/quick-and-dirty-way-to-find-broken-links-on-your-website/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 17:55:53 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Systems Administration]]></category>

		<category><![CDATA[404]]></category>

		<category><![CDATA[broken links]]></category>

		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=123</guid>
		<description><![CDATA[These days I had to find if there was any broken link (error 404) in a group of sites.
I found this to be very useful:
wget &#8211;recursive &#8211;spider http://levycarneiro.com
This command will download everything from the URL, and generate a report like this:
Found 13 broken links.
http://levycarneiro.com/levy@levycarneiro.com referred by:
http://levycarneiro.com/
http://levycarneiro.com/images/posts/Multiple_models_one_form_NewProject.jpg referred by:
http://levycarneiro.com/category/ruby-on-rails/
http://levycarneiro.com/tag/twitter/levy@levycarneiro.com referred by:
http://levycarneiro.com/tag/twitter/
http://levycarneiro.com/tag/rails/levy@levycarneiro.com referred by:
http://levycarneiro.com/tag/rails/
http://levycarneiro.com/tag/portfolio/levy@levycarneiro.com referred by:
http://levycarneiro.com/tag/portfolio/
http://levycarneiro.com/2009/04/transito-nao-an-experiment-with-twitter-traffic-jams-and-ruby-on-rails/levy@levycarneiro.com referred [...]]]></description>
			<content:encoded><![CDATA[<p>These days I had to find if there was any broken link (error 404) in a group of sites.</p>
<p>I found this to be very useful:</p>
<p>wget &#8211;recursive &#8211;spider http://levycarneiro.com</p>
<p>This command will download everything from the URL, and generate a report like this:</p>
<blockquote><p>Found 13 broken links.</p>
<p>http://levycarneiro.com/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/<br />
http://levycarneiro.com/images/posts/Multiple_models_one_form_NewProject.jpg referred by:<br />
http://levycarneiro.com/category/ruby-on-rails/<br />
http://levycarneiro.com/tag/twitter/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/twitter/<br />
http://levycarneiro.com/tag/rails/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/rails/<br />
http://levycarneiro.com/tag/portfolio/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/portfolio/<br />
http://levycarneiro.com/2009/04/transito-nao-an-experiment-with-twitter-traffic-jams-and-ruby-on-rails/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/2009/04/transito-nao-an-experiment-with-twitter-traffic-jams-and-ruby-on-rails/<br />
http://levycarneiro.com/tag/traffic/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/traffic/<br />
http://levycarneiro.com/tag/projects/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/projects/<br />
http://levycarneiro.com/category/projects/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/category/projects/<br />
http://levycarneiro.com/tag/ruby/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/ruby/<br />
http://levycarneiro.com/category/ruby-on-rails/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/category/ruby-on-rails/<br />
http://levycarneiro.com/category/twitter/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/category/twitter/<br />
http://levycarneiro.com/tag/ruby-on-rails/levy@levycarneiro.com referred by:<br />
http://levycarneiro.com/tag/ruby-on-rails/</p></blockquote>
<p>I&#8217;ve got some work to do then <img src='http://levycarneiro.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/07/quick-and-dirty-way-to-find-broken-links-on-your-website/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/07/quick-and-dirty-way-to-find-broken-links-on-your-website/</feedburner:origLink></item>
		<item>
		<title>Google Chrome prefetches DNS for speed up browser performance</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/t9lY3y1tNK4/</link>
		<comments>http://levycarneiro.com/2009/06/google-chrome-prefetches-dns-for-speed-up-browser-performance/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 09:00:06 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Performance]]></category>

		<category><![CDATA[chrome]]></category>

		<category><![CDATA[dns]]></category>

		<category><![CDATA[page speed]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=116</guid>
		<description><![CDATA[Browser performance problems? Simple tricks to the rescue:
&#8220;To speed up browsing, Google Chrome resolves domain names before the user navigates, typically while the user is viewing a web page. This is done using your computer&#8217;s normal DNS resolution mechanism; no connection to Google is used. As a result, user navigation time in Google Chrome when [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_118" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-118" title="Google Chrome" src="http://levycarneiro.com/wp-content/uploads/2009/06/chrome-150x150.jpg" alt="Google Chrome" width="150" height="150" /><p class="wp-caption-text">Google Chrome</p></div>
<p>Browser performance problems? Simple tricks to the rescue:</p>
<blockquote><p>&#8220;To <strong>speed up browsing</strong>, Google Chrome resolves domain names before the user navigates, typically while the user is viewing a web page. This is done using your computer&#8217;s normal <strong>DNS resolution</strong> mechanism; no connection to Google is used. As a result, user navigation time in Google Chrome when first visiting a domain is on average about 250ms faster than traditional browsing, and the occasional but painful 1-second-plus delays are almost never experienced.&#8221;</p></blockquote>
<p>And how it works:</p>
<p>&#8220;<strong>DNS prefetching</strong> just resolves domain names before a user tries to navigate, so that there will be no effective user delay due to DNS resolution. The most obvious example where prefetching can help is when a user is looking at a page with many links to various unexplored domains, such as a search results page. Google Chrome automatically scans the content of each rendered page looking for links, extracting the domain name from each link, and resolving each domain to an IP address. All this work is done in parallel with the user&#8217;s reading of the page, hardly using any CPU power. When a user clicks on any of these pre-resolved names to visit a new domain, they will save an average of over 250ms in their navigation.&#8221;</p>
<p>Check the <a title="DNS prefetching pre-resolving" href="http://blog.chromium.org/2008/09/dns-prefetching-or-pre-resolving.html">full article</a>.</p>
<p>Very clever and efficient.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/06/google-chrome-prefetches-dns-for-speed-up-browser-performance/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/06/google-chrome-prefetches-dns-for-speed-up-browser-performance/</feedburner:origLink></item>
		<item>
		<title>Making the web faster</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/70wy3zBsLUM/</link>
		<comments>http://levycarneiro.com/2009/06/making-the-web-faster/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 14:00:13 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Performance]]></category>

		<category><![CDATA[automation]]></category>

		<category><![CDATA[page speed]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=112</guid>
		<description><![CDATA[It was about time!
Google has announced an initiative to help developers to make their applications and websites to run faster. Nothing better than Google to push this kind of movement.
Let&#8217;s make the web faster is the main page, filled with increasing number of articles and videos on page speed optimization. Check it out!
I&#8217;m looking for [...]]]></description>
			<content:encoded><![CDATA[<p>It was about time!</p>
<p>Google has announced an initiative to help developers to make their applications and websites to run faster. Nothing better than Google to push this kind of movement.</p>
<p><a href="http://code.google.com/speed/">Let&#8217;s make the web faster</a> is the main page, filled with increasing number of <a href="http://code.google.com/speed/articles/">articles and videos on page speed optimization</a>. Check it out!</p>
<p>I&#8217;m looking for ways to setup an automated script that will run YSLOW and PageSpeed tests on any given site. The idea is to monitor a site&#8217;s performance over time. You work hard to reach something around 90/95 on these test reports, and you don&#8217;t want other developers in the team (or yourself) to mess things up one month ahead, when you completely forgot about page&#8217;s performance <img src='http://levycarneiro.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> So, if you know something about this, please let me know. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/06/making-the-web-faster/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/06/making-the-web-faster/</feedburner:origLink></item>
		<item>
		<title>Melhorando a performance de um site no browser</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/Lj8H2ihVPOs/</link>
		<comments>http://levycarneiro.com/2009/06/melhorando-a-performance-de-um-site-no-browser/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 09:00:40 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Browser]]></category>

		<category><![CDATA[Performance]]></category>

		<category><![CDATA[Add new tag]]></category>

		<category><![CDATA[client-side]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=96</guid>
		<description><![CDATA[Postei um artigo no blog de Tecnologia da Locaweb. Confira abaixo o artigo na íntegra.
&#8220;Melhorando a performance de um site no browser&#8221; (client-side).
Escalar um site para atender milhões de usuários é sempre bom. Mas isto raramente é o problema. O mais importante é melhorar o tempo de carregamento ou renderização de uma página no browser. [...]]]></description>
			<content:encoded><![CDATA[<p>Postei um artigo no <a href="http://tecblog.locaweb.com.br/2009/06/23/melhorando-a-performance-de-um-site-no-browser/">blog de Tecnologia da Locaweb</a>. Confira abaixo o artigo na íntegra.</p>
<p>&#8220;<strong>Melhorando a performance de um site no browser</strong>&#8221; (client-side).</p>
<p><strong>Escalar um site para atender milhões de usuários</strong> é sempre bom. Mas isto raramente é o problema. O mais importante é melhorar o tempo de carregamento ou renderização de uma página no browser. Aqui os segundos fazem diferença entre um site que abre “num estalo” e outro que demora a carregar acabando por frustrar o visitante.</p>
<p>Para melhorar a <strong>performance client-side</strong> de seu site existem diversos itens que você precisa aperfeiçoar em seu site:</p>
<p>- <strong>Reduzir o número de componentes na página</strong>. Uma página com 30 imagens, 10 arquivos CSS e 15 arquivos Javascript realmente vai demorar um certo tempo para ser carregada no browser. É possível reduzir isto tudo para, digamos, 2 imagens, 1 arquivo CSS e 1 arquivo Javascript, usando CSS Sprites e técnicas de consolidação de arquivos. Agora sim seu site carregará muito mais rápido;</p>
<p>- <strong>Usar técnicas de cache client-side</strong>. Arquivos que não mudam tão frequentemente como o logotipo de seu site, alguns ícones, e até arquivos CSS e Javascript podem usar o cabeçalho HTTP “Expires” fazendo com que browsers mantenham estes arquivos em cache local, afinal pra que baixar os mesmos arquivos toda vez que um visitante abre seu site? Para isto funcionar direito, você precisará expirar os arquivos atualizados com um número sequencial, por exemplo: logotipo.jpg?20090622001 (ano/mês/dia/alteração_do_dia).</p>
<p>Estes não são os itens mais importantes e nem os únicos. Para ver uma lista completa de coisas que influenciam na velocidade de seu site, baixe o <a href="https://addons.mozilla.org/en-US/firefox/addon/5369">plugin YSlow</a> no Firefox, e rode o teste de velocidade em seu site. Quanto maior a nota, mais rápido é seu site. No relatório existem explicações sobre o motivo daquele item impactar na velocidade de seu site, e o mais importante: <a href="http://developer.yahoo.com/performance/rules.html">como fazer para melhorar</a>.</p>
<p>Um plugin semelhante e bem recente é o <a href="http://code.google.com/speed/page-speed/download.html">Page Speed</a> da Google. Um ponto forte dele é conter diversas ferramentas que ajudam na otimização de seu site, dentre elas, uma excelente que gera online uma versão otimizada das imagens, permitindo que você possa usá-las no site imediatamente. Por exemplo: se uma imagem banner.jpg contém 100KB, você pode gerar uma versão otimizada com apenas 30KB (depende de imagem para imagem), economizando em transferência de dados e velocidade de carregamento.</p>
<p>Um blog interessante que fala sobre este tópico, é o <a href="http://www.stevesouders.com/blog">blog de Steve Souders, autor do livro High Performance Web Sites</a>. Tanto o blog como o <a href="http://oreilly.com/catalog/9780596529307/">livro</a> são extremamente recomendados.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/06/melhorando-a-performance-de-um-site-no-browser/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/06/melhorando-a-performance-de-um-site-no-browser/</feedburner:origLink></item>
		<item>
		<title>Hidden Costs of Scaling Up vs. Scaling Out</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/TG0HCvbpElw/</link>
		<comments>http://levycarneiro.com/2009/06/hidden-costs-of-scaling-up-vs-scaling-out/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 12:22:25 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Scaling]]></category>

		<category><![CDATA[Systems Administration]]></category>

		<category><![CDATA[infra]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=91</guid>
		<description><![CDATA[The well-known dilemma: scale vertically (buy hardware) or scale horizontally (add machines)?
Here&#8217;s an interesting point of view from an article at Coding Horror entitled Scaling Up vs. Scaling Out: Hidden Costs
It&#8217;s fair to conclude that scaling out is only frictionless when you use open source software. Otherwise, you&#8217;re in a bit of a conundrum: scaling [...]]]></description>
			<content:encoded><![CDATA[<p>The well-known dilemma: <strong>scale vertically</strong> (buy hardware) or <strong>scale horizontally</strong> (add machines)?</p>
<p>Here&#8217;s an interesting point of view from an article at Coding Horror entitled <a class="Scaling Up vs. Scaling Out: Hidden Costs" href="http://www.codinghorror.com/blog/archives/001279.html">Scaling Up vs. Scaling Out: Hidden Costs</a></p>
<blockquote><p>It&#8217;s fair to conclude that <strong>scaling out is only frictionless when you use open source software</strong>. Otherwise, you&#8217;re in a bit of a conundrum: scaling up means paying less for licenses and a lot more for hardware, while scaling out means paying less for the hardware, and a <em>whole</em> lot more for licenses.</p></blockquote>
<p>All in all I still prefer scaling out, so you don&#8217;t have a <strong>single point of failure</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/06/hidden-costs-of-scaling-up-vs-scaling-out/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/06/hidden-costs-of-scaling-up-vs-scaling-out/</feedburner:origLink></item>
		<item>
		<title>Flickr engineers do it offline</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/o0CiVR8HKOQ/</link>
		<comments>http://levycarneiro.com/2009/06/flickr-engineers-do-it-offline/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 02:53:57 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Scaling]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=87</guid>
		<description><![CDATA[
Here&#8217;s a very interesting post on how Flickr engineers handle the scaling challenges of this well-known photo website: using queues to run slow things offline.
Here&#8217;s an excerpt:
&#8220;It seems that using queuing systems in web apps is the new hottness . While the basic idea itself certainly isn’t new, its application to modern, large, scalable sites [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/rogersmith/3226586501/"><img class="alignleft size-thumbnail wp-image-88" title="parking_lot" src="http://levycarneiro.com/wp-content/uploads/2009/06/parking_lot-150x150.jpg" alt="parking_lot" width="150" height="150" /></a></p>
<p>Here&#8217;s a very interesting post on how Flickr engineers handle the scaling challenges of this well-known photo website: using queues to run slow things offline.</p>
<p>Here&#8217;s an excerpt:</p>
<p>&#8220;It seems that using queuing systems in web apps is <a href="http://decafbad.com/blog/2008/07/04/queue-everything-and-delight-everyone">the new hottness</a> . While the basic idea itself certainly isn’t new, its application to modern, large, scalable sites seems to be. At the very least, it’s something that deserves talking about — so here’s how Flickr does it, to the tune of 11 million tasks a day.&#8221;</p>
<p>Check the <a title="Flickr engineers and offline queues" href="http://code.flickr.com/blog/2008/09/26/flickr-engineers-do-it-offline/">full article</a> out.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/06/flickr-engineers-do-it-offline/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/06/flickr-engineers-do-it-offline/</feedburner:origLink></item>
		<item>
		<title>Boo Box web servers layout and application scaling tips</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/r9XkLgyNiTY/</link>
		<comments>http://levycarneiro.com/2009/05/boo-box-web-servers-layout-and-application-scaling-tips/#comments</comments>
		<pubDate>Sat, 30 May 2009 23:02:35 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Scaling]]></category>

		<category><![CDATA[Systems Administration]]></category>

		<category><![CDATA[servers]]></category>

		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://levycarneiro.com/?p=74</guid>
		<description><![CDATA[
Boo Box, the ad network, released a layout of their web servers&#8217; infrastructure. It seems the beast is growing fast and this diagram shows how they&#8217;re coping with the challenge.
Here are some things I found very interesting:

Separate servers for reading and writing (MySQL). This way you can optimize servers for a specific purpose (read or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://levycarneiro.com/wp-content/uploads/2009/05/infra-boo-box2.jpg"><img class="alignnone size-medium wp-image-78" title="infra-boo-box2" src="http://levycarneiro.com/wp-content/uploads/2009/05/infra-boo-box2-281x300.jpg" alt="infra-boo-box2" width="281" height="300" /></a></p>
<p><a href="http://www.boo-box.com/">Boo Box</a>, the ad network, released a <a href="http://www.boo-box.com/blog/br/2009/a-infraestrutura-de-servidores-web-do-sistema-boo-box/">layout</a> of their web servers&#8217; infrastructure. It seems the beast is growing fast and this diagram shows how they&#8217;re coping with the challenge.</p>
<p>Here are some things I found very interesting:</p>
<ul>
<li>Separate servers for reading and writing (MySQL). This way you can optimize servers for a specific purpose (read or write), since the reads and writes aren&#8217;t competing with each other anymore in the disk or memory;</li>
<li>Serve static files from a different domain to speed things up is well-known, but serving them right from the RAM is new to me. However <a href="http://forum.nginx.org/read.php?2,2465">some people disagree</a> with caching files in memory, beyond what the OS already does in this field. The other good thing is that Nginx is a super fast web server, and it&#8217;s replacing Apache in many scenarios;</li>
<li>The use of a queue server for handling time-consuming tasks is paramount for horizontal scaling. Everything that takes more than a few miliseconds (or do some sort of processing) should be ran in an asynchronous way.</li>
</ul>
<p>It&#8217;s very nice of them to share this layout. Thanks guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/05/boo-box-web-servers-layout-and-application-scaling-tips/feed/</wfw:commentRss>
		<feedburner:origLink>http://levycarneiro.com/2009/05/boo-box-web-servers-layout-and-application-scaling-tips/</feedburner:origLink></item>
		<item>
		<title>Trânsito Não! Um experimento com Twitter, Trânsito e Ruby on Rails</title>
		<link>http://feedproxy.google.com/~r/LevyCarneiro/~3/Cz447U775B0/</link>
		<comments>http://levycarneiro.com/2009/04/transito-nao-um-experimento-com-twitter-transito-e-ruby-on-rails/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 21:39:42 +0000</pubDate>
		<dc:creator>Levy Carneiro Jr.</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Twitter]]></category>

		<category><![CDATA[portfolio]]></category>

		<category><![CDATA[Rails]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[trânsito]]></category>

		<category><![CDATA[votação]]></category>

		<category><![CDATA[voto]]></category>

		<guid isPermaLink="false" />
		<description><![CDATA[O Twitter se tornou uma grande ferramenta para interação social, já até ameaçando o conteúdo oferecido em blogs.
Indo ainda mais longe, alguns já falam que não importa mais quantos seguidores você tenha no Twitter, mas que a pessoa com maior autoridade é aquela com o maior número de mensagens &#8220;retweetadas&#8221;, mostrando então que o que [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://twitter.com">Twitter</a> se tornou uma grande ferramenta para interação social, já até ameaçando o conteúdo oferecido em <a href="http://www.techcrunch.com/2009/03/10/are-blogs-losing-their-authority-to-the-statusphere/">blogs</a>.</p>
<p>Indo ainda mais longe, alguns já falam que não importa mais quantos seguidores você tenha no Twitter, mas que a pessoa com maior autoridade é aquela com o <a href="http://danzarrella.com/introducing-the-retweetability-metric.html">maior número de mensagens &#8220;retweetadas&#8221;</a>, mostrando então que o que esta pessoa escreve é conteúdo bom e merece ser repassado a todos.</p>
<p>O projeto <a href="http://transitonao.com.br">Trânsito Não!</a> é um experimento social com Twitter e um assunto que deixa todo mundo fora de si: o trânsito. Este website conta tweets enviados como idéias e/ou votos, gerando um espaço público de discussão sobre um dos problemas mais urgentes destes dias.</p>
<p>Este projeto é direcionado a todo o Brasil, só que mais especialmente aquelas pessoas que vivem na Grande São Paulo, uma região com cerca de 17 milhões de habitantes que experimentam um dos maiores volumes de tráfego de veículos do mundo.</p>
<p>Usei <a href="http://rubyonrails.org/">Ruby on Rails</a> para construir este site. Este framework web oferece grande produtividade ao desenvolvedor. Se você ainda não assistiu, não deixe de ver este <a href="http://media.rubyonrails.org/video/rails_blog_2.mov">vídeo que mostra a criação de um blog em apenas 15 minutos usando Ruby on Rails</a>.</p>
<p>O sistema de votação funciona assim: você envia um tweet (no Twitter) com uma idéia ou solução para resolver o problema do trânsito. Esta idéia vira então uma &#8220;idéia&#8221; dentro do Trânsito Não! Cada retweet da sua idéia, vira um voto. Então quanto mais a sua idéia se espalhar no Twitter, mais votos ela recebe no site. Os tweets são obtidos do Twitter através de uma API que é lida a cada minuto. As idéias ou votos são adicionados ao banco de dados, e as páginas são geradas novamente.</p>
<p>Você pode me encontrar em meu <a href="http://www.levyonrails.com">blog</a>, <a href="http://twitter.com/levycarneiro">Twitter</a>, ou por <a href="mailto:levy@levycarneiro.com">e-mail</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://levycarneiro.com/2009/04/transito-nao-um-experimento-com-twitter-transito-e-ruby-on-rails/feed/</wfw:commentRss>

		<feedburner:origLink>http://levycarneiro.com/2009/04/transito-nao-um-experimento-com-twitter-transito-e-ruby-on-rails/</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/LevyCarneiro/~5/nlMmphp_sJs/rails_blog_2.mov" length="49405864" type="video/quick" /><feedburner:origEnclosureLink>http://media.rubyonrails.org/video/rails_blog_2.mov</feedburner:origEnclosureLink></item>
	</channel>
</rss>
