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

<channel>
	<title>Borloz.com</title>
	<atom:link href="http://borloz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://borloz.com</link>
	<description>The Online Home of Luke Borloz</description>
	<pubDate>Wed, 17 Feb 2010 03:19:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AppleScript to Ease the Pain of the MINI Audio Interface</title>
		<link>http://borloz.com/applescript-to-ease-the-pain-of-the-mini-audio-interface/</link>
		<comments>http://borloz.com/applescript-to-ease-the-pain-of-the-mini-audio-interface/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 01:53:29 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[applescript]]></category>

		<category><![CDATA[car]]></category>

		<category><![CDATA[mini]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[stereo]]></category>

		<guid isPermaLink="false">http://borloz.com/?p=242</guid>
		<description><![CDATA[About a year ago, I bought a MINI Cooper and I love pretty much everything about it except the audio interface. It seems when they were designing the MINI, the audio interface was last on the list of things to make easy to use.
My main gripe is the scroll knob. It&#8217;s fine for switching radio [...]]]></description>
			<content:encoded><![CDATA[<p>About a year ago, I bought a MINI Cooper and I love pretty much everything about it except the audio interface. It seems when they were designing the MINI, the audio interface was last on the list of things to make easy to use.</p>
<p>My main gripe is the scroll knob. It&#8217;s fine for switching radio stations one at a time, or flipping through tracks on a CD, but when you have an iPod or a flash drive plugged in with a sizable amount of music on it, getting to the music you want to hear is often painfully slow. The problem is that no matter how fast you turn the knob, it scrolls through the music at a constant pace (slow).</p>
<p>I came up with an idea a while back to ease my pain and just got around to finishing it last night, so I thought I&#8217;d share. I wrote an AppleScript that organizes folders according to the letter they begin with. So, for example, let&#8217;s say you have a flash drive full of music that&#8217;s organized by artist (like iTunes organizes your music folder). The script will take all of the artist folders that begin with &#8220;A&#8221; and put them in the &#8220;A&#8221; folder, &#8220;B&#8221; in the &#8220;B&#8221; folder, etc. This way, when you plug the flash drive into your MINI and use the &#8220;DIR&#8221; option to browse the drive, you have a maximum of 27 folders to scroll through (one for each letter of the alphabet and one for artists that start with 0-9).</p>
<h4>A few notes about the script:</h4>
<ul>
<li>First and foremost, I&#8217;m not responsible if the script reorganizes your music library in an undesired manner. The script worked for me using the steps provided on my Mac running OS X. However, I can&#8217;t predict all of the different factors that may cause the script to fail or sort your music incorrectly. I would suggest that you copy (not move) any music you run the script on to a separate folder other than your music library. This way, if something happens, it&#8217;s just a copy that you can delete and your music library will remain in its original state. Now that I&#8217;ve release myself from liability, if you do find a bug in the script, please let me know by leaving a comment.</li>
<li>The script is written in AppleScript, which will only run on Apple computers. If you are running Windows, I&#8217;m sorry, but the script will not work. I may look into writing something that&#8217;s Windows compatible if there is enough demand, but for now it&#8217;s Apple only.</li>
<li>Any folders that begin with &#8220;The &#8221; will be placed in a folder according to the first letter of the second word. For example, &#8220;The Killers&#8221; would be placed in the &#8220;K&#8221; folder.</li>
<li> Any folder that begins with a non-alpha character (such as a number or special character) or begins with &#8220;The &#8221; and the 5th character of the folder name is a non-alpha character will be placed in the &#8220;0-9&#8243; folder.</li>
<li>Only necessary folders will be created. So, if you don&#8217;t have any folders that begin with &#8220;B&#8221;, a &#8220;B&#8221; folder won&#8217;t be created.</li>
<li>I used the script to organize my music by artist because this made the most sense to me, but there is nothing that should prevent you from using it on any folder. For example, if your music is organized by album and you want to sort it into folders based on the first letter of the album, it should work just the same.</li>
</ul>
<h4>Preparing your music for the script:</h4>
<p>Since this is a fairly simplistic script, it relies on your music being somewhat presorted. If your music is not already sorted by artist, iTunes can do it for you:</p>
<ol>
<li> Open iTunes</li>
<li>Click iTunes in the menu bar</li>
<li>Click Advanced</li>
<li>Check the &#8220;Keep iTunes Music folder organized&#8221; option</li>
</ol>
<h4>Installing the script:</h4>
<ol>
<li>Copy the script to /Library/Scripts (you should see a bunch of other scripts that come with OS X in this folder).</li>
<li>If you have the script menu icon in your menu bar (it looks like a little paper scroll), skip to &#8220;Running the script&#8221;.</li>
<li>Open the AppleScript Utility. It can be found in /Applications/AppleScript/AppleScript Utility.</li>
<li>In the Applescript Utility, check the &#8220;Show Script menu in menu bar&#8221; option.</li>
<li>Close the Applescript Utility. You should now have the scroll icon in your menu bar.</li>
</ol>
<h4>Running the script:</h4>
<ol>
<li>Click the AppleScript icon in the menu bar and select the &#8220;MINI Music Organizer&#8221; script in the drop down menu.</li>
<li>Select the folder that contains your music organized by artist.</li>
<li>Click Choose</li>
<li>That&#8217;s it. The script will take anywhere from a few seconds to a few minutes to run depending on how much music you have. When it&#8217;s done, use Finder to browse to the folder you just ran the script on. It should now be organized by letter.</li>
</ol>
<p><strong>Download the script:</strong><br />
<a title="MINI Music Organizer" href="http://borloz.com/files/MINI Music Organizer.scpt" >MINI Music Organizer.scpt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/applescript-to-ease-the-pain-of-the-mini-audio-interface/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Problem with FLIR cSize in Internet Explorer - Solved</title>
		<link>http://borloz.com/problem-with-flir-csize-in-internet-explorer-solved/</link>
		<comments>http://borloz.com/problem-with-flir-csize-in-internet-explorer-solved/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 04:24:50 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Web Programming]]></category>

		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://borloz.com/?p=189</guid>
		<description><![CDATA[Today, I watched a screencast on an awesome replacement for sIFR called FLIR. It addresses the one thing that was holding me back from trying sIFR - I don&#8217;t have Flash.
FLIR works much like sIFR in that it takes text inside an element and replaces it with pretty much any font you&#8217;d like. But, instead [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I watched <a href="http://css-tricks.com/new-screencast-introduction-to-flir/" onclick="javascript:pageTracker._trackPageview('/outbound/article/css-tricks.com');">a screencast</a> on an awesome replacement for <a title="Scalable Inman Flash Replacement" href="http://en.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');">sIFR</a> called <a title="Face Lift Image Replacement" href="http://facelift.mawhorter.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/facelift.mawhorter.net');">FLIR</a>. It addresses the one thing that was holding me back from trying sIFR - I don&#8217;t have Flash.</p>
<p>FLIR works much like sIFR in that it takes text inside an element and replaces it with pretty much any font you&#8217;d like. But, instead of using a Flash movie of your font, it uses <a href="http://php.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/php.net');">PHP</a> and the <a href="http://www.boutell.com/gd/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.boutell.com');">GD</a> library (or optionally <a href="http://www.imagemagick.org/script/index.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.imagemagick.org');">ImageMagick</a>) to replace your text with an image. So, I tried it out on a project that I&#8217;ve been working on lately.</p>
<p>The entire implementation went very smoothly, and I was thrilled with how little effort it took to get it up and running - that is, until I checked things out in IE. For some reason, FLIR&#8217;d fonts in IE don&#8217;t take on the proper font size according to the cSize parameter that FLIR allows you to pass to the <a href="http://facelift.mawhorter.net/doc/flir-js-flirstyle-object" onclick="javascript:pageTracker._trackPageview('/outbound/article/facelift.mawhorter.net');">FLIRStyle object</a>. In fact, passing the cSize parameter seems to make IE ignore the font-size property in your CSS entirely. </p>
<p>Someone <a href="http://forums.mawhorter.net/viewtopic.php?id=135" onclick="javascript:pageTracker._trackPageview('/outbound/article/forums.mawhorter.net');">posted in the FLIR forums</a> that you could just give IE larger font sizes in order to offset the fact that it doesn&#8217;t honor cSize, but that means that everyone who has IE and doesn&#8217;t have Javascript, or has images turned off, will get huge fonts. Even though this would be a pretty small number of people, my OCD got the best of me, and I decided I needed to come up with a way that even those using IE without Javascript would get normal sized fonts. So, I put on my thinking cap and used a combination of rudimentary user-agent detection in PHP and IE&#8217;s <a href="http://msdn.microsoft.com/en-us/library/ms537512.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/msdn.microsoft.com');">conditional comments</a> to make it work for both scenarios. </p>
<p><em>Note: I&#8217;m using jQuery in the example below, but you could just as easily use another Javascript library or pure Javascript.</em></p>
<pre name="code" class="html">

    &lt;!--[if IE]&gt;

        &lt;script type=&quot;text/javascript&quot;&gt;
			// You may have to play with the font size to get it just right
            $(&quot;#header h1 a&quot;).css(&#039;font-size&#039;,&#039;45px&#039;);
        &lt;/script&gt;

    &lt;![endif]--&gt;        

    &lt;script type=&quot;text/javascript&quot;&gt;

        FLIR.init({path:&#039;/flir/&#039;});

        $(&quot;#header h1 a&quot;).each( function() { 

            FLIR.replace( this, new FLIRStyle({ mode:&#039;fancyfonts&#039;, cFont:&#039;gabrielle&#039;

			// If the browser is not IE, then pass the cSize param to the FLIRStyle object
            &lt;? if(!stristr($_SERVER[&#039;HTTP_USER_AGENT&#039;], &#039;MSIE&#039;)) : ?&gt;
                , cSize:&#039;*1.3&#039;
            &lt;? endif; ?&gt;
             })); 

        } );

    &lt;/script&gt;
</pre>
<p>So, as you can see above, I&#8217;m changing the &#8220;font-size&#8221; CSS property (for IE only) right before doing the FLIR replacement. Since this is done in Javascript, I can leave my default font sizes alone, giving IE users without Javascript normal sized fonts, but also adjusting the font size appropriately so the FLIR&#8217;d fonts will turn out correctly.</p>
<p>Other than this minor hiccup, I couldn&#8217;t be happier with FLIR. It&#8217;s easy to implement, allows for graceful degradation for those without Javascript enabled, and lets you use pretty much any True Type font available.</p>
<p><em>Note: If you find FLIR useful, please consider donating to the author. He makes FLIR available free of charge and it&#8217;s very obvious that he&#8217;s spent a significant amount of time in the development and support of a truly wonderful technique. Cory is way too modest and hides the link in the footer of his page, so here&#8217;s it is: <a href="http://facelift.mawhorter.net/donate/" onclick="javascript:pageTracker._trackPageview('/outbound/article/facelift.mawhorter.net');">http://facelift.mawhorter.net/donate/</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/problem-with-flir-csize-in-internet-explorer-solved/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Preventing WordPress Blog Spam with .htaccess</title>
		<link>http://borloz.com/preventing-wordpress-blog-spam-with-htaccess/</link>
		<comments>http://borloz.com/preventing-wordpress-blog-spam-with-htaccess/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 01:46:32 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Web Programming]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://borloz.com/?p=151</guid>
		<description><![CDATA[One of the pain in the butt things about running a blog is that you will invariably have to deal with comment spam. If you are running Wordpress, Askimet does a decent job of catching spam comments, but it still requires you to go through all the comments it catches to make sure it didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>One of the pain in the butt things about running a blog is that you will invariably have to deal with comment spam. If you are running <a href="http://wordpress.org" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordpress.org');">Wordpress</a>, <a href="http://akismet.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/akismet.com');">Askimet</a> does a decent job of catching spam comments, but it still requires you to go through all the comments it catches to make sure it didn&#8217;t mark any valid comments as spam. Needless to say, it gets really annoying really fast to sift through hundreds of spam comments every few days or even every day. But, entering a few rules in your .htaccess file will help keep spammers from even getting as far as Askimet. In fact, it will keep them from getting to your blog all together. Here&#8217;s how&#8230;</p>
<p>First, we&#8217;ll have to do a little investigation. If you are on shared hosting, chances are that you have access to your WordPress database via <a href="http://www.phpmyadmin.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.phpmyadmin.net');">phpMyAdmin</a> or something similar and you can run SQL commands against it. So, open up phpMyAdmin or whatever you use, navigate to your WordPress database, and execute the following SQL:</p>
<pre name="code" class="sql">

select comment_author_ip, count(*)
from wp_comments
where comment_approved &lt;&gt; 1
and comment_content like &#039;%http://%http://%http://%&#039;
group by comment_author_ip
having count(*) &gt; 3
order by count(*) desc
</pre>
<p>What this does is selects the comment author IP from the wp_comments table where the comment is not approved, the comment has at least three links in it, and the IP has left at least 3 comments. Then, it groups all of the distinct IP addresses and orders them in descending order by the count of comments. What you get back should look something like this:</p>
<p><a href="http://borloz.com/wordpress/wp-content/uploads/2009/02/comment-spam.gif" ><img class="border" src="http://borloz.com/wordpress/wp-content/uploads/2009/02/comment-spam-157x300.gif" alt="Comment spammer SQL results" title="Comment spammer SQL results" width="157" height="300" class="alignnone size-medium wp-image-184" /></a></p>
<p>From here we can see our most common offenders. Based on what I am seeing in my results, I can be pretty certain that at least the first 8 IPs belong to spammers. This is because it has only been a few days because since I last checked my comments and nobody leaves 14+ legitimate comments on my blog within the span of a few days.</p>
<p>If you want to be sure that a particular IP address belongs to a spammer, you can look at the individual comments that they&#8217;ve left using this SQL:</p>
<pre name="code" class="sql">

select comment_author_ip, comment_content
from wp_comments
where comment_approved &lt;&gt; 1
and comment_author_ip = &#039;127.0.0.1&#039;
</pre>
<p>where 127.0.0.1 is the IP address of the comment author in question.</p>
<p>Here&#8217;s where the .htaccess file comes in. If you are using permalinks for your blog, WordPress should have already created one for you. If not, simply create a file called .htaccess in your document root. If you want to know more about .htaccess files, see <a href="http://httpd.apache.org/docs/trunk/howto/htaccess.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/httpd.apache.org');">Apache&#8217;s documentation</a>.</p>
<p>Next, open your .htaccess file and insert the following either at the beginning or end of the file:</p>
<pre name="code" class="html">

order allow,deny

deny from 192.168.0.1
deny from 192.168.0.2
deny from 192.168.0.3

allow from all
</pre>
<p>replacing the IP addresses with the ones that came up in the results of the SQL we ran before.</p>
<p>That&#8217;s it. Once you do this, users coming from these IP addresses will no longer be able to get to your blog and therefore can no longer leave spam comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/preventing-wordpress-blog-spam-with-htaccess/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automating Lightbox Galleries Using WordPress and jQuery</title>
		<link>http://borloz.com/automating-lightbox-galleries-using-wordpress-and-jquery/</link>
		<comments>http://borloz.com/automating-lightbox-galleries-using-wordpress-and-jquery/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 03:54:20 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Web Programming]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://borloz.com/?p=78</guid>
		<description><![CDATA[While working on a project today, I had the need to automate the process of setting up the necessary attributes to make the lightbox galleries function properly within each of my WordPress posts. For my particular project, I&#8217;m using Slimbox, but with some very minor syntax variations, you can apply the technique I&#8217;m about to [...]]]></description>
			<content:encoded><![CDATA[<p>While working on a project today, I had the need to automate the process of setting up the necessary attributes to make the lightbox galleries function properly within each of my <a href="http://wordpress.org" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordpress.org');">WordPress</a> posts. For my particular project, I&#8217;m using <a href="http://www.digitalia.be/software/slimbox" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.digitalia.be');">Slimbox</a>, but with some very minor syntax variations, you can apply the technique I&#8217;m about to describe to any of the common lightbox libraries (<a href="http://jquery.com/demo/thickbox/" onclick="javascript:pageTracker._trackPageview('/outbound/article/jquery.com');">Thickbox</a>, <a href="http://www.lokeshdhakar.com/projects/lightbox2/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.lokeshdhakar.com');">Lightbox</a>, <a href="http://www.digitalia.be/software/slimbox" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.digitalia.be');">Slimbox</a>, etc.).</p>
<p>Slimbox uses the title attribute of the anchor tag (&lt;a&gt;) that wraps each image as the caption for the full-sized image. But, when you insert an image from your WordPress media library, it puts the title on the image (&lt;img&gt;) tag, as it should, not the anchor that wraps it. </p>
<p>In the past, I&#8217;ve added the &#8216;rel=&#8221;lightbox&#91;gallery name&#93;&#8221;&#8216; by hand, but in this particular case there were a lot of pictures and the person who manages the content is not a programmer, so here&#8217;s what I did:</p>
<p>First, I&#8217;ll show you the document structure I had to work with:</p>
<pre name="code" class="html">

&lt;div id=&quot;container&quot;&gt;
	&lt;div id=&quot;post-slug-1&quot; class=&quot;post-body&quot;&gt;
		&lt;h2&gt;Post Title 1&lt;/h2&gt;
		&lt;p&gt;
			post content...
		&lt;/p&gt;
		&lt;div class=&quot;images&quot;&gt;
			&lt;a href=&quot;/image1.jpg&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image1-150x150.jpg&quot;
					title=&quot;Title for image 1&quot;/&gt;
			&lt;/a&gt;
			&lt;a href=&quot;/image2.jpg&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image2-150x150.jpg&quot;
					title=&quot;Title for image 2&quot;/&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div id=&quot;post-slug-2&quot; class=&quot;post-body&quot;&gt;
		&lt;h2&gt;Post Title 2&lt;/h2&gt;
		&lt;p&gt;
			post content...
		&lt;/p&gt;
		&lt;div class=&quot;images&quot;&gt;
			&lt;a href=&quot;/image3.jpg&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image3-150x150.jpg&quot;
					title=&quot;Title for image 3&quot;/&gt;
			&lt;/a&gt;
			&lt;a href=&quot;/image4.jpg&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image4-150x150.jpg&quot;
					title=&quot;Title for image 4&quot;/&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>There were two different things that I needed to accomplish:</p>
<ol>
<li>I needed a way to get the title from each image tag to the anchor that wrapped it.</li>
<li>I needed a way to automatically assign the gallery name for each set of images. The gallery name is what&#8217;s inside of the square brackets and groups the images together, such as: &#8216;rel=&#8221;lightbox&#91;gallery name&#93;&#8221;&#8216;. If you&#8217;ll notice in the code above, each div with a class of &#8220;post-body&#8221; also has an id corresponding to the post slug of the post content it wraps. This is done by echoing the &#8220;$post->post_name&#8221; inside &#8220;<a href="http://codex.wordpress.org/The_Loop" onclick="javascript:pageTracker._trackPageview('/outbound/article/codex.wordpress.org');">the loop</a>&#8220;.</li>
</ol>
<p>Here&#8217;s where <a href="http://jquery.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/jquery.com');">jQuery</a> comes in. I&#8217;ll show you the code first and then explain it:</p>
<pre name="code" class="javascript">

$(document).ready(function() {

	setupLightbox();

}); 

function setupLightbox() {

	$(&quot;div.images img&quot;).each(function() {

		// Setup titles on anchors based on image titles that they wrap
		$(this).parent(&quot;a&quot;).attr(&quot;title&quot;,$(this).attr(&quot;title&quot;));

		// Set the rel attribute of the anchor based on the post title
		$(this).parent(&quot;a&quot;).attr(&quot;rel&quot;,&quot;lightbox[&quot; +
		$(this).parents().filter(&quot;.post-body&quot;).attr(&quot;id&quot;) + &quot;]&quot;);

	});

} 
</pre>
<p>What we are doing is looping through the images inside of the div with a class of &#8220;images&#8221;. Inside the loop, we are doing two things:</p>
<ol>
<li>Taking the title from each &lt;img&gt; tag and assigning it to the title attribute of the anchor that wraps it. </li>
<li>Traversing the DOM upwards from each image to grab the id of the parent &lt;div&gt; with a class of post-body. If you remember correctly, we assigned the post slug for each post to the id attribute of this &lt;div&gt;. So, the id attribute of this element makes the perfect (unique) gallery name.</li>
</ol>
<p>Here&#8217;s the final result, after the jQuery code executes:</p>
<pre name="code" class="html">

&lt;div id=&quot;container&quot;&gt;
	&lt;div id=&quot;post-slug-1&quot; class=&quot;post-body&quot;&gt;
		&lt;h2&gt;Post Title 1&lt;/h2&gt;
		&lt;p&gt;
			post content...
		&lt;/p&gt;
		&lt;div class=&quot;images&quot;&gt;
			&lt;a href=&quot;/image1.jpg&quot; title=&quot;Title for image 1&quot;
			rel=&quot;lightbox[post-slug-1]&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image1-150x150.jpg&quot;
					title=&quot;Title for image 1&quot;/&gt;
			&lt;/a&gt;
			&lt;a href=&quot;/image2.jpg&quot; title=&quot;Title for image 2&quot;
			rel=&quot;lightbox[post-slug-1]&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image2-150x150.jpg&quot;
					title=&quot;Title for image 2&quot;/&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div id=&quot;post-slug-2&quot; class=&quot;post-body&quot;&gt;
		&lt;h2&gt;Post Title 2&lt;/h2&gt;
		&lt;p&gt;
			post content...
		&lt;/p&gt;
		&lt;div class=&quot;images&quot;&gt;
			&lt;a href=&quot;/image3.jpg&quot; title=&quot;Title for image 3&quot;
			rel=&quot;lightbox[post-slug-2]&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image3-150x150.jpg&quot;
					title=&quot;Title for image 3&quot;/&gt;
			&lt;/a&gt;
			&lt;a href=&quot;/image4.jpg&quot; title=&quot;Title for image 4&quot;
			rel=&quot;lightbox[post-slug-2]&quot; &gt;
				&lt;img alt=&quot;alt text&quot; src=&quot;/images/image4-150x150.jpg&quot;
					title=&quot;Title for image 4&quot;/&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/automating-lightbox-galleries-using-wordpress-and-jquery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Firefox</title>
		<link>http://borloz.com/microsoft-firefox/</link>
		<comments>http://borloz.com/microsoft-firefox/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 17:40:01 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://borloz.com/microsoft-firefox/</guid>
		<description><![CDATA[This is probably old, but I just saw it today&#8230;
 http://www.msfirefox.com/
Hillarious!
]]></description>
			<content:encoded><![CDATA[<p>This is probably old, but I just saw it today&#8230;</p>
<p><a href="http://www.msfirefox.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.msfirefox.com');"> http://www.msfirefox.com/</a></p>
<p>Hillarious!</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/microsoft-firefox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Super Simple Stylesheet Organization Tip</title>
		<link>http://borloz.com/super-simple-stylesheet-organization-tip/</link>
		<comments>http://borloz.com/super-simple-stylesheet-organization-tip/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 23:15:49 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://borloz.com/super-simple-stylesheet-organization-tip/</guid>
		<description><![CDATA[Everyone has their own way to organize their stylesheets, whether it means using creative indention, separating styles into different sheets according to their function, or any one of 1,000 other ways to keep your sanity when working on a large project. I make use of several of these techniques, but lately, I&#8217;ve been using one [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone has their own way to organize their stylesheets, whether it means using creative indention, separating styles into different sheets according to their function, or any one of 1,000 other ways to keep your sanity when working on a large project. I make use of several of these techniques, but lately, I&#8217;ve been using one in particular that has helped me out a lot as my stylesheets keep growing. I guarantee it will be one of the simplest, but also most helpful tricks you&#8217;ll use.</p>
<p>Basically, like many others, I use comments to signify the start of each section - but with a twist. For instance, I might have something like this:</p>
<pre name="code" class="css">

/** Home page
**********************************/
some styles...

/** About page
**********************************/
some more styles...

/** Signup page
**********************************/
even more styles...
</pre>
<p>Take note that the start of the comment has the forward slash, followed by an asterisk, just like a standard comment, but also includes an additional asterisk. That single extra asterisk separates the section comments from regular comments and is what&#8217;s going to make your life a lot easier. Here&#8217;s how:</p>
<p>Let&#8217;s say you have a stylesheet that&#8217;s 600 lines long. Instead of scrolling through, looking for the section you want to edit, you can just do a &#8220;find&#8221; in your editor for &#8220;/**&#8221; and then jump a section at at time by clicking &#8220;next&#8221;.</p>
<p>You could even take it a step further and use &#8220;/***&#8221; for major sections and &#8220;/**&#8221; for sub-sections. Or, if you prefer, you could use &#8220;/*/&#8221; as the start of your comments. It really doesn&#8217;t matter as long as whatever you choose starts with &#8220;/*&#8221; because anything after that is treated as comment text.</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/super-simple-stylesheet-organization-tip/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hulu - Like On Demand, but Better</title>
		<link>http://borloz.com/hulu-like-on-demand-but-better/</link>
		<comments>http://borloz.com/hulu-like-on-demand-but-better/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 22:30:48 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://borloz.com/hulu-like-on-demand-but-better/</guid>
		<description><![CDATA[Yesterday, Mark Cuban posted about how Hulu is killing YouTube in terms of being able to monetize its content. I had never heard of Hulu, so I checked it out and it&#8217;s awesome. It&#8217;s a video site that has full episodes of television shows, as well as full length movies - like On Demand, but [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, <a href="http://blogmaverick.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/blogmaverick.com');">Mark Cuban</a> posted about how <a href="http://hulu.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/hulu.com');">Hulu</a> is killing <a href="http://youtube.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/youtube.com');">YouTube</a> in terms of being able to monetize its content. I had never heard of Hulu, so I checked it out and it&#8217;s awesome. It&#8217;s a video site that has full episodes of television shows, as well as full length movies - like <a href="http://www.comcast.com/corporate/explore/digitalCable.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.comcast.com');">On Demand</a>, but better.</p>
<p>As of the last year or so, the major TV stations have started providing their shows on their websites, but I like the idea of having it all in one place. This means that I don&#8217;t have to navigate different site structures to get to the video, and then download different media players and codecs in order to be able to watch the video.</p>
<p>If you have a <acronym title="Home Theater Personal Computer">HTPC</acronym> with a web browser, you can watch directly on your TV in your living room.</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/hulu-like-on-demand-but-better/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testing in IE 5, 5.5, 6, and 7 on a Single Machine</title>
		<link>http://borloz.com/testing-in-ie-5-55-6-and-7-on-a-single-machine/</link>
		<comments>http://borloz.com/testing-in-ie-5-55-6-and-7-on-a-single-machine/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 21:02:06 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<category><![CDATA[Linux/UNIX]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://borloz.com/testing-in-ie-5-55-6-and-7-on-a-single-machine/</guid>
		<description><![CDATA[I&#8217;ve always found it a pain to test in the various versions of Internet Explorer. In Windows, there&#8217;s no easy way to install multiple versions, so whether you are working on a physical Windows machine, or a virtual machine via Parallels, VMware or some other virtualization software, proper testing in IE always required at least [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always found it a pain to test in the various versions of Internet Explorer. In Windows, there&#8217;s no easy way to install multiple versions, so whether you are working on a physical Windows machine, or a virtual machine via <a href="http://www.parallels.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.parallels.com');">Parallels</a>, <a href="http://vmware.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/vmware.com');">VMware</a> or some other virtualization software, proper testing in IE always required at least two or three separate machines.</p>
<p>The other day a co-worker showed me a cool little setup that will allow you to test in IE5, 5.5, 6, and 7 on the same physical Windows XP machine. I suppose this would also work on a virtualized copy of Windows XP on a Mac, but since this solution involves virtualization, you&#8217;d be running a virtual machine inside of another virtual machine, which means you&#8217;d need a heck of a powerful system.</p>
<p>Assuming you are running Windows XP, you should already have a copy of IE7 installed. One IE down, 3 more to go. So, here&#8217;s how to get the rest of them:</p>
<ol>
<li>Download <a href="http://www.virtualbox.org/wiki/Downloads" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.virtualbox.org');">VirtualBox</a> and follow the installation instructions.</li>
<li>Grab the .iso for your choice of Linux distro (Ubuntu, Kubuntu, Xubuntu, Fedora, Gentoo, Debian, Suse, Mandriva, or PCLinuxOS should work at the time of this writing) . I used <a href="http://www.ubuntu.com/GetUbuntu/download" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ubuntu.com');">Ubuntu</a> in my setup.</li>
<li>Launch VirtualBox and setup a new virtual machine for your Linux distro.</li>
<li>Start the virtual machine and follow the prompts in the First Run wizard, making sure to set your media source to the Linux .iso you just downloaded.</li>
<li>Click Finish at the end of the wizard and your Linux distro should start the installation process (this process will vary depending on your distro of choice).</li>
<li>Visit the <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.tatanka.com.br');">IEs4Linux website</a> and follow the <a href="http://www.tatanka.com.br/ies4linux/page/Installation" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.tatanka.com.br');">instructions to install cabextract, Wine and IEs4Linux</a>.</li>
<li>Once you&#8217;re done with the install, you should have icons on your Linux desktop for each of the IEs that you installed. Just double-click and point them at the URL you want to test!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/testing-in-ie-5-55-6-and-7-on-a-single-machine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Link Highlighter Bookmarklet</title>
		<link>http://borloz.com/link-highlighter-bookmarklet/</link>
		<comments>http://borloz.com/link-highlighter-bookmarklet/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 01:55:23 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://borloz.com/link-highlighter-bookmarklet/</guid>
		<description><![CDATA[From time to time, I&#8217;ll come across a blog or article on the web where the person has chosen to remove the underline from their links and/or change the link color, but didn&#8217;t make the color easy enough to distinguish from the body text. This seems to be especially common for links that have already [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time, I&#8217;ll come across a blog or article on the web where the person has chosen to remove the underline from their links and/or change the link color, but didn&#8217;t make the color easy enough to distinguish from the body text. This seems to be especially common for links that have already been visited, because the default color for visited links is a dark purple, and most text on the web is black. I grew a little frustrated with this situation and thought it might be helpful to create a bookmarklet that highlights all the links on the page.</p>
<p>To use the bookmarklet, just drag the link below to your bookmarks bar.</p>
<p><a href="javascript:if(!document.getElementById('lnkHltr')){var%20h=document.createElement('script');h.setAttribute('id','lnkHltr');h.setAttribute('src','http://borloz.com/utils/bookmarklets/link-highlighter/link-highlighter-min.js" onclick="javascript:pageTracker._trackPageview('/downloads/utils/bookmarklets/link-highlighter/link-highlighter-min.js');");document.getElementsByTagName('body')[0].appendChild(h);void(h);}">Link Highlighter</a></p>
<p>When the highlighter is active, you&#8217;ll see a &#8220;Remove Link Highlight&#8221; overlay at the top-center of the browser window. To disable link highlighting, just click the overlay text.</p>
<p>So far, it&#8217;s been tested and working in Firefox 2/Mac/Win and Safari 3/Mac/Win.</p>
<p>Known issues:</p>
<ul>
<li> Does not work in IE - I keep getting a vague error message about an error at line x, char x and simply haven&#8217;t spent the time to get it working right for lack of a decent way to debug JavaScript in IE.</li>
<li> Does not highlight links in iframes.</li>
</ul>
<p>Please leave me a comment if you find any issues not mentioned above. Be gentle -  this is my first bookmarklet, so there may be other issues I&#8217;m not aware of.</p>
<p>Since this bookmarklet was created for personal use and currently meets my needs, I&#8217;m debating on whether to fix the above issues. However, if there is enough demand to fix them, I&#8217;ll certainly consider it. Please leave a comment to let me know that you are using it.</p>
<p>Also, if anyone knows of a decent way to debug JavaScript in IE without purchasing Microsoft software (Office or Visual Studio), please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/link-highlighter-bookmarklet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My New TiVo Arrived Today</title>
		<link>http://borloz.com/my-new-tivo-arrived-today/</link>
		<comments>http://borloz.com/my-new-tivo-arrived-today/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 23:35:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://borloz.com/my-new-tivo-is-arrived-today/</guid>
		<description><![CDATA[My new TiVo arrived today, and it&#8217;s not just an 80-hour unit, it also has dual tuners! This means I can record two shows at once, or watch live TV while another is recording. Woohoo!
Thankfully, I didn&#8217;t have to go through the activation process again. When I setup my original TiVo, I had to bring [...]]]></description>
			<content:encoded><![CDATA[<p>My new TiVo arrived today, and it&#8217;s not just an 80-hour unit, it also has dual tuners! This means I can record two shows at once, or watch live TV while another is recording. Woohoo!</p>
<p>Thankfully, I didn&#8217;t have to go through the activation process again. When I setup my original TiVo, I had to bring it to a friend&#8217;s house to use his phone line, since I don&#8217;t have a land line. I guess since I had already activated my account, I didn&#8217;t need to go through whatever requires the phone line.</p>
<p>So it&#8217;s no more live TV for me anymore. Let&#8217;s hope this one holds up a little better than the last&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://borloz.com/my-new-tivo-arrived-today/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
