<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="https://www.w3.org/2005/Atom">
	
	<title>SubtleGradient</title>
	<link href="https://subtlegradient.com/articles/atom.xml" rel="self" />
	<link href="https://subtlegradient.com/articles/" />
	<updated>2009-12-23T13:16:55-08:00</updated>
	<id>https://subtlegradient.com/articles/</id>
	<author>
		<name>Thomas Aylott</name>
		<email>oblivious@subtlegradient.com</email>
	</author>
	
	
	<entry>
		<title>CSS Position Fixed for IE6</title>
		<link href="https://subtlegradient.com/articles/articles/2009/07/29/css_position_fixed_for_ie6.html.html" />
		<updated>2009-07-29T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/07/29/css_position_fixed_for_ie6.html</id>
		<content type="html">&lt;h2 id='how_do_you_get_positionfixed_css_working_in_internet_explorer_6'&gt;How do you get position:fixed css working in Internet Explorer 6?&lt;/h2&gt;

&lt;p&gt;The trick is to use an Internet Explorer CSS expression. You can&amp;#8217;t simply put the logic in there directly or it&amp;#8217;ll cache the result and not update. The simplest fix is to wrap your logic in &lt;code&gt;eval&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id='how_do_you_solve_the_jitter_issue'&gt;How do you solve the jitter issue?!&lt;/h2&gt;

&lt;p&gt;Apparently Internet Explorer has a multi-step rendering process. When you scroll or resize your browser it&amp;#8217;ll reposition everything and redraw the page, then it processes the css expressions. This causes an ugly &amp;#8220;jitter&amp;#8221; where the position fixed elements take a bit to catch up with your scrolling.&lt;/p&gt;

&lt;p&gt;The trick is to give the body or html elements a background-image with &lt;code&gt;background-attachment:fixed&lt;/code&gt;. This forces the processing of the CSS before the page is redrawn. Since it&amp;#8217;s processing the css again before redrawing, it&amp;#8217;ll go ahead and process your css expressions before redrawing too. This gives you perfectly smooth position fixed elements!&lt;/p&gt;

&lt;p&gt;I didn&amp;#8217;t come up with this solution. I read is online somewhere. If you know who originally came up with this idea please let me know.&lt;/p&gt;

&lt;p&gt;The one trick I did find was that you don&amp;#8217;t even need a real image! You can use &lt;code&gt;about:blank&lt;/code&gt; instead of a spacer.gif and it still works just fine.&lt;/p&gt;

&lt;h2 id='css_code'&gt;CSS Code&lt;/h2&gt;
&lt;script src='https://gist.github.com/158243.js'&gt; &lt;/script&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update:&lt;/strong&gt; Added border, padding and margin support!&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you don't need margin support, you can delete all the `parseInt` stuff.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; I've only tested this in standards mode.&lt;/em&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Subtle Hover CSS Inspect Bookmarklet</title>
		<link href="https://subtlegradient.com/articles/articles/2009/07/23/subtle_hover_css_inspect_bookmarklet.html.html" />
		<updated>2009-07-23T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/07/23/subtle_hover_css_inspect_bookmarklet.html</id>
		<content type="html">&lt;p&gt;SubtleHoverInspect Bookmarklet&lt;/p&gt;
&lt;h1&gt;&lt;a href='javascript:(function(b){var%20c=b.createElement(%22style%22);c.appendChild(b.createTextNode(%22*:hover{outline:2px%20solid%20red;}caption:hover,thead:hover,tbod:hover,tfoot:hover,tr:hover{outline:2px%20dotted%20red;}td:hover,th:hover{outline:2px%20solid%20red;}h1:hover,h2:hover,h3:hover,h4:hover,h5:hover,h6:hover{outline:2px%20solid%20green;}ol:hover,ul:hover{outline:2px%20dotted%20blue;}li:hover{outline:2px%20solid%20blue;}div:hover{outline:2px%20dotted%20aqua;}span:hover{outline:2px%20solid%20aqua;}%22));b.body.appendChild(c);var%20f=b.createElement(%22div%22);f.innerHTML=%22Hover%20stuff!%22;f.style.position=%22fixed%22;f.style.bottom=%220px%22;f.style.left=%220px%22;f.style.right=%220px%22;f.style.backgroundColor=%22rgba(32,32,32,0.8)%22;f.style.color=%22#fff%22;f.style.textShadow=%220%202px%202px%20#000%22;f.style.padding=%221em%22;f.style.fontSize=%2212px%22;f.style.fontFamily=%22Lucida%20Grande%22;f.style.border=%221px%20solid%20#666%22;f.style.outline=%221px%20solid%20#000%22;b.body.appendChild(f);function%20a(g){return[String(g.tagName).toLowerCase(),g.id&amp;amp;&amp;amp;(%22#%22+g.id),g.className&amp;amp;&amp;amp;(%22.%22+g.className.split(%22%20%22).join(%22.%22))].join(%22%22);}function%20e(h){var%20g=[];do{g.unshift(h);}while((h=h.parentNode));g.shift();return%20g;}function%20d(h){var%20g=[];e(h).forEach(function(i){g.push(a(i));});return%20g.join(%22%20&amp;gt;%20%22);}b.body.addEventListener(%22mouseover%22,function(h){var%20g=h.target;f.innerHTML=d(g);},false);})(document);'&gt;SubtleHoverInspect&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;I&amp;#8217;ve tested it in Safari4 only. It might work in Firefox 3.5 too.&lt;/p&gt;
&lt;script src='https://gist.github.com/153048.js'&gt; &lt;/script&gt;</content>
	</entry>
	
	<entry>
		<title>Replace document.write using MooTools</title>
		<link href="https://subtlegradient.com/articles/articles/2009/06/22/replace_document_write_using_mootools.html.html" />
		<updated>2009-06-22T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/06/22/replace_document_write_using_mootools.html</id>
		<content type="html">&lt;h2 id='problem'&gt;Problem&lt;/h2&gt;

&lt;p&gt;You want to embed a gist on your page. But the CSS that GitHub injects into your page totally screws up your perfectly crafted CSS.&lt;/p&gt;

&lt;p&gt;Or maybe you want to use &lt;em&gt;AJAX&lt;/em&gt; to load a script that requires the use of &lt;code&gt;document.write&lt;/code&gt;. But after teh page has loaded &lt;code&gt;document.write&lt;/code&gt; tends to destroy the universe without even asking first!&lt;/p&gt;

&lt;h2 id='solution'&gt;Solution&lt;/h2&gt;

&lt;p&gt;Replace &lt;code&gt;document.write&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;I created a replacement for &lt;code&gt;document.write&lt;/code&gt; that saves the arguments and then injects them into the page after the dom is ready.&lt;/p&gt;

&lt;p&gt;This is useful for embedding gists on your page since you can use the additional filter option to reject stuff from being written to your page. This would also be really handy for sites that include JavaFX or certain ads or anything that requires the use of &lt;code&gt;document.write&lt;/code&gt; on your page. By deferring the injection of that stuff until after the dom is ready your visitors see the page content before any of the extras like Java applets or ads begin to load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;: Oh yeah, it works after the DOM loads now too. You can optionally set &lt;code&gt;document.write.context&lt;/code&gt; to the element you want to inject into. It defaults to &lt;code&gt;document.body&lt;/code&gt;. Enjoy!&lt;/p&gt;

&lt;h2 id='script'&gt;Script&lt;/h2&gt;

&lt;p&gt;Thanks to &lt;a href='https://daniel.steigerwald.cz/' title='Daniel Steigerwald - AJAX, .NET developer'&gt;Steida&lt;/a&gt; for taking my rough proof-of concept and getting it working much better and faster and to &lt;a href='https://blog.kassens.net/' title='blog.kassens.net'&gt;Jan Kassens&lt;/a&gt; and random other MooTools pplz for helping refine it.&lt;/p&gt;
&lt;script src='https://gist.github.com/133677.js'&gt; &lt;/script&gt;&lt;noscript&gt; &lt;a href='https://gist.github.com/133677.js'&gt;https://gist.github.com/133677.js&lt;/a&gt;&lt;/noscript&gt;</content>
	</entry>
	
	<entry>
		<title>Testing a way to post to my blog quickly</title>
		<link href="https://subtlegradient.com/articles/articles/2009/06/21/testing_a_way_to_post_to_my_blog_quickly.html.html" />
		<updated>2009-06-21T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/06/21/testing_a_way_to_post_to_my_blog_quickly.html</id>
		<content type="html">&lt;p&gt;Howdy y&amp;#8217;all.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m testing a super-fast way to post to my blog.&lt;/p&gt;

&lt;p&gt;I decided to switch to a jekyll / git based blog &amp;#8220;solution&amp;#8221; since it was so close to my personal ideal. I really like working with blog posts as normal files. It seems like the most natural way. Having a whole database just for blog posts seems like complete overkill to me.&lt;/p&gt;

&lt;p&gt;I haven&amp;#8217;t decided what to do about comments now. I don&amp;#8217;t think that comments are very important to have on my personal blog since they were very rarely used. But I do think it&amp;#8217;s important for random people to be able to add some sort of content to my post. Links to more information, comments, corrections, etc&amp;#8230;&lt;/p&gt;

&lt;p&gt;Let me know what &lt;em&gt;you&lt;/em&gt; think. oh wait, you can&amp;#8217;t :[&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Jekyll quick post shell script</title>
		<link href="https://subtlegradient.com/articles/articles/2009/06/21/jekyll_quick_post_shell_script.html.html" />
		<updated>2009-06-21T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/06/21/jekyll_quick_post_shell_script.html</id>
		<content type="html">&lt;p&gt;Here&amp;#8217;s a quick script I wrote to create blog posts for my jekyll blog.&lt;/p&gt;

&lt;h2 id='usage'&gt;usage&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;jk_quickpost.rb title [categories [filetype]]&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;title&lt;/code&gt;&lt;br /&gt;Used as the title, description and slug&lt;/li&gt;

&lt;li&gt;&lt;code&gt;categories&lt;/code&gt;&lt;br /&gt;Comma or space separated list. It&amp;#8217;ll try separating by commas first and then spaces if commas didn&amp;#8217;t work.&lt;/li&gt;

&lt;li&gt;&lt;code&gt;filetype&lt;/code&gt;&lt;br /&gt;Any filetype that jekyll supports. EG: &lt;code&gt;md&lt;/code&gt;, &lt;code&gt;markdown&lt;/code&gt;, &lt;code&gt;textile&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, etc..&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='example'&gt;example&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;jk_quickpost.rb &amp;quot;Hello world!&amp;quot; &amp;quot;my, blog post, of, doom&amp;quot; &amp;quot;textile&amp;quot;&lt;/code&gt;&lt;/p&gt;

&lt;h2 id='notes'&gt;Notes&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;@ROOT&lt;/code&gt; path in this script is set to the present working directory. My personal version is set to the full path to my jekyll &lt;code&gt;_posts&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;I have it pushing the new blog post to an &lt;code&gt;origin&lt;/code&gt; remote in the &lt;code&gt;master&lt;/code&gt; branch. You might want to change that to a &lt;code&gt;gh-pages&lt;/code&gt; branch instead.&lt;/p&gt;

&lt;h2 id='script'&gt;Script&lt;/h2&gt;
&lt;script src='https://gist.github.com/133592.js'&gt; &lt;/script&gt;&lt;noscript&gt; &lt;a href='https://gist.github.com/133592.js'&gt;https://gist.github.com/133592.js&lt;/a&gt;&lt;/noscript&gt;</content>
	</entry>
	
	<entry>
		<title>Blazing fast Semantic JS Templating with edit-in-place templates!</title>
		<link href="https://subtlegradient.com/articles/articles/2009/04/09/mootools-subtle-templates.html.html" />
		<updated>2009-04-09T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/04/09/mootools-subtle-templates.html</id>
		<content type="html">&lt;p&gt;I actually developed this a while back.&lt;/p&gt;

&lt;p&gt;&lt;a href='https://www.clientcide.com/3rd-party-libraries/mootools/subtletemplates-for-mootools/' title='SubtleTemplates for MooTools &amp;raquo; Clientcide (Formerly CNET&amp;apos;s Clientside)'&gt;ClientCide Blogged about SubtleTemplates&lt;/a&gt; a while back but I forgot to mention it here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Take an HTML template and a javascript object and get a populated template!&lt;/strong&gt; Perfect for use with JSON data.&lt;/p&gt;

&lt;p&gt;You create the html template in the actual html of the page (or you can pass in a string). Keeping the html in the html allows the designers to have control of the html templates without forcing them to fiddle with javascript. You can also use the same template on your serverside and client-side templating! I&amp;#8217;m doing that for some things on GreenSherpa.com&lt;/p&gt;

&lt;p&gt;I added a fix to workaround the infamous IE innerHTML unquoted attributes issue.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://github.com/subtleGradient/mootools-subtle-templates/' title='subtleGradient&amp;apos;s mootools-subtle-templates at master - GitHub'&gt;Project (stable branch)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://github.com/subtleGradient/mootools-subtle-templates/tree/Multi' title='subtleGradient&amp;apos;s mootools-subtle-templates at Multi - GitHub'&gt;Project (beta branch)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href='https://github.com/subtleGradient/mootools-subtle-templates/tree/SubTemplates' title='subtleGradient&amp;apos;s mootools-subtle-templates at SubTemplates - GitHub'&gt;Project (next alpha branch)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id='demos'&gt;&lt;a href='https://projects.subtlegradient.com/mootools-subtle-templates/Demos/' title='Index of /mootools-subtle-templates/Demos'&gt;Demos&lt;/a&gt;&lt;/h3&gt;
&lt;hr /&gt;
&lt;h3 id='demo5_update_the_template_and_all_instances_as_you_type1'&gt;&lt;a href='https://projects.subtlegradient.com/mootools-subtle-templates/Demos/demo5.html' title='SubtleTemplate'&gt;DEMO5: Update the template and all instances &lt;em&gt;AS YOU TYPE!!!1!&lt;/em&gt;&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Your SubtleTemplate has a function that allows you to modify the template code in place. You pass in a function that gets bound to the root template node as an Element. You can then use any normal MooTools Element stuff on your template. When the function returns it updates every instance of that template on your page.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s fast enough that you can modify your template as you type, even in IE6.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 id='demo3_crappy_performance_test'&gt;&lt;a href='https://projects.subtlegradient.com/mootools-subtle-templates/Demos/demo3.html' title='SubtleTemplate'&gt;DEMO3: Crappy performance test!&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;This basically just shows how many times you can repopulate a template instance in 10 seconds. Check it out in Chrome ;)&lt;/p&gt;

&lt;p&gt;Since their default timeout is so much shorter it&amp;#8217;s much more impressive.&lt;/p&gt;
&lt;hr /&gt;&lt;em&gt;**NOTE:** Since repopulating your template uses innerHTML, you'll have to use Event Delegation on the parent node for the best  experience. Event Delegation will be built into the underpinnings of MooTools 2.0, until then you can use [ClientCide Event Delegation (take2)](https://www.clientcide.com/code-releases/event-delegation-take-2/ &quot;Event Delegation, take 2 &amp;raquo; Clientcide (Formerly CNET's Clientside)&quot;)&lt;/em&gt;</content>
	</entry>
	
	<entry>
		<title>SubtleClickAll Bookmarklet</title>
		<link href="https://subtlegradient.com/articles/articles/2009/03/07/subtleclickall-bookmarklet.html.html" />
		<updated>2009-03-07T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2009/03/07/subtleclickall-bookmarklet.html</id>
		<content type="html">&lt;p&gt;A friend of mine asked me for a simple bookmarklet today. He uses Safari so that opens up a few possibilities.&lt;/p&gt;

&lt;p&gt;Take a CSS Selector and run the &lt;code&gt;click&lt;/code&gt; method on each matching element.&lt;/p&gt;

&lt;p&gt;And here it is:&lt;/p&gt;

&lt;h3 id='id1'&gt;&lt;a href='javascript:function%20SubtleClickAll(SELECTOR,timeout){timeout=timeout||0;var%20node,nodes=Array.prototype.slice.call(document.querySelectorAll(SELECTOR));function%20NEXT(){node=nodes.pop();if(node)setTimeout(function(){node.click();NEXT();},timeout);};NEXT();};SubtleClickAll(prompt(%22SubtleClickAll%20(Thomas%20Aylott%20subtleGradient.com)%22,%22CSS3%20Selector%22),10);' title='SubtleClickAll (Thomas Aylott subtleGradient.com)'&gt;SubtleClickAll&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Drag that link to your bookmarks and you&amp;#8217;re good to go.&lt;/p&gt;

&lt;p&gt;Known to work in Safari beta 4. Has not been tested anywhere else.&lt;br /&gt;Could also work in IE8 or Firefox 3.1+ or Safari 3.1+&lt;/p&gt;

&lt;p&gt;&lt;a href='https://gist.github.com/75406'&gt;The code is all up on gist.github.com&lt;/a&gt;&lt;/p&gt;
&lt;script src='https://gist.github.com/75406.js'&gt; &lt;/script&gt;&lt;noscript&gt; &lt;a href='https://gist.github.com/75406.js'&gt;https://gist.github.com/75406.js&lt;/a&gt;&lt;/noscript&gt;</content>
	</entry>
	
	<entry>
		<title>MooTools databinding plugins coming soon</title>
		<link href="https://subtlegradient.com/articles/articles/2008/12/05/mootools-databinding-plugins-coming-soon.html.html" />
		<updated>2008-12-05T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/12/05/mootools-databinding-plugins-coming-soon.html</id>
		<content type="html">&lt;p&gt;Just a quick post since I apparently haven&amp;#8217;t posted it on teh blog yet.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m working on some new mootools plugins. Publish/subscribe based databinding. Reusable HTML based templates. And more!&lt;/p&gt;

&lt;p&gt;Checkout &lt;a href='https://github.com/subtlegradient/'&gt;my github&lt;/a&gt;.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Tabs or Spaces?</title>
		<link href="https://subtlegradient.com/articles/articles/2008/10/25/tabs-or-spaces.html.html" />
		<updated>2008-10-25T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/10/25/tabs-or-spaces.html</id>
		<content type="html">
&lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot; src=&quot;https://s3.polldaddy.com/p/1040984.js&quot;&gt; &lt;/script&gt;
&lt;noscript&gt;  Poll: &lt;a href =&quot;https://answers.polldaddy.com/poll/1040984/&quot; &gt;Tabs or Spaces?&lt;/a&gt;&lt;/span&gt;&lt;/noscript&gt;


Every language has its preferred style. Ruby prefers two spaces, Python prefers 4 spaces. Javascript seems to be pretty split against Tabs and Spaces. MooTools and jQuery use Tabs. Python and Dojo use Spaces. etc...

</content>
	</entry>
	
	<entry>
		<title>How to have a box default to hidden and then fade it in later</title>
		<link href="https://subtlegradient.com/articles/articles/2008/10/20/mootools-default-to-hide-fade-later.html.html" />
		<updated>2008-10-20T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/10/20/mootools-default-to-hide-fade-later.html</id>
		<content type="html">&lt;p&gt;Fade is just a Tween. And Tween simple animates one CSS property from one value to another. That&amp;#8217;s it. Also, you can&amp;#8217;t have your code run until the dom is ready (when the page finishes loading enough). None of your javascript rules can effect anything until after the user has already seen the page. So, you have to hide your box yourself using CSS. There are a million ways to do that, but I recommend having a &amp;#8216;hide&amp;#8217; class.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 id='simple_use_a__class'&gt;&lt;strong&gt;Simple&lt;/strong&gt;: Use a &lt;code&gt;hide&lt;/code&gt; class&lt;/h3&gt;

&lt;p&gt;Add this rule to your &lt;strong&gt;CSS&lt;/strong&gt; somewhere:&lt;/p&gt;
&lt;pre&gt;
.hide{ display:none; }
&lt;/pre&gt;
&lt;p&gt;Then, manually apply it to all the &lt;strong&gt;HTML&lt;/strong&gt; elements that you want to be hidden by default:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;div class=&amp;quot;alert hide&amp;quot;&amp;gt;Warning Mr Robinson!&amp;lt;/div&amp;gt;
&amp;lt;div class=&amp;quot;confirm hide&amp;quot;&amp;gt;Are you sure you want to do that?&amp;lt;/div&amp;gt;
&amp;lt;div class=&amp;quot;info hide&amp;quot;&amp;gt;Um... Your arm is missing.&amp;lt;/div&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Next, add some simple mootools &lt;strong&gt;Javascript&lt;/strong&gt; to setup your elements to be faded later on:&lt;/p&gt;
&lt;pre&gt;
window.addEvent('domready',function(){

	$$('.hide').fade('hide').removeClass('hide');

});
&lt;/pre&gt;
&lt;p&gt;Finally, you&amp;#8217;ll need something to make those things fade back in somehow.&lt;/p&gt;
&lt;pre&gt;
$$('.show-alert').addEvent('click',function(e){ $$('.alert')[0].fade('in'); e.stop; });
&lt;/pre&gt;&lt;small&gt;Note: This is just a crappy example, ideally you'd write MUCH better code than this. Use a MooTools Class and instantiate it onDomready, etc...&lt;/small&gt;&lt;hr /&gt;
&lt;h3 id='advanced_use_semantic_css_rules'&gt;&lt;strong&gt;Advanced:&lt;/strong&gt; Use semantic CSS rules&lt;/h3&gt;

&lt;p&gt;Don&amp;#8217;t like the idea of littering meaningless classes around your document? Well, the best option is to do something a bit more complex&amp;#8230;&lt;/p&gt;

&lt;h4 id='use_a__class_for_your__tag'&gt;Use a &lt;code&gt;loading&lt;/code&gt; class for your &lt;code&gt;body&lt;/code&gt; tag&lt;/h4&gt;

&lt;p&gt;Add the classname &lt;code&gt;loading&lt;/code&gt; to your body tag. Then in your CSS you can set multiple rules for how your document should look as it&amp;#8217;s loading. Then, once your javascript has all fired, simply remove the &lt;code&gt;loading&lt;/code&gt; class to disable all those CSS rules.&lt;/p&gt;

&lt;p&gt;With the &lt;code&gt;loading&lt;/code&gt; class you can use verbose semantic rules such as:&lt;/p&gt;
&lt;pre&gt;
body.loading div.alert,
body.loading div.confirm,
body.loading div.info{
	display:none
}
&lt;/pre&gt;
&lt;h3 id='use_a_mootools_class_to_write_a_reusable_widget'&gt;Use a MooTools Class to write a reusable widget&lt;/h3&gt;

&lt;p&gt;This is a basic example of how you should approach this sort of thing. Now that you have a simple MooTools Class all set up, it&amp;#8217;s easy to go back and add more functionality without having to recode anything.&lt;/p&gt;
&lt;pre&gt;
var DialogWidget = new Class({

	initialize: function(element, eventName){
		this.eventName = eventName||element;
		this.element = $(element);

		this.element.fade('hide')
			.getElement('.closer').addEvent('click', this.hide.bind(this) );
		window.addEvent(this.eventName, this.alert.bind(this));

		this.init_buttons();
	},

	init_buttons: function(){
		$$('.show-' + this.eventName).addEvent('click',function(e){
			window.fireEvent(this.eventName, e.target.get('title') );
			e.stop();
		}.bind(this));
	},

	show: function(message){
		this.element.fade('in').set('text',message);
	},

	hide: function(){
		this.element.fade('out');
	}
});

window.addEvent('domready',function(){

	new DialogWidget('alert');
	new DialogWidget('confirm');

&lt;strong&gt;		$(document.body).removeClass('loading');&lt;/strong&gt;
});
&lt;/pre&gt;</content>
	</entry>
	
	<entry>
		<title>NEW TextMate Code Completion and Smart ToolTips</title>
		<link href="https://subtlegradient.com/articles/articles/2008/09/21/new_textmate_code_completion_and_smart_tooltips.html.html" />
		<updated>2008-09-21T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/09/21/new_textmate_code_completion_and_smart_tooltips.html</id>
		<content type="html">
&lt;p&gt;Ahoy internet peoples!&lt;/p&gt;

&lt;p&gt;I am hereby announcing the soon availability of a new form of code completion and smart contextual tooltips for TextMate 1.x!&lt;/p&gt;

&lt;a href=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion1.jpg&quot;&gt;&lt;img src=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion1.jpg&quot; width=&quot;250&quot; height=&quot;128&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Also, PPK has given me permission to use the Quirksmode.org Compatibility tables inside the Javascript and CSS bundles!&lt;/p&gt;

&lt;h3&gt;Code Completion &amp; Tool Tips&lt;/h3&gt;

&lt;p&gt;The Code Completion is &lt;em&gt;filter-as-you-type&lt;/em&gt; which means that as you type the list of completions changes to reflect your current word.&lt;/p&gt;

&lt;p&gt;I wrote some of the code to hook into the code completion functionality from Ruby and to be able to use json or plist files inside your bundle as completion lists.&lt;/p&gt;
&lt;a href=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion2.jpg&quot;&gt;&lt;img src=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion2.jpg&quot; width=&quot;250&quot; height=&quot;128&quot; /&gt;&lt;/a&gt;
&lt;p&gt;I also wrote the code that looks for the current word, method or collection name based on your caret and then finds the corresponding tooltip to show you.&lt;/p&gt;
&lt;a href=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion3.jpg&quot;&gt;&lt;img src=&quot;https://tripledoubleyou.subtlegradient.com/i/tm/Completion3.jpg&quot; width=&quot;250&quot; height=&quot;128&quot; /&gt;&lt;/a&gt;

&lt;p&gt;I did a bunch more stuff to make it all work! A bunch of people have worked on this stuff and made it really awesome, if I do say so myself.&lt;/p&gt;

&lt;h3&gt;Coming soon…&lt;/h3&gt;

&lt;p&gt;Since it's now incredibly easy to create massive amounts of code completion lists with tooltips and everything…&lt;/p&gt;

&lt;p&gt;I'm going to be creating more and more completions lists for Javascript, CSS &amp;amp; MooTools.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Current completion lists:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;org.quirksmode.dom.w3c_html.completions&lt;/li&gt;
&lt;li&gt;org.quirksmode.dom.w3c_core.completions&lt;/li&gt;
&lt;li&gt;org.quirksmode.dom.w3c_events.completions&lt;/li&gt;
&lt;li&gt;org.quirksmode.dom.w3c_cssom.completions&lt;/li&gt;
&lt;li&gt;org.quirksmode.dom.events.completions&lt;/li&gt;
&lt;li&gt;org.quirksmode.dom.w3c_css.completions&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Screencast&lt;/h3&gt;

&lt;p&gt;Moved the screencast to the article page. It's only 2fps, looks way aswomer irl!&lt;/p&gt;

UPDATE: now totally works out of the box with the latest textmate and javascript.tmbundle from &lt;a href=&quot;https://github.com/subtleGradient/&quot;&gt;my github&lt;/a&gt;!
&lt;!-- &lt;img src=&quot;https://tripledoubleyou.subtlegradient.com/textmate/completion_tooltips.jpg&quot; width=&quot;300&quot; height=&quot;279&quot; alt=&quot;Completion Tooltips&quot; /&gt; --&gt;
&lt;object width=&quot;600&quot; height=&quot;450&quot; classid=&quot;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&quot; codebase=&quot;https://www.apple.com/qtactivex/qtplugin.cab&quot;&gt;
	&lt;param name=&quot;src&quot; value=&quot;https://tripledoubleyou.subtlegradient.com/textmate/completion_tooltips.mov&quot; /&gt;
	&lt;param name=&quot;controller&quot; value=&quot;true&quot; /&gt;
	&lt;param name=&quot;autoplay&quot; value=&quot;false&quot; /&gt;
	&lt;embed src=&quot;https://tripledoubleyou.subtlegradient.com/textmate/completion_tooltips.mov&quot;
		width=&quot;600&quot; height=&quot;450&quot;
		controller=&quot;true&quot; autoplay=&quot;false&quot;
		scale=&quot;tofit&quot; cache=&quot;true&quot;
		pluginspage=&quot;https://www.apple.com/quicktime/download/&quot;
	 /&gt;
&lt;/object&gt;

