<?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>Twenty Ways &#187; Dave</title>
	<atom:link href="http://www.twentyways.com/author/dr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.twentyways.com</link>
	<description>(21 would just be ridiculous)</description>
	<lastBuildDate>Tue, 29 Jun 2010 08:09:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Hold Calls on iPhone 4</title>
		<link>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/</link>
		<comments>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 08:09:33 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=247</guid>
		<description><![CDATA[The Hold button was replaced with FaceTime on iPhone 4&#8242;s call menu. You can still place calls on hold: just tap and hold Mute for 2 seconds.]]></description>
			<content:encoded><![CDATA[<p>The Hold button was replaced with FaceTime on iPhone 4&#8242;s call menu.<br />
You can still place calls on hold: just tap and hold Mute for 2 seconds.</p>
<p><a href="http://www.twentyways.com/wp-content/uploads/2010/06/iphone.png"><img class="size-medium wp-image-248 alignnone" title="iPhone 4 call menu" src="http://www.twentyways.com/wp-content/uploads/2010/06/iphone-300x225.png" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List all Facebook friends who use iPhones</title>
		<link>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/</link>
		<comments>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 07:19:15 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Social Engineering]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=231</guid>
		<description><![CDATA[Facebook&#8217;s iPhone app seems to integrate with the Facebook Platform using the same rules that other applications must follow. After you sign in to the iPhone app for the first time, a corresponding Facebook app, Facebook for iPhone, is automatically granted access to your profile. There is nothing unusual about this; Facebook is merely playing [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook&#8217;s <a href="http://www.facebook.com/mobile/#/apps/application.php?id=6628568379">iPhone app</a> seems to integrate with the <a href="http://developer.facebook.com/">Facebook Platform</a> using the same rules that other applications must follow.  After you sign in to the iPhone app for the first time, a corresponding Facebook app, <em>Facebook for iPhone</em>, is automatically granted <a href="http://www.facebook.com/editapps.php#/editapps.php?v=extended">access to your profile</a>.</p>
<p>There is nothing unusual about this; Facebook is merely playing by their own rules.  But there is an interesting side effect.</p>
<p>Facebook is a social platform, so all application pages allow you to list other friends using that app.  <em>Facebook for iPhone</em>, the Facebook counterpart for the iPhone app, is no different.</p>
<p>These are all your Facebook friends who use (or once used)…</p>
<ul>
<li> <a href="http://www.facebook.com/social_graph.php?node_id=6628568379&amp;class=AppUserManager&amp;edge_type=mutual">iPhone</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=2254487659&amp;class=AppUserManager&amp;edge_type=mutual">BlackBerry</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=7081486362&amp;class=AppUserManager&amp;edge_type=mutual">Palm</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=38125372145&amp;class=AppUserManager&amp;edge_type=mutual">SonyEricsson</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=26463759431&amp;class=AppUserManager&amp;edge_type=mutual">INQ</a></li>
</ul>
<p>It is worth noting that the <em>Facebook for iPhone</em> app remains in your profile until you explicitly remove it, so results may be misleading.  (After all, how would Facebook know that your iPhone fell into the toilet, when you may simply not have run their app for a long time?)</p>
<p>If any of this bothers you, breathe deeply… then get off the internet.</p>
<p>And my lawn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Access OS X clipboard from CLI</title>
		<link>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/</link>
		<comments>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 20:59:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=225</guid>
		<description><![CDATA[Accessing the OS X clipboard (or &#8220;pasteboard&#8221;) from the CLI is made simple with the pbcopy and pbpaste commands: cat ~/ confidential_information.txt &#124; pbcopy pbpaste &#62; confidential_information.txt The pbcopy/pbpaste manpages have more detailed information about their use. An interesting footnote to OS X&#8217;s clipboard system is that there are actually four pasteboards, each assigned to [...]]]></description>
			<content:encoded><![CDATA[<p>Accessing the OS X clipboard (or &#8220;<strong>p</strong>aste<strong>b</strong>oard&#8221;) from the CLI is made simple with the <em><strong>pbcopy</strong></em> and <em><strong>pbpaste</strong></em> commands:</p>
<p><code>cat ~/ confidential_information.txt | pbcopy<br />
pbpaste &gt; confidential_information.txt</code></p>
<p>The <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html">pbcopy/pbpaste manpages</a> have more detailed information about their use.</p>
<p>An interesting footnote to OS X&#8217;s clipboard system is that there are actually four pasteboards, each assigned to its own, unique purpose.  The <em>Find</em> clipboard is particularly useful because it enables search queries to be saved automatically between applications.  To test this, enter a string in (for example) Firefox&#8217;s search box.  Don&#8217;t copy it to the clipboard.  Now open your text editor and start a new search.  The same string should already be in the dialog box…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permanently disable Google Software Update on OS X</title>
		<link>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/</link>
		<comments>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 05:04:57 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=207</guid>
		<description><![CDATA[As many have noted, recent Google software releases for OS X now include Google Software Update, a background daemon that checks for and installs updates to Google software with no user intervention and no option for disabling it. In theory, GSU is removed automatically when the last Google software to utilise it is uninstalled from [...]]]></description>
			<content:encoded><![CDATA[<p>As many <a href="http://tech.slashdot.org/article.pl?sid=09/02/06/1510228">have noted</a>, recent Google software releases for OS X now include <em>Google Software Update</em>, a background daemon that checks for and installs updates to Google software with no user intervention and no option for disabling it.</p>
<p>In theory, GSU is removed automatically when the last Google software to utilise it is uninstalled from your computer… but this assumes that you use the uninstallers bundled by Google, and don&#8217;t attempt to remove the software by hand.</p>
<p>I&#8217;ll save my disappointment for another editorial.<br />
Instead, here is a workaround:<br />
<code>sudo rm /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo rm /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo rm /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p><code>sudo touch /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo touch /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo touch /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p><code>sudo chmod 000 /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo chmod 000 /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo chmod 000 /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p>This hint does not uninstall GSU – it only &#8220;disables&#8221; the launchd entries that would run <em>GoogleSoftwareUpdateAgent.app</em> at boot time.</p>
<p>We first remove each entry (<strong><em>sudo rm …</em></strong>) and create empty files (<strong><em>sudo touch …</em></strong>) in their place.  We then change their POSIX permissions (<strong><em>sudo chmod</em></strong>) to deny any access to these files (<strong><em>000</em></strong>) for all accounts except root.</p>
<p>Creating inaccessible dummy files is important.  Without them, the launchd entries can simply be replaced whenever Google software is run.  But with these steps taken, no Google app can reinstall the GSU launchd entries, unless they:</p>
<ul>
<li>ask for your username and password (to authenticate as root),</li>
<li>use different filenames, or</li>
<li>create local launchd entries (<em><strong>~</strong></em>/Library/Launch[…])</li>
</ul>
<p>This hint is easily adapted for each of these cases.  You can also use this technique to remove GSU completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Enable local search on Leopard Server</title>
		<link>http://www.twentyways.com/2009/02/06/enable-local-search-on-leopard-server/</link>
		<comments>http://www.twentyways.com/2009/02/06/enable-local-search-on-leopard-server/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 08:31:01 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=192</guid>
		<description><![CDATA[By default, Leopard Server disables Spotlight indexing on its system drive. I assume that this decision was made to avoid confusion when administrators search the global catalog for system files on other machines. However, I find this to be a hassle when I need to locate a file on the server itself. You can easily [...]]]></description>
			<content:encoded><![CDATA[<p>By default, Leopard Server disables Spotlight indexing on its system drive.</p>
<p>I assume that this decision was made to avoid confusion when administrators search the global catalog for system files on other machines.  However, I find this to be a hassle when I need to locate a file on the server itself.</p>
<p>You can easily include a server&#8217;s local drives in its Spotlight index using <strong><em>mdutil</em></strong>:</p>
<p><code>sudo mdutil -i on /</code></p>
<p>The same command can be reissued with the <strong><em>off</em></strong> parameter to reverse the change.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/02/06/enable-local-search-on-leopard-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better &#8220;max-width&#8221; workaround for IE 6</title>
		<link>http://www.twentyways.com/2008/12/11/fix-for-buggy-max-width-workaround-in-ie-6/</link>
		<comments>http://www.twentyways.com/2008/12/11/fix-for-buggy-max-width-workaround-in-ie-6/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 03:53:02 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=159</guid>
		<description><![CDATA[IE 6 famously lacks support for CSS 2.1&#8242;s max-width and max-height properties. Most solutions involve an IE 6-exclusive expression(…) with an inline conditional: max-width: 100px; width: expression(this.clientWidth > 102 ? "100px" : "auto"); Despite the apparent success of this technique, I&#8217;ve still found the inline conditional to be intermittently problematic. A slightly different take on [...]]]></description>
			<content:encoded><![CDATA[<p>IE 6 famously lacks support for CSS 2.1&#8242;s <em>max-width</em> and <em>max-height</em> properties.  Most solutions involve an IE 6-exclusive <em>expression(…)</em> with an inline conditional:</p>
<pre>max-width: 100px;
width: expression(this.clientWidth > 102 ? "100px" : "auto");</pre>
<p>Despite the <a href="http://www.cameronmoll.com/archives/000892.html">apparent success</a> of this technique, I&#8217;ve still found the inline conditional to be intermittently problematic.  A slightly different take on the same solution has worked better for me:</p>
<pre>max-width: 100px;
width: expression(Math.min(this.clientWidth, 100) + "px");</pre>
<p>Shorter, and IMO, marginally more elegant… if any IE hack could bear that label.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2008/12/11/fix-for-buggy-max-width-workaround-in-ie-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using mdfind to preview all tracks by an artist</title>
		<link>http://www.twentyways.com/2008/11/06/using-mdfind-to-preview-all-tracks-by-an-artist/</link>
		<comments>http://www.twentyways.com/2008/11/06/using-mdfind-to-preview-all-tracks-by-an-artist/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 07:02:45 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=103</guid>
		<description><![CDATA[Two among OS X&#8217;s more underutilised CLI tools are mdls and mdfind. These both query the detailed metadata in Spotlight&#8217;s database (hence the md prefix).  The first command will return all the attributes of a file or directory.  The second will find all files that match a given attribute query string.  O&#8217;Reilly&#8217;s MacDevCenter has an [...]]]></description>
			<content:encoded><![CDATA[<p>Two among OS X&#8217;s more underutilised CLI tools are <strong><em>mdls</em></strong> and <em><strong>mdfind</strong></em>.</p>
<p>These both query the detailed metadata in <a href="http://developer.apple.com/macosx/spotlight.html">Spotlight&#8217;s database</a> (hence the <em>md</em> prefix).  The first command will return all the <a href="http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/Reference/CommonAttrs.html">attributes</a> of a file or directory.  The second will find all files that match a given attribute query string.  O&#8217;Reilly&#8217;s MacDevCenter has <a href="http://www.macdevcenter.com/pub/a/mac/2006/01/04/mdfind.html?page=1">an article</a> detailing advanced use of these commands.</p>
<p>The first example uses Apple&#8217;s <a href="http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/afplay.1.html">afplay</a>, but since the AudioFile API <a href="http://lists.apple.com/archives/coreaudio-api/2005/May/msg00032.html">seems to be incapable</a> of understanding its own <a href="http://en.wikipedia.org/wiki/FairPlay">DRM</a> (*.m4p), the second example uses <a href="http://qtplay.darwinports.com/">qtplay</a> from <a href="http://www.macports.org/install.php">MacPorts</a>.</p>
<ul>
<li>Listen to the first 5 seconds of all tracks by Mute Math:
<pre>mdfind "kMDItemAuthors == 'Mute Math'" | while read f; do afplay -s 0 5 "$f"; done</pre>
</li>
<li>Listen to a random track of 148 – 152bpm:
<pre>mdfind "kMDItemTempo &gt;= 148 &amp;&amp; kMDItemTempo &lt;= 152" | qtplay -1 -- -</pre>
</li>
</ul>
<p>Given the pervasive nature of Spotlight’s metadata, the possibilities are vast.  Hint: SSH and &#8220;&amp;&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2008/11/06/using-mdfind-to-preview-all-tracks-by-an-artist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mimic Positive Lookbehind in Javascript</title>
		<link>http://www.twentyways.com/2008/10/17/mimic-positive-lookbehind-in-javascript/</link>
		<comments>http://www.twentyways.com/2008/10/17/mimic-positive-lookbehind-in-javascript/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 20:36:18 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=73</guid>
		<description><![CDATA[JavaScript&#8217;s regular expression engine, while useful, lacks a few less frequently-used constructs. I recently needed to remove all single whitespace characters (\s) immediately following semicolons (;) in a given block of text.  A simple way to accomplish this uses the positive lookbehind construct – that is, to match certain characters (;), but not to consume [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript&#8217;s <a href="http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">regular expression engine</a>, while useful, lacks a few less frequently-used constructs.</p>
<p>I recently needed to remove all single whitespace characters (<em><strong>\s</strong></em>) immediately following semicolons (<em><strong>;</strong></em>) in a given block of text.  A simple way to accomplish this uses the <strong>positive lookbehind</strong> construct – that is, to match certain characters (<em><strong>;</strong></em>), but not to consume them, only to assert whether a match occurred or not.</p>
<p>This would normally be written as:</p>
<pre>text.replace(/(?&lt;=;)\s/g, '');</pre>
<p>Though JavaScript doesn&#8217;t support lookbehinds, we can use a <a href="http://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter">lambda expression</a> to mimic its zero-width assertion behaviour:</p>
<pre>text.replace(/(\;|:)?\s/g, function(str, p1) {
	return p1 ? p1 : str;
});</pre>
<p>I haven&#8217;t tested this workaround exhaustively, but it solved the problem that needed to be overcome.</p>
<p><strong>Update</strong></p>
<p>It seems I&#8217;m not the first to have tackled this.  Steve Levithan&#8217;s regex skills far exceed my own, and his <a href="http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript">blog entry on the subject</a> offers a more comprehensive solution to the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2008/10/17/mimic-positive-lookbehind-in-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Manipulating Passcode Lock on jailbroken iPhone</title>
		<link>http://www.twentyways.com/2008/09/29/manipulating-passcode-lock-on-the-iphone/</link>
		<comments>http://www.twentyways.com/2008/09/29/manipulating-passcode-lock-on-the-iphone/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:09:20 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=14</guid>
		<description><![CDATA[If you have a jailbroken iPhone and find yourself unable to set the passcode lock, you can still activate this feature manually: set your passcode on the iPhone under Settings / General / Passcode Lock (this stores the passcode, despite the feature not being activated) open /private/var/mobile/Library/Preferences/com.apple.springboard.plist on your phone; the easiest way is to [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a jailbroken iPhone and find yourself unable to set the passcode lock, you can still activate this feature manually:</p>
<ul>
<li>set your passcode on the iPhone under <em>Settings / General / Passcode Lock</em><br />
(this stores the passcode, despite the feature not being activated)</li>
<li>open <span style="color: #008000;">/private/var/mobile/Library/Preferences/com.apple.springboard.plist</span> on your phone;<br />
the easiest way is to copy the file locally via SFTP, then edit it in the Property List Editor bundled with Xcode</li>
<li>add the following key under Root:
<ul>
<li>key = PasswordProtected</li>
<li>type = Number</li>
<li>value = 1</li>
</ul>
</li>
<li>restart SpringBoard (relaunch the process, or just restart your phone)</li>
</ul>
<p>You can also reverse this process if you find yourself unable to access said iPhone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2008/09/29/manipulating-passcode-lock-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing Visual Voicemail on the iPhone</title>
		<link>http://www.twentyways.com/2008/09/09/fixing-voicemail-on-the-iphone/</link>
		<comments>http://www.twentyways.com/2008/09/09/fixing-voicemail-on-the-iphone/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 20:41:07 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=11</guid>
		<description><![CDATA[A recent upgrade to my iPhone left the phone unable to access visual voicemail.  When I pushed the Voicemail button from the Phone screen, the phone simply did nothing. Caveat: In addition to resetting your password, this will also delete your personal greeting.  It shouldn&#8217;t affect existing messages, though this assumption is untested. The solution: [...]]]></description>
			<content:encoded><![CDATA[<p>A recent upgrade to my iPhone left the phone unable to access visual voicemail.  When I pushed the <em>Voicemail</em> button from the <em>Phone</em> screen, the phone simply did nothing.</p>
<p><em><strong>Caveat:</strong></em> In addition to resetting your password, this will also delete your personal greeting.  It shouldn&#8217;t affect existing messages, though this assumption is untested.</p>
<p>The solution:</p>
<ul>
<li>disable WiFi from the Settings menu<br />
(visual voicemail needs to reset over EDGE or UMTS/3G)</li>
<li>call AT&amp;T at 611</li>
<li>press 1 to confirm your number</li>
<li>press 3 for voicemail help</li>
<li>press 3 to reset your password</li>
<li>hang up and wait for a confirmation text message</li>
</ul>
<p>The <em>Voicemail</em> screen should work again.  Don&#8217;t forget to re-enable WiFi once you complete your voicemail setup.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2008/09/09/fixing-voicemail-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
