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

<channel>
	<title>Paul Tow &#187; How to</title>
	<atom:link href="http://www.paultow.com/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paultow.com</link>
	<description>Tech writer for hire</description>
	<lastBuildDate>Thu, 24 Dec 2009 21:32:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>How to: Get started with a Mac</title>
		<link>http://www.paultow.com/2009/06/18/new-to-mac/</link>
		<comments>http://www.paultow.com/2009/06/18/new-to-mac/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 23:29:21 +0000</pubDate>
		<dc:creator>Paul Tow</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[newbie]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[switcher]]></category>

		<guid isPermaLink="false">http://www.paultow.com/?p=273</guid>
		<description><![CDATA[If you&#8217;re new to the Mac, welcome. I hope you enjoy it, and I&#8217;d like to point you to some resources to help you get started. Apple, of course, provides some help itself. The Mac comes with a useful but often forgotten Help menu. Apple provides a support site, AppleCare phone number, and genius bars [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.apple.com"><img class="alignright size-full wp-image-276" title="Mac logo" src="http://www.paultow.com/wp-content/uploads/2009/06/finder.png" alt="Mac logo" width="128" height="128" /></a></p>
<p>If you&#8217;re new to the Mac, welcome. I hope you enjoy it, and I&#8217;d like to point you to some resources to help you get started. Apple, of course, provides some help itself. The Mac comes with a useful but often forgotten Help menu. Apple provides a <a href="http://www.apple.com/support">support site</a>, <a href="http://www.apple.com/support/products/">AppleCare</a> phone number, and genius bars at their <a href="http://www.apple.com/retail">retail stores</a> where you can go to ask questions. Then, of course, there&#8217;s <a href="http://www.google.com/mac/">Google</a>. Let&#8217;s move beyond those, though.<span id="more-273"></span></p>
<p>Even in the age of the Internet, there&#8217;s nothing quite like a book to give you a nice starting point. <a href="http://en.wikipedia.org/wiki/David_Pogue">David Pogue</a> has written some excellent books, such as <a href="http://oreilly.com/catalog/9780596514129?CMP=ILC-MMh0me">Switching to the Mac: The Missing Manual, Leopard edition</a> and <a href="http://oreilly.com/catalog/9780596529529?CMP=ILC-MMh0me">Mac OS X Leopard: The Missing Manual</a>. Reading either of those from start to finish would get you off to a great start.</p>
<p>Popular Mac magazines include <a href="http://www.macworld.com">MacWorld</a> and <a href="http://www.maclife.com">Mac|Life</a>, but frankly I&#8217;ve come to prefer the Internet because it&#8217;s so much more up-to-date.  <a href="http://en.wikipedia.org/wiki/Don_McAllister">Don McAllister</a> has a video tutorial podcast named <a href="http://www.screencastsonline.com/">ScreenCastsOnline</a>, which has both free and paid lessons. <a href="http://www.typicalmacuser.com/wordpress/about-the-hostproducer/">Victor Cajiao</a> has a free audio podcast called <a href="http://www.typicalmacuser.com">Typical Mac User</a>. For Mac news, there&#8217;s <a href="http://www.maccast.com/about-adam/">Adam Christianson</a>&#8216;s <a href="http://www.maccast.com/">MacCast</a> and the TWiT network&#8217;s <a href="http://www.twit.tv/mbw">MacBreak Weekly</a>. As for regular websites, you can try <a title="The Unofficial Apple Weblog" href="http://www.tuaw.com">TUAW</a> and <a href="http://www.mac-forums.com/">Mac Forums</a>.</p>
<p>The best places for finding software are <a href="http://www.iusethis.com/">IUseThis</a>, <a href="http://www.macupdate.com">MacUpdate</a>, and <a href="http://www.versiontracker.com">VersionTracker</a>. Each are directories of Mac software from all over the web, but IUseThis puts an interesting twist on that. People can register on IUseThis and tell it what software they actually use. Not just <em>have</em>, but <em>actually use</em>. IUseThis then ranks all apps based on <a href="http://osx.iusethis.com/top">number of users</a> or <a href="http://osx.iusethis.com/interesting">recent spikes in interest</a>. It&#8217;s a great way to discover new apps, and I&#8217;ve only scratched the surface. It&#8217;s worth pointing out that many of the best Mac apps are either freeware or inexpensive shareware.</p>
<p>Hopefully this helps. If you&#8217;ve got any further suggestions, please share them in the comments. Also, notice the &#8220;Share&#8221; link below for passing this on to someone you know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paultow.com/2009/06/18/new-to-mac/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to: A more balanced iTunes shuffle</title>
		<link>http://www.paultow.com/2009/06/11/a-more-balanced-itunes-shuffle/</link>
		<comments>http://www.paultow.com/2009/06/11/a-more-balanced-itunes-shuffle/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 22:04:40 +0000</pubDate>
		<dc:creator>Paul Tow</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[shuffle]]></category>
		<category><![CDATA[smart playlists]]></category>
		<category><![CDATA[smart playlists ideas]]></category>

		<guid isPermaLink="false">http://www.paultow.com/?p=71</guid>
		<description><![CDATA[iTunes&#8217; shuffle gives songs that were played 100 times the same chance of being played as songs that have never been played at all. Learn how to get a more balanced shuffle, while avoiding unwanted content, such as out-of-season holiday music. Unlike adjustments made to iTunes smart shuffle slider, this method will also apply to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-226" title="iTunes logo" src="http://www.paultow.com/wp-content/uploads/2009/06/itunes7-bluenote-thumb-242x234-thumb-242x234-thumb-242x234-150x150.jpg" alt="iTunes logo" width="150" height="150" />iTunes&#8217; shuffle gives songs that were played 100 times the same chance of being played as songs that have never been played at all. Learn how to get a more balanced shuffle, while avoiding unwanted content, such as out-of-season holiday music. Unlike adjustments made to iTunes smart shuffle slider, this method will also apply to your iPod.<span id="more-71"></span></p>
<p><br class="spacer_" /></p>
<h3>Introduction to smart playlists</h3>
<p>iTunes has a feature called smart playlists. Unlike manually populated regular playlists, smart playlists are automatically populated by iTunes based on criteria that you specify. Also, they can automatically update as content is added to your library, or as information about an item changes. For example, you can make a smart playlist for a particular decade, or for songs with particular ratings. As you add more music from that decade, or as you change the ratings of your music, those smart playlists will automatically reflect those changes.</p>
<p>You create a smart playlist by choosing &#8220;File&#8221; -&gt; &#8220;New Smart Playlist&#8230;&#8221; For more information, see the iLounge.com article, <a href="http://www.ilounge.com/index.php/articles/comments/how-to-create-smart-playlists-in-itunes/">&#8220;How to create smart playlists.&#8221;</a></p>
<p><br class="spacer_" /></p>
<h3>How this will work</h3>
<p>Smart playlists can work together with each other by requiring their items to be in a particular playlist or not be in a particular playlist. This very powerful feature is <em>critical</em> to this guide: four playlists will be working together to produce a single playlist, which we&#8217;ll call &#8220;Balanced.&#8221; That may sound complicated, but you only have to set it up once, and the results are absolutely worth it.</p>
<p><br class="spacer_" /></p>
<h3>Playlist 1: &#8220;Blocklist&#8221;</h3>
<div class="mceTemp">
<dl id="attachment_93" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.paultow.com/wp-content/uploads/2009/06/blocklist.jpg"><img class="size-thumbnail wp-image-93" title="Blocklist" src="http://www.paultow.com/wp-content/uploads/2009/06/blocklist-150x150.jpg" alt="Screenshot. For blocklist, use whichever rules you like. Your library needs its own rules, because it is different than mine." width="150" height="150" /></a></dt>
</dl>
</div>
<p>You might have some content you <em>don&#8217;t</em> want coming up on shuffle. Create a smart playlist called &#8220;Blocklist&#8221; of items which meet &#8220;any&#8221; of your unwanted criteria. Give it some thought. Some examples: Christmas music, videos, items below a certain rating or above/below a certain length, and spoken word like podcasts or audiobooks.</p>
<p>Once you have a playlist containing everything you <em>don&#8217;t</em> want, other smart playlists will be able to exclude anything found in that playlist. By doing it this way, you can block unwanted items in multiple smart playlists without unnecessary duplication of rules.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h3>Playlists 2 &amp; 3: &#8220;Been a while&#8221; &amp; &#8220;Forgotten&#8221;</h3>
<p>Half of &#8220;Balanced&#8221; is going to be the least often played of the least recently played music in your library. You will need two playlists to accomplish this. You will also need to decide how much content you ultimately want in your &#8220;Balanced&#8221; playlist, in terms of either time, file size (MB/GB), or number of items. You might want to base it on, for example, the size of an audio CD (80 minutes) or MP3 CD (X number of MB) for easy burning.</p>
<div class="mceTemp">
<dl id="attachment_94" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.paultow.com/wp-content/uploads/2009/06/been_a_while.jpg"><img class="size-thumbnail wp-image-94" title="Been a while" src="http://www.paultow.com/wp-content/uploads/2009/06/been_a_while-150x150.jpg" alt="Screenshot" width="150" height="150" /></a></dt>
</dl>
</div>
<p><br class="spacer_" /></p>
<p>Create a smart playlist called &#8220;Been a while&#8221; with this rule: &#8220;Playlist&#8221; &#8220;is not&#8221; &#8220;Blocklist.&#8221; Below that, tell it to &#8220;limit to&#8221; your desired limit (see previous paragraph), selected by &#8220;least recently played.&#8221;</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div class="mceTemp">
<dl id="attachment_96" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.paultow.com/wp-content/uploads/2009/06/forgotten.jpg"><img class="size-thumbnail wp-image-96" title="Forgotten" src="http://www.paultow.com/wp-content/uploads/2009/06/forgotten-150x150.jpg" alt="Screenshot" width="150" height="150" /></a></dt>
</dl>
</div>
<p><br class="spacer_" /></p>
<p>Next, create a smart playlist called &#8220;Forgotten&#8221; with this rule: &#8220;Playlist&#8221; &#8220;is&#8221; &#8220;Been a while.&#8221; Give it half the limit you set for &#8220;Been a while,&#8221; selected by &#8220;least often played.&#8221;</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h3>Playlist 4: &#8220;Randomness&#8221;</h3>
<p>The other half of the Balanced playlist is made up of just one playlist. If &#8220;Balanced&#8221; was purely made up of the previous playlists, then over time your content would keep playing in a similar order. To mix things up, you still need some true randomness.</p>
<div class="mceTemp">
<dl id="attachment_97" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.paultow.com/wp-content/uploads/2009/06/random_injection.jpg"><img class="size-thumbnail wp-image-97" title="Random Injection" src="http://www.paultow.com/wp-content/uploads/2009/06/random_injection-150x150.jpg" alt="Screenshot" width="150" height="150" /></a></dt>
</dl>
</div>
<p><br class="spacer_" /></p>
<p>Create a smart playlist called &#8220;Randomness.&#8221; Tell it to match &#8220;all&#8221; of the following three rules: (1) &#8220;Playlist&#8221; &#8220;is not&#8221; &#8220;Blocklist,&#8221; (2) &#8220;Playlist&#8221; &#8220;is not&#8221; &#8220;Forgotten,&#8221; and (3) &#8220;Last played&#8221; &#8220;is not in the last&#8221; [some threshold]. I personally chose two weeks as my threshold. Give &#8220;Randomness&#8221; the same limit as &#8220;Forgotten,&#8221; but make it selected by &#8220;random.&#8221;</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h3>Finally, &#8220;Balanced&#8221;</h3>
<div class="mceTemp">
<dl id="attachment_98" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://www.paultow.com/wp-content/uploads/2009/06/balanced.jpg"><img class="size-thumbnail wp-image-98" title="Balanced" src="http://www.paultow.com/wp-content/uploads/2009/06/balanced-150x150.jpg" alt="Screenshot" width="150" height="150" /></a></dt>
</dl>
</div>
<p><br class="spacer_" /></p>
<p>The  &#8220;Balanced&#8221; playlist itself is very simple. Tell it to match &#8220;any&#8221; of the following two rules: (1) &#8220;Playlist&#8221; &#8220;is&#8221; &#8220;Forgotten&#8221; or (2) &#8220;Playlist&#8221; &#8220;is&#8221; &#8220;Randomness&#8221; and press &#8220;OK.&#8221; Choose &#8220;File&#8221; -&gt; &#8220;New Playlist Folder&#8221; and create a folder that you can tuck the other playlists into. You&#8217;re done! Now sit back, relax, and enjoy a library that is always fresh!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paultow.com/2009/06/11/a-more-balanced-itunes-shuffle/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to: Block ads with a router</title>
		<link>http://www.paultow.com/2009/06/10/how-to-block-ads-with-a-router/</link>
		<comments>http://www.paultow.com/2009/06/10/how-to-block-ads-with-a-router/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:56:46 +0000</pubDate>
		<dc:creator>Paul Tow</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[ad]]></category>
		<category><![CDATA[ad-blocking]]></category>
		<category><![CDATA[adblock]]></category>
		<category><![CDATA[annoyances]]></category>
		<category><![CDATA[Linksys]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[Tomato]]></category>

		<guid isPermaLink="false">http://www.paultow.com/?p=65</guid>
		<description><![CDATA[Does the idea of blocking online advertisements appeal to you? Many solutions exist, such as the AdBlock Plus extension for Firefox, CSS-based ad-blocking, and Privoxy. What you may not be familiar with, however, is using a router to block ads. Imagine: ad-blocking for an entire network, for all browsers and all operating systems, without any [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Linksys WRT54G" src="http://www-es.linksys.com/servlet/Satellite?blobcol=urldata&amp;blobheadername1=Content-Type&amp;blobheadername2=Content-Disposition&amp;blobheadervalue1=image%2Fjpeg&amp;blobheadervalue2=inline%3B+filename%3DWRT54GL_med%252C2.jpg&amp;blobkey=id&amp;blobtable=MungoBlobs&amp;blobwhere=1130868514220&amp;ssbinary=true" alt="" width="135" height="114" />Does the idea of blocking online advertisements appeal to you? Many solutions exist, such as the <a href="http://www.adblockplus.org/">AdBlock Plus</a> extension for Firefox, CSS-based ad-blocking, and <a href="http://www.privoxy.org/">Privoxy</a>. What you may not be familiar with, however, is using a router to block ads. Imagine: ad-blocking for an entire network, for all browsers and all operating systems, without any additional configuration on the clients. This includes devices which might not otherwise have a way to block ads, and it can be made even nicer by having the router automatically update its ad-blocking rules. All you need is the <a href="http://www.polarcloud.com/tomato">Tomato firmware</a> on a compatible router and this guide.<span id="more-65"></span></p>
<ol>
<li>Check if you have a <a href="http://www.polarcloud.com/tomatofaq#what_will_this_run_on">compatible router</a>. If you do, follow the installation instructions carefully, realizing that you are modifying firmware at your own risk. Set your router as you like and then continue to step 2.</li>
<li>
<div id="attachment_48" class="wp-caption alignleft" style="width: 160px"><a href="http://www.paultow.com/wp-content/uploads/2007/07/tomato-init.jpg"><img class="size-thumbnail wp-image-48" title="Init script" src="http://www.paultow.com/wp-content/uploads/2007/07/tomato-init-150x150.jpg" alt="Administration -&gt; Scripts -&gt; Init" width="150" height="150" /></a><p class="wp-caption-text">Administration -&gt; Scripts -&gt; Init</p></div>
<p><br class="spacer_" /></p>
<p>In your router&#8217;s config panel, go to Administration -&gt; Scripts. Paste the following in the &#8220;Init&#8221; script, which will run when the router is booted. This will create an empty text file called adblock.conf</p>
<pre>sleep 3
touch /etc/adblock.conf
sleep 2
logger adblock.conf created</pre>
</li>
<p><br class="spacer_" /></p>
<li>
<p><div id="attachment_49" class="wp-caption alignleft" style="width: 160px"><a href="http://www.paultow.com/wp-content/uploads/2007/07/tomato-wan_up.jpg"><img class="size-thumbnail wp-image-49" title="WAN Up script" src="http://www.paultow.com/wp-content/uploads/2007/07/tomato-wan_up-150x150.jpg" alt="Administration -&gt; Scripts -&gt; WAN Up" width="150" height="150" /></a><p class="wp-caption-text">Administration -&gt; Scripts -&gt; WAN Up</p></div> <br class="spacer_" /></p>
<p>Once the router obtains an Internet/WAN connection, we want it to download the latest ad server list. Still under Administration -&gt; Scripts, choose WAN Up and paste the following:</p>
<pre>logger WAN UP Script will execute after 30sec please wait.....
sleep 30
wget -O /etc/adblock.conf "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&amp;showintro=0&amp;mimetype=plaintext"
service dnsmasq restart</pre>
</li>
<p> <br class="spacer_" /></p>
<li>
<p><div id="attachment_50" class="wp-caption alignleft" style="width: 160px"><a href="http://www.paultow.com/wp-content/uploads/2007/07/tomato-custom_1.jpg"><img class="size-thumbnail wp-image-50" title="Custom scheduler" src="http://www.paultow.com/wp-content/uploads/2007/07/tomato-custom_1-150x150.jpg" alt="Advanced -&gt; Scheduler" width="150" height="150" /></a><p class="wp-caption-text">Advanced -&gt; Scheduler</p></div> <br class="spacer_" /></p>
<p>Now we want to set the router to update its ad blocking rules on a regular basis. Go to Administration -&gt; Scheduler.</p>
</li>
<p><br class="spacer_" /><br class="spacer_" /><br class="spacer_" /><br class="spacer_" /></p>
<li>
<p>Check the box labeled &#8220;Enabled&#8221; under Custom 1, 2, or 3.</p>
</li>
<li>For the time, choose a reasonable update interval that isn&#8217;t overly aggressive. I chose to update once a week (every 10080 minutes, Everyday).</li>
<li>Paste the following into the box labeled &#8220;Command.&#8221;
<pre>wget -O /etc/adblock.conf "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&amp;showintro=0&amp;mimetype=plaintext" &amp;&amp; service dnsmasq restart;</pre>
</li>
<li>
<p><div id="attachment_51" class="wp-caption alignleft" style="width: 160px"><a href="http://www.paultow.com/wp-content/uploads/2007/07/tomato-dnsmasq.jpg"><img class="size-thumbnail wp-image-51" title="DNSmasq" src="http://www.paultow.com/wp-content/uploads/2007/07/tomato-dnsmasq-150x150.jpg" alt="Advanced -&gt; DHCP / DNS" width="150" height="150" /></a><p class="wp-caption-text">Advanced -&gt; DHCP / DNS</p></div> <br class="spacer_" /></p>
<p>Almost done! Go to Advanced -&gt; DHCP / DNS, and make sure that &#8220;Use Internal Caching DNS Forwarder&#8221; is checked.</p>
</li>
<p> <br class="spacer_" /><br class="spacer_" /><br class="spacer_" /><br class="spacer_" /></p>
<li>
<p>Paste the following into the box labeled &#8220;Dnsmasq custom configuration.&#8221;</p>
<pre>conf-file=/etc/adblock.conf</pre>
</li>
<li>If you ever suspect that the adblocking is breaking a particular website (such as streaming video), you can temporarily disable it just by removing the text in step 9.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.paultow.com/2009/06/10/how-to-block-ads-with-a-router/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>How to: Download YouTube videos in 720p HD</title>
		<link>http://www.paultow.com/2008/11/25/how-to-download-youtube-videos-in-720p-hd/</link>
		<comments>http://www.paultow.com/2008/11/25/how-to-download-youtube-videos-in-720p-hd/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 19:51:21 +0000</pubDate>
		<dc:creator>Paul Tow</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[HD]]></category>
		<category><![CDATA[high definition]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.paultow.com/?p=208</guid>
		<description><![CDATA[Update: My bookmarklet has been broken by Google, but the script it was based on has been fixed and has added support for 720p HD downloading. Use that instead. In addition to expanding their player to 960px wide for all videos, YouTube received a more quiet upgrade today. In addition to normal quality and high [...]]]></description>
			<content:encoded><![CDATA[<p><br class="spacer_" /></p>
<div id="attachment_211" class="wp-caption alignright" style="width: 160px"><a href="http://www.paultow.com/wp-content/uploads/2008/11/720p_youtube-big_buck_bunny.png"><img class="size-thumbnail wp-image-211" title="Screenshot of &quot;Big Buck Bunny&quot; as a 720p YouTube video" src="http://www.paultow.com/wp-content/uploads/2008/11/720p_youtube-big_buck_bunny-150x150.png" alt="720p video from YouTube. Yes, YouTube. Click to enlarge." width="150" height="150" /></a><p class="wp-caption-text">720p video from YouTube. Yes, YouTube. Click to enlarge.</p></div>
<p><br class="spacer_" /></p>
<p><strong>Update: My bookmarklet has been broken by Google, but <a href="http://googlesystem.blogspot.com/2008/04/download-youtube-videos-as-mp4-files.html">the script it was based on</a> has been fixed and has added support for 720p HD downloading. Use that instead.</strong></p>
<p><br class="spacer_" /></p>
<p>In addition to expanding their player to 960px wide for all videos, YouTube received a more quiet upgrade today. In addition to normal quality and high quality, they have now added 720p HD video. Few HD YouTube videos exist at the moment, but for those that do you can simply append &amp;fmt=22 to the end of the URL. Interestingly, I seem to be the first to have figured out how to actually download (rather than stream) these new 720p HD videos directly from YouTube.<span id="more-208"></span></p>
<p>Simply drag this link to your bookmarks bar:  <a href="javascript:if%20(document.getElementById('download-youtube-video')==null%20&amp;&amp;%20!!(document.location.href.match(/http:%5C/%5C/%5Ba-zA-Z%5C.%5D*youtube%5C.com%5C/watch/)))%20%7Bvar%20yt_mp4_path='http://www.youtube.com/get_video?fmt=22&amp;video_id='+swfArgs%5B'video_id'%5D+'&amp;t='+swfArgs%5B't'%5D;%20var%20div_embed=document.getElementById('watch-embed-div');div_embed.innerHTML=div_embed.innerHTML+'%3Cbr%20/%3E%20%3Cspan%20id=%5C'download-youtube-video%5C'%3E%3Ca%20href=%5C''+yt_mp4_path+'%5C'%3EDownload%20as%20720p%20HD%20MP4%3C/a%3E%20'+%20%20((navigator.userAgent.indexOf('Safari')!=-1)?'(control-click%20and%20select%20%3Ci%3EDownload%20linked%20file%20as%3C/i%3E)':('(right-click%20and%20select%20%3Ci%3ESave%20'+%20(navigator.appName=='Microsoft%20Internet%20Explorer'?'target':'link')%20+'%20as)%3C/i%3E'))+'%3C/span%3E';%7Dvoid(0);">DL YouTube HD</a></p>
<p>This is what is known as a bookmarklet, a JavaScript bookmark able to act on the current page. To use it, find a YouTube video that&#8217;s available in 720p (<a title="Big Buck Bunny" href="http://www.youtube.com/watch?v=wUPcimeiqLE">example</a>). Click on the bookmarklet, and at the bottom of the gray info box on the right a link labled &#8220;<span id="download-youtube-video">Download as 720p HD MP4&#8243; will appear. Right-click and save, and the download will begin.<br />
 </span></p>
<p><span><strong>Credits: </strong>My bookmarklet is a modification of <a href="http://googlesystem.blogspot.com/2008/04/download-youtube-videos-as-mp4-files.html">googlesystem.blogspot.com&#8217;s bookmarklet</a> for downloading high quality (but not HD) YouTube videos, which I found via <a href="http://www.macosxhints.com/article.php?story=20080421213854552">robotdestroy on MacOSXHints</a>.</span></p>
<p><span><strong>Update:</strong> After seeing my bookmarklet, </span><a href="http://nathanhammond.com/youtube-hd-download-bookmarklet">Nathan Hammond</a> took it even further by making his own bookmarklet that automatically starts the download. Very nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paultow.com/2008/11/25/how-to-download-youtube-videos-in-720p-hd/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>How to: Use Twitter for software update notifications</title>
		<link>http://www.paultow.com/2007/07/10/use-twitter-for-software-update-notifications/</link>
		<comments>http://www.paultow.com/2007/07/10/use-twitter-for-software-update-notifications/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 05:14:10 +0000</pubDate>
		<dc:creator>Paul Tow</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://macskeeball.wordpress.com/2007/07/10/using-twitter-for-software-update-notifications/</guid>
		<description><![CDATA[Putting the above pieces together, it is possible for you to set your server to periodically check for updates and then, if it finds any, update a Twitter status with alsit of available updates. You can then subscribe to the Twitter feed in a feed reader, or better yet use a service such as Feedburner, Yahoo! Alerts, or RMail to receive email notification when the Twitter feed is updated.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.twitter.com"><img class="alignright" title="Twitter bird" src="http://twitter.com/images/press-bird.gif" alt="" width="141" height="110" /></a>When running a server, security is a major concern. Part of that means keeping the software up to date, and package managers make it very easy to update all of the software installed on a Linux system in one fell swoop. However, the person maintaining the server still needs to be made aware that updates are available, and servers are often headless. While it&#8217;s true that tools such as cron-apt are available to receive update notification via email, such tools require the user to run their own mail server, which many ISPs block in an effort to reduce spam. Fortunately, it is possible to get around this using <a href="http://www.twitter.com">Twitter</a>.<span id="more-12"></span></p>
<p>Twitter is a popular web service that lets its users post short status messages and is intended to be used for keeping friends up to date on whatever it is you may be doing at a given moment. However, these status messages are really just free form blobs of text (containing a maximum of 140 characters) with RSS feeds to monitor updates. There are many different ways to update a Twitter status, including from the command line. Actions that can be performed non-interactively in the command line can be scheduled to run automatically on a regular basis.</p>
<p>Putting the above pieces together, it is possible for you to set your server to periodically check for updates and then, if it finds any, update a Twitter status used for self notifications with a list of available updates. You can then subscribe to the Twitter feed in a feed reader, or better yet use a service such as <a href="http://www.feedburner.com">Feedburner</a>, <a href="http://alerts.yahoo.com">Yahoo! Alerts</a>, or <a href="http://www.r-mail.org">RMail</a> to receive email notification when the Twitter feed is updated. It turns out that this is not that hard to do.</p>
<ol>
<li>With root privileges, use your favorite text editor to put the following shell script into a text file in /etc/cron.daily. I suggest naming it cron-apt-twitter
<pre>#!/bin/bash
#
# Cron Script - run from /etc/crontab or /etc/cron.daily
#
# Check for updates and updates Twitter status with list
# if any are found.

if [[ `apt-get update 2&gt;&amp;1 | grep Get` ]]; then
  if [[ `apt-get --simulate dist-upgrade 2&gt;&amp;1 | grep Inst` ]]; then
    curl -s -o /dev/null --basic --user USERNAME:PASSWORD --data status="`apt-get -q --simulate dist-upgrade`" http://twitter.com/statuses/update.xml
  fi
fi</pre>
</li>
<li>Don&#8217;t forget to replace USERNAME and PASSWORD with the username and password for the Twitter account.</li>
<li>Make the shell script executable by running this command:
<pre>sudo chmod +x /etc/cron.daily/cron-apt-twitter</pre>
</li>
<li>Make a temporary post to Twitter so that you can get the link to the RSS feed.</li>
<li>Subscribe to the feed using a feed reader or get an email notification of feed updates via <a href="http://www.feedburner.com">Feedburner</a>, <a href="http://alerts.yahoo.com">Yahoo! Alerts</a>, or <a href="http://www.r-mail.org">Rmail</a></li>
</ol>
<p>This has been tested with Debian Etch 4.0, but should also work in Debian-based distributions such as Ubuntu. With a few modifications to the shell script, this should also be possible to do with other distributions&#8217; such as Fedora.</p>
<p>Credits: The shell script is based on a combination of <a href="http://www.mattiaswikstrom.net/linux/20050526-apt-update-script.html">Mattias Wikistrom&#8217;s  Apt Update Script</a> and a Sakana article called <a href="http://www.sakana.fr/blog/2007/03/18/scripting-twitter-with-curl/">&#8220;Scripting Twitter with cURL.&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paultow.com/2007/07/10/use-twitter-for-software-update-notifications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