&lt;h3&gt;It's all &lt;del&gt;coming… soon&lt;/del&gt; &lt;ins&gt;Available Now!!1!&lt;/ins&gt;&lt;/h3&gt;

</content>
	</entry>
	
	<entry>
		<title>Experimental IE CSS Expressions</title>
		<link href="https://subtlegradient.com/articles/articles/2008/09/06/experimental-ie-css-expressions.html.html" />
		<updated>2008-09-06T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/09/06/experimental-ie-css-expressions.html</id>
		<content type="html">
&lt;p&gt;I&amp;#8217;ve recently been toying with using IE CSS Expressions to fix things in IE6 that I usually use real javascript for.&lt;/p&gt;

&lt;p&gt;Check out these few tricks and let me know what you think:&lt;/p&gt;

&lt;h3 id=&quot;ie6_shim_fix_8212_for_the_select_box_showthrough_bug&quot;&gt;&lt;a href=&quot;https://gist.github.com/7372&quot; title=&quot;gist: 7372 &amp;mdash; GitHub&quot;&gt;IE6 SHIM Fix &amp;#8212; For the Select box showthrough bug&lt;/a&gt;&lt;/h3&gt;

&lt;script src=&quot;https://gist.github.com/7372.js&quot;&gt; &lt;/script&gt;
&lt;noscript&gt; &lt;a href=&quot;https://gist.github.com/7372.js&quot;&gt;https://gist.github.com/7372.js&lt;/a&gt;&lt;/noscript&gt;


&lt;h3 id=&quot;ie6_specific_code_to_get_hover_working_for_any_element&quot;&gt;&lt;a href=&quot;https://gist.github.com/6962&quot;&gt;IE6 specific code to get hover working for any element&lt;/a&gt;&lt;/h3&gt;

&lt;script src=&quot;https://gist.github.com/6962.js&quot;&gt; &lt;/script&gt;
&lt;noscript&gt; &lt;a href=&quot;https://gist.github.com/6962.js&quot;&gt;https://gist.github.com/6962.js&lt;/a&gt;&lt;/noscript&gt;


&lt;h3 id=&quot;fix_the_png_background_image_so_that_the_contents_can_still_be_clicked&quot;&gt;&lt;a href=&quot;https://gist.github.com/9180&quot;&gt;Fix the PNG background image so that the contents can still be clicked&lt;/a&gt;&lt;/h3&gt;

&lt;script src=&quot;https://gist.github.com/9180.js&quot;&gt; &lt;/script&gt;
&lt;noscript&gt; &lt;a href=&quot;https://gist.github.com/9180.js&quot;&gt;https://gist.github.com/9180.js&lt;/a&gt;&lt;/noscript&gt;
</content>
	</entry>
	
	<entry>
		<title>Serve Python through the Leopard Firewall</title>
		<link href="https://subtlegradient.com/articles/articles/2008/08/28/django_python_leopard_firewall.html.html" />
		<updated>2008-08-28T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/08/28/django_python_leopard_firewall.html</id>
		<content type="html">&lt;p&gt;I&amp;#8217;m working on a few Django projects now any I&amp;#8217;m learning some of the tricks the hard way. Hopefully I can save you some of that pain.&lt;/p&gt;

&lt;p&gt;I was recently having some trouble getting any of the browsers in my Windows XP under Parallels to see my local development server running on my Leopard Mac. It would load all of my Apache and Mongrel served apps fine, but it refused to connected to the Django server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Django development server refuses all connections from any other machine.&lt;/li&gt;

&lt;li&gt;The Leopard Firewall refuses to allow any other machine to access your Python server.&lt;/li&gt;

&lt;li&gt;Parallels and VMWare Fusion operating systems run asif they are real machines on your local network.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id='so_to_get_all_these_things_working_together'&gt;So, to get all these things working together…&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Allow incoming connections for Python in the Leopard Firewall&lt;/li&gt;

&lt;li&gt;Force the Python Django development server to allow access to other people on your LAN&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id='allow_incoming_connections_for_python_in_the_leopard_firewall'&gt;Allow incoming connections for Python in the Leopard Firewall&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open your System Preferences&lt;/li&gt;

&lt;li&gt;Security&lt;/li&gt;

&lt;li&gt;Firewall Tab&lt;/li&gt;

&lt;li&gt;Select &amp;#8220;Set access for specific services and applications&amp;#8221;&lt;/li&gt;

&lt;li&gt;Click the + icon at the bottom left of the list&lt;/li&gt;

&lt;li&gt;⇧⌘G — Go to folder &amp;#8220;/System/Library/Frameworks/Python.framework/Versions/2.5/Resources/&amp;#8221;&lt;/li&gt;

&lt;li&gt;Select the Python app&lt;/li&gt;

&lt;li&gt;Click &amp;#8220;Add&amp;#8221;&lt;/li&gt;

&lt;li&gt;Find Python in the list (just above Quicktime Player for me)&lt;/li&gt;

&lt;li&gt;Change the dropdown on the right so show &amp;#8220;Allow incoming connections&amp;#8221;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id='force_the_python_django_development_server_to_allow_access_to_other_people_on_your_lan'&gt;Force the Python Django development server to allow access to other people on your LAN&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Simply always serve with the ip &lt;code&gt;0.0.0.0&lt;/code&gt;&lt;br /&gt;&lt;code&gt;python manage.py runserver 0.0.0.0:8000&lt;/code&gt;&lt;/li&gt;

&lt;li&gt;There is no step 2&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now you&amp;#8217;re free to enjoy cross browser testing for your locally served Python Django webapps!&lt;br /&gt;YAY!!!1!&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Remotely Create a New Git Repo</title>
		<link href="https://subtlegradient.com/articles/articles/2008/07/31/remotely-create-a-new-git-repo.html.html" />
		<updated>2008-07-31T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/07/31/remotely-create-a-new-git-repo.html</id>
		<content type="html">
&lt;script src=&quot;https://gist.github.com/3464.js&quot;&gt; &lt;/script&gt;
&lt;noscript&gt; &lt;a href=&quot;https://gist.github.com/3464.js&quot;&gt;https://gist.github.com/3464.js&lt;/a&gt;&lt;/noscript&gt;

This is also partly a trial of the https://gist.github.com embedding.

</content>
	</entry>
	
	<entry>
		<title>MooTools 1.2 Final</title>
		<link href="https://subtlegradient.com/articles/articles/2008/06/10/mootools-1-2-final.html.html" />
		<updated>2008-06-10T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/06/10/mootools-1-2-final.html</id>
		<content type="html">&lt;p&gt;MooTools 1.2 has finally been released. And now I&amp;#8217;m a member of the &lt;a href=&quot;https://mootools.net/developers&quot;&gt;MooTools development team&lt;/a&gt;!&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://github.com/mootools/mootools-core/&quot;&gt;MooTools on Git on Github&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;&lt;a href=&quot;https://mootools.lighthouseapp.com/&quot;&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=&quot;https://github.com/mootools/mootools-core/&quot;&gt;MooTools is on Git on Github&lt;/a&gt; and &lt;a href=&quot;https://mootools.lighthouseapp.com/&quot;&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;</content>
	</entry>
	
	<entry>
		<title>Cloning a Git SVN Clone</title>
		<link href="https://subtlegradient.com/articles/articles/2008/04/22/cloning-a-git-svn-clone.html.html" />
		<updated>2008-04-22T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/04/22/cloning-a-git-svn-clone.html</id>
		<content type="html">&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=&quot;https://github.com/subtlegradient&quot;&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 https://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=&quot;result&quot;&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=&quot;error-result&quot;&gt;
Remote ref refs/remote/git-svn is tracked by
  &quot;svn-remote.svn.fetch=:refs/remotes/git-svn&quot;
and
  &quot;svn-remote.svn.fetch=:refs/remotes/git-svn&quot;
Please resolve this ambiguity in your git configuration file before continuing
&lt;/pre&gt;
&lt;p&gt;&amp;#8230; 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=&quot;caps&quot;&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;</content>
	</entry>
	
	<entry>
		<title>Installed Browsers</title>
		<link href="https://subtlegradient.com/articles/articles/2008/03/31/installed-browsers.html.html" />
		<updated>2008-03-31T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/03/31/installed-browsers.html</id>
		<content type="html">&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=&quot;https://tripledoubleyou.subtlegradient.com/stuff/blog/BrowserList.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Opera 9&lt;/li&gt;
	&lt;li&gt;Opera 9.5&lt;/li&gt;
	&lt;li&gt;Opera 9.51&lt;/li&gt;
	&lt;li&gt;Opera Mini&amp;trade; 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&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.0 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 2.0&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;
&lt;p&gt;&lt;ins&gt;Updated: Aug 15th&lt;/ins&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Simple Install of Git on Leopard</title>
		<link href="https://subtlegradient.com/articles/articles/2008/02/21/install_git_leopard.html.html" />
		<updated>2008-02-21T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2008/02/21/install_git_leopard.html</id>
		<content type="html">
&lt;h3&gt;Here&amp;rsquo;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.6.5.3'

# Get and install git
curl -O &quot;https://kernel.org/pub/software/scm/git/git-$GIT_VERSION.tar.bz2&quot;
tar xjvf &quot;git-$GIT_VERSION.tar.bz2&quot;
cd &quot;git-$GIT_VERSION/&quot;

# When on Mac OS X
./configure
make
sudo make install

cd ..

# Install Man Pages
curl -O &quot;https://kernel.org/pub/software/scm/git/git-manpages-$GIT_VERSION.tar.bz2&quot;
sudo tar xjv -C /usr/local/share/man        -f &quot;git-manpages-$GIT_VERSION.tar.bz2&quot;
&lt;/pre&gt;

&lt;h3&gt;Only needs some minor modifications to work on Dreamhost&lt;/h3&gt;

&lt;pre&gt;
mkdir -p &quot;$HOME/src&quot;
cd &quot;$HOME/src&quot;

# Set options even though we have GNU gettext installed
export TCL_PATH=`which tclsh`
export NO_MSGFMT=1
export GIT_VERSION='1.6.5.3'

# Get and Install Git
curl -O &quot;https://kernel.org/pub/software/scm/git/git-$GIT_VERSION.tar.bz2&quot;
tar xjvf &quot;git-$GIT_VERSION.tar.bz2&quot;
cd &quot;git-$GIT_VERSION/&quot;

# When on Dreamhost:
./configure --prefix=&quot;$HOME&quot; 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               &quot;$HOME/.gitignore&quot;
echo '.DS_Store' &gt;&gt; &quot;$HOME/.gitignore&quot;
echo '._*'       &gt;&gt; &quot;$HOME/.gitignore&quot;
echo '.svn'      &gt;&gt; &quot;$HOME/.gitignore&quot;
echo '.hg'       &gt;&gt; &quot;$HOME/.gitignore&quot;

# 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 &quot;Your Name&quot;
git config --global user.email your_email@your-domain.com

# Setup Bash Completion
mkdir -p &quot;$HOME/bin&quot;
export PATH=&quot;$HOME/bin:$PATH&quot;
echo 'export PATH=&quot;$HOME/bin:$PATH&quot;'               &gt;&gt; ~/.bash_profile
cp &quot;$HOME/Downloads/src/git-$GIT_VERSION/contrib/completion/git-completion.bash&quot; ~/bin
echo 'source ~/bin/git-completion.bash'            &gt;&gt; ~/.bash_profile

# Add the current Git Branch to your Bash Prompt
echo &quot;PS1='[\u@\h \w\$(__git_ps1 \&quot; (%s)\&quot;)]\\$ '&quot; &gt;&gt; ~/.bash_profile

&lt;/pre&gt;


</content>
	</entry>
	
	<entry>
		<title>Baseline Grid Overlay Bookmarklet</title>
		<link href="https://subtlegradient.com/articles/articles/2007/12/17/baseline-grid-overlay-bookmarklet.html.html" />
		<updated>2007-12-17T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/12/17/baseline-grid-overlay-bookmarklet.html</id>
		<content type="html">&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=&quot;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(https://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);}})())&quot;&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;</content>
	</entry>
	
	<entry>
		<title>Select Balanced HTML Tag</title>
		<link href="https://subtlegradient.com/articles/articles/2007/11/15/select-balanced-html-tag.html.html" />
		<updated>2007-11-15T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/11/15/select-balanced-html-tag.html</id>
		<content type="html">&lt;p&gt;hey kids&lt;br&gt;&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=&quot;caps&quot;&gt;HTML&lt;/span&gt;. Nothing useful anyway.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tripledoubleyou.subtlegradient.com/stuff/BundleForge%20-%20TextMate%20Select%20Balanced%20HTML%20Tag.m4v&quot;&gt;&lt;img src=&quot;https://tripledoubleyou.subtlegradient.com/stuff/BundleForge%20-%20TextMate%20Select%20Balanced%20HTML%20Tag.jpg&quot; alt=&quot;&quot; /&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=&quot;caps&quot;&gt;HTML&lt;/span&gt; Tag&lt;/strong&gt; and I have it bound to &lt;strong&gt;&lt;nobr&gt;&amp;amp;#x2318;&amp;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;&lt;br /&gt;
Put the caret inside of an &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; tag that we want to select, and hit the magic shortcut key: &lt;strong&gt;&lt;nobr&gt;&amp;amp;#x2318;&amp;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=&quot;caps&quot;&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=&quot;caps&quot;&gt;HTML&lt;/span&gt; Tag&amp;#8221; macro is &lt;span class=&quot;caps&quot;&gt;UNDOABLE&lt;/span&gt;!&lt;/em&gt;&lt;br&gt;&lt;br /&gt;
&lt;span class=&quot;caps&quot;&gt;HAHA&lt;/span&gt;! Take &lt;span class=&quot;caps&quot;&gt;THAT&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;! Bet you didn&amp;#8217;t see &lt;span class=&quot;caps&quot;&gt;THAT&lt;/span&gt; one coming!&lt;/p&gt;
&lt;p&gt;Yes, sure. Dreamweaver has the &amp;#8220;Edit &amp;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=&quot;caps&quot;&gt;LOT&lt;/span&gt; better and &lt;span class=&quot;caps&quot;&gt;WAY&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;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. &lt;br /&gt;
New TextMate Macro &lt;strong&gt;Select Balanced &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; Tag&lt;/strong&gt;&lt;br /&gt;
Selects the current &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; Tag, &lt;br /&gt;
similar to the &lt;em&gt;BBEdit Balance&lt;/em&gt; and &lt;em&gt;Dreamweaver Select Parent Tag&lt;/em&gt; commands.&lt;br /&gt;
Except that it&amp;#8217;s &lt;span class=&quot;caps&quot;&gt;UNDOABLE&lt;/span&gt; and works in TextMate and is much crappier.&lt;br&gt;&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=&quot;https://BundleForge.com&quot;&gt;BundleForge.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Fix Safari Downloads Window on Leopard Spaces</title>
		<link href="https://subtlegradient.com/articles/articles/2007/10/27/fix-safari-downloads-window-on-leopard-spaces.html.html" />
		<updated>2007-10-27T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/10/27/fix-safari-downloads-window-on-leopard-spaces.html</id>
		<content type="html">&lt;p&gt;The one thing that really bothers be about Mac OS X 10.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;amp; 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;</content>
	</entry>
	
	<entry>
		<title>Multiple Standalone Safaris</title>
		<link href="https://subtlegradient.com/articles/articles/2007/10/10/multiple-standalone-safaris.html.html" />
		<updated>2007-10-10T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/10/10/multiple-standalone-safaris.html</id>
		<content type="html">&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=&quot;https://www.macosxhints.com/article.php?story=20070612131825986&quot;&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;#8220;Blargh!!!&amp;#8221;&lt;/em&gt; I say.&lt;/p&gt;
&lt;p&gt;For a while now &lt;a href=&quot;https://tredosoft.com/Multiple_IE&quot;&gt;Yousif Al Saif at TredoSoft&lt;/a&gt; has let us &lt;a href=&quot;https://subtlegradient.com/articles/2006/10/25/attack-of-the-standalone-internet-explorers&quot;&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=&quot;https://michelf.com/projects/multi-safari/&quot;&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 OS X 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 OS X for each version of Safari you want to test a website into.&lt;br /&gt;
&lt;br /&gt;&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=&quot;caps&quot;&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=&quot;caps&quot;&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=&quot;https://crazyegg.com&quot;&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=&quot;caps&quot;&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;&lt;span class=&quot;caps&quot;&gt;UPDATE&lt;/span&gt;:&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=&quot;https://tripledoubleyou.subtlegradient.com/stuff/Safari2/&quot;&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;</content>
	</entry>
	
	<entry>
		<title>WARNING Do Not Update Your Windows Testing Box!!!</title>
		<link href="https://subtlegradient.com/articles/articles/2007/06/26/warning-do-not-update-your-windows-testing-box.html.html" />
		<updated>2007-06-26T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/06/26/warning-do-not-update-your-windows-testing-box.html</id>
		<content type="html">&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 IE6 Patch Removes Ability to Test Memory Leaks&lt;/h3&gt;
&lt;p&gt;There has just been a &lt;a href=&quot;https://support.microsoft.com/kb/933566/&quot;&gt;patch released by Microsoft that updates IE6 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=&quot;https://ajaxian.com/archives/ie-memory-leaks-be-gone&quot;&gt;Ajaxian &amp;raquo; IE Memory Leaks Be-gone&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://novemberborn.net/javascript/memory-leaks-gone&quot;&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 IE6? Do you want to test your code in IE6 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=&quot;caps&quot;&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 IE6 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 IE6 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 IE6 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;</content>
	</entry>
	
	<entry>
		<title>Safari 2, Safari 3, Adium &amp; forcing WebKit Frameworks</title>
		<link href="https://subtlegradient.com/articles/articles/2007/06/12/safari-2-safari-3-adium-forcing-webkit-frameworks.html.html" />
		<updated>2007-06-12T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/06/12/safari-2-safari-3-adium-forcing-webkit-frameworks.html</id>
		<content type="html">&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=&quot;https://www.apple.com/safari/download/&quot;&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=&quot;https://nightly.webkit.org/&quot;&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;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;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;br /&gt;
&lt;code&gt;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/PrivateFrameworks/JavaScriptGlue.framework&lt;/code&gt; &lt;br /&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=&quot;https://www.apple.com/safari/download/&quot;&gt;Safari 3 Beta&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Install &lt;a href=&quot;https://nightly.webkit.org/&quot;&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 &quot;/Library/Application Support/Apple/.SafariBetaArchive.tar.gz&quot;
&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;amp;&amp;amp;
mv /Applications/WebKit.app /Applications/Safari2.app &amp;amp;&amp;amp;
ditto &quot;/Library/Application Support/Apple/.SafariBetaArchive/Applications/Safari.app&quot; /Applications/Safari.app &amp;amp;&amp;amp;
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;amp;&amp;amp;
cp -Rf \
  &quot;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework&quot; \
  &quot;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/JavaScriptCore.framework&quot; \
  &quot;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework&quot; \
  &quot;/Library/Application Support/Apple/.SafariBetaArchive/System/Library/PrivateFrameworks/JavaScriptGlue.framework&quot; \
  /Applications/Safari2.app/Contents/Resources/
&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;&lt;span class=&quot;caps&quot;&gt;UPDATED&lt;/span&gt; Date: 2007-06-13 18:15:32&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/p&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;
env DYLD_FRAMEWORK_PATH=&amp;#8220;/Applications/Safari2.app/Contents/Resources&amp;#8221; WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=&lt;span class=&quot;caps&quot;&gt;YES&lt;/span&gt; &amp;#8220;PATH_TO_THE_BIN_IN_YOUR_APP&amp;#8221; &amp;amp;
&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;
env DYLD_FRAMEWORK_PATH=&amp;#8220;/Applications/Safari2.app/Contents/Resources&amp;#8221; WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=&lt;span class=&quot;caps&quot;&gt;YES&lt;/span&gt; &amp;#8220;/Applications/Adium.app/Contents/MacOS/Adium&amp;#8221; &amp;amp;</content>
	</entry>
	
	<entry>
		<title>TextMate View Source from Internet Explorer</title>
		<link href="https://subtlegradient.com/articles/articles/2007/06/11/textmate-view-source-from-internet-explorer.html.html" />
		<updated>2007-06-11T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/06/11/textmate-view-source-from-internet-explorer.html</id>
		<content type="html">&lt;p&gt;A quick registry script for using TextMate to view source from Internet Explorer.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the Microsoft documentation: &lt;a href=&quot;https://msdn.microsoft.com/workshop/browser/configuration/clientreg/clientregistrylayout.asp&quot;&gt;https://msdn.microsoft.com/workshop/browser/configuration/clientreg/clientregistrylayout.asp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This assumes that you&amp;#8217;re using &lt;strong&gt;Parallels 3&lt;/strong&gt; and the username &lt;strong&gt;Administrator&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
Windows Registry Editor Version 5.00 

; GOAL: Set TextMate as HTML editor in Internet Explorer 6.0 
; Windows version: XP 
; EASY USAGE: name this file iex-textmate.reg and double click on it 
; Hard Usage: IMPORT this file using REGEDIT.EXE found in c:\WINDOWS 
; Last modified date : Mon Jun 11 17:30:55 EDT 2007

; Be sure to also reset Explorer&amp;gt;Tools&amp;gt;Internet Options&amp;gt;Programs 

; Microsoft documentation 
; https://msdn.microsoft.com/workshop/browser/configuration/clientreg/clientregistrylayout.asp 


; Add TextMate in the list of supported HTML editors 
[HKEY_CLASSES_ROOT\.htm\OpenWithList\TextMate] 

[HKEY_CLASSES_ROOT\.htm\OpenWithList\TextMate\shell] 

[HKEY_CLASSES_ROOT\.htm\OpenWithList\TextMate\shell\edit] 
&quot;FriendlyAppName&quot;=&quot;TextMate&quot; 

[HKEY_CLASSES_ROOT\.htm\OpenWithList\TextMate\shell\edit\command] 
@=&quot;\&quot;C:\\Documents and Settings\\Administrator\\Application Data\\Parallels\\Shared Applications\\TextMate (Mac).exe\&quot; \&quot;%1\&quot;&quot; 


; OPTIONAL: Within Internet Explorer &quot;View Source&quot; with TextMate 
; but prefer to use Edit button (got to add this) on Toolbar 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default HTML Editor] 
&quot;Description&quot;=&quot;TextMate&quot; 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default HTML Editor\shell] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default HTML Editor\shell\edit] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default HTML Editor\shell\edit\command] 
@=&quot;\&quot;C:\\Documents and Settings\\Administrator\\Application Data\\Parallels\\Shared Applications\\TextMate (Mac).exe\&quot; \&quot;%1\&quot;&quot; 


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default MHTML Editor] 
&quot;Description&quot;=&quot;TextMate&quot; 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default MHTML Editor\shell] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default MHTML Editor\shell\edit] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Default MHTML Editor\shell\edit\command] 
@=&quot;\&quot;C:\\Documents and Settings\\Administrator\\Application Data\\Parallels\\Shared Applications\\TextMate (Mac).exe\&quot; \&quot;%1\&quot;&quot; 


; View Shared Editor
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name] 
@=&quot;C:\\Documents and Settings\\Administrator\\Application Data\\Parallels\\Shared Applications\\TextMate (Mac).exe&quot; 

; ============================================= EOF
&lt;/pre&gt;</content>
	</entry>
	
	<entry>
		<title>Selling CrazyEgg PowerBook 12</title>
		<link href="https://subtlegradient.com/articles/articles/2007/06/07/selling-crazyegg-powerbook-12.html.html" />
		<updated>2007-06-07T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/06/07/selling-crazyegg-powerbook-12.html</id>
		<content type="html">
&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
.sell_pb h2,
.sell_pb h3,
.sell_pb h4 {clear: none !important;}
&lt;/style&gt;
&lt;div class=&quot;sell_pb&quot;&gt;

&lt;h2&gt;&lt;a href=&quot;https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;item=230140471288&quot;&gt;Aluminum Apple PowerBook 12&quot; &lt;br /&gt;
&lt;em&gt;with&lt;/em&gt; External FireWire iSight&lt;/a&gt;&lt;/h2&gt;

&lt;div class=&quot;images&quot; style=&quot;width:320px; float:right;margin-right:-350px&quot;&gt;
	&lt;strong&gt;Click images to see fullsized&lt;/strong&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0727.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0727.jpg&quot; /&gt;&lt;/a&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0721.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0721.jpg&quot; /&gt;&lt;/a&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0718.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0718.jpg&quot; /&gt;&lt;/a&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0717.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0717.jpg&quot; /&gt;&lt;/a&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0716.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0716.jpg&quot; /&gt;&lt;/a&gt;
	&lt;a target=&quot;_blank&quot; href=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/large_IMG_0714.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/i/ebay/powerbook/small_IMG_0714.jpg&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;h4&gt;CrazyEgg!&lt;/h4&gt;
&lt;p&gt;
	&lt;strong&gt;This is the computer that I used to code CrazyEgg.com&lt;/strong&gt;
	It has been an extremely good computer but I'm upgrading to a desktop iMac.
	I just can't justify letting this awesome little machine not get used by someone who will love it.
&lt;/p&gt;

&lt;h4&gt;Best Keyboard&lt;/h4&gt;
&lt;p&gt;
	If you've never used a PowerBook keyboard, you have no idea what you're missing. This thing has the most responsive and comfortable keyboard I have ever used, seen or even heard of.
&lt;/p&gt;

&lt;h4&gt;Amazingly Small&lt;/h4&gt;
&lt;p&gt;
	They mean it when they call this puppy an &lt;em&gt;ultraportable&lt;/em&gt;. It's literally the size of a pad of paper (US Letter sized).&lt;br /&gt;
	&lt;br /&gt;
&lt;/p&gt;

&lt;h3&gt;Condition&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The PowerBook is in &lt;em&gt;extremely excellent&lt;/em&gt; condition&lt;/strong&gt;&lt;br /&gt;
Perfect screen. Perfect keyboard. All ports are perfect.
Perfect top cover. 3 tiny nicks in the handrest &lt;em&gt;(too small to photograph)&lt;/em&gt;. Bottom has a few extremely minor scratches &lt;em&gt;(barely noticable in photo)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The battery is new.&lt;/strong&gt; The original battery that came with the machine was replaced by Apple with their battery recall.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Never been dropped&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No water damage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I've been &lt;em&gt;extremely&lt;/em&gt; careful with this machine.&lt;/p&gt;

&lt;h3&gt;What you get:&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;Apple PowerBook 12&quot; Computer&lt;/strong&gt; (M9184LL/A)&lt;/li&gt;
	&lt;li&gt;NEW Battery&lt;/li&gt;
	&lt;li&gt;Original Charger &lt;br /&gt;
	with Extension cable&lt;/li&gt;
	&lt;li&gt;Mini-DVI to VGA adaptor&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
	
	&lt;li&gt;&lt;strong&gt;External iSight with auto-focus&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;Original 6' White FireWire Cable&lt;/li&gt;
	&lt;li&gt;3 Original Plastic iSight Stands&lt;/li&gt;
	&lt;li&gt;FireWire Cable Adapter&lt;/li&gt;
	&lt;li&gt;Plastic iSight Case&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
	
	&lt;li&gt;Original PowerBook Box&lt;/li&gt;
	&lt;li&gt;Original iSight Box&lt;/li&gt;
	&lt;li&gt;Original Booklets&lt;/li&gt;
	&lt;li&gt;Original Disks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;About this Mac&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Mac OS X Tiger&lt;/li&gt;
	&lt;li&gt;iLife 2006&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
	&lt;li&gt;G4 1.33 Ghz Processor&lt;/li&gt;
	&lt;li&gt;1.25 GB RAM &lt;strong&gt;Maxed!&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;60 GB Hard Drive&lt;/li&gt;
	&lt;li&gt;2 USB 2.0&lt;/li&gt;
	&lt;li&gt;FireWire&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
	&lt;li&gt;AirPort Extreme &lt;em&gt;(802.11g WIFI)&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;10/100Base-T ethernet&lt;/li&gt;
	&lt;li&gt;56k modem&lt;/li&gt;
	&lt;li&gt;Bluetooth&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
	&lt;li&gt;NVIDIA GeForce FX Go5200 (4X AGP) &lt;br /&gt;
	with 64MB of dedicated DDR SDRAM
		&lt;ul&gt;
			&lt;li&gt;&lt;strong&gt;12.1&quot; Internal LCD:&lt;/strong&gt; 1024 x 768&lt;/li&gt;
			&lt;li&gt;&lt;strong&gt;Max External LCD:&lt;/strong&gt; 2048 x 1536&lt;/li&gt;
			&lt;li&gt;Supports External DVI, VGA, Composite and S-Video (with adapters)&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;SuperDrive&lt;/strong&gt;
		&lt;ul&gt;
			&lt;li&gt;read DVD at 8X&lt;/li&gt;
			&lt;li&gt;write DVD-R at 4X&lt;/li&gt;
			&lt;li&gt;read CD-ROM at 24X&lt;/li&gt;
			&lt;li&gt;write CD-R at 16X&lt;/li&gt;
			&lt;li&gt;write CD-RW at 4X&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;a href=&quot;https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;item=230140471288&quot;&gt;Buy my 12&quot; PowerBook on eBay&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;


