<?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>ONE AND ONE MAKES TEN</title>
	
	<link>http://blog.joaomoreno.com</link>
	<description />
	<lastBuildDate>Sat, 07 May 2011 18:15:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/joaomoreno" /><feedburner:info uri="joaomoreno" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/joaomoreno" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjoaomoreno" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>IP Growl</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/3abmOiAQLEo/</link>
		<comments>http://blog.joaomoreno.com/ip-growl/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 15:29:51 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=517</guid>
		<description><![CDATA[It shouldn&#8217;t be hard to find out your IP address, on a Mac. Right now, either you open up Network Preferences and find it somewhere in the dialog, or open up a Terminal and type in some command line voodoo or use some external monitoring tool. Here&#8217;s a cool new way: just pipe ifconfig into [...]]]></description>
			<content:encoded><![CDATA[<p>It shouldn&#8217;t be hard to find out your IP address, on a Mac. Right now, either you open up Network Preferences and find it somewhere in the dialog, or open up a Terminal and type in some command line voodoo or use some external monitoring tool. Here&#8217;s a cool new way: just pipe <a href="http://linux.die.net/man/8/ifconfig">ifconfig</a> into <a href="http://growl.info/">Growl</a>, and make it a global keyboard shortcut!</p>
<p><img src="http://blog.joaomoreno.com/wp-content/uploads/2011/03/Screen-shot-2011-03-27-at-4.48.27-PM.png" alt="" title="IP Growl" width="328" height="89" class="aligncenter size-full wp-image-518" /></p>
<p><strong>Steps</strong></p>
<ol>
<li>Install <a href="http://growl.info/extras.php#growlnotify">growlnotify</a>, which comes bundled with Growl. You can find an easily installable package under the <strong>Extras</strong> folder, after downloading and mounting Growl&#8217;s <strong>*.dmg</strong> file.</li>
<li>Get <a href='http://blog.joaomoreno.com/wp-content/uploads/2011/03/IP-Growl.zip'>IP Growl</a>, an Automator service. Download, extract and put it under <strong>~/Library/Services</strong> (open your Home folder and navigate through Library, into Services). For the curious, this service contains nothing more than a shell script:
<pre class="brush: bash; title: ; notranslate">/sbin/ifconfig \
| /usr/bin/grep 'inet ' \
| /usr/bin/grep -v '127.0.0.1' \
| /usr/bin/grep -v '169.254' \
| /usr/bin/awk '{ print $2 }' \
| /usr/local/bin/growlnotify -t IP Addresses</pre>
</li>
<li>Open the Keyboard System Preferences, navigate to Keyboard Shortcuts, Services and scroll down until you find IP Growl. Setup a keyboard shortcut for the IP Growl service, by clicking on the right side of the table row. Check this out, for guidelines:
<p><a href="http://blog.joaomoreno.com/wp-content/uploads/2011/03/Screen-shot-2011-03-27-at-4.45.27-PM.png" rel="lightbox" class="img"><img src="http://blog.joaomoreno.com/wp-content/uploads/2011/03/Screen-shot-2011-03-27-at-4.45.27-PM-300x271.png" alt="" title="Setup Keyboard Shortcut" width="300" height="271" class="aligncenter size-medium wp-image-536" /></a></li>
</ol>
<p><strong>Note:</strong> I chose something simple like <em>Control-Command-I</em>. You can choose your own shortcut. Note that the shortcut will not always work, because the foreground application might catch it first. For example, my shortcut will not work under Finder.</p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/3abmOiAQLEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/ip-growl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/ip-growl/</feedburner:origLink></item>
		<item>
		<title>Updated Reverb for Skype 5</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/_mVLxop2zGA/</link>
		<comments>http://blog.joaomoreno.com/updated-reverb-for-skype-5/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 21:41:43 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[reverb]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=513</guid>
		<description><![CDATA[Skype 5 is out. They managed to improve some of the messy UI they had in the beta version, but it still feels wrong to me. Anyway, I&#8217;ve updated Reverb to match this version and to make it installable per User. Actually, the old version of Reverb will break the latest Skype version, preventing it [...]]]></description>
			<content:encoded><![CDATA[<p>Skype 5 is out. They managed to improve some of the messy UI they had in the beta version, but it still <em>feels</em> wrong to me. Anyway, I&#8217;ve updated Reverb to match this version and to make it installable per User.</p>
<p><center><a href="http://joaomoreno.com/Reverb.pkg"><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/Mac-OS-X-Installer-Package-Icon.png" alt="" title="Package" width="128" height="128" class="alignnone size-full wp-image-481" /></a> <a href="http://joaomoreno.com/Reverb.zip"><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/zip.png" alt="" title="Zip" width="128" height="128" class="alignnone size-full wp-image-496" /></a></center></p>
<p>Actually, the old version of Reverb <strong>will break the latest Skype version, preventing it from opening</strong>. To fix this, just install Skype again and download the new Reverb version, included in this post.</p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/_mVLxop2zGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/updated-reverb-for-skype-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/updated-reverb-for-skype-5/</feedburner:origLink></item>
		<item>
		<title>90 days</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/JbuQ2x30d-Q/</link>
		<comments>http://blog.joaomoreno.com/90-days/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 22:48:58 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[90days]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=503</guid>
		<description><![CDATA[90 days is a simple Last.fm visualization based on Jeroen&#8217;s last.fm records library. I personally love music visualization and I have a special fondness for Last.fm&#8217;s scrobbling service, so I just had the idea for 90 days etched in my mind for days, until I finally gave in and got dirty. Give me your cents.]]></description>
			<content:encoded><![CDATA[<p><a href="http://90days.joaomoreno.com/">90 days</a> is a simple <a href="http://www.last.fm/">Last.fm</a> visualization based on <a href="http://jeroensmeets.net/wordpress/lastfmrecords/">Jeroen&#8217;s last.fm records</a> library. I personally love music visualization and I have a special fondness for Last.fm&#8217;s scrobbling service, so I just had the idea for 90 days etched in my mind for days, until I finally gave in and got dirty. Give me your cents.</p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/JbuQ2x30d-Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/90-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/90-days/</feedburner:origLink></item>
		<item>
		<title>Reverb for Skype 5</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/L4maT7zCLZY/</link>
		<comments>http://blog.joaomoreno.com/reverb-for-skype-5/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 02:21:07 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[reverb]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=471</guid>
		<description><![CDATA[Some of you may have downloaded Skype&#8217;s new 5 Beta version for Mac. And while I praise the introduction of multi-user video chat and other features, it seems like they are developing an interface suitable either for touch surfaces or for visual impaired people. It certainly does not favor those who use Skype every day. [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you may have downloaded <a href="http://www.skype.com/intl/en/get-skype/on-your-computer/macosx/beta/">Skype&#8217;s new 5 Beta version for Mac</a>. And while I praise the introduction of multi-user video chat and other features, it seems like they are developing an interface suitable either for touch surfaces or for visual impaired people.</p>
<p>It certainly does not favor those who use Skype every day. In this new version, desktop real estate space seems to considered free. Every table cell item is exaggerated in height and the chat dialog can&#8217;t even fit more than 10 messages at a time, for a decently sized window. Example:</p>
<p><center><a href="http://blog.joaomoreno.com/wp-content/uploads/2010/11/panamericana.png" rel=”lightbox” title="Panamericana" ><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/panamericana-300x293.png" alt="Panamericana" title="Panamericana" width="300" height="293" class="alignnone size-medium wp-image-476" /></a></center></p>
<p>As a developer, I understand the usefulness of short feedback cycles between developers and users; and trying out Beta versions while expressing concerns, frustrations and enhancement ideas is an excellent way to apply that. What I mean by this is that I like to use Beta versions to provide feedback to developers; unless the application itself becomes impractical. As an extensive Skype user, I just couldn&#8217;t bare with so little information of my screen at the same time.</p>
<p>While there are interface features that one can hardly mess with, this is no longer true for the chat messages view. Skype implements this using HTML, CSS and Javascript, and even offers the option to change the Messaging style, in the application&#8217;s preferences.</p>
<p>I took a look at the Beta&#8217;s application package and found that, along with the default one, two styles are bundled inside, although disabled. I fiddled with both and eventually picked up on the one, the <em>lowest hanging fruit</em>, that allowed me to come up with a more usable interface. I call it <a href="http://blog.joaomoreno.com/reverb-for-skype-5/">Reverb</a>:</p>
<p><center><a href="http://blog.joaomoreno.com/wp-content/uploads/2010/11/screenie.png" rel=”lightbox” title="Reverb 1.0" ><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/screenie-300x293.png" alt="Reverb 1.0" title="Reverb 1.0" width="300" height="293" class="alignnone size-medium wp-image-472" /></a></center></p>
<p>There&#8217;s just a tiny thing: I&#8217;m not maintaining this theme for purposes other than personal motivation. I&#8217;m sure the guys at Skype will hear all sorts of hell concerning their new messaging styles, which will result in an overall improvement, in the long run. Constantly updating this package will then make little or no sense. Besides, I don&#8217;t even own any piece of code on this. My intent in creating it was to make the Beta experience more enjoyable &#8211; and share it, in the process.</p>
<p>Let&#8217;s cut the crap. Here&#8217;s an installer package and a zip file (for those who have Skype installed outside /Applications, or just want to take a peek at the thing). If you don&#8217;t know which to choose, just go for the package. I hope you enjoy it:</p>
<p><center><a href="http://joaomoreno.com/Reverb.pkg"><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/Mac-OS-X-Installer-Package-Icon.png" alt="" title="Package" width="128" height="128" class="alignnone size-full wp-image-481" /></a> <a href="http://joaomoreno.com/Reverb.zip"><img src="http://blog.joaomoreno.com/wp-content/uploads/2010/11/zip.png" alt="" title="Zip" width="128" height="128" class="alignnone size-full wp-image-496" /></a></center></p>
<p><strong>Again, none of this code is actually mine. I provide this package in hope that it will allow more users to stick to the Beta and provide useful feedback to Skype&#8217;s developers. Don&#8217;t set your mighty lawyers after me.  You know I can&#8217;t run as fast as they can.</strong></p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/L4maT7zCLZY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/reverb-for-skype-5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/reverb-for-skype-5/</feedburner:origLink></item>
		<item>
		<title>DJWG #14</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/iAyxSmAWG8M/</link>
		<comments>http://blog.joaomoreno.com/djwg-14/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 23:24:49 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[djwg]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=467</guid>
		<description><![CDATA[Dubrovnik. Standard: 2048&#215;1536 &#8211; 1280&#215;960 &#8211; 1024&#215;768 Wide: 1920&#215;1200 &#8211; 1440&#215;900 &#8211; 1280&#215;800]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joaomoreno.com/djwg/logo.png" alt="Duarte &amp; João&#039;s Wallpaper Giveaway" title="Duarte &amp; João&#039;s Wallpaper Giveaway" class="alignnone size-full wp-image-249" /></p>
<p>Dubrovnik.</p>
<p><a href="http://blog.joaomoreno.com/djwg-14/"><img src="http://www.joaomoreno.com/djwg/14/djwg-14-thumb.jpg" width="444" height="277" class="alignnone size-full wp-image-249" /></a></p>
<p>Standard: <a href="http://www.joaomoreno.com/djwg/14/djwg-14-2048x1536.jpg">2048&#215;1536</a> &#8211; <a href="http://www.joaomoreno.com/djwg/14/djwg-14-1280x960.jpg">1280&#215;960</a> &#8211; <a href="http://www.joaomoreno.com/djwg/14/djwg-14-1024x768.jpg">1024&#215;768</a><br />
Wide: <a href="http://www.joaomoreno.com/djwg/14/djwg-14-1920x1200.jpg">1920&#215;1200</a> &#8211; <a href="http://www.joaomoreno.com/djwg/14/djwg-14-1440x900.jpg">1440&#215;900</a> &#8211; <a href="http://www.joaomoreno.com/djwg/14/djwg-14-1280x800.jpg">1280&#215;800</a></p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/iAyxSmAWG8M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/djwg-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/djwg-14/</feedburner:origLink></item>
		<item>
		<title>Thyme</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/bCrMknoR0Ng/</link>
		<comments>http://blog.joaomoreno.com/thyme/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 19:12:30 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[thyme]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=434</guid>
		<description><![CDATA[I just released an OS X application called Thyme, which allows you to time your tasks in an unobtrusive way, while remembering every time you use it. It&#8217;s a pretty simple project and I did it to fulfill the need I had for such an application. I hope more people find it as useful as [...]]]></description>
			<content:encoded><![CDATA[<p>I just released an OS X application called <a href="http://joaomoreno.github.com/thyme/">Thyme</a>, which allows you to time your tasks in an unobtrusive way, while remembering every time you use it.</p>
<p><a href="http://joaomoreno.github.com/thyme/"><img src="http://joaomoreno.github.com/thyme/screen.png" alt="Thyme" /></a></p>
<p>It&#8217;s a pretty simple project and I did it to fulfill the need I had for such an application. I hope more people find it as useful as I do.</p>
<p>It&#8217;s released under the GPLv3 and you can access its source code at its <a href="http://github.com/joaomoreno/thyme">github project page</a>.</p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/bCrMknoR0Ng" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/thyme/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/thyme/</feedburner:origLink></item>
		<item>
		<title>DJWG #13</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/ORBF9ti-Stc/</link>
		<comments>http://blog.joaomoreno.com/djwg-13/#comments</comments>
		<pubDate>Mon, 10 May 2010 22:34:18 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[djwg]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=430</guid>
		<description><![CDATA[Half of us was in New York City, and it wasn&#8217;t me! Standard: 2048&#215;1536 &#8211; 1280&#215;960 &#8211; 1024&#215;768 Wide: 1920&#215;1200 &#8211; 1440&#215;900 &#8211; 1280&#215;800]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joaomoreno.com/djwg/logo.png" alt="Duarte &amp; João&#039;s Wallpaper Giveaway" title="Duarte &amp; João&#039;s Wallpaper Giveaway" class="alignnone size-full wp-image-249" /></p>
<p>Half of us was in New York City, and it wasn&#8217;t me!</p>
<p><a href="http://blog.joaomoreno.com/djwg-13/"><img src="http://www.joaomoreno.com/djwg/13/djwg-13-thumb.jpg" width="444" height="277" class="alignnone size-full wp-image-249" /></a></p>
<p>Standard: <a href="http://www.joaomoreno.com/djwg/13/djwg-13-2048x1536.jpg">2048&#215;1536</a> &#8211; <a href="http://www.joaomoreno.com/djwg/13/djwg-13-1280x960.jpg">1280&#215;960</a> &#8211; <a href="http://www.joaomoreno.com/djwg/13/djwg-13-1024x768.jpg">1024&#215;768</a><br />
Wide: <a href="http://www.joaomoreno.com/djwg/13/djwg-13-1920x1200.jpg">1920&#215;1200</a> &#8211; <a href="http://www.joaomoreno.com/djwg/13/djwg-13-1440x900.jpg">1440&#215;900</a> &#8211; <a href="http://www.joaomoreno.com/djwg/13/djwg-13-1280x800.jpg">1280&#215;800</a></p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/ORBF9ti-Stc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/djwg-13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/djwg-13/</feedburner:origLink></item>
		<item>
		<title>DJWG #12</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/EXFIOjJNb1g/</link>
		<comments>http://blog.joaomoreno.com/djwg-12/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 19:52:56 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[djwg]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=426</guid>
		<description><![CDATA[Wow. It&#8217;s been a long time. Sorry! Duarte visited me in Zürich last week and it was awesome. Needless to say, we&#8217;re packed full of new photos for more wallpaper deliciousness. Hope you like it. Standard: 2048&#215;1536 &#8211; 1280&#215;960 &#8211; 1024&#215;768 Wide: 1920&#215;1200 &#8211; 1440&#215;900 &#8211; 1280&#215;800]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joaomoreno.com/djwg/logo.png" alt="Duarte &amp; João&#039;s Wallpaper Giveaway" title="Duarte &amp; João&#039;s Wallpaper Giveaway" class="alignnone size-full wp-image-249" /></p>
<p>Wow. It&#8217;s been a long time. Sorry! </p>
<p>Duarte visited me in Zürich last week and it was awesome. Needless to say, we&#8217;re packed full of new photos for more wallpaper deliciousness. Hope you like it.</p>
<p><a href="http://blog.joaomoreno.com/djwg-12/"><img src="http://www.joaomoreno.com/djwg/12/djwg-12-thumb.jpg" width="444" height="277" class="alignnone size-full wp-image-249" /></a></p>
<p>Standard: <a href="http://www.joaomoreno.com/djwg/12/djwg-12-2048x1536.jpg">2048&#215;1536</a> &#8211; <a href="http://www.joaomoreno.com/djwg/12/djwg-12-1280x960.jpg">1280&#215;960</a> &#8211; <a href="http://www.joaomoreno.com/djwg/12/djwg-12-1024x768.jpg">1024&#215;768</a><br />
Wide: <a href="http://www.joaomoreno.com/djwg/12/djwg-12-1920x1200.jpg">1920&#215;1200</a> &#8211; <a href="http://www.joaomoreno.com/djwg/12/djwg-12-1440x900.jpg">1440&#215;900</a> &#8211; <a href="http://www.joaomoreno.com/djwg/12/djwg-12-1280x800.jpg">1280&#215;800</a></p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/EXFIOjJNb1g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/djwg-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/djwg-12/</feedburner:origLink></item>
		<item>
		<title>DJWG #11</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/0orksSb2AMw/</link>
		<comments>http://blog.joaomoreno.com/djwg-11/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 22:50:20 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[djwg]]></category>
		<category><![CDATA[xmas]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=419</guid>
		<description><![CDATA[Merry Christmas and a Happy New Year everyone! Standard: 2048&#215;1536 &#8211; 1280&#215;960 &#8211; 1024&#215;768 Wide: 1920&#215;1200 &#8211; 1440&#215;900 &#8211; 1280&#215;800]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joaomoreno.com/djwg/logo.png" alt="Duarte &amp; João&#039;s Wallpaper Giveaway" title="Duarte &amp; João&#039;s Wallpaper Giveaway" class="alignnone size-full wp-image-249" /></p>
<p>Merry Christmas and a Happy New Year everyone!</p>
<p><a href="http://blog.joaomoreno.com/djwg-11/"><img src="http://www.joaomoreno.com/djwg/11/djwg-11-thumb.jpg" width="444" height="277" class="alignnone size-full wp-image-249" /></a></p>
<p>Standard: <a href="http://www.joaomoreno.com/djwg/11/djwg-11-2048x1536.jpg">2048&#215;1536</a> &#8211; <a href="http://www.joaomoreno.com/djwg/11/djwg-11-1280x960.jpg">1280&#215;960</a> &#8211; <a href="http://www.joaomoreno.com/djwg/11/djwg-11-1024x768.jpg">1024&#215;768</a><br />
Wide: <a href="http://www.joaomoreno.com/djwg/11/djwg-11-1920x1200.jpg">1920&#215;1200</a> &#8211; <a href="http://www.joaomoreno.com/djwg/11/djwg-11-1440x900.jpg">1440&#215;900</a> &#8211; <a href="http://www.joaomoreno.com/djwg/11/djwg-11-1280x800.jpg">1280&#215;800</a></p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/0orksSb2AMw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/djwg-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/djwg-11/</feedburner:origLink></item>
		<item>
		<title>Incremental localization on XCode-based projects</title>
		<link>http://feedproxy.google.com/~r/joaomoreno/~3/ZvFYHwD8eSo/</link>
		<comments>http://blog.joaomoreno.com/incremental-localization-on-xcode-based-projects/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 22:24:20 +0000</pubDate>
		<dc:creator>João Moreno</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[incremental]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[localize]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[merging]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.joaomoreno.com/?p=394</guid>
		<description><![CDATA[Motivation When I first started out localizing my first iPhone application, I went bananas. Unlike most of the developer resources available for programming on an Apple infrastructure, this feature seemed so confused in documentation and poorly understood by the community. All I wanted was to have multiple languages on my application, relative to the user&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>Motivation</em></strong></p>
<p>When I first started out localizing my first iPhone application, I went bananas. Unlike most of the developer resources available for programming on an Apple infrastructure, this feature seemed so <a href="http://developer.apple.com/iPhone/library/documentation/MacOSX/Conceptual/BPInternational/BPInternational.html#//apple_ref/doc/uid/10000171">confused in documentation</a> and poorly understood by the community. All I wanted was <em>to have multiple languages on my application, relative to the user&#8217;s preferences, just by using <strong>NSLocalizedString</strong>, and editing the translation files</em>.</p>
<p>Please note that there is a whole lot more to localization beyond having different languages on your application. I&#8217;m not going to cover that on this post. I&#8217;m also not going to talk about <a href="http://adeem.me/blog/2009/05/09/tutorial-iphone-localization-in-xib-nib-files/">localizing XIB files</a>.</p>
<p><strong><em>Goal</em></strong></p>
<p>This guide will help you localize strings included in your code (using <strong>NSLocalizedString</strong>) as well as making the translation process incremental (without ever losing the previous translations made).</p>
<p><strong><em>Problem</em></strong></p>
<p>I&#8217;m going to talk about the surprise I had when I started localizing my application: <em>the Localizable.strings files that gets generated using Apple&#8217;s tool &#8211; <strong>genstrings</strong> &#8211; overwrites the previous translations, instead of properly merging them with the new changes</em>. Since I needed to translate as I was developing the application, this meant that I had to merge the files by hand at every step of the translation process (always being careful not to lose the previous translations). This just wouldn&#8217;t work.</p>
<p><strong><em>Solution</em></strong></p>
<p>And so, I&#8217;ve made a <a href="http://www.python.org/">Python</a> <a href="http://github.com/joaomoreno/Green-Apples/blob/master/localize.py">script</a> that does just what we need: <em>it generates new translation files, merges them with the previous translations and keeps copies of all those steps, just in case anything goes wrong</em>.</p>
<p><strong><em>Step by Step</em></strong></p>
<p>Here&#8217;s how it works:</p>
<ol>
<li>go into your XCode project folder and create <strong>xx.lproj</strong> folders inside, one for each language you would like (using <a href="http://www.loc.gov/standards/iso639-2/php/English_list.php">ISO 639-1 and ISO 639-2 codes</a>). For example, to have your application in English, French and German, you would create three folders: <strong>en.lproj</strong>, <strong>fr.lproj</strong> and <strong>de.lproj</strong>;</li>
<li>put my script <a href="http://github.com/joaomoreno/Green-Apples/raw/master/localize.py">localize.py</a> inside the XCode project folder (it is being hosted on my <a href="http://github.com/joaomoreno/Green-Apples/blob/master/localize.py">github repository</a>);</li>
<li>simply run <strong>./localize.py</strong> on the Terminal, from the XCode project folder and your files will be created on the first run, and merged on subsequent runs.</li>
<li>after running the script for the first time you should have your Localizable.strings files inside each language folder. To make them work with your application, just add them to your XCode project.</li>
</ol>
<p><strong><em>Notes</em></strong></p>
<p>The script always leaves two files behind, per language: <strong>Localizable.strings.old</strong> and <strong>Localizable.strings.new</strong>. These are the two files that got merged to create the brand new <strong>Localizable.strings</strong> file. They might come in handy for some troubleshooting. By not adding them into the XCode project and (if applicable) by adding them onto your favourite revision control program&#8217;s ignore list, they cause no trouble at all.</p>
<p>I hope this helps someone, just like it has been helping me ever since I created it.</p>
<p>If you have any comments, questions, bug reports, please let me know in the comments section.</p>
<img src="http://feeds.feedburner.com/~r/joaomoreno/~4/ZvFYHwD8eSo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.joaomoreno.com/incremental-localization-on-xcode-based-projects/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.joaomoreno.com/incremental-localization-on-xcode-based-projects/</feedburner:origLink></item>
	</channel>
</rss>

