<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>subtleGradient</title>
    <link>http://subtlegradient.com/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>subtleGradient</description>
    <item>
      <title>MooTools 1.2 Final</title>
      <description>&lt;p&gt;MooTools 1.2 has finally been released. And now I&amp;#8217;m a member of the &lt;a href="http://mootools.net/developers"&gt;MooTools development team&lt;/a&gt;!&lt;/p&gt;


	&lt;h3&gt;&lt;a href="http://github.com/mootools/mootools-core/"&gt;MooTools on Git on Github&lt;/a&gt;&lt;/h3&gt;


	&lt;h3&gt;&lt;a href="http://mootools.lighthouseapp.com/"&gt;MooTools on Lighthouse&lt;/a&gt;&lt;/h3&gt;


	&lt;p&gt;I&amp;#8217;ve been bugging everyone I know to move over to GitHub and Lighthouse. With the release of MooTools 1.2 coming up and the instability of the Trac installation at mootools.net, I stole the opportunity to force the project to do my evil bidding! &lt;em&gt;heh heh heh&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;So, as of the 1.2 release, &lt;a href="http://github.com/mootools/mootools-core/"&gt;MooTools is on Git on Github&lt;/a&gt; and &lt;a href="http://mootools.lighthouseapp.com/"&gt;MooTools is now on Lighthouse&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Thanks to the GitHub and Lighthouse crews for giving us free Open Source awesomeness. You guys rock!&lt;/p&gt;


	&lt;p&gt;So, go. Enjoy your milk&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jun 2008 12:32:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2008/06/10/mootools-1-2-final</guid>
      <link>http://subtlegradient.com/articles/2008/06/10/mootools-1-2-final</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/56</trackback:ping>
    </item>
    <item>
      <title>Cloning a Git SVN Clone</title>
      <description>&lt;p&gt;I&amp;#8217;ve been trying to figure out a good way to make a publicly available &lt;code&gt;git-svn&lt;/code&gt; repo on &lt;a href="http://github.com/subtlegradient"&gt;GitHub.com&lt;/a&gt; that I can clone and then keep up to date with both the original svn repo and the GitHub repo and commit everything into my own fork.&lt;/p&gt;


	&lt;p&gt;So, how do you go about creating a Git repo that can push and pull to and from both Git and Subversion?&lt;/p&gt;
&lt;h3&gt;Clone the public repo&lt;/h3&gt;


&lt;pre&gt;
git clone git://github.com/drnic/ruby-tmbundle.git Ruby.tmbundle
cd Ruby.tmbundle/
&lt;/pre&gt;

	&lt;h3&gt;Fork the repo. &lt;em&gt;optional&lt;/em&gt;&lt;/h3&gt;


&lt;pre&gt;
git checkout master
git remote rm origin
git remote add origin git@github.com:subtleGradient/ruby-tmbundle.git
git pull
&lt;/pre&gt;

	&lt;h3&gt;Set your subversion remote&lt;/h3&gt;


	&lt;p&gt;Run this to set your subversion remote and pickup all your existing history asif you&amp;#8217;d done a &lt;code&gt;git svn clone ...&lt;/code&gt;.&lt;/p&gt;


&lt;pre&gt;
git branch macromates
git checkout macromates

git svn init http://macromates.com/svn/Bundles/trunk/Bundles/Ruby.tmbundle -R svn
cp .git/refs/remotes/origin/master .git/refs/remotes/git-svn
git svn fetch
&lt;/pre&gt;

	&lt;h4&gt;This should give you&amp;#8230;&lt;/h4&gt;


&lt;pre class="result"&gt;...
r9048 = a0bdcedd42f7ed1867d32120bbf92bab7b72f085
r9051 = 4eb5fee1621549f676f9d5e085f1ccf03489e334
r9362 = 28b1ea1529b071fa10ba458e816e4a9454f85d8a
Done rebuilding .git/svn/git-svn/.rev_map.dfb7d73b-c2ec-0310-8fea-fb051d288c6d
&lt;/pre&gt;

	&lt;h4&gt;If you get this error&amp;#8230;&lt;/h4&gt;


&lt;pre class="error-result"&gt;
Remote ref refs/remote/git-svn is tracked by
  "svn-remote.svn.fetch=:refs/remotes/git-svn" 
and
  "svn-remote.svn.fetch=:refs/remotes/git-svn" 
Please resolve this ambiguity in your git configuration file before continuing
&lt;/pre&gt;

	&lt;p&gt;... then you probably ran &lt;code&gt;git svn init&lt;/code&gt; twice without passing in a new name for each one. You&amp;#8217;ll have to remove the extra &lt;code&gt;fetch = :refs/remotes/git-svn&lt;/code&gt; reference if your &lt;code&gt;.git/config&lt;/code&gt; file.&lt;/p&gt;


	&lt;h3&gt;Keeping up-to-date&lt;/h3&gt;


	&lt;p&gt;Fetch from your public subversion repo&amp;#8230;&lt;/p&gt;