</content>
	</entry>
	
	<entry>
		<title>I Love Internet Explorer!</title>
		<link href="https://subtlegradient.com/articles/articles/2007/04/11/i-love-internet-explorer.html.html" />
		<updated>2007-04-11T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/04/11/i-love-internet-explorer.html</id>
		<content type="html">&lt;p&gt;I just want to put this out there since so many people still seem to have a bad relationship with IE. We&amp;#8217;ve all been burnt in the past :(&lt;/p&gt;
&lt;h3&gt;Meh&lt;/h3&gt;
&lt;p&gt;Those dark days should be well past us now. We all use Macs with Parallels. We all &lt;a href=&quot;https://subtlegradient.com/articles/2006/10/25/attack-of-the-standalone-internet-explorers&quot;&gt;run Internet Explorer 6 and Internet Explorer 7 constantly&lt;/a&gt; while designing and developing our sites. &lt;em&gt;Don&amp;#8217;t you?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve all pretty much figured out what can and cannot be done in IE, and how to easily get around the biggest problems.&lt;/p&gt;
&lt;p&gt;But not just all that, there are actually some really compelling features that are only implemented in Internet Explorer.&lt;/p&gt;
&lt;h3&gt;Awesome Unique Features&lt;/h3&gt;
&lt;p&gt;Internet Explorer supports using javascript in your &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;. That&amp;#8217;s right. You can &lt;a href=&quot;https://msdn.microsoft.com/workshop/author/dhtml/overview/recalc.asp&quot;&gt;define &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; rules using javascript in Internet Explorer&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;And then there are the &lt;a href=&quot;https://msdn.microsoft.com/workshop/author/filter/filters.asp&quot;&gt;crazy Internet Explorer &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; filters&lt;/a&gt;. You can do silly stuff like blurring the main content when you open a lightboxy-thing, but only in Internet Explorer. I actually have that working over at the &lt;a href=&quot;https://crazyegg.com/overview&quot;&gt;CrazyEgg overview page&lt;/a&gt;. I reinvented the &lt;del&gt;wheel&lt;/del&gt; &lt;ins&gt;lightboxy thing&lt;/ins&gt; with almost all &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; instead of javascript.&lt;/p&gt;
&lt;h3&gt;&lt;em&gt;The future&amp;#8217;s so bright I gotta wear shades!&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;There is virtually no area on the web where you have to support IE5 anymore. &lt;em&gt;Don&amp;#8217;t get me wrong, I can totally support IE5 if I absolutely &lt;strong&gt;have&lt;/strong&gt; to.&lt;/em&gt; You just don&amp;#8217;t have to do it anymore.&lt;/p&gt;
&lt;p&gt;Internet Explorer 6 was released back in the dark ages. Who even uses Windows 2000 still? Let alone Windows 98. And for those few people that do, do you really care about them? It&amp;#8217;s really much more worth your time to make your sites work perfectly in Safari and Opera. People who use Safari and Opera are more likely to be people with money.&lt;/p&gt;
&lt;p&gt;Just look at the &lt;a href=&quot;https://marketshare.hitslink.com/report.aspx?qprid=6&amp;amp;qptimeframe=M&amp;amp;qpsp=97&amp;amp;qpmr=55&amp;amp;qpdt=1&amp;amp;qpct=3&quot;&gt;Market share for browsers&lt;/a&gt;. IE5 has 0.35% of the market. That&amp;#8217;s &lt;strong&gt;well below Opera 9&amp;#8217;s&lt;/strong&gt; 0.65%. So, when thinking about supporting IE5, get right on that &lt;em&gt;after you fully support Opera 9 and Safari.&lt;/em&gt; And it&amp;#8217;s not like IE5&amp;#8217;s market share is going up. Obviously you have to look at the browser share of your target market. Not all markets have the same browser share.&lt;br /&gt;
 &lt;br /&gt;
Now consider the fact that IE8 is going to come out eventually and you&amp;#8217;ll be able to completely drop support for IE6 too! Ahh, that&amp;#8217;ll be the day.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Slingshot around the sun would be faster</title>
		<link href="https://subtlegradient.com/articles/articles/2007/04/09/slingshot-around-the-sun-would-be-faster.html.html" />
		<updated>2007-04-09T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/04/09/slingshot-around-the-sun-would-be-faster.html</id>
		<content type="html">&lt;p style=&quot;font-size:1.1em&quot;&gt;Ok, so you all now know that &lt;a href=&quot;https://subtlegradient.com/articles/2007/04/04/subtlegradient-on-slingshot-beta&quot;&gt;I&amp;#8217;m in on the Slingshot beta&lt;/a&gt; now. They have asked me to be candid and blog about my experiences with developing for Slingshot, good or bad, in &amp;#8220;real time.&amp;#8221; So that is what I am doing&amp;#8230;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://subtlegradient.com/files/2007-04-09_joyent_sleep.jpg&quot; title=&quot;Joyent Sleep&quot; alt=&quot;Joyent Sleeping?&quot; style=&quot;float:right; margin-right:-10em&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I finally had the conference call with one of the developers at &lt;a href=&quot;https://blog.magnetk.com/&quot;&gt;Magnetk&lt;/a&gt; and David Young &lt;sup&gt;founder and &lt;span class=&quot;caps&quot;&gt;CEO&lt;/span&gt; of Joyent&lt;/sup&gt; last Thursday. He originally confirmed the call for Wednesday. I emailed a number of times but didn&amp;#8217;t hear anything until Thursday morning when they called. &lt;strong&gt;Five minutes early or 1,435 minutes late, you decide ;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And then I was promised that I&amp;#8217;d &amp;#8220;revieve the code&amp;#8221; by today &lt;em&gt;(monday)&lt;/em&gt; and be able to start hacking around with Slingshot. Shockingly enough, I haven&amp;#8217;t heard a peep from them.&lt;/p&gt;
&lt;p&gt;Sofar, I&amp;#8217;d say we&amp;#8217;re off to a somewhat shakey start. Three weeks before the official launch of Slingshot and I don&amp;#8217;t have access to the code or documentation.&lt;/p&gt;
&lt;p&gt;&lt;br clear=&quot;both&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;I forget, is &lt;span class=&quot;caps&quot;&gt;PST&lt;/span&gt; 3 hours or 27 hours behind &lt;span class=&quot;caps&quot;&gt;EST&lt;/span&gt;?&lt;/h3&gt;
&lt;p&gt;I&amp;#8217;m not an impatient person by any stretch. &lt;strong&gt;I&amp;#8217;m just used to people doing what they say.&lt;/strong&gt;&lt;br /&gt;
Why would you voluntarilly commit to a time unless you&amp;#8217;re absolutely certain that you can exceed it?&lt;/p&gt;
&lt;p&gt;Slingshot is a real risk on their part. If they don&amp;#8217;t handle this properly they run the risk of alienating their developers. And if there aren&amp;#8217;t any people developing on their platform then it will shrivel up and die.&lt;/p&gt;
&lt;p&gt;Obviously I don&amp;#8217;t think that being a wee bit late a few times in a row is going to jinx you from the get go, but it is starting them out in the red. They&amp;#8217;re already behind in my book. &lt;strong&gt;Time is money, baby!&lt;/strong&gt; If you&amp;#8217;re going to waste my time then I might think twice about setting myself up for it again.&lt;/p&gt;
&lt;h3&gt;You expect more from a for-profit business&lt;/h3&gt;
&lt;p&gt;I&amp;#8217;ve been spending more and more of my time on open-source or open-standard&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#fn1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; software over the last few years. In that environment you come to expect things to be late and have vast expanses of no forward development, bad communication with the development team, etc&amp;#8230; It&amp;#8217;s just the nature of the beast.&lt;/p&gt;
&lt;p&gt;But when you try and make a closed-source for-profit business, I&amp;#8217;m going to expect a little more out of you. You should provide your customers with some way to contact you. You should respond when they do contact you. You should be all in all a bit more professional.&lt;/p&gt;
&lt;p&gt;Lately I&amp;#8217;ve actually seen the exact opposite to be true.&lt;/p&gt;
&lt;p&gt;Open souce developers all seem to be hanging out in &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; and in mailing lists and blogs and on IM and actually reading &lt;strong&gt;and responding&lt;/strong&gt; to their email. Not to mention that if you ever have any problems with their code or desperately need to know how something is implemented you just have to &lt;strong&gt;pop open their source code and read or edit the stuff directly&lt;/strong&gt;, skipping out the middle-man altogether.&lt;/p&gt;
&lt;h3&gt;Ok, now I&amp;#8217;m just ranting like a maniac&lt;/h3&gt;
&lt;p&gt;Ok, that&amp;#8217;s all extremely unfair to the poor Joyent Slingshot peoples here. They aren&amp;#8217;t exactly Adobe or anything. And Slingshot isn&amp;#8217;t exactly Adobe Apollo.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m sure they&amp;#8217;ll get something to me tomorrow. And I&amp;#8217;m sure it&amp;#8217;ll be way less than 2000 minutes late. To be completely fair, it&amp;#8217;ll still be Monday for another few hours. The last thing they need is my abuse :P They did have me agree to blog in &amp;#8220;real time&amp;#8221; though, so it&amp;#8217;s their own fault.&lt;/p&gt;
&lt;p&gt;-&lt;em&gt;Oi, i need some sleep.&lt;/em&gt;-&lt;/p&gt;
&lt;p&gt;Please forgive the rant &lt;em&gt;my friendly internet peoples.&lt;/em&gt; Everything is all smiles and joy and the raindrops shall skitter away as does the dew when once it falls upon the stillness of the pond, &lt;em&gt;or something like that&amp;#8230;&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span class=&quot;caps&quot;&gt;UPDATE&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;It&amp;#8217;s now 10:45pm &lt;span class=&quot;caps&quot;&gt;EST&lt;/span&gt; Tuesday night&amp;#8230; I haven&amp;#8217;t hard a peep out of them since last Thursday. But I&amp;#8217;m sure they&amp;#8217;ll email me, &lt;em&gt;any minute&amp;#8230; &lt;strong&gt;now&lt;/strong&gt; &amp;#8230;&lt;/em&gt; or not.&lt;/p&gt;
&lt;p&gt;Apollo, here I come!&lt;/p&gt;
&lt;h4&gt;UPDATE2&lt;/h4&gt;
&lt;p&gt;Wednesday at ~1:30pm &lt;span class=&quot;caps&quot;&gt;EST&lt;/span&gt; they emailed me back&amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We found a big bug in unsync. We should have it fixed today.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, that&amp;#8217;s probly good. Don&amp;#8217;t want to have buggy stuff. I just wish they&amp;#8217;d emailed me on monday to let me know I wasn&amp;#8217;t going to get it that day.&lt;/p&gt;
&lt;h4&gt;UPDATE3&lt;/h4&gt;
&lt;p&gt;I finally got access to Slingshot today, Friday April 13 2007. The Windows version isn&amp;#8217;t ready yet.&lt;/p&gt;
&lt;hr /&gt;
&lt;p class=&quot;footnote&quot; id=&quot;fn1&quot;&gt;&lt;sup&gt;1&lt;/sup&gt; TextMate bundles are an &amp;#8220;open-standard.&amp;#8221; While the primary application that uses the bundles is for-profit and closed-source, the bundle file formats themselves are open and anyone can use them. See, for example &lt;a href=&quot;https://www.e-texteditor.com/blog/2006/textmate_on_windows&quot;&gt;The Power of Textmate on Windows&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>subtleGradient on Slingshot Beta</title>
		<link href="https://subtlegradient.com/articles/articles/2007/04/04/subtlegradient-on-slingshot-beta.html.html" />
		<updated>2007-04-04T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/04/04/subtlegradient-on-slingshot-beta.html</id>
		<content type="html">&lt;p&gt;&lt;a href=&quot;https://joyeur.com/2007/03/22/joyent-slingshot&quot; target=&quot;_new&quot; title=&quot;Joyent Slingshot Guys&quot; alt=&quot;Joyent Slingshot Guys&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/files/2007-04-04_joyent_slingshot_guys.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;I was recently offered access into the &lt;a href=&quot;https://joyeur.com/2007/03/22/joyent-slingshot&quot;&gt;Joyent Slingshot Beta&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;I&amp;#8217;ll be discussing the details with David Young^&lt;span class=&quot;caps&quot;&gt;CEO&lt;/span&gt;^ in a few minutes. Do you have any questions you&amp;#8217;d like me to ask for you?&lt;/p&gt;
&lt;p&gt;Obviously the most pressing question that most people seem to be wondering is how this puppy compares with &lt;a href=&quot;https://wiki.mozilla.org/Firefox3&quot;&gt;FireFox 3&lt;/a&gt; and &lt;a href=&quot;https://labs.adobe.com/technologies/apollo/&quot;&gt;Apollo alpha&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well, I&amp;#8217;m also looking into &lt;a href=&quot;https://labs.adobe.com/technologies/apollo/&quot;&gt;Apollo&lt;/a&gt;. I&amp;#8217;ve done quite a bit of looking into the &lt;acronym title=&quot;details&quot;&gt;deets&lt;/acronym&gt;. I&amp;#8217;ve already hacked on some local Apollo craziness.&lt;/p&gt;
&lt;p&gt;Apollo is a way to run &lt;em&gt;static&lt;/em&gt; web tech on your local machine. That means you have the ability to run &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;, Javascript and Flash. You&amp;#8217;ll eventually be able to mix in some &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; in there too. Now, don&amp;#8217;t get me wrong, Apollo is totally stinking awesome! But, I think a few of their best features are also their greatest faults. I&amp;#8217;ll leave the Apollo rant for another article.&lt;/p&gt;
&lt;p&gt;I haven&amp;#8217;t really looked into Firefox 3 much more than running the alpha to compatibility test CrazyEgg. &lt;acronym title=&quot;as far as I know&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AFAIK&lt;/span&gt;&lt;/acronym&gt; FireFox 3 is just going to be FireFox 2 with some &lt;a href=&quot;https://developer.mozilla.org/en/docs/Firefox_3_for_developers#Web_Applications_1.0&quot;&gt;fancy offline capabilities&lt;/a&gt; and such. I also strongly feel that some of FireFox&amp;#8217;s best features are also their worst. Again, more on that later.&lt;/p&gt;
&lt;h4&gt;So, that brings us back to &lt;a href=&quot;https://joyeur.com/2007/03/22/joyent-slingshot&quot;&gt;Slingshot&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;What&amp;#8217;s the big difference?&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Ruby!&lt;/strong&gt; &lt;em&gt;That&amp;#8217;s&lt;/em&gt; the big difference. You&amp;#8217;ll be able to write &lt;em&gt;real desktop applications&lt;/em&gt; using Ruby On Rails! No installing a custom framework. No crazy custom application bundles. Not tied into a web browser as just another window or tab. Full blown web applications on your desktop using real binaries and junk!&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s &lt;a href=&quot;https://blog.magnetk.com/2007/03/22/joyent-slingshot/&quot; title=&quot;The Joyent Slingshot technical explaination&quot;&gt;the promise&lt;/a&gt; at least. We&amp;#8217;ll see how this stuff pans out in the end. I&amp;#8217;m keeping my expectations really low so that I&amp;#8217;m not disappointed.&lt;/p&gt;
&lt;p&gt;&lt;sub&gt;I&amp;#8217;ll be blogging about this thing as I use it.&lt;/sub&gt; &lt;br /&gt;&lt;br /&gt;
&lt;sub&gt;So, expect more content from me soon.&lt;/sub&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Web Development Environment and Workflow</title>
		<link href="https://subtlegradient.com/articles/articles/2007/03/30/web-development-environment-and-workflow.html.html" />
		<updated>2007-03-30T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/03/30/web-development-environment-and-workflow.html</id>
		<content type="html">&lt;p&gt;Over the years I have worked with a bunch of teams and solo. I usually go with the flow as far as the group workflow. I have had to roll my own subversion workflow in the dark days before it was a normal and expected thing to do.&lt;/p&gt;
&lt;p&gt;Here is a rundown of the major types of workflows I have used&amp;#8230;&lt;/p&gt;
&lt;h3&gt;My Ideal Web Development Environment&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Subversion Repository:
	&lt;ul&gt;
		&lt;li&gt;Accessible via https&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Trunk&lt;/strong&gt; branch for new features&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Stable&lt;/strong&gt; branch for production and quick patches&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Development:
	&lt;ol&gt;
		&lt;li&gt;Local testing/development environment
		&lt;ul&gt;
			&lt;li&gt;Local working copy of trunk &lt;em&gt;and stable&lt;/em&gt;&lt;/li&gt;
			&lt;li&gt;Local server, database, etc&amp;#8230;
			&lt;ul&gt;
				&lt;li&gt;for both your trunk and stable checkouts&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;A complete local environment for development and testing
			&lt;ul&gt;
				&lt;li&gt;It should also have no internet dependancies so that you can still keep working if you lose internet or on your laptop on the road, etc&amp;#8230;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
		&lt;li&gt;Edit locally&lt;/li&gt;
		&lt;li&gt;Test locally&lt;/li&gt;
		&lt;li&gt;Commit changes to trunk&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Deploy:
	&lt;ol&gt;
		&lt;li&gt;Merge trunk to stable&lt;/li&gt;
		&lt;li&gt;Deploy stable to staging server
		&lt;ul&gt;
			&lt;li&gt;Commit any necessary changes to stable from your local&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
		&lt;li&gt;Deploy stable to production&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Bug fixes:
	&lt;ol&gt;
		&lt;li&gt;Make minor tweaks to stable checkout&lt;/li&gt;
		&lt;li&gt;Test locally&lt;/li&gt;
		&lt;li&gt;Commit changes to stable&lt;/li&gt;
		&lt;li&gt;Deploy stable to production&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;For environments where you &lt;em&gt;can&amp;#8217;t test locally&lt;/em&gt; &lt;br /&gt;
	and are the &lt;em&gt;only person with access&lt;/em&gt; to the testing server&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Subversion Repository
	&lt;ul&gt;
		&lt;li&gt;Trunk&lt;/li&gt;
		&lt;li&gt;Stable&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Development:
	&lt;ol&gt;
		&lt;li&gt;Local working copy
		&lt;ul&gt;
			&lt;li&gt;A local checkout of trunk&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
		&lt;li&gt;Edit locally&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;Upload changes to testing server and test&lt;/strong&gt;&lt;/li&gt;
		&lt;li&gt;Commit from local working copy&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Deploy:
	&lt;ol&gt;
		&lt;li&gt;Merge trunk to stable&lt;/li&gt;
		&lt;li&gt;Deploy stable to testing server for final test&lt;/li&gt;
		&lt;li&gt;Deploy stable to production&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;&lt;ins&gt;&lt;em&gt;This is a slow and annoying way to work!&lt;/em&gt;&lt;/ins&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;UPDATE&lt;/span&gt;:&lt;/strong&gt; Rob McBroom has come up with what looks like a really handy way to &lt;a href=&quot;https://article.gmane.org/gmane.editors.textmate.general/19079&quot;&gt;use TextMate to work with remote projects&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The two commands are &amp;#8220;Get Remote Project&amp;#8221; and &amp;#8220;Upload Project  &lt;br /&gt;
Changes&amp;#8221;. &amp;#8230; They essentially save all files and call &lt;code&gt;rsync - au&lt;/code&gt; on your directory in different directions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;For environments where you &lt;em&gt;can&amp;#8217;t test locally&lt;/em&gt; and &lt;em&gt;share a single testing server&lt;/em&gt; with other developers.&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Subversion Repository
	&lt;ul&gt;
		&lt;li&gt;Trunk&lt;/li&gt;
		&lt;li&gt;Stable&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Development:
	&lt;ol&gt;
		&lt;li&gt;Local working copy&lt;/li&gt;
		&lt;li&gt;Edit local working copy&lt;/li&gt;
		&lt;li&gt;-Can&amp;#8217;t test before committing-&lt;/li&gt;
		&lt;li&gt;Commit from local working copy&lt;/li&gt;
		&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt; update testing server and test&lt;/strong&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Deploy:
	&lt;ol&gt;
		&lt;li&gt;Merge trunk to stable&lt;/li&gt;
		&lt;li&gt;Deploy stable to testing server for final test&lt;/li&gt;
		&lt;li&gt;Deploy stable to production&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;&lt;ins&gt;&lt;em&gt;This is a horrible way to have to work!&lt;/em&gt;&lt;/ins&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With this workflow you have to commit extremely minor changes before you can even test them.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a &lt;strong&gt;massive waste of time&lt;/strong&gt; to commit every single minor change before you can even test it.&lt;br /&gt;
But if you &lt;em&gt;don&amp;#8217;t have your own dedicated testing environment&lt;/em&gt; &lt;br /&gt;
then you just have to &lt;strong&gt;commit all changes before you can test them.&lt;/strong&gt; &lt;ins&gt;Avoid this setup!&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;Personally, I&amp;#8217;d really rather not work on a project unless I can test all my changes quickly and easily. My time and my Clients money is valuable.&lt;/p&gt;
&lt;p&gt;In the past, I have worked remotely on projects that &lt;em&gt;couldn&amp;#8217;t&lt;/em&gt; be tested locally, but I had my own dedicated testing environment on the staging server. I would prefer not to have to ever do that again. Uploading changes before you can test them is just &lt;strong&gt;hideously slow&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I will make extremely minor changes remotely if the cost of setting up the local environment is higher than the potential that making a bad edit will trash the production server. But, usually those changes are just &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;, JavaScript and &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;&lt;/strong&gt;. And all that stuff is &lt;em&gt;really easy to test before committing&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;The &lt;a href=&quot;https://crazyegg.com&quot;&gt;CrazyEgg&lt;/a&gt; Development Environment&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Both developers work remotely.
	&lt;ul&gt;
		&lt;li&gt;I live in North Carolina&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://likealightbulb.com/&quot; title=&quot;John butler&quot;&gt;Our Butler&lt;/a&gt; lives in Oregon&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://acsseo.com/&quot;&gt;Hiten and Neil from &lt;span class=&quot;caps&quot;&gt;ACS&lt;/span&gt;&lt;/a&gt; live in California&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;This is all Rails stuff with some secret sauce.&lt;/li&gt;
	&lt;li&gt;We use &lt;a href=&quot;https://manuals.rubyonrails.com/read/book/17&quot;&gt;Capistrano&lt;/a&gt; to deploy.&lt;/li&gt;
	&lt;li&gt;We have a bunch of custom scripts and stuff &lt;br /&gt;&lt;br /&gt;
to check server status and stuff like that.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
	&lt;li&gt;Local developers each have a &lt;strong&gt;complete local testing environment&lt;/strong&gt;.&lt;/li&gt;
	&lt;li&gt;We make changes locally, test locally and commit changes to the trunk branch of our subversion.&lt;/li&gt;
	&lt;li&gt;When we have made all of the changes necessary to make a deploy,&lt;br /&gt;&lt;br /&gt;
 we then merge trunk to stable and deploy to our staging server.&lt;/li&gt;
	&lt;li&gt;We test the changes on the staging server &lt;br /&gt;&lt;br /&gt;
and then make any changes necessary and commit to stable.&lt;/li&gt;
	&lt;li&gt;We then deploy the stable checkout to our production servers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quick bug fixes are handled on the stable branch. This helps keep the unstable feature development and the quick fix development as separate workflows.&lt;/p&gt;
&lt;p&gt;I do occasionally skip the whole staging and deploying thing for very small changes that don&amp;#8217;t require a full deploy or restarting any processes or anything. Mostly just &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; and JavaScript changes. Then you can just scp them to production and restart your processes if necessary.&lt;/p&gt;
&lt;p&gt;John Butler created a system that allows us to deploy without having to shut down the system now, so that helps.&lt;/p&gt;
&lt;h3&gt;The &lt;a href=&quot;https://www.deviantart.com/deviation/9110166/&quot;&gt;sixteenColors&lt;/a&gt; Development Environment&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Developers have local testing environments&lt;/li&gt;
	&lt;li&gt;When we make enough good changes we&lt;/li&gt;
	&lt;li&gt;commit to trunk from our local and&lt;/li&gt;
	&lt;li&gt;deploy trunk to production
	&lt;ul&gt;
		&lt;li&gt;using &lt;a href=&quot;https://manuals.rubyonrails.com/read/book/17&quot;&gt;Capistrano&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the secret alpha version I&amp;#8217;m talking about. The current version of the website was developed by lordscarlet a long time ago in &lt;span class=&quot;caps&quot;&gt;ASP&lt;/span&gt;.&lt;span class=&quot;caps&quot;&gt;NET&lt;/span&gt;. The alpha is juts a super-tiny webapp at the moment. There&amp;#8217;s no need to waste the few hours a month we have to work on it with a verbose and tedious workflow.&lt;/p&gt;
&lt;h3&gt;My old offsite &lt;a href=&quot;https://totalTrak.net&quot;&gt;totalTrak.net&lt;/a&gt; Development Environment&lt;/h3&gt;
&lt;p&gt;Since this is an &lt;span class=&quot;caps&quot;&gt;ASP&lt;/span&gt;.&lt;span class=&quot;caps&quot;&gt;NET&lt;/span&gt; application and I was developing it on a &lt;span class=&quot;caps&quot;&gt;PPC&lt;/span&gt; PowerBook, &lt;br /&gt;
I had no easy way to setup a local testing server. I was also the &lt;em&gt;only person&lt;/em&gt; working on the project.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;I had a local mirror of production
	&lt;ul&gt;
		&lt;li&gt;A checkout of the trunk working copy
		&lt;ul&gt;
			&lt;li&gt;You should &lt;strong&gt;always&lt;/strong&gt; have separate stable and trunk branches.&lt;/li&gt;
			&lt;li&gt;I didn&amp;#8217;t bother with it on this project since the app was extremely stable (therefore no need to make quick patches on stable) and I was the only developer working on it. &lt;br /&gt;&lt;br /&gt;
Excuses excuses&amp;#8230;&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;All changes made locally&lt;/li&gt;
	&lt;li&gt;Tested &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;, &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; &amp;amp; JavaScript locally&lt;/li&gt;
	&lt;li&gt;Tested T-&lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; in TextMate locally
	&lt;ul&gt;
		&lt;li&gt;I hacked together a crazy system to connect to their &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; Server
		&lt;ul&gt;
			&lt;li&gt;It involved some crazy unixy shell stuff with an &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; Tunnel to their &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; Server ports via their MacMini blog server&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Upload the changes to the testing server for testing
	&lt;ul&gt;
		&lt;li&gt;I used &lt;a href=&quot;https://www.panic.com/transmit/&quot;&gt;Transmit&lt;/a&gt; to manage the mirroring.&lt;/li&gt;
		&lt;li&gt;I also used the TextMate Transmit bundle to upload files from my working copy to the testing server&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Commit changes from local&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt; update testing server for final test before deploy
	&lt;ul&gt;
		&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; tunneling to mount their &lt;span class=&quot;caps&quot;&gt;SMB&lt;/span&gt; shares locally
		&lt;ul&gt;
			&lt;li&gt;This was slow, but it worked for subversion operations.&lt;/li&gt;
			&lt;li&gt;TextMate totally chokes on a mounted share normally, &lt;br /&gt;&lt;br /&gt;
