<?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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>writing software is more fun than working</title>
	
	<link>http://www.francodacosta.com/blog</link>
	<description>because it is!</description>
	<lastBuildDate>Thu, 04 Feb 2010 20:22:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.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" type="application/rss+xml" href="http://feeds.feedburner.com/francodacosta" /><feedburner:info uri="francodacosta" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Cat III Landing</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/CmyK0nDwKT4/cate-3-landing</link>
		<comments>http://www.francodacosta.com/blog/general/cate-3-landing#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:21:42 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=636</guid>
		<description><![CDATA[This is an amazing Cat 3 Landing.
A Category III Landing is done with no decision height and no runway visual range. basically its a computer landing the plane!
Just watch
&#160;

]]></description>
			<content:encoded><![CDATA[<p>This is an amazing Cat 3 Landing.</p>
<p>A Category III Landing is done with no decision height and no runway visual range. basically its a computer landing the plane!</p>
<p>Just watch</p>
<p>&nbsp;</p>
<p><object height="344" width="425"><embed allowfullscreen="true" allowscriptaccess="always" height="344" src="http://www.youtube.com/v/EgeT-F9-1KI&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" width="425"></embed></object></p>

<p><a href="http://feedads.g.doubleclick.net/~a/AO2srZuqs8fia7yf5AlEGp7t4SA/0/da"><img src="http://feedads.g.doubleclick.net/~a/AO2srZuqs8fia7yf5AlEGp7t4SA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AO2srZuqs8fia7yf5AlEGp7t4SA/1/da"><img src="http://feedads.g.doubleclick.net/~a/AO2srZuqs8fia7yf5AlEGp7t4SA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=CmyK0nDwKT4:4f1aSWo7wlk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/CmyK0nDwKT4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/cate-3-landing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/cate-3-landing</feedburner:origLink></item>
		<item>
		<title>casulo: your bedroom in a box</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/kocH_1-KPpw/casulo-your-bedroom-in-a-box</link>
		<comments>http://www.francodacosta.com/blog/general/casulo-your-bedroom-in-a-box#comments</comments>
		<pubDate>Tue, 02 Feb 2010 20:00:37 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=597</guid>
		<description><![CDATA[
Today I stumble upon this precious gem of creativity by Marcel Krings &#38; Sebastian Muhlhauser, it&#39;s called casulo
I&#39;ve never imagined that it could be possible to store an entire bedroom in just a box
&#34;Casulo is a complete set of room furniture which can be set up in less than ten minutes and later disassembled and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.francodacosta.com/blog/wp-content/uploads/11.jpg"><img alt="" class="alignnone size-full wp-image-609" height="222" src="http://www.francodacosta.com/blog/wp-content/uploads/11.jpg" title="1" width="600" /></a></p>
<p>Today I stumble upon this precious gem of creativity by <a href="http://www.mein-casulo.de/en/en_index.htm">Marcel Krings &amp; Sebastian Muhlhauser</a>, it&#39;s called <a href="http://www.mein-casulo.de/en/casulo.htm" target="_blank">casulo</a></p>
<p>I&#39;ve never imagined that it could be possible to store an entire bedroom in just a box</p>
<p><em>&quot;Casulo is a complete set of room furniture which can be set up in less than ten minutes and later disassembled and repacked like a standard Euro pallet of 80 cm by 120 cm (31.5 inch by 47.2 inch). No tools are needed in the process&quot; <br />
	</em></p>
<p>Enough talking, a picture is worth a thousand words &#8230;</p>
<p>&nbsp;</p>
<p><img alt="" class="alignnone wp-image-599" src="http://www.francodacosta.com/blog/wp-content/uploads/2.jpg" title="2" /></p>
<p><img alt="" class="alignnone wp-image-600" src="http://www.francodacosta.com/blog/wp-content/uploads/3.jpg" title="3" /></p>
<p><img alt="" class="alignnone wp-image-601" src="http://www.francodacosta.com/blog/wp-content/uploads/4.jpg" title="4" /></p>
<p><img alt="" class="alignnone wp-image-602" src="http://www.francodacosta.com/blog/wp-content/uploads/5.jpg" title="5" /></p>
<p><img alt="" class="alignnone wp-image-604" src="http://www.francodacosta.com/blog/wp-content/uploads/7.jpg" title="7" /></p>
<p><img alt="" class="alignnone wp-image-605" src="http://www.francodacosta.com/blog/wp-content/uploads/8.jpg" title="8" /></p>
<p><img alt="" class="alignnone wp-image-606" src="http://www.francodacosta.com/blog/wp-content/uploads/9.jpg" title="9" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/F-wH5V3k2Bya4zGa7SEvNDEFyxM/0/da"><img src="http://feedads.g.doubleclick.net/~a/F-wH5V3k2Bya4zGa7SEvNDEFyxM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/F-wH5V3k2Bya4zGa7SEvNDEFyxM/1/da"><img src="http://feedads.g.doubleclick.net/~a/F-wH5V3k2Bya4zGa7SEvNDEFyxM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=kocH_1-KPpw:Kb3yvnMzz2c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/kocH_1-KPpw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/casulo-your-bedroom-in-a-box/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/casulo-your-bedroom-in-a-box</feedburner:origLink></item>
		<item>
		<title>Force Firefox to save passwords</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/_o84M7_I1cw/force-firefox-to-save-passwords</link>
		<comments>http://www.francodacosta.com/blog/general/force-firefox-to-save-passwords#comments</comments>
		<pubDate>Fri, 15 Jan 2010 20:15:44 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bookmark]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/general/force-firefox-to-save-passwords</guid>
		<description><![CDATA[If you add this snippet as bookmark on your bookmark-toolbar you can enable Firefox to save passwords even if the website tells Firefox otherwise:

javascript:&#40;function&#40;&#41;&#123;var%20ca,cea,cs,df,dfe,i,j,x,y;function%20n&#40;i,what&#41;&#123;return%20i+&#38;quot;%20&#38;quot;+what+&#40;&#40;i==1&#41;?&#38;quot;&#38;quot;:&#38;quot;s&#38;quot;&#41;&#125;ca=cea=cs=0;df=document.forms;for&#40;i=0;i&#38;lt;df.length;++i&#41;&#123;x=df&#91;i&#93;;dfe=x.elements;if&#40;x.onsubmit&#41;&#123;x.onsubmit=&#38;quot;&#38;quot;;++cs;&#125;if&#40;x.attributes&#91;&#38;quot;autocomplete&#38;quot;&#93;&#41;&#123;x.attributes&#91;&#38;quot;autocomplete&#38;quot;&#93;.value=&#38;quot;on&#38;quot;;++ca;&#125;for&#40;j=0;j&#38;lt;dfe.length;++j&#41;&#123;y=dfe&#91;j&#93;;if&#40;y.attributes&#91;&#38;quot;autocomplete&#38;quot;&#93;&#41;&#123;y.attributes&#91;&#38;quot;autocomplete&#38;quot;&#93;.value=&#38;quot;on&#38;quot;;++cea;&#125;&#125;&#125;alert&#40;&#38;quot;Removed%20autocomplete=off%20from%20&#38;quot;+n&#40;ca,&#38;quot;form&#38;quot;&#41;+&#38;quot;%20and%20from%20&#38;quot;+n&#40;cea,&#38;quot;form%20element&#38;quot;&#41;+&#38;quot;,%20and%20removed%20onsubmit%20from%20&#38;quot;+n&#40;cs,&#38;quot;form&#38;quot;&#41;+&#38;quot;.%20After%20you%20type%20your%20password%20and%20submit%20the%20form,%20the%20browser%20will%20offer%20to%20remember%20your%20password.&#38;quot;&#41;&#125;&#41;&#40;&#41;;

]]></description>
			<content:encoded><![CDATA[<p>If you add this snippet as bookmark on your bookmark-toolbar you can enable Firefox to save passwords even if the website tells Firefox otherwise:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">javascript<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>var<span style="color: #339933;">%</span>20ca<span style="color: #339933;">,</span>cea<span style="color: #339933;">,</span>cs<span style="color: #339933;">,</span>df<span style="color: #339933;">,</span>dfe<span style="color: #339933;">,</span>i<span style="color: #339933;">,</span>j<span style="color: #339933;">,</span>x<span style="color: #339933;">,</span>y<span style="color: #339933;">;</span>function<span style="color: #339933;">%</span>20n<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>what<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>return<span style="color: #339933;">%</span>20i<span style="color: #339933;">+&amp;</span>quot<span style="color: #339933;">;%</span>20<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;+</span>what<span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">==</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?&amp;</span>quot<span style="color: #339933;">;&amp;</span>quot<span style="color: #339933;">;:&amp;</span>quot<span style="color: #339933;">;</span>s<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span>ca<span style="color: #339933;">=</span>cea<span style="color: #339933;">=</span>cs<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>df<span style="color: #339933;">=</span>document.<span style="color: #660066;">forms</span><span style="color: #339933;">;</span>for<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>df.<span style="color: #660066;">length</span><span style="color: #339933;">;++</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>x<span style="color: #339933;">=</span>df<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>dfe<span style="color: #339933;">=</span>x.<span style="color: #660066;">elements</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>x.<span style="color: #660066;">onsubmit</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>x.<span style="color: #660066;">onsubmit</span><span style="color: #339933;">=&amp;</span>quot<span style="color: #339933;">;&amp;</span>quot<span style="color: #339933;">;;++</span>cs<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>x.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>autocomplete<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>x.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>autocomplete<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">value</span><span style="color: #339933;">=&amp;</span>quot<span style="color: #339933;">;</span>on<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;;++</span>ca<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>dfe.<span style="color: #660066;">length</span><span style="color: #339933;">;++</span>j<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>y<span style="color: #339933;">=</span>dfe<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>if<span style="color: #009900;">&#40;</span>y.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>autocomplete<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>y.<span style="color: #660066;">attributes</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>autocomplete<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">value</span><span style="color: #339933;">=&amp;</span>quot<span style="color: #339933;">;</span>on<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;;++</span>cea<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>Removed<span style="color: #339933;">%</span>20autocomplete<span style="color: #339933;">=</span>off<span style="color: #339933;">%</span>20from<span style="color: #339933;">%</span>20<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;+</span>n<span style="color: #009900;">&#40;</span>ca<span style="color: #339933;">,&amp;</span>quot<span style="color: #339933;">;</span>form<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+&amp;</span>quot<span style="color: #339933;">;%</span>20and<span style="color: #339933;">%</span>20from<span style="color: #339933;">%</span>20<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;+</span>n<span style="color: #009900;">&#40;</span>cea<span style="color: #339933;">,&amp;</span>quot<span style="color: #339933;">;</span>form<span style="color: #339933;">%</span>20element<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+&amp;</span>quot<span style="color: #339933;">;,%</span>20and<span style="color: #339933;">%</span>20removed<span style="color: #339933;">%</span>20onsubmit<span style="color: #339933;">%</span>20from<span style="color: #339933;">%</span>20<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;+</span>n<span style="color: #009900;">&#40;</span>cs<span style="color: #339933;">,&amp;</span>quot<span style="color: #339933;">;</span>form<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+&amp;</span>quot<span style="color: #339933;">;</span>.<span style="color: #339933;">%</span>20After<span style="color: #339933;">%</span>20you<span style="color: #339933;">%</span>20type<span style="color: #339933;">%</span>20your<span style="color: #339933;">%</span>20password<span style="color: #339933;">%</span>20and<span style="color: #339933;">%</span>20submit<span style="color: #339933;">%</span>20the<span style="color: #339933;">%</span>20form<span style="color: #339933;">,%</span>20the<span style="color: #339933;">%</span>20browser<span style="color: #339933;">%</span>20will<span style="color: #339933;">%</span>20offer<span style="color: #339933;">%</span>20to<span style="color: #339933;">%</span>20remember<span style="color: #339933;">%</span>20your<span style="color: #339933;">%</span>20password.<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<p><a href="http://feedads.g.doubleclick.net/~a/R3z_tWQqZ_mgqWKvqWj1U8Kbm1g/0/da"><img src="http://feedads.g.doubleclick.net/~a/R3z_tWQqZ_mgqWKvqWj1U8Kbm1g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/R3z_tWQqZ_mgqWKvqWj1U8Kbm1g/1/da"><img src="http://feedads.g.doubleclick.net/~a/R3z_tWQqZ_mgqWKvqWj1U8Kbm1g/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=_o84M7_I1cw:aFvTWtkMK38:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/_o84M7_I1cw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/force-firefox-to-save-passwords/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/force-firefox-to-save-passwords</feedburner:origLink></item>
		<item>
		<title>webhostingchoice.com – best php hosting</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/DFaX4wGkkHc/webhostingchoice-com-%e2%80%93-best-php-hosting</link>
		<comments>http://www.francodacosta.com/blog/reviews/webhostingchoice-com-%e2%80%93-best-php-hosting#comments</comments>
		<pubDate>Mon, 14 Dec 2009 15:23:57 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=585</guid>
		<description><![CDATA[The Internet allows us to facilitate the exchange of data. With so many applications and programs that we use the Internet, such as social networks and blog.
Blogging has many forms and is perhaps the biggest internet trend, Now it&#39;s extremely easy to set up your own blog and creating your own internet space.
For those of [...]]]></description>
			<content:encoded><![CDATA[<p>The Internet allows us to facilitate the exchange of data. With so many applications and programs that we use the Internet, such as social networks and blog.</p>
<p>Blogging has many forms and is perhaps the biggest internet trend, Now it&#39;s extremely easy to set up your own blog and creating your own internet space.</p>
<p>For those of us who are familiar with blogging, we must familiar with the word &ldquo;WordPress available. Weblog software is the most popular weblog applications. Millions of bloggers on this application for their content. But now we find similar applications such as WordPress, and features of their application.</p>
<p>As more bloga are born more space is needed to store them.</p>
<p>Many web hosting services offer low prices. Check these sites list of the best hosting PHP webhostingchoice.com. Kaan Web hosting as low as $ 3.45 with unlimited space data. You can also compare prices, organize, domain, disk space, data transfer, money back guarantee. Check your training center for some information that may help</p>
<p>webhostingchoice.com is professional Web hosting that will guide to the <a href="http://www.webhostingchoice.com/directory/php/" target="_self" title="best php hosting">best PHP hosting</a> services. They will provide detailed information such as price, space, domain and many others. To find out more information and applications using PHP, we need only log on to the website.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/xnyIhiHn8G3cK6MgsAFQq9VV5wA/0/da"><img src="http://feedads.g.doubleclick.net/~a/xnyIhiHn8G3cK6MgsAFQq9VV5wA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xnyIhiHn8G3cK6MgsAFQq9VV5wA/1/da"><img src="http://feedads.g.doubleclick.net/~a/xnyIhiHn8G3cK6MgsAFQq9VV5wA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=DFaX4wGkkHc:1L1Op69sQUs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/DFaX4wGkkHc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/reviews/webhostingchoice-com-%e2%80%93-best-php-hosting/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/reviews/webhostingchoice-com-%e2%80%93-best-php-hosting</feedburner:origLink></item>
		<item>
		<title>command line tricks</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/QgAfIgJAfhI/command-line-tricks</link>
		<comments>http://www.francodacosta.com/blog/linux/command-line-tricks#comments</comments>
		<pubDate>Thu, 19 Nov 2009 22:21:13 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=565</guid>
		<description><![CDATA[
Today I thought on sharing with you some bash command line tricks to help improve your productivity and help you earn a few geek points
This tricks will help you a lot and helps you to extent your keyboard live by saving a few hundredth strokes
we will dive into the bash history secrets and the ! [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="commandline" class="alignnone size-full wp-image-577" height="160" src="http://www.francodacosta.com/blog/wp-content/uploads/commandline.gif" title="commandline" width="680" /></p>
<p>Today I thought on sharing with you some bash command line tricks to help improve your productivity and help you earn a few <em>geek points</em></p>
<p>This tricks will help you a lot and helps you to extent your keyboard live by saving a few hundredth strokes</p>
<p>we will dive into the bash history secrets and the ! (bang) command:<span id="more-565"></span></p>
<ul>
<li><strong>!!</strong><br />
		This bang command, when entered into the bash shell will run the previous command. It basically does the same thing as hitting the up arrow and hitting enter.</li>
</ul>
<ul>
<li><strong>!command</strong><br />
		Ex: !ls<br />
		This will run the last command that started with &lsquo;ls&rsquo;.</li>
</ul>
<ul>
<li><strong>!command:p</strong><br />
		Ex: !ls:p<br />
		This will display the command instead of running it.</li>
</ul>
<ul>
<li><strong>!$</strong><br />
		Ex: !$ or echo !$<br />
		The last word of the previous command. This the same as hitting Esc + . and is mainly useful for substitutions.</li>
</ul>
<ul>
<li><strong>!$:p</strong><br />
		Instead of running the last word of the previous command this will print it out.</li>
</ul>
<ul>
<li><strong>!*</strong><br />
		Runs the previous command without the first word.</li>
</ul>
<ul>
<li><strong>!*:p</strong><br />
		This will print the previous command without the first word.</li>
</ul>
<ul>
<li><strong>Ctrl + r</strong><br />
		Hit Ctrl + r and start typing, bash will search and show you the last command you rand that satisfies the search text you typed</li>
</ul>
<ul>
<li><strong>Ctrl + s</strong><br />
		Everything you type will not be shown</li>
</ul>
<ul>
<li><strong>Ctrl + q</strong><br />
		Inverts the effect of Ctrl + s, now everything is shown</li>
</ul>
<ul>
<li><strong>Ctrl + a</strong><br />
		Goes to the beginning of the line</li>
</ul>
<ul>
<li><strong>Ctrl + e</strong><br />
		Goes to the end of the line</li>
</ul>
<ul>
<li><strong>Ctrl + w</strong><br />
		Deletes the previous word</li>
</ul>
<ul>
<li><strong>Esc + Esc</strong><br />
		word compellation, it&#39;s the same as hitting tab</li>
</ul>
<ul>
<li><strong>Esc + backspace</strong><br />
		Deletes until finding a delimiter, if hitting Esc + backspace on file.txt the .txt will be deleted</li>
</ul>
<p>&nbsp;</p>
<p>What are your favorite command line tricks ?</p>
<p>	&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6WP0l48BmcmRiI3b11kk3f4zpXo/0/da"><img src="http://feedads.g.doubleclick.net/~a/6WP0l48BmcmRiI3b11kk3f4zpXo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6WP0l48BmcmRiI3b11kk3f4zpXo/1/da"><img src="http://feedads.g.doubleclick.net/~a/6WP0l48BmcmRiI3b11kk3f4zpXo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=QgAfIgJAfhI:Orh_ZBleNm8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/QgAfIgJAfhI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/linux/command-line-tricks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/linux/command-line-tricks</feedburner:origLink></item>
		<item>
		<title>Another confused Idiot</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/YRIpc6w1WAo/another-confused-idiot</link>
		<comments>http://www.francodacosta.com/blog/general/another-confused-idiot#comments</comments>
		<pubDate>Fri, 09 Oct 2009 23:45:22 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=529</guid>
		<description><![CDATA[&#160;
Last time I posted a video about how to confuse an idiot, this time is a random image I found lying around the web, this one was tricked in to thinking she had won a Toyota


&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Last time I posted a video about <a href="http://www.francodacosta.com/blog/humor/how-to-confuse-an-idiot">how to confuse an idiot</a>, this time is a random image I found lying around the web, this one was tricked in to thinking she had won a Toyota</p>
<p><span id="more-529"></span></p>
<p style="text-align: center;"><a href="http://www.francodacosta.com/blog/wp-content/uploads/toyyoda.jpg"><img width="511" height="480" border="0" src="http://www.francodacosta.com/blog/wp-content/uploads/toyyoda.jpg" alt="toyyoda" title="toyyoda" class="alignnone size-full wp-image-530" /></a></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/7MC7ZhBH5ikcVNiCg_TSlEzRV7Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/7MC7ZhBH5ikcVNiCg_TSlEzRV7Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7MC7ZhBH5ikcVNiCg_TSlEzRV7Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/7MC7ZhBH5ikcVNiCg_TSlEzRV7Y/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=YRIpc6w1WAo:G0x97m2OkK0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/YRIpc6w1WAo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/another-confused-idiot/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/another-confused-idiot</feedburner:origLink></item>
		<item>
		<title>Make a diet, serve just one CSS and one JS</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/zM1AhM5XH8E/make-a-diet-serve-just-one-css-and-one-js</link>
		<comments>http://www.francodacosta.com/blog/development/make-a-diet-serve-just-one-css-and-one-js#comments</comments>
		<pubDate>Sat, 03 Oct 2009 09:14:33 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[cahe]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=514</guid>
		<description><![CDATA[I&#8217;ve talked about how you can speed up your web site by serving less files, now its time to get our hands dirty and see how we can easily combine several files into one.
This will prove to be a very simple but handy addition to your toolkit.
As we are working with several paths for the [...]]]></description>
			<content:encoded><![CDATA[<p>I&rsquo;ve talked about how you can <a href="http://www.francodacosta.com/blog/general/speeding-up-web-site-by-serving-less-files" target="_blank">speed up your web site by serving less files</a>, now its time to get our hands dirty and see how we can easily combine several files into one.</p>
<p>This will prove to be a very simple but handy addition to your toolkit.</p>
<p><span id="more-514"></span>As we are working with several paths for the same file (the physical path and its URL) we need to know the root physical path and URL of your web site, (there is an <a href="http://www.francodacosta.com/blog/development/php-development/you-are-here-how-hard-can-it-be" target="_blank">easy and automatic way to do this</a>) that will be the most tricky situation you will find.</p>
<p>Combining JS files into one is fairly easy, just join then !</p>
<p>Combining several CSS files can be tricky as you might have relative paths in them, so we will replace them with full paths.</p>
<p>Be aware that if you use css to preload images this might break it because the image path will change from <em>img/image.jpg</em> to something like&nbsp; <em>http://www.site.com/path/to/imagef-folder/image.jpg.</em></p>
<p>Also, the cached file will be served as plain text, with no MIME information so you have to specify an .css extension or your browser wont parse it as being CSS, this could easily be done automatically, but this is just a simple proof of concept.</p>
<p>&nbsp;</p>
<p>The code is easy to follow and documented so i will just post typical usage examples&nbsp; but if have any questions about the code just leave a comment</p>
<h3>Usage Example 1 : Javascript</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> fcDiet<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'path/to/cache/folder'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">webServerPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://mysite.com/'</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">physicalPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/var/www/html/mysite/'</span> <span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file1.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file2.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file3.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file4.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;script type=&quot;text/javascript&quot; src=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;&lt;/script&gt;'</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Usage Example 2 : CSS</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">    <span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> fcDiet<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'path/to/cache/folder'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">webServerPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://mysite.com/'</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">physicalPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/var/www/html/mysite/'</span> <span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">replacePaths</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">appendExtension</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'css'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file1.css'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file2.css'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file3.css'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file4.css'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;'</span><span style="color: #339933;">.</span> <span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; /&gt;'</span><span style="color: #339933;">;</span></pre></div></div>

<h3>The Code</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * fcDiet
 *
 * A simple class to help you join your css and js files into one
 *
 * @author      Nuno Costa - sven@francodacosta.com
 * @license     GPL
 */</span>
<span style="color: #000000; font-weight: bold;">class</span> fcDiet <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$physicalPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$webServerPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$replacePaths</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$cacheFolder</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$chacheFileName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$extension</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> createCacheFileName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFileName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">webServerPath</span>  <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFolder</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">'/'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extension</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFileName</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'.'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extension</span> <span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> replacePaths<span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$pattern</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/(url\s*)(\(\s*[\&quot;|\']*)([:\/\w\s\d\.]*)([\&quot;|\']*\s*\))/i'</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$replace</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'url('</span> <span style="color: #339933;">.</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">physicalPath</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">webServerPath</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'$3)'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$ret</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pattern</span><span style="color: #339933;">,</span> <span style="color: #000088;">$replace</span><span style="color: #339933;">,</span> <span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$ret</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> cacheHit<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$cacheFolder</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFolder</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$cacheFolder</span> <span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * Adds files to be joined
     */</span>
    <span style="color: #000000; font-weight: bold;">function</span> addFile<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * appends an extension to the cache file
     * no dot needed just use css instead of .css
     */</span>
    <span style="color: #000000; font-weight: bold;">function</span> appendExtension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extension</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$extension</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * returns the URL to the cache file
     * if the cache file does not exits it will be created
     */</span>
    <span style="color: #000000; font-weight: bold;">function</span> get<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">createCacheFileName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$cacheFile</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">webServerPath</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">physicalPath</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFileName</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheHit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cacheFile</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
              <span style="color: #000088;">$tmp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">replacePaths</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//replace url tags with full url</span>
                <span style="color: #000088;">$buffer</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">replacePaths</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span><span style="color: #339933;">,</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$buffer</span><span style="color: #339933;">.=</span><span style="color: #000088;">$tmp</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000088;">$fh</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cacheFile</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'w'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #990000;">fputs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fh</span><span style="color: #339933;">,</span> <span style="color: #000088;">$buffer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">cacheFileName</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>


<p><a href="http://feedads.g.doubleclick.net/~a/MgjzB4-GnDNK0sg9NhEkja07K9M/0/da"><img src="http://feedads.g.doubleclick.net/~a/MgjzB4-GnDNK0sg9NhEkja07K9M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MgjzB4-GnDNK0sg9NhEkja07K9M/1/da"><img src="http://feedads.g.doubleclick.net/~a/MgjzB4-GnDNK0sg9NhEkja07K9M/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=zM1AhM5XH8E:GPnguqkbm1M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/zM1AhM5XH8E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/development/make-a-diet-serve-just-one-css-and-one-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/development/make-a-diet-serve-just-one-css-and-one-js</feedburner:origLink></item>
		<item>
		<title>World war I technology delivers data faster than ADSL</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/NFM-JLJb_eU/world-war-i-technology-delivers-data-faster-than-adsl</link>
		<comments>http://www.francodacosta.com/blog/humor/world-war-i-technology-delivers-data-faster-than-adsl#comments</comments>
		<pubDate>Wed, 09 Sep 2009 23:06:33 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[humor]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=508</guid>
		<description><![CDATA[
What could be wrong with this statement ?
Can this be truth ?

Well,&#160; I found a nice benchmark on businessday where they measured the speed of an ancient technology from world war I to deliver 4gb of data against the modern ADSL.
Guess what, that old tech delivered data 95% faster than the TelKom ADSL.
The test was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.francodacosta.com/blog/wp-content/uploads/1018421_c19c_625x1000.jpg"><img width="600" height="401" class="alignnone size-full wp-image-511" title="1018421_c19c_625x1000" alt="1018421_c19c_625x1000" src="http://www.francodacosta.com/blog/wp-content/uploads/1018421_c19c_625x1000.jpg" /></a></p>
<p>What could be wrong with this statement ?</p>
<p>Can this be truth ?</p>
<p><span id="more-508"></span></p>
<p>Well,&nbsp; I found a nice benchmark on <a href="http://www.businessday.co.za/Articles/Content.aspx?id=81045" target="_blank">businessday</a> where they measured the speed of an ancient technology from world war I to deliver 4gb of data against the modern ADSL.</p>
<p>Guess what, that old tech delivered data 95% faster than the TelKom ADSL.</p>
<p>The test was to transfer 4gb of data to a node located at 80km from the starting point. It took 2 hours 6 minutes and 57 seconds for the old tech to transfer data, when the transfer was finished the ADSL upload was only 5% done.</p>
<p>&nbsp;</p>
<p>So, the next time you think your connection is slow, try reverting to the old thech, put it on a pen and send it by a pigeon!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zJXdGyIUDEwiKAeeFrVvnr6mtB4/0/da"><img src="http://feedads.g.doubleclick.net/~a/zJXdGyIUDEwiKAeeFrVvnr6mtB4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zJXdGyIUDEwiKAeeFrVvnr6mtB4/1/da"><img src="http://feedads.g.doubleclick.net/~a/zJXdGyIUDEwiKAeeFrVvnr6mtB4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=NFM-JLJb_eU:7QUYWyKVOeg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/NFM-JLJb_eU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/humor/world-war-i-technology-delivers-data-faster-than-adsl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/humor/world-war-i-technology-delivers-data-faster-than-adsl</feedburner:origLink></item>
		<item>
		<title>São sempre mais prestaveis quando é para me entalarem!</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/YEmcNoka5fQ/so-sempre-mais-prestaveis-quando-para-me-entalarem</link>
		<comments>http://www.francodacosta.com/blog/general/so-sempre-mais-prestaveis-quando-para-me-entalarem#comments</comments>
		<pubDate>Wed, 09 Sep 2009 22:33:18 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/general/so-sempre-mais-prestaveis-quando-para-me-entalarem</guid>
		<description><![CDATA[Est&#225; &#233; uma das raras vezes que escrevo em portugu&#234;s, escrevo sobretudo porque estou revoltado e n&#227;o quero difamar mais o meu querido pa&#237;s.
&#160;
Lamentavelmente sempre que precisei do apoio da GNR ou PSP da minha zona nunca o consegui obter em tempo &#250;til pois ou n&#227;o t&#234;m agentes ou n&#227;o t&#234;m viatura dispon&#237;vel!
&#160;
Uma das vezes, [...]]]></description>
			<content:encoded><![CDATA[<p>Est&aacute; &eacute; uma das raras vezes que escrevo em portugu&ecirc;s, escrevo sobretudo porque estou revoltado e n&atilde;o quero difamar mais o meu querido pa&iacute;s.</p>
<p>&nbsp;<span id="more-505"></span></p>
<p>Lamentavelmente sempre que precisei do apoio da GNR ou PSP da minha zona nunca o consegui obter em tempo &uacute;til pois ou n&atilde;o t&ecirc;m agentes ou n&atilde;o t&ecirc;m viatura dispon&iacute;vel!</p>
<p>&nbsp;</p>
<p>Uma das vezes, curiosamente durante um jogo de Portugal, tive que me deslocar &agrave; esquadra porque o 112 n&atilde;o conseguiu efectuar a liga&ccedil;&atilde;o uma vez que ningu&eacute;m atendia, e tentou quatro vezes!</p>
<p>Cheguei eu &agrave; esquadra e foi ver os tr&ecirc;s agentes que l&aacute; se encontravam a jogar &agrave; batata quente, nenhum deles podia ir socorrer o t&aacute;xi que vi passar com o SOS ligado!</p>
<p>Fui dispensado com um cordial &ldquo;Fez bem em ter c&aacute; vindo, assim que puder mando algu&eacute;m ver o que se passa&rdquo;</p>
<p>&nbsp;</p>
<p>Agora mesmo, ia eu feliz da vida a passear o meu filho e quase sou atropelado por um carro com uns mi&uacute;dos de 15 / 16 anos, mas n&atilde;o liguei muito, nada de mal aconteceu. Cheguei a casa e BUMM os putos acabaram por espatifar o carro numa cerca</p>
<p>&ldquo;Isto j&aacute; &eacute; demais&rdquo;, pensei eu, vou &agrave; net, tiro o numero da GNR da minha zona e ligo, relato o sucedido e l&aacute; vem a resposta &ldquo;De momento n&atilde;o tenho viaturas dispon&iacute;veis para ir ai&rdquo;</p>
<p>Quando questionei o agente sobre a falta de viaturas a resposta foi:</p>
<p>&quot;N&atilde;o tenho a culpa, queixe-se ao comando&quot;</p>
<p>Entretanto j&aacute; se passou uma hora, os putos j&aacute; tiraram o carro da cerca, continuam a fazer pe&otilde;es e a entrar directamente na estrada principal pelo passeio sobem um separador centrar em relva e voltam para tr&aacute;s!</p>
<p>&nbsp;</p>
<p>Ora, quem n&atilde;o tem a culpa sou eu, que pago os meus impostos e em troca tenho um servi&ccedil;o ineficiente, digo mesmo incompetente!!</p>
<p>&nbsp;</p>
<p>Como sempre parece que a policia &eacute; sempre mais prest&aacute;vel quando &eacute; para me entalar do que &eacute; para me ajudar!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/nJ8zB15TExcQXxSpVDED9h2GoY0/0/da"><img src="http://feedads.g.doubleclick.net/~a/nJ8zB15TExcQXxSpVDED9h2GoY0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nJ8zB15TExcQXxSpVDED9h2GoY0/1/da"><img src="http://feedads.g.doubleclick.net/~a/nJ8zB15TExcQXxSpVDED9h2GoY0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=YEmcNoka5fQ:PmWAXlDWYlE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/YEmcNoka5fQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/so-sempre-mais-prestaveis-quando-para-me-entalarem/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/so-sempre-mais-prestaveis-quando-para-me-entalarem</feedburner:origLink></item>
		<item>
		<title>The problem with big displays</title>
		<link>http://feedproxy.google.com/~r/francodacosta/~3/H9pi86RpRyE/the-problem-with-big-displays</link>
		<comments>http://www.francodacosta.com/blog/general/the-problem-with-big-displays#comments</comments>
		<pubDate>Fri, 04 Sep 2009 11:50:01 +0000</pubDate>
		<dc:creator>nuno costa</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.francodacosta.com/blog/?p=498</guid>
		<description><![CDATA[I&#8217;m a proud member of the dual monitor club.
Actually&#160; I was forced in to this club, but that&#8217;s another story.
And it&#8217;s so much better than one BIG screen.
Believe me, BIG displays are becoming a reality and a BIG problem, display prices are getting lower while their area is increasing.
It&#8217;s no longer monetary viable to buy [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I&rsquo;m a proud member of the dual monitor club.</p>
<p style="text-align: justify;">Actually&nbsp; I was forced in to this club, but that&rsquo;s another story.</p>
<p style="text-align: justify;">And it&rsquo;s so much better than one BIG screen.</p>
<p style="text-align: justify;">Believe me, BIG displays are becoming a reality and a BIG problem, display prices are getting lower while their area is increasing.</p>
<p style="text-align: justify;">It&rsquo;s no longer monetary viable to buy 17&rsquo;&rsquo; or 15&rsquo;&rsquo; monitors as they are almost the same price as a 20&rsquo;&rsquo; one and soon a 30&rsquo;&rsquo; will be about the same price, and so on.</p>
<p style="text-align: justify;"><span id="more-498"></span></p>
<p>&nbsp;</p>
<p>The problem with big monitors is mostly the way you are used to work and how Operating Systems Interfaces are designed.</p>
<p style="text-align: justify;">You usually work with a window at a time, most probably the window is maximized.</p>
<p style="text-align: justify;">With a big monitor this means lots, really lots, of free space and in non fixed layouts buttons far apart, basically you will get lost in all that space and you productivity will decrease.</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">It&rsquo;s easy to get lost even if there is no free space, try reading a 300 char line and you will see what I mean!</p>
<p style="text-align: justify;">There are tools to solve this problem by trying to emulate dual monitor setups, but it&rsquo;s no quite the same.</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">On the other hand a dual monitor setup are much cleaner, you have space, but not too much, and mostly you can arrange them so you have a central point of attention and an auxiliary area, much like a site where you have the main content and a site bar.</p>
<p style="text-align: justify;">You can concentrate on your work, your window at the main screen while having auxiliary windows, as an email client, IM, whatever on the side monitor.</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">UI designers must start thinking about this or soon it will be a BIG problem!</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/XlWe8kNA8ZFbhpcCSktlGjQDAYE/0/da"><img src="http://feedads.g.doubleclick.net/~a/XlWe8kNA8ZFbhpcCSktlGjQDAYE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XlWe8kNA8ZFbhpcCSktlGjQDAYE/1/da"><img src="http://feedads.g.doubleclick.net/~a/XlWe8kNA8ZFbhpcCSktlGjQDAYE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/francodacosta?a=H9pi86RpRyE:hwb5Ru_US_w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/francodacosta?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/francodacosta/~4/H9pi86RpRyE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.francodacosta.com/blog/general/the-problem-with-big-displays/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.francodacosta.com/blog/general/the-problem-with-big-displays</feedburner:origLink></item>
	</channel>
</rss>
