<?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>Innerdvations</title>
	<atom:link href="http://innerdvations.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://innerdvations.com</link>
	<description></description>
	<lastBuildDate>Fri, 20 Apr 2012 23:22:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Busy</title>
		<link>http://innerdvations.com/2012/04/21/busy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=busy</link>
		<comments>http://innerdvations.com/2012/04/21/busy/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 23:22:20 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=400</guid>
		<description><![CDATA[As the astute observer may have noticed, my thing-a-week puttered out around 7 to 8 weeks in.  What have I been up to the past ...  <a href='http://innerdvations.com/2012/04/21/busy/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>As the astute observer may have noticed, my thing-a-week puttered out around 7 to 8 weeks in.  What have I been up to the past 6 months?  Not just sitting around, but not really developing much to share either.  I'll be trying my best to get back into the swing of things over the next few months.  To kick things off (again) I've posted <a href="http://innerdvations.com/things/domain-blocker">a plugin for the YOURLS link shortener</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2012/04/21/busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 8: More Morse</title>
		<link>http://innerdvations.com/2011/11/04/week-8-more-morse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-8-more-morse</link>
		<comments>http://innerdvations.com/2011/11/04/week-8-more-morse/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 16:51:05 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[morse code]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=322</guid>
		<description><![CDATA[After a few weeks break, I'm back, with the stuff I had nearly finished last month.  Here's a nifty tool I'll be expanding over time ...  <a href='http://innerdvations.com/2011/11/04/week-8-more-morse/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>After a few weeks break, I'm back, with the stuff I had nearly finished last month.  <a href="http://innerdvations.com/demos/morser" title="Morse Coder" target="_blank">Here's a nifty tool I'll be expanding over time to hopefully include nearly every morse code standard imaginable</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/11/04/week-8-more-morse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 7: Morse Code</title>
		<link>http://innerdvations.com/2011/10/06/week-7-morse-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-7-morse-code</link>
		<comments>http://innerdvations.com/2011/10/06/week-7-morse-code/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 13:18:15 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[morse code]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=314</guid>
		<description><![CDATA[I spent last week feeling miserable from a cold, which is why I didn't post anything, so I'm planning on having two things finished this ...  <a href='http://innerdvations.com/2011/10/06/week-7-morse-code/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I spent last week feeling miserable from a cold, which is why I didn't post anything, so I'm planning on having two things finished this week to make up for it.</p>
<p>For now, I wrote a little class that generates wav files when fed morse code.  I've set up a page that will simply return the result based on the url parameters.  Change 'morse' and 'speed' (wpm) to whatever you want them to be.  It accepts . for dit, - for dah, and spaces for a dit-length delay.</p>
<p><a href='http://innerdvations.com/demos/morser/audio.php?speed=30&#038;morse=.. -. -. . .-. -.. ...- .- - .. --- -. ... .-.-.- -.-. '>http://innerdvations.com/demos/morser/audio.php?speed=30&#038;morse=.. -. -. . .-. -.. ...- .- - .. --- -. ... .-.-.- -.-. --- --</a></p>
<p>I'll post the source code later this week once I clean it up a bit and release some other morse code related stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/10/06/week-7-morse-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 6: More Perfect &lt;pre&gt; and &lt;code&gt; Tags</title>
		<link>http://innerdvations.com/2011/09/21/week-6-more-perfect-pre-and-code-tags/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-6-more-perfect-pre-and-code-tags</link>
		<comments>http://innerdvations.com/2011/09/21/week-6-more-perfect-pre-and-code-tags/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 17:03:58 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[Thing-A-Week Results]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pre]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=131</guid>
		<description><![CDATA[I recently read an old blog post called "How to Create Perfect Pre Tags" and thought it was pretty awesome, and then a day or ...  <a href='http://innerdvations.com/2011/09/21/week-6-more-perfect-pre-and-code-tags/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I recently read an old blog post called <a href="http://perishablepress.com/press/2009/11/09/perfect-pre-tags/" title="How to create perfect pre tags" target="_blank">"How to Create Perfect Pre Tags"</a> and thought it was pretty awesome, and then a day or two later I saw it (or something very similar) was in use on <a href="http://flattr.com">Flattr.com</a> as well.  However, I found "perfect" to be an inaccurate moniker.</p>
<p>Some of the problems:</p>
<ol>
<li>long lines are cut off when javascript is disabled</li>
<li>unpredictable behavior (depending on css) using &lt;pre&gt; without &lt;code&gt;</li>
<li>no syntax highlighting</li>
<li>no line numbers</li>
<li>pixel font sizes should be ems</li>
<li>widths shouldn't be hard-coded javascript</li>
<li>should be an optional max width property</li>
<li>able to set tab size somewhere</li>
<li>no source code available (other than the tutorial itself)</li>
</ol>
<p>So, I took a bit of the original code and then rewrote most of it to do all of the above.  jQuery is required (though with javascript disabled, #1 and #2 have still been fixed).  #3 requires Google Code Prettify, but that's totally optional.</p>
<p>Here are some examples with the different options:</p>
<pre><code>// really long block with just &lt;pre&gt;&lt;code&gt;&lt;/pre&gt;&lt;/code&gt;
	wp_register_style(self::$plugin_stylesheet_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-styles.css' );
	wp_enqueue_style(self::$plugin_stylesheet_id);
	wp_register_script(self::$plugin_script_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-scripts.js' );
	wp_enqueue_script(self::$plugin_script_id);</code></pre>
<pre max-width="800"><code>// uses max-width
	wp_register_style(self::$plugin_stylesheet_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-styles.css' );
	wp_enqueue_style(self::$plugin_stylesheet_id);
	wp_register_script(self::$plugin_script_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-scripts.js' );
	wp_enqueue_script(self::$plugin_script_id);</code></pre>
<pre class='noprettyprint'><code>// with class noprettyprint
	wp_register_style(self::$plugin_stylesheet_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-styles.css' );
	wp_enqueue_style(self::$plugin_stylesheet_id);
	wp_register_script(self::$plugin_script_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-scripts.js' );
	wp_enqueue_script(self::$plugin_script_id);</code></pre>
<pre class='nolinenums'><code>// with class nolinenums
	wp_register_style(self::$plugin_stylesheet_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-styles.css' );
	wp_enqueue_style(self::$plugin_stylesheet_id);
	wp_register_script(self::$plugin_script_id, WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/admin-scripts.js' );
	wp_enqueue_script(self::$plugin_script_id);</code></pre>
<pre>// just &lt;pre&gt; and no &lt;code&gt;
 ____  ____   ____     ___  ____   ___    __ __   ____  ______  ____  ___   ____    _____        __   ___   ___ ___
l    j|    \ |    \   /  _]|    \ |   \  |  T  | /    T|      Tl    j/   \ |    \  / ___/       /  ] /   \ |   T   T
 |  T |  _  Y|  _  Y /  [_ |  D  )|    \ |  |  |Y  o  ||      | |  TY     Y|  _  Y(   \_       /  / Y     Y| _   _ |
 |  | |  |  ||  |  |Y    _]|    / |  D  Y|  |  ||     |l_j  l_j |  ||  O  ||  |  | \__  T     /  /  |  O  ||  \_/  |
 |  | |  |  ||  |  ||   [_ |    \ |     |l  :  !|  _  |  |  |   |  ||     ||  |  | /  \ | __ /   \_ |     ||   |   |
 j  l |  |  ||  |  ||     T|  .  Y|     | \   / |  |  |  |  |   j  ll     !|  |  | \    ||  T\     |l     !|   |   |
|____jl__j__jl__j__jl_____jl__j\_jl_____j  \_/  l__j__j  l__j  |____j\___/ l__j__j  \___jl__j \____j \___/ l___j___j
</pre>
<pre class='expandable'>// just &lt;pre&gt; with class 'expandable' and no &lt;code&gt;
 ____  ____   ____     ___  ____   ___    __ __   ____  ______  ____  ___   ____    _____        __   ___   ___ ___
l    j|    \ |    \   /  _]|    \ |   \  |  T  | /    T|      Tl    j/   \ |    \  / ___/       /  ] /   \ |   T   T
 |  T |  _  Y|  _  Y /  [_ |  D  )|    \ |  |  |Y  o  ||      | |  TY     Y|  _  Y(   \_       /  / Y     Y| _   _ |
 |  | |  |  ||  |  |Y    _]|    / |  D  Y|  |  ||     |l_j  l_j |  ||  O  ||  |  | \__  T     /  /  |  O  ||  \_/  |
 |  | |  |  ||  |  ||   [_ |    \ |     |l  :  !|  _  |  |  |   |  ||     ||  |  | /  \ | __ /   \_ |     ||   |   |
 j  l |  |  ||  |  ||     T|  .  Y|     | \   / |  |  |  |  |   j  ll     !|  |  | \    ||  T\     |l     !|   |   |
|____jl__j__jl__j__jl_____jl__j\_jl_____j  \_/  l__j__j  l__j  |____j\___/ l__j__j  \___jl__j \____j \___/ l___j___j
</pre>
<p>Since what you're seeing on this site at the moment is an old hacked together version,<br />
<a href="http://innerdvations.com/demos/pre-code/" title="Pretty Pre and Code Tags">here's a demo page I've set up</a> where you can see all the different options and download the source.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/09/21/week-6-more-perfect-pre-and-code-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 5: Support</title>
		<link>http://innerdvations.com/2011/09/15/week-5-support/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-5-support</link>
		<comments>http://innerdvations.com/2011/09/15/week-5-support/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 20:08:28 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=290</guid>
		<description><![CDATA[Major update to the Dashboard Site Notes plugin, more work into it than it took to write the original version.  I also did a major ...  <a href='http://innerdvations.com/2011/09/15/week-5-support/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>Major update to the Dashboard Site Notes plugin, more work into it than it took to write the original version.  I also did a major update on the Custom Post Type Archive plugin last week.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/09/15/week-5-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Translate role names in your WordPress plugin or theme</title>
		<link>http://innerdvations.com/2011/09/15/translate-role-names-in-your-wordpress-plugin-or-theme/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=translate-role-names-in-your-wordpress-plugin-or-theme</link>
		<comments>http://innerdvations.com/2011/09/15/translate-role-names-in-your-wordpress-plugin-or-theme/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 15:18:58 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=286</guid>
		<description><![CDATA[I've been working on a plugin that needs to print a list of all role names with a checkbox next to them.  But when you ...  <a href='http://innerdvations.com/2011/09/15/translate-role-names-in-your-wordpress-plugin-or-theme/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I've been working on a plugin that needs to print a list of all role names with a checkbox next to them.  But when you get the printable role name from $wp_roles->roles[$x]['name'], you only get the English name.  The translation isn't stored anywhere in $wp_roles.  Also, since it's a variable, you can't use one of the basic gettext functions like __() or _e() to have someone provide translations for you (although even if you could, that would be a dirty way of doing it).</p>
<p>To get the translated role names that are already included in WordPress, use translate_user_role() on that full English name rather than translate_with_context().</p>
<p>I don't know why it's virtually undocumented, so it's possible there's a negative to doing it this way, but that's actually the function used by core to get the translated dropdown menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/09/15/translate-role-names-in-your-wordpress-plugin-or-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 4: QR Code Out</title>
		<link>http://innerdvations.com/2011/09/09/week-4-qr-code-out/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-4-qr-code-out</link>
		<comments>http://innerdvations.com/2011/09/09/week-4-qr-code-out/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 18:01:35 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[qr code]]></category>
		<category><![CDATA[thing-a-week]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=282</guid>
		<description><![CDATA[I was pretty busy with "real" work this week, so I'm posting a bit late.  Next week will come early.

I had an idea for ...  <a href='http://innerdvations.com/2011/09/09/week-4-qr-code-out/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I was pretty busy with "real" work this week, so I'm posting a bit late.  Next week will come early.</p>
<p>I had an idea for a dumb game so <a title="QR Code Out" href="http://innerdvations.com/demos/qr/out/">I made it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/09/09/week-4-qr-code-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 3: NSFW!</title>
		<link>http://innerdvations.com/2011/09/01/week-3-nsfw/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-3-nsfw</link>
		<comments>http://innerdvations.com/2011/09/01/week-3-nsfw/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 15:33:24 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[nsfw]]></category>
		<category><![CDATA[thing-a-week]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=261</guid>
		<description><![CDATA[I'm planning to make a potentially not-safe-for-work post in the future, so I figured I'd put together a plugin to handle it without offending anyone. ...  <a href='http://innerdvations.com/2011/09/01/week-3-nsfw/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I'm planning to make a potentially not-safe-for-work post in the future, so I figured I'd put together a plugin to handle it without offending anyone. Here is the <a href="http://innerdvations.com/plugins/make-safe-for-work/">Make Safe For Work</a> WordPress plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/09/01/week-3-nsfw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 2: Dashboard Site Notes</title>
		<link>http://innerdvations.com/2011/08/24/week-2-dashboard-site-notes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=week-2-dashboard-site-notes</link>
		<comments>http://innerdvations.com/2011/08/24/week-2-dashboard-site-notes/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 13:29:30 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Thing-A-Week]]></category>
		<category><![CDATA[dashboard site notes]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[thing-a-week]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=229</guid>
		<description><![CDATA[This week I finished my hopefully bug-free plugin [intlink id="9" type="post"]Dashboard Site Notes[/intlink].  You can also enjoy this timelapse video that I actually made a ...  <a href='http://innerdvations.com/2011/08/24/week-2-dashboard-site-notes/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>This week I finished my hopefully bug-free plugin <a href="http://innerdvations.com/plugins/admin-dashboard-notes/">Dashboard Site Notes</a>.  You can also enjoy this <a href="http://www.youtube.com/watch?v=wTI_Slno370" target="_blank">timelapse video that I actually made a few weeks ago of the basil plant in my kitchen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/08/24/week-2-dashboard-site-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Youtube&#8217;s Zero Width No-Break Spaces (aka BOM, aka 65279, aka 0xFEFF)</title>
		<link>http://innerdvations.com/2011/08/20/youtubes-zero-width-no-break-spaces-aka-bom-aka-65279-aka-0xfeff/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=youtubes-zero-width-no-break-spaces-aka-bom-aka-65279-aka-0xfeff</link>
		<comments>http://innerdvations.com/2011/08/20/youtubes-zero-width-no-break-spaces-aka-bom-aka-65279-aka-0xfeff/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 18:16:56 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Insignificant Bugs That Drive Me Crazy]]></category>
		<category><![CDATA[bom]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[byte-order mark]]></category>
		<category><![CDATA[non-breaking space]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://innerdvations.com/?p=167</guid>
		<description><![CDATA[I use Opera as my primary web browser.  I also use YouTube.  They go together pretty well, except for one little thing:  The byte-order mark ...  <a href='http://innerdvations.com/2011/08/20/youtubes-zero-width-no-break-spaces-aka-bom-aka-65279-aka-0xfeff/'>read more &#62;&#62;</a>]]></description>
			<content:encoded><![CDATA[<p>I use Opera as my primary web browser.  I also use YouTube.  They go together pretty well, except for one little thing:  The <a href='http://en.wikipedia.org/wiki/Byte_order_mark' target='_blank'>byte-order mark (BOM)</a> that YouTube sticks, seemingly randomly, in the middle of nearly every single comment.</p>
<p>Now, I realize that even assuming someone would want to actually read YouTube comments is a stretch.  That's probably why nobody has ever noticed this bug before -- I'm probably the first person to actually read a comment on YouTube.  So that you don't have to do so as well, I've taken a screenshot of the issue:<br />
<div id="attachment_168" class="wp-caption alignnone" style="width: 462px"><img src="http://innerdvations.com/wp-content/uploads/2011/08/opera.png" alt="" title="opera" width="452" height="153" class="size-full wp-image-168" /><p class="wp-caption-text">YouTube comments as displayed by Opera</p></div></p>
<p>If you want to see how your own browser renders an inline BOM, I've put them in brackets here:<br />
[&#65279;] (using &amp;#65279;)<br />
[﻿] (the actual character itself)</p>
<p>If you use Firefox or Chrome, you probably don't see anything.  In fact, the second one is probably even completely missing when you view source. I'm guessing that rather than treat it as a <a href='http://en.wikipedia.org/wiki/Zero-width_non-breaking_space' target='_blank'>"zero-width non-breaking space"</a> they assume there's an out-of-place BOM and trash it altogether.</p>
<div id="attachment_184" class="wp-caption alignnone" style="width: 636px"><img src="http://innerdvations.com/wp-content/uploads/2011/08/lynx.png" alt="" title="lynx" width="626" height="349" class="size-full wp-image-184" /><p class="wp-caption-text">YouTube comments as displayed by Lynx, proving I&#039;m not imagining things</p></div>
<p>So, whose fault is this?  As I understand it, it's Opera's fault, because it should be displayed as a zero-width space, but YouTube should share a good portion of blame for sticking a BOM, which is only supposed to appear as the first character in a document, in the middle of content.  I can't think of a single reason for any of them to be there... they're not joining words, they're not doing any sort of strange character set handling.  Additionally, Opera could have a security argument for visibly rendering it, since it's one of those characters that phishers like to use to make something appear legit when it's not.</p>
<p><strong>Anyway, here's how to fix it</strong> (if you're like me and you use Opera and are driven crazy by insignificant little details).  All you need to do is go to Site Preferences, Scripts, set a user-script directory, and then <a href='http://innerdvations.com/wp-content/uploads/2011/08/youtube.js'>put this file</a> or create a .js file with this in it:</p>
<pre class=''><code>last_clean = new Date().getTime();
function clean_youtube_comments() {
	// if the element we're cleaning doesn't exist, don't try cleaning it
	if (!document.getElementById('comments-view')) {
		return;
	}

	original = document.getElementById('comments-view').innerHTML;
	cleaned = document.getElementById('comments-view').innerHTML.replace(/[﻿]*/gi,'');
	// make sure we should actually replace it
	if(original != cleaned &#038;& original.length >= cleaned.length &#038;& cleaned.length) {
		document.getElementById('comments-view').innerHTML = cleaned;
		last_clean = new Date().getTime();
	}
}

function yt_DOMNodeInserted() {
	// if we cleaned less than 50ms ago, skip it. this prevents cleaning
	// multiple times on paging, because DOMNodeInserted gets called for
	// each node inserted, which amounts to about 5 times in a row in
	// this case.
	now = new Date().getTime();
	if(now - last_clean &lt; 50) {
		return;
	}
	clean_youtube_comments();
}

addEventListener('load', function (e) {
  // clean on page load
  clean_youtube_comments();
  // clean on DOMNodeInserted (listener for the ajax paging of comments)
  document.getElementById("watch-discussion").addEventListener("DOMNodeInserted", yt_DOMNodeInserted, false);
}, false);</code></pre>
<p><strong>Updated 2011-08-27:</strong> It took a week before I had the urge to view a second page of comments and realized it didn't catch those, so I've had to add a listener for YouTube AJAX paging.</p>
]]></content:encoded>
			<wfw:commentRss>http://innerdvations.com/2011/08/20/youtubes-zero-width-no-break-spaces-aka-bom-aka-65279-aka-0xfeff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