but over an &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; tunnel? &lt;strong&gt;Way&lt;/strong&gt; too slow.&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt; update production via &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt;
	&lt;ul&gt;
		&lt;li&gt;We made sure that the .svn folders weren&amp;#8217;t served.&lt;/li&gt;
		&lt;li&gt;Normally, you should always make your production server use a checkout rather than a working copy.
		&lt;ul&gt;
			&lt;li&gt;This was all very pre-Capistrano&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;My really old &lt;em&gt;onsite&lt;/em&gt; Development Environment&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Local machine had no project files&lt;/li&gt;
	&lt;li&gt;Shared development server
	&lt;ul&gt;
		&lt;li&gt;Each developer had a separate set of working files &lt;br /&gt;&lt;br /&gt;
on a single shared development box&lt;/li&gt;
		&lt;li&gt;We all shared a single development &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; Server
		&lt;ul&gt;
			&lt;li&gt;We occasionally made duplicates of tables to test out some crazy operations.&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;I made changes to the files over a &lt;span class=&quot;caps&quot;&gt;SMB&lt;/span&gt; share&lt;/li&gt;
	&lt;li&gt;I committed changes to trunk from the share&lt;/li&gt;
	&lt;li&gt;deployed by svn upping the production working copy&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Way way &lt;em&gt;way &lt;ins&gt;way&lt;/ins&gt;&lt;/em&gt; back in the day&amp;#8230;&lt;/h3&gt;
&lt;p&gt;Back in the dark Dreamweaver days&lt;br /&gt;&lt;br /&gt;
before I discovered subversion.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;We all shared a single development server&lt;/li&gt;
	&lt;li&gt;We made changes to the files over a &lt;span class=&quot;caps&quot;&gt;SMB&lt;/span&gt; share&lt;/li&gt;
	&lt;li&gt;We then deployed by replacing the files on production with the development files&lt;/li&gt;
	&lt;li&gt;Then we franticly checked everything to make sure it all still worked&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I sure am glad we have some better workflows today. &lt;em&gt;Yeesh&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;What is your workflow?&lt;/h3&gt;
&lt;p&gt;How do you guys work? What kind of development do you do? There are LaTeX guys and Ruby guys and &lt;span class=&quot;caps&quot;&gt;ASP&lt;/span&gt; guys out there. What kinds of workflows are standard for your environments? Will you put up with having to upload to a testing server to test every single minor change? Or do you demand to have a local development environment that is just like your production environment?&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Creative Suite 3 Announcement video</title>
		<link href="https://subtlegradient.com/articles/articles/2007/03/27/creative-suite-3-announcement-video.html.html" />
		<updated>2007-03-27T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/03/27/creative-suite-3-announcement-video.html</id>
		<content type="html">&lt;embed src=&quot;https://adobe.permissiontv.com/ptvweb_loader.swf?appprefix=https://adobe.permissiontv.com/&amp;gui=embedded&quot; allowScriptAccess=&quot;always&quot; quality=&quot;high&quot; allowFullScreen=&quot;true&quot; pluginspage=&quot;https://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;475&quot; height=&quot;325&quot;&gt;&lt;/embed&gt;</content>
	</entry>
	
	<entry>
		<title>Happiness is a choice</title>
		<link href="https://subtlegradient.com/articles/articles/2007/03/21/happiness-is-a-choice.html.html" />
		<updated>2007-03-21T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/03/21/happiness-is-a-choice.html</id>
		<content type="html">&lt;p&gt;This guy proves that life is what you make of it.&lt;/p&gt;
&lt;p&gt;Happiness is a choice, not a condition.&lt;/p&gt;
&lt;p&gt;You have no control over what life does to you, but you do have a choice about what you bring to the table.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.thewendysguy.com/thewendysguy2.html&quot;&gt;Junior! The Wendy&amp;#8217;s Guy&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Best gift for a dad, evar!</title>
		<link href="https://subtlegradient.com/articles/articles/2007/03/14/best-gift-for-a-dad-evar.html.html" />
		<updated>2007-03-14T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/03/14/best-gift-for-a-dad-evar.html</id>
		<content type="html">&lt;p&gt;John, the lead developer of CrazyEgg just got his dad a seriously stinking awesome car!&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;https://www.youtube.com/v/tR-iDNsq388&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;https://www.youtube.com/v/tR-iDNsq388&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;I wish I had a clue what he was talking about with the hood up though, I&amp;#8217;d probly be even more impressed.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Slow down?! Yes!</title>
		<link href="https://subtlegradient.com/articles/articles/2007/03/13/slow-down-yes.html.html" />
		<updated>2007-03-13T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2007/03/13/slow-down-yes.html</id>
		<content type="html">&lt;p&gt;This &lt;span class=&quot;caps&quot;&gt;TED&lt;/span&gt; talk is all about slowing down. Returning to the normal human pace of life in order to be more productive and enjoy life.&lt;/p&gt;
&lt;p&gt;This fast-paced society we live in isn&amp;#8217;t going to last much longer. We should enjoy our lives or else what&amp;#8217;s the point of living them?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ted.com/tedtalks/tedtalksplayer.cfm?key=c_honore&quot;&gt;https://www.ted.com/tedtalks/tedtalksplayer.cfm?key=c_honore&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>New TextMate WebPreview Window</title>
		<link href="https://subtlegradient.com/articles/articles/2006/11/15/new-textmate-webpreview-window.html.html" />
		<updated>2006-11-15T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/11/15/new-textmate-webpreview-window.html</id>
		<content type="html">
&lt;h2&gt;&lt;em&gt;(with Hacked Nibs)&lt;/em&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/thomas_aylott/298122622/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/102/298122622_2718cb3d56.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/Hacked%20Nibs!/TextMate%20UNO.zip&quot;&gt;Download the New TextMate WebPreview Window Nibs&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;I got rid of the drawer and moved all that stuff to the bottom.&lt;/p&gt;
&lt;p&gt;Now it looks mildly less offensive.&lt;/p&gt;

</content>
	</entry>
	
	<entry>
		<title>Filename / Filepath Completion for TextMate ScreenCast</title>
		<link href="https://subtlegradient.com/articles/articles/2006/11/02/filename-filepath-completion-for-textmate-screencast.html.html" />
		<updated>2006-11-02T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/11/02/filename-filepath-completion-for-textmate-screencast.html</id>
		<content type="html">
&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/stuff/TextMate%20Screencast%20-%20subtleGradient%20Filename%20completion%20command.mov&quot; title=&quot;TextMate Screencast - subtleGradient Filename / Filepath Completion&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/stuff/TextMate-Screencast---subtl.gif&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Part of the official TextMate Experimental Bundle&lt;br /&gt;
(at the moment)&lt;/h2&gt;

&lt;p&gt;Filename / Filepath completion.&lt;/p&gt;
&lt;p&gt;If figures out where your cursor is and if you&amp;rsquo;re in the middle of typng a filename or path and does an &lt;tt&gt;ls&lt;/tt&gt;. Then pops up a menu to choose the filename you want.&lt;/p&gt;
&lt;p&gt;Just watch the screencast&lt;/p&gt;

</content>
	</entry>
	
	<entry>
		<title>English Word Completion for TextMate ScreenCast</title>
		<link href="https://subtlegradient.com/articles/articles/2006/10/30/english-word-completion-for-textmate-screencast.html.html" />
		<updated>2006-10-30T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/10/30/english-word-completion-for-textmate-screencast.html</id>
		<content type="html">
&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/stuff/TextMate%20Screencast%20-%20subtleGradient%20English%20Word%20Completion.mov&quot; title=&quot;TextMate Screencast - subtleGradient English Word Completion&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/stuff/textmate_screencast___subtl.gif&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/Bundles/tAylott_subtleGradient_BETA.tmbundle/Commands/English%20Word%20Completion.tmCommand&quot;&gt;Download the English Word Completion TextMate Command&lt;/a&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/Bundles/tAylott_subtleGradient.zip&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/zipicon.gif&quot; style=&quot;vertical-align: middle;background:none !important;margin:0 !important; border:none !important;&quot; alt=&quot;&quot; /&gt;Download the entire subtleGradient bundle&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;English word completion.&lt;/p&gt;
&lt;p&gt;Basically just a modified version of &lt;a href=&quot;https://pastie.textmate.org/20239&quot;&gt;Allan’s pastie version&lt;/a&gt; from the TextMate release notes.&lt;/p&gt;
&lt;p&gt;It’s pretty basic, but it keeps the completed part selected after you insert it so that you can use it a bunch of times in a row with the same results.&lt;/p&gt;
&lt;p&gt;Just watch the screencast&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Updated&lt;/strong&gt;: Now the link actually goes to something!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Updated Again!&lt;/strong&gt;: Now the zipped bundles aren't broken!&lt;/em&gt;&lt;/p&gt;

</content>
	</entry>
	
	<entry>
		<title>Attack of the StandAlone Internet Explorers!</title>
		<link href="https://subtlegradient.com/articles/articles/2006/10/25/attack-of-the-standalone-internet-explorers.html.html" />
		<updated>2006-10-25T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/10/25/attack-of-the-standalone-internet-explorers.html</id>
		<content type="html">
&lt;p&gt;Oh boy, &lt;a href=&quot;https://blogs.msdn.com/ie/archive/2006/10/18/internet-explorer-7-for-windows-xp-available-now.aspx&quot;&gt;Internet Explorer 7 has been officially unleashed&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We still have a bit of time before it's a &lt;a href=&quot;https://blogs.msdn.com/ie/archive/2006/07/26/678149.aspx&quot; title=&quot;IEBlog : IE7 to be distributed via Automatic Updates!&quot;&gt;virtually mandatory upgrade&lt;/a&gt; for everyone.&lt;/p&gt;

&lt;p&gt;This is all really old news at this point.&lt;/p&gt;

&lt;p&gt;Anyway, I just came across an easy way to set up Internet Explorer 7 as a standalone browser.
You'll need to do that if you still want to  have the ability to use Internet Explorer 6. &lt;em&gt; Or need to, because who would &lt;strong&gt;want&lt;/strong&gt; to?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It turns out that they also have a nice installer for getting Internet Explorers 3 thru 6 installed as standalone browsers.
With fully functioning conditional comments support and the version number in the title bars.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://tredosoft.com/IE7_standalone&quot;&gt;Internet Explorer 7 Standalone Installation Instructions &lt;em&gt;by Tredosoft&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://tredosoft.com/Multiple_IE&quot;&gt;Internet Explorers 3 thru 6 Standalone Installer &lt;em&gt;by Tredosoft&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You wouldn't believe how many people with money still use Internet Explorer 5 :-o&lt;/p&gt;

&lt;h2&gt;Great Browser &lt;del&gt;in&lt;/del&gt;Compatability Testing Batman!&lt;/h2&gt;


</content>
	</entry>
	
	<entry>
		<title>Announcing CrazyEgg 1.0</title>
		<link href="https://subtlegradient.com/articles/articles/2006/08/23/announcing-crazyegg-1-0.html.html" />
		<updated>2006-08-23T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/08/23/announcing-crazyegg-1-0.html</id>
		<content type="html">&lt;p style=&quot;float:right;&quot;&gt;&lt;a href=&quot;https://crazyegg.com&quot;&gt;&lt;img src=&quot;https://crazyegg.com/images/logo.gif&quot; class=&quot;zipicon&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the secret-ish project I&amp;#8217;ve been working on for quite a while now.&lt;/p&gt;
&lt;p&gt;As you can see from the &lt;a href=&quot;https://crazyegg.com/about&quot;&gt;CrazyEgg about page&lt;/a&gt;, the original prototype was developed by John Carlin. After that there have only been two developers. Me and &lt;a href=&quot;https://www.likealightbulb.com/&quot;&gt;John Butler&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I must say, John Butler is about the greatest developer I&amp;#8217;ve ever met.&lt;br /&gt;
But, I managed to get a lot of good stuff into CrazyEgg too. &lt;strong&gt;;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Basically it tracks how people use your website and then you can view reports about it.&lt;/p&gt;
&lt;h4&gt;Go check out the &lt;a href=&quot;https://crazyegg.com/demo/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;DEMO&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Specific reporting features are currently:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;a href=&quot;https://crazyegg.com/images/overlay.jpg&quot;&gt;Overlay mode&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;Overlay mode shows little markers, panels and outlines next to every clicked thing with the number of clicks and the percentage of total clicks that represents.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://crazyegg.com/images/list.jpg&quot;&gt;List mode&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;List mode show a list of clicked items, whether they could be found in the report or not. Align with the number of clicks, percentage and type of element.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://crazyegg.com/images/heatmap.jpg&quot;&gt;Heatmap mode&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;Heatmap mode shows an overlay on top of your page with hot spots for where people clicked.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yes, those screenshots are from &lt;a href=&quot;https://wordpress.com/&quot;&gt;WordPress.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have a whole bunch of stuff up our sleeves. If you have any ideas of what you&amp;#8217;d want us to add, post a comment.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://crazyegg.com&quot;&gt;&lt;img src=&quot;https://crazyegg.com/images/thumb-heatmap.gif&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://crazyegg.com&quot;&gt;&lt;img src=&quot;https://crazyegg.com/images/thumb-overlay.gif&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Welp, back to working on the crazy updates. &lt;strong&gt;:D&lt;/strong&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Grid Overlay Bookmarklet</title>
		<link href="https://subtlegradient.com/articles/articles/2006/07/27/grid-overlay-bookmarklet.html.html" />
		<updated>2006-07-27T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/07/27/grid-overlay-bookmarklet.html</id>
		<content type="html">
&lt;p&gt;Just a quick note to share my version of &lt;a href=&quot;https://www.andybudd.com/archives/2006/07/layout_grid_bookmarklet/&quot;&gt;Andy Budd&amp;rsquo;s Layout Grid Bookmarklet&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png)%20repeat%20top%20center%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}&quot;&gt;Grid Translucent Centered&lt;/a&gt;&lt;/h2&gt;

&lt;h2&gt;&lt;a href=&quot;javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png)%20repeat%20top%20left%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}&quot;&gt;Grid Translucent&lt;/a&gt; Left-Aligned&lt;/h2&gt;

&lt;p&gt;This version uses a translucent png.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Share and enjoy!&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; New scripts for all browsers. Now you can also click the grid on the page to remove it.&lt;/p&gt;


&lt;p&gt;Just a quick note to share my version of &lt;a href=&quot;https://www.andybudd.com/archives/2006/07/layout_grid_bookmarklet/&quot;&gt;Andy Budd&amp;rsquo;s Layout Grid Bookmarklet&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png)%20repeat%20top%20center%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}&quot;&gt;Grid Translucent Centered&lt;/a&gt;&lt;/h2&gt;

&lt;h2&gt;&lt;a href=&quot;javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png)%20repeat%20top%20left%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27https://trippledoubleyou.subtlegradient.com/tools/layoutgrid-centered_translucent.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}&quot;&gt;Grid Translucent&lt;/a&gt; Left-Aligned&lt;/h2&gt;

&lt;p&gt;This version uses a translucent png.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Share and enjoy!&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; New scripts for all browsers. Now you can also click the grid on the page to remove it.&lt;/p&gt;

</content>
	</entry>
	
	<entry>
		<title>Growl Notifications for iCal (Tiger only)</title>
		<link href="https://subtlegradient.com/articles/articles/2006/07/21/growl-notifications-for-ical-how-to.html.html" />
		<updated>2006-07-21T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/07/21/growl-notifications-for-ical-how-to.html</id>
		<content type="html">&lt;h2&gt;This only works in Mac OS X Tiger 10.4&lt;/h2&gt;
&lt;p&gt;&lt;ins&gt;I&amp;#8217;m still working on an updated version for Leopard.&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://images.apple.com/macosx/features/ical/images/indextop20050412.jpg&quot; class=&quot;zipicon&quot; style=&quot;float:right; padding: 2em; padding-right:0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I love iCal, but I really hate the &lt;a href=&quot;https://images.apple.com/lae/ical/images/index_alarm12312002.jpg&quot; title=&quot;This thing has it&amp;amp;#8217;s place&amp;lt;br /&amp;gt;&lt;br /&gt;
but not in my face&quot;&gt;giant reminder panel&lt;/a&gt; stealing focus and getting in the way. &lt;em&gt;Ewww.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I love &lt;a href=&quot;https://growl.info/&quot;&gt;Growl&lt;/a&gt;. There was an obvious need for a way to do iCal Growl notifications.&lt;/p&gt;
&lt;p&gt;iCal has a nice feature where you can run an applescript using the &lt;em&gt;Open File&amp;#8230;&lt;/em&gt; feature in the alarm thing. The problem with this is that it doesn&amp;#8217;t send any applescript variables to the script. So you would have to either do a generic alert for every reminder or have a separate script for each reminder. This is not hip, nor &lt;acronym title=&quot;Don&amp;#39;t Repeat Yourself! Seriously, don&amp;#39;t do it. Think of the Children!&quot;&gt;&lt;span class=&quot;caps&quot;&gt;DRY&lt;/span&gt;&lt;/acronym&gt;.&lt;/p&gt;
&lt;p&gt;I went searching for a solution to this and came across the article &lt;a href=&quot;https://origa.me.uk/blog/?p=6&quot;&gt;iCal and Growl @ Origa.me.uk&lt;/a&gt; where he shows you how to hack the internal applescript file that handles sending an Email on an alarm. This is totally awesome! You get access to all of the variables and can do the Growl. The only problem with his method is that it removes your ability to ever send another Email Alarm again.&lt;/p&gt;
&lt;p&gt;I took his idea and added a simple &lt;code&gt;if&lt;/code&gt; filter to the applescript. It works by checking for the email address &amp;#8220;Growl&amp;#8221;. If it sees that address then it does a Growl thinggy, otherwise it does the email like normal.&lt;/p&gt;
&lt;h3&gt;Download the Scripts&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/AppleScript/Applications/iCal/Growl%20iCal%20Alarms.dmg&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/zipicon.gif&quot; class=&quot;zipicon&quot; /&gt; iCal Mail Script (with Growl Support)&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;How to Install &amp;amp; Use&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;Add the email address &lt;em&gt;&amp;#8220;Growl&amp;#8221;&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;
to your personal Address Book entry.
	&lt;ul&gt;
		&lt;li&gt;&lt;em&gt;(Mark it as secret if you have that feature enabled.)&lt;/em&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Copy &lt;code&gt;Mail.scpt&lt;/code&gt; into the iCal resources.&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;code&gt;/Applications/iCal.app/Contents/Resources/&lt;/code&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Copy &lt;code&gt;Mail.scpt&lt;/code&gt; into the iCalHelper resources.&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;code&gt;/Applications/iCal.app/Contents/Resources/iCal Helper.app/Contents/Resources/&lt;/code&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Quit iCal&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;You should &lt;strong&gt;Quit iCalAlarmScheduler&lt;/strong&gt; too,&lt;/li&gt;
		&lt;li&gt;or you can log out and back in.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Make a new iCal Event&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Make a new Email Alarm&lt;/strong&gt; on that event
	&lt;ol&gt;
		&lt;li&gt;&lt;strong&gt;Set the email address to &amp;#8220;Growl&amp;#8221;&lt;/strong&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
	&lt;li&gt;Bask in the awesome iCal Growl Alarm goodness!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Here is the actual code:&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
on send_mail_sbr(subjectLine, messageText, myrecipient)
	if myrecipient = &quot;Growl&quot; then
		send_mail_sbr_GROWL(subjectLine, messageText, myrecipient)
	else
		send_mail_sbr_EMAIL(subjectLine, messageText, myrecipient)
	end if
end send_mail_sbr

on send_mail_sbr_EMAIL(subjectLine, messageText, myrecipient)
	tell application &quot;Mail&quot;
		set mymail to (make new outgoing message at the beginning of outgoing messages with properties {subject:subjectLine, content:messageText})
		tell mymail to make new to recipient at beginning of to recipients with properties {address:myrecipient}
		send mymail
	end tell
end send_mail_sbr_EMAIL

on send_mail_sbr_GROWL(subjectLine, messageText, myrecipient)
	tell application &quot;GrowlHelperApp&quot;
		set theName to &quot;New Event&quot;
		set theAppName to &quot;Custom iCal Notifications&quot;
		set the allNotificationsList to {theName}
		set the enabledNotificationsList to {theName}

		register as application theAppName ¬
			all notifications allNotificationsList ¬
			default notifications enabledNotificationsList ¬
			icon of application &quot;iCal&quot;
		notify with name theName ¬
			title subjectLine ¬
			description messageText ¬
			application name theAppName ¬
			with sticky
	end tell
end send_mail_sbr_GROWL
&lt;/code&gt;&lt;/pre&gt;</content>
	</entry>
	
	<entry>
		<title>TextMate JavaScript Prototype &amp; Script.aculo.us</title>
		<link href="https://subtlegradient.com/articles/articles/2006/07/17/textmate-javascript-prototype-script-aculo-us.html.html" />
		<updated>2006-07-17T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/07/17/textmate-javascript-prototype-script-aculo-us.html</id>
		<content type="html">&lt;p&gt;Howdy. I&amp;#8217;ve just been fiddling around with the official Subversion and JavaScript bundles.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/thomas_aylott/191739927/&quot; title=&quot;Prototype &amp;amp; Script.aculo.us TextMate screenshot&quot; style=&quot;float:right&quot;&gt;&lt;img src=&quot;https://static.flickr.com/71/191739927_90bcc9badc_o.png&quot; width=&quot;453&quot; height=&quot;291&quot; alt=&quot;Prototype &amp;amp; Script.aculo.us.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Prototype, Script.aculo.us &amp;amp; JavaScript&lt;/h3&gt;
&lt;p&gt;I just added a new bundle for &lt;a href=&quot;https://macromates.com/svn/Bundles/trunk/Bundles/JavaScript%20Prototype%20&amp;amp;%20Script_aculo_us.tmbundle/&quot;&gt;Prototype &amp;amp; Script.aculo.us&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The original bundle was created by Justin Palmer in the &lt;a href=&quot;https://encytemedia.com/blog/articles/2006/01/03/textmate-vibrant-ink-theme-and-prototype-bundle&quot;&gt;Textmate Vibrant Ink Theme and Prototype Bundle&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Martin Str&amp;ouml;m added a bunch of handy snippets in his &lt;a href=&quot;https://burnfield.com/martin/2006/07/14/textmate-prototype-scriptaculus-bundle/&quot;&gt;TextMate Prototype &amp;amp; Scriptaculous Bundle&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;For the longest time I&amp;#8217;ve had my &lt;em&gt;Javascript Extras Bundle&lt;/em&gt; in &lt;a href=&quot;https://textmate.svn.subtlegradient.com/&quot;&gt;my personal Svn Repo&lt;/a&gt;, where I&amp;#8217;ve had a great hodgepodge or random carp.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since Martin announced his new bundle in the TextMate Mailing List I&amp;#8217;ve decided that it&amp;#8217;s time our stuff is used by the masses &lt;em&gt;(whether they like it or not)&lt;/em&gt;. The new &lt;a href=&quot;https://macromates.com/svn/Bundles/trunk/Bundles/JavaScript%20Prototype%20&amp;amp;%20Script_aculo_us.tmbundle/&quot;&gt;Prototype &amp;amp; Script.aculo.us&lt;/a&gt; is in the official TextMate subversion repository.&lt;/p&gt;
&lt;h3&gt;How to get it?&lt;/h3&gt;
&lt;p&gt;You&amp;#8217;ll have to check out the latest version of the &lt;a href=&quot;https://macromates.com/svn/Bundles/trunk/Bundles/JavaScript.tmbundle/&quot;&gt;Javascript bundle&lt;/a&gt;, Then you need to checkout the &lt;a href=&quot;https://macromates.com/svn/Bundles/trunk/Bundles/JavaScript%20Prototype%20&amp;amp;%20Script_aculo_us.tmbundle/&quot;&gt;Prototype &amp;amp; Script.aculo.us bundle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;-Or just &lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/zipicon.gif&quot; class=&quot;zipicon&quot; /&gt;download a zip of them all here&lt;/a&gt;- &lt;ins&gt;disabled this download since it&amp;#8217;s like &lt;em&gt;way&lt;/em&gt; old&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;-That zip contains subversion checkouts of each bundle. All you have to do to keep them up to date is run &lt;code&gt;svn up *&lt;/code&gt; on them.-&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s it got?&lt;/h3&gt;
&lt;h4&gt;Snippets galore&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Martin Str&amp;ouml;m&lt;/em&gt; created about 72 snippets:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Ajax.PeriodicalUpdater&lt;/li&gt;
	&lt;li&gt;Enum.each&lt;/li&gt;
	&lt;li&gt;Event.observe&lt;/li&gt;
	&lt;li&gt;Field.…&lt;/li&gt;
	&lt;li&gt;Form.…&lt;/li&gt;
	&lt;li&gt;Effects.…&lt;/li&gt;
	&lt;li&gt;Position.…&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;etc&lt;/strong&gt;, &lt;em&gt;etc&lt;/em&gt;, etc…&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;JavaScript Language Syntax&lt;/h4&gt;
&lt;p&gt;There were some things that I had in the language syntaxes that were more generic and should be put in the main JavaScript language. So i did that. I also put in a better indent pattern preference.&lt;/p&gt;
&lt;h4&gt;Prototype &amp;amp; Script.aculo.us Language Syntax&lt;/h4&gt;
&lt;p&gt;The language syntax was originally created by &lt;em&gt;Justin Palmer&lt;/em&gt;. &lt;em&gt;Martin Str&amp;ouml;m&lt;/em&gt; added some &lt;a href=&quot;https://www.joehewitt.com/software/firebug/&quot; title=&quot;FireBug Javascript Debugger Extension for FireFox&quot;&gt;FireBug&lt;/a&gt; keywords and some other stuff to the language. I,&amp;nbsp;&lt;em&gt;Thomas Aylott&lt;/em&gt; added support for:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;class.instance.constructor&lt;/li&gt;
	&lt;li&gt;string based property.function&amp;#8217;s&lt;/li&gt;
	&lt;li&gt;a way to guess what is a regular variable&lt;/li&gt;
	&lt;li&gt;Much better Symbol list support for &lt;span class=&quot;caps&quot;&gt;OOP&lt;/span&gt; style javascript.&lt;/li&gt;
	&lt;li&gt;other random tweaks &amp;amp; carp&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Bracketed Language Syntax&lt;/h4&gt;
&lt;p&gt;This is a wrapper for the main Prototype &amp;amp; Script.aculo.us language.&lt;br /&gt;
It has nested scopes for round, curly &amp;amp; square brackets. It also has a special curly bracket scope for JavaScript functions.&lt;br /&gt;
I also updated my &lt;a href=&quot;https://macromates.com/svn/Bundles/trunk/Themes/Brilliance%20Black.tmTheme&quot; title=&quot;In the official TextMate themes&quot;&gt;Brilliance Black theme&lt;/a&gt; to fully support these crazy new scopes.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Curly&lt;/strong&gt; brackets, groups and delimiters&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Round&lt;/strong&gt; brackets, groups and delimiters&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Square&lt;/strong&gt; brackets, groups and delimiters&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Curly Function&lt;/strong&gt; brackets, groups and delimiters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The bracketed wrapper is really meant to be for Javascript what the &lt;span class=&quot;caps&quot;&gt;XHTML&lt;/span&gt; strict syntax is for xhtml.&lt;br /&gt;
The idea is that it should better understand the larger parts of the language.&lt;br /&gt;
The first useful upshot of all that is the fancy coloring possibilities that it allows.&lt;br /&gt;
But you could use the scopes to make function block specific snippets or what-have-you.&lt;/p&gt;
&lt;p&gt;The reason I don&amp;#8217;t just use it for prototype or javascript itself is that it reduces parsing performance on large and complex scripts (like the prototype library).&lt;br /&gt;
Other than that, it doesn&amp;#8217;t hurt anything.&lt;/p&gt;
&lt;p&gt;Maybe I should move it into Experimental?&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s way more to be said for collaboration and sharing and how wonderful and great it all is, but everyone stopped reading half way through so there&amp;#8217;s not much point in me continuing on about it ;)&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Balance Jr 2.5 for TextMate</title>
		<link href="https://subtlegradient.com/articles/articles/2006/05/12/balance-jr-2-5-for-textmate.html.html" />
		<updated>2006-05-12T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/05/12/balance-jr-2-5-for-textmate.html</id>
		<content type="html">