&lt;pre&gt;
git checkout macromates
git svn fetch svn
&lt;/pre&gt;

	&lt;p&gt;Pull from your public Git origin&amp;#8230;&lt;/p&gt;


&lt;pre&gt;
git checkout master
git pull origin master:master
&lt;/pre&gt;

	&lt;p&gt;Now you have two branches in the same Git repo that pull from a separate &lt;span class="caps"&gt;SCM&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&lt;strong&gt;Congrats&lt;/strong&gt;, you so totally rock!&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;Back to &lt;code&gt;master&lt;/code&gt;&lt;/h3&gt;


	&lt;p&gt;Once you&amp;#8217;re done setting up and fetching changes from subversion, you should switch back to your &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt;


&lt;pre&gt;git checkout master&lt;/pre&gt;

	&lt;h3&gt;That&amp;#8217;s it!&lt;/h3&gt;


	&lt;p&gt;&lt;em&gt;Next time&amp;#8230;&lt;/em&gt; fetching, merging and pushing back!&lt;/p&gt;</description>
      <pubDate>Tue, 22 Apr 2008 10:03:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone</guid>
      <link>http://subtlegradient.com/articles/2008/04/22/cloning-a-git-svn-clone</link>
      <category>Git</category>
      <category>Code</category>
      <category>Tip</category>
      <category>Workflow</category>
      <trackback:ping>http://subtlegradient.com/articles/trackback/55</trackback:ping>
    </item>
    <item>
      <title>Browser List March 2007</title>
      <description>&lt;p&gt;Ahoy. I just got around to sticking all my browsers in the same folder. And here&amp;#8217;s the list of browsers I currently have installed:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://tripledoubleyou.subtlegradient.com/stuff/blog/BrowserList.png" alt="" /&gt;&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Opera 9&lt;/li&gt;
		&lt;li&gt;Opera 9.5b&lt;/li&gt;
		&lt;li&gt;Opera Mini™ Simulator&lt;/li&gt;
		&lt;li&gt;Opera Wii Internet Channel&lt;/li&gt;
	&lt;/ol&gt;


	&lt;ol&gt;
	&lt;li&gt;Internet Explorer 5 Mac&lt;/li&gt;
		&lt;li&gt;Internet Explorer 5.01 Standalone&lt;/li&gt;
		&lt;li&gt;Internet Explorer 5.5 Standalone&lt;/li&gt;
		&lt;li&gt;Internet Explorer 6&lt;/li&gt;
		&lt;li&gt;Internet Explorer 6 Standalone&lt;/li&gt;
		&lt;li&gt;Internet Explorer 7 Standalone&lt;/li&gt;
		&lt;li&gt;Internet Explorer 7 Vista&lt;/li&gt;
		&lt;li&gt;Internet Explorer 8b1&lt;/li&gt;
		&lt;li&gt;Internet Explorer 8b1 Standalone&lt;/li&gt;
		&lt;li&gt;Outlook 2003&lt;/li&gt;
		&lt;li&gt;Outlook 2007&lt;/li&gt;
	&lt;/ol&gt;


	&lt;ol&gt;
	&lt;li&gt;Camino 1.5&lt;/li&gt;
		&lt;li&gt;Firefox 1.0 Mac&lt;/li&gt;
		&lt;li&gt;Firefox 1.5 Mac&lt;/li&gt;
		&lt;li&gt;Firefox 1.5 Windows XP&lt;/li&gt;
		&lt;li&gt;Firefox 2.0 Mac&lt;/li&gt;
		&lt;li&gt;Firefox 2.0 Windows XP&lt;/li&gt;
		&lt;li&gt;Firefox 3.0b4 Mac&lt;/li&gt;
		&lt;li&gt;Flock&lt;/li&gt;
		&lt;li&gt;Mozilla 1.4&lt;/li&gt;
		&lt;li&gt;Mozilla 1.5&lt;/li&gt;
		&lt;li&gt;Mozilla 1.6&lt;/li&gt;
		&lt;li&gt;Mozilla 1.7&lt;/li&gt;
		&lt;li&gt;Netscape 7.2 Mac&lt;/li&gt;
		&lt;li&gt;Netscape 9 Mac&lt;/li&gt;
	&lt;/ol&gt;


	&lt;ol&gt;
	&lt;li&gt;Google Android&lt;/li&gt;
		&lt;li&gt;iPhone 1.3.3&lt;/li&gt;
		&lt;li&gt;iPhone Simulator&lt;/li&gt;
		&lt;li&gt;OmniWeb&lt;/li&gt;
		&lt;li&gt;Safari 2.0.4 Standalone&lt;/li&gt;
		&lt;li&gt;Safari 3.0.4 Standalone&lt;/li&gt;
		&lt;li&gt;Safari 3.1&lt;/li&gt;
		&lt;li&gt;Shiira&lt;/li&gt;
		&lt;li&gt;WebKit Nightly&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Yay browsers!&lt;/p&gt;


	&lt;p&gt;How many browser do you currently have installed?&lt;/p&gt;</description>
      <pubDate>Mon, 31 Mar 2008 19:58:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2008/03/31/browser-list-march-2007</guid>
      <link>http://subtlegradient.com/articles/2008/03/31/browser-list-march-2007</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/54</trackback:ping>
    </item>
    <item>
      <title>Simple Install of Git on Leopard</title>
      <description>&lt;h3&gt;Here's how to install Git on Mac OS X Leopard&lt;/h3&gt;

