<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dev.enekoalonso.com &#187; uncategorized</title>
	<atom:link href="http://dev.enekoalonso.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.enekoalonso.com</link>
	<description>having fun with code</description>
	<lastBuildDate>Wed, 12 Oct 2011 21:40:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Command line scripting with Node.js</title>
		<link>http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/</link>
		<comments>http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 21:40:17 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=730</guid>
		<description><![CDATA[I often write custom deploy scripts for the projects I work on. In most cases, I choose python. You can do pretty much everything with shell and system commands, but python dictionaries and lists make it very easy to manipulate data, lists of files, text, etc. Networking is also very easy in python (http, ftp, [...]]]></description>
			<content:encoded><![CDATA[<p>I often write custom deploy scripts for the projects I work on. In most cases, I choose python. You can do pretty much everything with shell and system commands, but python dictionaries and lists make it very easy to manipulate data, lists of files, text, etc. Networking is also very easy in python (http, ftp, etc).</p>
<p>To run a Javascript file from the console you can type &#8220;node myscript.js&#8221;. Or you can set the application that will run the file like you do with bash or python:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">#<span class="sy0">!</span> <span class="re0">/usr/bin/</span>env node</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Hello&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">setTimeout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;world!&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>, <span class="nu0">2000</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Now you can change the permissions of the script to make it executable:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">chmod</span> <span class="nu0">755</span> myscript.js</div>
</li>
</ol>
</div>
<p>And run the script by typing its name, like you do with shell or python scripts:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ .<span class="sy0">/</span>myscript.js param1 param2 <span class="st0">&quot;param 3&quot;</span></div>
</li>
<li class="li1">
<div class="de1">Hello</div>
</li>
<li class="li1">
<div class="de1">world<span class="sy0">!</span></div>
</li>
</ol>
</div>
<p>Nice, uh? Now go and write some cool command line scripts in Javascript :)</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>October 5, 2010 -- <a href="http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/" title="Javascript console in the terminal (command line)">Javascript console in the terminal (command line)</a> (1)</li><li>August 6, 2011 -- <a href="http://dev.enekoalonso.com/2011/08/06/python-script-remove-empty-folders/" title="Python script: remove empty folders">Python script: remove empty folders</a> (1)</li><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>May 18, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/" title="location.hash is dead (on html5 browsers)">location.hash is dead (on html5 browsers)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uninstalling brew (so I can reinstall)</title>
		<link>http://dev.enekoalonso.com/2011/08/09/uninstalling-brew-so-i-can-reinstall/</link>
		<comments>http://dev.enekoalonso.com/2011/08/09/uninstalling-brew-so-i-can-reinstall/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 03:22:46 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[brew]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[unistall]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=717</guid>
		<description><![CDATA[Uninstall cd `brew &#8212;-prefix` rm -rf Cellar brew prune rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew rm -rf ~/Library/Caches/Homebrew http://superuser.com/questions/203707/how-to-uninstall-homebrew-osx-packet-manager Reinstall /usr/bin/ruby -e &#34;$(curl -fsSL https://raw.github.com/gist/323731)&#34; https://github.com/mxcl/homebrew/wiki/Installation Related Posts:July 13, 2011 -- Clone your OSX terminal window (1)October 5, 2010 -- Javascript console in the terminal (command line) (1)December 5, 2008 -- Enabling PHP5 [...]]]></description>
			<content:encoded><![CDATA[<h3>Uninstall</h3>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> `brew &#8212;-prefix`</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf Cellar</div>
</li>
<li class="li1">
<div class="de1">brew <span class="kw2">prune</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf Library .git .gitignore bin<span class="sy0">/</span>brew README.md share<span class="sy0">/</span><span class="kw2">man</span><span class="sy0">/</span>man1<span class="sy0">/</span>brew</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -rf ~<span class="sy0">/</span>Library<span class="sy0">/</span>Caches<span class="sy0">/</span>Homebrew</div>
</li>
</ol>
</div>
<p><a href="http://superuser.com/questions/203707/how-to-uninstall-homebrew-osx-packet-manager">http://superuser.com/questions/203707/how-to-uninstall-homebrew-osx-packet-manager</a></p>
<h3>Reinstall</h3>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>ruby -e <span class="st0">&quot;$(curl -fsSL https://raw.github.com/gist/323731)&quot;</span></div>
</li>
</ol>
</div>
<p><a href="https://github.com/mxcl/homebrew/wiki/Installation">https://github.com/mxcl/homebrew/wiki/Installation</a></p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>July 13, 2011 -- <a href="http://dev.enekoalonso.com/2011/07/13/clone-your-osxterminal-window/" title="Clone your OSX terminal window">Clone your OSX terminal window</a> (1)</li><li>October 5, 2010 -- <a href="http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/" title="Javascript console in the terminal (command line)">Javascript console in the terminal (command line)</a> (1)</li><li>December 5, 2008 -- <a href="http://dev.enekoalonso.com/2008/12/05/enabling-php5-on-mac-os-x-leopard/" title="Enabling PHP5 on Mac OS X Leopard">Enabling PHP5 on Mac OS X Leopard</a> (0)</li><li>November 28, 2008 -- <a href="http://dev.enekoalonso.com/2008/11/28/mygameoflife-source-code/" title="MyGameOfLife source code">MyGameOfLife source code</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/08/09/uninstalling-brew-so-i-can-reinstall/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python script: remove empty folders</title>
		<link>http://dev.enekoalonso.com/2011/08/06/python-script-remove-empty-folders/</link>
		<comments>http://dev.enekoalonso.com/2011/08/06/python-script-remove-empty-folders/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 17:07:25 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[empty]]></category>
		<category><![CDATA[folders]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=718</guid>
		<description><![CDATA[One of the scripts I often use is this one to remove empty folders under a specific location on your hard drive. The usage is simple: $ &#91;path to the script&#93;/remove_empty_folders.py &#91;path_to_clean&#93; Here is the code: #! /usr/bin/env python import os, sys &#160; def removeEmptyFolders&#40;path&#41;: &#160; if not os.path.isdir&#40;path&#41;: &#160; &#160; return &#160; &#160; # [...]]]></description>
			<content:encoded><![CDATA[<p>One of the scripts I often use is this one to remove empty folders under a specific location on your hard drive. The usage is simple:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ <span class="br0">&#91;</span>path to the script<span class="br0">&#93;</span><span class="sy0">/</span>remove_empty_folders.py <span class="br0">&#91;</span>path_to_clean<span class="br0">&#93;</span></div>
</li>
</ol>
</div>
<p>Here is the code:</p>
<div class="geshi no python">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#! /usr/bin/env python</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">import</span> <span class="kw3">os</span>, <span class="kw3">sys</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">def</span> removeEmptyFolders<span class="br0">&#40;</span>path<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="kw1">not</span> <span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">isdir</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1"># remove empty subfolders</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; files = <span class="kw3">os</span>.<span class="me1">listdir</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span>files<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span> f <span class="kw1">in</span> files:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; fullpath = <span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">&#40;</span>path, f<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">isdir</span><span class="br0">&#40;</span>fullpath<span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; removeEmptyFolders<span class="br0">&#40;</span>fullpath<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1"># if folder empty, delete it</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; files = <span class="kw3">os</span>.<span class="me1">listdir</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span>files<span class="br0">&#41;</span> == <span class="nu0">0</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&quot;Removing empty folder:&quot;</span>, path</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">os</span>.<span class="me1">rmdir</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">removeEmptyFolders<span class="br0">&#40;</span><span class="kw3">sys</span>.<span class="me1">argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Here is a sample output:</p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/13/20101213-202802</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/13</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/14/20101214-120800</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/14</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/01/20101201-070118</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/01/20101201-070111</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/01/20101201-070123</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12/01</div>
</li>
<li class="li1">
<div class="de1">Removing empty folder: ./assorted/2010/12</div>
</li>
</ol>
</div>
<p>Please, use at your own risk. It should work on Windows also, but I have not tested it.</p>
<p>Enjoy!</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>September 9, 2009 -- <a href="http://dev.enekoalonso.com/2009/09/09/crawling-sitemaps-with-python/" title="Crawling sitemaps with Python">Crawling sitemaps with Python</a> (0)</li><li>October 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/" title="Command line scripting with Node.js">Command line scripting with Node.js</a> (0)</li><li>August 18, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/18/little-tricks-repeating-strings-in-javascript-python/" title="Little tricks: repeating strings in Javascript &#038; Python">Little tricks: repeating strings in Javascript &#038; Python</a> (1)</li><li>July 1, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/01/little-tricks-editing-strings-by-index-in-javascript-and-python/" title="Little tricks: editing strings by index in Javascript and Python">Little tricks: editing strings by index in Javascript and Python</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/08/06/python-script-remove-empty-folders/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Sublime Text 2 settings</title>
		<link>http://dev.enekoalonso.com/2011/07/26/my-sublime-text-2-settings/</link>
		<comments>http://dev.enekoalonso.com/2011/07/26/my-sublime-text-2-settings/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 03:54:25 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[sublime]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=714</guid>
		<description><![CDATA[My Sublime Text 2 settings: // Settings in here override those in &#34;Default/Base File.sublime-settings&#34;, and // are overridden in turn by file type specific settings. Place your settings // here, to ensure they&#39;re preserved when upgrading. &#123; &#160;// Set to false for horizontal scrolling &#160;&#34;word_wrap&#34;: false, &#160;// Set to false to disable detection of tabs [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://www.sublimetext.com/2">Sublime Text 2</a> settings:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// Settings in here override those in &quot;Default/Base File.sublime-settings&quot;, and</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// are overridden in turn by file type specific settings. Place your settings</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// here, to ensure they&#39;re preserved when upgrading.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Set to false for horizontal scrolling</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;word_wrap&quot;</span>: <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Set to false to disable detection of tabs vs. spaces on load</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;detect_indentation&quot;</span>: <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Set to &quot;none&quot; to turn off drawing white space, &quot;selection&quot; to draw only the</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// white space within the selection, and &quot;all&quot; to draw all white space</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;draw_white_space&quot;</span>: <span class="st0">&quot;all&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Set to true to removing trailing white space on save</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;trim_trailing_white_space_on_save&quot;</span>: <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Set to true to ensure the last line of the file ends in a newline</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// character when saving</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;ensure_newline_at_eof_on_save&quot;</span>: <span class="kw2">true</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>June 3, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/" title="Step back and watch what the “normals” do">Step back and watch what the “normals” do</a> (0)</li><li>May 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/" title="Angry Birds as a Web App">Angry Birds as a Web App</a> (0)</li><li>August 27, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/27/link-whirlpool-js/" title="Link: Whirlpool JS">Link: Whirlpool JS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/07/26/my-sublime-text-2-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clone your OSX terminal window</title>
		<link>http://dev.enekoalonso.com/2011/07/13/clone-your-osxterminal-window/</link>
		<comments>http://dev.enekoalonso.com/2011/07/13/clone-your-osxterminal-window/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 16:13:22 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[osascript]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[scpt]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=710</guid>
		<description><![CDATA[Sometimes, when working on a terminal window I would like to open a new window on the exact same location or path. This little AppleScript will do the trick: tell app &#34;Terminal&#34; to do script &#34;cd \&#34;&#39;`pwd`&#39;\&#34;&#34; From the command line: osascript -e &#39;tell app &#34;Terminal&#34; to do script &#34;cd \&#8221;&#39;`pwd`&#39;\&#8221;&#34;&#39; You can also create [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, when working on a terminal window I would like to open a new window on the exact same location or path. This little AppleScript will do the trick:</p>
<div class="geshi no applescript">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">tell</span> app <span class="st0">&quot;Terminal&quot;</span> <span class="kw1">to</span> do <span class="kw1">script</span> <span class="st0">&quot;cd <span class="es0">\&quot;</span>&#39;`pwd`&#39;<span class="es0">\&quot;</span>&quot;</span></div>
</li>
</ol>
</div>
<p>From the command line:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">osascript -e <span class="st0">&#39;tell app &quot;Terminal&quot; to do script &quot;cd <span class="es0">\&#8221;</span>&#39;</span>`<span class="kw3">pwd</span>`<span class="st0">&#39;<span class="es0">\&#8221;</span>&quot;&#39;</span></div>
</li>
</ol>
</div>
<p>You can also create an alias in ~/.profile for easy access:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">alias</span> <span class="re2">nt=</span><span class="st0">&quot;osascript -e &#39;tell app <span class="es0">\&quot;</span>Terminal<span class="es0">\&quot;</span> to do script <span class="es0">\&quot;</span>cd <span class="es0">\\</span><span class="es0">\&quot;</span>&#39;`pwd`&#39;<span class="es0">\\</span><span class="es0">\&quot;</span><span class="es0">\&quot;</span>&#39;&quot;</span></div>
</li>
</ol>
</div>
<p>Enjoy!</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>October 5, 2010 -- <a href="http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/" title="Javascript console in the terminal (command line)">Javascript console in the terminal (command line)</a> (1)</li><li>January 3, 2009 -- <a href="http://dev.enekoalonso.com/2009/01/03/check-your-server-status-with-email-notification/" title="Check your server status with email notification">Check your server status with email notification</a> (0)</li><li>December 5, 2008 -- <a href="http://dev.enekoalonso.com/2008/12/05/enabling-php5-on-mac-os-x-leopard/" title="Enabling PHP5 on Mac OS X Leopard">Enabling PHP5 on Mac OS X Leopard</a> (0)</li><li>August 9, 2011 -- <a href="http://dev.enekoalonso.com/2011/08/09/uninstalling-brew-so-i-can-reinstall/" title="Uninstalling brew (so I can reinstall)">Uninstalling brew (so I can reinstall)</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/07/13/clone-your-osxterminal-window/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Titanium Studio and Titanium Mobile 1.7</title>
		<link>http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/</link>
		<comments>http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 20:52:24 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[debugger]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[studio]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=706</guid>
		<description><![CDATA[Titanium Studio: will this change anything? It is a big step, and offers something I really missed while working with Titanium in the past: integrated debugging. I think I will rather stay with XCode and code native Objective-C. Link: Introducing Titanium Studio and Titanium Mobile 1.7. Related Posts:August 18, 2010 -- Titanium Developer: love and hate (Part [...]]]></description>
			<content:encoded><![CDATA[<p>Titanium Studio: will this change anything? It is a big step, and offers something I really missed while working with Titanium in the past: integrated debugging. I think I will rather stay with XCode and code native Objective-C.</p>
<p>Link: <a href="http://developer.appcelerator.com/blog/2011/06/introducing-titanium-studio.html">Introducing Titanium Studio and Titanium Mobile 1.7</a>.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>August 18, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/" title="Titanium Developer: love and hate (Part II)">Titanium Developer: love and hate (Part II)</a> (0)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>August 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/03/iphone-sdk-old-versions/" title="List of iPhone SDK &#038; XCode packages">List of iPhone SDK &#038; XCode packages</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Step back and watch what the “normals” do</title>
		<link>http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/</link>
		<comments>http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 03:23:09 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/</guid>
		<description><![CDATA[&#8220;We as developer must remember that we are not the target for 99% of the software that is written. We are not the final judge on what will or will not work. If anything, we are the last people that should have an opinion on what is good or bad. We should be the ones [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;We as developer must remember that we are not the target for 99% of the software that is written. We are not the final judge on what will or will not work. If anything, we are the last people that should have an opinion on what is good or bad. We should be the ones that step back and watch what the “normals” do with it. They determine the success or failure; not us.&#8221;<br />

http://www.cimgf.com/2011/06/03/why-so-serious</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>August 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/03/iphone-sdk-old-versions/" title="List of iPhone SDK &#038; XCode packages">List of iPhone SDK &#038; XCode packages</a> (1)</li><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>July 26, 2011 -- <a href="http://dev.enekoalonso.com/2011/07/26/my-sublime-text-2-settings/" title="My Sublime Text 2 settings">My Sublime Text 2 settings</a> (0)</li><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>location.hash is dead (on html5 browsers)</title>
		<link>http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/</link>
		<comments>http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/#comments</comments>
		<pubDate>Wed, 18 May 2011 21:49:51 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[manipulate]]></category>
		<category><![CDATA[mdc]]></category>
		<category><![CDATA[pjax]]></category>
		<category><![CDATA[pushState]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[window]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=696</guid>
		<description><![CDATA[Pretty cool technique to actually change the url of the page (something until now impossible to do in Javascript for security reasons): http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate Also good to read, the browser history MDC documentation: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history And finally, pjax, a new script that combines the use oj Ajax calls and this technique to manipulate the url to achieve [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty cool technique to actually change the url of the page (something until now impossible to do in Javascript for security reasons):<br />
<a href="http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate">http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate</a></p>
<p>Also good to read, the browser history MDC documentation:<br />
<a href="https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history">https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history</a></p>
<p>And finally, pjax, a new script that combines the use oj Ajax calls and this technique to manipulate the url to achieve a beautiful ajax navigation experience, with permalinks and without the need of using location.hash.<br />
<a href="http://pjax.heroku.com/">http://pjax.heroku.com/</a></p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>December 29, 2008 -- <a href="http://dev.enekoalonso.com/2008/12/29/modifying-the-url-hash-without-affecting-the-browser-history/" title="Modifying the URL Hash without affecting the browser history">Modifying the URL Hash without affecting the browser history</a> (0)</li><li>May 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/" title="Angry Birds as a Web App">Angry Birds as a Web App</a> (0)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>August 27, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/27/link-whirlpool-js/" title="Link: Whirlpool JS">Link: Whirlpool JS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Angry Birds as a Web App</title>
		<link>http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/</link>
		<comments>http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/#comments</comments>
		<pubDate>Thu, 12 May 2011 17:40:58 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[angry]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[birds]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=693</guid>
		<description><![CDATA[Really, really cool, Rovio has released Angry Birds (and all the game assets) as a web app, Javascript and Canvas based. I can&#8217;t wait to see clones of Angry Birds with custom assets, maps and sounds. via Angry Birds as a Web App. Related Posts:July 30, 2010 -- Titanium Developer: love and hate (3)May 3, 2010 [...]]]></description>
			<content:encoded><![CDATA[<p>Really, really cool, Rovio has released Angry Birds (and all the game assets) as a web app, Javascript and Canvas based. I can&#8217;t wait to see clones of Angry Birds with custom assets, maps and sounds.</p>
<p>via <a href="http://googlesystem.blogspot.com/2011/05/angry-birds-as-web-app.html">Angry Birds as a Web App</a>.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>May 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/05/03/playing-with-websockets/" title="Playing with WebSockets">Playing with WebSockets</a> (4)</li><li>May 18, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/" title="location.hash is dead (on html5 browsers)">location.hash is dead (on html5 browsers)</a> (0)</li><li>May 6, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/06/finding-duplicate-ids-on-an-html-page/" title="Finding duplicate ID&#8217;s on an HTML page">Finding duplicate ID&#8217;s on an HTML page</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding duplicate ID&#8217;s on an HTML page</title>
		<link>http://dev.enekoalonso.com/2011/05/06/finding-duplicate-ids-on-an-html-page/</link>
		<comments>http://dev.enekoalonso.com/2011/05/06/finding-duplicate-ids-on-an-html-page/#comments</comments>
		<pubDate>Fri, 06 May 2011 17:49:34 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[duplicate]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[ids]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[page]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=687</guid>
		<description><![CDATA[Looks like sometimes we forgot element ID&#8217;s are meant to be unique on a HTML page. Here is a little bit of code I just wrote to find duplicate ID&#8217;s on a page (run the code on your browser&#8217;s javascript console): var idList = &#123;&#125;; var nodes = document.getElementsByClassName&#40;&#39;&#39;&#41;; for &#40;var i in nodes&#41; &#123; [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like sometimes we forgot element ID&#8217;s are meant to be unique on a HTML page. Here is a little bit of code I just wrote to find duplicate ID&#8217;s on a page (run the code on your browser&#8217;s javascript console):</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> idList = <span class="br0">&#123;</span><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> nodes = document.<span class="me1">getElementsByClassName</span><span class="br0">&#40;</span><span class="st0">&#39;&#39;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i <span class="kw1">in</span> nodes<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>isNaN<span class="br0">&#40;</span>i<span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> nodes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">id</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; idList<span class="br0">&#91;</span>nodes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">id</span><span class="br0">&#93;</span> = idList<span class="br0">&#91;</span>nodes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">id</span><span class="br0">&#93;</span>? idList<span class="br0">&#91;</span>nodes<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">id</span><span class="br0">&#93;</span><span class="nu0">+1</span>:<span class="nu0">1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> id <span class="kw1">in</span> idList<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>idList<span class="br0">&#91;</span>id<span class="br0">&#93;</span> <span class="sy0">&gt;</span> <span class="nu0">1</span><span class="br0">&#41;</span> console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;Duplicate id: #&quot;</span> + id<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Have fun!</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>May 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/" title="Angry Birds as a Web App">Angry Birds as a Web App</a> (0)</li><li>May 14, 2010 -- <a href="http://dev.enekoalonso.com/2010/05/14/interesting-json-vulnerability-old-stuff/" title="Interesting JSON vulnerability (old stuff)">Interesting JSON vulnerability (old stuff)</a> (0)</li><li>April 14, 2010 -- <a href="http://dev.enekoalonso.com/2010/04/14/getting-unique-timestamps-in-javascript/" title="Getting unique timestamps in Javascript">Getting unique timestamps in Javascript</a> (0)</li><li>March 24, 2010 -- <a href="http://dev.enekoalonso.com/2010/03/24/mooml-1-1-no-more-eval-say-hi-to-mooml-template-and-mooml-templates/" title="Mooml 1.1 &#8211; No more eval(), say Hi to Mooml.Template and Mooml.Templates">Mooml 1.1 &#8211; No more eval(), say Hi to Mooml.Template and Mooml.Templates</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/05/06/finding-duplicate-ids-on-an-html-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raphters: A web framework for C</title>
		<link>http://dev.enekoalonso.com/2011/04/18/raphters-a-web-framework-for-c/</link>
		<comments>http://dev.enekoalonso.com/2011/04/18/raphters-a-web-framework-for-c/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 05:16:48 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=685</guid>
		<description><![CDATA[The Changelog &#8211; Open Source moves fast. Keep up. via Raphters: A web framework for C. Related Posts:No Related Post]]></description>
			<content:encoded><![CDATA[<p>The Changelog &#8211; Open Source moves fast. Keep up.</p>
<p>via <a href="http://feedproxy.google.com/~r/thechangelog/~3/u1NAvNcgpK4/4608227295">Raphters: A web framework for C</a>.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>No Related Post</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/04/18/raphters-a-web-framework-for-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want new gesture controls in iOS 4.3 on your iPad? Here&#8217;s how</title>
		<link>http://dev.enekoalonso.com/2011/03/14/want-new-gesture-controls-in-ios-4-3-on-your-ipad-heres-how/</link>
		<comments>http://dev.enekoalonso.com/2011/03/14/want-new-gesture-controls-in-ios-4-3-on-your-ipad-heres-how/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 16:28:35 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[4.3]]></category>
		<category><![CDATA[gestures]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[multitasking]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=680</guid>
		<description><![CDATA[During one of the betas for iOS 4.3 we saw new gestures enabled (like pinch to go to the Home screen). They were later removed, but it appears they can be re-enabled by turning your iPad into an iOS developer iPad. via Want new gesture controls in iOS 4.3 on your iPad? Here&#8217;s how. Related [...]]]></description>
			<content:encoded><![CDATA[<p>During one of the betas for iOS 4.3 we saw new gestures enabled (like pinch to go to the Home screen). They were later removed, but it appears they can be re-enabled by turning your iPad into an iOS developer iPad.</p>
<p>via <a href="http://www.tuaw.com/2011/03/13/want-new-gesture-controls-in-ios-4-3-on-your-ipad-heres-how/">Want new gesture controls in iOS 4.3 on your iPad? Here&#8217;s how</a>.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>June 3, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/" title="Step back and watch what the “normals” do">Step back and watch what the “normals” do</a> (0)</li><li>August 22, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/22/list-of-iphone-ipsw-firmware-files/" title="List of iPhone ipsw firmware files (yes, downgrading from iOS 4.0.1 to 3.1.3)">List of iPhone ipsw firmware files (yes, downgrading from iOS 4.0.1 to 3.1.3)</a> (2)</li><li>August 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/03/iphone-sdk-old-versions/" title="List of iPhone SDK &#038; XCode packages">List of iPhone SDK &#038; XCode packages</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/03/14/want-new-gesture-controls-in-ios-4-3-on-your-ipad-heres-how/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Staying busy</title>
		<link>http://dev.enekoalonso.com/2011/03/14/staying-busy/</link>
		<comments>http://dev.enekoalonso.com/2011/03/14/staying-busy/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 15:43:47 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[agora]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[level]]></category>
		<category><![CDATA[studios]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=666</guid>
		<description><![CDATA[Wow, I just realized my last post here was in October 2010. It&#8217;s been a while. Turns out, October was when we launched the last project I was working on at LEVEL Studios. I am still working on that project, but doing back end stuff in C#.Net. Besides a couple of days working on another [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, I just realized my last post here was in October 2010. It&#8217;s been a while. Turns out, October was when we launched the last project I was working on at LEVEL Studios. I am still working on that project, but doing back end stuff in C#.Net. Besides a couple of days working on another project for Agora Games, I have not touched Javascript at all. Maybe that&#8217;s why I had nothing to write here.</p>
<p>Either way, I have many things and thoughts to share, but not a lot of free time to do it. I&#8217;ll try to keep posting about all the stuff I am working on now.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>May 6, 2010 -- <a href="http://dev.enekoalonso.com/2010/05/06/tech-talks-at-level-studios/" title="Tech talks at LEVEL Studios">Tech talks at LEVEL Studios</a> (0)</li><li>October 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/" title="Command line scripting with Node.js">Command line scripting with Node.js</a> (0)</li><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>May 18, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/" title="location.hash is dead (on html5 browsers)">location.hash is dead (on html5 browsers)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2011/03/14/staying-busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript console in the terminal (command line)</title>
		<link>http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/</link>
		<comments>http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 04:15:19 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[exe]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=672</guid>
		<description><![CDATA[I&#8217;ve been looking for a command line Javascript console for a while. I have even thought of creating my own one, some hybrid between my fake Linux terminal and JSFiddle.net. Lately, I&#8217;ve been working with node.js lately on a little project just for fun. Never before I had done server side Javascript and it looks [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking for a command line Javascript console for a while. I have even thought of creating my own one, some hybrid between <a href="http://enekoalonso.com">my fake Linux terminal</a> and <a href="http://www.jsfiddle.net">JSFiddle.net</a>. Lately, I&#8217;ve been working with <a href="http://dev.enekoalonso.com/tag/node-js/">node.js</a> lately on a little project just for fun. Never before I had done server side Javascript and it looks like it has serious potential. But still, I had no console other than Firebug or, my favorite, the one included in Webkit.</p>
<p>So I am very happy after coming across this article which shows <a href="http://webreflection.blogspot.com/2010/10/javascriptcore-via-terminal.html">how to use the JavaScriptCore.Framework included in Mac OS X on the command line</a>. Doing some Google searches, looks like people have been talking about this <a href="http://www.phpied.com/javascript-shell-scripting/">for a long time</a>. Even more! Here is <a href="http://www.phpied.com/make-your-javascript-a-windows-exe/">how to compile javascript to .exe in Windows</a>. Didn&#8217;t even thought that could be possible, being Javascript such a dynamic language.</p>
<p>One interesting thing about the jsc Javascript console is that you can load() javascript files from disk. Thus, one can get the <a href="http://mootools.net/core">Mootools core</a> (Core + Function + Array + Number + String + Hash + Class + Class.Extras + JSON) and load it to start creating awesome classes, etc.</p>
<p>This is going to be a lot of fun :)</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>October 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/" title="Command line scripting with Node.js">Command line scripting with Node.js</a> (0)</li><li>July 13, 2011 -- <a href="http://dev.enekoalonso.com/2011/07/13/clone-your-osxterminal-window/" title="Clone your OSX terminal window">Clone your OSX terminal window</a> (1)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/10/05/javascript-console-in-the-terminal-command-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Having fun with node.js &amp; Redis</title>
		<link>http://dev.enekoalonso.com/2010/10/01/having-fun-with-node-js-redis/</link>
		<comments>http://dev.enekoalonso.com/2010/10/01/having-fun-with-node-js-redis/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 23:05:19 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[grasshopper]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[node_redis]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=670</guid>
		<description><![CDATA[Last week I set up node.js for the first time. I did it on my Dreamhost shared server, but since that goes against the Terms of Service, I set up a small dedicated virtual server at RackspaceCloud. My configuration uses: Ubuntu 10.04.1 subversion node.js grasshopper node_redis redis So far it&#8217;s been a lot of fun, [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I set up node.js for the first time. <a href="http://twitter.com/#!/eneko/status/25181307957">I did it</a> on my Dreamhost shared server, but since that goes against the Terms of Service, I set up a small dedicated virtual server at RackspaceCloud.</p>
<p>My configuration uses:</p>
<ul>
<li>Ubuntu 10.04.1</li>
<li>subversion</li>
<li><a href="http://nodejs.org/">node.js</a></li>
<li><a href="http://github.com/tuxychandru/grasshopper">grasshopper</a></li>
<li><a href="http://github.com/mranney/node_redis">node_redis</a></li>
<li><a href="http://code.google.com/p/redis/">redis</a></li>
</ul>
<p>So far it&#8217;s been a lot of fun, I&#8217;ll give more details about the installation steps and configuration later on :)</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>May 6, 2010 -- <a href="http://dev.enekoalonso.com/2010/05/06/tech-talks-at-level-studios/" title="Tech talks at LEVEL Studios">Tech talks at LEVEL Studios</a> (0)</li><li>February 19, 2010 -- <a href="http://dev.enekoalonso.com/2010/02/19/having-fun-with-mooml-and-twitter/" title="Having fun with Mooml &#038; Twitter">Having fun with Mooml &#038; Twitter</a> (0)</li><li>February 28, 2009 -- <a href="http://dev.enekoalonso.com/2009/02/28/kyte-rest-api/" title="Kyte&#8217;s REST API">Kyte&#8217;s REST API</a> (0)</li><li>October 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/10/12/command-line-scripting-with-node-js/" title="Command line scripting with Node.js">Command line scripting with Node.js</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/10/01/having-fun-with-node-js-redis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Date from ISO 8601 string</title>
		<link>http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/</link>
		<comments>http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 16:17:34 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[iso8601]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=662</guid>
		<description><![CDATA[Javascript is full of surprises and browser compatibility is even more exciting. For some reason, I thought all browsers or Javascript engines had support for creating dates from ISO 8601 strings. Like this: var myDate = new Date&#40;&#34;2010-09-21T02:57:00Z&#34;&#41;; console.log&#40;myDate&#41;; // Mon Sep 20 2010 19:57:00 GMT-0700 (Pacific Daylight Time) Turns out that does not work [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript is full of surprises and browser compatibility is even more exciting. For some reason, I thought all browsers or Javascript engines had support for creating dates from ISO 8601 strings. Like this:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> myDate = <span class="kw2">new</span> Date<span class="br0">&#40;</span><span class="st0">&quot;2010-09-21T02:57:00Z&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span>myDate<span class="br0">&#41;</span>; <span class="co1">// Mon Sep 20 2010 19:57:00 GMT-0700 (Pacific Daylight Time)</span></div>
</li>
</ol>
</div>
<p>Turns out that does not work on Internet Explorer (tested on IE8). It didn&#8217;t work in Titanium Developer either, when I was working on an iPhone/Android app a couple of weeks ago. Here is the function I used to load dates from ISO 8601 strings:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> dateFromISO8601<span class="br0">&#40;</span>isostr<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> parts = isostr.<span class="me1">match</span><span class="br0">&#40;</span><span class="re0">/\d+/g</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="kw2">new</span> Date<span class="br0">&#40;</span>parts<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, parts<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> &#8211; <span class="nu0">1</span>, parts<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>, parts<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span>, parts<span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span>, parts<span class="br0">&#91;</span><span class="nu0">5</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> myDate = dateFromISO8601<span class="br0">&#40;</span><span class="st0">&quot;2010-09-21T02:57:00Z&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span>myDate<span class="br0">&#41;</span>; <span class="co1">// Mon Sep 20 2010 19:57:00 GMT-0700 (Pacific Daylight Time)</span></div>
</li>
</ol>
</div>
<p>That should work fine everywhere :)</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>August 18, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/" title="Titanium Developer: love and hate (Part II)">Titanium Developer: love and hate (Part II)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MooTools Core for Server and Mobile Development</title>
		<link>http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/</link>
		<comments>http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 17:50:30 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=655</guid>
		<description><![CDATA[One of the best things of MooTools is that it is very modular, from the core itself. This means you don&#8217;t need to include all core elements in your projects if you don&#8217;t want or don&#8217;t need some modules. For example, you may not want to include Array or Function, if you don&#8217;t need any [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best things of MooTools is that it is very modular, from the core itself. This means you don&#8217;t need to include all core elements in your projects if you don&#8217;t want or don&#8217;t need some modules. For example, you may not want to include Array or Function, if you don&#8217;t need any enhancements of such objects.</p>
<p>In the case of server side or mobile applications (<a href="http://www.appcelerator.com/">Titanium Developer</a> and other Javascript based mobile frameworks), there is no browser involved which means there is no DOM. Thus, we can removed any kind of module that depend or are designed to work with this elements: Browser, Element, Selectors, Cookie&#8230; all those modules have no value for server side or mobile applications.</p>
<p>I found this page which summarizes the modules you should need for server or mobile development:</p>
<blockquote><p>
<strong><a href="http://mootools.net/core">MooTools Core</a></strong><br />
Core: core<br />
Native: Array, Function, Number, String, Hash<br />
Class: Class, Class.Extras</p>
<p><strong><a href="http://mootools.net/more">MooTools More</a></strong><br />
Core: More<br />
Class: Class.Refactor, Class.Binds, Class.Occludes
</p></blockquote>
<p><a href="http://onecrayon.com/spice/docs/mootools-server/">http://onecrayon.com/spice/docs/mootools-server/</a></p>
<p>Personally, I don&#8217;t find the MooTools More modules very useful, so I&#8217;m not including them in my projects. Maybe Binds would be a good addition, but it is not critical.</p>
<p>Having MooTools in a Javascript application makes it easier to develop and brings you all the power of Object Oriented programming with classes, inheritance and more.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>August 18, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/" title="Titanium Developer: love and hate (Part II)">Titanium Developer: love and hate (Part II)</a> (0)</li><li>September 21, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/" title="Date from ISO 8601 string">Date from ISO 8601 string</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Link: Whirlpool JS</title>
		<link>http://dev.enekoalonso.com/2010/08/27/link-whirlpool-js/</link>
		<comments>http://dev.enekoalonso.com/2010/08/27/link-whirlpool-js/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 20:08:25 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[compressed]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[minified]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[whirlpool]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=651</guid>
		<description><![CDATA[Whirlpool is a very strong hashing algorithm (one way encryption) that encodes any text into a 128 character string (popular md5 generates a 32 byte string). Looking for the JavaScript version, I had to search on my email inbox for an email I received back in October 2009 to found the link where to download [...]]]></description>
			<content:encoded><![CDATA[<p>Whirlpool is a very strong hashing algorithm (one way encryption) that encodes any text into a 128 character string (popular md5 generates a 32 byte string). </p>
<p>Looking for the JavaScript version, I had to search on my email inbox for an email I received back in October 2009 to found the link where to download the Whirlpool Hash Javascript Algorithm. It&#8217;s kind of surprising that searching in Google for &#8220;whirlpool js&#8221;, &#8220;whirlpool javascript&#8221; or &#8220;whirlpool hash javascript algorithm&#8221; does not return the link.</p>
<p>For the record, here is the url:<br />
<a href="http://www.sunsean.com/Whirlpool.html">Whirlpool Hash Javascript Algorithm</a></p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>May 18, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/18/location-hash-is-dead-on-html5-browsers/" title="location.hash is dead (on html5 browsers)">location.hash is dead (on html5 browsers)</a> (0)</li><li>May 12, 2011 -- <a href="http://dev.enekoalonso.com/2011/05/12/angry-birds-as-a-web-app/" title="Angry Birds as a Web App">Angry Birds as a Web App</a> (0)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>August 18, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/" title="Titanium Developer: love and hate (Part II)">Titanium Developer: love and hate (Part II)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/08/27/link-whirlpool-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List of iPhone ipsw firmware files (yes, downgrading from iOS 4.0.1 to 3.1.3)</title>
		<link>http://dev.enekoalonso.com/2010/08/22/list-of-iphone-ipsw-firmware-files/</link>
		<comments>http://dev.enekoalonso.com/2010/08/22/list-of-iphone-ipsw-firmware-files/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 04:01:03 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[3.1.3]]></category>
		<category><![CDATA[4]]></category>
		<category><![CDATA[4.0.1]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[downgrade]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ios4]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphoneos]]></category>
		<category><![CDATA[ipsw]]></category>
		<category><![CDATA[recboot]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=646</guid>
		<description><![CDATA[So I finally decided to downgrade my iPhone 3G from iOS 4.0.1 to iPhone OS 3.1.3. For some reason, Apple does not keep the old ipsw restore files easy to find and most posts on Internet are missing a link to them. Here is a list of some of them: iPhone 3.1.3 firmware for iPhone [...]]]></description>
			<content:encoded><![CDATA[<p>So I finally decided to downgrade my iPhone 3G from iOS 4.0.1 to iPhone OS 3.1.3. For some reason, Apple does not keep the old ipsw restore files easy to find and most posts on Internet are missing a link to them. Here is a list of some of them:<br />
<a href="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7481.20100202.4orot/iPhone1,1_3.1.3_7E18_Restore.ipsw" target="_blank">iPhone 3.1.3 firmware for iPhone 2G</a><br />
<a href="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7468.20100202.pbnrt/iPhone1,2_3.1.3_7E18_Restore.ipsw" target="_blank">iPhone 3.1.3 firmware for iPhone 3G</a><br />
<a href="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7472.20100202.8tugj/iPhone2,1_3.1.3_7E18_Restore.ipsw" target="_blank">iPhone 3.1.3 firmware for iPhone 3GS</a></p>
<p>I have downgraded my phone following this article: <a href="http://www.redmondpie.com/downgrade-ios-4.1-to-ios-4-3.1.3-3.1.2-how-to-guide/">Downgrade iOS 4.1 iPhone 4, 3GS, 3G and iPod touch to iOS 4 / iPhone 3.1.3 / 3.1.2 [How to Guide]</a></p>
<p>The process is super simple, I couldn&#8217;t believe it was so easy, specially, since RecBoot runs so clean and fast. What the tutorials don&#8217;t say, although I expected it, is that you will lost all your data (as every time you recover). The problem is the next time you connect to iTunes, you wont be able to restore from your latest backup since it would be for a newer OS version.</p>
<p>Luckily, iTunes keeps track of old backups. I&#8217;m currently restoring from a backup I have from April 2010, probably the last one before I updated to the back then beta version of iOS 4.</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>August 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/03/iphone-sdk-old-versions/" title="List of iPhone SDK &#038; XCode packages">List of iPhone SDK &#038; XCode packages</a> (1)</li><li>February 7, 2010 -- <a href="http://dev.enekoalonso.com/2010/02/07/my-current-svn-setup/" title="My current SVN setup">My current SVN setup</a> (0)</li><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>June 3, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/03/step-back-and-watch-what-the-%e2%80%9cnormals%e2%80%9d-do/" title="Step back and watch what the “normals” do">Step back and watch what the “normals” do</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/08/22/list-of-iphone-ipsw-firmware-files/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Titanium Developer: love and hate (Part II)</title>
		<link>http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/</link>
		<comments>http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 19:58:52 +0000</pubDate>
		<dc:creator>Eneko Alonso</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[compiled]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[generated]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[scrollview]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://dev.enekoalonso.com/?p=644</guid>
		<description><![CDATA[For the last four weeks and despite other projects and deadlines, I&#8217;ve been working on a mobile app for iPhone and Android, using Titanium Developer from Appcelerator. I still hate it. And I still love it. More to come&#8230; Related Posts:June 14, 2011 -- Titanium Studio and Titanium Mobile 1.7 (0)July 30, 2010 -- Titanium [...]]]></description>
			<content:encoded><![CDATA[<p>For the last <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/">four weeks</a> and despite other projects and deadlines, I&#8217;ve been working on a mobile app for iPhone and Android, using Titanium Developer from <a href="http://appcelerator.com">Appcelerator</a>.</p>
<p>I still hate it. And I still love it.</p>
<p>More to come&#8230;</p>
<h3  class="related_post_title">Related Posts:</h3><ul class="related_post"><li>June 14, 2011 -- <a href="http://dev.enekoalonso.com/2011/06/14/titanium-studio-and-titanium-mobile-1-7/" title="Titanium Studio and Titanium Mobile 1.7">Titanium Studio and Titanium Mobile 1.7</a> (0)</li><li>July 30, 2010 -- <a href="http://dev.enekoalonso.com/2010/07/30/titanium-developer-love-and-hate/" title="Titanium Developer: love and hate">Titanium Developer: love and hate</a> (3)</li><li>September 17, 2010 -- <a href="http://dev.enekoalonso.com/2010/09/17/mootools-core-for-server-and-mobile-development/" title="MooTools Core for Server and Mobile Development">MooTools Core for Server and Mobile Development</a> (1)</li><li>August 3, 2010 -- <a href="http://dev.enekoalonso.com/2010/08/03/iphone-sdk-old-versions/" title="List of iPhone SDK &#038; XCode packages">List of iPhone SDK &#038; XCode packages</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://dev.enekoalonso.com/2010/08/18/titanium-developer-love-and-hate-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