&lt;h2&gt;&lt;span title=&quot;Balance Jr 2.5&quot;&gt;&amp;#x32B7; Balance Jr&lt;sup&gt;2.5&lt;/sup&gt; &amp;#x261B;&lt;/span&gt;&lt;/h2&gt;

&lt;h3&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/Bundles/tAylott_subtleGradient.zip&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/zipicon.gif&quot; style=&quot;vertical-align: middle;background:none !important;margin:0 !important; border:none !important;&quot; alt=&quot;&quot; /&gt;tAylott_subtleGradient.tmbundle.zip&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Or as always, you can grab all my stuff from my subversion repository. &lt;a href=&quot;https://textmate.svn.subtlegradient.com/&quot;&gt;https://textmate.svn.subtlegradient.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also added are a couple commands to preview the currently selected Ruby on Rails view with Safari or inside TextMate.&lt;/p&gt;

&lt;style type=&quot;text/css&quot;&gt;
/* Stylesheet generated from TextMate theme: Brilliance Black BETA */
/* Mostly to improve view within the TextMate HTML viewer */
body {
	margin: 0;
	padding: 0;
}
pre.textmate-source {
	margin: 0;
	padding: 0;
	font-family: Consolas, monospace !important;
	font-size: 11px !important;
	line-height: 11px !important;
	white-space: pre;
}
pre.textmate-source.brilliance_black_beta {
	color: #CDCDCD;
	background-color: #000000;
}
pre.textmate-source .linenum {
    width: 75px;
    padding-right: 1em;
    color: #888;
    background-color: #eee;
}
pre.textmate-source.brilliance_black_beta ::selection {
	background-color: rgba(0, 128, 124, 0.30);
}
/*  String */
pre.textmate-source.brilliance_black_beta .string .string_interpolated .variable_parameter_misc_css, .text .string .source .string {
	color: #FFFC80;
	background-color: rgba(128, 61, 0, 0.20);
}
/*  String Literal */
pre.textmate-source.brilliance_black_beta .string_quoted_literal, .string_quoted_double_ruby_mod {
	color: #FFF800;
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String Unquoted */
pre.textmate-source.brilliance_black_beta .string_unquoted, .string_quoted_double_multiline, .meta_scope_heredoc {
	color: #FFBC80;
}
/*  String Interpolated */
pre.textmate-source.brilliance_black_beta .string_interpolated {
	color: #FFFC80;
	background-color: #1A1A1A;
}
/*  String RegEx */
pre.textmate-source.brilliance_black_beta .string_regexp {
	color: #FFF800;
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Group 1 */
pre.textmate-source.brilliance_black_beta .string_regexp_group {
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Group 2 */
pre.textmate-source.brilliance_black_beta .string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Group 3 */
pre.textmate-source.brilliance_black_beta .string_regexp_group .string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Group 4 */
pre.textmate-source.brilliance_black_beta .string_regexp_group .string_regexp_group .string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Character-Class */
pre.textmate-source.brilliance_black_beta .string_regexp_character-class {
	color: #86FF00;
	background-color: rgba(67, 128, 0, 0.20);
}
/*  String RegEx Arbitrary-Repitition */
pre.textmate-source.brilliance_black_beta .string_regexp_arbitrary-repitition {
	color: #00FFF8;
	background-color: rgba(67, 128, 0, 0.20);
}
/*  Number */
pre.textmate-source.brilliance_black_beta .constant_numeric {
	color: #C6FF00;
}
/*  Character constant */
pre.textmate-source.brilliance_black_beta .constant_character {
	color: #86FF00;
}
/*  Built-in constant */
pre.textmate-source.brilliance_black_beta .constant_language, .keyword_other_unit, .constant_java, .constant_other_unit {
	color: #07FF00;
}
/*  Built-in constant+ */
pre.textmate-source.brilliance_black_beta .constant_language_pseudo-variable {
	color: #07FF00;
	background-color: rgba(4, 128, 0, 0.20);
}
/*  User-defined constant */
pre.textmate-source.brilliance_black_beta .constant_other, .constant_block {
	color: #00FF79;
}
/*  Library constant */
pre.textmate-source.brilliance_black_beta .support_constant, .constant_name {
	color: #00FFF8;
}
/*  global pre-defined variable */
pre.textmate-source.brilliance_black_beta .variable_other_readwrite_global_pre-defined {
	color: #00FF79;
	background-color: rgba(0, 128, 124, 0.20);
}
/*  Constant Variable */
pre.textmate-source.brilliance_black_beta .variable_other_constant {
	color: #00FFF8;
}
/*  Library variable */
pre.textmate-source.brilliance_black_beta .support_other_variable {
	color: #00FFF8;
	background-color: rgba(0, 128, 124, 0.20);
}
/*  global Variable */
pre.textmate-source.brilliance_black_beta .variable_other_readwrite_global {
	color: #00807C;
	background-color: rgba(0, 67, 128, 0.20);
}
/*  Variable */
pre.textmate-source.brilliance_black_beta .variable_language, .variable_other, .variable_js {
	color: #0086FF;
}
/*  class Variable */
pre.textmate-source.brilliance_black_beta .variable_other_readwrite_class {
	color: #0086FF;
	background-color: rgba(0, 7, 255, 0.20);
}
/*  instance Variable */
pre.textmate-source.brilliance_black_beta .variable_other_readwrite_instance {
	color: #406180;
}
/*  Normal Variables */
pre.textmate-source.brilliance_black_beta .variable_other_php, .variable_other_normal {
	color: #406180;
}
/*  Storage */
pre.textmate-source.brilliance_black_beta .storage {
	color: #FF7900;
	background-color: rgba(128, 61, 0, 0.20);
}
/*  Entity Name Preprocessor */
pre.textmate-source.brilliance_black_beta .other_preprocessor, .entity_name_preprocessor {
	background-color: rgba(128, 61, 0, 0.20);
}
/*  constant.language.this.prototype.js */
pre.textmate-source.brilliance_black_beta .constant_language_this_prototype_js {
	color: #666666;
}
/*  Storage Modifier */
pre.textmate-source.brilliance_black_beta .storage_modifier {
	color: #803D00;
}
/*  Class name */
pre.textmate-source.brilliance_black_beta .entity_name_class {
	color: #FF0007;
}
/*  Class */
pre.textmate-source.brilliance_black_beta .meta_class .declaration_class, .meta_definition_class, .declaration_module {
	color: #800004;
	background-color: rgba(255, 0, 7, 0.20);
}
/*  Library class/type */
pre.textmate-source.brilliance_black_beta .support_type, .support_class {
	color: #FF0007;
	background-color: rgba(128, 0, 4, 0.20);
}
/*  Instance */
pre.textmate-source.brilliance_black_beta .entity_name_instance {
	color: #FF0007;
}
/*  Instance.constructor */
pre.textmate-source.brilliance_black_beta .meta_class_instance_constructor {
	background-color: rgba(128, 0, 67, 0.20);
}
/*  Inherited class */
pre.textmate-source.brilliance_black_beta .entity_other_inherited-class, .entity_name_module {
	color: #FF0086;
	background-color: rgba(128, 0, 4, 0.20);
}
/*  Class Method */
pre.textmate-source.brilliance_black_beta .object_property_function, .meta_definition_method {
	color: #FF0086;
}
/*  Function */
pre.textmate-source.brilliance_black_beta .meta_function, .meta_property_function, .declaration_function {
	color: #800043;
	background-color: rgba(128, 0, 67, 0.20);
}
/*  Function name */
pre.textmate-source.brilliance_black_beta .entity_name_function, .entity_name_preprocessor {
	color: #FF0086;
}
/*  Keyword */
pre.textmate-source.brilliance_black_beta .keyword {
	color: #F800FF;
}
/*  Keyword.control */
pre.textmate-source.brilliance_black_beta .keyword_control {
	color: #F800FF;
	background-color: rgba(60, 0, 128, 0.20);
}
/*  HACK keyword.control.ruby.start-block */
pre.textmate-source.brilliance_black_beta .keyword_control_ruby_start-block {
	background-color: #000000;
}
/*  Special Function */
pre.textmate-source.brilliance_black_beta .keyword_other_special-method, .meta_function-call {
	color: #7900FF;
	background-color: rgba(60, 0, 128, 0.20);
}
/*  Library function */
pre.textmate-source.brilliance_black_beta .support_function {
	color: #7900FF;
	background-color: rgba(60, 0, 128, 0.20);
}
/*  Keyword.operator (math  ) */
pre.textmate-source.brilliance_black_beta .keyword_operator, .declaration_function_operator {
	color: #6100CC;
}
/*  Function argument */
pre.textmate-source.brilliance_black_beta .variable_parameter .meta_definition_method . .meta_definition_param-list {
	color: #8083FF;
	background-color: rgba(60, 0, 128, 0.20);
}
/*  Tag Doctype */
pre.textmate-source.brilliance_black_beta .meta_doctype, .meta_tag_sgml-declaration_doctype, .meta_tag_sgml_doctype {
	color: #000000;
	background-color: #FFFFFF;
}
/*  Tag */
pre.textmate-source.brilliance_black_beta .meta_tag {
	color: #262626;
}
/*  Tag Structure */
pre.textmate-source.brilliance_black_beta .meta_tag_structure, .meta_tag_segment {
	color: #666666;
	background-color: #333333;
}
/*  Tag Block */
pre.textmate-source.brilliance_black_beta .meta_tag_block, .meta_tag_xml, .meta_tag_key {
	background-color: rgba(255, 255, 255, 0.02);
}
/*  Tag Inline */
pre.textmate-source.brilliance_black_beta .meta_tag_inline {
	color: #FF7900;
	background-color: rgba(128, 61, 0, 0.20);
}
/* meta.tag.inline source */
pre.textmate-source.brilliance_black_beta .meta_tag_inline .source {
	background-color: rgba(128, 61, 0, 0.20);
}
/*  Tag Other */
pre.textmate-source.brilliance_black_beta .meta_tag_other, .entity_name_tag_style, .source .entity_other_attribute-name ., .entity_name_tag_script, .meta_tag_block_script {
	color: #FF0007;
	background-color: rgba(128, 0, 4, 0.20);
}
/*  Tag Form */
pre.textmate-source.brilliance_black_beta .meta_tag_form, .meta_tag_block_form {
	color: #0086FF;
	background-color: rgba(0, 67, 128, 0.20);
}
/*  Tag Meta */
pre.textmate-source.brilliance_black_beta .meta_tag_meta {
	color: #F800FF;
	background-color: rgba(60, 0, 128, 0.20);
}
/*  Tag Block Head */
pre.textmate-source.brilliance_black_beta .meta_section_html_head {
	background-color: #121212;
}
/*  Tag Block Form */
pre.textmate-source.brilliance_black_beta .meta_section_html_form {
	background-color: rgba(0, 67, 128, 0.10);
}
/*  XML Tag */
pre.textmate-source.brilliance_black_beta .meta_tag_xml {
	color: #666666;
}
/*  Tag name */
pre.textmate-source.brilliance_black_beta .entity_name_tag {
	color: rgba(255, 255, 255, 0.30);
}
/*  Tag attribute */
pre.textmate-source.brilliance_black_beta .entity_other_attribute-name {
	color: rgba(255, 255, 255, 0.20);
}
/*  Tag value */
pre.textmate-source.brilliance_black_beta .meta_tag .string .text .source .text .meta_tag .string {
	color: rgba(255, 255, 255, 0.40);
}
/* M markup */
pre.textmate-source.brilliance_black_beta .markup .markup .markup_list_paragraph) {
	color: #FFF800;
	background-color: rgba(51, 51, 51, 0.20);
}
/* M HR */
pre.textmate-source.brilliance_black_beta .markup_hr {
	color: #000000;
	background-color: #FFFFFF;
}
/* M heading */
pre.textmate-source.brilliance_black_beta .markup_heading {
	color: #666666;
	background-color: rgba(51, 51, 51, 0.50);
}
/* M bold */
pre.textmate-source.brilliance_black_beta .markup_bold {
	font-weight: bold
}
/* M italic */
pre.textmate-source.brilliance_black_beta .markup_italic {
	font-style: italic;
}
/* M underline */
pre.textmate-source.brilliance_black_beta .markup_underline {
	text-decoration: underline;
}
/* M reference */
pre.textmate-source.brilliance_black_beta .meta_reference, .markup_underline_link {
	color: #0086FF;
}
/* M reference name */
pre.textmate-source.brilliance_black_beta .entity_name_reference {
	color: #00FFF8;
	background-color: rgba(0, 67, 128, 0.20);
}
/* M underline link */
pre.textmate-source.brilliance_black_beta .meta_reference_list .markup_underline_link {
	color: #00FFF8;
	text-decoration: underline;
}
/* M raw block */
pre.textmate-source.brilliance_black_beta .markup_raw_block {
	color: #999999;
	background-color: #000000;
}
/* M quote block */
pre.textmate-source.brilliance_black_beta .markup_quote {
	background-color: rgba(255, 255, 255, 0.10);
}
/*  CSS */
pre.textmate-source.brilliance_black_beta .source_css {
}
/*  Selector */
pre.textmate-source.brilliance_black_beta .meta_selector {
	color: #666666;
	background-color: rgba(0, 0, 0, 0.50);
}
/*  Attribute-Match */
pre.textmate-source.brilliance_black_beta .meta_attribute-match_css {
	color: #0007FF;
	background-color: rgba(0, 4, 128, 0.20);
}
/*  Pseudo-Class */
pre.textmate-source.brilliance_black_beta .entity_other_attribute-name_pseudo-class, .entity_other_attribute-name_tag_pseudo-class {
	color: #7900FF;
}
/*  Class */
pre.textmate-source.brilliance_black_beta .meta_selector .entity_other_attribute-name_class {
	color: #F800FF;
}
/*  ID */
pre.textmate-source.brilliance_black_beta .meta_selector .entity_other_attribute-name_id {
	color: #FF0086;
}
/*  Tag */
pre.textmate-source.brilliance_black_beta .meta_selector .entity_name_tag {
	color: #FF0007;
}
/*  Tag Wildcard */
pre.textmate-source.brilliance_black_beta .entity_name_tag_wildcard, .entity_other_attribute-name_universal {
	color: #FF7900;
}
/*  meta.property-list */
pre.textmate-source.brilliance_black_beta .meta_property-list {
	color: #333333;
}
/*  meta.property-name */
pre.textmate-source.brilliance_black_beta .meta_property-name {
	color: #999999;
}
/*  support.type.property-name */
pre.textmate-source.brilliance_black_beta .support_type_property-name {
	color: #FFFFFF;
	background-color: #000000;
}
/*  meta.property-value */
pre.textmate-source.brilliance_black_beta .meta_property-value {
	color: #999999;
	background-color: #0D0D0D;
}
/* LaTeX */
pre.textmate-source.brilliance_black_beta .text_latex {
}
/* L Markup Raw */
pre.textmate-source.brilliance_black_beta .text_latex .markup_raw {
	background-color: #000000;
}
/* L support.function */
pre.textmate-source.brilliance_black_beta .text_latex .support_function {
	color: #BC80FF;
}
/* L support.function.section */
pre.textmate-source.brilliance_black_beta .text_latex .support_function_section {
	color: rgba(255, 255, 255, 0.75);
}
/* L entity.name.section */
pre.textmate-source.brilliance_black_beta .text_latex .entity_name_section {
	color: #000000;
	background-color: #FFFFFF;
}
/* L constant.language.general */
pre.textmate-source.brilliance_black_beta .text_latex .constant_language_general {
}
/* L keyword.operator.delimiter */
pre.textmate-source.brilliance_black_beta .text_latex .keyword_operator_delimiter {
	background-color: rgba(0, 0, 0, 0.50);
}
/* L keyword.operator.brackets */
pre.textmate-source.brilliance_black_beta .text_latex .keyword_operator_brackets {
	color: #999999;
}
/* L keyword.operator.braces */
pre.textmate-source.brilliance_black_beta .text_latex .keyword_operator_braces {
	color: #666666;
}
/* L meta.footnote */
pre.textmate-source.brilliance_black_beta .meta_footnote {
	color: rgba(0, 8, 255, 0.30);
	background-color: rgba(0, 4, 128, 0.20);
}
/* L meta.label.reference */
pre.textmate-source.brilliance_black_beta .text_latex .meta_label_reference {
	background-color: rgba(255, 255, 255, 0.05);
}
/* L keyword.control.ref */
pre.textmate-source.brilliance_black_beta .text_latex .keyword_control_ref {
	color: #FF0007;
	background-color: #260001;
}
/* L variable.parameter.label.reference */
pre.textmate-source.brilliance_black_beta .text_latex .variable_parameter_label_reference {
	color: #FFBC80;
	background-color: #400002;
}
/* L keyword.control.cite */
pre.textmate-source.brilliance_black_beta .text_latex .keyword_control_cite {
	color: #FF0086;
	background-color: #260014;
}
/* L variable.parameter.cite */
pre.textmate-source.brilliance_black_beta .variable_parameter_cite {
	color: #FFBFE1;
	background-color: #400022;
}
/* L variable.parameter.label */
pre.textmate-source.brilliance_black_beta .text_latex .variable_parameter_label {
	color: rgba(255, 255, 255, 0.50);
}
/* L meta.group.braces */
pre.textmate-source.brilliance_black_beta .text_latex .meta_group_braces {
	color: rgba(51, 51, 51, 0.20);
}
/* L meta.environment.list */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list {
	color: rgba(51, 51, 51, 0.20);
	background-color: rgba(0, 0, 0, 0.50);
}
/* L meta.environment.list 2 */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
	background-color: rgba(0, 0, 0, 0.50);
}
/* L meta.environment.list 3 */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
	background-color: #000000;
}
/* L meta.environment.list 4 */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}
/* L meta.environment.list 5 */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}
/* L meta.environment.list 6 */
pre.textmate-source.brilliance_black_beta .text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}
/* L meta.end-document */
pre.textmate-source.brilliance_black_beta .text_latex .meta_end-document, .text_latex .meta_begin-document, .meta_end-document_latex .support_function, .meta_end-document_latex .variable_parameter, .meta_begin-document_latex .support_function, .meta_begin-document_latex .variable_parameter {
	color: #000000;
	background-color: #CDCDCD;
}
/*  Source */
pre.textmate-source.brilliance_black_beta .source {
}
/*  Source String Source */
pre.textmate-source.brilliance_black_beta .source .string .source {
	color: #FFFFFF;
	background-color: rgba(51, 51, 51, 0.50);
}
/*  Source String Interpolated Source */
pre.textmate-source.brilliance_black_beta .source .string_interpolated .source {
	color: #999999;
	background-color: rgba(0, 0, 0, 0.60);
}
/*  Source Embeded Source */
pre.textmate-source.brilliance_black_beta .source_java_embedded {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  Text */
pre.textmate-source.brilliance_black_beta .text {
	color: #FFFFFF;
	background-color: #0D0D0D;
}
/*  Text Source */
pre.textmate-source.brilliance_black_beta .text .source, .meta_scope_django_template {
	color: #CCCCCC;
	background-color: #000000;
}
/*  Text String Source */
pre.textmate-source.brilliance_black_beta .text .string .source {
	color: #999999;
}
/*  Text String Source String Source */
pre.textmate-source.brilliance_black_beta .text .string .source .string .source {
}
/* Syntax */
pre.textmate-source.brilliance_black_beta .meta_syntax {
	color: #333333;
}
/* Invalid */
pre.textmate-source.brilliance_black_beta .invalid {
	color: #330000;
	background-color: #FF0007;
}
/* Comment */
pre.textmate-source.brilliance_black_beta .comment {
	color: #5555FF;
	font-style: italic;
	background-color: rgba(0, 0, 255, 0.10);
	font-size: 11px !important;
	line-height: 11px !important;
}
/*  HTML Comment */
pre.textmate-source.brilliance_black_beta .text .comment_block {
	font-style: italic;
}
/* D Diff Add */
pre.textmate-source.brilliance_black_beta .markup_inserted {
	color: #40FF9A;
	background-color: #00401E;
}
/* D Diff Delete */
pre.textmate-source.brilliance_black_beta .markup_deleted {
	color: #FF40A3;
	background-color: #400021;
}
/* D Diff Changed */
pre.textmate-source.brilliance_black_beta .markup_changed {
	color: #FFFF55;
	background-color: #803D00;
}
/* text.subversion-commit meta.scope.changed-files */
pre.textmate-source.brilliance_black_beta .text_subversion-commit .meta_scope_changed-files, .text_subversion-commit .meta_scope_changed-files_svn .meta_diff_separator {
	color: #FFFFFF;
	background-color: #000000;
}
/* text.subversion-commit */
pre.textmate-source.brilliance_black_beta .text_subversion-commit {
	color: #000000;
	background-color: #FFFFFF;
}
/*  meta.source.embedded */
pre.textmate-source.brilliance_black_beta .meta_source_embedded, .entity_other_django_tagbraces {
	color: #666666;
	background-color: rgba(0, 0, 0, 0.50);
}
/*  meta.group.braces.round JS */
pre.textmate-source.brilliance_black_beta .source_js .meta_group_braces_round, .meta_scope_heredoc {
	background-color: rgba(60, 0, 128, 0.10);
}
/*  meta.group.braces 1 */
pre.textmate-source.brilliance_black_beta .meta_group_braces, .meta_block_slate ., .text_xml_strict .meta_tag, .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 2 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces, .meta_block_slate .meta_block_slate, .text_xml_strict .meta_tag .meta_tag, .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 3 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 4 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 5 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 6 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 7 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 8 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.group.braces 9 */
pre.textmate-source.brilliance_black_beta .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}
/*  meta.block.slate  */
pre.textmate-source.brilliance_black_beta .meta_block_slate {
	color: #666666;
}
/*  meta.block.content.slate  */
pre.textmate-source.brilliance_black_beta .meta_block_content_slate . {
	color: #CDCDCD;
}
	&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;&lt;pre class=&quot;textmate-source brilliance_black_beta&quot;&gt;&lt;span class='linenum'&gt;    1&lt;/span&gt; &lt;span class=&quot;source source_regexp&quot;&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(?x)&lt;/span&gt;                                           
&lt;span class='linenum'&gt;    2&lt;/span&gt; &amp;lt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;lt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;lt;/&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\1&lt;/span&gt;&amp;gt;                         &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML tags that don't contain text
&lt;/span&gt;&lt;span class='linenum'&gt;    3&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&amp;lt;%@&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;%&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\#&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;%=&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^%]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;%&amp;gt;)&lt;/span&gt;        &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# The contents of various other forms of Embedded source
&lt;/span&gt;&lt;span class='linenum'&gt;    4&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&amp;lt;%&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^%]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;%&amp;gt;)&lt;/span&gt;                        &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# The contents of Embedded source
&lt;/span&gt;&lt;span class='linenum'&gt;    5&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&amp;lt;!--&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;^-&amp;gt;&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;--&amp;gt;)&lt;/span&gt;                    &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML Comments
&lt;/span&gt;&lt;span class='linenum'&gt;    6&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;-]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;=)&lt;/span&gt;                            &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML Attribute name
&lt;/span&gt;&lt;span class='linenum'&gt;    7&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;-]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;=&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;                       &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML Attribute name value pair
&lt;/span&gt;&lt;span class='linenum'&gt;    8&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;\n&lt;/span&gt;&amp;lt;&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;                       &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML Compatible String Double
&lt;/span&gt;&lt;span class='linenum'&gt;    9&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\'&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\'\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\'&lt;/span&gt;)&lt;/span&gt;                         &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# 'String Single'
&lt;/span&gt;&lt;span class='linenum'&gt;   10&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\[&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\[\]&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\]&lt;/span&gt;)&lt;/span&gt;                         &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# [Square Brackets]
&lt;/span&gt;&lt;span class='linenum'&gt;   11&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;{)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^{}]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;})&lt;/span&gt;                             &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# {Curly Brackets}
&lt;/span&gt;&lt;span class='linenum'&gt;   12&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^/]&lt;/span&gt;&amp;gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;&amp;lt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&amp;lt;/)&lt;/span&gt;                        &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# &amp;gt;Text Inside HTML Tag&amp;lt;/
&lt;/span&gt;&lt;span class='linenum'&gt;   13&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\#&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;0-9a-fA-F&lt;/span&gt;]&lt;/span&gt;{6}                              &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Hex Colors #AABBCC
&lt;/span&gt;&lt;span class='linenum'&gt;   14&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\#&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;0-9a-fA-F&lt;/span&gt;]&lt;/span&gt;{3}                              &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Hex Colors #ABC
&lt;/span&gt;&lt;span class='linenum'&gt;   15&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;!&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;]&lt;/span&gt;)&lt;/span&gt;-&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?:&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?!&lt;/span&gt;=&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;)&lt;/span&gt;               &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Number 123 123.123 -123
&lt;/span&gt;&lt;span class='linenum'&gt;   16&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[@$!]&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;                                    &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# @variables $variables !etc
&lt;/span&gt;&lt;span class='linenum'&gt;   17&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;/&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;)&lt;/span&gt;.&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;/)&lt;/span&gt;                             &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# /* Contents of Comment Blocks */
&lt;/span&gt;&lt;span class='linenum'&gt;   18&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;/&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;.&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;/                                      &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# /* Comment Blocks */
&lt;/span&gt;&lt;span class='linenum'&gt;   19&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;:)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^;}&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;;)&lt;/span&gt;                           &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# CSS Attribute Values
&lt;/span&gt;&lt;span class='linenum'&gt;   20&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\(&lt;/span&gt;,:]&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\(\)&lt;/span&gt;,&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\)&lt;/span&gt;,;]&lt;/span&gt;)&lt;/span&gt;              &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Comma Delimitated
&lt;/span&gt;&lt;span class='linenum'&gt;   21&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;/&amp;gt;                                      &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Closed xHTML Tags
&lt;/span&gt;&lt;span class='linenum'&gt;   22&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;/&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt; /&amp;gt;)&lt;/span&gt;)&lt;/span&gt;                         &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Placer for adding HTML Attribute Values
&lt;/span&gt;&lt;span class='linenum'&gt;   23&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;gt;                                       &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# HTML Tags
&lt;/span&gt;&lt;span class='linenum'&gt;   24&lt;/span&gt; &lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;                         &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# String Double
&lt;/span&gt;&lt;span class='linenum'&gt;   25&lt;/span&gt; &lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;# Thomas Aylott &amp;lt;oblivious@subtleGradient.com&amp;gt; #
&lt;/span&gt;&lt;/pre&gt;

</content>
	</entry>
	
	<entry>
		<title>How I Use IE6, IE7, Firefox &amp; Safari on the Same Machine Simultaneously</title>
		<link href="https://subtlegradient.com/articles/articles/2006/05/10/use-ie6-ie7-firefox-safari-on-the-same-machine-simultaneously.html.html" />
		<updated>2006-05-10T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/05/10/use-ie6-ie7-firefox-safari-on-the-same-machine-simultaneously.html</id>
		<content type="html">&lt;h3&gt;I am currently running&amp;#8230;&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Internet Explorer 6&lt;/li&gt;
	&lt;li&gt;Internet Explorer 7&lt;/li&gt;
	&lt;li&gt;Safari&lt;/li&gt;
	&lt;li&gt;FireFox&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;#8230;on my PowerBook &lt;sup&gt;&lt;span class=&quot;caps&quot;&gt;PPC&lt;/span&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/stuff/all_4_target_browsers.jpg&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/stuff/all_4_target_browsers_small.jpg&quot; title=&quot;View Full HD Size&quot; alt=&quot;View Full HD Size&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;The setup to make this happen&amp;#8230;&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Windows XP SP2 on a Bare bones PC
	&lt;ol&gt;
		&lt;li&gt;&lt;em&gt;Tweaked&lt;/em&gt; Terminal Services&lt;/li&gt;
		&lt;li&gt;IE6 &amp;amp; IE7 installed simultaneously&lt;/li&gt;
		&lt;li&gt;Three user accounts&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;PowerBook&lt;/li&gt;
	&lt;li&gt;Microsoft Remote Desktop
	&lt;ol&gt;
		&lt;li&gt;Three Copies, renamed with custom icons&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Qu&amp;amp;#x131;c&amp;amp;#x138;s&amp;amp;#x131;&amp;amp;#x269;&amp;amp;#x2174;&amp;epsilon;&amp;amp;#x280;&amp;amp;#x1D66;&amp;amp;#x2084;&amp;amp;#x2089;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;How to make it happen&lt;/h3&gt;