&lt;pre&gt;
mkdir -p ~/Downloads/src
cd ~/Downloads/src

# Set options since we don't have GNU gettext installed
export TCL_PATH=`which tclsh`
export NO_MSGFMT=1
export GIT_VERSION='1.5.6'

# Get and install git
curl -O "http://kernel.org/pub/software/scm/git/git-$GIT_VERSION.tar.bz2"
tar xjvf "git-$GIT_VERSION.tar.bz2"
cd "git-$GIT_VERSION/"

# When on Mac OS X
./configure
make
sudo make install

cd ..

# Install Man Pages
curl -O "http://kernel.org/pub/software/scm/git/git-manpages-$GIT_VERSION.tar.bz2"
sudo tar xjv -C /usr/local/share/man        -f "git-manpages-$GIT_VERSION.tar.bz2"
&lt;/pre&gt;

&lt;h3&gt;Only needs some minor modifications to work on Dreamhost&lt;/h3&gt;

&lt;pre&gt;
mkdir -p "$HOME/src"
cd "$HOME/src"

# Set options even though we have GNU gettext installed
export TCL_PATH=`which tclsh`
export NO_MSGFMT=1
export GIT_VERSION='1.5.5'

# Get and Install Git
curl -O "http://kernel.org/pub/software/scm/git/git-$GIT_VERSION.tar.bz2"
tar xjvf "git-$GIT_VERSION.tar.bz2"
cd "git-$GIT_VERSION/"

# When on Dreamhost:
./configure --prefix="$HOME" NO_CURL=1 NO_MMAP=1
make
make install

cd ..

# Don't Bother Installing the Man Pages
&lt;/pre&gt;

&lt;h3&gt;After installing, you'll want to configure it&lt;/h3&gt;

&lt;pre&gt;
# Use Apple opendiff (FileMerge) for resolving conflicts (Mac OS X only)
git config --global merge.tool opendiff

# Ignore Carp
git config --global core.excludesfile ~/.gitignore
touch               "$HOME/.gitignore"
echo '.DS_Store' &gt;&gt; "$HOME/.gitignore"
echo '._*'       &gt;&gt; "$HOME/.gitignore"
echo '.svn'      &gt;&gt; "$HOME/.gitignore"
echo '.hg'       &gt;&gt; "$HOME/.gitignore"

# Shortcuts
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch

# Colors? YES!
git config --global color.ui auto

# Personal Setup
git config --global user.name "Your Name"
git config --global user.email your_email@your-domain.com
&lt;/pre&gt;

