<?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>Yes, I'm Canadian &#187; Kev</title>
	<atom:link href="http://kevinyank.com/blog/archives/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://kevinyank.com/blog</link>
	<description>an unfortunately-named geek living Down Under</description>
	<lastBuildDate>Fri, 27 Apr 2012 10:54:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pre-order PHP &amp; MySQL: Novice To Ninja, 5th Edition</title>
		<link>http://kevinyank.com/blog/archives/pre-order-php-mysql-novice-to-ninja-5th-edition</link>
		<comments>http://kevinyank.com/blog/archives/pre-order-php-mysql-novice-to-ninja-5th-edition#comments</comments>
		<pubDate>Fri, 27 Apr 2012 10:54:09 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://kevinyank.com/blog/?p=224</guid>
		<description><![CDATA[At parties, one of the things I tell people I do for a living is write books that teach people how to build websites. It might be more accurate, however, to say I write *a* book: I’ve just written it five times!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sitepoint.com/books/phpmysql5/"><img src="http://kevinyank.com/blog/wp-content/uploads/2012/04/phpmysql5-cover.jpg" alt="phpmysql5-cover.jpg" title="phpmysql5-cover.jpg" border="0" width="200" height="267" style="float:right;" /></a></p>

<p>At parties, one of the things I tell people I do for a living is write books that teach people how to build websites. It might be more accurate, however, to say I write <em>a</em> book: I’ve just written it five times! There’s a special place it my heart for collaborations like <a href="http://www.sitepoint.com/books/javascript1">Simply JavaScript</a> and <a href="http://www.sitepoint.com/books/csswrong1">Everything You Know About CSS Is Wrong!</a>, but <a href="http://www.sitepoint.com/books/phpmysql5/">PHP &amp; MySQL: Novice to Ninja</a> (titled “Build Your Own Database Driven Website Using PHP &amp; MySQL” in previous editions) will always be the one I made all by myself.</p>

<p>Approaching the 5th edition was honestly a little daunting; PHP and MySQL haven’t changed much in the three years since I wrote the 4th edition. Of course, the programming language that powers sites like Facebook hasn’t sat <em>stagnant</em> in that time. There are plenty of new frameworks, open source libraries, and development tools to keep an experienced PHP developer occupied, but the basics—the things you learn in a beginner’s book—haven’t changed much at all.</p>

<p>I had a mental of list things that <em>needed</em> to change—some pretty great ideas, actually. So great were they in fact, that when I sat down to start writing I discovered to my dismay that they were all the ideas I’d put into the 4th edition! No wonder I’d liked them so much.</p>

<p>For the first time in all my years writing and re-writing PHP &amp; MySQL: Novice to Ninja, I found myself with the time to improve the book, and no obvious list of things that needed fixing. Apart from some minor updates to the installation instructions, there was nothing actually <em>wrong</em> with the 4th edition. But I’m not the kind of guy (and SitePoint isn’t the kind of publisher) to just bump all the version numbers, stamp a new edition number on the cover, and send it out the door.</p>

<p>What else could I do? I set about making the book even better. With each chapter, I took a step back and thought through the assumptions I’d made about what a beginner learning PHP and MySQL for the first time could do, and then I found a way to do more.</p>

<p>To give just one example, perhaps the core skill that you learn when reading the book is writing PHP code to display content stored in a MySQL database on a web page. PHP supports several ways of doing this, but the best way is to use <a href="http://php.net/manual/en/book.pdo.php">PHP Data Objects (PDO)</a>, a new feature added in PHP 5.0. The thing is, to use PDO you need to understand the basics of object oriented programming, something that I’d always considered too complicated to cover in a beginner’s book; instead, I taught a simpler, more old-fashioned technique.</p>

<p>Instead of sidestepping this challenge, PHP &amp; MySQL: Novice to Ninja, 5th Edition tackles it head on. It teaches the essential concepts of object oriented programming (not to mention exception handling!), then uses PDO like a grownup.</p>

<p>And that might be the best way to summarise the changes in this edition. Just as PHP and MySQL have grown from the young upstarts of the web development world into mature, stable platforms for billion-dollar businesses, this book that I’ve been writing again and again for over a decade has finally grown up.</p>

<p>It’s time to write PHP like the big kids do.</p>

<p><em>PHP &amp; MySQL: Novice to Ninja is available for <a href="http://www.sitepoint.com/sneak-peek-of-kevin-yanks-new-php-mysql-book/#pre-order">pre-order from SitePoint</a> from $17. The digital version will be delivered May 1st, 2012.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/pre-order-php-mysql-novice-to-ninja-5th-edition/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My New Gig: CTO at Avalanche Technology Group</title>
		<link>http://kevinyank.com/blog/archives/my-new-gig-cto-at-avalanche-technology-group</link>
		<comments>http://kevinyank.com/blog/archives/my-new-gig-cto-at-avalanche-technology-group#comments</comments>
		<pubDate>Thu, 08 Mar 2012 12:26:31 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://kevinyank.com/blog/?p=220</guid>
		<description><![CDATA[After ten years (!) at the SitePoint Group, I started a new job in January. For the first time in a decade, I feel like I have everything to learn and more than a little to prove, which is both incredibly exciting and a wee bit scary.]]></description>
			<content:encoded><![CDATA[<p>After ten years (!) at the SitePoint Group, I started a new job in January. For posterity, here’s <a href="http://www.avg.com.au/news/cto-appointment-kevin-yank/">the press release</a> announcing my new gig as CTO of Avalanche Technology Group:</p>

<blockquote>
  <h2>Avalanche Technology Group Creates CTO Role For Strategic Partnership Growth</h2>
  
  <p><strong>Kevin Yank to provide technical oversight in expansion of subsidiary partnership opportunities at Avalanche, parent of AVG (AU/NZ), and internal technology development.</strong></p>
  
  <p><strong>MELBOURNE 8 March 2012</strong> &#8211; The Australian owned <a href="http://www.avalanche.com.au/">Avalanche Technology Group</a>, that takes innovative technologies to market in Australia, New Zealand and South Pacific, has appointed Kevin Yank to the newly created position of Chief Technology Officer (CTO). 
  Avalanche’s continuing growth has necessitated a dedicated CTO role with both internal and external responsibilities for the Group which includes <a href="http://www.avg.com.au/">AVG (AU/NZ) Pty Ltd</a>, the local regional distributor of the award-winning AVG Internet and mobile security software.</p>
  
  <p>As CTO, Kevin Yank will be working with the executive team to identify and evaluate the technology and business opportunities for expanding the group of companies with proven partnerships such as that with AVG. His role is to provide technical perspective, guidance and oversight in that process. He has also taken ownership of all internal systems including the Group’s internally developed e-commerce / CRM / Reseller management system.</p>
  
  <p>Over the past decade Yank has held CTO and other positions at online media company SitePoint and has built a strong reputation, especially in the web development and broader technical communities. He is also a highly regarded author and accomplished presenter. Yank holds a Bachelor of Engineering, Computer Engineering from McGill University, Montreal, Canada.</p>
  
  <p>Kevin Yank said: “I was attracted to the potential in Avalanche’s thriving business and this demanding position where I can be pivotal in helping make the right technology choices from the exciting opportunities in front of us.”</p>
  
  <p>Avalanche’s <a href="http://www.avalanche.com.au/aboutus/meet-the-team/">CEO Peter Cameron</a> said: “The AVG (AU/NZ) subsidiary is a success story we’re looking to repeat. Kevin’s appointment, with his expertise and commitment, will ensure we have the right team to provide outstanding technology solutions for the Australian, New Zealand and regional marketplaces.  We are delighted to have him join us.”</p>
</blockquote>

<p>For the first time in a decade, I feel like I have everything to learn and more than a little to prove, which is both incredibly exciting and a wee bit scary. Thankfully, the team at Avalanche and AVG (AU/NZ) is a wonderful bunch of people; without exception, each person there is both a pleasure to work with, and a genuinely lovely human being.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/my-new-gig-cto-at-avalanche-technology-group/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2012 Apple iPad Event Predictions (Updated)</title>
		<link>http://kevinyank.com/blog/archives/2012-apple-ipad-event-predictions</link>
		<comments>http://kevinyank.com/blog/archives/2012-apple-ipad-event-predictions#comments</comments>
		<pubDate>Wed, 07 Mar 2012 10:18:47 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://kevinyank.com/blog/?p=209</guid>
		<description><![CDATA[Like clockwork, Apple is hours away from announcing the third generation iPad. I’m sure I won’t be the only Australia-based Apple watcher getting up at 5AM to take in the news. Since people keep asking me, I thought I might as well break the blogging ice with my predictions for today.]]></description>
			<content:encoded><![CDATA[<p>Like clockwork, Apple is hours away from announcing the third generation of its iPad device. I’m sure I won’t be the only Australia-based Apple watcher getting up at 5AM to take in the news.</p>

<p>Since people keep asking me what news I think Apple’s event will hold, and since I <a href="http://twitter.com/sentience/statuses/93670918903169024">managed to predict Apple’s last announcement</a> seven months in advance, I thought I might as well break the blogging ice with my predictions for today.</p>

<p>Here are my guesses:</p>

<ul>
<li>iPad 2 will be discontinued</li>
<li><strong>iPad 2S</strong> will be announced, featuring:

<ul>
<li>an upgraded A5X processor</li>
<li>an improved back facing camera on par with iPhone 4</li>
<li>available in 16GB, 32GB and 64GB RAM configurations</li>
<li>4G LTE networking (not on Wi-Fi models, of course)</li>
<li>slightly different shape to the body, but compatible with the current iPad 2 Smart Cover</li>
<li>available in Apple’s usual launch countries (including Australia) on March 16th</li>
<li>Priced from US$399 ($100 less than current iPad 2 models)</li>
</ul></li>
<li><strong>iPad HD</strong> will be announced, featuring:

<ul>
<li><em>the new A6 processor</em></li>
<li><em>2048×1536 pixel Retina display</em></li>
<li><em>an improved back facing camera on par with iPhone 4S</em></li>
<li><em>available in 32GB, 64GB and 128GB RAM configurations</em></li>
<li>4G LTE networking (not on Wi-Fi models, of course)</li>
<li>slightly different shape to the body, but compatible with the current iPad 2 Smart Cover</li>
<li>available in Apple’s usual launch countries (including Australia) on March 16th</li>
<li><em>Priced from US$599 ($100 more than current iPad 2 models)</em></li>
</ul></li>
<li><strong>iPhoto for iPad</strong>, which will be able to receive photos from iPhone via Photo Stream and sync photo library events with iPhoto for Mac via iCloud for on-the-go photo processing and publishing.</li>
<li>An updated <strong>Apple TV</strong> capable of 1080p video output.</li>
<li><strong>iOS 5.1</strong> will be released next week, with many minor tweaks that we’ve been hearing about for months (such as the ability to delete single photos from Photo Stream).</li>
</ul>

<p>My prediction of two new iPad models (one with Retina display, one without) breaks from the pack, and would certainly be unlike Apple, in that it would result in 24 different iPad SKUs (three RAM configurations, two colours, with or without cellular data, 2S or HD). I’m guessing this amazing new 10&#8243; Retina display simply can’t be made at volume for current iPad 2 prices. Heck—just 12 months ago we were hearing they couldn’t be made at all!</p>

<p>Can’t wait to see how I do! <a href="https://twitter.com/sentience">Join me on Twitter</a> at 10AM PST (5AM AEDT) for the announcement.</p>

<p><strong>Update</strong>: Looks like I had roughly a 50% strike rate! iPad 2 will remain on sale at $100 off the old price, the nameless “New iPad” rocks an A5X processor, Retina display, better front camera, back camera about halfway between the iPhone 4 and iPhone 4S cameras, 4G LTE networking (US only), same old RAM options. Launching March 16th (pre-orders today). iPhoto for iPad and iOS 5.1 launching today.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/2012-apple-ipad-event-predictions/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Radioshift Subscriptions as iTunes Podcasts</title>
		<link>http://kevinyank.com/blog/archives/radioshift-subscriptions-as-itunes-podcasts</link>
		<comments>http://kevinyank.com/blog/archives/radioshift-subscriptions-as-itunes-podcasts#comments</comments>
		<pubDate>Tue, 23 Jun 2009 11:47:14 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/?p=190</guid>
		<description><![CDATA[Like many displaced Canadians, I like to listen to CBC Radio 3 at work to keep me feeling culturally connected to my home country. But the shows I enjoy tend to be on at inconvenient times here in Australia. Thanks to Radioshift, that isn’t a problem! Radioshift from Rogue Amoeba is a Mac application for [...]]]></description>
			<content:encoded><![CDATA[<p>Like many displaced Canadians, I like to listen to <a href="http://radio3.cbc.ca/">CBC Radio 3</a> at work to keep me feeling culturally connected to my home country. But the shows I enjoy tend to be on at inconvenient times here in Australia. Thanks to Radioshift, that isn’t a problem!</p>
<p><a href="http://rogueamoeba.com/radioshift/">Radioshift</a> from <a href="http://rogueamoeba.com/">Rogue Amoeba</a> is a Mac application for scheduled recording of web radio streams. Radioshift makes it easy to import your recordings into iTunes, but it would be nice, I thought, if those recordings showed up as a podcast, instead of normal music tracks in my iTunes library.<span id="more-190"></span></p>
<h2>Why A Podcast?</h2>
<p>By default, podcasts in iTunes remember your playback position when you stop listening to them halfway through, and aren’t played when you shuffle your entire iTunes music library. You can also choose to delete podcasts automatically after you have listened to them.</p>
<p>With the release of iPhone OS 3.0, podcasts gained even more benefits while on the go: when listening to a podcast on an iPhone or iPod touch, you can choose to listen at 2X speed, and also skip back 30 seconds with a single tap.</p>
<p>These new features were enough to make me get off my butt and do a little work.</p>
<h2>Step 1: Generate A Podcast Feed</h2>
<p>Technically, a podcast is just a text file that points to the MP3/M4A files that iTunes should download and store in its library. I whipped up a Python script that will generate a podcast file (podcast.xml) given a directory full of MP3/M4A files (such as those contained in the ~/Music/Radioshift folder after Radioshift does its thing).</p>
<p>To install this script on your own Mac, download <a href="http://www.kevinyank.com/blog/wp-content/uploads/2009/06/podcastFromFolder.zip">this ZIP file</a> containing three Python files:</p>
<ul>
<li>podcastFromFolder.py</li>
<li>PyPodcastGen.py</li>
<li>PyRSS2Gen.py</li>
</ul>
<p>Once you’ve unzipped the file, put all three files (podcastFromFolder.py) somewhere handy, like your home directory (/Users/kyank).</p>
<p>With the files in place, let’s test that the script works. Open Terminal and follow along.</p>
<p>First, you’ll need to make the podcastFromFolder.py script executable:</p>
<pre><code>Computer:~ kyank$ <strong>chmod u+x podcastFromFolder.py</strong></code></pre>
<p>Be sure to specify the path to the podcastFromFolder.py file if you put it somewhere else on your system (mine is actually in ~/bin/podcastFromFolder.py).</p>
<p>Now try running the script in your Radioshift recordings folder:</p>
<pre><code>Computer:~ kyank$ <strong>cd "Music/Radioshift/<em>My Show</em>"</strong>
Computer:My Show kyank$ <strong>~/podcastFromFolder.py</strong></code></pre>
<p>In the first command, instead of <em>My Show</em> you’ll need to type the actual name of the folder containing your desired show’s Radioshift recordings (mine’s CBC Radio 3 with Grant Lawrence 2).</p>
<p>In the second command, again, you’ll need to specify the path to the script if it’s somewhere other than in your home directory.</p>
<p>If all goes well, these commands should execute silently, and you should find a new podcast.xml file in the folder along with any .M4A files that Radioshift has stored there. This file will contain the feed that tells iTunes about your “fake” podcast.</p>
<h2>Step 2: Serve Up Your Podcast Feed</h2>
<p>Unfortunately, iTunes is picky about where it gets its podcast feeds. You can’t simply point it at a file on your hard disk (believe me, I’ve tried!). iTunes will only accept a podcast feed that it retrieves from the Web.</p>
<p>Fortunately, the Mac comes with everything you need to make your computer look like part of the Web.</p>
<p>Open System Preferences, and click Sharing. Select Web Sharing from the menu on the left, and make sure the On checkbox next to Web Sharing is checked.</p>
<p><a href='http://www.kevinyank.com/blog/wp-content/uploads/2009/06/web-sharing-on-2.png'><img src="http://www.kevinyank.com/blog/wp-content/uploads/2009/06/web-sharing-on-2-300x245.png" width="300" height="245" class="attachment-medium" alt="Screenshot showing Web Sharing switched on" /></a></p>
<p>This enables the Apache 2 web server built into Mac OS X. Next, we need to make your Radioshift recordings folder available to the Web. Pop open Terminal and follow along:</p>
<pre><code>Computer:My Show kyank$ <strong>cd ~/Sites/</strong>
Computer:Sites kyank$ <strong>ln -s "~/Music/Radioshift/<em>My Show</em>" "<em>MyShow</em>"</strong></code></pre>
<p>In that second command, replace <em>My Show</em> with the name of the folder for your desired show’s Radioshift recordings, and replace <em>MyShow</em> with a “web friendly”, simplified version of the show title. Here’s exactly what I typed on my system:</p>
<pre><code><strong>ln -s "~/Music/Radioshift/CBC Radio 3 with Grant Lawrence 2"
"GrantLawrence"</strong></code></pre>
<p>This creates in your Sites folder an alias that points to the folder containing your show’s recordings (and your new podcast feed file).</p>
<p>Open your web browser of choice and type this address:</p>
<p>http://localhost/~<em>kyank</em>/<em>MyShow</em>/</p>
<p>Replace <em>kyank</em> with your Mac OS X username (it’s what appears before the $ in the Terminal prompt), and <em>MyShow</em> with the “web friendly” title you chose for your show above.</p>
<p>Chances are, the first time you try this address, your browser will tell you that you don’t have permission to view the requested page. You need to give Apache permission to follow the alias you created from your Sites folder above.</p>
<p>To do this, you’ll need to edit the <em>user</em>.conf file (where <em>user</em> is your Mac OS X username) in /etc/apache2/users. Since this is a protected system file, the simplest way to do this is probably to use the nano editor from inside Terminal:</p>
<pre><code>Computer:Sites kyank$ <strong>cd /etc/apache2/users</strong>
Computer:users kyank$ <strong>sudo nano <em>kyank</em>.conf</strong>
Password:</code></pre>
<p>Type your password when prompted, and the nano text editor will fill your Terminal window. On the line that begins with <code>Options</code>, add <code>FollowSymLinks</code> to the end, so the file looks like this:</p>
<pre><code>&lt;Directory "/Users/<em>kyank</em>/Sites/">
    Options Indexes MultiViews <strong>FollowSymLinks</strong>
    AllowOverride None
    Order allow,deny
    Allow from all
&lt;/Directory></code></pre>
<p>With that done, type ^O and then Enter to save your changes, then ^X to exit the nano editor. Go back into System Preferences and turn Web Sharing off and then on again to make this change take effect. Finally, load up that URL again:</p>
<p>http://localhost/~<em>kyank</em>/<em>MyShow</em>/</p>
<p>Your browser should now display a list of the files contained in the show’s Radioshift recordings folder, including the podcast.xml file.</p>
<p>Now that you have a URL where iTunes will be able to find your podcast feed, you need to regenerate the podcast.xml file with a few extra settings to make the file complete. Again, pop open Terminal:</p>
<pre><code>Computer:~ kyank$ <strong>cd "Music/Radioshift/<em>My Show</em>"</strong>
Computer:My Show kyank$ <strong>~/podcastFromFolder.py .
"Grant Lawrence on CBC Radio 3" http://radio3.cbc.ca/

http://localhost/~kyank/GrantLawrence/</strong></code></pre>
<p>Notice the four new parameters I am passing to the podcastFromFolder.py script. You’ll want to supply your own values using this guide:</p>
<dl>
<dt><strong>.</strong></dt>
<dd>The first parameter tells the script what folder to work on. Just type a period (or full stop, if you call it that) to tell it to use the current directory.</dd>
<dt><strong>&#8220;Grant Lawrence on CBC Radio 3&#8243;</strong></dt>
<dd>The second parameter specifies the title of your podcast as it should be displayed in iTunes (and on your iPod or iPhone). Choose something short that you’ll recognise.</dd>
<dt><strong>http://radio3.cbc.ca/</strong></dt>
<dd>The third parameter specifies the web site that the podcast came from, so you can get to it from within iTunes. Set it to the URL of the web radio site that Radioshift records for you.</dd>
<dt><strong>http://localhost/~kyank/GrantLawrence/</strong></dt>
<dd><strong>This is the important one.</strong> Set this to the URL that you have just set up to point to your show’s Radioshift recordings folder. The script will use this to generate the full URLs to each of the audio files in the folder, and include them in the podcast feed.</dd>
</dl>
<p>Again, the script should run silently and generate a fresh podcast.xml file, which now contains everything iTunes needs to know to access your Radioshift recordings.</p>
<h2>Step 3: Subscribe To Your Feed</h2>
<p>Open iTunes, and from the menu bar choose Advanced → Subscribe to Podcast…</p>
<p>In the window that pops up, type the full URL to your podcast.xml file. Mine looks like this:</p>
<p>http://localhost/~kyank/GrantLawrence/podcast.xml</p>
<p>Click OK, and iTunes should happily begin downloading the most recent recording into a new podcast with the title you specified. You can click the Get All button to instruct it to get all of your recordings (assuming you have more than one).</p>
<p>You did it! Your iTunes library now contains your Radioshift recordings as a podcast.</p>
<h2>Step 4: Automate Feed Updates</h2>
<p>Of course, as Radioshift makes new recordings, you will want these to appear in your iTunes podcast too. This means you need to automate the running of the podcastFromFolder.py script every time a new recording is completed.</p>
<p>It is possible to set this up using Mac OS X’s Folder Actions, and if you’re an AppleScript genius I invite you to do so. In practice, I find Folder Actions unreliable even in Leopard (they seem to become disabled for no reason after working perfectly for days), and dealing with recordings-in-progress and other such complexities is not for the faint of heart.</p>
<p>Rather, I recommend you grab yourself a copy of <a href="http://www.noodlesoft.com/hazel.php">Hazel</a> from <a href="http://www.noodlesoft.com/">Noodlesoft</a>, which is a System Preferences panel that will monitor folders for files matching the criteria you specify, and then do whatever you like to them.</p>
<p>With Hazel installed, open System Preferences and choose Hazel. In the Folder list on the left, add the folder containing your show’s Radioshift recordings. Then, on the right, click the + button to add a new rule.</p>
<p>Copy the settings for the rule from this screenshot:</p>
<p><a href="http://www.kevinyank.com/blog/wp-content/uploads/2009/08/hazel-podcast-from-folder-contents.png"><img src="http://www.kevinyank.com/blog/wp-content/uploads/2009/08/hazel-podcast-from-folder-contents-300x217.png" alt="Set up a Hazel rule to run a shell script on all files with extension is not 'xml'. The shell script to run is: /Users/kyank/podcastFromFolder.py . 'Grant Lawrence on CBC Radio 3' http://radio3.cbc.ca/ http://localhost/~kyank/GrantLawrence/" title="Hazel podcast from folder contents" width="300" height="217" class="size-medium wp-image-199" /></a></p>
<p>Make sure to adjust the path to podcastFromFolder.py, and the arguments passed to the script to match those you used when manually invoking it above.</p>
<p>With the rule in place, Hazel should generate an updated podcast.xml file each time Radioshift finishes a new recording, which will enable iTunes to add the recording to your library as a new episode of the podcast.</p>
<p>Note that, while iTunes copies the recordings into your library, the original recordings remain in your Radioshift recordings folder. To save disk space, you will want to periodically open Radioshift and delete all the old recordings. Better yet, you can use another Hazel rule to automatically delete recordings from the recordings folder after a week or so—the copies will remain in your iTunes library, and the corresponding entries will be purged from the podcast feed the next time Radioshift downloads a new recording.</p>
<h2>Summing Up</h2>
<p>If this seems like a lot of work, you’re not imagining things. I have sent Rogue Amoeba a feature request to suggest that it make exposing your subscriptions as podcasts visible to iTunes a built-in feature in a future version of Radioshift.</p>
<p>In the meantime, if you use Radioshift to record a regular web radio broadcast, the added convenience of having new episodes appear as a podcast in iTunes will make all the hackery above worthwhile.</p>
<p>Let me know if you run into any trouble with the above setup, or if you have any suggestions for improving it.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/radioshift-subscriptions-as-itunes-podcasts/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>An Open Letter to the Microsoft Partner Program</title>
		<link>http://kevinyank.com/blog/archives/microsoft-partner-open-letter</link>
		<comments>http://kevinyank.com/blog/archives/microsoft-partner-open-letter#comments</comments>
		<pubDate>Thu, 18 Jun 2009 04:02:16 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/?p=184</guid>
		<description><![CDATA[I continue to be amazed by how horrible a job your web team does. Why would we ever take marketing advice from Microsoft?]]></description>
			<content:encoded><![CDATA[<p>An open letter to the Microsoft Action Pack Regional Service Center for Australia:</p>
<blockquote><p>
To: <a href="mailto:sppartner@microsoft.com">sppartner@microsoft.com</a><br />
Subject: MAPS digital distribution &#8211; broken link?</p>
<p>Hi there,</p>
<p>Following the email I received today (Subject: &#8220;Important: Action Pack software now available digitally&#8221;), I tried to follow the provided link to access my Microsoft Action Pack Subscription content online: <a href="http://partner.microsoft.com/MAPScontent">http://partner.microsoft.com/MAPScontent</a></p>
<p>This link seems to direct me to a survey about my company’s marketing activities—a survey that I was unable to fill out because it is badly broken. Not only is the layout broken (<a href="http://skitch.com/sentience/bwuw6/microsoft-partner-web-site-clusterfsck">screenshot</a>), but it would not accept my answers, complaining that I hadn’t answered all the questions. In the end, I had to select ‘no’ for every answer in order to get it to accept my submission. This then took me to the Partner Marketing Center home page, where I could see no sign of my MAPS digital content.</p>
<p>I continue to be amazed by how horrible a job your web team does. Why would we ever take marketing advice from Microsoft?</p>
<p>&#8211;<br />
Kevin Yank<br />
Technical Director, sitepoint.com
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/microsoft-partner-open-letter/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sketching Dreams</title>
		<link>http://kevinyank.com/blog/archives/sketching-dreams</link>
		<comments>http://kevinyank.com/blog/archives/sketching-dreams#comments</comments>
		<pubDate>Wed, 03 Sep 2008 12:52:39 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/?p=178</guid>
		<description><![CDATA[I feel like I may have some things to write about again soon. Before you ask, I’m not being cagey, here. Mostly this is just a vague feeling, perhaps brought on by my recent visit home to Canada—a reminder that there are people I care about with whom I don’t communicate much (no, Facebook doesn’t [...]]]></description>
			<content:encoded><![CDATA[<p>I feel like I may have some things to write about again soon.</p>
<p>Before you ask, I’m not being cagey, here. Mostly this is just a vague feeling, perhaps brought on by my recent <a href="http://flickr.com/photos/sentience/sets/72157606724922524/">visit home to Canada</a>—a reminder that there are people I care about with whom I don’t communicate much (no, Facebook doesn’t count).</p>
<p>I dreamed up a fresh (but simple!) site design last night, so I broke out the Wacom to see if it worked in two dimensions. If I can keep it balanced, I think it might.</p>
<p><a href="http://www.kevinyank.com/blog/wp-content/uploads/2008/09/redesignsketch.png"><img src="http://www.kevinyank.com/blog/wp-content/uploads/2008/09/redesignsketch-small.png" alt="redesignsketch_small.png" border="0" width="400" height="279" /></a></p>
<p><strong>Note to self:</strong> ask Lox if he minds me recycling his old comic book header idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/sketching-dreams/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Streetwise Will Throw Away Your Mac’s Serial Number</title>
		<link>http://kevinyank.com/blog/archives/streetwise-will-throw-away-your-mac%e2%80%99s-serial-number</link>
		<comments>http://kevinyank.com/blog/archives/streetwise-will-throw-away-your-mac%e2%80%99s-serial-number#comments</comments>
		<pubDate>Thu, 20 Mar 2008 00:17:58 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[geekdom]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/archives/streetwise-will-throw-away-your-mac%e2%80%99s-serial-number</guid>
		<description><![CDATA[Over the past week, I have decided once and for all to keep my computer out of the hands of Streetwise, a popular Apple retailer here in Melbourne. I have previously written about Streetwise, an Apple Authorised Service Centre, and its policy of holding onto computers while they wait days for replacement parts to arrive [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past week, I have decided once and for all to keep my computer out of the hands of <a href="http://www.streetwise.com.au/">Streetwise</a>, a popular Apple retailer here in Melbourne.</p>
<p>I have <a href="http://www.kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service">previously written</a> about Streetwise, an Apple Authorised Service Centre, and its policy of holding onto computers while they wait days for replacement parts to arrive so that they can maintain a high Apple Service Rating.</p>
<div><a title="View 'Missing Serial Number' on Flickr.com" href="http://www.flickr.com/photos/60889911@N00/2345832057"><img width="240" height="180" border="0" alt="Missing Serial Number" style="float: right; margin-left: 1em" src="http://farm3.static.flickr.com/2150/2345832057_f28006d981_m.jpg" /></a></div>
<p>That original post came about when I had to get the palm rest of my MacBook replaced under warranty, and in the past week another shocking outcome of that repair has come to light: <strong>when the Streetwise technician replaced my palm rest, he did not transfer my MacBook’s serial number sticker</strong> (which is attached to the underside of the palm rest—inside the battery compartment).</p>
<p>When I contacted Streetwise about this last week, service manager Jedda Wignall was appropriately contrite. “It is incredibly unfortunate that you have been hit with this inconvenience, as could have been put in a precarious situation as a result,” he wrote (sic.). “The technician who performed the work is no longer with the company, and I would like to think that this situation would not arise again.”</p>
<p><span id="more-173"></span>The precarious situation to which he refers would occur if damage or malfunction left me unable to turn on my computer to look up the serial number in the operating system. In effect, I would be unable to prove the identity of my computer, and thus unable to obtain warranty service.</p>
<p>In order to make it up to me, Wignall offered to waive the cost of labour on any future repair work I might require. I turned him down: “I’m afraid that it’s reached the point where I would rather pay the labour costs than leave any of our computers in the hands of Streetwise staff again.”</p>
<p>At the same time, I advised everyone else here at <a href="http://www.sitepoint.com/">SitePoint</a> to avoid using Streetwise to service their Macs. Streetwise would not be getting near any of our computers again … except for one.</p>
<p>While this exchange went on, my colleague <a href="http://leftjustified.net/">Andrew Krespanis</a> was also struggling with his own Streetwise horror story. He had left his MacBook Pro with Streetwise for warranty repair of his display, and when he insisted on taking his computer back while Streetwise awaited the replacement part, he discovered that the screen’s case had been bent and the computer would no longer run on battery power!</p>
<p>It took many phone calls and more than a few trips to Streetwise to do it, but Andrew finally got his MacBook Pro back from Streetwise this morning. It’s in perfect working order … but it has no serial number sticker.</p>
<p>Yes indeed. Part of the repair work Streetwise performed on Andrew’s MacBook Pro involved replacing the palm rest, and just as they did to my machine <strong>they again failed to transfer the serial number sticker to the new part.</strong> So much for Wignall’s assurances that this would not happen again!</p>
<p>Discovering this, I called Wignall personally. He thanked me for bringing it to his attention, agreed it was absolutely shocking, and promised to take steps. He also dug Andrew’s old palm rest out of the trash and peeled the serial number sticker off of it for us.</p>
<p>My advice? Avoid getting your computer serviced by Streetwise at all costs. If you can’t avoid it, or have already left your computer with them, be sure to check for the serial number sticker when you get it back!</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/streetwise-will-throw-away-your-mac%e2%80%99s-serial-number/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apple Service Rating Update</title>
		<link>http://kevinyank.com/blog/archives/apple-service-rating-update</link>
		<comments>http://kevinyank.com/blog/archives/apple-service-rating-update#comments</comments>
		<pubDate>Sun, 03 Feb 2008 00:50:38 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[geekdom]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/archives/apple-service-rating-update</guid>
		<description><![CDATA[For those who’ve asked, here’s an update on the situation with Streetwise and the Apple Service Rating that I wrote about in my last post. Streetwise replied almost immediately to my email complaint: Hi Kevin, I&#8217;m not sure why the technician on Saturday would have told you that &#8211; perhaps there was some sort of [...]]]></description>
			<content:encoded><![CDATA[<p>For those who’ve asked, here’s an update on the <a href="http://www.kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service">situation</a> with <a href="http://www.streetwise.com.au/">Streetwise</a> and the Apple Service Rating that I wrote about in <a href="http://www.kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service">my last post</a>.</p>
<p>Streetwise replied almost immediately to my <a href="http://www.kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service">email complaint</a>:</p>
<blockquote><p>
Hi Kevin,</p>
<p>I&#8217;m not sure why the technician on Saturday would have told you that &#8211; perhaps there was some sort of misunderstanding.<br />
I do apologise if you felt that was inappropriate in anyway.<br />
I can confirm that the part to be fitted would not be an issue and you can use your machine normally while we wait for the part.<br />
As the technician is not in today &#8211; I will discuss the matter with him when I see him and to see if we can resolve this one way or another.<br />
We will attempt to call or leave a message when the part actually comes in. Do you wish me to order the part for you?</p>
<p>Best Wishes,<br />
Gary Chee<br />
Service &amp; Returns Manager
</p></blockquote>
<p>Quite the reversal. I asked Streetwise to go ahead and order the part. Two days later:</p>
<blockquote><p>
Hi Kevin,</p>
<p>The top case has arrived today. Could you please drop off your Macbook so we can install it for you?<br />
Please allow us at least half a day turn around time to sort it out for you.</p>
<p>Thanks,<br />
Gary
</p></blockquote>
<p>Still no explanation for the original incident, you’ll note. I queried this in my reply:</p>
<blockquote><p>
Thanks. Will do!</p>
<p>Has any explanation for the original mixup been forthcoming?</p>
<p>&#8211;<br />
Kevin Yank</p>
<p>http://www.kevinyank.com/</p>
</blockquote>
<p>Streetwise’s reply was about as vague as can be, but reading between the lines I believe my complaint was taken to heart:</p>
<blockquote><p>No worries Kevin &#8211; I&#8217;ve spoken to the tech and he said there was a small mixup &#8211; but I hope that&#8217;s been cleared up.</p>
<p>Cheers,<br />
Gary</p></blockquote>
<p>The repair was completed the same day I dropped off the computer. In total, I was without my MacBook for about four hours. Not bad at all!</p>
<p>The next day, I received an automated email from Apple requesting my feedback on the support experience I had had with Streetwise. As you can imagine, I was very forthcoming, and ticked the box that said ‘You may contact me for more information about my experience’. Two months later, I have not heard from Apple on the matter.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/apple-service-rating-update/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apple Service Rating Harms Customer Service</title>
		<link>http://kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service</link>
		<comments>http://kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service#comments</comments>
		<pubDate>Sat, 17 Nov 2007 07:30:20 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[geekdom]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service</guid>
		<description><![CDATA[Streetwise is my local Apple retailer. It&#8217;s where I bought my MacBook laptop and my Epson printer, and it&#8217;s where I was planning to buy a lot of other computery things in the near future. Unfortunately, my MacBook is in need of a little in-warranty TLC (a crack has a developed in the casing, a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.streetwise.com.au/">Streetwise</a> is my local Apple retailer. It&#8217;s where I bought my MacBook laptop and my Epson printer, and it&#8217;s where I was planning to buy a lot of other computery things in the near future.</p>
<p>Unfortunately, my MacBook is in need of a little in-warranty TLC (a crack has a developed in the casing, <a title="other reports of this defect" href="http://www.appledefects.com/index.php?s=macbook+crack">a common defect</a>). So today I dropped by Streetwise, an Authorised Apple Service Centre, to get it looked after.</p>
<p>I discovered that, in an effort to gain the highest possible &#8220;service rating&#8221; from Apple, Streetwise has decided to make it really inconvenient to get a minor problem with your MacBook fixed. I therefore walked right back out with my cracked MacBook in hand.</p>
<p><span id="more-171"></span><br />
Here&#8217;s the note I just sent to Streetwise.</p>
<blockquote><p>Hi there,</p>
<p>I visited the service department at Streetwise today to seek in-warranty service for my MacBook (Apple case no. XXXXXXXX).</p>
<p>When I spoke to Apple regarding the case, they informed me that I would merely have to take in my computer to an Authorized Service Centre like yours to confirm the problem so that you could order the part, and then arrange a separate time for me to bring in my computer for it to be installed.</p>
<p>I got a very different story from the person who served me at your service department today.</p>
<p>I was informed that, in order to maintain a high &#8220;service rating&#8221; (I assume some metric calculated by Apple based on how long a customer service case is open with you), you required customers to leave their computers with you for several days while you ordered the part from Apple, awaited its arrival, and then installed the part.</p>
<p>It seems customers cannot be trusted to return in a timely fashion once a part has arrived, which damages your &#8220;service rating&#8221;. Consequently, you have adopted a policy of inconveniencing your customers in order to satisfy an artificial metric of service quality.</p>
<p>I would ask you to reconsider this policy, so that I might reconsider my decision not to frequent your business. If there is someone at Apple I can contact to lodge a complaint about how its &#8220;service rating&#8221; is affecting your ability to provide meaningful customer service, please let me know so that I may do so.</p>
<p>In the meantime, if there is an Apple Authorized Service Centre that has a lower &#8220;service rating&#8221; that you can recommend, I would appreciate the pointer.</p>
<p>Sincerely,</p>
<p>&#8211;<br />
Kevin Yank</p>
<p>http://www.kevinyank.com/</p></blockquote>
<p><strong>Update:</strong> <a href="http://www.kevinyank.com/blog/archives/apple-service-rating-update">Streetwise replied to my message.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/streetwises-service-rating-harms-customer-service/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Workaround: Mac OS X Leopard Docked Folder Icon Madness</title>
		<link>http://kevinyank.com/blog/archives/workaround-mac-os-x-leopard-docked-folder-icon-madness</link>
		<comments>http://kevinyank.com/blog/archives/workaround-mac-os-x-leopard-docked-folder-icon-madness#comments</comments>
		<pubDate>Mon, 29 Oct 2007 10:47:49 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.kevinyank.com/blog/archives/workaround-mac-os-x-leopard-docked-folder-icon-madness</guid>
		<description><![CDATA[My copy of the newly-released Mac OS X Leopard arrived on my desk on launch day before I even got to work. I resisted installing it until I could update my system back-up that night, but at this point I&#8217;ve been using the new operating system for a full 48 hours. Aside from a couple [...]]]></description>
			<content:encoded><![CDATA[<p>My copy of the newly-released Mac OS X Leopard arrived on my desk on launch day before I even got to work. I resisted installing it until I could update my system back-up that night, but at this point I&#8217;ve been using the new operating system for a full 48 hours. Aside from a couple of apps needing updates, the upgrade has been a blissfully uneventful experience.</p>
<p>Thanks to the pervasive tweaks to the user experience in Leopard, using my Mac is a more uniformly pleasant experience … with one major exception: the display of docked folders (now called &#8220;Stacks&#8221;). Thankfully, I&#8217;ve found a work-around.</p>
<p><span id="more-170"></span>As <a href="http://arstechnica.com/reviews/os/mac-os-x-10-5.ars/13">explained in detail</a> in <a href="http://arstechnica.com/">Ars Technica</a>&#8216;s excellent <a href="http://arstechnica.com/reviews/os/mac-os-x-10-5.ars">review of Leopard</a>, folders placed on Leopard&#8217;s Dock will only display their icon when they are empty. For folders with files in them, the icons of the folders’ <span style="font-style: italic">contents</span> are stacked one on top of the other to produce, in the vast majority of cases, a completely useless result.</p>
<p><img title="A typical dock in Leopard, the docked folders are impossible to identify" alt="A typical dock in Leopard, the docked folders are impossible to identify" src="http://www.kevinyank.com/blog/wp-content/uploads/2007/10/typical-dock.jpg" /></p>
<p>In the above screenshot from the Ars Technica review, the folder on the far left is the user&#8217;s Home directory. What is displayed is a stack of folder icons, with the front-most icon that of the Desktop folder. At a glance, then, the Home folder looks like the Desktop folder when placed on the dock. The other folders that you would typically expect to find on the dock are similarly difficult to identify.</p>
<p>The most convincing example from the article is the following screenshot, which shows the Downloads folder (containing a disk image) sitting next to an actual disk image on the Dock. Can you tell which is which?</p>
<p><img title="The Downloads folder and a docked disk image are virtually indistinguishable" alt="The Downloads folder and a docked disk image are virtually indistinguishable" src="http://www.kevinyank.com/blog/wp-content/uploads/2007/10/docked-folder-and-dmg.jpg" /></p>
<p>And of course, there is no preference (hidden or otherwise) to control this icon insanity.</p>
<p>Thankfully, after dealing with this horrendous situation for 48 hours, I&#8217;ve found a work-around that restores (mostly) the pre-Leopard behaviour of docked folders. Instead of placing the folder itself in the Dock, create an alias to the folder, and place <span style="font-style: italic">that</span> on the Dock.</p>
<p>Here&#8217;s the procedure in detail:</p>
<ol>
<li>In your Home folder, create a new folder named Dock Aliases.</li>
<li>One at a time, Cmd-Option-Drag each of your &#8220;special&#8221; folders (Applications, Documents, etc.) into the Dock Aliases folder, to create aliases there.</li>
<li>Open the Dock Aliases folder. You should see the aliases you created. You can tell them apart from the originals by the little black arrow in the bottom-left-hand corner of each icon.</li>
<li>One at a time, drag each of the folders you want to your Dock.</li>
</ol>
<p>Here&#8217;s what you&#8217;ll end up with:</p>
<p><img title="The docked aliases display the icons of their corresponding folders, not their contents." alt="The docked aliases display the icons of their corresponding folders, not their contents." src="http://www.kevinyank.com/blog/wp-content/uploads/2007/10/docked-aliases.jpg" /></p>
<p>Clicking on any of these docked aliases will open the corresponding folder in a Finder window. The only thing missing from the pre-Leopard behaviour is the ability to browse through the folders by right-clicking them.</p>
<p>Ideally, one could choose to benefit from the Fan and Grid views provided by stacks without having to live with the horrendous Dock icons, but at least this work-around gives you one more choice than Apple saw fit to provide!</p>
]]></content:encoded>
			<wfw:commentRss>http://kevinyank.com/blog/archives/workaround-mac-os-x-leopard-docked-folder-icon-madness/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