&lt;h4&gt;Get a PC&lt;/h4&gt;
&lt;p&gt;I didn&amp;#8217;t really want to, but Virtual PC &lt;del&gt;sucks&lt;/del&gt; &lt;ins&gt;is too slow&lt;/ins&gt;.&lt;/p&gt;
&lt;p&gt;I would just get a MacIntel, but I just got a nice new PowerBook and I use Photoshop and other non-intel native stuff.&lt;/p&gt;
&lt;h4&gt;Install a Legally Licensed Copy of Windows XP &lt;sup&gt;&lt;span class=&quot;caps&quot;&gt;PRO&lt;/span&gt;&lt;/sup&gt;&lt;/h4&gt;
&lt;p&gt;You should be able to do that yourself.&lt;/p&gt;
&lt;h4&gt;&lt;em&gt;Tweak&lt;/em&gt; Windows XP&amp;#8217;s Terminal Services&lt;/h4&gt;
&lt;p&gt;This will allow you to have multiple Remote Desktop connections from your PowerBook to your PC.&lt;/p&gt;
&lt;p&gt;I followed these directions to &lt;a href=&quot;https://riccardo.raneri.it/blog/eng/index.php/2006/04/24/windows-xp-multiuser-remote-desktop/&quot; title=&quot;Ricky&amp;amp;#8217;s Web Review  &amp;amp;raquo; Blog Archive   &amp;amp;raquo; Windows XP Multiuser Remote Desktop&quot;&gt;Set up Multiple Simultaneous Remote Desktop Connections&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The instructions didn&amp;#8217;t work the first time. I had to do it again and make sure I followed the directions carefully.&lt;/p&gt;
&lt;p&gt;Just remember to use decimal instead of hex in &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;STEP&lt;/span&gt; 4&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Oh, and you need at least 2 users&lt;/p&gt;
&lt;h4&gt;Install Internet Explorer 7 without uninstalling Internet Explorer 6&lt;/h4&gt;
&lt;p&gt;I accidentally used a modified version of these instructions to &lt;a href=&quot;https://googlesystem.blogspot.com/2006/04/test-internet-explorer-7-without.html&quot;&gt;Test Internet Explorer 7 Without Installing It&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what I did differently in a nutshell&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Download the latest &lt;a href=&quot;https://www.microsoft.com/windows/ie/downloads/default.mspx&quot; title=&quot;Internet Explorer 7 downloads&quot;&gt;&gt;BETA&lt;/span&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Install it&lt;/li&gt;
	&lt;li&gt;Reboot when it tells you to&lt;/li&gt;
	&lt;li&gt;Uninstall it&lt;/li&gt;
	&lt;li&gt;Reboot when it tells you to&lt;/li&gt;
	&lt;li&gt;Follow the directions to &lt;a href=&quot;https://googlesystem.blogspot.com/2006/04/test-internet-explorer-7-without.html&quot;&gt;Test Internet Explorer 7 Without Installing It&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;At the part where it tells you to copy the long winded crazy folder that the installer creates, you have to copy all the non-invisible contents to a new folder instead of just duplicating the folder.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;I also changed the name of the shortcut to the .&lt;span class=&quot;caps&quot;&gt;VBS&lt;/span&gt; file to &amp;#8220;Internet Explorer 7&amp;#8221; and gave it the IE7 icon&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Set up multiple copies of Microsoft Remote Desktop&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Get &lt;a href=&quot;https://www.microsoft.com/mac/otherproducts/otherproducts.aspx?pid=remotedesktopclient&quot;&gt;Microsoft Remote Desktop&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Make 3 copies of the app&lt;/li&gt;
	&lt;li&gt;Rename them
	&lt;ol&gt;
		&lt;li&gt;Internet Explorer 6&lt;/li&gt;
		&lt;li&gt;Internet Explorer 7&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Give them slick icons
	&lt;ol&gt;
		&lt;li&gt;I used the icon from the Mac version of Internet Explorer 5 for IE6&lt;/li&gt;
		&lt;li&gt;I found this &lt;a href=&quot;https://www.deviantart.com/deviation/21795240/&quot; title=&quot;Internet Explorer 7 Icons 2.0 by Jairo Boudewyn&quot;&gt;slick Internet Explorer 7 icon&lt;/a&gt; with google&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Add a couple lines to your hosts file &lt;code&gt;/etc/hosts&lt;/code&gt;
	&lt;ol&gt;
		&lt;li&gt;&lt;code&gt;THE_IP_OF_YOUR_WINDOWS_MACHINE Internet_Explorer_7&lt;/code&gt;&lt;/li&gt;
		&lt;li&gt;&lt;code&gt;THE_IP_OF_YOUR_WINDOWS_MACHINE Internet_Explorer_6&lt;/code&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Open each of the renamed Remote Desktop apps&lt;/li&gt;
	&lt;li&gt;Set up all your connection settings
	&lt;ol&gt;
		&lt;li&gt;Using the labels you just put in the hosts file&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Save your connection settings files
	&lt;ol&gt;
		&lt;li&gt;Name them whatever you want&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;But, wait! There&amp;#8217;s more!&lt;/p&gt;
&lt;h4&gt;Set up Quicksilver command files for ultra slickness&lt;/h4&gt;
&lt;p&gt;The latest prereleases of &lt;a href=&quot;https://getqs.com/dev&quot; title=&quot;Quicksilver&quot;&gt;Qu&amp;amp;#x131;c&amp;amp;#x138;s&amp;amp;#x131;&amp;amp;#x269;&amp;amp;#x2174;&amp;epsilon;&amp;amp;#x280;&amp;amp;#x1D66;&amp;amp;#x2084;&amp;amp;#x2089;&lt;/a&gt; supports saving an command as a file. That file is then double-clickable for instant activation!&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Get the &lt;a href=&quot;https://getqs.com/dev&quot;&gt;latest prerelease of Quicksilver&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For each &lt;span class=&quot;caps&quot;&gt;RDC&lt;/span&gt; setting file / renamed &lt;span class=&quot;caps&quot;&gt;RDC&lt;/span&gt; app combo do:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Set up a command that opens your &lt;span class=&quot;caps&quot;&gt;RDC&lt;/span&gt; saved setting file in the right renamed copy of &lt;span class=&quot;caps&quot;&gt;RDC&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;Ctrl-return to grab the command as an object&lt;/li&gt;
	&lt;li&gt;Select the &amp;#8220;Save command to file&amp;#8230;&amp;#8221; action&lt;/li&gt;
	&lt;li&gt;Manually hit tab to show the third pane
	&lt;ol&gt;
		&lt;li&gt;For some reason it doesn&amp;#8217;t come up automatically&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Select a folder in the third pane to save the command into
	&lt;ol&gt;
		&lt;li&gt;I just dragged a folder into the third pane to select it&lt;/li&gt;
		&lt;li&gt;You cannot enter a filename, you have to rename the qscommand file after it&amp;#8217;s created&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Find and rename the new qscommand file&lt;/li&gt;
	&lt;li&gt;Give it a slick icon&lt;/li&gt;
	&lt;li&gt;Put it somewhere handy&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Enjoy!&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;PS:&lt;/strong&gt; This should all be legal. I don&amp;#8217;t think any of this would void any license agreements or anything, since you&amp;#8217;re still just a single user. But if this isn&amp;#8217;t legal and you get in trouble for it, you have been warned. I am not responsible for any of your actions.&lt;/em&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Balance Jr 2.0 for TextMate ScreenCast!</title>
		<link href="https://subtlegradient.com/articles/articles/2006/05/06/balance-jr-2-0-for-textmate-screencast.html.html" />
		<updated>2006-05-06T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/05/06/balance-jr-2-0-for-textmate-screencast.html</id>
		<content type="html">
&lt;p&gt;The following is not exactly a transcript of the audio from my new Balance Jr &lt;sup&gt;2.0&lt;/sup&gt; command screencast.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/textmate/Balance_jr_2_small.mov&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/textmate/Balance_jr_2.jpg&quot; title=&quot;Balance Junior the 2nd Screencast&quot; alt=&quot;Balance Junior the 2nd Screencast&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/textmate/Balance_jr_2_small.mov&quot;&gt;Balance Junior the 2&lt;sup&gt;nd&lt;/sup&gt; Screencast&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Download&lt;/h2&gt;


	&lt;h3&gt;&lt;a href=&quot;https://textmate.svn.subtlegradient.com/Bundles/tAylott_subtleGradient.zip&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/zipicon.gif&quot; style=&quot;vertical-align: middle;background:none !important;margin:0 !important; border:none !important;&quot; alt=&quot;&quot; /&gt;tAylott_subtleGradient.tmbundle.zip&lt;/a&gt;&lt;/h3&gt;


	&lt;p&gt;Or as always, you can grab all my stuff from my subversion repository. &lt;a href=&quot;https://textmate.svn.subtlegradient.com/&quot;&gt;https://textmate.svn.subtlegradient.com/&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Hello internet people&lt;/h3&gt;


	&lt;p&gt;Thomas Aylott (aka subtleGradient) here
to show you the latest edition of my Balance Jr command.&lt;/p&gt;


	&lt;p&gt;I noticed that there were a number of problems with the original that have always bugged me.&lt;/p&gt;


	&lt;p&gt;For example:&lt;/p&gt;


	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;THIS ONE&lt;/span&gt;!!!! Where it selects the contents of string as well as the text &lt;em&gt;between&lt;/em&gt; strings. Bleah, horrible.&lt;/p&gt;



	&lt;p&gt;Also, Duane Johnson released his &lt;a href=&quot;https://blog.inquirylabs.com/2006/05/02/new-feature-intelligent-jump/&quot;&gt;snazzy Jump commands&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Here, have a goosee and the new regex.
Note the lovely use of comments to disambiguate.&lt;/p&gt;

	&lt;p&gt;Let me show you a few things you can do with it.&lt;/p&gt;


	&lt;p&gt;Ok, there&amp;#8217;s some &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Balance Jr Foreword grabs stuff in big chunks
When the caret is outside a tag it&amp;#8217;ll grab the entire next tag.
When the caret is INside a tag, it&amp;#8217;ll grab the entire next attribute value pair, or whatever biggest thing it can get ahold of&lt;/p&gt;


	&lt;p&gt;Balance Jr Backwards is much more fine tuned
As you can see.&lt;/p&gt;


	&lt;p&gt;for example, You can place the caret inside an html attribute&amp;#8217;s value string, hit Balance Jr back and it selects the contents of the string, Hit it again and it&amp;#8217;ll select outward until it grabs the entire tag.&lt;/p&gt;


	&lt;p&gt;ok! While we&amp;#8217;re here&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s my &amp;#8220;add an &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; attribute&amp;#8221; command.
And Here&amp;#8217;s Duane&amp;#8217;s &amp;#8220;Jump Next&amp;#8221; command in action.&lt;/p&gt;


	&lt;p&gt;o&amp;#8230;k&lt;/p&gt;


	&lt;p&gt;There are two built-in commands in the latest editions of TextMate 
&lt;span class=&quot;caps&quot;&gt;EDIT&lt;/span&gt;/ SELECT/ &amp;#8220;current scope&amp;#8221; 
and &lt;span class=&quot;caps&quot;&gt;EDIT&lt;/span&gt;/ SELECT/ &amp;#8220;enclosing brackets&amp;#8221;&lt;/p&gt;


	&lt;p&gt;note that both of these grab the brackets at the ends.
While Balance Jr only grabs the innards!&lt;/p&gt;


	&lt;p&gt;Welp, that about wraps it up.
goodnight everybody!&lt;/p&gt;

&lt;style type=&quot;text/css&quot;&gt;
/* Stylesheet generated from theme: Brilliance Black BETA */

/* Mostly to improve view within TextMate's preview window */

pre.textmate-source {
	margin: 0;
	padding: 0;
	font-family: &quot;Consolas&quot;, monospace !important;
	font-size: 11px !important;
	color: #CDCDCD !important;
	background-color: #000000 !important;
}
/* ~ String */
.string .-meta_tag .-meta_doctype .-string_regexp .-string_literal .- .string_interpolated .-string_quoted_literal, .variable_parameter_misc_css, .text .string .source .string {
	color: #FFFC80;
	background-color: rgba(128, 61, 0, 0.20);
}

/* ~ String Literal */
.string_quoted_literal, .string_quoted_double_ruby_mod {
	color: #FFF800;
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String Unquoted */
.string_unquoted, .string_quoted_double_multiline, .meta_scope_heredoc {
	color: #FFBC80;
}

/* ~ String Interpolated */
.string_interpolated {
	color: #FFFC80;
	background-color: #1A1A1A;
}

/* ~ String RegEx */
.string_regexp {
	color: #FFF800;
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Group 1 */
.string_regexp_group {
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Group 2 */
.string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Group 3 */
.string_regexp_group .string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Group 4 */
.string_regexp_group .string_regexp_group .string_regexp_group .string_regexp_group . {
	color: rgba(255, 255, 255, 0.40);
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Character-Class */
.string_regexp_character-class {
	color: #86FF00;
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ String RegEx Arbitrary-Repitition */
.string_regexp_arbitrary-repitition {
	color: #00FFF8;
	background-color: rgba(67, 128, 0, 0.20);
}

/* ~ Number */
.constant_numeric {
	color: #C6FF00;
}

/* ~ Character constant */
.constant_character {
	color: #86FF00;
}

/* ~ Built-in constant */
.constant_language, .keyword_other_unit, .constant_java, .constant_other_unit {
	color: #07FF00;
}

/* ~ Built-in constant+ */
.constant_language_pseudo-variable {
	color: #07FF00;
	background-color: rgba(4, 128, 0, 0.20);
}

/* ~ User-defined constant */
.constant_other, .constant_block {
	color: #00FF79;
}

/* ~ Library constant */
.support_constant, .constant_name {
	color: #00FFF8;
}

/* √ global pre-defined variable */
.variable_other_readwrite_global_pre-defined {
	color: #00FF79;
	background-color: rgba(0, 128, 124, 0.20);
}

/* √ Constant Variable */
.variable_other_constant {
	color: #00FFF8;
}

/* √ Library variable */
.support_other_variable {
	color: #00FFF8;
	background-color: rgba(0, 128, 124, 0.20);
}

/* √ global Variable */
.variable_other_readwrite_global {
	color: #00807C;
	background-color: rgba(0, 67, 128, 0.20);
}

/* √ Variable */
.variable_language, .variable_other, .variable_js {
	color: #0086FF;
}

/* √ class Variable */
.variable_other_readwrite_class {
	color: #0086FF;
	background-color: rgba(0, 7, 255, 0.20);
}

/* √ instance Variable */
.variable_other_readwrite_instance {
	color: #406180;
}

/* √ Normal Variables */
.variable_other_php, .variable_other_normal {
	color: #406180;
}

/* ¢ Storage */
.storage .-storage_modifier {
	color: #FF7900;
	background-color: rgba(128, 61, 0, 0.20);
}

/* ¢ Entity Name Preprocessor */
.other_preprocessor, .entity_name_preprocessor {
	background-color: rgba(128, 61, 0, 0.20);
}

/* ~ constant.language.this.prototype.js */
.constant_language_this_prototype_js {
	color: #666666;
}

/* ¢ Storage Modifier */
.storage_modifier {
	color: #803D00;
}

/* ¢ Class name */
.entity_name_class {
	color: #FF0007;
}

/* ¢ Class */
.meta_class .-meta_class_instance, .declaration_class, .meta_definition_class, .declaration_module {
	color: #800004;
	background-color: rgba(255, 0, 7, 0.20);
}

/* ¢ Library class/type */
.support_type, .support_class {
	color: #FF0007;
	background-color: rgba(128, 0, 4, 0.20);
}

/* ¢ Instance */
.entity_name_instance {
	color: #FF0007;
}

/* ¢ Instance.constructor */
.meta_class_instance_constructor {
	background-color: rgba(128, 0, 67, 0.20);
}

/* ¢ Inherited class */
.entity_other_inherited-class, .entity_name_module {
	color: #FF0086;
	background-color: rgba(128, 0, 4, 0.20);
}

/* ¢ Class Method */
.object_property_function, .meta_definition_method {
	color: #FF0086;
}

/* ¢ Function */
.meta_function, .meta_property_function, .declaration_function {
	color: #800043;
	background-color: rgba(128, 0, 67, 0.20);
}

/* ¢ Function name */
.entity_name_function, .entity_name_preprocessor {
	color: #FF0086;
}

/* Keyword */
.keyword {
	color: #F800FF;
}

/* Keyword.control */
.keyword_control {
	color: #F800FF;
	background-color: rgba(60, 0, 128, 0.20);
}

/* HACK keyword.control.ruby.start-block */
.keyword_control_ruby_start-block {
	background-color: #000000;
}

/* Special Function */
.keyword_other_special-method, .meta_function-call {
	color: #7900FF;
	background-color: rgba(60, 0, 128, 0.20);
}

/* Library function */
.support_function {
	color: #7900FF;
	background-color: rgba(60, 0, 128, 0.20);
}

/* Keyword.operator (math &amp; ) */
.keyword_operator, .declaration_function_operator {
	color: #6100CC;
}

/* Function argument */
.variable_parameter .-variable_parameter_misc_css, .meta_definition_method . .meta_definition_param-list {
	color: #8083FF;
	background-color: rgba(60, 0, 128, 0.20);
}

/* ✘ Tag Doctype */
.meta_doctype, .meta_tag_sgml-declaration_doctype, .meta_tag_sgml_doctype {
	color: #000000;
	background-color: #FFFFFF;
}

/* ✘ Tag */
.meta_tag {
	color: #262626;
}

/* ✘ Tag Structure */
.meta_tag_structure, .meta_tag_segment {
	color: #666666;
	background-color: #333333;
}

/* ✘ Tag Block */
.meta_tag_block, .meta_tag_xml, .meta_tag_key {
	background-color: rgba(255, 255, 255, 0.02);
}

/* ✘ Tag Inline */
.meta_tag_inline {
	color: #FF7900;
	background-color: rgba(128, 61, 0, 0.20);
}

/* meta.tag.inline source */
.meta_tag_inline .source {
	background-color: rgba(128, 61, 0, 0.20);
}

/* ✘ Tag Other */
.meta_tag_other, .entity_name_tag_style, .source .entity_other_attribute-name .-text_html_basic_embedded ., .entity_name_tag_script, .meta_tag_block_script {
	color: #FF0007;
	background-color: rgba(128, 0, 4, 0.20);
}

/* ✘ Tag Form */
.meta_tag_form, .meta_tag_block_form {
	color: #0086FF;
	background-color: rgba(0, 67, 128, 0.20);
}

/* ✘ Tag Meta */
.meta_tag_meta {
	color: #F800FF;
	background-color: rgba(60, 0, 128, 0.20);
}

/* ✘ Tag Block Head */
.meta_section_html_head {
	background-color: #121212;
}

/* ✘ Tag Block Form */
.meta_section_html_form {
	background-color: rgba(0, 67, 128, 0.10);
}

/* ✘ XML Tag */
.meta_tag_xml {
	color: #666666;
}

/* ✘ Tag name */
.entity_name_tag {
	color: rgba(255, 255, 255, 0.30);
}

/* ✘ Tag attribute */
.entity_other_attribute-name {
	color: rgba(255, 255, 255, 0.20);
}

/* ✘ Tag value */
.meta_tag .string .-source, .text .source .text .meta_tag .string {
	color: rgba(255, 255, 255, 0.40);
}

/* M markup */
.markup .markup .-(markup .markup_list_paragraph) {
	color: #FFF800;
	background-color: rgba(51, 51, 51, 0.20);
}

/* M HR */
.markup_hr {
	color: #000000;
	background-color: #FFFFFF;
}

/* M heading */
.markup_heading {
	color: #666666;
	background-color: rgba(51, 51, 51, 0.50);
}

/* M bold */
.markup_bold {
	font-weight: bold
}

/* M italic */
.markup_italic {
	font-style: italic;
}

/* M underline */
.markup_underline {
	text-decoration: underline;
}

/* M reference */
.meta_reference, .markup_underline_link {
	color: #0086FF;
}

/* M reference name */
.entity_name_reference {
	color: #00FFF8;
	background-color: rgba(0, 67, 128, 0.20);
}

/* M underline link */
.meta_reference_list .markup_underline_link {
	color: #00FFF8;
	text-decoration: underline;
}

/* M raw block */
.markup_raw_block {
	color: #999999;
	background-color: #000000;
}

/* M quote block */
.markup_quote {
	background-color: rgba(255, 255, 255, 0.10);
}

/* § CSS */
.source_css {
}

/* § Selector */
.meta_selector {
	color: #666666;
	background-color: rgba(0, 0, 0, 0.50);
}

/* § Attribute-Match */
.meta_attribute-match_css {
	color: #0007FF;
	background-color: rgba(0, 4, 128, 0.20);
}

/* § Pseudo-Class */
.entity_other_attribute-name_pseudo-class, .entity_other_attribute-name_tag_pseudo-class {
	color: #7900FF;
}

/* § Class */
.meta_selector .entity_other_attribute-name_class {
	color: #F800FF;
}

/* § ID */
.meta_selector .entity_other_attribute-name_id {
	color: #FF0086;
}

/* § Tag */
.meta_selector .entity_name_tag {
	color: #FF0007;
}

/* § Tag Wildcard */
.entity_name_tag_wildcard, .entity_other_attribute-name_universal {
	color: #FF7900;
}

/* § meta.property-list */
.meta_property-list {
	color: #333333;
}

/* § meta.property-name */
.meta_property-name {
	color: #999999;
}

/* § support.type.property-name */
.support_type_property-name {
	color: #FFFFFF;
	background-color: #000000;
}

/* § meta.property-value */
.meta_property-value {
	color: #999999;
	background-color: #0D0D0D;
}

/* LaTeX */
.text_latex {
}

/* L Markup Raw */
.text_latex .markup_raw {
	background-color: #000000;
}

/* L support.function */
.text_latex .support_function .-support_function_textit .-support_function_emph {
	color: #BC80FF;
}

/* L support.function.section */
.text_latex .support_function_section {
	color: rgba(255, 255, 255, 0.75);
}

/* L entity.name.section */
.text_latex .entity_name_section .-meta_group .-keyword_operator_braces {
	color: #000000;
	background-color: #FFFFFF;
}

/* L constant.language.general */
.text_latex .constant_language_general {
}

/* L keyword.operator.delimiter */
.text_latex .keyword_operator_delimiter {
	background-color: rgba(0, 0, 0, 0.50);
}

/* L keyword.operator.brackets */
.text_latex .keyword_operator_brackets {
	color: #999999;
}

/* L keyword.operator.braces */
.text_latex .keyword_operator_braces {
	color: #666666;
}

/* L meta.footnote */
.meta_footnote {
	color: rgba(0, 8, 255, 0.30);
	background-color: rgba(0, 4, 128, 0.20);
}

/* L meta.label.reference */
.text_latex .meta_label_reference {
	background-color: rgba(255, 255, 255, 0.05);
}

/* L keyword.control.ref */
.text_latex .keyword_control_ref {
	color: #FF0007;
	background-color: #260001;
}

/* L variable.parameter.label.reference */
.text_latex .variable_parameter_label_reference {
	color: #FFBC80;
	background-color: #400002;
}

/* L keyword.control.cite */
.text_latex .keyword_control_cite {
	color: #FF0086;
	background-color: #260014;
}

/* L variable.parameter.cite */
.variable_parameter_cite {
	color: #FFBFE1;
	background-color: #400022;
}

/* L variable.parameter.label */
.text_latex .variable_parameter_label {
	color: rgba(255, 255, 255, 0.50);
}

/* L meta.group.braces */
.text_latex .meta_group_braces {
	color: rgba(51, 51, 51, 0.20);
}

/* L meta.environment.list */
.text_latex .meta_environment_list {
	color: rgba(51, 51, 51, 0.20);
	background-color: rgba(0, 0, 0, 0.50);
}

/* L meta.environment.list 2 */
.text_latex .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
	background-color: rgba(0, 0, 0, 0.50);
}

/* L meta.environment.list 3 */
.text_latex .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
	background-color: #000000;
}

/* L meta.environment.list 4 */
.text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}

/* L meta.environment.list 5 */
.text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}

/* L meta.environment.list 6 */
.text_latex .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list .meta_environment_list . {
	color: rgba(51, 51, 51, 0.20);
}

/* L meta.end-document */
.text_latex .meta_end-document, .text_latex .meta_begin-document, .meta_end-document_latex .support_function, .meta_end-document_latex .variable_parameter, .meta_begin-document_latex .support_function, .meta_begin-document_latex .variable_parameter {
	color: #000000;
	background-color: #CDCDCD;
}

/* ◊ Source */
.source {
}

/* ◊ Source String Source */
.source .string .source {
	color: #FFFFFF;
	background-color: rgba(51, 51, 51, 0.50);
}

/* ◊ Source String Interpolated Source */
.source .string_interpolated .source {
	color: #999999;
	background-color: rgba(0, 0, 0, 0.60);
}

/* ◊ Source Embeded Source */
.source_java_embedded {
	background-color: rgba(51, 51, 51, 0.10);
}

/* ◊ Text */
.text .-text_xml_strict {
	color: #FFFFFF;
	background-color: #0D0D0D;
}

/* ◊ Text Source */
.text .source, .meta_scope_django_template {
	color: #CCCCCC;
	background-color: #000000;
}

/* ◊ Text String Source */
.text .string .source {
	color: #999999;
}

/* ◊ Text String Source String Source */
.text .string .source .string .source {
}

/* Syntax */
.meta_syntax {
	color: #333333;
}

/* Invalid */
.invalid {
	color: #330000;
	background-color: #FF0007;
}

/* Comment */
pre.textmate-source .comment {
	color: #5555FF;
	font-style: italic;
	background-color: rgba(0, 0, 255, 0.10);
	font-size: 11px !important;
}

/* ✘ HTML Comment */
.text .comment_block .-source {
	font-style: italic;
}

/* D Diff Add */
.markup_inserted {
	color: #40FF9A;
	background-color: #00401E;
}

/* D Diff Delete */
.markup_deleted {
	color: #FF40A3;
	background-color: #400021;
}

/* D Diff Changed */
.markup_changed {
	color: #FFFF55;
	background-color: #803D00;
}

/* text.subversion-commit meta.scope.changed-files */
.text_subversion-commit .meta_scope_changed-files, .text_subversion-commit .meta_scope_changed-files_svn .meta_diff_separator {
	color: #FFFFFF;
	background-color: #000000;
}

/* text.subversion-commit */
.text_subversion-commit {
	color: #000000;
	background-color: #FFFFFF;
}

/* º meta.source.embedded */
.meta_source_embedded, .entity_other_django_tagbraces {
	color: #666666;
	background-color: rgba(0, 0, 0, 0.50);
}

/* º meta.group.braces.round JS */
.source_js .meta_group_braces_round, .meta_scope_heredoc {
	background-color: rgba(60, 0, 128, 0.10);
}

/* º meta.group.braces 1 */
.meta_group_braces, .meta_block_slate ., .text_xml_strict .meta_tag, .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 2 */
.meta_group_braces .meta_group_braces, .meta_block_slate .meta_block_slate, .text_xml_strict .meta_tag .meta_tag, .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 3 */
.meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 4 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 5 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 6 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 7 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 8 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.group.braces 9 */
.meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces ., .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate .meta_block_slate ., .text_xml_strict .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag .meta_tag, .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces .meta_group_braces {
	background-color: rgba(51, 51, 51, 0.10);
}

/* º meta.block.slate  */
.meta_block_slate {
	color: #666666;
}

/* º meta.block.content.slate  */
.meta_block_content_slate . {
	color: #CDCDCD;
}


	&lt;/style&gt;
&lt;pre class=&quot;textmate-source&quot;&gt;&lt;span class=&quot;source source_regexp&quot;&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML tags that don't contain text
)&lt;/span&gt;&amp;lt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;lt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;lt;/&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\1&lt;/span&gt;&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