&lt;br /&gt;&lt;del&gt;UPDATE: Now updated to 1.5.4.5&lt;/del&gt;
&lt;br /&gt;&lt;del&gt;UPDATE: Now updated to 1.5.5 &lt;em&gt;with Dreamhost support&lt;/em&gt;&lt;/del&gt;
&lt;br /&gt;&lt;ins&gt;UPDATE: Now updated to 1.5.6&lt;/ins&gt;
</description>
      <pubDate>Thu, 21 Feb 2008 14:47:00 PST</pubDate>
      <guid>http://subtlegradient.com/articles/2008/02/21/install_git_leopard</guid>
      <link>http://subtlegradient.com/articles/2008/02/21/install_git_leopard</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/53</trackback:ping>
    </item>
    <item>
      <title>Baseline Grid Overlay Bookmarklet</title>
      <description>&lt;p&gt;Here&amp;#8217;s just a quickie to post something handy&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Drag this link to your bookmarks to save:&lt;/p&gt;


	&lt;p&gt;&lt;a href="javascript:void((function(){myDiv=document.getElementById('_grid_div_mrb');myBody=document.getElementsByTagName('body')[0];if(myDiv!=null)myBody.removeChild(myDiv);else{myDiv=document.createElement('div');myDiv.id='_grid_div_mrb';myDiv.style.background='url(http://trippledoubleyou.subtlegradient.com/tools/layoutgrid-18-12.png)';myDiv.style.backgroundPosition='center';myDiv.style.position='absolute';myDiv.style.top='0';myDiv.style.right='0';myDiv.style.bottom='0';myDiv.style.left='0';myDiv.style.zIndex='999999';myBody.appendChild(myDiv);}})())"&gt;Baseline Grid 18/12&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Please note: My site doesn&amp;#8217;t conform to a baseline grid yet&lt;/em&gt; :[ &lt;strong&gt;Don&amp;#8217;t judge me!&lt;/strong&gt; :&amp;#8217;(&lt;/p&gt;</description>
      <pubDate>Mon, 17 Dec 2007 08:50:00 PST</pubDate>
      <guid>http://subtlegradient.com/articles/2007/12/17/baseline-grid-overlay-bookmarklet</guid>
      <link>http://subtlegradient.com/articles/2007/12/17/baseline-grid-overlay-bookmarklet</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/52</trackback:ping>
    </item>
    <item>
      <title>Select Balanced HTML Tag</title>
      <description>&lt;p&gt;hey kids&lt;br&gt;
just wanted to share with you my latest textmate innovation.&lt;/p&gt;


	&lt;p&gt;There is a bit of standard functionality that major html editors have been capable of forever&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;In BBEdit it&amp;#8217;s called &lt;code&gt;View &amp;gt; Balance&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;In Dreamweaver it&amp;#8217;s called &lt;code&gt;Edit &amp;gt; Select Parent Tag&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;What this does is select the current html tag, no matter where your caret is in between the opening and closing tags.&lt;/p&gt;


	&lt;p&gt;Ok, that&amp;#8217;s all fine and lovely, but I use TextMate. And while TextMate has an &lt;code&gt;Edit &amp;gt; Select &amp;gt; Enclosing Brackets&lt;/code&gt; function. That doesn&amp;#8217;t actually DO anything in &lt;span class="caps"&gt;HTML&lt;/span&gt;. Nothing useful anyway.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://tripledoubleyou.subtlegradient.com/stuff/BundleForge%20-%20TextMate%20Select%20Balanced%20HTML%20Tag.m4v"&gt;&lt;img src="http://tripledoubleyou.subtlegradient.com/stuff/BundleForge%20-%20TextMate%20Select%20Balanced%20HTML%20Tag.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;So, what is the solution? How do we actually make this work in TextMate?&lt;/p&gt;


	&lt;p&gt;Well, that&amp;#8217;s where I come in. TextMate is built on a community of developers who spend time extending and expanding on what TextMate is capable of.&lt;/p&gt;


	&lt;p&gt;So, I have been goofing around with ruby scripts and insanely complex regular expressions since 2005 trying to make this work.&lt;/p&gt;


	&lt;p&gt;And I have &lt;em&gt;finally&lt;/em&gt; managed to come up with something that is simple and uses the normal standard TextMate &lt;code&gt;Select &amp;gt; Enclosing Brackets&lt;/code&gt; functionality.&lt;/p&gt;


	&lt;p&gt;I call it &lt;strong&gt;Select Balanced &lt;span class="caps"&gt;HTML &lt;/span&gt;Tag&lt;/strong&gt; and I have it bound to &lt;strong&gt;&lt;nobr&gt;&amp;#x2318;&amp;#x21E7;B&lt;/nobr&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s bring up TextMate&lt;br&gt;
Put the caret inside of an &lt;span class="caps"&gt;HTML&lt;/span&gt; tag that we want to select, and hit the magic shortcut key: &lt;strong&gt;&lt;nobr&gt;&amp;#x2318;&amp;#x21E7;B&lt;/nobr&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;And she-bang! We have our tag selected.&lt;/p&gt;


	&lt;p&gt;Then you can keep hitting the keystroke to expand your selection to each succesive enclosing tag.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;BUT&lt;/span&gt; wait, there&amp;#8217;s more!&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;My &amp;#8220;Select Balanced &lt;span class="caps"&gt;HTML &lt;/span&gt;Tag&amp;#8221; macro is &lt;span class="caps"&gt;UNDOABLE&lt;/span&gt;!&lt;/em&gt;&lt;br&gt;
