<?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/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>Robbie Coleman &#187; Technology</title>
	<atom:link href="http://robbie.robnrob.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://robbie.robnrob.com</link>
	<description>Geeky yet palatable...</description>
	<lastBuildDate>Sun, 05 May 2013 22:23:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A Standard For Describing An Item&#8217;s Author In RSS</title>
		<link>http://robbie.robnrob.com/2012/05/a-standard-for-describing-an-items-author-in-rss/</link>
		<comments>http://robbie.robnrob.com/2012/05/a-standard-for-describing-an-items-author-in-rss/#comments</comments>
		<pubDate>Fri, 01 Jun 2012 01:45:12 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[RSS]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[content ingestion]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=161</guid>
		<description><![CDATA[The Problem I&#8217;m currently working on a content ingestion system for Gravity&#8216;s personalization and analytics systems. We already have in place a powerful and flexible article extraction library in place that we open sourced as Goose, which does a great job at identifying just the article text and optionally even its primary image. The problem <a href='http://robbie.robnrob.com/2012/05/a-standard-for-describing-an-items-author-in-rss/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<h2>The Problem</h2>
<p>I&#8217;m currently working on a content ingestion system for <a href="http://www.gravity.com/" target="_blank">Gravity</a>&#8216;s <a href="http://www.gravity.com/publishers" target="_blank">personalization and analytics</a> systems. We already have in place a powerful and flexible article extraction library in place that we open sourced as <a href="http://www.gravity.com/labs/goose" target="_blank">Goose</a>, which does a great job at identifying just the article text and optionally even its primary image. The problem is that all of the meta data for an article is not easily extracted from all sites the way we can algorithmically find which text is the article itself and which image is the best candidate to represent the article. Goose provides the mechanism to facilitate such extractions, but it is based on the DOM structure used by each publisher for their posts.</p>
<h2>Enter RSS</h2>
<p>Which brings me (and probably a lot of you) to <a href="http://cyber.law.harvard.edu/rss/rss.html" target="_blank">RSS</a>. Not only does RSS specify an article&#8217;s content, it even specifies a lot of that rich meta data we need. I thought I recalled RSS provided author meta data as well as image meta data, but when I got to work on exploring RSS as either a replacement of or in addition to Goose, I was a little surprised to find this wasn&#8217;t <em>exactly</em> the case. As described in the RSS Advisory Board&#8217;s <a href="http://www.rssboard.org/rss-profile" target="_blank">Best Practices Profile</a>, there is in fact an <a href="http://www.rssboard.org/rss-profile#element-channel-item-author" target="_blank">`author` element</a>, however, it is specifically intended for the email address of the author and nothing else (although you can append a parenthesized name as well), and there isn&#8217;t an `image` element within each item at all.</p>
<h2>RSS Specification version 2.NoMore</h2>
<p>Since RSS has been frozen since March 30, 2009, all extensions to RSS are to be done, as the RSS Advisory Board <a href="http://www.rssboard.org/rss-specification#roadmap" target="_blank">states</a>: &#8220;Subsequent work should happen in modules, using namespaces, and in completely new syndication formats, with new names.&#8221; Well I agree that all basic elements are well defined and therefor no longer require periodic updates, but it is very disappointing to me that after over 2 days of research, I have not found a single work that describes even <em>as much</em> author meta data that <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.author" target="_blank">Atom 1.0 provides</a>.</p>
<h2>What I&#8217;m Looking For</h2>
<p>To be clear, the elements I am looking to be additionally defined for any rss-&gt;channel-&gt;item should be encapsulated within some named author element. Since rss-&gt;channel-&gt;item-&gt;author is already defined, for the purpose of clarity I will use a fictitious XML Namespace (xmlns:profile=&#8221;http://somedomain.tld/rss/2.0/modules/profile&#8221;) for new elements:</p>
<pre>...
&lt;profile:name&gt;Robbie Coleman&lt;/profile:name&gt;
&lt;profile:uri&gt;http://robbie.robnrob.com/author/robbie/&lt;/profile:uri&gt;
&lt;profile:avatar&gt;http://1.gravatar.com/avatar/dc77b368ec1f077dcc4aca3b9c003d2d&lt;/profile:avatar&gt;
...</pre>
<h3>Update (6/1/2012):</h3>
<p>A couple people pointed out (correctly) in the comments that atom&#8217;s author element provides [some of] what I need, but there is no place for an avatar uri within Atom 1.0, so I&#8217;m still short of the full solution.</p>
<p>Another point I would like to better state is that I&#8217;m looking for these additional fields to be present within other sites&#8217; RSS so that I may consume it in a standard way. There are some sites that provide everything I&#8217;m looking for, but each of them have done it in their own way which makes my implementation for consuming it rather janky. <img src='http://robbie.robnrob.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I now leave this up for discussion, which actually began on twitter here:</p>
<blockquote class="twitter-tweet" data-in-reply-to="208269494513184769" width="550"><p>@<a href="https://twitter.com/erraggy">erraggy</a> @<a href="https://twitter.com/photomatt">photomatt</a> -- write a blog post carefully explaining what you're looking for and send a link. 140 chars is ridic.</p>&mdash; Dave Winer ☮ (@davewiner) <a href="https://twitter.com/davewiner/status/208284998879559680" data-datetime="2012-05-31T19:53:08+00:00">May 31, 2012</a></blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2012/05/a-standard-for-describing-an-items-author-in-rss/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Goose Wins 2nd Place in Text Extraction</title>
		<link>http://robbie.robnrob.com/2011/06/goose-wins-2nd-place-in-text-extraction/</link>
		<comments>http://robbie.robnrob.com/2011/06/goose-wins-2nd-place-in-text-extraction/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 18:39:33 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[goose]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[text extraction]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=136</guid>
		<description><![CDATA[In a recent comparison of different text extraction algorithms, Gravity&#8217;s open source project: Goose tied for second place and was even written up over at Read Write Web! I find this very exciting because our project is still quite young and actively in development whereas the algorithms in close standing are mostly well established and <a href='http://robbie.robnrob.com/2011/06/goose-wins-2nd-place-in-text-extraction/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>In a <a href="http://bit.ly/kYne0P">recent comparison</a> of different text extraction algorithms, <a href="http://www.gravity.com/">Gravity&#8217;s</a> open source project: <a href="http://github.com/jiminoc/goose/wiki">Goose</a> tied for second place and was even written up over at <a href="http://rww.to/lPCcYi">Read Write Web</a>! I find this very exciting because our project is still quite young and actively in development whereas the algorithms in close standing are mostly well established and semi-finalized. Another interesting point is that most of the competition was built by teams of researchers, you know&#8230; Doctors in their fields!</p>
<p>The graph below from <a href="http://twitter.com/tomaz">Tomaž Kovačič</a>&#8216;s <a href="http://tomazkovacic.com/blog/122/evaluating-text-extraction-algorithms/trackback/">study</a> shows only a small amount of the data he collected in his analysis. If you are curious of how he compared these algorithms, I highly recommend you head over to his <a href="http://bit.ly/kYne0P">post</a>. He does a great job exposing the details behind his analysis.</p>
<div id="attachment_138" class="wp-caption aligncenter" style="width: 667px"><a href="http://bit.ly/kYne0P" target="_blank"><img class="size-full wp-image-138 " src="http://robbie.robnrob.com/wp-content/uploads/2011/06/google-news-dataset_stat_closeup1.png" alt="graph" width="657" height="285" /></a><p class="wp-caption-text">Goose&#039;s standing among other algorithms tested</p></div>
<h3>So what is <a href="http://github.com/jiminoc/goose/wiki">Goose</a> used for at <a href="http://www.gravity.com/">Gravity</a> and why have we open sourced it?</h3>
<p>Goose&#8217;s <a href="http://github.com/jiminoc/goose/wiki">wiki</a> provides a very detailed explanation about what Goose is and how it works, and also touches on the original need we had at Gravity behind its creation. <a href="http://jimplush.com/">Jim Plush</a> wrote the first version from the ground up on his own and only recently gave me commit access to the repository. By the time I got into the project, it had all the bells and whistles required to compete in the analysis completed by Kovačič. My contributions to Goose have been to extend it to allow for more specific extractions of additional meta data outside of the primary content and have no effect on its standings above.</p>
<p>Such a utility can be applied to a wide variety of web content analysis problems, and I&#8217;m really glad Plush decided to share it with the rest of the open source community. At Gravity, we have been building a lot of exciting (to me at least) technology and most of it is held dearly by us and needs to remain a company secret as they make up a large part of our company&#8217;s overall value. When it comes to analyzing the content out here on the web, Goose can be looked at as our trusty messenger delivering our system plenty of content to analyze without a lot of the noise that comes along with it on the web pages the content is sourced from.</p>
<p>If you are looking to mine some of the golden nuggets of information that is buried under a ton of ads, peripheral links, site menu structures, and other distracting noise, then why not take a look at what Goose has to offer? If you find anything you think Goose may be lacking or have some ideas on anything else that may be improved, let us know on our Github repository: <a href="https://github.com/jiminoc/goose">https://github.com/jiminoc/goose</a></p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/06/goose-wins-2nd-place-in-text-extraction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<media:content url="http://robbie.robnrob.com/wp-content/uploads/2011/06/google-news-dataset_stat_closeup.png" width="657" height="285" medium="image" type="image/png" />	</item>
		<item>
		<title>My Klout drops when I work hard</title>
		<link>http://robbie.robnrob.com/2011/05/my-klout-drops-when-i-work-hard/</link>
		<comments>http://robbie.robnrob.com/2011/05/my-klout-drops-when-i-work-hard/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 05:31:02 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[klout]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=128</guid>
		<description><![CDATA[I tend to focus less on my social networks when I have my head down coding. This time however, its effect on my klout score is pretty dramatic. LOL I guess this is just a consequence of the typical life:work balance, but I wonder how other tech professionals maintain such a high score while also <a href='http://robbie.robnrob.com/2011/05/my-klout-drops-when-i-work-hard/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<div id="attachment_129" class="wp-caption aligncenter" style="width: 663px"><a href="http://klout.com/erraggy"><img class="size-full wp-image-129 " title="Not a good chart..." src="http://robbie.robnrob.com/wp-content/uploads/2011/05/KloutDropsWhenIworkHARD.png" alt="the plight of my klout score" width="653" height="339" /></a><p class="wp-caption-text">the plight of my klout score</p></div>
<p>I tend to focus less on my social networks when I have my head down coding. This time however, its effect on my klout score is pretty dramatic. LOL</p>
<p>I guess this is just a consequence of the typical life:work balance, but I wonder how other tech professionals maintain such a high score while also paving new roads in their field.</p>
<p>A couple of examples of the type of tech peeps I&#8217;m talking about:</p>
<ol>
<li>Jeff Atwood &#8211; 73: <a href="http://klout.com/codinghorror" target="_blank">klout.com/codinghorror</a></li>
<li>Matt Cutts &#8211; 73: <a href="http://klout.com/mattcutts" target="_blank">klout.com/mattcutts</a></li>
</ol>
<p>Anyway, I&#8217;m not complaining here people. I am just confused about how others manage to keep up their tweeting/blogging while &#8220;deep in the cut&#8221; of some tech project.</p>
<p>Do any of you have any tips? Please speak up here and let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/05/my-klout-drops-when-i-work-hard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<media:content url="http://robbie.robnrob.com/wp-content/uploads/2011/05/KloutDropsWhenIworkHARD-150x150.png" width="150" height="150" medium="image" type="image/png" />	</item>
		<item>
		<title>Google Music Beta</title>
		<link>http://robbie.robnrob.com/2011/05/google-music-beta/</link>
		<comments>http://robbie.robnrob.com/2011/05/google-music-beta/#comments</comments>
		<pubDate>Fri, 27 May 2011 08:39:26 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=124</guid>
		<description><![CDATA[I just gained access to Google&#8217;s Music Beta and for the first time, I think my personal music library may be smaller than the amout of cloud storage available for free! It is truly amazing just how far we have come from the the early days of cramming mp3&#8242;s into a JPEG image to store <a href='http://robbie.robnrob.com/2011/05/google-music-beta/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<div id="attachment_125" class="wp-caption alignleft" style="width: 223px"><img class="size-full wp-image-125" title="1,317 of 4,947 songs added..." src="http://robbie.robnrob.com/wp-content/uploads/2011/05/Screen-shot-2011-05-27-at-1.26.22-AM.png" alt="Upload progress showing 1,317 of 4,947 songs added..." width="213" height="339" /><p class="wp-caption-text">1,317 of 4,947 songs added... OH HELL YEAH!</p></div>
<p>I just gained access to Google&#8217;s Music Beta and for the first time, I think my personal music library may be smaller than the amout of cloud storage available for free!</p>
<p>It is truly amazing just how far we have come from the the early days of cramming mp3&#8242;s into a JPEG image to store on a free image hosting site back in the 90&#8242;s. Napster not only broadened what was possible for music online, but also inadvertently set us all back a decade of fighting to truly OWN the music we legally purchase from the big music labels.</p>
<p>Yes, I know there are a lot of you that have second thoughts about giving so much to the Google Collective, and I have no beef with you and your own convictions.</p>
<p>I for one welcome our new online music overlords!</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/05/google-music-beta/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<media:content url="http://robbie.robnrob.com/wp-content/uploads/2011/05/Screen-shot-2011-05-27-at-1.26.22-AM-150x150.png" width="150" height="150" medium="image" type="image/png" />	</item>
		<item>
		<title>Migrating Community Server to WordPress</title>
		<link>http://robbie.robnrob.com/2011/05/migrating-community-server-to-wordpress/</link>
		<comments>http://robbie.robnrob.com/2011/05/migrating-community-server-to-wordpress/#comments</comments>
		<pubDate>Thu, 26 May 2011 07:50:07 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[CommunityServer]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[migrating]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=119</guid>
		<description><![CDATA[This was not an easy task! For one thing, my Community Server (CS) site was not functional, so using RSS / MetaWeblog endpoints were not available options for me. Secondly, I no longer have a Windows development machine. Since CS is built on all Microsoft technologies, I needed to fire up a virtual instance of <a href='http://robbie.robnrob.com/2011/05/migrating-community-server-to-wordpress/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>This was not an easy task! For one thing, my Community Server (CS)  site was not functional, so using RSS / MetaWeblog endpoints were not  available options for me. Secondly, I no longer have a Windows  development machine. Since CS is built on all Microsoft technologies, I  needed to fire up a virtual instance of Windows in order to extract any  of the data. If my previous hosting service was able to keep my database  online for longer than minutes at a time, I could have run things  remotely, but&#8230; not the case.</p>
<p id="simplequery">The actual SQL code for extracting all of my blog posts looks surprisingly simple:</p>
<script src="https://gist.github.com/992639.js"></script><noscript><pre><code class="language-sql sql">SELECT  [Subject], PostDate, FormattedBody, 
          dbo.old_url(PostDate, [Subject]) AS old_url, 
          dbo.make_slug([Subject]) AS slug
FROM  dbo.cs_Posts
WHERE   UserID = 2102 
  AND   SectionID = 4 
  AND   PostLevel = 1 
  AND   IsApproved = 1 
  AND   IsLocked = 0</code></pre></noscript>
<p>But if you look closely at it, you&#8217;ll see that there are to scalar functions in there: &#8216;<a href="https://gist.github.com/992654" target="_blank">dbo.old_url</a>&#8216; &amp; &#8216;<a href="https://gist.github.com/992647" target="_blank">dbo.make_slug</a>&#8216;. I was surprised to <del>find</del> <em>not</em> find any slugs in the CS DB tables. I assume that all of that logic is being handled from the compiled ASP.NET application itself because there was nothing in the tables, stored procedures, or even functions that did anything related to calculating/parsing URL slugs from post titles. To make matters worse, since my site was not in a running state (due to hosting shenanigans), I had basically just my memory along with the 404 logs on the new WordPress site to help me reverse engineer the rules for converting titles to slugs. This is best represented in my &#8216;dbo.make_slug&#8217; snippet below:<br />
<script src="https://gist.github.com/992647.js"></script><noscript><pre><code class="language-sql sql">CREATE FUNCTION [dbo].[make_slug]
(
	@post_title nvarchar(256)
)
RETURNS nvarchar(500)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @slug nvarchar(500)
	DECLARE @clean_title nvarchar(500)
	
	
	SET @clean_title = LOWER(dbo.deDupeSpaces(dbo.removePunctuation(@post_title)))
	SET @slug = REPLACE(@clean_title, ' ', '-')
	
	RETURN @slug

END</code></pre></noscript></p>
<p>And that is used by &#8216;<a href="https://gist.github.com/992654" target="_blank">dbo.old_url</a>&#8216; here:<br />
<script src="https://gist.github.com/992654.js"></script><noscript><pre><code class="language-sql sql">CREATE FUNCTION [dbo].[old_url]
(
	@post_date datetime,
	@post_title nvarchar(256)
)
RETURNS nvarchar(500)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @url nvarchar(500)
	DECLARE @y_m_d nvarchar(10)
	DECLARE @clean_title nvarchar(500)
	
	SET @y_m_d = CONVERT(nvarchar, @post_date, 111)
	SET @url = '/archive/' + @y_m_d + '/' +  + dbo.make_slug(@post_title) + '.aspx'
	
	RETURN @url

END</code></pre></noscript></p>
<p>There are still two more functions remaining (if you have been paying attention) that are used by &#8216;<a href="https://gist.github.com/992647" target="_blank">dbo.make_slug</a>&#8216; and that is where the real fun comes in. First of these is the simpler &#8216;<a href="https://gist.github.com/992677" target="_blank">dbo.deDupeSpaces</a>&#8216; which cuts all repeating space characters down to a single space:<br />
<script src="https://gist.github.com/992677.js"></script><noscript><pre><code class="language-sql sql">CREATE FUNCTION [dbo].[deDupeSpaces] 
(
	@input nvarchar(500)
)
RETURNS nvarchar(500)
AS
BEGIN
    /**
    *  Based on Nigel Rivett's SQL script found: 
    *    http://www.nigelrivett.net/SQLTsql/RemoveNonNumericCharacters.html 
    */
	DECLARE @i int

	set @i = patindex('%[ ][ ]%', @input)
	while @i &gt; 0
	begin
		set @input = replace(@input, '  ', ' ')
		set @i = patindex('%[ ][ ]%', @input)
	end

	RETURN @input

END</code></pre></noscript></p>
<p>And the more impressive and pretty much identical to the script I found originally written by <a href="http://www.nigelrivett.net/SQLTsql/RemoveNonNumericCharacters.html" target="_blank">Nigel Rivett</a>:<br />
<script src="https://gist.github.com/992661.js"></script><noscript><pre><code class="language-sql sql">CREATE FUNCTION [dbo].[removePunctuation] 
(
	@input nvarchar(500)
)
RETURNS nvarchar(500)
AS
BEGIN
	/**
	 *  Based on Nigel Rivett's SQL script found: 
	 *    http://www.nigelrivett.net/SQLTsql/RemoveNonNumericCharacters.html 
	 */
	DECLARE @i int

	set @i = patindex('%[^a-zA-Z0-9 ]%', @input)
	while @i &gt; 0
	begin
		set @input = replace(@input, substring(@input, @i, 1), '')
		set @i = patindex('%[^a-zA-Z0-9 ]%', @input)
	end

	-- Return the result of the function
	RETURN @input

END</code></pre></noscript></p>
<p>So all of this so far is just to get my posts out of the CS DB in a format close enough to what I&#8217;ll need to stuff into my WordPress DB. In order to continue, I just ran the <a href="https://gist.github.com/992639" target="_blank">simple query</a> (<a href="#simplequery">snippet at the top</a>) and exported the results to an XML file. Now I could finally shutdown the virtual instance of Windows 7 that was eating up my MacBook&#8217;s resources and burning my lap from the CPU pegging. <img src='http://robbie.robnrob.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The rest is pretty straight forward. I was unable to find any WordPress Plugins so to assist me in this completely custom hackery, so I thought a brute force insert directly into my WordPress mySQL DB was a great idea. I first imported the XML file into a new table that I called cs_posts. This table&#8217;s structure is identical to the original query used to export it. Once this was done, I built a basic INSERT INTO &#8230;  SELECT query to import these CS posts directly into my WordPress posts table:<br />
<script src="https://gist.github.com/992718.js"></script><noscript><pre><code class="language-sql sql">INSERT INTO wp_xxxxx_posts 
	(post_author, 
	post_date, 
	post_date_gmt, 
	post_content, 
	post_title, 
	post_status, 
	post_name, 
	post_modified, 
	post_modified_gmt, 
	guid) 
SELECT 2 AS post_author, 
	cs_posts.PostDate AS post_date, 
	cs_posts.PostDate AS post_date_gmt, 
	cs_posts.FormattedBody AS post_content, 
	cs_posts.Subject AS post_title, 
	'draft' AS post_status, 
	cs_posts.slug AS post_name, 
	cs_posts.PostDate AS post_modified, 
	cs_posts.PostDate AS post_modified_gmt, 
	cs_posts.old_url AS guid
FROM cs_posts</code></pre></noscript></p>
<p>From this point, all that was required was for me to correct any permalinks that did not match up to the slug I had calculated. But I also wanted to get 301 redirects in place for all incoming requests looking for /archive/YYYY/MM/DD/some-post-title-slug.aspx to find their way to the new URL /YYYY/MM/some-post-title-slug. This was much easier than I anticipated due to the luxury of <a href="http://urbangiraffe.com/">John Godley</a>&#8216;s <a href="http://wordpress.org/extend/plugins/redirection/" target="_blank">Redirection</a> plugin. This gem of a plugin makes my introduction to the WordPress ecosystem a dream come true. In fact, after I set it up on both this site and my root: <a href="http://www.robnrob.com/">robnrob.com</a> site, I was able to populate the redirection item table his plugin uses to skip the need to enter in each post&#8217;s specific redirection. The plugin also has an option for regex-ish pattern matching, but a lot of the permalinks I ended up with on WordPress would not directly transpose from the basic:</p>
<p style="padding-left: 30px;">url pattern: /archive/(d+)/(d+)/(d+)/([a-zA-Z0-9_-]+).aspx<br />
redirect to: http://robbie.robnrob.com/$1/$2/$4</p>
<p>In the end, I lost out on previous comments, categories, and tags, but what I gained was a much more reliable hosting environment and a much more enjoyable platform to hack on. Also, to be honest, I had only a handful of comments anyway. <img src='http://robbie.robnrob.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/05/migrating-community-server-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Most Exciting Email In My Nerd History</title>
		<link>http://robbie.robnrob.com/2011/05/the-most-exciting-email-in-my-nerd-history/</link>
		<comments>http://robbie.robnrob.com/2011/05/the-most-exciting-email-in-my-nerd-history/#comments</comments>
		<pubDate>Thu, 19 May 2011 19:17:56 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Geekdom]]></category>
		<category><![CDATA[Odersky]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/2011/05/the-most-exciting-email-in-my-nerd-history/</guid>
		<description><![CDATA[&#160; This is the first time that the creator of my programming language of choice sends me an email. Scala 2.9 was just released this week and the development team at Gravity are working to migrate our code base onto it. Just after our first attempt to run our unit tests, we hit a bug <a href='http://robbie.robnrob.com/2011/05/the-most-exciting-email-in-my-nerd-history/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<div class="pp_items">
<div class="pp_item"><a href="http://bit.ly/ka9HkF" target="_blank"><img class="aligncenter" title="Email from Martin Odersky" src="http://static.pixelpipe.com/4282cf84-80fc-4fa0-864a-0992e6c42bc4_b.jpg" alt="" width="496" height="213" /></a>&nbsp;</p>
<p style="text-align: left;">This is the first time that the creator of my programming language of choice sends me an email.</p>
<p style="text-align: left;">Scala 2.9 was just released this week and the development team at Gravity are working to migrate our code base onto it. Just after our first attempt to run our unit tests, we hit a bug that we could not code around and hit the <a href="http://bit.ly/kqplp0" target="_blank">forums</a> for answers. I found an already reported <a href="http://bit.ly/mai6r1" target="_blank">bug</a> that matched our case as well and jumped on the ticket to receive updates. Later that day I saw a comment on it from Martin Odersky (the original author of Scala) himself. That was exciting enough for me, but the email&#8230;. WOW.</p>
<p style="text-align: left;">&#8230;okay, I can go back to my day now.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/05/the-most-exciting-email-in-my-nerd-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<br />
<b>Warning</b>:  getimagesize(http://static.pixelpipe.com/4282cf84-80fc-4fa0-864a-0992e6c42bc4_b.jpg) [<a href='function.getimagesize'>function.getimagesize</a>]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
 in <b>/home/erraggy/robbie.robnrob.com/wp-content/plugins/wp-rss-images/wp-rss-images.php</b> on line <b>80</b><br />
<media:content url="http://static.pixelpipe.com/4282cf84-80fc-4fa0-864a-0992e6c42bc4_b.jpg" width="" height="" medium="image" type="application/octet-stream" />	</item>
		<item>
		<title>Top Google Result in One Day!</title>
		<link>http://robbie.robnrob.com/2011/05/top-google-result-in-one-day/</link>
		<comments>http://robbie.robnrob.com/2011/05/top-google-result-in-one-day/#comments</comments>
		<pubDate>Wed, 18 May 2011 08:01:05 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://robbie.robnrob.com/?p=24</guid>
		<description><![CDATA[&#160; &#160; Amazingly, just after one day of me installing/configuring this new WordPress blog, a search on Google for my name: Robbie Coleman returns this site as the very first result!]]></description>
				<content:encoded><![CDATA[<p style="text-align: center">&nbsp;</p>
<p style="text-align: center">&nbsp;</p>
<div id="attachment_26" class="wp-caption aligncenter" style="width: 310px"><a href="http://robbie.robnrob.com/wp-content/uploads/2011/05/Google-Top-Search-Result-for-Robbie-Coleman.png" target="_blank"><img class="size-medium wp-image-26 " src="http://robbie.robnrob.com/wp-content/uploads/2011/05/Google-Top-Search-Result-for-Robbie-Coleman-300x156.png" alt="Google Top Search Result for Robbie Coleman" width="300" height="156" /></a><p class="wp-caption-text">Google Top Search Result for Robbie Coleman</p></div>
<p>Amazingly, just after one day of me installing/configuring this new WordPress blog, a search on Google for my name: <a title="search Google for: Robbie Coleman" href="http://www.google.com/search?q=robbie+coleman" target="_blank">Robbie Coleman</a> returns this site as the very first result!</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2011/05/top-google-result-in-one-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<media:content url="http://robbie.robnrob.com/wp-content/uploads/2011/05/Google-Top-Search-Result-for-Robbie-Coleman-150x150.png" width="150" height="150" medium="image" type="image/png" />	</item>
		<item>
		<title>xPollinate did not do so well…</title>
		<link>http://robbie.robnrob.com/2009/06/xpollinate-did-not-do-so-well/</link>
		<comments>http://robbie.robnrob.com/2009/06/xpollinate-did-not-do-so-well/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 22:18:06 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Add-Ons]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2009/06/09/xpollinate-did-not-do-so-well.aspx</guid>
		<description><![CDATA[In my last post I found that the URL used as my blog’s permalink was posted without the hostname (http://blogs/robbie/archive/2009/06/09/trying-out-wlw-xpollinate.aspx). Hmmm… Well, I never base things on a single attempt, so… here goes my send try.]]></description>
				<content:encoded><![CDATA[<p>In my <a href="http://robnrob.com/blogs/robbie/archive/2009/06/09/trying-out-wlw-xpollinate.aspx" target="_blank">last post</a> I found that the URL used as my blog’s permalink was posted without the hostname (http://blogs/robbie/archive/2009/06/09/trying-out-wlw-xpollinate.aspx). Hmmm… Well, I never base things on a single attempt, so… here goes my send try.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2009/06/xpollinate-did-not-do-so-well/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying out WLW + xPollinate</title>
		<link>http://robbie.robnrob.com/2009/06/trying-out-wlw-xpollinate-2/</link>
		<comments>http://robbie.robnrob.com/2009/06/trying-out-wlw-xpollinate-2/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:57:40 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Add-Ons]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2009/06/09/trying-out-wlw-xpollinate.aspx</guid>
		<description><![CDATA[It’s funny how an Idea I roughly duct taped together about a year ago is now done much better by someone else. Here is my first post to my blog via Windows Live Writer (WLW) and Cross Posted to Ping.fm via xPollinate.]]></description>
				<content:encoded><![CDATA[<p>It’s funny how an Idea I roughly duct taped together about <a href="http://robbie.robnrob.com/archive/2008/08/14/yay-i-got-the-cross-post-to-work.aspx" target="_blank">a year ago</a> is now <a title="xPollinate on Life on Planet Groove" href="http://www.lifeonplanetgroove.com/blog/index.php/projects/xpollinate-windows-live-writer-cross-post-plugin" target="_blank">done much better</a> by <a title="Adam Toth's FB Profile" href="http://www.facebook.com/people/Adam-Toth/561514096" target="_blank">someone else</a>.</p>
<p>Here is my first post to <a href="http://robbie.robnrob.com/" target="_blank">my blog</a> via <a href="http://download.live.com/writer" target="_blank">Windows Live Writer</a> (WLW) and Cross Posted to <a href="http://ping.fm/" target="_blank">Ping.fm</a> via <a href="http://gallery.live.com/LiveItemDetail.aspx?li=c2bf1378-8b18-4a4e-880e-e399c8d7b7b4" target="_blank">xPollinate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2009/06/trying-out-wlw-xpollinate-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ping.fm + twitterfeed = sweet blog love</title>
		<link>http://robbie.robnrob.com/2009/02/pingfm-twitterfeed-sweet-blog-love/</link>
		<comments>http://robbie.robnrob.com/2009/02/pingfm-twitterfeed-sweet-blog-love/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 13:50:39 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Add-Ons]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2009/02/04/pingfm-twitterfeed-sweet-blog-love.aspx</guid>
		<description><![CDATA[I have been trying to find and/or create a solution for automatically posting links to new blog posts I write as well as cross-posting an excerpt to my other blogs that link back to my primary source blog. Meet my two new friends: Ping.fm and twitterfeed. Well, Ping.fm has been a close friend for some <a href='http://robbie.robnrob.com/2009/02/pingfm-twitterfeed-sweet-blog-love/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>I have been trying to find and/or create a solution for automatically posting links to new blog posts I write as well as cross-posting an excerpt to my other blogs that link back to my primary source blog.</p>
<p>Meet my two new friends: <a href="http://ping.fm/" target="_blank">Ping.fm</a> and <a href="http://twitterfeed.com/" target="_blank">twitterfeed</a>. Well, Ping.fm has been a close friend for some time now, but he is quite the social butterfly and tends to find some pretty cool friends of his own. The interface for twitterfeed is a we bit clunky, but it is also <em>exactly</em> what I need. I am not one to complain when interfaces are not polished as my own tend to be more than rough around the edges.</p>
<p>The two most powerful features offered by twitterfeed are its tight integratration with Ping.fm and it’s support for <a href="http://bit.ly/" target="_blank">bit.ly</a> link shortening/tracking. Another nicety is the fact that you can create many feeds (the term used by twitterfeed to describe the linked configuration of an RSS feed to one of their supported endpoints). With all of these combined, I was able to create two feeds that do everything that I wanted for each new post I make to my personal blog here. The first of these pulls new posts detected in the RSS from my FeedBurner feed of this blog, and posts a “status” update to Ping.fm with the text “New Post: “ along with the title of the RSS feed item (blog post title), and a bit.ly shortened link to my post. The second consumes the same new post from the same RSS, and posts a “blog” post to Ping.fm. To do this, I simply repeated what I did for my first one but changed the Ping.fm method from “status” to “blog” and changed what to include from “title only” to “title &amp; description.”</p>
<p>Since my FeedBurner RSS also splices in <a href="http://www.flickr.com/photos/robbiecoleman/" target="_blank">my Flickr photo posts</a> (which happen to mostly be from Ping.fm MMS uploads) they also flow through twitterfeed.</p>
<p>Well… this should be the first actual blog post that goes through twitterfeed in the two ways I just described above.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2009/02/pingfm-twitterfeed-sweet-blog-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posting from Ubuntu + BloGTK 1.1</title>
		<link>http://robbie.robnrob.com/2009/01/posting-from-ubuntu-blogtk-11/</link>
		<comments>http://robbie.robnrob.com/2009/01/posting-from-ubuntu-blogtk-11/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 00:28:08 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Add-Ons]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2009/01/30/posting-from-ubuntu-blogtk-11.aspx</guid>
		<description><![CDATA[Not much to say more than what I&#39;ve already included in the subject. I just wanted to test this out and see if it works with my Community Server 2008 and how it renders. g&#39;night.]]></description>
				<content:encoded><![CDATA[<p>Not much to say more than what I&#39;ve already included in the subject.
</p>
<p>I just wanted to test this out and see if it works with my Community Server 2008 and how it renders.</p>
<p>g&#39;night.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2009/01/posting-from-ubuntu-blogtk-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add Labs to Google Apps email account</title>
		<link>http://robbie.robnrob.com/2009/01/add-labs-to-google-apps-email-account-2/</link>
		<comments>http://robbie.robnrob.com/2009/01/add-labs-to-google-apps-email-account-2/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 06:14:00 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2009/01/14/add-labs-to-google-apps-email-account.aspx</guid>
		<description><![CDATA[I was so excited and thoroughly impressed with the ease and wealth of features that I received when I switched my domain over to Google Apps to serve all of my email. After the initial shock of: &#8220;ZOMFG Look at all the sh*t I get for freakin&#8217; FREE!!!!&#8221; I then noticed that I could not <a href='http://robbie.robnrob.com/2009/01/add-labs-to-google-apps-email-account-2/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<div style="float:right;vertical-align:top;width:36px;"><img style="width:36px;height:54px;" src="http://docs.google.com/a/google.com/File?id=cf3m8qdc_154crmqxrfw_b" alt="" /></div>
<div style="float:left;width:90%;">
<p>I was so excited and thoroughly impressed with the ease and wealth of features that I received when I switched my domain over to <a href="http://www.google.com/apps/intl/en/business/editions.html" target="_blank">Google Apps</a> to serve all of my email.</p>
</div>
<div style="float:left;">
<p>After the initial shock of: &ldquo;ZOMFG Look at all the sh*t I get for freakin&rsquo; FREE!!!!&rdquo; I then noticed that I could not enable that awesome <a href="http://gmailblog.blogspot.com/2008/11/spice-up-your-inbox-with-colors-and.html" target="_blank">Gmail Theme</a> that I came to love oh so much. I also learned that there were no <a href="http://gmailblog.blogspot.com/search/label/labs" target="_blank">Gmail Labs</a> as well. </p>
<p>&nbsp;</p>
<p>Well&hellip; tonight I came across another article from the <a href="http://gmailblog.blogspot.com/" target="_blank">Gmail Blog</a> about a new addition to the wealth of tasty treats the Gmail team has given us in <a href="http://gmailblog.blogspot.com/search/label/labs" target="_blank">Gmail Labs</a>. Interestingly enough, the link to this article came up in my <a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;answer=18219" target="_blank">Gmail Web Clips</a>. Was this an article announcing the release of <a href="http://gmailblog.blogspot.com/search/label/labs" target="_blank">Gmail Labs</a> for <a href="http://www.google.com/apps/intl/en/business/editions.html" target="_blank">Google Apps</a>? No, it was just this one about the new <a href="http://gmailblog.blogspot.com/2009/01/new-in-labs-send-archive.html" target="_blank">Send &amp; Archive button</a>.</p>
<p>So Mr. Smarty Pants&hellip; why the post title about getting Gmail Labs in my more awesomer custom domain Google Apps Gmail interface?? Well&hellip; I&rsquo;m glad <span style="text-decoration:line-through;">you</span> <i>I</i> asked. It is because the author of this specific post gave a link to take you to you <i>normal </i>Gmail account and load the Labs module within Gmail Settings. And this link, looked a wee bit different than how it normally shows up if you were to just click the link to it within the Gmail interface itself. So&hellip; I grabbed the <a href="http://en.wikipedia.org/wiki/Query_string" target="_blank">Query String</a> portion, and added it to my personal domain Google Apps Gmail URL (geez, can that get anymore verbose??). And voil&agrave;, I get the Labs module. And it stuck! After hitting that URL, Labs is always one of the links in my settings! YAY!</p>
<p>So, if you would like this &uuml;ber k3wL feature in your own Google Apps Gmail interface, just take this Query String:&nbsp;&nbsp; </p>
<pre>?ui=2&amp;fs=1&amp;view=pu&amp;st=labs</pre>
<p>&nbsp;</p>
<p>And append it to your personal Google Apps Gmail URL which looks like this:</p>
<pre>http://mail.google.com/a/{YOUR-DOMAIN}/</pre>
<p>&nbsp;</p>
<p>&hellip;where you would of course replace the &ldquo;{YOUR-DOMAIN}&rdquo; with&hellip; oh&hellip; I don&rsquo;t know&hellip; your domain maybe&hellip;? <img src='http://robbie.robnrob.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So the full magic URL would look like this (using my robnrob.com domain as an example):</p>
<pre>http://mail.google.com/a/robnrob.com/?ui=2&amp;fs=1&amp;view=pu&amp;st=labs</pre>
<p>&nbsp;</p>
<p>Give it a try and let me know if it worked or not for you as well!</p>
<p><span style="font-size:small;"><span style="color:#ff0000;"><b>UPDATE:</b></span></span><br />Thanks to a recent comment from Duane below, it appears that you also need something enabled by *you* in your Google App settings. Here is the link that Duane posted in his comment: <a target="_blank" href="http://www.beatnic.co.uk/2008/12/09/to-do-switch-on-labs-features-in-google-apps/">http://www.beatnic.co.uk/2008/12/09/to-do-switch-on-labs-features-in-google-apps/</a></p>
<p>The meat of this post is towards the bottom that states:</p>
<blockquote><p>The good news is that you can activate these &ldquo;hidden&rdquo; features in<br />
Google Apps if you know where to look. As it&rsquo;s not in the most<br />
intuitive place, I thought I&rsquo;d explain where to find it.</p>
<p>First go to manage your <b>Manage this domain</b>, select <b>Domain Settings</b>, then scroll down the <b>General</b> tab to the section called <b>New Services and Features</b></p>
<p>Here you have two checkbox options for:</p>
<ol>
<li>Turn on new features (like group chat or colored labels)</li>
<li>Turn on new features in this domain when they are launched to<br />
Google consumers (before Google supports them for organizations using<br />
Google Apps)</li>
</ol>
<p>Switching these on should enable Labs in your apps settings.</p>
</blockquote>
<p>Thank you <a target="_blank" href="http://www.beatnic.co.uk/">Nic Price</a>! And thank you Duane for pointing this out here!</p>
<p>&nbsp;</p>
<p><span style="color:#ff0000;"><span style="font-size:small;"><b>UPDATE #2:</b></span></span></p>
<p><a target="_blank" href="http://richmercer.com/">Rich Mercer</a> also pointed out to me that if you have upgraded to the <a target="_blank" href="http://googleads.g.doubleclick.net/pagead/iclk?sa=l&amp;ai=BBHNzl1h3SYbRK6WaqQOD1rApqsCDgQHy5pGyC8CNtwHg1AMQARgBIOnV8QMoAjgAUPTKoekCYMmm0YbIo5AZoAHQwbX7A7IBEnJvYmJpZS5yb2Jucm9iLmNvbboBCjIwMHgyMDBfYXPIAQHaAVdodHRwOi8vcm9iYmllLnJvYm5yb2IuY29tL2FyY2hpdmUvMjAwOS8wMS8xNC9hZGQtbGFicy10by1nb29nbGUtYXBwcy1lbWFpbC1hY2NvdW50LmFzcHioAwHIAwfoAzXoA4oD9QMAAAAEmAQA&amp;num=1&amp;ggladgrp=11139553081889650911&amp;gglcreat=3308862749385908438&amp;adurl=http://www.google.com/apps/intl/en/business/details.html%23utm_campaign=en&amp;utm_source=en-ha-na-us-ct&amp;utm_medium=ha&amp;client=ca-pub-0194749904778965&amp;nm=5">Premier edition of Google Apps</a>, then you have an additional option relevant to Labs:</p>
<p style="padding-left:30px;">If you go to the Service Settings-&gt;Email page from the domain dashboard and there&#39;s a checkbox to &quot;Enable Gmail Labs for my users&quot;</p>
<p>So&#8230; it looks like we (<a target="_blank" href="http://www.beatnic.co.uk/">Nic</a>, <a target="_blank" href="http://richmercer.com/">Rich</a> and <a href="http://robbie.robnrob.com/">I</a>) have covered all the issues that have so far been mentioned in the comments below. If you are still not able to enable Labs in your own Google Apps domain, please comment the details here, and we&#39;ll figure it out. Thanks again to Duane Haas for leaving a link in <a target="_self">his comment</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2009/01/add-labs-to-google-apps-email-account-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<media:content url="http://docs.google.com/a/google.com/File?id=cf3m8qdc_154crmqxrfw_b" width="" height="" medium="image" type="application/octet-stream" />	</item>
		<item>
		<title>Trying out the Flock Blog Editor</title>
		<link>http://robbie.robnrob.com/2008/12/trying-out-the-flock-blog-editor-2/</link>
		<comments>http://robbie.robnrob.com/2008/12/trying-out-the-flock-blog-editor-2/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 02:28:04 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Applications]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2008/12/02/trying-out-the-flock-blog-editor.aspx</guid>
		<description><![CDATA[Not sure if I would use Flock to post blogs, but since my primary blog is supported, might as well try it out. Blogged with the Flock Browser Tags: flock]]></description>
				<content:encoded><![CDATA[<p>Not sure if I would use Flock to post blogs, but since my primary blog is supported, might as well try it out.</p>
<div class="flockcredit" style="text-align:right;color:#CCC;font-size:x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color:#999;font-weight:bold;" target="_new" title="Flock Browser">Flock Browser</a></div>
<p style="font-size:10px;text-align:right;">Tags: <a href="http://technorati.com/tag/flock" rel="tag">flock</a></p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2008/12/trying-out-the-flock-blog-editor-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m Finalizing the WLW Cross-Post Plugin</title>
		<link>http://robbie.robnrob.com/2008/08/im-finalizing-the-wlw-crosspost-plugin/</link>
		<comments>http://robbie.robnrob.com/2008/08/im-finalizing-the-wlw-crosspost-plugin/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 18:15:39 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Cross-Post]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2008/08/17/im-finalizing-the-wlw-crosspost-plugin.aspx</guid>
		<description><![CDATA[Sorry for the noise, but in order for me to truly test the latest modifications that I have made to this plugin, I need to use it. And when I use it, it broadcasts to just about everything I&#39;ve got, so&#8230; sorry. &#160; Gee&#8230; after my last post, I sure do sound like an annoying <a href='http://robbie.robnrob.com/2008/08/im-finalizing-the-wlw-crosspost-plugin/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Sorry for the noise, but in order for me to truly test the latest modifications that I have made to this plugin, I need to use it. And when I use it, it broadcasts to just about everything I&#39;ve got, so&#8230; sorry.</p>
<p>&nbsp;</p>
<p>Gee&#8230; after my <a href="http://robbie.robnrob.com/archive/2008/08/17/bebo-just-spammed-my-gmail-contacts.aspx" target="_blank">last post</a>, I sure do sound like an annoying (micro)blogger today.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2008/08/im-finalizing-the-wlw-crosspost-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WLW Cross-Post with Ping.fm posts &#8211; Details</title>
		<link>http://robbie.robnrob.com/2008/08/wlw-crosspost-with-pingfm-posts-details/</link>
		<comments>http://robbie.robnrob.com/2008/08/wlw-crosspost-with-pingfm-posts-details/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 17:52:28 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Cross-Post]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2008/08/14/wlw-crosspost-with-pingfm-posts-details.aspx</guid>
		<description><![CDATA[This is a follow-up post that I had promised regarding these two previous posts: Trying out Cross-Post for WLW YAY! I got the Cross-Post to work &#160; So&#8230; first and foremost, I only extended an existing WLW plugin developed by Daniel Cazzulino called Cross-Post (CodePlex source here). I found his implementation very easy to follow <a href='http://robbie.robnrob.com/2008/08/wlw-crosspost-with-pingfm-posts-details/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>This is a follow-up post that I had promised regarding these two previous posts:</p>
<ul>
<li><a href="http://robbie.robnrob.com/archive/2008/08/14/trying-out-cross-post-for-wlw.aspx" target="_blank">Trying out Cross-Post for WLW</a></li>
<li><a href="http://robbie.robnrob.com/archive/2008/08/14/yay-i-got-the-cross-post-to-work.aspx" target="_blank">YAY! I got the Cross-Post to work</a></li>
</ul>
<p>&nbsp;</p>
<p>So&#8230; first and foremost, I only extended an existing WLW plugin developed by <a title="kzu weblog - eXtensible Mind Lounge." href="http://clariusconsulting.net/blogs" target="_blank">Daniel Cazzulino</a> called <a title="How to cross post entries across blogs from Windows Live Writer" href="http://www.clariusconsulting.net/blogs/kzu/archive/2007/08/24/HowtocrosspostentriesacrossblogsfromWindowsLiveWriter.aspx" target="_blank">Cross-Post</a> (<a title="Complete original source code for kzu&#39;s Cross-Post plugin" href="http://www.codeplex.com/clarius/Release/ProjectReleases.aspx?ReleaseId=6626" target="_blank">CodePlex source here</a>). I found his implementation very easy to follow and well suited to boot-strap my idea for posting to <a title="let me know if you need a beta code" href="http://ping.fm/" target="_blank">Ping.fm</a>&#39;s <a title="Ping.fm&#39;s REST API Documentation" href="http://groups.google.com/group/pingfm-developers/web/api-documentation" target="_blank">REST API</a>. I also used (but modified to my liking) the C# Wrapper Class written by Adam Duffy (a developer at ping.fm) located <a title="Ping.fm Developers - Code Libraries" href="http://groups.google.com/group/pingfm-developers/web/code-libraries" target="_blank">here</a>.</p>
<p>Now for the details of each component (Cross-Post plugin &amp; Ping.fm API)&#8230;</p>
<h4><strong>Cross-Post plugin</strong></h4>
<p>The Cross-Post plugin was designed to take a just published blog post in <a href="http://writer.live.com/" target="_blank">Windows Live Writer</a> (WLW), and then post it (optionally summarized) to all the other weblogs configured in WLW. For a full and complete description, please check the author&#39;s blog post that describes it:<br /><a title="How to cross post entries across blogs from Windows Live Writer" href="http://www.clariusconsulting.net/blogs/kzu/archive/2007/08/24/HowtocrosspostentriesacrossblogsfromWindowsLiveWriter.aspx" target="_blank">How to cross post entries across blogs from Windows Live Writer</a></p>
<p>&nbsp;</p>
<h4><strong>Ping.fm REST API</strong></h4>
<p>Ping.fm did a wonderful job keeping their REST API clean and simple. If you are not familiar with their site or service, they describe themselves in the following way.</p>
<blockquote><p><em>&quot;Ping.fm is a simple service that makes updating your social networks a snap.&quot;</em></p>
</blockquote>
<p>They allow you to post to 22 <font size="1">(at the time of this post)</font> different social/bloglike sites <font size="1">(listed here in no particular order): twitter, jaiku, facebook, myspace, bebo, tumblr, pownce, friends, message, mashable, brightkite, xanga, plurk, plaxo pulse, identi.ca, friendfeed, blogger, hi5, kwippy, wordpress, livejournal</font></p>
<p>As far as their REST API, it is well documented <a href="http://groups.google.com/group/pingfm-developers/web/api-documentation" target="_blank">here</a>. The two methods my implementation uses are:</p>
<ol>
<li>user.validate: Validates the given user’s application key. This is how authentication/authorization works on their calls. The combination of the developer&#39;s <a title="If you have a Ping.fm account, this will show you all (if any) your API keys" href="http://ping.fm/developers/" target="_blank">API Key</a> and the user&#39;s <a title="If you have a Ping.fm account, this will display your specific key" href="http://ping.fm/key" target="_blank">Application Key</a>. I call this method when a user enters their key into the plugin&#39;s Option Dialog within WLW.</li>
<li>user.post: Posts a message to the user’s Ping.fm services. This allows 3 basic methods, blog, microblog, and status. I make two of these calls for the cross-post.</li>
<ol>
<li>The first as a blog post with title intact yet the body is optionally summarized with the link back to the source post. This uses that optional &quot;title&quot; parameter of the &quot;user.post&quot; method.</li>
<li>The second is a microblog post that states:<br /> &quot;New Blog &#8211; &quot; [title]:[permalink]<br />The best part about this is that Ping.fm automatically shortens all links greater than 20 characters long.</li>
</ol>
</ol>
<p>&nbsp;</p>
<h4><strong>So what does it look like when it posts&#8230;?</strong></h4>
<p>Well&#8230; this post that I am writing now and you must be reading sometime later was posted using WLW and this Cross-Post plug-in. So it got posted as a full blog post here, and a summarized (200 characters) to the following blogs:</p>
<ul>
<li><a href="http://robbiecoleman.tumblr.com/" target="_blank" rel="me">robbiecoleman.tumblr.com</a></li>
<li><a href="http://blog.myspace.com/robbiecoleman" target="_blank" rel="me">blog.myspace.com/robbiecoleman</a></li>
</ul>
<p>It was also posted as a announcement link on the following Micro-Blogs of mine:</p>
<ul>
<li><a href="http://twitter.com/erraggy" target="_blank" rel="me">twitter.com/erraggy</a></li>
<li><a title="http://brightkite.com/people/erraggy" href="http://brightkite.com/people/erraggy" target="_blank" rel="me">brightkite.com/people/erraggy</a></li>
<li><a title="http://www.new.facebook.com/profile.php?id=720917076" href="http://www.new.facebook.com/profile.php?id=720917076" target="_blank" rel="me">www.new.facebook.com/profile.php?id=720917076</a></li>
<li><a title="http://friendfeed.com/erraggy" href="http://friendfeed.com/erraggy" target="_blank" rel="me">friendfeed.com/erraggy</a></li>
<li><a title="http://my.mashable.com/robbiecoleman" href="http://my.mashable.com/robbiecoleman" target="_blank" rel="me">my.mashable.com/robbiecoleman</a></li>
<li><a title="http://pulse.plaxo.com/pulse/profile/show/60130410539" href="http://pulse.plaxo.com/pulse/profile/show/60130410539" target="_blank" rel="me">pulse.plaxo.com/pulse/profile/show/60130410539</a></li>
<li><a title="http://www.plurk.com/user/erraggy" href="http://www.plurk.com/user/erraggy" target="_blank" rel="me">www.plurk.com/user/erraggy</a></li>
<li><a title="http://pownce.com/erraggy/" href="http://pownce.com/erraggy/" target="_blank" rel="me">pownce.com/erraggy/</a></li>
</ul>
<p>&nbsp;</p>
<p>Now all I need to do is complete me testing and fine tuning, then I can submit it first to Ping.fm for approval (that will allow for users other than me to use my API Key to post). Once that is done I can submit the plugin to the <a href="http://gallery.live.com/default.aspx?pl=8" target="_blank">WLW Gallery</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2008/08/wlw-crosspost-with-pingfm-posts-details/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YAY! I got the Cross-Post to work</title>
		<link>http://robbie.robnrob.com/2008/08/yay-i-got-the-crosspost-to-work/</link>
		<comments>http://robbie.robnrob.com/2008/08/yay-i-got-the-crosspost-to-work/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 02:01:00 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Cross-Post]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2008/08/14/yay-i-got-the-crosspost-to-work.aspx</guid>
		<description><![CDATA[I know that I promised to explain how I got this to work, but it is now too late, but I will get them details out later today at a normal hour. For now, you can see the results by hitting up where this will cross-post to: robbiecoleman.tumblr.com blog.myspace.com/robbiecoleman robbiecoleman.spaces.live.com/ twitter.com/erraggy and a bunch of <a href='http://robbie.robnrob.com/2008/08/yay-i-got-the-crosspost-to-work/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>I know that I promised to explain how I got this to work, but it is now too late, but I will get them details out later today at a normal hour.</p>
<p>For now, you can see the results by hitting up where this will cross-post to:</p>
<ul>
<li><a href="http://robbiecoleman.tumblr.com/" target="_blank">robbiecoleman.tumblr.com</a></li>
<li><a href="http://blog.myspace.com/robbiecoleman" target="_blank">blog.myspace.com/robbiecoleman</a></li>
<li><a href="http://robbiecoleman.spaces.live.com/" target="_blank">robbiecoleman.spaces.live.com/</a></li>
<li><a href="http://twitter.com/erraggy" target="_blank">twitter.com/erraggy</a></li>
<li>and a bunch of them: <a href="http://friendfeed.com/erraggy" target="_blank">friendfeed.com/erraggy</a></li>
</ul>
<p>now&#8230; off to sleep.</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2008/08/yay-i-got-the-crosspost-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trying out Cross-Post for WLW</title>
		<link>http://robbie.robnrob.com/2008/08/trying-out-crosspost-for-wlw/</link>
		<comments>http://robbie.robnrob.com/2008/08/trying-out-crosspost-for-wlw/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 01:47:35 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Cross-Post]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2008/08/14/trying-out-crosspost-for-wlw.aspx</guid>
		<description><![CDATA[I have no idea if this will blow-up or not, but it is getting late and I don&#39;t have time for Unit Tests, so&#8230; This blog post was composed in Windows Live Writer and posted directly to my blog on robbie.robnrob.com, but it is also summarized and cross posted to Live Spaces with a link <a href='http://robbie.robnrob.com/2008/08/trying-out-crosspost-for-wlw/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>I have no idea if this will blow-up or not, but it is getting late and I don&#39;t have time for Unit Tests, so&#8230;</p>
<p>This blog post was composed in Windows Live Writer and posted directly to my blog on robbie.robnrob.com, but it is also summarized and cross posted to Live Spaces with a link back to the source post, and if that ain&#39;t enough&#8230; I added two posts to Ping.fm:</p>
<ol>
<li>The first as a Ping.fm Blog post with title intact yet summarized with the link back to the source post.
<li>The second is a Micro-Blog post that states &quot;New Blog Post &#8211; &quot; [title]:[permalink]</li>
</ol>
<p>If this works on the first try, I will follow-up with how the hell the magic is done, but until then, here goes nuthin!</p>
<p>*crosses fingers*</p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2008/08/trying-out-crosspost-for-wlw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Voo2do Tray Update</title>
		<link>http://robbie.robnrob.com/2005/12/voo2do-tray-update/</link>
		<comments>http://robbie.robnrob.com/2005/12/voo2do-tray-update/#comments</comments>
		<pubDate>Tue, 20 Dec 2005 08:57:00 +0000</pubDate>
		<dc:creator>Robbie Coleman</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://robnrob.com/blogs/robbie/archive/2005/12/20/voo2do-tray-update.aspx</guid>
		<description><![CDATA[UPDATE: This is no longer here&#8230; sorry. I have updated the Voo2do Tray application to fix two features that I inadvertantly broke: Default Proxy Server settings should again be loaded automatically from your IE settings The Logon button is now again the default button for the logon form, so by pressing the &#8216;Enter&#8217; key, you <a href='http://robbie.robnrob.com/2005/12/voo2do-tray-update/' class='excerpt-more'>[...]</a>]]></description>
				<content:encoded><![CDATA[<h1>UPDATE: This is no longer here&#8230;</h1>
<p>sorry.</p>
<p><span style="font-family: Verdana;">I have updated the <span style="border-bottom-style: groove;">Voo2do Tray application</span> to fix two features that I inadvertantly broke:<br />
</span></p>
<ol>
<li><span style="font-family: Verdana;">Default Proxy Server settings should again be loaded automatically from your IE settings</span></li>
<li><span style="font-family: Verdana;">The Logon button is now <em>again</em> the default button for the logon form, so by pressing the &#8216;Enter&#8217; key, you activate it.</span></li>
</ol>
<p><span style="font-family: Verdana;">Special thanks to Frisley Velasquez for his comment about the Proxy Server issue.</span><br />
<span style="font-family: Verdana;"><br />
You <em>again</em> can download the <em>updated</em> application (<a href="http://msdn.microsoft.com/netframework/downloads/updates/default.aspx" target="_blank">.NET Framework 2.0</a> required) or the source (Visual Studio 2005 solution).</span></p>
<p>&nbsp;</p>
<p><del><strong>UPDATE: </strong>Please use the following thread for the latest updates and instructions.</del></p>
]]></content:encoded>
			<wfw:commentRss>http://robbie.robnrob.com/2005/12/voo2do-tray-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