The contents of various other forms of Embedded source
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&amp;lt;%@&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;%#&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;%=&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^%]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;%&amp;gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

The contents of Embedded source
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&amp;lt;%&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^%]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;%&amp;gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML Comments
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&amp;lt;!--&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;^-&amp;gt;&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;--&amp;gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML Attribute name
)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;-]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;=)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML Attribute name value pair
)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;-]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;=&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML Compatible &quot;String Double&quot;
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;\n&lt;/span&gt;&amp;lt;&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

'String Single'
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;')&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^'&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;')&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

[Square Brackets]
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\[&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\[\]&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\]&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

{Curly Brackets}
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;{)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^{}]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;})&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

&amp;gt;Text Inside HTML Tag&amp;lt;/
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^/]&lt;/span&gt;&amp;gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;&amp;lt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&amp;lt;/)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Hex Colors #AABBCC
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;#)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;0-9a-fA-F&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;{3,6}&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Number
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;!&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?:&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?!&lt;/span&gt;=&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\d&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

@variables $variables !etc
)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[@$!]&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

/* Contents of Comment Blocks */
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;/&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;)&lt;/span&gt;.&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;/)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Comma Delimitated
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\(&lt;/span&gt;,:]&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\(\)&lt;/span&gt;,&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\)&lt;/span&gt;,;]&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

CSS Attribute Values
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;:)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^;}]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Closed xHTML Tags
)&lt;/span&gt;&amp;lt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;/&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Placer for adding HTML Attribute Values
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;/&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt; /&amp;gt;)&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

HTML Tags
)&lt;/span&gt;&amp;lt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&amp;gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

&quot;String Double&quot;
)&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?&amp;lt;=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[^&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;\n&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\&quot;&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

Space and the end of the line
)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;+&lt;/span&gt;$&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

JS function names and variables
)&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_set keyword_control_set_regexp&quot;&gt;[&lt;span class=&quot;constant constant_other constant_other_range constant_other_range_regexp&quot;&gt;a-zA-Z&lt;/span&gt;][&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\w&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\.&lt;/span&gt;]&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\b&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_other constant_other_assertion constant_other_assertion_regexp&quot;&gt;?=&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\[&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_character-class keyword_control_character-class_regexp&quot;&gt;\s&lt;/span&gt;&lt;span class=&quot;keyword keyword_function keyword_function_method keyword_function_method_quantifier keyword_function_method_quantifier_regexp&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;string string_quoted string_quoted_regexp&quot;&gt;(&amp;amp;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\-\-&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\-&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\+\+&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\+&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;~&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;===&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;==&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;!=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;!==&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;&amp;lt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;gt;&amp;gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;lt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;!&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;amp;&amp;amp;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\|\|&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\?\:&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\*&lt;/span&gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;/=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;%=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\+&lt;/span&gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\-&lt;/span&gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&amp;amp;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;keyword keyword_control keyword_control_anchors keyword_control_anchors_regexp&quot;&gt;\^&lt;/span&gt;=&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;constant constant_character constant_character_escaped constant_character_escaped_regexp&quot;&gt;\(&lt;/span&gt;)&lt;/span&gt;)&lt;/span&gt;)&lt;/span&gt;&lt;span class=&quot;keyword keyword_operator keyword_operator_regexp&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;comment comment_block comment_block_regexp&quot;&gt;(?#

The End :)&lt;/span&gt;subtleGradient&lt;/span&gt;&lt;/pre&gt;


</content>
	</entry>
	
	<entry>
		<title>How long have you been hooked on TextMate Crack Cereal? ;)</title>
		<link href="https://subtlegradient.com/articles/articles/2006/05/04/textmate-crack-cereal-serial.html.html" />
		<updated>2006-05-04T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/05/04/textmate-crack-cereal-serial.html</id>
		<content type="html">&lt;h1&gt;TextMate &lt;del&gt;serial&lt;/del&gt; &lt;ins&gt;cereal&lt;/ins&gt; is like Crack!!!&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Not that I would know about the crack ;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Seriously, though.&lt;/strong&gt; There&amp;#8217;s not much point in cracking TextMate. Since you wouldn&amp;#8217;t be able to participate in the TextMate community.&lt;/p&gt;
&lt;p&gt;BTW. The TextMate Serial numbers are sequential and actually tell you how many people bought TextMate before you.&lt;/p&gt;
&lt;p&gt;My serial number is&amp;#8230;&lt;br /&gt;
bq. &lt;code&gt;#2346&lt;/code&gt; &lt;sup&gt;Registered&lt;/sup&gt; 25 August 2005&lt;/p&gt;
&lt;p&gt;If I had only registered a moment sooner, I would have been 2345! &lt;em&gt;Too bad, so sad&lt;/em&gt; :&amp;#8217;(&lt;/p&gt;
&lt;p&gt;I had been addicted to TextMate for a while before the registration went through.&lt;/p&gt;
&lt;p&gt;I tried it on and off since it first came out (with that goofy robot icon). I couldn&amp;#8217;t really get into it until the theme support got really good.&lt;/p&gt;
&lt;p&gt;Well, i seem to be rambling now&amp;#8230;&lt;/p&gt;
&lt;p&gt;So, what&amp;#8217;s your textmate serial number? How hip &amp;amp; hardcore are you? ;)&lt;/p&gt;
&lt;p&gt;&amp;#8212; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &lt;del&gt;- -&lt;/del&gt; &amp;#8212;&lt;/p&gt;
&lt;p&gt;I seem to be only posting about TextMate recently. Hmmm&amp;#8230;&lt;/p&gt;
&lt;p&gt;As soon as the &lt;a href=&quot;https://www.crazyegg.com&quot; title=&quot;Pssst &amp;amp;#8230; It&amp;amp;#8217;s Crazy Egg&quot;&gt;secret crazy project&lt;/a&gt; that I&amp;#8217;m working on is done I&amp;#8217;ll post a bit about it.&lt;/p&gt;
&lt;p&gt;This post was intended to annoy everyone searching for a crack for TextMate. &lt;span class=&quot;caps&quot;&gt;HAHA&lt;/span&gt;! &lt;strong&gt;No Crack for you!!!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;:P&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve recently noticed a lot of traffic from people searching for &amp;#8220;TextMate serial&amp;#8221; &amp;#8220;Textmate crack&amp;#8221; and stuff like that.&lt;/p&gt;
&lt;p&gt;I guess that just goes to illustrate how popular textmate has recently become.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>How to Make Spotlight Be Fast Again</title>
		<link href="https://subtlegradient.com/articles/articles/2006/05/04/how-to-make-spotlight-be-fast-again.html.html" />
		<updated>2006-05-04T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/05/04/how-to-make-spotlight-be-fast-again.html</id>
		<content type="html">&lt;p&gt;I&amp;#8217;ve been using &lt;a href=&quot;https://www.apple.com&quot;&gt;Tiger&lt;/a&gt; since about an hour after it was released.&lt;/p&gt;
&lt;p&gt;When I first got it, spotlight was a total gem. It was super quick and found things I never thought it could find.&lt;/p&gt;
&lt;p&gt;I typed in my first daughters name and instantly got back all kinds of stuff including all of my most recent tax returns. When clicking on one of the tax returns it took me to her name listed as a dependent.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s just too cool.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been a while since then now and spotlight has started to get extremely annoyingly slow and filled with total crap. No mater what I searched for I got back tons of source code files and bookmarks.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ebabystuff.net/&quot;&gt;My wife&lt;/a&gt; uses my &lt;a href=&quot;https://www.everymac.com/systems/apple/imac/stats/imac_se_dv_400.html&quot;&gt;old iMac&lt;/a&gt; and it was still blazingly fast at spotlight. Much faster than my nice new &lt;em&gt;-ish&lt;/em&gt; PowerBook 12.&lt;/p&gt;
&lt;p&gt;I used to work at a place where I had just massive gobs of email that I needed to save for searching through later.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m thinking that spotlight still had the index of all that old stuff. I&amp;#8217;m just guessing though.&lt;/p&gt;
&lt;h2&gt;I did this, and it made it fast again&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;Open your spotlight prefs&lt;/li&gt;
	&lt;li&gt;Choose the privacy tab&lt;/li&gt;
	&lt;li&gt;Drag in your /Developer folder&lt;/li&gt;
	&lt;li&gt;Drag in &lt;strong&gt;everything&lt;/strong&gt; that you&amp;#8217;ll never actually search for with spotlight&lt;/li&gt;
	&lt;li&gt;Drag in all of your mounted Hard Drive volumes&lt;/li&gt;
	&lt;li&gt;Log out or reset or something&lt;/li&gt;
	&lt;li&gt;Log back in (doi)&lt;/li&gt;
	&lt;li&gt;Open your spotlight prefs (again)&lt;/li&gt;
	&lt;li&gt;Remove all the Hard Drive volumes&lt;/li&gt;
	&lt;li&gt;Spotlight should start reindexing them shortly&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As always, your milage may vary.&lt;/p&gt;
&lt;p&gt;You might not have to log out or reboot. You might have to do it a couple times. I&amp;#8217;m not sure.&lt;/p&gt;
&lt;p&gt;Basically, the principal should be&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Don&amp;#8217;t let spotlight see anything that you don&amp;#8217;t want to search for&lt;/h3&gt;
&lt;p&gt;I know that that&amp;#8217;s a pretty basic idea. But it just never occurred to me to actually think about it. Someone in the ##textmate irc channel clued me in. Thanks &lt;em&gt;i-forget-your-name&lt;/em&gt;_!&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>TextMate Bundles and Themes updates RSS Feed</title>
		<link href="https://subtlegradient.com/articles/articles/2006/04/25/my-textmate-bundles-rss-feed.html.html" />
		<updated>2006-04-25T00:00:00-07:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/04/25/my-textmate-bundles-rss-feed.html</id>
		<content type="html">&lt;h2&gt;New-&lt;em&gt;ish&lt;/em&gt; subtleGradient TextMate &lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Quick note to let you know about my new-ish &lt;a href=&quot;feed://trippledoubleyou.subtlegradient.com/textmate/taylott_svnlog.rss&quot;&gt;subtleGradient TextMate Bundles and Themes updates &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt; Feed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Enjoy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Also, my &lt;a href=&quot;https://textmate.svn.subtlegradient.com/&quot;&gt;subtleGradient unofficial TextMate bundles and themes Subversion Repo&lt;/a&gt; is still up.&lt;/p&gt;
&lt;p&gt;The best way to enjoy my bundles is to check them out of subversion.&lt;/p&gt;
&lt;h3&gt;Grab a Single Bundle Item&lt;/h3&gt;
&lt;p&gt;If you just want a single item, just browse through &lt;a href=&quot;https://textmate.svn.subtlegradient.com/Bundles/&quot;&gt;the repo&lt;/a&gt;, download the thing (Snippet, Command, Language Syntax or whatever) that you want and stick it in one of your existing bundles. Your personal bundles are stored in &lt;code&gt;~/Library/Application\ Support/TextMate/Bundles/&lt;/code&gt; .&lt;/p&gt;
&lt;h3&gt;Checkout a Single Bundle&lt;/h3&gt;
&lt;p&gt;If you want to check out an individual bundle from &lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt;, do this: (and by &amp;#8216;do this&amp;#8217; I mean, &lt;em&gt;&amp;#8216;run this command in the Terminal&amp;#8217;&lt;/em&gt; obviously)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
	svn checkout https://textmate.svn.subtlegradient.com/Bundles/tAylott_subtleGradient.tmbundle/ ~/Library/Application\ Support/TextMate/Bundles/tAylott_subtleGradient.tmbundle/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can then just do a simple &lt;code&gt;svn up&lt;/code&gt; occasionally to make sure you&amp;#8217;re updated with the latest stuff.&lt;/p&gt;
&lt;h3&gt;Checkout a Single Theme&lt;/h3&gt;
&lt;p&gt;Unfortunately, &lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt; can&amp;#8217;t just checkout a single file (for good reason, but still annoying). So if you want to grab a single Theme, just:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Browse to my &lt;a href=&quot;https://textmate.svn.subtlegradient.com/Themes/&quot; title=&quot;https://textmate.svn.subtlegradient.com/Themes/&quot;&gt;Themes folder&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Download a single theme (EG: &lt;a href=&quot;https://textmate.svn.subtlegradient.com/Themes/Brilliance%20Black%20BETA.tmTheme&quot;&gt;Brilliance Black&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Rename it from &lt;code&gt;.tmTheme.txt&lt;/code&gt; to just &lt;code&gt;.tmTheme&lt;/code&gt; (If necessary)&lt;/li&gt;
	&lt;li&gt;Double Click it
	&lt;ul&gt;
		&lt;li&gt;It should automatically add it to your personal TextMate Themes folder&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The biggest problem with this method is that you have to go through all this every time you want the updated version of the file.&lt;/p&gt;
&lt;p&gt;Most themes don&amp;#8217;t change too often, so that shouldn&amp;#8217;t really matter. The Brilliance themes are all still in &lt;em&gt;&lt;span class=&quot;caps&quot;&gt;BETA&lt;/span&gt;&lt;/em&gt; so they get updated occasionally.&lt;/p&gt;
&lt;h3&gt;Checkout All My Themes&lt;/h3&gt;
&lt;p&gt;Run this command in the Terminal:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
	svn checkout https://textmate.svn.subtlegradient.com/Themes/ ~/Library/Application\ Support/TextMate/Themes/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This shouldn&amp;#8217;t mess up any of your existing Themes or anything, it should just add all my stuff to yours.&lt;/p&gt;
&lt;p&gt;The upshot of this method is that you can just do a simple &lt;code&gt;svn up&lt;/code&gt; occasionally to make sure you&amp;#8217;re updated with the latest stuff.&lt;/p&gt;
&lt;h3&gt;Checkout All My Bundles&lt;/h3&gt;
&lt;p&gt;Let me put it this way. &lt;em&gt;Don&amp;#8217;t do this.&lt;/em&gt; You really don&amp;#8217;t want &lt;strong&gt;all&lt;/strong&gt; of my bundles.&lt;/p&gt;
&lt;p&gt;You have been warned. ;)&lt;/p&gt;
&lt;h4&gt;Enjoy&lt;/h4&gt;</content>
	</entry>
	
	<entry>
		<title>My TextMate Bundles, Commands, Macros, etc...</title>
		<link href="https://subtlegradient.com/articles/articles/2006/02/05/my_textmate_bundles_etc.html.html" />
		<updated>2006-02-05T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/02/05/my_textmate_bundles_etc.html</id>
		<content type="html">
&lt;p&gt;Ahhh TextMate, how I love thee.&lt;/p&gt;
	&lt;p&gt;This is just a quick post to share a couple of handy TextMate commands.&lt;/p&gt;
	&lt;h2&gt;&lt;em&gt;Balance Jr&lt;/em&gt; textmate thinggy&lt;/h2&gt;
	&lt;a href=&quot;https://www.subtlegradient.com/stuff/subtlegradient_textmate_balance_jr.m4v&quot; target=&quot;_new&quot; title=&quot;Balance Jr Textmate Macro
ScreenCast Video
(iPod format)&quot;&gt;&lt;img src=&quot;https://www.subtlegradient.com/stuff/balance_jr-textmate-macro.jpg&quot; width=&quot;309&quot; height=&quot;222&quot; alt=&quot;Balance Jr Textmate Macro&quot; /&gt;&lt;/a&gt;
&lt;pre&gt;&lt;code&gt;
(?&amp;lt;=(&amp;lt;%@\s|&amp;lt;%#\s|&amp;lt;%=\s))[^%]*(?=\s%&amp;gt;)|(?&amp;lt;=&amp;lt;%\s)[^%]*(?=\s%&amp;gt;)|(?&amp;lt;=&amp;lt;/)[^/&amp;gt;]*(?=&amp;gt;)|(?&amp;lt;=&amp;lt;)[^/&amp;gt;]*(?=/&amp;gt;)|(?&amp;lt;=&amp;lt;!--\s)[^-&amp;gt;]*(?=\s--&amp;gt;)|\b\w+\b(?=\s*=)|\s\b\w+\b=\&quot;[^\&quot;]*\&quot;|(?&amp;lt;=\\&quot;)[^\\&quot;\n]*(?=\\&quot;)|(?&amp;lt;=')[^'\n]*(?=')|(?&amp;lt;=\[)[^\[\]]*(?=\])|(?&amp;lt;={)[^{}]*(?=})|(?&amp;lt;=&amp;lt;)[^&amp;lt;&amp;gt;\n]*(?=&amp;gt;)|(?&amp;lt;=[^/]&amp;gt;)[^&amp;gt;&amp;lt;]*(?=&amp;lt;/)|(?&amp;lt;!\d)\d+(?!=\d)|[@$!]\w+\b|(?&amp;lt;=/\*).*(?=\*/)|(?&amp;lt;=[\(,])[^\(\),]*(?=[\),])
&lt;/code&gt;&lt;/pre&gt;
	&lt;p&gt;You place your caret inside something and the macro will select everything in between enclosing characters. It&amp;#8217;s kinda like the balance command, except it grabs everything &lt;span class=&quot;caps&quot;&gt;INSIDE&lt;/span&gt; the characters, but not the characters themselves.&lt;/p&gt;
	&lt;p&gt;It works with:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;[]&lt;/code&gt;, &lt;code&gt;{}&lt;/code&gt;, &lt;code&gt;()&lt;/code&gt;, &lt;code&gt;''&lt;/code&gt;, &lt;code&gt;&quot;&quot;&lt;/code&gt;, &lt;code&gt;word=&quot;&quot;&lt;/code&gt;, &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;$word&lt;/code&gt;, &lt;code&gt;@word&lt;/code&gt;, &lt;code&gt;/* word */&lt;/code&gt;, &lt;code&gt;&amp;lt;% word %&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;%= word %&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;%# word %&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;%@ word %&amp;gt;&lt;/code&gt;, &lt;code&gt;integers&lt;/code&gt;, &lt;code&gt;comma separated values&lt;/code&gt;, &lt;code&gt;and probably more&lt;/code&gt;, but I forget now.&lt;/p&gt;
	&lt;p&gt;If you want to select the &lt;code&gt;paragraph text&lt;/code&gt; section of the following &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;, place your caret somewhere in the text and hit the macro. It&amp;#8217;ll select everything between the &lt;code&gt;&amp;gt;&lt;/code&gt; &amp;#38; &lt;code&gt;&amp;lt;&lt;/code&gt; characters.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;p class=&quot;blah&quot;&amp;gt;
     paragraph text 
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
	&lt;h2&gt;Here&amp;#8217;s all the &lt;del&gt;crazy&lt;/del&gt; stuff!&lt;/h2&gt;
	&lt;del&gt;&lt;p&gt;All these files are &lt;code&gt;.tmbundle&lt;/code&gt; packages. &lt;del&gt;I have them in my personal TextMate folder &lt;code&gt;~/Library/Application Support/TextMate/Bundles/&lt;/code&gt;.&lt;/del&gt; All my TextMate stuff is now being hosted in SVN at &lt;a href=&quot;https://textmate.svn.subtlegradient.com/&quot;&gt;https://textmate.svn.subtlegradient.com/&lt;/a&gt;. Enjoy!&lt;/p&gt;&lt;/del&gt;
	&lt;p&gt;&lt;em&gt;Back to a regular folder. Blaaarrgghhh!&lt;/em&gt;&lt;/p&gt;
	&lt;p style=&quot;background-color:white;&quot;&gt;These linked files are now ZIPs, yet again. But Safari will auto un-zip them for you to just double click on in your downloads panel.&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://subtlegradient.com/stuff/x51.tmbundle.zip&quot;&gt;x51.tmbundle&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;This is the one with the Balance JR commands.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://subtlegradient.com/stuff/ASP.net.tmbundle.zip&quot;&gt;ASP.net.tmbundle&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://subtlegradient.com/stuff/JavaScript.tmbundle.zip&quot;&gt;JavaScript.tmbundle&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;https://subtlegradient.com/stuff/Prototype%20and%20Scriptaculous.tmbundle.zip&quot;&gt;Prototype and Scriptaculous.tmbundle&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;To be able to use my additions to the prototype bundle, you&amp;#8217;ll need to have the original &lt;a href=&quot;https://encytemedia.com/blog/articles/2006/01/03/textmate-vibrant-ink-theme-and-prototype-bundle&quot; title=&quot;Textmate Vibrant Ink Theme and Prototype Bundle&quot;&gt;Prototype Bundle&lt;/a&gt; from encytemedia.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;That&amp;#8217;s all. &lt;strong&gt;It&amp;#8217;s been a pleasure&lt;/strong&gt;, &lt;em&gt;as always&lt;/em&gt;!&lt;/p&gt;



</content>
	</entry>
	
	<entry>
		<title>iPhoto 2006 Supports Flickr Photostream as Photocast</title>
		<link href="https://subtlegradient.com/articles/articles/2006/01/20/iphoto-2006-supports-flickr-photostream-as-photocast.html.html" />
		<updated>2006-01-20T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2006/01/20/iphoto-2006-supports-flickr-photostream-as-photocast.html</id>
		<content type="html">&lt;p&gt;This may not come as a shock to many, but&lt;/p&gt;
&lt;h3&gt;The new iPhoto 2006 natively supports &amp;#8220;Flickr&amp;#8221;: Photostreams just like any other iPhoto Photocast!&lt;/h3&gt;
&lt;p&gt;Imagine the possibilities people!&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a quick tool you might find useless ;)&lt;/p&gt;
&lt;p&gt;Type in a tag and click the button to add that Flickr search to iPhoto&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#fn1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;form action=&quot;photo://www.flickr.com/services/feeds/photos_public.gne&quot; method=&quot;get&quot;&gt;
&lt;input name=&quot;tags&quot; type=&quot;text&quot; value=&quot;only_one_tag_at_a_time&quot; /&gt;
&lt;input name=&quot;format&quot; value=&quot;rss_200_enc&quot; type=&quot;hidden&quot; /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Add to iPhoto&quot;/&gt;
&lt;/form&gt;
&lt;p class=&quot;footnote&quot; id=&quot;fn1&quot;&gt;&lt;sup&gt;1&lt;/sup&gt; This list only supports 1 tag at a time, because I&amp;#8217;m too lazy to make something actually useful.&lt;/p&gt;
&lt;h4&gt;This works by&amp;#8230;&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Using the normal &lt;code&gt;https://www.flickr.com/services/feeds/photos_public.gne&lt;/code&gt; url and&lt;/li&gt;
	&lt;li&gt;changing the &amp;#8216;&lt;code&gt;http&lt;/code&gt;&amp;#8217; to &amp;#8216;&lt;code&gt;photo&lt;/code&gt;&amp;#8217; and&amp;#8230;&lt;/li&gt;
	&lt;li&gt;adding the querystring attribute &amp;#8216;&lt;code&gt;format=rss_200_enc&lt;/code&gt;&amp;#8217; and&amp;#8230;&lt;/li&gt;
	&lt;li&gt;&amp;#8216;&lt;code&gt;tags=the_tags_you_want&lt;/code&gt;&amp;#8217; where &amp;#8216;the_tags_you_want&amp;#8217; is a comma delimited list of tags.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The final url being: &lt;a href=&quot;photo://www.flickr.com/services/feeds/photos_public.gne?tags=tiny,dogs&amp;amp;format=rss_200_enc&quot;&gt;&lt;code&gt;photo://www.flickr.com/services/feeds/photos_public.gne?tags=tiny,dogs&amp;amp;format=rss_200_enc&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The crappy news from Flickr is &lt;em&gt;&amp;#8220;Photos containing &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;ANY&lt;/span&gt;&lt;/strong&gt; of the tags will be included in the feed.&amp;#8221;&lt;/em&gt; So this is an &lt;strong&gt;OR&lt;/strong&gt;/&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;ANY&lt;/span&gt;&lt;/strong&gt; search not an &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;ALL&lt;/span&gt;&lt;/strong&gt;/&lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;AND&lt;/span&gt;&lt;/strong&gt; search. Oh well, what do you want for 5 minutes of effort?&lt;/p&gt;
&lt;p&gt;Well, &lt;em&gt;enjoy&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Hey, if anybody can hook me up with a quick way to do the same thing on any arbitrary &lt;span class=&quot;caps&quot;&gt;AND&lt;/span&gt; search, I would&amp;#8230; uh&amp;#8230; &lt;ins&gt;say &lt;em&gt;thanks&lt;/em&gt;&lt;/ins&gt;!&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Gus Mueller FlyOpts InputManager</title>
		<link href="https://subtlegradient.com/articles/articles/2005/12/27/gus-mueller-flyopts-inputmanager.html.html" />
		<updated>2005-12-27T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/12/27/gus-mueller-flyopts-inputmanager.html</id>
		<content type="html">&lt;p&gt;I just came across a truly amazingly sweet little thing.&lt;/p&gt;
&lt;h4&gt;How I found it&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.drunkenblog.com/drunkenblog-archives/000736.html&quot; title=&quot;DrunkenBlog&quot;&gt;Of grasshoppers and O_S&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.gusmueller.com/blog/archives/2005/12/17.html#1393&quot;&gt;Menu Accelerator&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;FlyOpts InputManager&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;What is it?&lt;/h3&gt;
&lt;p&gt;To quote the author:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A warning&lt;/strong&gt;: input managers are bad&amp;#8230;&lt;br /&gt;
This bit of code [is] probably only useful to developers &amp;#8230; it&amp;#8217;s not like a product or anything. Think of it as sample code.&lt;br /&gt;
* Edit in BBEdit from any NSTextView&lt;br /&gt;
* Menu Accelerator- Marrying Search Kit and NSMenuItem in some sort of unholy union&lt;br /&gt;
* Execute as &lt;a href=&quot;https://www.lua.org/&quot; title=&quot;The Programming Language Lua&quot;&gt;Lua&lt;/a&gt; in any NSTextView&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/flyopt.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;He&amp;#8217;s got a &lt;a href=&quot;https://gusmueller.com/2005/movies/menuacc.mov&quot;&gt;slick video of the Menu Accelerator&lt;/a&gt; and &lt;a href=&quot;https://gusmueller.com/2005/movies/flyopts3.mov&quot;&gt;another one activating a shell script&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;To get it to work with &lt;a href=&quot;https://subtlegradient.com/?s=textmate&quot; title=&quot;search the subtleGradient for TextMate&quot;&gt;TextMate&lt;/a&gt; &amp;#8230;&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.gusmueller.com/blog/archives/2005/12/17.html#1393&quot;&gt;Download the binary&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.gusmueller.com/blog/archives/2005/12/17.html#1393&quot;&gt;Download the source code&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;Unzip&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Open the &lt;code&gt;flyopts.xcodeproj&lt;/code&gt; Xcode project in &lt;code&gt;flyopts_src/&lt;/code&gt;
	&lt;ol&gt;
		&lt;li&gt;Vainly attempt to compile as is (just to test)&lt;/li&gt;
		&lt;li&gt;Fail&lt;/li&gt;
		&lt;li&gt;-Curse- &lt;ins&gt;Grin and bare it&lt;/ins&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Run &lt;code&gt;ranlib&lt;/code&gt; on the files &lt;code&gt;flyopts_src/src/lua/liblua.a flyopts_src/src/lua/liblualib.a&lt;/code&gt; from the terminal&lt;/li&gt;
	&lt;li&gt;Change the string &lt;code&gt;&quot;com.barebones.bbedit&quot;&lt;/code&gt; to &lt;code&gt;&quot;com.macromates.textmate&quot;&lt;/code&gt; on line 64 of the file &lt;code&gt;flyopts_src/src/bbedit/FOODBEditor.m&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Build
	&lt;ol&gt;
		&lt;li&gt;Succeed!&lt;/li&gt;
		&lt;li&gt;Pat yourself on the back, &lt;del&gt;you are now a l33t haxx0r&lt;/del&gt; you&amp;#8217;re almost done!&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Copy your fresh new bundle &lt;code&gt;flyopts_src/build/Development/FlyOpts.bundle&lt;/code&gt; into the &lt;code&gt;FlyOpts/&lt;/code&gt; folder (from step 3), replace the existing bundle&lt;/li&gt;
	&lt;li&gt;Copy the &lt;code&gt;FlyOpts/&lt;/code&gt; folder into &lt;a href=&quot;file://~/Library/InputManagers&quot;&gt;your &lt;code&gt;~/Library/InputManagers/&lt;/code&gt; folder&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Done
	&lt;ol&gt;
		&lt;li&gt;Pop open TextEdit to test it all out.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Set a shortcut&lt;/h3&gt;
&lt;ol&gt;
	&lt;li&gt;Add the line &lt;code&gt;&quot;^j&quot; = &quot;flyoptsODBEdit:&quot;;&lt;/code&gt; to your &lt;a href=&quot;&quot;&gt;&lt;code&gt;~/Library/KeyBindings/DefaultKeyBinding.dict&lt;/code&gt; file&lt;/a&gt;~/Library/KeyBindings/DefaultKeyBinding.dict&lt;/li&gt;
	&lt;li&gt;If this file doesn&amp;#8217;t exist I&amp;#8217;m sure you&amp;#8217;ll &lt;a href=&quot;https://www.macosxhints.com/article.php?story=20010608085847818&quot;&gt;figure it out&lt;/a&gt; ;)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Other InputManager Sweetness&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/iSearchWinShot.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://leverage.sourceforge.net/wiki/index.php/Main_Page&quot;&gt;The Incremental-Search Plugin for Mac OS X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;An InputManager that adds emacs-style Incremental Search to any app using NSTextView&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Pimp My textMate! Hack the UI of your favorite Mac apps!</title>
		<link href="https://subtlegradient.com/articles/articles/2005/12/04/pimp-my-textmate.html.html" />
		<updated>2005-12-04T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/12/04/pimp-my-textmate.html</id>
		<content type="html">&lt;p&gt;I love the way Mac OS X applications work.&lt;br /&gt;
It&amp;#8217;s relatively simple to crack open an app and customize its UI.&lt;/p&gt;
&lt;h1&gt;Pimp my &lt;a href=&quot;https://macromates.com&quot; title=&quot;My favorite text &amp;amp;amp; code editor&quot;&gt;textMate&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;There have been a few people on the &lt;a href=&quot;https://comox.textdrive.com/pipermail/textmate/2005-November/007104.html&quot; title=&quot;[TxMt] Styling the drawer in line with the theme&quot;&gt;textMate mailing-list&lt;/a&gt; recently that have been interested it making the drawer white text on black. I popped open the nibs to see if I could make it happen. &lt;ins&gt;I couldn&amp;#8217;t.&lt;/ins&gt; But, &lt;em&gt;I did do some fun stuff&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://subtlegradient.com/stuff/pimp_textmate.gif&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/pimp_textmate-thumb.gif&quot; title=&quot;Pimped out metal TextMate screenshot&quot; alt=&quot;Pimped out metal TextMate screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Let me show you how to do this right quick.&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://subtlegradient.com/articles/2005/12/04/pimp-my-textmate&quot; title=&quot;Pimp My textMate! Hack the UI of your favorite Mac apps! Extended!&quot;&gt;Read the rest of the article&lt;/a&gt; to find out the thrilling conclusion!&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Find your app
	&lt;ol&gt;
		&lt;li&gt;/Applications/TextMate.app&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Pop open the &lt;code&gt;.app&lt;/code&gt; package
	&lt;ol&gt;
		&lt;li&gt;Right-click the &lt;strong&gt;TextMate&lt;/strong&gt; icon and select &lt;em&gt;Show Package Contents&lt;/em&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Navigate to the English.lproj folder with all the nibs in it
	&lt;ol&gt;
		&lt;li&gt;Or, if your &lt;strong&gt;TextMate.app&lt;/strong&gt; is in your Applications folder, simply click  &lt;a href=&quot;file:///Applications/TextMate.app/Contents/Resources/English.lproj/&quot;&gt;/Applications/TextMate.app/Contents/Resources/English.lproj/&lt;/a&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Double-click the &lt;strong&gt;Document.nib&lt;/strong&gt; file
	&lt;ol&gt;
		&lt;li&gt;This will open in up in Interface Builder, assuming you have the &lt;em&gt;Mac OS X Developer Tools&lt;/em&gt; installed.&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Open up the Inspector panel
	&lt;ol&gt;
		&lt;li&gt;Command-Shift-I or &lt;strong&gt;Tools&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Show Inspector&lt;/strong&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Check the &lt;em&gt;Has Texture&lt;/em&gt; checkbox in the Inspector panel&lt;/li&gt;
	&lt;li&gt;Save&lt;/li&gt;
	&lt;li&gt;Relaunch &lt;strong&gt;TextMate&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;Feel empowered by blatantly flying in the face of the &lt;a href=&quot;https://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGWindows/chapter_17_section_3.html#//apple_ref/doc/uid/20000961-CHDHHBGJ&quot; title=&quot;Introduction to Apple Human Interface Guidelines&quot;&gt;Apple Human Interface Guidelines&lt;/a&gt;
	&lt;ol&gt;
		&lt;li&gt;You rebellious anarchist! ;)&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Repeat this process until you feel hip.&lt;/p&gt;