&lt;span class="caps"&gt;HAHA&lt;/span&gt;! Take &lt;span class="caps"&gt;THAT HTML&lt;/span&gt;! Bet you didn&amp;#8217;t see &lt;span class="caps"&gt;THAT&lt;/span&gt; one coming!&lt;/p&gt;


	&lt;p&gt;Yes, sure. Dreamweaver has the &amp;#8220;Edit &gt; Select Child&amp;#8221; command, but I find that it doesnt actually DO anything most of the time.&lt;/p&gt;


	&lt;p&gt;I must admit however that the Dreamweaver and BBEdit versions of this command actually work a &lt;span class="caps"&gt;LOT&lt;/span&gt; better and &lt;span class="caps"&gt;WAY WAY&lt;/span&gt; faster, but I find that reasoning completely useless because I&amp;#8217;m never goign to be using either of those applications.&lt;/p&gt;


	&lt;p&gt;So to sum up. 
New TextMate Macro &lt;strong&gt;Select Balanced &lt;span class="caps"&gt;HTML &lt;/span&gt;Tag&lt;/strong&gt;
Selects the current &lt;span class="caps"&gt;HTML &lt;/span&gt;Tag, 
similar to the &lt;em&gt;BBEdit Balance&lt;/em&gt; and &lt;em&gt;Dreamweaver Select Parent Tag&lt;/em&gt; commands.
Except that it&amp;#8217;s &lt;span class="caps"&gt;UNDOABLE&lt;/span&gt; and works in TextMate and is much crappier.&lt;br&gt;
Written by me, Thomas Aylott.&lt;/p&gt;


	&lt;p&gt;You can download this at &lt;strong&gt;&lt;a href="http://BundleForge.com"&gt;BundleForge.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 15 Nov 2007 08:21:00 PST</pubDate>
      <guid>http://subtlegradient.com/articles/2007/11/15/select-balanced-html-tag</guid>
      <link>http://subtlegradient.com/articles/2007/11/15/select-balanced-html-tag</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/51</trackback:ping>
    </item>
    <item>
      <title>Fix Safari Downloads Window on Leopard Spaces</title>
      <description>&lt;p&gt;The one thing that really bothers be about Mac &lt;span class="caps"&gt;OS X 10&lt;/span&gt;.5 Leopard (sofar) is that Spaces doesn&amp;#8217;t seem to handle certain windows &amp;#8220;properly&amp;#8221;&lt;/p&gt;


	&lt;p&gt;For instance, the Safari Downloads window.&lt;/p&gt;


	&lt;p&gt;Ideally, I want the Safari Downloads window to be viewable on all Spaces at all times. But I don&amp;#8217;t want &lt;em&gt;all&lt;/em&gt; Safari windows to always be on all spaces.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Here&amp;#8217;s the trick:&lt;/strong&gt; Change the window to be a utility panel instead.&lt;/p&gt;


	&lt;p&gt;&lt;sub&gt;This assumes you have Xcode installed&lt;/sub&gt;&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Navigate to &lt;code&gt;/Applications&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Right click on &lt;code&gt;Safari&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Choose &lt;code&gt;Show Package Contents&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Navigate to &lt;code&gt;Contents/Resources/English.lproj/&lt;/code&gt;
	&lt;ul&gt;
	&lt;li&gt;Or whatever language you use&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;Open &lt;code&gt;Downloads.nib&lt;/code&gt; in Interface Builder&lt;/li&gt;
		&lt;li&gt;Select the #Window# icon&lt;/li&gt;
		&lt;li&gt;Open the &lt;strong&gt;Info Panel&lt;/strong&gt;&lt;/li&gt;
		&lt;li&gt;Select the &lt;strong&gt;Identity tab&lt;/strong&gt; of the Info Panel&lt;/li&gt;
		&lt;li&gt;Change the Class to &lt;code&gt;NSPanel&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Select the &lt;code&gt;Attributes&lt;/code&gt; tab of the Info Panel&lt;/li&gt;
		&lt;li&gt;Check the Style &lt;strong&gt;Utility&lt;/strong&gt;&lt;/li&gt;
		&lt;li&gt;Save the &lt;code&gt;Downloads.nib&lt;/code&gt; file&lt;/li&gt;
		&lt;li&gt;Quit &amp;#38; Relaunch Safari&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Your Downloads Window should now be visible in all Spaces as long as you have a Safari window open in that space.&lt;/p&gt;


	&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <pubDate>Sat, 27 Oct 2007 20:43:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2007/10/27/fix-safari-downloads-window-on-leopard-spaces</guid>
      <link>http://subtlegradient.com/articles/2007/10/27/fix-safari-downloads-window-on-leopard-spaces</link>
      <category>Tip</category>
      <category>Mac OS X</category>
      <trackback:ping>http://subtlegradient.com/articles/trackback/50</trackback:ping>
    </item>
    <item>
      <title>Multiple Standalone Safaris</title>
      <description>&lt;p&gt;&lt;strong&gt;Download Standalone Versions of Safari!&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve been rather annoyed that there hasn&amp;#8217;t been any official or simple way to run the older versions of Safari for web development purposes. I&amp;#8217;d come up with a really crappy way to &lt;a href="http://www.macosxhints.com/article.php?story=20070612131825986"&gt;run Safari 2 after installing Safari 3&lt;/a&gt; but you really shouldn&amp;#8217;t have to go through all that nonsense just to be able to test websites with the old Safari. &lt;em&gt;&amp;#8221;Blargh!!!&amp;#8221;&lt;/em&gt; I say.&lt;/p&gt;


	&lt;p&gt;For a while now &lt;a href="http://tredosoft.com/Multiple_IE"&gt;Yousif Al Saif at TredoSoft&lt;/a&gt; has let us &lt;a href="http://subtlegradient.com/articles/2006/10/25/attack-of-the-standalone-internet-explorers"&gt;run multiple simultaneous standalone versions of Internet Explorer&lt;/a&gt;. And of course Firefox was designed to be able to run multiple versions at the same time. But now &lt;em&gt;finally&lt;/em&gt; we have a super easy way of running &lt;strong&gt;all browsers that matter&lt;/strong&gt; side by side on the same machine without having to hack around like some kind of nerd.&lt;/p&gt;


	&lt;p&gt;But now there&amp;#8217;s an incredibly awesome option to run &lt;strong&gt;all&lt;/strong&gt; the old Safari versions as standalone browsers. This means that you don&amp;#8217;t have to do anything hackery in the least to make them work. You just download them and double-click them like any other mac application on the planet. And you can run them all at the same time.&lt;/p&gt;


	&lt;p&gt;&lt;cite&gt;&lt;a href="http://michelf.com/projects/multi-safari/"&gt;Michel Fortin&amp;#8217;s Multi-Safari&lt;/a&gt;&lt;/cite&gt;&lt;br&gt; is a collection of 10 standalone versions of Safari.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Safari normally use the Web Kit framework found inside Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; to render web pages and execute javascript. This means that if you preserve an old version of Safari to run it on a newer version of Mac OS, it will use the newer Web Kit found in the system and you will get the same results as with the newer version. Thus, you would normally need a separate installation of Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; for each version of Safari you want to test a website into.
