<?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>Gonçalo Rodrigues</title>
	<atom:link href="http://www.goncalorodrigues.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.goncalorodrigues.com</link>
	<description>Página pessoal e blog</description>
	<lastBuildDate>Sun, 07 Feb 2010 23:16:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Anchors Menu um plugin para o Wordpress</title>
		<link>http://www.goncalorodrigues.com/blog/anchors-menu-um-plugin-para-o-wordpress/</link>
		<comments>http://www.goncalorodrigues.com/blog/anchors-menu-um-plugin-para-o-wordpress/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:46:34 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[plugin wordpress]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=1046</guid>
		<description><![CDATA[Desenvolvi um simples e pequeno plugin para o Wordpress que intitulei de Anchors Menu. Este plugin funciona no formato de widget e permite gerar dinamicamente um menu com links que apontam para as palavras que se encontrem entre as tags HTML que forem seleccionadas.
Foi inicialmente pensado para criar ligações que apontassem para as palavras entre [...]]]></description>
			<content:encoded><![CDATA[<p>Desenvolvi um simples e pequeno plugin para o Wordpress que intitulei de Anchors Menu. Este plugin funciona no formato de widget e permite gerar dinamicamente um menu com links que apontam para as palavras que se encontrem entre as tags HTML que forem seleccionadas.</p>
<p>Foi inicialmente pensado para criar ligações que apontassem para as palavras entre as tags de headings do HTML (h1, h2, h3&#8230;), contudo é possível utilizar este plugin para outros tipos de tags.</p>
<p>O plugin foi elaborado para dar resposta a uma necessidade imediata e por isso pode apresentar alguns aspectos menos elegantes ou optimizados, pelo que agradeço todas as eventuais correcções ou sugestões que possam fazer.</p>
<p>Podem consultar a página do plugin e efectuar o seu download no seguinte link: <a href="http://wordpress.org/extend/plugins/anchors-menu" onclick="pageTracker._trackPageview('/outgoing/wordpress.org/extend/plugins/anchors-menu?referer=');">http://wordpress.org/extend/plugins/anchors-menu</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/anchors-menu-um-plugin-para-o-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A tipografia utilizada nos logótipos da Web 2.0</title>
		<link>http://www.goncalorodrigues.com/blog/a-tipografia-utilizada-nos-logotipos-da-web-2-0/</link>
		<comments>http://www.goncalorodrigues.com/blog/a-tipografia-utilizada-nos-logotipos-da-web-2-0/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 22:22:33 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[tipografia]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=972</guid>
		<description><![CDATA[O logótipo pretende representar graficamente uma determinada marca e para isso faz uso de um desenho, de uma tipografia específica ou de uma fusão de ambos. Neste artigo são listadas as fontes utilizadas nos logótipos de algumas das empresas mais influentes na era da Web 2.0 e são também recomendadas mais 10 fontes, gratuitas, que [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-973" src="http://www.goncalorodrigues.com/wp-content/uploads/2010/01/logos-tipo-small.jpg" alt="logos-tipo-small" width="500" height="228" /></p>
<p>O logótipo pretende representar graficamente uma determinada marca e para isso faz uso de um desenho, de uma tipografia específica ou de uma fusão de ambos. Neste artigo são listadas as fontes utilizadas nos logótipos de algumas das empresas mais influentes na era da Web 2.0 e são também recomendadas mais 10 fontes, gratuitas, que penso serem adequadas à criação de logótipos semelhantes aos dessas empresas.</p>
<p><span id="more-972"></span></p>
<p>É possível visualizar <a href="http://www.flickr.com/photos/stabilo-boss/101793494/in/set-72057594060779001/" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/stabilo-boss/101793494/in/set-72057594060779001/?referer=');">aqui</a> um conjunto com cerca de 400 destes logótipos de empresas da Web 2.0. Os logótipos destas empresas caracterizam-se por usar cores fortes e alegres como o azul, laranja ou verde. Relativamente às fontes existe uma grande diversidade, desde fontes futuristas a outras mais tradicionais, um ponto em comum é a maior utilização de fontes suaves e sem <a href="http://pt.wikipedia.org/wiki/Serifa" onclick="pageTracker._trackPageview('/outgoing/pt.wikipedia.org/wiki/Serifa?referer=');">serifas</a>. A lista encontra-se de seguida, com o link para cada uma das fontes utilizada.</p>
<ul>
<li>Twitter: <a title="Pico Alphabet (modificada)" href="http://www2.wind.ne.jp/maniackers/pico.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www2.wind.ne.jp/maniackers/pico.html?referer=');">Pico Alphabet (modificada)</a></li>
<li>Last.fm: <a title="National (modificada)" href="http://www.vllg.com/KLIM/National/mudTyper+Weights/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.vllg.com/KLIM/National/mudTyper+Weights/?referer=');">National (modificada)</a></li>
<li>Vimeo: <a title="Black Rose" href="http://www.dafont.com/Black-Rose.Font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/Black-Rose.Font?referer=');">Black Rose</a></li>
<li>Flickr: <a title="Frutiger Black" href="http://www.fontshop.com/fonts/downloads/linotype/frutiger_std_complete_vp/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/downloads/linotype/frutiger_std_complete_vp/?referer=');">Frutiger Black</a></li>
<li>Facebook: <a title="Klavika (modificada)" href="http://new.myfonts.com/fonts/processtype/klavika/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/new.myfonts.com/fonts/processtype/klavika/?referer=');">Klavika (modificada)</a></li>
<li>Digg: <a title="FFF Forward (modificada)" href="http://www.fontfinder.ws/23100/FFF-Forward.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontfinder.ws/23100/FFF-Forward.html?referer=');">FFF Forward (modificada)</a></li>
<li>Cork’d: <a title="Triplex" href="http://www.fontshop.com/fonts/downloads/emigre/triplex_serif/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/downloads/emigre/triplex_serif/?referer=');">Triplex</a></li>
<li>Grooveshark: <a title="FF Nuvo" href="http://www.anrdoezrs.net/click-3572165-10274031?url=http%3A%2F%2Fwww.fonts.com%2Ffindfonts%2Fdetail.htm%3Fpid%3D4343617&amp;cjsku=4343617" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.anrdoezrs.net/click-3572165-10274031?url=http_3A_2F_2Fwww.fonts.com_2Ffindfonts_2Fdetail.htm_3Fpid_3D4343617_amp_cjsku=4343617&amp;referer=');">FF Nuvo</a></li>
<li>Envato: <a title="Agenda Italic" href="http://www.anrdoezrs.net/click-3572165-10274031?url=http%3A%2F%2Fwww.fonts.com%2Ffindfonts%2Fdetail.htm%3Fpid%3D409034&amp;cjsku=409034" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.anrdoezrs.net/click-3572165-10274031?url=http_3A_2F_2Fwww.fonts.com_2Ffindfonts_2Fdetail.htm_3Fpid_3D409034_amp_cjsku=409034&amp;referer=');">Agenda Italic</a></li>
<li>Tuts+ Network: <a title="Lubalin Graph" href="http://www.anrdoezrs.net/click-3572165-10274031?url=http%3A%2F%2Fwww.fonts.com%2Ffindfonts%2Fdetail.htm%3Fpid%3D201241&amp;cjsku=201241" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.anrdoezrs.net/click-3572165-10274031?url=http_3A_2F_2Fwww.fonts.com_2Ffindfonts_2Fdetail.htm_3Fpid_3D201241_amp_cjsku=201241&amp;referer=');">Lubalin Graph</a></li>
<li>Technorati: <a title="Neo Sans Medium" href="http://www.anrdoezrs.net/click-3572165-10274031?url=http%3A%2F%2Fwww.fonts.com%2Ffindfonts%2Fdetail.htm%3Fpid%3D415090&amp;cjsku=415090" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.anrdoezrs.net/click-3572165-10274031?url=http_3A_2F_2Fwww.fonts.com_2Ffindfonts_2Fdetail.htm_3Fpid_3D415090_amp_cjsku=415090&amp;referer=');">Neo Sans Medium</a></li>
<li>Purevolume: <a title="Avenir Book" href="http://www.fontshop.com/fonts/downloads/linotype/avenir_std_complete_vp/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/downloads/linotype/avenir_std_complete_vp/?referer=');">Avenir Book</a></li>
<li>Youtube: <a title="Alternate Gothic No. 2" href="http://www.fontshop.com/fonts/downloads/linotype/alternate_gothic_com_complete_vp/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/downloads/linotype/alternate_gothic_com_complete_vp/?referer=');">Alternate Gothic No. 2</a></li>
<li>Basecamp: <a title="Whitney" href="http://www.typography.com/fonts/font_styles.php?productLineID=100026" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.typography.com/fonts/font_styles.php?productLineID=100026&amp;referer=');">Whitney</a></li>
<li>Google: <a title="Catull BQ" href="http://new.myfonts.com/fonts/berthold/catull-bq/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/new.myfonts.com/fonts/berthold/catull-bq/?referer=');">Catull BQ</a></li>
<li>Yahoo: <a title="Yahoo Font" href="http://www.dafont.com/yahoo.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/yahoo.font?referer=');">Yahoo Font</a></li>
<li>Hulu: <a title="Futura MDd BT (modificada)" href="http://www.fontyukle.com/en/ara.php?ara=Futura+Md+BT" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontyukle.com/en/ara.php?ara=Futura+Md+BT&amp;referer=');">Futura MDd BT (modificada)</a></li>
<li>Bebo: <a title="Neuropol (modificada)" href="http://www.dafont.com/font.php?file=neuropol&amp;page=1&amp;nb_ppp_old=10&amp;text=bebo&amp;nb_ppp=10&amp;psize=m&amp;classt=alpha" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/font.php?file=neuropol_amp_page=1_amp_nb_ppp_old=10_amp_text=bebo_amp_nb_ppp=10_amp_psize=m_amp_classt=alpha&amp;referer=');">Neuropol (modificada)</a></li>
<li>TMZ: <a title="Amelia" href="http://www.fontshop.com/fonts/singles/linotype/amelia_regular/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/singles/linotype/amelia_regular/?referer=');">Amelia</a></li>
<li>The ONION: <a title="Eagle Bold" href="http://www.fontshop.com/fonts/singles/creative_alliance/eagle_bold/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/singles/creative_alliance/eagle_bold/?referer=');">Eagle Bold</a></li>
<li>Mapquest: <a title="Cheap Motel" href="http://www.dafont.com/cheap-motel.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/cheap-motel.font?referer=');">Cheap Motel</a></li>
<li>Linkedin: <a title="Myriad Pro Bold" href="http://www.fontshop.com/fonts/singles/creative_alliance/myriad_pro_bold/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/singles/creative_alliance/myriad_pro_bold/?referer=');">Myriad Pro Bold</a></li>
<li>Skype: <a title="Helvetica Rounded Bold" href="http://www.fontshop.com/fonts/singles/linotype/helvetica_rounded_bold/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/singles/linotype/helvetica_rounded_bold/?referer=');">Helvetica Rounded Bold</a></li>
<li>Revision 3: <a title="VAG Rounded Black" href="http://www.fontshop.com/fonts/singles/creative_alliance/vag_rounded_std_black/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.fontshop.com/fonts/singles/creative_alliance/vag_rounded_std_black/?referer=');">VAG Rounded Black</a></li>
</ul>
<p>É possível obter mais algumas informações sobre este assunto num <a href="http://fontfeed.com/archives/the-logos-of-web-20/" onclick="pageTracker._trackPageview('/outgoing/fontfeed.com/archives/the-logos-of-web-20/?referer=');">artigo</a> do site da FontFeed que foi publicado no ano de 2006, mas que ainda consegue permanecer bastante actual.</p>
<p>As fontes, gratuitas, que considero bastante interessantes para projectos com a “vertente” Web 2.0 encontram-se mencionadas de seguida. Algumas destas fontes são gratuitas apenas para uso pessoal, por isso é sempre importante consultar as suas licenças antes de serem utilizadas em projectos comerciais.</p>
<ul>
<li><a href="http://www.dafont.com/alte-haas-grotesk.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/alte-haas-grotesk.font?referer=');">Alte Haas Grotesk</a></li>
<li><a href="http://www.dafont.com/arista.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/arista.font?referer=');">Arista</a></li>
<li><a href="http://www.josbuivenga.demon.nl/delicious.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.josbuivenga.demon.nl/delicious.html?referer=');">Delicious</a></li>
<li><a href="http://www.ffonts.net/Folks-Light.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.ffonts.net/Folks-Light.font?referer=');">Folks-Light</a></li>
<li><a href="http://www.josbuivenga.demon.nl/fontinsans.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.josbuivenga.demon.nl/fontinsans.html?referer=');">Fontin Sans</a></li>
<li><a href="http://www.omkrets.se/typografi/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.omkrets.se/typografi/?referer=');">Miso</a></li>
<li><a href="http://www.dafont.com/moderna.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/moderna.font?referer=');">Moderna</a></li>
<li><a href="http://www.typophile.com/node/50437" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.typophile.com/node/50437?referer=');">Quicksand</a></li>
<li><a href="http://www.dafont.com/rezland.font" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dafont.com/rezland.font?referer=');">Rezland</a></li>
<li><a href="http://ficod.deviantart.com/art/tondo-v0-1-62810784" target="_blank" onclick="pageTracker._trackPageview('/outgoing/ficod.deviantart.com/art/tondo-v0-1-62810784?referer=');">Tondo</a></li>
</ul>
<p>Se conhecerem outras fontes que se enquadrem com as que foram aqui referidas comentem este artigo e partilhem comigo.<br />
<code><br ></code><br />
Fonte: <a href="http://buildinternet.com/2009/07/fonts-used-in-logos-of-popular-websites/" onclick="pageTracker._trackPageview('/outgoing/buildinternet.com/2009/07/fonts-used-in-logos-of-popular-websites/?referer=');">Fonts Used In Logos of Popular Websites</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/a-tipografia-utilizada-nos-logotipos-da-web-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Os álbuns de música preferidos de 2009</title>
		<link>http://www.goncalorodrigues.com/blog/os-albuns-de-musica-preferidos-de-2009/</link>
		<comments>http://www.goncalorodrigues.com/blog/os-albuns-de-musica-preferidos-de-2009/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 14:55:24 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Música]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[álbuns preferidos]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=948</guid>
		<description><![CDATA[Durante este ano de 2009 consegui ouvir bastante música, segundo o Last.fm foi uma média de 55 músicas por dia o que se significa ter escutado aproximadamente 20000 músicas. Aqui estão apenas contabilizadas as músicas que ouvi a partir do meu computador e do meu iPhone, ouvi ainda mais música em outras situações como na [...]]]></description>
			<content:encoded><![CDATA[<p>Durante este ano de 2009 consegui ouvir bastante música, segundo o <a href="http://www.last.fm" onclick="pageTracker._trackPageview('/outgoing/www.last.fm?referer=');">Last.fm</a> foi uma média de 55 músicas por dia o que se significa ter escutado aproximadamente 20000 músicas. Aqui estão apenas contabilizadas as músicas que ouvi a partir do meu computador e do meu iPhone, ouvi ainda mais música em outras situações como na minha aparelhagem, em casa de amigos ou no carro. Ainda assim esta é uma boa amostra para análise do que foi o ano de 2009 para mim enquanto consumidor de música. Em 2010 gostaria de ter um papel mais activo com a música e não ser somente um ouvinte,  espero agarrar mais vezes na viola e conseguir evoluir um pouco mais os meus conhecimentos e experiência a esse nível.</p>
<p>Este ano escutei principalmente música indie com uma forte componente acústica. Bonitas vozes femininas também foram uma companhia frequente aquecendo-me o coração em dias mais frios e noites mais solitárias, marcando igualmente este ano. O nu-jazz também foi habitual, assim como o post-rock e a música electrónica.</p>
<p>De seguida encontra-se a lista, ordenada alfabeticamente, com os meus 10 álbuns preferidos que foram lançados neste ano de 2009.</p>
<ul>
<li>Air &#8211; Love 2</li>
<li>Bill Callahan &#8211; Sometimes I Wish We Were an Eagle</li>
<li>Camera Obscura &#8211; My Maudlin Career</li>
<li>Kings of Convenience &#8211; Declaration Of Dependence</li>
<li>Nouvelle Vague &#8211; 3</li>
<li>Parov Stelar &#8211; That Swing</li>
<li>Placebo &#8211; Battle for the Sun</li>
<li>Röyksopp &#8211; Junior</li>
<li>The Prodigy &#8211; Invaders Must Die</li>
<li>The Whitest Boy Alive &#8211; Rules</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/os-albuns-de-musica-preferidos-de-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Optimização de websites ao nível do front-end</title>
		<link>http://www.goncalorodrigues.com/blog/optimizacao-de-websites-ao-nivel-do-front-end/</link>
		<comments>http://www.goncalorodrigues.com/blog/optimizacao-de-websites-ao-nivel-do-front-end/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 18:33:04 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[optimizações]]></category>
		<category><![CDATA[steve souders]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=844</guid>
		<description><![CDATA[Uma interacção eficaz entre o utilizador e um determinado website está dependente de aspectos gráficos ao nível do design e usabilidade das páginas mas também fortemente condicionada pelo facto do website conseguir responder rapidamente às acções do utilizador. É sobre este último aspecto da melhoria do tempo de resposta de aplicações de Internet que este [...]]]></description>
			<content:encoded><![CDATA[<p>Uma interacção eficaz entre o utilizador e um determinado website está dependente de aspectos gráficos ao nível do design e usabilidade das páginas mas também fortemente condicionada pelo facto do website conseguir responder rapidamente às acções do utilizador. É sobre este último aspecto da melhoria do tempo de resposta de aplicações de Internet que este artigo se debruça.</p>
<p>A maior parte das optimizações normalmente efectuadas a websites é feita nos processos de geração do documento HTML, traduzindo-se maioritariamente por ajustes e melhorias ao nível de servidores web e sistemas de gestão de bases de dados. Contudo é de realçar que as optimizações a esse nível apenas vão incidir em cerca de 20% do tempo total de resposta do documento até que este chegue ao utilizador. É pois facilmente compreensível que é de extrema importância optimizar os outros 80% do tempo de resposta, é aqui que surge o conceito de front-end optimization associado a páginas de Internet. Neste artigo estão descritas 20 boas práticas que devem ser tidas em conta de forma a efectuar-se correctamente este tipo de optimizações.</p>
<p>Esta lista não tem a pretensão de enumerar todas as boas práticas que devem ser seguidas no desenvolvimento de um <em>site</em> de Internet, pretende apenas chamar a atenção para algumas delas cabendo ao leitor deste documento ter a devida precaução quanto a outros aspectos que poderão eventualmente ser relevantes. As primeiras 14 boas práticas foram retiradas do livro do <a href="http://stevesouders.com/" onclick="pageTracker._trackPageview('/outgoing/stevesouders.com/?referer=');">Steve Souders</a> com o título de <a href="http://oreilly.com/catalog/9780596529307" onclick="pageTracker._trackPageview('/outgoing/oreilly.com/catalog/9780596529307?referer=');">High Performance Web Sites</a>.</p>
<p><span id="more-844"></span></p>
<h2>1 &#8211; Fazer menos HTTP requests</h2>
<p>Apenas entre 10% a 20% do tempo de resposta de uma página de Internet é gasto na resposta do ficheiro HTML sendo os restantes 80% a 90% gastos em HTTP requests de todos os componentes da página (imagens, scripts, folhas-de-estilo, Flash&#8230;) que se encontram referenciadas no documento HTML. Assim este é provavelmente o aspecto que caso seja correctamente optimizado irá causar maiores melhorias no desempenho de uma determinada página de Internet. A remoção de componentes da página iria proporcionar uma melhoria automática no desempenho, contudo também iria comprometer o design final da página. O ideal é manter o design desejado e ao mesmo tempo diminuir o número de HTTP requests, para isso podem-se seguir um conjunto de simples técnicas que conseguem melhorar o tempo de resposta de algumas páginas para metade ou até menos.</p>
<p>A ideia principal por detrás dessas técnicas passa por a fusão de conteúdos de forma a que um elevado número de HTTP requests possa ser transformado num número mais reduzido. Para imagens existem variadas técnicas que permitem essa união, nomeadamente: <a href="http://en.wikipedia.org/wiki/Image_map" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Image_map?referer=');">Image Maps</a> ou <a href="http://www.alistapart.com/articles/sprites" onclick="pageTracker._trackPageview('/outgoing/www.alistapart.com/articles/sprites?referer=');">CSS Sprites</a>, de seguida encontram-se dois pequenos exemplos destes mecanismos. Existe também para imagens uma técnica que permite eliminar os pedidos de HTTP dessas mesmas imagens denominado de Inline Images, ainda que este método não se encontra disponível na versão actual de alguns browsers incluindo o Internet Explorer. Relativamente a outros ficheiros que não sejam imagens o principio a aplicar deverá ser o mesmo, e sendo assim ficheiros como folhas-de-estilo ou JavaScripts devem na medida do possível serem fundidos num menor número.</p>
<h3>Image Maps</h3>
<p><strong>Image Maps &#8211; Server side &#8211; Não aconselhável</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;navbar.cgi&quot;&gt;&lt;img ismap src=&quot;imagemap.gif&quot;&gt;&lt;/a&gt;</pre></div></div>

<p>Utilizador envia as coordenadas do <em>clique</em>: http://&#8230;/navbar.cgi?127,13.</p>
<p><strong>Image Maps &#8211; Client side &#8211; Recomendável</strong></p>
<p>O mecanismo de Image Map do lado do cliente é preferível essencialmente por permitir ser utilizado independentemente da localização do rato estar ou não numa determinada zona.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;img usemap=&quot;#map1&quot; border=0 src=&quot;/images/imagemap.gif&quot;&gt;
&lt;map name=&quot;map1&quot;&gt;
  &lt;area shape=&quot;rect&quot; coords=&quot;0,0,31,31&quot; href=&quot;home.html&quot; title=&quot;Home&quot;&gt;
   …
&lt;/map&gt;</pre></div></div>

<h3>CSS Sprites</h3>
<p>Atenção: Não é suportado em alguns <em>browsers</em> mais antigos como é o caso do Opera 6!</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;span style=&quot;
  background-image: url('sprites.gif');
  background-position: -260px -90px;&quot;&gt;
&lt;/span&gt;</pre></div></div>

<p></p>
<h2>2- Usar uma Content Delivery Network</h2>
<p>As <a href="http://en.wikipedia.org/wiki/Content_delivery_network" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Content_delivery_network?referer=');">Content Delivery Networks</a> conseguem fornecer um factor de proximidade bastante apetecível do utilizador final, conseguindo-se tempos de resposta melhorados. Além disso as CDN permitem servir como cópias-de-segurança, aumentar a capacidade de storage, permitir mecanismos de caching mais precisos e  absorver picos de tráfego.<br />
Maioritariamente as CDN são utilizadas para servir conteúdos estáticos, como imagens, scripts, Flash, etc&#8230; Isto acontece porque os ficheiros estáticos têm poucas dependências. Por outro lado os conteúdos dinâmicos estão dependentes de um conjunto variado de factores como ligação a base de dados, autenticação, optimizações a nível do hardware  e do Sistema Operativos entre outros aspectos.</p>
<p></p>
<h2>3 – Adicionar cabeçalhos de expiração</h2>
<p>A promoção da utilização de mecanismos de cache para conteúdos que mudam pouco frequentemente pode trazer significativas melhorias. Para o conseguir pode-se fazer uso dos mecanismos de <a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html" onclick="pageTracker._trackPageview('/outgoing/httpd.apache.org/docs/2.0/mod/mod_expires.html?referer=');">header expires e max-age</a>. Em conteúdos que mudam mais frequentemente também se podem utilizar estes mecanismos mas com o cuidado de usar tempos de cache mais reduzidos ou então mudar o nome do ficheiro a ser alterado (por exemplo recorrendo à numeração numérica de versões do ficheiro) . Como é compreensível estes mecanismos só trazem melhorias quando a cache do utilizador se encontra preenchida pelo que da primeira vez que ele visita a página as melhorias são inexistentes.</p>
<p></p>
<h2>4 – Compressão G-Zip</h2>
<p>Reduzir o tempo da resposta HTTP pode ser alcançado reduzindo o tamanho dessa mesma resposta, uma vez que assim o tempo de transferência diminui visto que menos pacotes de informação têm de ser transferidos para o utilizador.<br />
Como a maior parte dos browsers suportam esta forma de compressão de resposta HTTP é aconselhável instalar os módulos nos servidores web e activar este mecanismo em todos os tipos de ficheiros que se encontram no servidor, não esquecendo os scripts e folhas-de-estilo.</p>
<p>Num servidor Apache 1.3 deve-se utilizar o <a href="http://sourceforge.net/projects/mod-gzip/" onclick="pageTracker._trackPageview('/outgoing/sourceforge.net/projects/mod-gzip/?referer=');">mod_gzip</a>, já num servidor Apache 2.x deve ser usado o <a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html" onclick="pageTracker._trackPageview('/outgoing/httpd.apache.org/docs/2.0/mod/mod_deflate.html?referer=');">mod_deflate</a>.  </p>
<p></p>
<h2>5 – Colocar as folhas-de-estilo no topo</h2>
<p>Ao colocar as folhas-de-estilo no topo do documento HTML permite com que a página seja reenderizada de forma progressiva. Assim o utilizador não fica perante uma simples página em branco durante um elevado período de tempo, o que caso acontecesse poderia fazer com que o utilizador ficasse impaciente e saísse da página. Com a folha-de-estilo no topo o browser consegue ler o estilo da página inicialmente e ir mostrando correctamente os vários componentes à medida que os vai recebendo. A colocação da folha-de-estilo no fundo impede o browser de mostrar os conteúdos sem que a folha-de-estilo tenha sido completamente descarregada.</p>
<p></p>
<h2>6 – Colocar os JavaScripts externos no fundo</h2>
<p>Relativamente aos JavaScripts a regra é a oposta à das folhas-de-estilo, devendo neste caso serem colocados no fundo do documento HTML. Tal regra é recomendada porque o download destes scripts bloqueia o paralelismo que se processa ao nível do download dos outros vários componentes da página. Ficando o mecanismo de reenderização progressivo da página fortemente prejudicada quando a ligação para estes scripts se encontra no topo da página.   </p>
<p></p>
<h2>7 – Evitar as expressions do CSS</h2>
<p>Devem ser evitadas ao máximo expressions do CSS uma vez que estas expressões são analisadas não apenas quando a página é carregada mas também com bastante frequência noutras situações, inclusivamente quando se faz scroll na página ou se move o rato. Esta análise constante destas expressões causa um overhead que provoca uma degradação do desempenho na visualização das páginas de Internet.</p>
<p>Assim deve-se fazer um esforço para evitar expressões deste tipo:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> expression<span style="color: #00AA00;">&#40;</span> 
  document<span style="color: #6666ff;">.body</span><span style="color: #6666ff;">.clientWidth</span> &lt; <span style="color: #cc66cc;">600</span> ? 
  “<span style="color: #933;">600px</span>” <span style="color: #00AA00;">:</span> “<span style="color: #993333;">auto</span>” <span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p></p>
<h2>8 – Utilizar o Javascript e o CSS em ficheiros externos</h2>
<p>Geralmente sempre que possível deverá optar-se pela utilização de ficheiros Javascript e CSS externos por forma a promover a utilização da memoria cache, uma vez que normalmente estes ficheiros são utilizados em diversas páginas ao longo do mesmo <em>site</em> de Internet. Apesar de se estar a aumentar o número de pedidos HTTP (a ir contra a regra número 1 da redução dos pedidos HTTP) normalmente a utilização de ficheiros externos nesta situação é compensatória.</p>
<p>Deve ser sempre usada a directiva LINK em vez de ser usada a directiva @import, para efectuar a importação do ficheiro CSS.</p>
<p></p>
<h2>9 – Reduzir os DNS lookups</h2>
<p>A Internet está fortemente dependente do conceito de DNS lookups onde o nome de um determinado <em>site</em> é convertido para uma sequência numérica, designada por IP, que define qual a máquina onde está alojada a página. Esta conversão acarreta um custo temporal ainda considerável, tipicamente entre os 20 e os 120 milissegundos. Sabendo que o browser não consegue descarregar nada sem que o DNS lookup tenha sido efectuado facilmente se percebe que por cada DNS lookup se está a impor um travão à reenderização progressiva da página. Assim e na medida em que for possível deve-se procurar reduzir ao máximo o número de DNS lookups.</p>
<p></p>
<h2>10 – Minificar o Javascript</h2>
<p>A minificação é um conceito que traduz a tentativa de redução do tamanho dos ficheiros através da remoção de espaços e outros caracteres desnecessários, permitindo assim a optimização do seu tempo de carregamento. Neste caso em particular permite uma melhoria do tempo de resposta uma vez que o tamanho do ficheiro Javascript se torna mais pequeno. As melhorias do tempo de resposta são tipicamente entre 15% e 30% quando se utiliza este método.</p>
<p>Um compressor gratuito e <em>on-line</em>: <a href="http://www.minifyjavascript.com" onclick="pageTracker._trackPageview('/outgoing/www.minifyjavascript.com?referer=');">http://www.minifyjavascript.com</a>. </p>
<p></p>
<h2>11 – Evitar Reendereçamento</h2>
<p>Um reendereçamento é usado para encaminhar um utilizador de um determinado URL para outro URL distinto. Existem variadíssimas situações em que os reendereçamentos são utilizados, nomeadamente website redesign, controlo de fluxo de tráfego ou tradução em URLS mais facilmente memorizáveis.<br />
Acontece que muitas vezes o reendereçamento é utilizado para carregar alguns componentes dentro de um documento HTML. Facilmente se percebe que até que o reendereçamento esteja completo nada relativo a esse componente poderá ser descarregado. Esta situação é muito utilizada em mecanismos publicitários dentro de páginas de Internet.<br />
Assim devem ser usados os mecanismos de reendereçamento com especial cuidado e devem ser evitados ao máximo.</p>
<p></p>
<h2>12 – Remover scripts duplicados</h2>
<p>Existem muitas situações, por estranho que possa parecer, onde na mesma página é carregado o mesmo script por mais do que uma vez. Isto acontece tipicamente porque os websites são construídos por grandes e diferentes equipas onde os mecanismos de sincronização entre elas por vezes não funcionam da melhor forma.<br />
Esta situação acarreta pedidos HTTP desnecessários para o caso do Internet Explorer se os scripts não estiverem em cache. Assim como execução de Javascript desnecessária e redundante em todos o browsers actuais. É pois perceptível que esta situação causa um overhead desnecessário.</p>
<p></p>
<h2>13 – Configurar Entity tags (ETags)</h2>
<p>Como já foi expresso a redução do número de pedidos de HTTP é o factor que melhor permite acelerar a experiência de utilização para o utilizador. Ao maximizar a capacidade do browser para colocar em cache componentes está-se automaticamente a reduzir o número de pedidos de HTTP. A maximização dessa capacidade é uma das características das ETags uma vez que permite validar se um componente em cache é válido ou não.<br />
Ainda assim este mecanismo deve ser utilizado com cuidados redobrados uma vez que não funciona caso exista alteração do servidor a utilizar. Alem disso a não utilização deste mecanismo permite obter cabeçalhos de resposta HTTP mais pequenos.<br />
Em situações convencionais é aconselhável desligar este mecanismo. No Apache este sistema pode ser desligado adicionando <em>FileETag none</em> ao ficheiro de configuração do Apache. Para desligar no IIS deve consultar o seguinte <a href="http://support.microsoft.com/kb/922703/" onclick="pageTracker._trackPageview('/outgoing/support.microsoft.com/kb/922703/?referer=');">link</a>.</p>
<p></p>
<h2>14 – Permitir a permanência em cache do Ajax</h2>
<p>Com o surgimento do conceito de Web 2.0 os websites para além de ganharem uma dimensão mais social também sofreram grandes alterações ao nível dos interfaces e da agregação de informação através de diferentes serviços web. De facto as páginas de Internet tornaram-se mais em aplicações com os conceitos de input e output bem definidos. O DHTML e o Ajax vieram facilitar a implementação desse novo paradigma.<br />
Apesar do Ajax ser uma tecnologia que permite que os pedidos sejam feitos num formato assíncrono, o utilizador pode acabar na mesma por ficar à espera da resposta. É verdade que graças ao Ajax os utilizadores não são forçados a efectuar um reload à página e que o interface continua a responder mesmo quando o utilizador está à espera. Ainda assim o utilizador pode (e continua muitas vezes) ter de ficar à espera que os resultados sejam mostrados antes de tomar qualquer nova acção. É importante esclarecer que um evento ser assíncrono é diferente de um evento ser instantâneo.<br />
Basicamente para melhorar o desempenho devem-se permitir entradas na cache do utilizador para os pedidos activos do Ajax, pois são estes os principais responsáveis por causar o maior impacto na experiência do utilizador. Outras das regras já apresentadas anteriormente também podem ser aplicadas ao pedidos do Ajax, entre elas estão a compressão GZip, a redução dos DNS lookups ou a minificação dos Javascripts.</p>
<p></p>
<h2>Bónus &#8211; 15 – Promover download ficheiros Javascript em paralelo</h2>
<p>É possível descarregar ficheiros Javascript em paralelo, tirando partido da cada vez mais vulgar banda larga e da sua tipicamente elevada velocidade de acesso à Internet. Seguem-se dois pequenos excertos de código HTML que mostra como o fazer.</p>
<p><strong>Sem paralelismo:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Script1.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Script2.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span></pre></div></div>

<p><strong>Com paralelismo:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">(...)
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
  document.<span style="color: #660066;">writeln</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;script type='text/javascript' src='Script1.js'&gt;&lt;&quot;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;/script&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  document.<span style="color: #660066;">writeln</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;script type='text/javascript' src='Script2.js'&gt;&lt;&quot;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;/script&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
(...)</pre></div></div>

<h2>Bónus &#8211; 16 – Utilizar favicon.ico pequeno e armazenável em cache</h2>
<p>O favicon.ico é uma pequena imagem que tipicamente é apresentada na barra onde se encontra o endereço do <em>site</em> em que o utilizador se encontra. Mesmo que opte por não utilizar favicon.ico no desenvolvimento da sua página o browser vai sempre realizar um request à sua procura. Caso o icon não esteja presente o resultado devolvido pelo servidor irá ser um 404 Not Found e não aparecerá nenhum icon ao utilizador.<br />
Como o custo associado ao request do icon não pode ser evitado é recomendável que faça proveito desta oportunidade e coloque um icon com um tamanho reduzido de forma a reforçar a identidade da sua página. Tipicamente o tamanho do icon não deverá ultrapassar 1kbyte por forma a não prejudicar o desempenho. É ainda possível definir o parâmetro expires com um valor elevado, por exemplo na ordem dos 4 meses, de forma a esse icon permanecer na cache dos utilizadores. </p>
<p></p>
<h2>Bónus &#8211; 17 – Não redimensionar imagens em HTML</h2>
<p>Ao diminuir o tamanho de imagens recorrendo a código em HTML está-se a exigir o download de um ficheiro de maior tamanho do que aquele que será efectivamente visualizado. Como é facilmente perceptível esta situação acarreta um overhead desnecessário, sendo que as reduções de tamanho das imagens devem sempre ser realizadas no próprio ficheiro da imagem.</p>
<p></p>
<h2>Bónus &#8211; 18 – Utilizar o formato de ficheiro de imagens correcto</h2>
<p>Existem diversos formatos com que as imagens podem ser guardados, uma escolha adequada desse mesmo formato pode fazer com que essa imagem se torne mais leve, ocupando menos espaço, sem que exista perda perceptível da sua qualidade para o utilizador.</p>
<p></p>
<h2>Bónus &#8211; 19 – Declarar sempre as dimensões das imagens</h2>
<p>Deve-se sempre declarar a altura e o comprimento dos diferentes componentes como imagens ou vídeos uma vez que isso evita que o browser tenha que “adivinhar” o tamanho desses objectos fazendo com que o carregamento da página demore mais. Além disso assim o browser ao reservar automaticamente o respectivo espaço para esses componentes faz com que o carregamento da página seja muito mais consistente.</p>
<p></p>
<h2>Bónus &#8211; 20 – Codificar as folhas-de-estilo mais pequenas possíveis</h2>
<p>É possível codificar as folhas-de-estilo recorrendo a código mais sucinto sem que isso traga alterações ao resultado final. Deixo alguns exemplos.</p>
<p><strong>Exemplo 1:</strong></p>
<p>O código:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#div_xpto</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">13px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">0px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>produz exactamente o mesmo resultado do que:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#div_xpto</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">15px</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p><strong>Exemplo 2:</strong></p>
<p>O código:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;fundo.jpg&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ffffff</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #3333ff;">:repeat-</span>x<span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #3333ff;">:<span style="color: #000000; font-weight: bold;">top</span> </span>center<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>produz exactamente o mesmo resultado do que:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;fundo.jpg&quot;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc00cc;">#fff</span> <span style="color: #000000; font-weight: bold;">top</span> <span style="color: #993333;">center</span> <span style="color: #993333;">repeat-x</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Também é recomendável comprimir o código CSS, tal poderá ser feito neste compressor gratuito e <em>on-line</em>: <a href="http://www.cssdrive.com/index.php/main/csscompressor" onclick="pageTracker._trackPageview('/outgoing/www.cssdrive.com/index.php/main/csscompressor?referer=');">http://www.cssdrive.com/index.php/main/csscompressor</a>. </p>
<p></p>
<p>Para um estudo mais aprofundado sobre todo este tema recomendo vivamente a leitura do <a href="http://oreilly.com/catalog/9780596529307" onclick="pageTracker._trackPageview('/outgoing/oreilly.com/catalog/9780596529307?referer=');">livro</a> onde fui buscar inspiração para este artigo. Como referi inicialmente estas são apenas algumas das boas práticas que devem ser seguidas para optimização de websites ao nível do seu front-end, se tiverem mais algumas partilhem comentando este artigo. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/optimizacao-de-websites-ao-nivel-do-front-end/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Cópia e protecção de USB Pen Drives</title>
		<link>http://www.goncalorodrigues.com/blog/copia-e-proteccao-de-usb-pen-drives/</link>
		<comments>http://www.goncalorodrigues.com/blog/copia-e-proteccao-de-usb-pen-drives/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 11:06:11 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=887</guid>
		<description><![CDATA[Uma empresa Portuguesa criou uma família de aplicações, designada de uDo, que facilita o processo de copiar e proteger USB Flash Drives, as vulgarmente conhecidas como USB Pen Drives. Actualmente esta família é composta por 3 aplicações.
Uma dessas aplicações é a uDo Personal, é completamente gratuita e permite ajudar a automatizar o processo de copiar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.goncalorodrigues.com/wp-content/uploads/2009/12/udo-banner.jpg" alt="udo-banner" title="" width="500" height="212" class="alignnone size-full wp-image-888" /></p>
<p>Uma empresa Portuguesa criou uma família de aplicações, designada de uDo, que facilita o processo de copiar e proteger USB Flash Drives, as vulgarmente conhecidas como USB Pen Drives. Actualmente esta família é composta por 3 aplicações.</p>
<p>Uma dessas aplicações é a uDo Personal, é completamente gratuita e permite ajudar a automatizar o processo de copiar múltiplas USB Pen Drives. Infelizmente só permite copiar 2 USB Pen em simultâneo.</p>
<p>A uDo Professional já permite copiar até 8 USB Pen Drives simultaneamente (que me parece mais que suficiente, além disso o meu computador só tem 4 portas USB). Esta versão tem dois tipos de licenças, uma que permite usar a aplicação por um período de 1 mês e outra licença que permite usar a aplicação por um período de 1 ano. Pode ser uma ferramenta bastante útil para quem pretende distribuir várias USB Pen Drives numa conferência, numa campanha promocional ou para quem tem a necessidade de copiar várias Pen Drives com bastante frequência. Esta aplicação é uma óptima alternativa às máquinas físicas de cópia de Pen Drives que têm preços que se tornam proibitivos para um utilizador a título individual e até para pequenas e médias empresas.</p>
<p>A terceira aplicação designada de uDo Enterprise permite, para além de copiar um número infinito de Pen Drives simultaneamente (o único limite é o número de portas USB), proteger ficheiros executáveis de forma a que eles só possam ser executados dentro da Pen Drive onde foram colocados. Penso que a uDo Enterprise Edition é um excelente complemento a pequenas e médias empresas de desenvolvimento de software que pretendam proteger os seus programas de forma a que eles apenas corram dentro das suas USB Pen Drives. É um novo meio de distribuição de software.</p>
<p>Mais informações podem ser consultadas em: <a href="http://www.usbprotection.net" onclick="pageTracker._trackPageview('/outgoing/www.usbprotection.net?referer=');">www.usbprotection.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/copia-e-proteccao-de-usb-pen-drives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Brightest Diamond em Coimbra</title>
		<link>http://www.goncalorodrigues.com/blog/my-brightest-diamond-em-coimbra/</link>
		<comments>http://www.goncalorodrigues.com/blog/my-brightest-diamond-em-coimbra/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 22:01:14 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Música]]></category>
		<category><![CDATA[concerto]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=870</guid>
		<description><![CDATA[Ontem, dia 4 de Dezembro de 2009, teve lugar no Teatro Académico Gil Vicente de Coimbra o concerto do projecto My Brightest Diamond. Esta banda mistura elementos de vários géneros musicais como a ópera, o cabaret, a música de câmara ou o rock. Este cocktail musical dá origem a um som alternativo, indie, folk e [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.goncalorodrigues.com/wp-content/uploads/2009/12/my-brightest-diamond.jpg" alt="my-brightest-diamond" title="" width="500" height="500" /></p>
<p>Ontem, dia 4 de Dezembro de 2009, teve lugar no Teatro Académico Gil Vicente de Coimbra o concerto do projecto <a href="http://www.mybrightestdiamond.com" onclick="pageTracker._trackPageview('/outgoing/www.mybrightestdiamond.com?referer=');">My Brightest Diamond</a>. Esta banda mistura elementos de vários géneros musicais como a ópera, o cabaret, a música de câmara ou o rock. Este cocktail musical dá origem a um som alternativo, indie, folk e até mesmo trip-hop onde a fantástica voz de Shara Worden tem um papel bastante importante.</p>
<p>Relativamente ao concerto em si, este iniciou-se com uma entrada em palco bastante original dos três elementos: Shara Worden, a vocalista/guitarrista, Brian Wolfe, o baterista e Nathan Lithgow, o baixista. Posteriormente surgiu um pequeno inconveniente com o som da guitarra de Shara Worden que permitiu um curto diálogo com o público e que remeteu o espectáculo para um solo de bateria enquanto o problema era resolvido. Este inconveniente criou uma atmosfera mais descontraída entre os artistas e o público e surgiram alguns sorrisos enquanto Shara Worden fazia alguns comentários divertidos sobre o facto de não ter o som que desejava. </p>
<p>Assim que o problema foi resolvido, as músicas foram-se seguindo com um alinhamento bastante interessante onde surgiram músicas tanto do álbum Bring Me the Workhorse assim como do mais recente A Thousand Shark&#8217;s Teeth. Gostei particularmente de ver ao vivo as músicas <a href="http://www.vimeo.com/820853" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/820853?referer=');">Dragonfly</a>, <a href="http://www.vimeo.com/820910" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/820910?referer=');">Disappear</a>, <a href="http://www.vimeo.com/820706" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/820706?referer=');">Apples</a> e <a href="http://www.youtube.com/watch?v=RjceLEnQLck" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=RjceLEnQLck&amp;referer=');">Golden Star</a>. Também adorei a cover da música Feeling Good da Nina Simone que proporcionou um clima de blues interessante. Existiram alguns momentos de interacção entre a banda e o público, onde Shara Worden introduzia algumas das músicas com a informação da sua fonte de inspiração e noutras acabava por caracterizava o seu cenário envolvente convidando os espectadores a viajar até esse cenário e lá escutarem a sua actuação.</p>
<p>A abrir o encore surgiu a música <a href="http://www.vimeo.com/3744221" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/3744221?referer=');">The Gentlest Gentleman</a> tendo o público inclusivamente acompanhado Shara Worden na música. Foi também interpretada uma cover da música Tainted Love dos Soft Cell com um ritmo altamente dançável. No fim, o publico aplaudiu de pé e estava visivelmente satisfeito com o espectáculo. Eu adorei!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/my-brightest-diamond-em-coimbra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comunicação através da Internet na era Web 2.0</title>
		<link>http://www.goncalorodrigues.com/blog/comunicacao-atraves-da-internet-na-era-web-2-0/</link>
		<comments>http://www.goncalorodrigues.com/blog/comunicacao-atraves-da-internet-na-era-web-2-0/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 00:41:15 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[comunicação]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=820</guid>
		<description><![CDATA[Já no século IV a.C. Aristóteles afirmava que “O Homem é um animal social”, passados cerca de 2300 anos a realidade permanece e o Homem continua a ser naturalmente carente, necessitando de comunicar com outras pessoas para alcançar a sua plenitude. Contudo, e apesar desta necessidade permanecer inalterada, a Internet, e especialmente a forte adopção [...]]]></description>
			<content:encoded><![CDATA[<p>Já no século IV a.C. Aristóteles afirmava que “O Homem é um animal social”, passados cerca de 2300 anos a realidade permanece e o Homem continua a ser naturalmente carente, necessitando de comunicar com outras pessoas para alcançar a sua plenitude. Contudo, e apesar desta necessidade permanecer inalterada, a Internet, e especialmente a forte adopção das ideias da Web 2.0, veio alterar drasticamente a forma de comunicação entre as pessoas.</p>
<p>O meio de comunicação agora usado com frequência é a Internet, permitindo o contacto quase instantâneo com qualquer pessoa no mundo. Criam-se por vezes redes bastante complexas e ampliadas, através de serviços como o <a href="http://twitter.com/" onclick="pageTracker._trackPageview('/outgoing/twitter.com/?referer=');">Twitter</a> ou o <a href="http://www.facebook.com" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com?referer=');">Facebook</a>, que definem a nossa actividade social na Internet. Ainda assim, continuam a existir alguns núcleos bem definidos onde estão os nossos contactos mais próximos e outros que inclusivamente já conhecemos pessoalmente. Quanto a mim, o maior potencial das aplicações sociais da Web 2.0 é a facilidade com que estes núcleos rapidamente se interligam entre si e também a comodidade com que podemos saltar entre estes conjuntos diferentes de pessoas assumindo rapidamente contextos e papéis diferentes. Desta forma, é assim possível chegar mais comodamente e mais rapidamente a mais pessoas.</p>
<p>No entanto, toda esta facilidade tem um inconveniente que é a falta de um convívio mais natural e transparente entre as pessoas. A Internet ainda não permite um nível de imersão suficiente que possibilite com que as pessoas se relacionem mais espontaneamente e a um nível mais íntimo. Nas interacções com as pessoas que não conhecemos pessoalmente, a Internet desempenha um papel maioritariamente com objectivos profissionais ou ao nível de troca de informações de carácter mais impessoal. </p>
<p><img src="http://www.goncalorodrigues.com/wp-content/uploads/2009/11/levels-intimacy-communication.png" alt="levels-intimacy-communication" width="600" height="301" /></p>
<p>Imagem da autoria de <a href="http://pleaseenjoy.com" onclick="pageTracker._trackPageview('/outgoing/pleaseenjoy.com?referer=');">Ji Lee’s</a>, clicar <a href="http://www.goncalorodrigues.com/wp-content/uploads/2009/11/levels-intimacy-communication.png">aqui</a> para ampliar.</p>
<p>Ainda assim e apesar de estar normalmente associado um nível mais baixo de intimidade a serviços como o Twitter (e até o Facebook) estes podem claramente ter um papel importante num primeiro contacto entre as pessoas. Como referi podem ser excelentes formas de conhecer mais pessoas e também pessoas fora do nosso núcleo habitual do quotidiano, com as quais posteriormente se poderá construir gradualmente algumas amizades.</p>
<p>Não é viável, nem saudável, que a Internet seja o meio exclusivo de comunicação entre as pessoas, mas caso se consiga tirar partido o máximo partido das suas vantagens e atenuar os seus maiores defeitos penso que será cada vez mais um instrumento de união entre todos nós.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/comunicacao-atraves-da-internet-na-era-web-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>As nossas vidas cada vez mais na nuvem</title>
		<link>http://www.goncalorodrigues.com/blog/as-nossas-vidas-cada-vez-mais-na-nuvem/</link>
		<comments>http://www.goncalorodrigues.com/blog/as-nossas-vidas-cada-vez-mais-na-nuvem/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 18:35:16 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=806</guid>
		<description><![CDATA[Tem-se vindo a verificar-se uma mudança de mentalidades na utilização da Informática e da Internet para o utilizador final, estando a crescer uma filosofia denominada de cloud computing.
O cloud computing, de uma forma muito básica, diz respeito à utilização da Internet como uma nuvem onde, entre outras coisas, estão as nossas aplicações e os nossos [...]]]></description>
			<content:encoded><![CDATA[<p>Tem-se vindo a verificar-se uma mudança de mentalidades na utilização da Informática e da Internet para o utilizador final, estando a crescer uma filosofia denominada de cloud computing.</p>
<p>O cloud computing, de uma forma muito básica, diz respeito à utilização da Internet como uma nuvem onde, entre outras coisas, estão as nossas aplicações e os nossos documentos. O utilizador é abstraído de todos os requisitos tecnológicos e através da Internet, tipicamente com a utilização de um simples browser, controla e acede aos seus dados. O <a href="http://www.gmail.com" onclick="pageTracker._trackPageview('/outgoing/www.gmail.com?referer=');">Gmail</a>, <a href="http://mail.yahoo.com" onclick="pageTracker._trackPageview('/outgoing/mail.yahoo.com?referer=');">Yahoo! Mail</a>, <a href="https://www.getdropbox.com/" onclick="pageTracker._trackPageview('/outgoing/www.getdropbox.com/?referer=');">Dropbox</a>, <a href="http://www.flickr.com" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com?referer=');">Flickr</a> e <a href="http://www.youtube.com" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com?referer=');">YouTube</a>, são alguns exemplos de aplicações que, de certa forma, adoptam o conceito de cloud computing.</p>
<p>Existem várias vantagens para o utilizador comum em utilizar esta filosofia, por exemplo na maioria das vezes não é necessário instalar aplicações na sua máquina. Outra vantagem clara é que o trabalho em equipa e a partilha de dados torna-se muito mais fácil uma vez que toda a informação está fisicamente no mesmo local (na nuvem).</p>
<p>Contudo também existem algumas desvantagens, nomeadamente o facto de se ter que obrigatoriamente confiar nas entidades que fornecem os serviços uma vez que são essas entidades que processam e guardam as informações. Outra típica desvantagem é que, apesar das recentes melhorias, ainda não se consegue um nível de interactividade e de imersão do utilizador tão elevado como se os dados e as aplicações estivessem fisicamente no computador do utilizador.</p>
<p>De seguida encontra-se um infográfico, retirado <a href="http://mozy.com/blog/misc/life-in-the-cloud/" onclick="pageTracker._trackPageview('/outgoing/mozy.com/blog/misc/life-in-the-cloud/?referer=');">daqui</a>, que mostra bem esta tendência crescente de todos nós colocarmos cada vez mais as suas nossas vidas na nuvem.</p>
<p><span id="more-806"></span></p>
<p><img src="http://www.goncalorodrigues.com/wp-content/uploads/2009/10/life_in_the_cloud_infographic.jpg" alt="life_in_the_cloud_infographic" title="" width="600" height="6148" class="size-full wp-image-807" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/as-nossas-vidas-cada-vez-mais-na-nuvem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anatomia Tipográfica</title>
		<link>http://www.goncalorodrigues.com/blog/anatomia-tipografica/</link>
		<comments>http://www.goncalorodrigues.com/blog/anatomia-tipografica/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 11:09:05 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Web design]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[tipografia]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=787</guid>
		<description><![CDATA[No ano de 2008 Paulo de Loyola criou um infográfico bastante útil com um glossário visual dos elementos de composição de um caractere tipográfico. Apenas numa imagem conseguiu resumir e interligar um conjunto de informações importantes sobre a anatomia tipográfica. É um recurso perfeito para consultas rápidas ou para quem não tem muito conhecimento na [...]]]></description>
			<content:encoded><![CDATA[<p>No ano de 2008 <a href="http://www.deloyola.net" onclick="pageTracker._trackPageview('/outgoing/www.deloyola.net?referer=');">Paulo de Loyola</a> criou um infográfico bastante útil com um glossário visual dos elementos de composição de um caractere tipográfico. Apenas numa imagem conseguiu resumir e interligar um conjunto de informações importantes sobre a anatomia tipográfica. É um recurso perfeito para consultas rápidas ou para quem não tem muito conhecimento na área e pretende aprender um pouco mais sobre o universo da tipografia.</p>
<p><img src="http://www.goncalorodrigues.com/wp-content/uploads/2009/10/anatomia-tipografica.jpg" alt="anatomia-tipografica" title="" width="600" height="405" class="alignnone size-full wp-image-789" /></p>
<p>Clicar <a href="http://www.goncalorodrigues.com/wp-content/uploads/2009/10/anatomia-tipografica.jpg">aqui</a> para ver a imagem no tamanho original. Também é possível descarregar no formato <a href="http://www.goncalorodrigues.com/wp-content/uploads/2009/10/anatomia-tipografica.pdf">pdf</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/anatomia-tipografica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Frame</title>
		<link>http://www.goncalorodrigues.com/blog/google-chrome-frame/</link>
		<comments>http://www.goncalorodrigues.com/blog/google-chrome-frame/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 20:44:39 +0000</pubDate>
		<dc:creator>Gonçalo Rodrigues</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.goncalorodrigues.com/?p=760</guid>
		<description><![CDATA[O Google Chrome Frame é o novo plugin para o Internet Explorer ( versões 6, 7 e 8 ) que possibilita a visualização de páginas no Internet Explorer como se fossem abertas no Google Chrome. Assim é possível a utilização das mais recentes tecnologias mesmo utilizando o Internet Explorer. Permite, inclusivamente, que o Internet Explorer [...]]]></description>
			<content:encoded><![CDATA[<p>O Google Chrome Frame é o novo <em>plugin</em> para o Internet Explorer ( versões 6, 7 e 8 ) que possibilita a visualização de páginas no Internet Explorer como se fossem abertas no Google Chrome. Assim é possível a utilização das mais recentes tecnologias mesmo utilizando o Internet Explorer. Permite, inclusivamente, que o Internet Explorer use HTML5 e melhora consideravelmente o desempenho de Javascript. Isso é possível porque com este <em>plugin</em> o Internet Explorer consegue renderizar as páginas através do motor WebKit em vez do seu tradicional Trident.</p>
<p>No entanto para funcionar têm de ser tomadas medidas tanto do lado dos utilizadores como do lado dos programadores. Do lado do utilizador é necessário que instalem o já mencionado <em>plugin</em>. Já os programadores têm de adicionar o seguinte pedaço de código no inicio das suas páginas:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> equiv<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;X-UA-Compatible&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;chrome=1&quot;</span>&gt;</span></pre></div></div>

<p>Quanto a mim este novo <em>plugin</em> irá, especialmente numa fase inicial, alterar pouca coisa. Os utilizadores vulgares não estão interessados ou preocupados em instalar um <em>plugin</em> e talvez mais rapidamente instalem o browser Google Chrome. Do lado dos programadores se não existir uma aceitação global desta prática e se não se colocar esse pequeno pedaço de código no inicio das páginas também condiciona de imediato o sucesso desta iniciativa. </p>
<p>Outro aspecto a considerar é que também poderá surgir uma sensação ainda mais inconsistente entre as páginas de Internet, uma vez que páginas visualizadas com o mesmo browser serão renderizadas de forma diferente, consoante o <em>plugin</em> se encontre instalado ou não. Ainda assim penso que é uma boa iniciativa por parte da Google.</p>
<p></p>
<p><em>Mais informações e download do plugin:</em></p>
<ul>
<li>Página do projecto: <a href="http://code.google.com/intl/pt-PT/chrome/chromeframe/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/intl/pt-PT/chrome/chromeframe/?referer=');">http://code.google.com/intl/pt-PT/chrome/chromeframe/</a></li>
<li>Vídeo que faz a Introdução ao Google Chrome Frame: <a href="http://www.youtube.com/watch?v=sjW0Bchdj-w" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=sjW0Bchdj-w&amp;referer=');">http://www.youtube.com/watch?v=sjW0Bchdj-w</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.goncalorodrigues.com/blog/google-chrome-frame/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
