<?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>GMTAZ.com &#187; Technology</title>
	<atom:link href="http://www.gmtaz.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gmtaz.com</link>
	<description>Gustavo Tandeciarz&#039;s personal blog</description>
	<lastBuildDate>Fri, 27 Aug 2010 00:57:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Node.js, Faye, Apache Proxies, Nginx and Websockets [WTF]</title>
		<link>http://www.gmtaz.com/node-js-faye-apache-proxies-nginx-and-websockets-wtf/</link>
		<comments>http://www.gmtaz.com/node-js-faye-apache-proxies-nginx-and-websockets-wtf/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 00:11:20 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=470</guid>
		<description><![CDATA[I&#8217;m going to start off by saying that I have officially confused myself. If this post is difficult to follow, I completely understand. What I&#8217;m going to attempt to describe is how I was able to get node.js running on a virtual machine via http-proxy and set up a geoip server to create the map [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to start off by saying that I have officially confused myself.  If this post is difficult to follow, I completely understand.  What I&#8217;m going to attempt to describe is how I was able to get node.js running on a virtual machine via http-proxy and set up a geoip server to create the map that you can find at <a href="http://livestats.gmtaz.com" target=_blank>livestats.gmtaz.com</a>.  </p>
<p>First, what is livestats?  It&#8217;s the end point of this <a href="http://peepcode.com/products/nodejs-i" target=_blank>Peepcode tutorial video</a>.</p>
<p>Second, why the completely convoluted setup?  If you watch the tutorial (it&#8217;s only $9 and I highly recommend it), you&#8217;ll see that they set up their Faye/Node server on port 8000.  I want my setup to work on port 80 so that most firewalls won&#8217;t block access to it (including mine at the office).  I also have a bunch of other websites running on port 80 (including the geoip site).  I need to be able to split up access to each of these based on host names in the request headers (ergo, livestats.gmtaz.com takes you to my node.js app and geopip.gmtaz.com takes you to my geoip app &#8211; both of which are running on port 80).</p>
<p>Ah, so what to do, what to do&#8230;<br />
<span id="more-470"></span></p>
<p>First step was to get Node.js running.  It works on linux so I had to get a linux distro, hopefully Ubuntu or something similar (ended up going with <a href="http://linuxmint.com/">Mint</a>), and some kind of virtualization software to run it (<a href="http://www.virtualbox.org/">VirtualBox</a>).  Both of these products are free. </p>
<p>Actually, now that I think about it, all the software I used is free.  Awesome.</p>
<p>Step 1.A:  <a href="http://www.codediesel.com/linux/installing-node-js-on-ubuntu-10-04/">Get Node.js installed</a>.<br />
Step 1.B:  Get nginx installed.  &#8220;sudo apt install nginx&#8221;.</p>
<p>Ok, easy enough.  Next step is to complete the tutorial and get the node.js app running.  Go do it.</p>
<p>&#8230;a few hours later&#8230;</p>
<p>So now, you should have your node app running on localhost:8000 without issue.  Great! Wait, not great.  I(you) want to access the node app on port 80.  Ok, well, let&#8217;s configure nginx to proxy over port 80 to port 8000.</p>
<p>default.conf<br />
<code><br />
server {<br />
	listen   80;<br />
	server_name example.com *.example.com  localhost;</p>
<p>	access_log  /var/log/nginx/localhost.access.log;</p>
<p>	location / {<br />
		proxy_pass	http://localhost:8000;<br />
	}</p>
<p>}<br />
</code></p>
<p>proxy.conf<br />
<code><br />
proxy_redirect		off;<br />
proxy_set_header            Host $host;<br />
proxy_set_header            X-Real-IP $remote_addr;<br />
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;<br />
client_max_body_size        10m;<br />
client_body_buffer_size     128k;<br />
proxy_connect_timeout       6000;<br />
proxy_send_timeout          6000;<br />
proxy_read_timeout          6000;<br />
proxy_buffer_size           4k;<br />
proxy_buffers               4 32k;<br />
proxy_busy_buffers_size     64k;<br />
proxy_temp_file_write_size  64k;<br />
send_timeout                6000;<br />
proxy_buffering             off;<br />
proxy_next_upstream error;<br />
</code></p>
<p>Check out the <a href="http://wiki.nginx.org/Main">nginx wiki</a> for some good tutorials and sample code.</p>
<p>Now, when I go to http://localhost:80, nginx loads my node app which is running on port 8000.<br />
You can configure multiple server objects in the config.  Took me a few minutes to figure that out.  This means you can have multiple name based proxies. </p>
<p>Ok, this is great.  Now I point my home firewall to forward port 80 to my virtual server&#8217;s IP (which should be bridged to your network, not NAT *muy importante*).  This allows me to go to my public ip and get routed to my virtual server.  Just make sure that in the nginx config you are specifying the server name as the public IP or the DNS friendly name instead of example.com.</p>
<p>This is where the trickiness comes into play.  I need a geoip server.  I can get one running on <a href="http://www.maxmind.com/app/php">apache and php</a>.  I used the pure PHP module, but feel free to use the module for Apache.  This brings me to my my Apache config.  *Awesome segway, I know*</p>
<p>I have apache listening to port 80, which means it can&#8217;t be running on the linux VM (you can only bind a port to an app once).  Installing Apache 2.2.16 on the host machine (running Windows 7) was my next step.  What about IIS?  Well, I could use my IIS setup on Windows 7 too but I initially used Apache for my proxy server.  Yeah, yeah, now I&#8217;m doing a double proxy.  Totally unnecessary, but you&#8217;ll see why I did it in a minute.  Anywho, I have my Apache config set up to run multiple virtual hosts. One vhost proxies out my http request to my IIS server, which then serves up the site in IIS.  The other vhost serves up the geoip app.  </p>
<p>Another thing to be aware of is that I needed 2 different versions of PHP installed on my computer because Apache 2.2.16 requires a different version (VC9) than my IIS setup (VC6).  Also, IIS is configured to hit sql and mysql servers for different websites that I have running, and I was getting errors in php5ts.dll when enabling those modules in PHP 5.3.3 on Windows.</p>
<p>Quick summary of the situation so far:</p>
<p>Windows 7 (HOST):<br />
Apache 2.2.16 with PHP 5.3.3 VC9<br />
 &#8211; Apache is set up to proxy requests based on host names to IIS or to geoIP.<br />
 &#8211; In case I decide to turn off the virtual machine, I still want to be able to host all my other websites.<br />
IIS 7.5 with PHP 5.3.3 VC6 (PORT 8000)<br />
 &#8211; IIS is serving up a few other website that are developed in ASP.net C# and PHP (This is why I need IIS <img src='http://www.gmtaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>Linux Mint (VM)<br />
Nginx<br />
 &#8211; Proxy server for node.js running on port 8000 (in case I want to run multiple node apps &#8211; each one must be on a different port, which is why I need the proxy).<br />
Node.js<br />
 &#8211; Hosting the livestats app on port 8000.</p>
<p>Got that? Ok.  The next part stumped me for most of the day.  My node.js via proxy worked fine in Firefox, but not in Chrome.  WTF??  Let me rephrase.  Chrome worked when going to the direct IP and port of the node server which means that the proxy was causing problems.   I&#8217;ll save everyone a lot of time by saying this:  websockets via proxy don&#8217;t seem to work too well.<br />
Basically, Faye was detecting that the Chrome browser can use websockets and was attempting to create the connection using that (websockets).  Firefox was using the long-polling method.  How did I figure this out?  Long story but it had something to do with looking at the Faye object in Chrome inspector and seeing that it was rocking the websocket, then looking at the same Faye message object in Firebug and seeing that it was using long-polling.  Ok, I guess it wasn&#8217;t that long of a story&#8230;</p>
<p>So now I know that Faye, Node, websockets and proxies don&#8217;t mix all too well.  Turns out there was a simple solution.  Force Faye to use long-polling!  What do you mean &#8220;it&#8217;s not an option&#8221;? </p>
<p>Check out Faye-node.js in the tutorial code.  In there you&#8217;ll see an array for CONNECTION_TYPES.  Just replace &#8220;websocket&#8221; with &#8220;long-polling&#8221;.  Amazingly enough, this works.</p>
<p>So now you should have a pretty complicated network of proxies and web servers running but everything should be working  fine!  Magic? Nay.  Just a lot of tinkering and coffee.</p>
<p>Things that made development and testing easier:</p>
<ol>
<li>Running the node.js dev server so that it automatically restarts when a file is changed</li>
<li>Installing <a href="http://www.dropbox.com">Dropbox </a>on all servers and running the node site from the application folder within Dropbox</li>
<li><a href="http://getfirebug.com">Firebug</a> and Chrome&#8217;s Inspector</li>
<li><a href="http://macrabbit.com/espresso/">Espresso</a> on the mac for editing the app within the Dropbox folder</li>
<li><a href="http://www.virtualbox.org/">VirtualBox</a> and <a href="http://linuxmint.com/">Linux Mint</a></li>
</ol>
<p>These things made it incredibly easy to make changes and verify their functionality with a simple refresh.</p>
<p>EDITORS NOTE: Since writing this, I realized that for some reason the proxy isn&#8217;t working all that well in nginx for me ATM.  I&#8217;m using apache to proxy to nginx for now and not really using nginx at all.  The nginx proxy from vm to host works fine, but the proxy from nginx to node doesn&#8217;t work&#8230;</p>
<p>Something to do tomorrow. PEACE!</p>
<p>EDITORS NOTE 2: I figured out the proxy thing.  Now I&#8217;m just using nginx for proxy services.  Turns out I had statically set livestats.gmtaz.com in my hosts file on windows to 127.0.0.1.  Forgot about that.  Yay for testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/node-js-faye-apache-proxies-nginx-and-websockets-wtf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Undo Email moves in Apple Mail</title>
		<link>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/</link>
		<comments>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:46:55 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/</guid>
		<description><![CDATA[Did you know you could undo deleting or moving emails within Apple Mail by pressing command+Z ?]]></description>
			<content:encoded><![CDATA[<p>Did you know you could undo deleting or moving emails within Apple Mail by pressing command+Z ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/quick-tip-undo-email-moves-in-apple-mail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Upgrade Windows 7 RC Ultimate to RTM Enterprise</title>
		<link>http://www.gmtaz.com/how-to-upgrade-windows-7-rc-ultimate-to-rtm-enterprise/</link>
		<comments>http://www.gmtaz.com/how-to-upgrade-windows-7-rc-ultimate-to-rtm-enterprise/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 04:46:24 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=253</guid>
		<description><![CDATA[Yes yes, everyone said it&#8217;s unsupported and, technically, it is.  This was just an exercise to see if it was possible to do and I can personally verify that it is and, actually really easy. I&#8217;m going to assume that you already have a valid, legal copy of Windows 7 Enterprise and an installed copy [...]]]></description>
			<content:encoded><![CDATA[<p>Yes yes, everyone said it&#8217;s unsupported and, technically, it is.  This was just an exercise to see if it was possible to do and I can personally verify that it is and, actually really easy.</p>
<p>I&#8217;m going to assume that you already have a valid, legal copy of Windows 7 Enterprise and an installed copy of Windows 7 RC Ultimate and they are both the same kernel (either 32bit or 64bit) and that you already backed up all your data.</p>
<p>Within Windows Ultimate:</p>
<ol>
<li>Open up the Registry Editor (Start &gt; Run &gt; regedit)</li>
<li>Go to <em>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version </em>as seen in the screenshot below<br />
 <a rel="lightbox" href="http://www.gmtaz.com/wp-content/uploads/2009/08/regedit.png"><img class="aligncenter size-thumbnail wp-image-254" title="regedit" src="http://www.gmtaz.com/wp-content/uploads/2009/08/regedit-150x150.png" alt="regedit" width="150" height="150" /></a></li>
<li>Replace the word &#8220;Ultimate&#8221; with &#8220;Enterprise&#8221; in <em>ProductName</em> and <em>EditionID</em>.  You&#8217;re done modifying Windows 7 RC.</li>
</ol>
<p>Now comes the (kind of) tricky part. <br />
 <a title="How-To-Geek" href="http://www.howtogeek.com/howto/3075/how-to-upgrade-the-windows-7-rc-to-rtm/" target="_blank">See Here (howtogeek.com)</a> for another article describing this process and <a title="blogs.msdn.com" href="http://blogs.msdn.com/e7/archive/2009/04/07/delivering-a-quality-upgrade-experience.aspx" target="_blank">here (blogs.msdn.com)</a></p>
<ol>
<li>Take the Windows 7 Enterprise DVD and create an ISO image.  You will need to open the ISO and modify a file, more specifically, cversion.ini.</li>
<li>Once you have the ISO image, using an ISO image editor (I used <a href="http://www.poweriso.com/" target="_blank">PowerISO</a>), and browse the DVD image.  Locate <em>\sources\cversion.ini</em> and extract it to your desktop, then open it with notepad. </li>
<li>Change the winclient value to 7100, save and close.(winclient=7100)</li>
<li>Replace the file in the ISO with the file you just edited and burn the ISO to a DVD.</li>
<li>Start the installer from within Windows.</li>
<li>Be cooler than the next guy.</li>
</ol>
<p>That&#8217;s it.  Enjoy what is, arguably, the best version of Windows yet.  I&#8217;m assuming that this registry hack will work for versions other than Enterprise although I have not tried any other versions myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/how-to-upgrade-windows-7-rc-ultimate-to-rtm-enterprise/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>How to enable Remote Desktop through SSH or Telnet</title>
		<link>http://www.gmtaz.com/how-to-enable-remote-desktop-through-ssh-or-telnet/</link>
		<comments>http://www.gmtaz.com/how-to-enable-remote-desktop-through-ssh-or-telnet/#comments</comments>
		<pubDate>Fri, 08 May 2009 16:35:41 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[hints]]></category>
		<category><![CDATA[RDP]]></category>
		<category><![CDATA[remote desktop]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=176</guid>
		<description><![CDATA[If you have a telnet server already configured (or an SSH server as is my case) but you forgot to, or need to, enable remote desktop to remotely control that computer, you can do this via the terminal. Just connect to your console session (SSH / Telnet) and run this command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a telnet server already configured (or an SSH server as is my case) but you forgot to, or need to, enable remote desktop to remotely control that computer, you can do this via the terminal.<br />
Just connect to your console session (SSH / Telnet) and run this command:</p>
<pre>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v
 fDenyTSConnections /t REG_DWORD /d 0 /f</pre>
<p>This will make Terminal Services on the remote computer allow for incoming connections.  Then, for Windows 7, type in:</p>
<pre>net start "Remote Desktop Services"</pre>
<p>This will start the listener service on the computer.  You should now be able to access the computer using the administrators account (granted, you must have admin access to the ssh or telnet terminal to do any of this).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/how-to-enable-remote-desktop-through-ssh-or-telnet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery 1.3 cheat sheet wallpaper</title>
		<link>http://www.gmtaz.com/jquery-13-cheatsheet-wallpaper/</link>
		<comments>http://www.gmtaz.com/jquery-13-cheatsheet-wallpaper/#comments</comments>
		<pubDate>Fri, 01 May 2009 17:26:37 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=164</guid>
		<description><![CDATA[I went ahead and created a cheatsheet wallpaper for jQuery 1.3 using screenshots from http://oscarotero.com/jquery/ EDIT: One person commented about not being able to set up a different wallpaper for each space on OSX. Check out Spacesuit. This looks like a pretty good solution. Let me know if this helps out! Click on a link [...]]]></description>
			<content:encoded><![CDATA[<p>I went ahead and created a cheatsheet wallpaper for jQuery 1.3 using screenshots from <a title="http://oscarotero.com/jquery/" href="http://oscarotero.com/jquery/" target="_blank">http://oscarotero.com/jquery/</a></p>
<p>EDIT: One person commented about not being able to set up a different wallpaper for each space on OSX.  Check out <a title="Spacesuit" href="http://www.docklandsoft.com/spacesuit/" target="_blank">Spacesuit</a>.  This looks like a pretty good solution.  Let me know if this helps out!</p>
<p>Click on a link below to download:</p>
<div style="text-align:center;"><img class="alignleft size-medium wp-image-165" title="jQuery 1.3 1900x1200" src="http://www.gmtaz.com/wp-content/uploads/2009/05/jquery_1_3-300x187.png" alt="jQuery 1.3 1900x1200" width="300" height="187" /></div>
<div style="text-align:center;"><a title="1920x1080" href="http://www.gmtaz.com/wp-content/uploads/2009/05/jquery_1_3.png" target="_blank">1920&#215;1200</a> | <a href="http://www.gmtaz.com/wp-content/uploads/2009/05/jquery_1_3_1680.png" target="_blank">1680&#215;1050</a> | <a href="http://www.gmtaz.com/wp-content/uploads/2009/05/jquery_1_3_1440.png" target="_blank">1440&#215;900</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/jquery-13-cheatsheet-wallpaper/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>How to continue development from home, work and on the road using Dropbox, for FREE!</title>
		<link>http://www.gmtaz.com/how-to-continue-development-from-home-work-and-on-the-road-using-dropbox-for-free/</link>
		<comments>http://www.gmtaz.com/how-to-continue-development-from-home-work-and-on-the-road-using-dropbox-for-free/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 13:44:45 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubiquity]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=127</guid>
		<description><![CDATA[An example of how this helps:  I was recently working on writing some Ubiquity commands so I set up a Ubiquity folder within Dropbox, subscribed to the [ubiquitycommand].js file in that folder on every computer I work on, and that was it!  Now, whenever I make a change to those commands, the changes get synched to each computer and because Ubiquity is subscribed to the command on localhost, that change affects all computers.]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you have 3 different computers that you use (this is usually the case for people in IT or development).  I will use me as an example, mostly because I can&#8217;t speak for anyone else and because I know the subject REALLY well.  I have a work desktop (OS X Leopard), a personal laptop(OS X Leopard) and a home desktop(Windows Vista), not to mention, a couple virtual machines running windows on the 2 Macs.  I&#8217;m also starting to teach myself <a href="http://www.php.net" target="_blank">PHP</a> and continually developing my javascript and jQuery skills.  The reason I mention PHP is because there is no way to serve up ASP.net pages yet on the Mac (yes, I know about <a href="http://www.mono-project.com/Main_Page" target="_blank">mono</a>.  It isn&#8217;t quite there yet). Now, let&#8217;s say you want to seamlessly work on the same code on all 3 computers and virtual machines.  Enter <a href="http://www.getdropbox.com" target="_blank">Dropbox</a>.</p>
<blockquote><p>Brief: Dropbox is an application that runs in the background on your computer (mac, linux, windows) and automatically syncs files when connected to the internet.  If you&#8217;re doing web dev stuff, chances are you are connected online.  Dropbox also creates a local folder on each computer to store the files that you are working on, etc.</p></blockquote>
<p>Enter brain power:</p>
<ol>
<li> Set up <a href="http://apache.org/" target="_blank">Apache</a> on all computers since it&#8217;s a very powerful web server that runs on the previously mentioned operating systems. Here&#8217;s a <a href="http://httpd.apache.org/docs/2.0/platform/windows.html" target="_blank">guide on installing Apache on Windows</a>.</li>
<li>Set up the root directory in Apache to be the ~/user/Sites folder and <a href="http://www.macosxhints.com/article.php?story=2001110610290643" target="_blank">create a sym-link</a> (<a href="http://www.howtogeek.com/howto/windows-vista/using-symlinks-in-windows-vista/" target="_blank">Windows Vista</a>) to your dropbox directory. This way you can run multiple websites (some that sync and some that don&#8217;t).<br />
To take this a step further, you could put all of this config info in a separate .config file (I called mine, &#8220;dropbox.config&#8221;) and drop it in the Dropbox directory for automatic synchronization throughout your systems.  This works best if the operating systems are the same or the root structure is the same.</li>
<li>So now, when you browse <a href="http://localhost" target="_blank">http://localhost</a>, you should see this:<br />
<a rel="lightbox" href="http://www.gmtaz.com/wp-content/uploads/2009/02/picture-1.png"><img class="size-medium wp-image-129" title="Localhost" src="http://www.gmtaz.com/wp-content/uploads/2009/02/picture-1-300x206.png" alt="localhost image" width="300" height="206" /></a></li>
<li>Verify that you see the same directory structure on all computers.  If this is the case, then you&#8217;re done.  Just start by creating PHP site within the Dropbox folder (I created a subfolder called WWW and in Apache I create a call to the virtual directory /dropbox which takes me to the WWW folder) &lt;= This is important if you want to use Dropbox for other things!  This way, when you click on the Dropbox link listed under (~/Sites) it will redirect you to the dropbox/WWW folder.</li>
</ol>
<p>Now, when you are writing code, editing images, or anything else, the code will automatically synchronize to each workstastion, allowing you to continue right where you left off, anywhere.</p>
<p>An example of how this helps:  I was recently working on writing some <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/" target="_blank">Ubiquity</a> commands so I set up a Ubiquity folder within Dropbox, subscribed to the [ubiquitycommand].js file in that folder on every computer I work on, and that was it!  Now, whenever I make a change to those commands, the changes get synched to each computer and because Ubiquity is subscribed to the command on localhost, that change affects all computers.</p>
<p>This method also works extremely well when you have different operating system specific browsers that you would like to test with.  It may seem a little daunting at first, but let me tell you, once it is set up, you&#8217;re done.  No need to reconfigure anything.  Best of all, Dropbox is FREE!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/how-to-continue-development-from-home-work-and-on-the-road-using-dropbox-for-free/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OSX: Finally, lock your screen</title>
		<link>http://www.gmtaz.com/osx-finally-lock-your-screen/</link>
		<comments>http://www.gmtaz.com/osx-finally-lock-your-screen/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 08:35:35 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Quicksilver]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=105</guid>
		<description><![CDATA[So I was looking around at options to create a key combo to lock the screen on OS X Leopard. I came across several different options and none of them were really want I wanted. Some required running an apple script to start a screen saver, others require the key chain access application or having [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #404040;">So I was looking around at options to create a key combo to lock the screen on OS X Leopard.  I came across several different options and none of them were really want I wanted.  Some required running an apple script to start a screen saver, others require the key chain access application or having an icon on you menu bar or dock.  All I wanted was a simple key combo to lock the screen.  It&#8217;s as easy as 1-2-3&#8230;4-5-6-7-8.  This is how you do it:</span></p>
<ol>
<li><span style="color: #404040;">Get <a href="http://www.blacktree.com/" target="_blank">Quicksilver</a> if you dont already have it.  So many good things come from this app that it&#8217;s worth it if not for this, then for it&#8217;s pure awesomeness.</span></li>
<li><span style="color: #404040;">Enable fast user switching (System Preferences&gt;Accounts&gt;Login Options-last check box)</span></li>
<li><span style="color: #404040;">Go into Quicksilver Preferences (default is option+space&gt;command+,) and make sure you have the Extra Scripts and User Accounts Module enabled under plugins.</span></li>
<li><span style="color: #404040;">Open the Quicksilver interface (option+space) and select &#8220;Fast Logout&#8221;, press &#8216;Tab&#8217; then &#8216;right arrow&#8217; to open up the command selections and select &#8216;Run: run a shell script&#8217; and press enter.  This should bring you to the user login window.</span></li>
<li><span style="color: #404040;">If that worked, go back into Quicksilver Preferences (option+space&gt;command+,) and select &#8216;Triggers&#8217;.</span></li>
<li><span style="color: #404040;">Add a new trigger by pressing the &#8216;+&#8217; symbol at the bottom. Select &#8216;Add new hotkey&#8217;.  You should now see the default as the last command you picked (Fast Logout and &#8216;Run&#8217;).</span></li>
<li><span style="color: #404040;">Click Save</span></li>
<li><span style="color: #404040;">Now click on the &#8216;Trigger&#8217; (it should say &#8216;none&#8217;) and select the hot key you wish to use.  I chose to use &#8216;command+option+L&#8217; as command+L has other functions.</span></li>
</ol>
<p><span style="color: #404040;">That&#8217;s it.  You can now lock your Mac to your heart&#8217;s content with a simple keystroke.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/osx-finally-lock-your-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubiquity and me</title>
		<link>http://www.gmtaz.com/ubiquity-and-me/</link>
		<comments>http://www.gmtaz.com/ubiquity-and-me/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 13:08:52 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ubiquity]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/?p=94</guid>
		<description><![CDATA[Well, it's been a while... I've been busy with work and working on some other development things...plus my personal life has gotten rather busy too!  Anywho, I found this firefox plugin (Ubiquity) which is basically the Firefox equivalent of Quicksilver for the mac...]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been a while&#8230; I&#8217;ve been busy with work and working on some other development things&#8230;plus my personal life has gotten rather busy too!  Anywho, I found this firefox plugin (<a title="Ubiquity" href="http://labs.mozilla.com/projects/ubiquity/" target="_blank">Ubiquity</a>) which is basically the Firefox equivalent of Quicksilver for the mac.  It&#8217;s highly programmable and I am currently working on a few commands.  You&#8217;ll find a lot of them here.  I&#8217;m going to try to incorporate it somehow into our office intranet once the development gets a little more finalized (they have a long way to go but it&#8217;s coming out great!).</p>
<p>So far I&#8217;ve written some custom commands to search my brother-in-law&#8217;s photogallery site, some wordpress blogs, and I&#8217;m currently working on a quicknotes plugin.  When these are done, you&#8217;ll probably be able to find them under <a title="Projects" href="http://www.gmtaz.com/index.php/projects">Projects</a>.  Speaking of, I really need to update that page&#8230; I haven&#8217;t worked on either this site or the Rome in a Day site in the longest time. <img src='http://www.gmtaz.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Anywho, enjoy <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a>.  Hopefully it will really take off.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/ubiquity-and-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Music &#8211; Application coupling</title>
		<link>http://www.gmtaz.com/free-music-application-coupling/</link>
		<comments>http://www.gmtaz.com/free-music-application-coupling/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 17:10:31 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/index.php/free-music-application-coupling/</guid>
		<description><![CDATA[Ok, so I recently found Free Music Zilla (www.freemusiczilla.com), which allows me to download any song playing online in mp3 format&#8230;and I was using it for random Myspace stuff but as of today I&#8217;ve discovered that with Songerize (www.songerize.com), you can search the web for whatever song you want to play and then immediately download [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so I recently found Free Music Zilla (www.freemusiczilla.com), which allows me to download any song playing online in mp3 format&#8230;and I was using it for random Myspace stuff but as of today I&#8217;ve discovered that with Songerize (www.songerize.com), you can search the web for whatever song you want to play and then immediately download it using Zilla.  Really simple, and effective.  So what does this mean? Well, if you don&#8217;t know&#8230;then you wont be able to figure out how to use this software anyway.  In fact, just stop using a computer altogether.</p>
<p>Links:</p>
<p><a href="http://www.freemusiczilla.com" target="_blank">Free Music Zilla</a></p>
<p><a href="http://www.songerize.com" target="_blank">Songerize </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/free-music-application-coupling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Jailbreak online &#8211; Personal Report</title>
		<link>http://www.gmtaz.com/iphone-jailbreak-online-personal-report/</link>
		<comments>http://www.gmtaz.com/iphone-jailbreak-online-personal-report/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 18:55:52 +0000</pubDate>
		<dc:creator>Gustavo</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.gmtaz.com/index.php/iphone-jailbreak-online-personal-report/</guid>
		<description><![CDATA[Well, it&#8217;s true. You can jailbreak (hack) your iPhone by navigating Safari on the phone to http://jailbreakme.com/. I successfully did this but let me throw out a few warnings and some tips. First, a warning: After hacking my phone, I get periodic application crashes. In example, the iPod app crashes every so often. Not while [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gmtaz.com/wp-content/uploads/2007/08/hotz.jpg" alt="Hotz and phone" style="float: left" />Well, it&#8217;s true.  You can jailbreak (hack) your iPhone by navigating Safari on the phone to <a href="http://jailbreakme.com/" target="_blank">http://jailbreakme.com/</a>. I successfully did this but let me throw out a few warnings and some tips.</p>
<p>First, a warning:  After hacking my phone, I get periodic application crashes.  In example, the iPod app crashes every so often.  Not while playing music, but just after initial startup when it displays all my playlists.  It takes about a second or two and if I click on a play list, the crash doesn&#8217;t happen.  This also isn&#8217;t a &#8220;hard crash&#8221; per say.  The app just closes.  Safari was doing the same thing when browsing certain community websites.  As annoying as this was, I was more concerned about the permanence of the situation.  It seems that a soft reset solved the problem.   If it happens again, I&#8217;ll post something and let you know if the reset continues to be a work around.</p>
<p>[Edit: The cause of the crashes is summerboard.  Uninstalling summerboard solved this problem]</p>
<p>Ok, now for a couple of tips/instructions. <span id="more-73"></span></p>
<blockquote><p> 1. Back up the phone before doing this.  I did, thankfully,  because I had to perform a restore before the hack went through.<br />
2. After backing up the phone, perform a restore bringing it back to it&#8217;s initial 1.1.1<br />
3. Connect to wifi network.  Don&#8217;t do this over EDGE.  It&#8217;s too slow.  I tried it and had to try a restore before doing so.<br />
4. This one is probably the most important and most overlooked: turn off the auto lock feature on the phone.<br />
5. Hack the phone by going to  <a href="http://jailbreakme.com/" target="_blank">http://jailbreakme.com/</a> and following the instructions.<br />
6. Some sites say that you may have to power cycle the phone after the jailbreak is done.  I highly recommend this.  Computers have to reboot after an upgrade <img src='http://www.gmtaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
7. Now perform a sync and everything should be back to normal.  I got all of my settings back including my GMAIL settings and texts.  Oh, and I&#8217;m syncing to a PC.</p></blockquote>
<p>After all this is done, I highly recommend installing SummerBoard with the Icarus theme.  Then disable the transparent status bar and wallpaper.  They&#8217;re hideous.  I hope this helps some people.  Also, if you&#8217;re worried about hacking the phone and then another firmware update breaking or &#8216;bricking&#8217; your phone&#8230; I wouldn&#8217;t worry too much, unless you hacked the SIM.  As much as I hate at&amp;t and love the iPhone, I don&#8217;t recommend unlocking the SIM.  This will most likely end up bricking your phone.  If you break your shit, don&#8217;t blame me.  This is what I did to get hack my phone and it works.  Try at your own risk*</p>
<p>*Standard disclaimer.  I don&#8217;t want to get sued.<br />
**I&#8217;m using the ugly kid photo again cause I think it&#8217;s funny.  And apparently there are 3 degrees of separation from me to this guy&#8230; weird.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gmtaz.com/iphone-jailbreak-online-personal-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