&lt;br /&gt;&lt;br /&gt;
These special versions of Safari use the original Web Kit framework that came with them, bundled inside the application. They will mimic original Safari rendering and javascript behaviours. &lt;span class="caps"&gt;HTTP&lt;/span&gt; requests and cookies however are still handled by the system and may not work exactly the same.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h3&gt;Why don&amp;#8217;t browser vendors love us developers :&amp;#8217;(&lt;/h3&gt;


	&lt;p&gt;While I love that we have this option now, I think it&amp;#8217;s a real shame that the browser makers aren&amp;#8217;t making it easy to do this. We really should have an official way to run multiple versions of Internet Explorer and Safari at the same time. Especially now that &lt;span class="caps"&gt;AJAX &lt;/span&gt;&amp;#8220;web apps&amp;#8221; are all the rage, developers are needing to test more and more browsers for compatibility. Every single minor browser version has it&amp;#8217;s own little bugs and issues and all these new sites are really stressing the browsers to the limit.&lt;/p&gt;


	&lt;p&gt;For instance, &lt;a href="http://crazyegg.com"&gt;CrazyEgg.com&lt;/a&gt; has workarounds for separate bugs in Safari 2, Safari 3, Mac Firefox 2.0, Windows Firefox 2.0, Firefox 1.5, Internet Explorer 6 and Internet Explorer 7. Yes, you heard me right, Firefox on windows and Firefox on the Mac have &lt;strong&gt;separate bugs&lt;/strong&gt; that only affect that browser on that Operating System. So in all, I have to test and tweak and debug everything in, at the very least, &lt;em&gt;7 different browsers&lt;/em&gt;. Oh, and I usually test for the bleeding edge version of each browser too, so that&amp;#8217;s &lt;strong&gt;10 different browsers&lt;/strong&gt; total.&lt;/p&gt;


	&lt;p&gt;Oh, and where&amp;#8217;s my iPhone MobileSafari emulator?! Apple doesn&amp;#8217;t give us a &lt;em&gt;real&lt;/em&gt; iPhone &lt;span class="caps"&gt;SDK&lt;/span&gt; and expects us to develop webapps for the iPhone. But the only way to actually do that is to buy an iPhone and test your apps on the phone directly. What a development nightmare. I seriously hope they have some ideas up their sleeves after Leopard is released.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;The Leopard 10.5.1 update has blocked all older versions of Safari from running.&lt;/p&gt;


	&lt;p&gt;To fix that problem, go here: &lt;a href="http://tripledoubleyou.subtlegradient.com/stuff/Safari2/"&gt;Fix Safari 2.0.4 for Leopard 10.5.1&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Let me know if you have any trouble with that.&lt;/p&gt;</description>
      <pubDate>Wed, 10 Oct 2007 08:48:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2007/10/10/multiple-standalone-safaris</guid>
      <link>http://subtlegradient.com/articles/2007/10/10/multiple-standalone-safaris</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/49</trackback:ping>
    </item>
    <item>
      <title>WARNING Do Not Update Your Windows Testing Box!!!</title>
      <description>&lt;p&gt;If you need to test websites in Internet Explorer 6, this message is for you.&lt;/p&gt;


	&lt;h3&gt;New &lt;span class="caps"&gt;IE6 &lt;/span&gt;Patch Removes Ability to Test Memory Leaks&lt;/h3&gt;


	&lt;p&gt;There has just been a &lt;a href="http://support.microsoft.com/kb/933566/"&gt;patch released by Microsoft that updates &lt;span class="caps"&gt;IE6&lt;/span&gt; to remove the memory leaks&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Some people seem to think this is great news:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://ajaxian.com/archives/ie-memory-leaks-be-gone"&gt;Ajaxian &amp;raquo; &lt;span class="caps"&gt;IE &lt;/span&gt;Memory Leaks Be-gone&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://novemberborn.net/javascript/memory-leaks-gone"&gt;Novemberborn: Memory Leaks: Gone!&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&lt;em&gt;Why is this bad?&lt;/em&gt; You might ask&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Well, are you a developer that codes stuff that could ever cause a memory leak in &lt;span class="caps"&gt;IE6&lt;/span&gt;? Do you want to test your code in &lt;span class="caps"&gt;IE6&lt;/span&gt; to make sure that your careful work to eliminate all the memory leaks has actually worked?&lt;/p&gt;


	&lt;p&gt;Or do you just want to &lt;strong&gt;hide your head in the sand&lt;/strong&gt; and pretend that all Internet&amp;nbsp;Explorer&amp;nbsp;6 users that will ever visit your site will have updated their system &lt;span class="caps"&gt;WITHOUT&lt;/span&gt; installing Internet Explorer&amp;nbsp;7 &lt;em&gt;which is a forced update&lt;/em&gt;?.&lt;/p&gt;


	&lt;p&gt;Think about it&amp;#8230; What section of the universe uses &lt;span class="caps"&gt;IE6&lt;/span&gt; and updates regularly but then manually goes in and disables some of the updates? &lt;strong&gt;Developers who need to test!&lt;/strong&gt; That&amp;#8217;s probably about it. Note that this update only affects XP sp2 users. Windows 2000 &lt;span class="caps"&gt;IE6&lt;/span&gt; users won&amp;#8217;t be updating.&lt;/p&gt;


	&lt;p&gt;Just make sure that you don&amp;#8217;t update to the latest &lt;span class="caps"&gt;IE6&lt;/span&gt; on your testing box or Parallels testing setup or whatever. Because it could render your testing environment pretty stinkin&amp;#8217; useless.&lt;/p&gt;</description>
      <pubDate>Tue, 26 Jun 2007 06:36:00 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2007/06/26/warning-do-not-update-your-windows-testing-box</guid>
      <link>http://subtlegradient.com/articles/2007/06/26/warning-do-not-update-your-windows-testing-box</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/48</trackback:ping>
    </item>
    <item>
      <title>Safari 2, Safari 3, Adium &amp;amp; forcing WebKit Frameworks</title>
      <description>&lt;p&gt;After installing Safari 3 you won&amp;#8217;t be able to run Safari 2 to test websites or whatever anymore.&lt;/p&gt;


	&lt;h3&gt;Here&amp;#8217;s the trick to make it work&lt;/h3&gt;


	&lt;ol&gt;
	&lt;li&gt;Install &lt;a href="http://www.apple.com/safari/download/"&gt;Safari 3 Beta&lt;/a&gt;
	&lt;ol&gt;
	&lt;li&gt;Yes, you have to reboot. &lt;em&gt;Lame&lt;/em&gt; :(&lt;/li&gt;
		&lt;li&gt;Rename &lt;code&gt;/Applications/Safari.app&lt;/code&gt; to &lt;code&gt;/Applications/Safari3.app&lt;/code&gt;&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Install &lt;a href="http://nightly.webkit.org/"&gt;WebKit Nightly&lt;/a&gt; as Safari2
	&lt;ol&gt;
	&lt;li&gt;Rename &lt;code&gt;/Applications/WebKit.app&lt;/code&gt; to &lt;code&gt;/Applications/Safari2.app&lt;/code&gt;&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Unarchive the backed up Safari
	&lt;ol&gt;
	&lt;li&gt;Open &lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive.tar.gz&lt;/code&gt;&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Copy the old Safari from &lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/Applications/Safari.app&lt;/code&gt; to &lt;code&gt;/Applications/Safari.app&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;Copy all the frameworks into Safari2
	&lt;ol&gt;
	&lt;li&gt;Copy &lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework&lt;/code&gt; &lt;br /&gt;
&lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/JavaScriptCore.framework&lt;/code&gt; &lt;br /&gt;
&lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework&lt;/code&gt; &lt;br /&gt;
&lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/PrivateFrameworks/JavaScriptGlue.framework&lt;/code&gt; &lt;br /&gt;
to &lt;code&gt;/Applications/Safari2.app/Contents/Resources&lt;/code&gt;&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Open Safari2&lt;/li&gt;
	&lt;/ol&gt;


	&lt;h3&gt;Shell script&lt;/h3&gt;


	&lt;p&gt;Alternatively, you can use this shell script to make it all work without having to do it all manually&amp;#8230;&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Install &lt;a href="http://www.apple.com/safari/download/"&gt;Safari 3 Beta&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Install &lt;a href="http://nightly.webkit.org/"&gt;WebKit Nightly&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Unarchive the backed up Safari
	&lt;ol&gt;
	&lt;li&gt;Run this from the terminal:&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;/ol&gt;


&lt;pre&gt;
open "/Library/Application Support/Apple/.SafariBetaArchive.tar.gz" 
&lt;/pre&gt;

	&lt;p&gt;4. Then run this script to do the rest&amp;#8230;&lt;/p&gt;


&lt;pre&gt;
mv /Applications/Safari.app /Applications/Safari3.app &amp;#38;&amp;#38;
mv /Applications/WebKit.app /Applications/Safari2.app &amp;#38;&amp;#38;
ditto "/Library/Application Support/Apple/.SafariBetaArchive/Applications/Safari.app" /Applications/Safari.app &amp;#38;&amp;#38;
rm -Rf \
  /Applications/Safari2.app/Contents/Resources/JavaScriptCore.framework/ \
  /Applications/Safari2.app/Contents/Resources/JavaScriptGlue.framework/ \
  /Applications/Safari2.app/Contents/Resources/WebCore.framework/ \
  /Applications/Safari2.app/Contents/Resources/WebKit.framework/ &amp;#38;&amp;#38;
cp -Rf \
  "/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework" \
  "/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/JavaScriptCore.framework" \
  "/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework" \
  "/Library/Application Support/Apple/.SafariBetaArchive/System/Library/PrivateFrameworks/JavaScriptGlue.framework" \
  /Applications/Safari2.app/Contents/Resources/
&lt;/pre&gt;
&lt;em&gt;UPDATED Date: 2007-06-13 18:15:32&lt;/em&gt;
&lt;br /&gt;
&lt;br /&gt;

	&lt;h3&gt;How to force another app to open with the old WebKit&lt;/h3&gt;


	&lt;p&gt;You can force anything to run with the old WebKit if it&amp;#8217;s having problems working with the new beta.&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;env DYLD_FRAMEWORK_PATH="/Applications/Safari2.app/Contents/Resources" WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=YES "PATH_TO_THE_BIN_IN_YOUR_APP" &amp;#38;&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Just replace &lt;code&gt;PATH_TO_THE_BIN_IN_YOUR_APP&lt;/code&gt; with the path to the binary in the app you want to force to use the old WebKit frameworks.&lt;/p&gt;


	&lt;h3&gt;How to make Adium work after installing Safari 3&lt;/h3&gt;


	&lt;p&gt;For Adium you&amp;#8217;d use:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;env DYLD_FRAMEWORK_PATH="/Applications/Safari2.app/Contents/Resources" WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=YES "/Applications/Adium.app/Contents/MacOS/Adium" &amp;#38;&lt;/code&gt;&lt;/pre&gt;</description>
      <pubDate>Tue, 12 Jun 2007 10:31:42 PDT</pubDate>
      <guid>http://subtlegradient.com/articles/2007/06/12/safari-2-safari-3-adium-forcing-webkit-frameworks</guid>
      <link>http://subtlegradient.com/articles/2007/06/12/safari-2-safari-3-adium-forcing-webkit-frameworks</link>
      <trackback:ping>http://subtlegradient.com/articles/trackback/47</trackback:ping>
    </item>
  </channel>
</rss>
