<?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>MattKruse.com</title>
	<atom:link href="http://mattkruse.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattkruse.com</link>
	<description></description>
	<lastBuildDate>Wed, 15 Dec 2010 15:54:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Remove &quot;Recent Activity&quot; Posts From Your Facebook Profile</title>
		<link>http://mattkruse.com/2010/12/13/remove-recent-activity-posts-from-your-facebook-profile/</link>
		<comments>http://mattkruse.com/2010/12/13/remove-recent-activity-posts-from-your-facebook-profile/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 16:03:51 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Better Facebook]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/12/13/remove-recent-activity-posts-from-your-facebook-profile/</guid>
		<description><![CDATA[Facebook recently made yet another unwelcome change to user&#8217;s profiles: When you comment on a friend&#8217;s status or a page&#8217;s post or take other actions on Facebook, an entry will be put into your profile. And now, the entry doesn&#8217;t just say &#34;Matt commented on Joe&#8217;s status&#34; – it gives a little blurb of the [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook recently made yet another unwelcome change to user&#8217;s profiles: When you comment on a friend&#8217;s status or a page&#8217;s post or take other actions on Facebook, an entry will be put into your profile. And now, the entry doesn&#8217;t just say &quot;Matt commented on Joe&#8217;s status&quot; – it gives a little blurb of the actual text!</p>
<p>&#160;<img title="remove_post" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px; border-right-width: 0px" height="74" alt="remove_post" src="http://mattkruse.com/wp-content/uploads/2010/12/remove_post.png" width="501" border="0" /> </p>
<p>Many users consider this a further violation of privacy, and choose to delete these posts manually by clicking the &quot;x&quot; on each one, then confirming in the popup dialog. This is cumbersome!</p>
<p><a href="http://BetterFacebook.net" target="_blank">Better Facebook</a> fixes this for you. It adds a single link to each block of &quot;recent activity&quot; posts that will remove all the posts for you in one click.</p>
<p>&#160;<img title="remove_all_activity" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px; border-right-width: 0px" height="74" alt="remove_all_activity" src="http://mattkruse.com/wp-content/uploads/2010/12/remove_all_activity.png" width="500" border="0" /> </p>
</p>
</p>
<p>Ah, much easier!</p>
<p><strong><font color="#ff0000">UPDATE!&#160; (Dec 15):</font></strong> I have improved this even more since the original release, and now it works even more consistently in the BETA version of Better Facebook: <a href="http://BetterFacebook.net/beta/4.502/">http://BetterFacebook.net/beta/4.502/</a></p>
<p>Also in this version is an option in Options-&gt;Advanced to <strong>automatically remove recent activity posts</strong>. If you enable this, then visit your profile, any recent activity posts found will automatically be removed. You will be informed of any removal in a little message box in the upper right. It couldn&#8217;t be an easier than that! Keep your activity private!</p>
<p>Download <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a> from <a href="http://BetterFacebook.net">http://BetterFacebook.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/12/13/remove-recent-activity-posts-from-your-facebook-profile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filter Your Facebook Feed As Friends Update Their Profiles</title>
		<link>http://mattkruse.com/2010/12/06/filter-your-facebook-feed-as-friends-update-their-profiles/</link>
		<comments>http://mattkruse.com/2010/12/06/filter-your-facebook-feed-as-friends-update-their-profiles/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 19:47:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Better Facebook]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/12/06/filter-your-facebook-feed-as-friends-update-their-profiles/</guid>
		<description><![CDATA[Today Facebook unveiled a new profile page layout, as announced at http://www.facebook.com/about/profile/ . Although many like the new layout, one side-effect has been noticed by most: The new profile layout encourages users to update their personal information. And as your friends do this, your stream may become littered with stories about their changes to their [...]]]></description>
			<content:encoded><![CDATA[<p> Today Facebook unveiled a new profile page layout, as announced at <a title="http://www.facebook.com/about/profile/" href="http://www.facebook.com/about/profile/">http://www.facebook.com/about/profile/</a> .</p>
<p>Although many like the new layout, one side-effect has been noticed by most: The new profile layout encourages users to update their personal information. And as your friends do this, your stream may become littered with stories about their changes to their home town, likes, sports, etc.</p>
<p>Luckily you can easily filter all those stories out of your feed by using the <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a> browser add-on from <a href="http://BetterFacebook.net">http://BetterFacebook.net</a> . Using <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a>, you can setup a Feed Filter like this:</p>
<p><img title="fb_hide_info_filter" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="177" alt="fb_hide_info_filter" src="http://mattkruse.com/wp-content/uploads/2010/12/fb_hide_info_filter.png" width="791" border="0" /> </p>
<p>This will cause all of these stories about information changes to be hidden from your stream, and you can get back to an uncluttered stream of posts from your friends.</p>
<p>Enjoy!</p>
<p><a href="http://BetterFacebook.net">http://BetterFacebook.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/12/06/filter-your-facebook-feed-as-friends-update-their-profiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I See What You Did There</title>
		<link>http://mattkruse.com/2010/11/12/i-see-what-you-did-there/</link>
		<comments>http://mattkruse.com/2010/11/12/i-see-what-you-did-there/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 14:59:44 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/11/12/i-see-what-you-did-there/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattkruse.com/wp-content/uploads/2010/11/slashslash.gif" target="_blank"><img title="slashslash" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="148" alt="slashslash" src="http://mattkruse.com/wp-content/uploads/2010/11/slashslash_thumb.gif" width="644" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/11/12/i-see-what-you-did-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding Character Encoding In Java Webapps With IE</title>
		<link>http://mattkruse.com/2010/11/10/understanding-character-encoding-in-java-webapps-with-ie/</link>
		<comments>http://mattkruse.com/2010/11/10/understanding-character-encoding-in-java-webapps-with-ie/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 16:05:42 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/11/10/understanding-character-encoding-in-java-webapps-with-ie/</guid>
		<description><![CDATA[I recently spent a lot of time learning about character encoding in browsers and web applications, trying to debug problems with characters not displaying correctly. I found a lot of information scattered all over the web, but no single place that really explained the things I needed to know to get a grasp of what [...]]]></description>
			<content:encoded><![CDATA[<p>I recently spent a lot of time learning about character encoding in browsers and web applications, trying to debug problems with characters not displaying correctly. I found a lot of information scattered all over the web, but no single place that really explained the things I needed to know to get a grasp of what was going on. So I wrote up the points below, hoping that someone Googling these terms and looking for answers like I was will find these points and find it useful!</p>
<p>Each displayable character has a numeric representation. ASCII defines the common characters, where A=65 and z=122 for example. Most character sets use values 128-255 to store their own characters such as non-English characters and punctuation. These character sets are still compatible with ASCII because they maintain the same character maps as those defined by ASCII. </p>
<p><strong>Unicode</strong> is a standard that defines a huge range of printable characters across many languages. <strong>UTF-8 is a variable-length character encoding for Unicode that is backwards-compatible with ASCII</strong>. All ASCII characters are stored as their single-byte representation. Other characters are stored in 1-4 bytes. UTF-8 is the preferred character set internationally because it supports all characters and because it is backwards-compatible. </p>
<p><strong>ISO-8859-1</strong> (Latin-1) is a single-byte non-Unicode character set that defines characters 128-159 as undisplayable control characters, and lacks important characters like Euro. </p>
<p><strong>windows-1252</strong> is identical to ISO-8859-1, but it takes the range of control characters (128-159) and replaces it with useful, displayable special characters like Euro (128) and smart quotes (often used in apps like Microsoft Word). A single closing smart quote, for example, is character 146. </p>
<p>When browsers receive a page that says it is encoded in ISO-8859-1, they treat it as windows-1252 because in most cases it really is. This way it can display these extended characters correctly, even when the encoding is incorrectly identified as ISO-8859-1. </p>
<p>This special handling is so useful and common that it is actually required in draft versions of HTML5. </p>
<p><strong>Browsers will submit content with the same encoding as what the page is displayed in</strong>. If content is pasted into the browser from an external app, it will convert it to the appropriate character set before submitting. It is important to always send the correct character encoding to the browser so it knows how to display it, as well as convert pasted text and submit. </p>
<p>When sending an <strong>AJAX</strong> request, <strong>IE will always ignore the encoding on the page and send in UTF-8 i</strong>nstead. There is no way to override this. When handling AJAX responses, it will default to treating the content as UTF-8 unless it is explicitly stated otherwise. </p>
<p>Web servers treat URL’s themselves and request bodies as <strong>ISO-8859-1 by default</strong> if no encoding is specified by the browser. </p>
<p><strong>URL’s are defined to be ASCII only.</strong> If non-ASCII characters are to be sent in a URL, they must be encoded using %FF hex syntax. A windows-1252 closing smart quote character with code 146 will be sent in an encoded url as %92 from a normal submit on a page encoded in windows-1252, but will be sent as %E2%80%99 (UTF-8) if the URL is constructed via encodeURIComponent and sent via AJAX. There is no requirement about what encoding this character represents, so it is important for the browser to send the correct encoding type in the request headers. </p>
<p>If a <strong>GET request is received via AJAX, the parameter values will actually be encoded as UTF-8</strong> (when encodeURIComponent is used), but the web browser treats the URL as ISO-8859-1, and encoded characters do not get mapped correctly. The web server needs to be told explicitly to treat incoming URL’s as UTF-8. The Content-type header in the request does not apply to the type of characters in the URL itself.    <br />In Tomcat’s server.xml, for example:</p>
<blockquote><p>&lt;Connector port=&quot;8080&quot; URIEncoding=&quot;UTF-8&quot;/&gt;</p>
</blockquote>
<p>This way, Java will not attempt to incorrectly translate URL parameters from ISO-8859-1 to UTF-8, since they are treated as already being in UTF-8.   <br />You can also make the encoding dynamic by using:</p>
<blockquote><p>&lt;Connector port=”8080” useBodyEncodingForURI=”true”/&gt;</p>
</blockquote>
<p>This will cause Tomcat to use the encoding sent by the browser instead. </p>
<p><strong>It is highly recommend that, when possible, UTF-8 be used in every layer</strong>. This avoids any transcoding problems and confusion and it supported correctly in IE whether you’re using AJAX or not. </p>
<p>Character sets have different names in different environments, such as Sybase. Aliases:   <br />ISO-8859-1 = iso_1 = cp850    <br />windows-1252 = cp1252    <br />UTF-8 = utf8    <br />Depending on your environment, you may need to use a specific version of the character set name. </p>
<p>Useful References:</p>
<p><a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1">http://en.wikipedia.org/wiki/ISO/IEC_8859-1</a>    <br /><a href="http://en.wikipedia.org/wiki/Windows-1252">http://en.wikipedia.org/wiki/Windows-1252</a>    <br /><a href="http://en.wikipedia.org/wiki/UTF-8">http://en.wikipedia.org/wiki/UTF-8</a>    <br /><a href="http://wiki.apache.org/tomcat/FAQ/CharacterEncoding">http://wiki.apache.org/tomcat/FAQ/CharacterEncoding</a>    <br /><a title="http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/fd96823cbcd0c126/ca1d033bf8c8aea2" href="http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/fd96823cbcd0c126/ca1d033bf8c8aea2">http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/fd96823cbcd0c126/ca1d033bf8c8aea2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/11/10/understanding-character-encoding-in-java-webapps-with-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Undo Facebook Font Changes With Better Facebook!</title>
		<link>http://mattkruse.com/2010/11/03/undo-facebook-font-changes-with-better-facebook/</link>
		<comments>http://mattkruse.com/2010/11/03/undo-facebook-font-changes-with-better-facebook/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 14:52:42 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/11/03/undo-facebook-font-changes-with-better-facebook/</guid>
		<description><![CDATA[Today, Facebook changed their default font size for most users from 13px to 11px. For many, this is too small! They also changed the layout so status updates appear under the user&#8217;s name, rather than immediately to the right. With the latest version of Better Facebook, you can thankfully undo both of these changes! First, [...]]]></description>
			<content:encoded><![CDATA[<p>Today, Facebook changed their default font size for most users from 13px to 11px. For many, this is too small! They also changed the layout so status updates appear under the user&#8217;s name, rather than immediately to the right.</p>
<p><img title="smaller-font" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="404" alt="smaller-font" src="http://mattkruse.com/wp-content/uploads/2010/11/smallerfont.jpg" width="534" border="0" /> </p>
<p>With the latest version of <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a>, you can thankfully undo both of these changes!</p>
<p>First, download <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a> for your browser by going to <a href="http://BetterFacebook.net">http://BetterFacebook.net</a></p>
<p>Then, make two changes:</p>
<ol>
<li><strong>In Options-&gt;Popular (the first tab), enter &quot;13&quot; as the value for the last option &#8211; Force post font size to be __px. This will restore the font size.       <br /></strong><img title="font-size-option" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="349" alt="font-size-option" src="http://mattkruse.com/wp-content/uploads/2010/11/fontsizeoption.gif" width="346" border="0" />       </li>
<li><strong>In Options-&gt;CSS enter this text into the big box:</strong></li>
</ol>
<blockquote><p>.actorName{ display:inline; margin-right:3px; padding-bottom:0px !important; }</p>
</blockquote>
<p><img title="font-size-css" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="239" alt="font-size-css" src="http://mattkruse.com/wp-content/uploads/2010/11/fontsizecss.gif" width="514" border="0" /> </p>
<p>Click Save and refresh Facebook. You&#8217;ll be back to the layout you had before. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/11/03/undo-facebook-font-changes-with-better-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restore The &quot;Unread&quot; Selector Link In GMail!</title>
		<link>http://mattkruse.com/2010/08/14/restore-the-unread-selector-link-in-gmail/</link>
		<comments>http://mattkruse.com/2010/08/14/restore-the-unread-selector-link-in-gmail/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 21:08:43 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/08/14/restore-the-unread-selector-link-in-gmail/</guid>
		<description><![CDATA[Google recently updated GMail, and in the process they removed the &#34;Select&#34; line just under the buttons at the top. Unfortunately for most people (myself included), this was something that they used often! After reading the messages that weren&#8217;t spam, my natural motion was to select &#34;Unread&#34;, then move up a bit and click Delete. [...]]]></description>
			<content:encoded><![CDATA[<p>Google recently updated GMail, and in the process they removed the &quot;Select&quot; line just under the buttons at the top. Unfortunately for most people (myself included), this was something that they used often! After reading the messages that weren&#8217;t spam, my natural motion was to select &quot;Unread&quot;, then move up a bit and click Delete. I used it many times a day.</p>
<p>But after the update, the selector was hidden in a dropdown under a checkbox on the left. Very inconvenient!</p>
<p>So, Greasemonkey to the rescue again!&#160; I wrote this Greasemonkey script: <a title="http://userscripts.org/scripts/show/83525" href="http://userscripts.org/scripts/show/83525"><a title="Gmail - Restore &quot;Select&quot; line including &quot;Unread&quot; link" href="http://userscripts.org/scripts/show/83525" target="_blank">Gmail &#8211; Restore &quot;Select&quot; line including &quot;Unread&quot; link</a></a></p>
<p>This will add the &quot;Select&quot; line in and bring back one-click access to message selection, like this:</p>
<p><img title="gmail_Select" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px; border-left: 0px; border-bottom: 0px" height="59" alt="gmail_Select" src="http://mattkruse.com/wp-content/uploads/2010/08/gmail_Select.gif" width="513" border="0" /> </p>
<p>Enjoy <img src='http://mattkruse.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/08/14/restore-the-unread-selector-link-in-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safari Extension Gallery Has Big Impact On Better Facebook!</title>
		<link>http://mattkruse.com/2010/07/29/safari-extension-gallery-has-big-impact-on-better-facebook/</link>
		<comments>http://mattkruse.com/2010/07/29/safari-extension-gallery-has-big-impact-on-better-facebook/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 14:03:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[utils]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/07/29/safari-extension-gallery-has-big-impact-on-better-facebook/</guid>
		<description><![CDATA[Background On July 28 2010, Apple officially released a new version of Safari, and along with it the Extension Gallery. A few weeks before the release, I received an email from Apple requesting that developers submit their extensions for consideration to be included in the gallery when it was released. I was happy that Better [...]]]></description>
			<content:encoded><![CDATA[<h2>Background</h2>
<p>On July 28 2010, Apple officially released a new version of Safari, and along with it the <a href="http://extensions.apple.com" target="_blank">Extension Gallery</a>. A few weeks before the release, I received an email from Apple requesting that developers submit their extensions for consideration to be included in the gallery when it was released. I was happy that <a href="http://BetterFacebook.net" target="_blank">Better Facebook</a>, my browser/script extension that I have been working on for almost a year, worked great in Safari and that I had previously figured out how to package an official Safari Extension. So I filled out the form and submitted Better Facebook to the gallery.</p>
<p>On the morning of July 28, I got an Google Alert email with a new match for the term &quot;Better Facebook&quot; (I am a self-stalker!). It pointed me to the Safari Extension Gallery, and I knew that I could expect a bump in traffic for the day.</p>
<p>Thankfully, Better Facebook is prominently featured in the gallery, near the top of the listings, and the first extension to be listed in the &quot;<a href="http://extensions.apple.com/#social-networking" target="_blank">Social Networking</a>&quot; category:</p>
<p><a href="http://mattkruse.com/wp-content/uploads/2010/07/bfb_gallery.png" target="_blank"><img title="bfb_gallery" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="bfb_gallery" src="http://mattkruse.com/wp-content/uploads/2010/07/bfb_gallery_thumb.png" width="704" border="0" /></a> </p>
<h2>Impact On Site Traffic</h2>
<p>Previously, my site got around 1,000 hits a day – sometimes more, which I was always pretty happy with. But you can see the history compared to July 28!</p>
<p><a href="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_long.png" target="_blank"><img title="bfb_stats_long" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="395" alt="bfb_stats_long" src="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_long_thumb.png" width="704" border="0" /></a> </p>
<p>Looking closer at just the one day of traffic, I found that I got over 16,000 hits to the site itself!</p>
<p><a href="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_day.png" target="_blank"><img title="bfb_stats_day" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="163" alt="bfb_stats_day" src="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_day_thumb.png" width="704" border="0" /></a> </p>
<p>Looking at the referers, I found that over 10,000 of those hits came directly from the Safari Extension Gallery:</p>
<p><a href="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_referers.png" target="_blank"><img title="bfb_stats_referers" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="369" alt="bfb_stats_referers" src="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_referers_thumb.png" width="704" border="0" /></a> </p>
<p>I was happy to see that Better Facebook was mentioned in other stories about the Extension Gallery also, including <a href="http://www.zdnet.com/blog/gadgetreviews/apple-releases-safari-50-update-includes-extensions-gallery/16798" target="_blank">ZDNet</a> and <a href="http://lifehacker.com/5598524/" target="_blank">Lifehacker</a>.</p>
<p>I haven&#8217;t totaled up the number of actual downloads yet, but I did exceed my bandwidth limitations yesterday. I might need to increase my hosting capabilities if this continues.</p>
<h2>Impact On Facebook Page</h2>
<p>Better Facebook also has an official Page on Facebook, and the impact on the number of people who &quot;Like&quot; it was dramatic!</p>
<p>The history of &quot;Likes&quot; of the page looks like this:</p>
<p><a href="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_fan_history.png" target="_blank"><img title="bfb_stats_fan_history" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="323" alt="bfb_stats_fan_history" src="http://mattkruse.com/wp-content/uploads/2010/07/bfb_stats_fan_history_thumb.png" width="503" border="0" /></a> </p>
<p>A slow, steady growth pattern to what I considered to be a pretty impressive number – 8,500 fans before July 28th. But on the day itself, I saw an impressive growth of almost 2,000 new fans! That put the page over 10,000 fans, which is a number that many companies and pages would envy. As I write this, the page stands at 10,691 fans and it just keeps going up. It will be interesting to see the historical graph once it is updated in Facebook Insights.</p>
<h2>Conclusion</h2>
<p>I have put many hours of work into Better Facebook, and I&#8217;ve been happy to see it grow and its popularity slowly increase. I find it incredibly useful for myself, and most users seem enthusiastic about what it does also. The problem has always been how to get it to &quot;explode&quot; and really take off and find a wider userbase. Being listed in the Extension Gallery has finally been the spark that made this happen, and I&#8217;m very happy about it! It&#8217;s a fun, interesting experience and I get to learn a lot from it. It helps me create better software and learn new ways to share information and interact with users in the social space. I&#8217;m grateful for the exposure, and humbled by the positive reactions of thousands of users.</p>
<p>Now… can I somehow profit a little from this? Heh. We&#8217;ll see…</p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/07/29/safari-extension-gallery-has-big-impact-on-better-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greasemonkey JSON Unicode Problems &#8211; Solved!</title>
		<link>http://mattkruse.com/2010/03/26/greasemonkey-json-unicode-problems-solved/</link>
		<comments>http://mattkruse.com/2010/03/26/greasemonkey-json-unicode-problems-solved/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:18:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/03/26/greasemonkey-json-unicode-problems-solved/</guid>
		<description><![CDATA[I had a number of users report problems with my Better Facebook! Firefox Add-on. The error was always with JSON.parse(), and it only happened with the Add-on, not the Greasemonkey version of the script. I was stumped for over a month. Couldn&#8217;t figure it out. Finally, I found the root cause and solution. The problem [...]]]></description>
			<content:encoded><![CDATA[<p>I had a number of users report problems with my <a href="https://addons.mozilla.org/en-US/firefox/addon/52369" target="_blank">Better Facebook! Firefox Add-on</a>. The error was always with JSON.parse(), and it only happened with the Add-on, not the <a href="http://userscripts.org/scripts/show/61761" target="_blank">Greasemonkey version of the script</a>. I was stumped for over a month. Couldn&#8217;t figure it out.</p>
<p>Finally, I found the root cause and solution.</p>
<p>The problem was unicode strings being passed into JSON.stringify(). This sometimes resulted in an invalid JSON structure, which then failed when passed to JSON.parse(). The root cause was not within my code, but within the Greasemonkey <a href="http://arantius.com/misc/greasemonkey/script-compiler" target="_blank">User Script Compiler</a> that I used to create the Add-on.</p>
<p>The problem was that the script was not being read in using UTF-8, so when executed it didn&#8217;t properly handle UTF-8. In the script-compiler.js file, line 22 (for me) I found this:</p>
<blockquote><p>var channel=ioService.newChannel(aUrl, null, null);</p>
</blockquote>
<p>I simply had to change the line to this instead:</p>
<blockquote><p>var channel=ioService.newChannel(aUrl, &quot;UTF-8&quot;, null);</p>
</blockquote>
<p>I re-packaged the add-on and the problem disappeared! Hopefully it anyone else runs into this, a quick Google search will find this page. In all my searching, I hadn&#8217;t come across anyone else talking about this specific issue. But solving a very needle-in-a-haystack problem is very rewarding, and I&#8217;ll be glad to stop getting error reports!</p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/03/26/greasemonkey-json-unicode-problems-solved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Facebook</title>
		<link>http://mattkruse.com/2010/02/10/better-facebook/</link>
		<comments>http://mattkruse.com/2010/02/10/better-facebook/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 17:22:28 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[GreaseMonkey]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/02/10/better-facebook/</guid>
		<description><![CDATA[I have officially released BetterFacebook.net to house my &#34;Better Facebook&#34; greasemonkey script and Firefox add-on. The script has been updated to work with the new Facebook layout, and also now supports Chrome! Check out the site and the script. I hope you find it useful! BetterFacebook.net]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattkruse.com/wp-content/uploads/2010/02/better_facebook_large.gif" target="_blank"><img title="better_facebook_large" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 20px 0px 0px; border-left: 0px; border-bottom: 0px" height="240" alt="better_facebook_large" src="http://mattkruse.com/wp-content/uploads/2010/02/better_facebook_large_thumb.gif" width="187" align="left" border="0" /></a> I have officially released <a title="Better Facebook" href="http://BetterFacebook.net" target="_blank">BetterFacebook.net</a> to house my &quot;Better Facebook&quot; greasemonkey script and Firefox add-on.</p>
<p>The script has been updated to work with the new Facebook layout, and also now supports Chrome!</p>
<p>Check out the site and the script. I hope you find it useful!</p>
<p><a title="Better Faceook" href="http://BetterFacebook.net" target="_blank">BetterFacebook.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/02/10/better-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Facebook Firefox Add-On</title>
		<link>http://mattkruse.com/2010/01/19/better-facebook-firefox-add-on/</link>
		<comments>http://mattkruse.com/2010/01/19/better-facebook-firefox-add-on/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:30:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[browser extensions]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattkruse.com/2010/01/19/better-facebook-firefox-add-on/</guid>
		<description><![CDATA[Today my Better Facebook Firefox Add-On was approved to go public. It took a while (feels like the Apple App Store!) but after a few revisions it was finally put through the process. This is just a re-packaging of my Better Facebook Greasemonkey Script that does the same thing. The functionality includes: Mark your Live [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mattkruse.com/wp-content/uploads/2010/01/better_facebook_large.gif" target="_blank"><img title="better_facebook_large" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 25px 0px 0px; border-right-width: 0px" height="296" alt="better_facebook_large" src="http://mattkruse.com/wp-content/uploads/2010/01/better_facebook_large_thumb.gif" width="222" align="left" border="0" /></a> Today my <a href="https://addons.mozilla.org/en-US/firefox/addon/52369" target="_blank">Better Facebook Firefox Add-On</a> was approved to go public. It took a while (feels like the Apple App Store!) but after a few revisions it was finally put through the process.</p>
<p>This is just a re-packaging of my <a title="Better Facebook Greasemonkey Script" href="http://userscripts.org/scripts/show/61761" target="_blank">Better Facebook Greasemonkey Script</a> that does the same thing.</p>
<p>The functionality includes:</p>
<ul>
<li>Mark your Live Feed as &quot;read&quot; so old posts are hidden by default. Quickly and easily only see new posts </li>
<li>If new comments are found on old posts, they will be shown and highlighted for you </li>
<li>Hide or minimize by story type. For example, stop seeing all notifications about who your friends became friends with! </li>
<li>Pin the notifications panel to the upper right, so it is always easily visible </li>
<li>Track your friends, and if someone unfriends you it will automatically tell you who it was! </li>
</ul>
<p>This script and add-on will continue to improve as I add more features. Enjoy!</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/52369" target="_blank"><strong>Better Facebook Firefox Add-On</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mattkruse.com/2010/01/19/better-facebook-firefox-add-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