&lt;h3&gt;There are all kinds of other things you can modify in there.&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Convert &lt;em&gt;Aqua&lt;/em&gt; windows to &lt;em&gt;Metal&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;Convert &lt;em&gt;Metal&lt;/em&gt; windows to &lt;em&gt;Aqua&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;Use the &lt;em&gt;Unified title/toolbar look&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;change buttons, icons, fonts, sizes, etc&amp;#8230;&lt;/li&gt;
	&lt;li&gt;reposition elements&lt;/li&gt;
	&lt;li&gt;add functionality
	&lt;ul&gt;
		&lt;li&gt;I added a indeterminate progress bar to the Web Preview window and bound it &lt;em&gt;hidden&lt;/em&gt; and &lt;em&gt;animate&lt;/em&gt; properties to the isLoading property of the webview.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;#8217;s just insane what all you can do in there.&lt;br /&gt;
&lt;acronym title=&quot;By The Way&quot;&gt;&lt;span class=&quot;caps&quot;&gt;BTW&lt;/span&gt;&lt;/acronym&gt;, Interface Builder automatically makes a backup of any &lt;code&gt;.nib&lt;/code&gt; file you change. No worries!&lt;br /&gt;
Of course, only a fool (or a dangerous rebellious anarchist, like you) would modify anything without making their own backup copy of the original app before making any changes.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Twilight BG FG.tmTheme</title>
		<link href="https://subtlegradient.com/articles/articles/2005/12/02/twilight-bg-fg-tmtheme.html.html" />
		<updated>2005-12-02T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/12/02/twilight-bg-fg-tmtheme.html</id>
		<content type="html">&lt;p&gt;Check out the latest &lt;a href=&quot;https://www.macromates.com/&quot; title=&quot;TextMate by Macromates&quot;&gt;TextMate&lt;/a&gt; theme.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://trippledoubleyou.subtlegradient.com/tmthemes/Twilight%20BG%20FG.tmTheme&quot;&gt;Twilight BG FG.tmTheme&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;img src=&quot;https://trippledoubleyou.subtlegradient.com/tmthemes/TwilightBGFG.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s called Twilight BG FG.&lt;br /&gt;
All I did was&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;take the original Twilight theme and&lt;/li&gt;
	&lt;li&gt;convert all the colors to background colors&lt;/li&gt;
	&lt;li&gt;add transparency to the background colors&lt;/li&gt;
	&lt;li&gt;add back in the foreground colors&lt;/li&gt;
	&lt;li&gt;minor tweaks&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All praise should go to the original author of the Twilight theme. I&amp;#8217;m not sure who that is. but I will link to him as soon as I find out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caution&lt;/strong&gt;: Most people absolutely hate underlined strings. If you are one of these people you can simply remove that in the theme editor yourself.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Dreamhost FastCGI Production mode, Finally</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/30/dreamhost-fastcgi-production-mode-finally.html.html" />
		<updated>2005-11-30T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/30/dreamhost-fastcgi-production-mode-finally.html</id>
		<content type="html">&lt;p&gt;I had hacked my &lt;code&gt;environment.rb&lt;/code&gt; file to force it into &lt;em&gt;development mode&lt;/em&gt; while working on my theme.&lt;/p&gt;
&lt;p&gt;I have just switched back to the normal version of the file. Dreamhost defaults Ruby on Rails to &lt;em&gt;production mode&lt;/em&gt; now. So, this site should be relitively zippy now.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Get IE 5.5+ to support transparent PNGs using Microsoft-chow</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/30/get-ie-5-5-to-support-transparent-pngs-using-microsoft-chow.html.html" />
		<updated>2005-11-30T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/30/get-ie-5-5-to-support-transparent-pngs-using-microsoft-chow.html</id>
		<content type="html">&lt;p style=&quot;float:right;&quot;&gt;&lt;a href=&quot;https://subtlegradient.com/articles/2005/11/30/get-ie-5-5-to-support-transparent-pngs-using-microsoft-chow&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/stuff/PNG_transparency_demonstration_1.png&quot; title=&quot;Get IE 5.5+ to support transparent PNGs using Microsoft-chow -- read more&quot; alt=&quot;Get IE 5.5+ to support transparent PNGs using Microsoft-chow -- read more&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are two ways that i use to solve the transparent &lt;span class=&quot;caps&quot;&gt;PNG&lt;/span&gt; support issue.&lt;/p&gt;
&lt;p&gt;Before we get into those specific methods, we have to make sure only IE is getting fed Microsoft-chow.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://subtlegradient.com/articles/2005/11/30/get-ie-5-5-to-support-transparent-pngs-using-microsoft-chow&quot; title=&quot;Get IE 5.5+ to support transparent PNGs using Microsoft-chow&quot;&gt;Read the rest of the article&lt;/a&gt; for the specifics.&lt;br /&gt;
h2. For IE&amp;#8217;s eyes only&lt;/p&gt;
&lt;p&gt;Use a dedicated &lt;code&gt;hacks_for_ie.css&lt;/code&gt; file and serve that css file via &lt;a href=&quot;https://www.quirksmode.org/css/condcom.html&quot; title=&quot;quirksmode.org&quot;&gt;conditional comments&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;!--[if IE 5]&amp;gt;
  &amp;lt;link href=&quot;/stylesheets/theme/subtletheme_IE5.css&quot; media=&quot;screen&quot; rel=&quot;Stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;
&amp;lt;![endif]--&amp;gt;
&amp;lt;!--[if gt IE 5]&amp;gt;
  &amp;lt;link href=&quot;/stylesheets/theme/subtletheme_IE55.css&quot; media=&quot;screen&quot; rel=&quot;Stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;For &lt;em&gt;non-tiling&lt;/em&gt; transparent background image PNGs&lt;/h2&gt;
&lt;p&gt;Use a proprietary Microsoft &lt;code&gt;filter&lt;/code&gt; property&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;this method effectively replaces the use of PNGs  for background images that don&amp;#8217;t tile.&lt;/li&gt;
	&lt;li&gt;this method is useless against embedded &lt;code&gt;img&lt;/code&gt; tags in the content&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
#search-results1 a, #search-results1 a:link, #search-results1 a:visited {
	background-image: none;
	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='https://subtlegradient.com/images/theme/article.png', sizingMethod='crop');
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;For &lt;code&gt;img&lt;/code&gt; tags in the content&lt;/h2&gt;
&lt;p&gt;Use a proprietary Microsoft &lt;code&gt;.HTC&lt;/code&gt; file to dynamically adds a &lt;strong&gt;JS behavior&lt;/strong&gt; to every &lt;code&gt;img&lt;/code&gt; tag that is a &lt;acronym title=&quot;Portable Network Graphic&quot;&gt;&lt;span class=&quot;caps&quot;&gt;PNG&lt;/span&gt;&lt;/acronym&gt;. It replaces the source of the items with a &lt;code&gt;spacer.gif&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;This method won&amp;#8217;t work with background for &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; background images&lt;/li&gt;
	&lt;li&gt;You must update your servers mime types list to serve &lt;code&gt;.htc&lt;/code&gt; files as &lt;code&gt;text/x-component .htc&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
img {
   behavior: url(&quot;pngbehavior.htc&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;p&gt;For more info on &lt;a href=&quot;https://www.quirksmode.org/css/condcom.html&quot; title=&quot;quirksmode.org&quot;&gt;conditional comments&lt;/a&gt; check out &lt;a href=&quot;https://www.quirksmode.org/css/condcom.html&quot;&gt;quirksmode.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For more info on the wacky Microsoft-chow &lt;code&gt;AlphaImageLoader&lt;/code&gt; and friends, check out &lt;a href=&quot;https://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/reference/filters/AlphaImageLoader.asp&quot;&gt;&lt;span class=&quot;caps&quot;&gt;MSDN&lt;/span&gt; &amp;#8211; AlphaImageLoader Filter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For more info in the pngbehavior.htc method, or to download the &lt;code&gt;pngbehavior.htc&lt;/code&gt; file, check out &lt;a href=&quot;https://www.scss.com.au/family/andrew/webdesign/pngbehavior/&quot; title=&quot;Improved &amp;lt;span class=&amp;quot;caps&amp;quot;&amp;gt;PNG&amp;lt;/span&amp;gt; Behavior &amp;amp;#8211; Web Site Design &amp;amp;#8211; Andrew Gregory&amp;amp;#8217;s Web Pages&quot;&gt;&gt;PNG&lt;/span&gt; Behavior&lt;/a&gt;&lt;br /&gt;
or the original &amp;quot;WebFX &lt;span class=&quot;caps&quot;&gt;PNG&lt;/span&gt; Behavior &amp;quot;:https://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html&lt;/p&gt;
&lt;p&gt;PNG_transparency_demonstration_1.png Image taken from &lt;a href=&quot;https://en.wikipedia.org/wiki/Png&quot;&gt;wikipedia&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Two (count 'em) TWO live search boxes</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/28/two-live-search-boxes.html.html" />
		<updated>2005-11-28T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/28/two-live-search-boxes.html</id>
		<content type="html">&lt;p&gt;I&amp;#8217;m still pretty &lt;strong&gt;{color: green;} green&lt;/strong&gt; when it comes to Ruby on Rails.&lt;/p&gt;
&lt;p&gt;I decided that I wanted to have a live search box on the bottom of &lt;a href=&quot;https://subtlegradient.com/articles/2005/11/26/subtletheme&quot; title=&quot;SubtleTheme&quot;&gt;my theme&lt;/a&gt; for &lt;a href=&quot;https://typogarden.com&quot; title=&quot;The Typo Theme Contest&quot;&gt;the contest&lt;/a&gt;. I also want one for the top of &lt;a href=&quot;https://subtlegradient.com/articles/2005/11/26/subtletheme&quot; title=&quot;SubtleTheme&quot;&gt;my theme&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s really pretty easy to mess around in this code. It all just makes sense (assuming you have a good general idea of what&amp;#8217;s going on).&lt;/p&gt;
&lt;p&gt;Anyway, I just wanted to blog a snippet you can use to have a second live search box in your theme.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;%= start_form_tag({:controller =&amp;gt; 'articles',  :action =&amp;gt; 'search'}, {:method =&amp;gt; 'get', :id =&amp;gt; 'sform1'}) %&amp;gt;
 &amp;lt;h3&amp;gt;&amp;lt;label for=&quot;q&quot;&amp;gt;Search&amp;lt;/label&amp;gt;&amp;lt;input type=&quot;text&quot; id=&quot;q_bottom&quot; name=&quot;q&quot; value=&quot;&quot; size=&quot;15&quot; /&amp;gt;&amp;lt;%= image_tag &quot;theme/spinner.gif&quot;, :id =&amp;gt; 'search_spinner1', :style =&amp;gt; 'display:none;' %&amp;gt;&amp;lt;/h3&amp;gt;

&amp;lt;%= end_form_tag %&amp;gt;
&amp;lt;%= observe_field &quot;q_bottom&quot;, :frequency =&amp;gt; 1, 
    :url =&amp;gt; { :controller =&amp;gt; &quot;live&quot;, :action =&amp;gt; &quot;search&quot; }, 
    :loading =&amp;gt; &quot;Element.show('search_spinner1')&quot;,
    :complete =&amp;gt; &quot;Element.hide('search_spinner1')&quot;,
    :update =&amp;gt; &quot;search-results1&quot;,
    :with =&amp;gt; &quot;'q=' + escape($F('q_bottom'))&quot; -%&amp;gt;
&amp;lt;div id=&quot;search-results1&quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;enjoy :D&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>subtleSpeed typo theme</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/28/subtlespeed.html.html" />
		<updated>2005-11-28T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/28/subtlespeed.html</id>
		<content type="html">&lt;p&gt;I only have 20 minutes to go:&lt;/p&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;a href=&quot;https://subtlegradient.com/typo-themes/subtlespeed.png&quot;&gt;&lt;img src=&quot;https://subtlegradient.com/typo-themes/subtlespeed-thumb.png&quot; title=&quot;Download Fullsize Safari Screenshot of the subtleTheme&quot; alt=&quot;Download Fullsize Safari Screenshot of the subtleTheme&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the permanent &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; to use in my theme.&lt;/p&gt;
&lt;p&gt;Download that puppy here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://subtlegradient.com/typo-themes/subtlespeed-latest.zip&quot; title=&quot;latest version of the subtleTheme&quot;&gt;https://subtlegradient.com/typo-themes/subtlespeed-latest.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;enjoy :D&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>subtletheme</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/26/subtletheme.html.html" />
		<updated>2005-11-26T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/26/subtletheme.html</id>
		<content type="html">&lt;p&gt;This is the permanent &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; to use in my theme.&lt;/p&gt;
&lt;p&gt;Download that puppy here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://subtlegradient.com/typo-themes/subtletheme-latest.zip&quot; title=&quot;latest version of the subtleTheme&quot;&gt;https://subtlegradient.com/typo-themes/subtletheme-latest.zip&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>subtleTheme — Typo Theme Designed By Thomas Aylott of design42</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/26/test-post.html.html" />
		<updated>2005-11-26T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/26/test-post.html</id>
		<content type="html">&lt;p style=&quot;float:right;&quot;&gt;&lt;a href=&quot;https://www.flickr.com/photos/msneato/1254179/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/1/1254179_0234133dca_m.jpg&quot; title=&quot;Jump, Kitty&quot; alt=&quot;Jump, Kitty&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is just a test post to use in the screenshots.&lt;br /&gt;
I had made the &lt;a href=&quot;https://subtlegradient.com/articles/2005/11/07/first-post&quot; title=&quot;First Post! With a really long title just to show off how long title can get and still look good&quot;&gt;First Post&lt;/a&gt; post a few days ago. But, it&amp;#8217;s just way too big for a cute screenshot.&lt;/p&gt;
&lt;p&gt;I would just like to thank you all for taking an interest in my theme, or my blog, or kittens.&lt;br /&gt;
As &lt;cite&gt; &lt;a href=&quot;https://www.wilshipley.com/blog/&quot; title=&quot;Call Me Fishmeal.&quot;&gt;Wil Shipley&lt;/a&gt; &lt;/cite&gt; says in the subtitle of his blog&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8230; Kittens are fuzzy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To that theme, i&amp;#8217;d like to add this:&lt;br /&gt;
&lt;pre style=&quot;clear: both;&quot;&gt;&lt;code&gt;
def fuzzify_kitten
  foreach @kitten do |k|
    k.fuzz
  end
end
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;img src=&quot;https://static.flickr.com/23/38412653_607111d85f_t.jpg&quot; title=&quot;Test image without a link&quot; alt=&quot;Test image without a link&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like to call your attention to the &lt;code&gt;k.fuzz&lt;/code&gt; section of that method. Consider yourself called.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;I really should add a list to this post
	&lt;ul&gt;
		&lt;li&gt;but what kind of list would look right?&lt;/li&gt;
		&lt;li&gt;maybe i&amp;#8217;ll do a &lt;del&gt;componation&lt;/del&gt; &lt;ins&gt;combination&lt;/ins&gt; of types&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;I like cats
	&lt;ol&gt;
		&lt;li&gt;cats like me
		&lt;ol&gt;
			&lt;li&gt;cats like me like to be fuzzy&lt;/li&gt;
		&lt;/ol&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;th&gt;Tables&lt;/th&gt;
		&lt;th&gt;Look&lt;/th&gt;
		&lt;th&gt;Pretty&lt;/th&gt;
		&lt;th&gt;Good&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;I&amp;#8217;d&lt;/td&gt;
		&lt;td&gt;like&lt;/td&gt;
		&lt;td&gt;to&lt;/td&gt;
		&lt;td&gt;think&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;so&lt;/td&gt;
		&lt;td&gt;anyway.&lt;/td&gt;
		&lt;td&gt;Do&lt;/td&gt;
		&lt;td&gt;they?&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</content>
	</entry>
	
	<entry>
		<title>I hate IE!!!!!</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/26/i-hate-ie.html.html" />
		<updated>2005-11-26T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/26/i-hate-ie.html</id>
		<content type="html">&lt;p&gt;Hello.&lt;/p&gt;

&lt;p&gt;I would just like to let everyone know that IE is the devil. Internet Explorer for windows wants to see us all toil endlessly to produce crap. It hates us all and wants to see us rot in the depths!&lt;/p&gt;

&lt;p&gt;Well, the feeling is mutual. It&amp;#8217;s like a drunken tatoo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You&amp;#8217;re stuck with it forever.&lt;/li&gt;

&lt;li&gt;It makes a daily mockery of you.&lt;/li&gt;

&lt;li&gt;You can spend time and money to hide it, or make it look good with your outfit, but it just makes you look stupid and ugly no matter what you try to do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hate you IE. I fart in you&amp;#8217;re general direction. You&amp;#8217;re father was a hamster and your mother smelt of elderberries.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Typo 500 Internal Server Error</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/11/typo-500-internal-server-error.html.html" />
		<updated>2005-11-11T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/11/typo-500-internal-server-error.html</id>
		<content type="html">&lt;p&gt;What is up with all the 500 errors?&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve installed this thing normally. I havn&amp;#8217;t done anything crazy.&lt;/p&gt;

&lt;p&gt;Is there some magic potion I have to sprinkle over my keyboard?&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Flawless upgrade from typo 2.5.6 to 2.5.8 with advanced theme support</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/10/flawless-upgrade.html.html" />
		<updated>2005-11-10T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/10/flawless-upgrade.html</id>
		<content type="html">&lt;p&gt;Despite my reservations that i was going to totally shoot myself in the foot, I took the hop into 2.5.8 just now.&lt;/p&gt;

&lt;p&gt;It went completely smoothly.&lt;/p&gt;

&lt;p&gt;The reason i&amp;#8217;m so nervous is just the wasting of 1.3 good days I had set aside for making my theme for the contest. I tried to upgrade my toe dip 2.5.6 Typo install on Dreamhost to the latest svn trunk. We met with disastrous results. Thereby wasting the afore mentioned 1.3 days struggling helplessly.&lt;/p&gt;

&lt;p&gt;I must say that I do like Typo quite a bit more than i thought I would.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been extremely impressed with Wordpress. My wife has a cute little blog over at &lt;a href='https://ebabystuff.net/'&gt;eBabyStuff.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s been totally painless setting it up and customizing it. We added polls and i&amp;#8217;m in the midst of adding full quizzes.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m sure there was just something minor that I couldn&amp;#8217;t figure out.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m new to Ruby on Rails, but It was love at first sight.&lt;/p&gt;

&lt;p&gt;I switched to textMate after seeing that video. Woo yeah!&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>TextMate Themes</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/09/textmate-themes.html.html" />
		<updated>2005-11-09T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/09/textmate-themes.html</id>
		<content type="html">&lt;a href='https://macromates.com/wiki/pmwiki?n=Themes.UserSubmittedThemes'&gt; https://macromates.com/wiki/pmwiki?n=Themes.UserSubmittedThemes &lt;/a&gt;
&lt;p&gt;I just added a couple of my textMate themes to the macromates wiki. I figure everyone who has their own themes will add them to the page.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Sin city Yellow TextMate Theme</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/09/sin-city-yellow-textmate-theme.html.html" />
		<updated>2005-11-09T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/09/sin-city-yellow-textmate-theme.html</id>
		<content type="html">&lt;a href='https://subtlegradient.com/tmthemes/Sin%20City%202.tmTheme'&gt;Download Sin City Yellow&lt;/a&gt;
&lt;p&gt;This theme is based on the concept of the sin city comic look. Grayscale with a splash of yellow &amp;amp; a touch of brown.&lt;/p&gt;

&lt;p&gt;It really feels more like the film than the comic.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>What version of rails?!?!</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/08/what-version-of-rails.html.html" />
		<updated>2005-11-08T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/08/what-version-of-rails.html</id>
		<content type="html">&lt;p&gt;How do you figure out what version of rails you have installed?&lt;/p&gt;

&lt;p&gt;I finally found out by using the command to create a new rails app and looked in the generated changelog.&lt;/p&gt;

&lt;p&gt;Ug.&lt;/p&gt;

&lt;p&gt;Your should be able to do rails -v or something.&lt;/p&gt;

&lt;p&gt;Any clue? anyone?&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>First Post! With a really long title just to show off how long title can get and still look good ;)</title>
		<link href="https://subtlegradient.com/articles/articles/2005/11/07/first-post.html.html" />
		<updated>2005-11-07T00:00:00-08:00</updated>
		<id>https://subtlegradient.com/articles/articles/2005/11/07/first-post.html</id>
		<content type="html">&lt;p&gt;This is my first post.&lt;/p&gt;
&lt;p&gt;Here is an article.&lt;br /&gt;
bq. A blockquote.&lt;/p&gt;
&lt;h1&gt;header 1&lt;/h1&gt;
&lt;h2&gt;header 2&lt;/h2&gt;
&lt;h3&gt;header 3&lt;/h3&gt;
&lt;h4&gt;header 4&lt;/h4&gt;
&lt;h5&gt;header 5&lt;/h5&gt;
&lt;h6&gt;header 6&lt;/h6&gt;
&lt;table&gt;
	&lt;tr&gt;
		&lt;th&gt;a&lt;/th&gt;
		&lt;th&gt;table&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;of much&lt;/td&gt;
		&lt;td&gt;data&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;oh so much more data&lt;/td&gt;
		&lt;td&gt;even&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;yep&lt;/td&gt;
		&lt;td&gt;lots of the stuff for us&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;img src=&quot;https://static.flickr.com/34/65208268_afdd01bedc_t.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;https://ualuealuealeuale.ytmnd.com&quot;&gt;&lt;img src=&quot;/stuff/batman-ualuealuealeuale.jpg&quot; title=&quot;Batman Ualuealuealeuale&quot; alt=&quot;Batman Ualuealuealeuale&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A list&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;one
	&lt;ul&gt;
		&lt;li&gt;one a
		&lt;ul&gt;
			&lt;li&gt;one a i&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;two
	&lt;ul&gt;
		&lt;li&gt;two a&lt;/li&gt;
		&lt;li&gt;two b&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;three&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;
def chunkify_bacon
  foreach @bacon do |b|
    b.crunch
  end
end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And &lt;code&gt;inline code&lt;/code&gt; of course&lt;/p&gt;
&lt;p&gt;Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of &amp;#8220;de Finibus Bonorum et Malorum&amp;#8221; (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, &amp;#8220;Lorem ipsum dolor sit amet..&amp;#8221;, comes from a line in section 1.10.32.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/81613428@N00/65208268/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/34/65208268_afdd01bedc_t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.flickr.com/photos/81613428@N00/65128703/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/27/65128703_acc7262847_t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.flickr.com/photos/81613428@N00/65128703/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/31/65225982_e1ba8e87de_t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.flickr.com/photos/81613428@N00/65226861/&quot;&gt;&lt;img src=&quot;https://static.flickr.com/35/65226861_4d0ffdf52a_t.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from &amp;#8220;de Finibus Bonorum et Malorum&amp;#8221; by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.&lt;/p&gt;</content>
	</entry>
	
	
</feed>
