<?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>PatCavit.com &#187; xbox</title>
	<atom:link href="http://patcavit.com/category/xbox/feed/" rel="self" type="application/rss+xml" />
	<link>http://patcavit.com</link>
	<description>I &#60;3 Programming</description>
	<lastBuildDate>Fri, 02 Jul 2010 19:19:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Xbox Friends server component updated</title>
		<link>http://patcavit.com/2008/10/24/xbox-friends-server-component-updated/</link>
		<comments>http://patcavit.com/2008/10/24/xbox-friends-server-component-updated/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 17:45:03 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[Tivac.com Projects]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=209</guid>
		<description><![CDATA[I did an in-place upgrade of the server component for the Xbox Friends Gadget that should make counts of online users more accurate. I meant to do this in 1.3 and just forgot about it. Phantom friends have been driving me crazy lately, so hopefully this quiets that down. Seems to be working well so [...]]]></description>
			<content:encoded><![CDATA[<p>I did an in-place upgrade of the server component for the Xbox Friends Gadget that should make counts of online users more accurate. I meant to do this in 1.3 and just forgot about it. Phantom friends have been driving me crazy lately, so hopefully this quiets that down. Seems to be working well so far.</p>
<p>You don&#8217;t need to download a new version of the gadget to get this update, it will just start getting more accurate.</p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/10/24/xbox-friends-server-component-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xbox Live Friends 1.3</title>
		<link>http://patcavit.com/2008/08/06/xbox-live-friends-13/</link>
		<comments>http://patcavit.com/2008/08/06/xbox-live-friends-13/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:45:35 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=198</guid>
		<description><![CDATA[In a fit of inspiration I&#8217;ve updated the xbox live friends gadget with offline friends and hopefully taken care of the phantom friend problem in a more thorough way. Also went ahead and added a refresh button because two minutes is apparently too much time for some people to wait. Pictures! You know what time [...]]]></description>
			<content:encoded><![CDATA[<p>In a fit of inspiration I&#8217;ve updated the xbox live friends gadget with offline friends and hopefully taken care of the phantom friend problem in a more thorough way. Also went ahead and added a refresh button because two minutes is apparently too much time for some people to wait.</p>
<p>Pictures!</p>
<p><a href="http://patcavit.com/wp-content/uploads/2008/08/offline-users.png"><img class="alignnone size-thumbnail wp-image-199" title="Offline Users" src="http://patcavit.com/wp-content/uploads/2008/08/offline-users-150x150.png" alt="" width="150" height="150" /></a> <a href="http://patcavit.com/wp-content/uploads/2008/08/offline-users-config.png"><img class="alignnone size-thumbnail wp-image-200" title="Offline Users Config" src="http://patcavit.com/wp-content/uploads/2008/08/offline-users-config-150x150.png" alt="" width="150" height="150" /></a></p>
<p><strong>You know what time it is!</strong></p>
<p><a href="http://patcavit.com/dev/gadgets/Xbox Live Friends.gadget"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 50px; border-left: 0px; border-bottom: 0px" src="http://patcavit.com/wp-content/uploads/2008/04/download-it.png" border="0" alt="Download the gadget" width="256" height="256" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/08/06/xbox-live-friends-13/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Quick Vista Gadget Development Note</title>
		<link>http://patcavit.com/2008/08/05/quick-vista-gadget-development-note/</link>
		<comments>http://patcavit.com/2008/08/05/quick-vista-gadget-development-note/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 05:13:10 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=194</guid>
		<description><![CDATA[This is more of a reminder for me than anything else, but since I kept searching for this tonight with little luck maybe somebody else will get some use out of it. When developing a Vista gadget it can be realy useful to set up a gadget folder somewhere other than &#8220;%userprofile%\appdata\local\microsoft\windows sidebar\gadgets&#8221;. Unfortunately to [...]]]></description>
			<content:encoded><![CDATA[<p>This is more of a reminder for me than anything else, but since I kept searching for this tonight with little luck maybe somebody else will get some use out of it.</p>
<p>When developing a Vista gadget it can be realy useful to set up a gadget folder somewhere other than &#8220;%userprofile%\appdata\local\microsoft\windows sidebar\gadgets&#8221;. Unfortunately to have the sidebar notice it you&#8217;ll need to symlink it. That&#8217;s a pretty easy process, and note that just making a shortcut to the folder <strong>WON&#8217;T WORK</strong>.</p>
<ol>
<li>Open an explorer window to %userprofile%\appdata\local\microsoft\windows sidebar\gadgets</li>
<li>Open a cmd prompt with elevated privileges (start, &#8220;cmd&#8221;, shift right-click, run as admin)</li>
<li>cd in cmd to %userprofile%\appdata\local\microsoft\windows sidebar\gadgets</li>
<li>
<pre>mklink /D "Gadget Name.gadget" "c:\path\to\development gadget"</pre>
</li>
</ol>
<p>That&#8217;ll set up a symlink so you can edit your gadget wherever you want and still have Vista add it to the gadget browser. Handy for those of us that like having all our programming projects in one spot.</p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/08/05/quick-vista-gadget-development-note/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xbox Live Friends Sidebar Gadget 1.2</title>
		<link>http://patcavit.com/2008/06/20/xbox-live-friends-sidebar-gadget-12/</link>
		<comments>http://patcavit.com/2008/06/20/xbox-live-friends-sidebar-gadget-12/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 01:42:19 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=191</guid>
		<description><![CDATA[I&#8217;ve had this sitting on my hard drive for quite some time. I think there was something else I wanted to do with it, but I&#8217;m not really sure.  It&#8217;s been running pretty well for me for months though, so I think it&#8217;s about time I released it! Version 1.2 has a bunch of small [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had this sitting on my hard drive for quite some time. I think there was something else I wanted to do with it, but I&#8217;m not really sure.  It&#8217;s been running pretty well for me for months though, so I think it&#8217;s about time I released it!</p>
<p>Version 1.2 has a bunch of small fixes in it and some cleaned up graphics. There&#8217;s some issues with the API I&#8217;m hitting causing ghost friends to show up, not much I can do about that. I&#8217;m also noticing some weirdness with the scroll bar in the config panel. It&#8217;s not worth fixing right now.</p>
<p><strong>You know what time it is!</strong></p>
<p><a href="http://patcavit.com/dev/gadgets/Xbox Live Friends.gadget"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 50px; border-left: 0px; border-bottom: 0px" src="http://patcavit.com/wp-content/uploads/2008/04/download-it.png" border="0" alt="Download the gadget" width="256" height="256" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/06/20/xbox-live-friends-sidebar-gadget-12/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Xbox Live Friends Sidebar Gadget 1.1</title>
		<link>http://patcavit.com/2008/04/19/xbox-live-friends-sidebar-gadget-11/</link>
		<comments>http://patcavit.com/2008/04/19/xbox-live-friends-sidebar-gadget-11/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 00:11:22 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=189</guid>
		<description><![CDATA[I said I was working on it this morning, and I wasn&#8217;t even lying!  I&#8217;ve just updated the Xbox Live Friends Gadget to version 1.1 which brings with it almost everything I promised in the previous post! New Stuff! I&#8217;ve created an actual landing page for the gadget, http://patcavit.com/xbox-live-gadget/. There&#8217;s also a page helping people [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://patcavit.com/dev/gadgets/Xbox Live Friends.gadget"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 50px; border-left: 0px; border-bottom: 0px" src="http://patcavit.com/wp-content/uploads/2008/04/download-it.png" border="0" alt="Download the gadget" width="256" height="256" /></a></p>
<p>I said I was working on it this morning, and I wasn&#8217;t even lying!  I&#8217;ve just updated the Xbox Live Friends Gadget to version 1.1 which brings with it almost everything I promised in the <a href="http://patcavit.com/2008/04/19/closing-in-on-xbox-gadget-11/">previous post</a>!</p>
<h3>New Stuff!</h3>
<p>I&#8217;ve created an actual landing page for the gadget, <a title="http://patcavit.com/xbox-live-gadget/" href="http://patcavit.com/xbox-live-gadget/">http://patcavit.com/xbox-live-gadget/</a>. There&#8217;s also a page helping people copy gadgets from their old install to a new one, <a title="http://patcavit.com/xbox-live-gadget/how-to-update/" href="http://patcavit.com/xbox-live-gadget/how-to-update/">http://patcavit.com/xbox-live-gadget/how-to-update/</a>. Both of these pages need a lot of work but it&#8217;s a start. Had to learn a lot of wordpress knowledge I had long forgotten to be able to do that stuff!</p>
<p>So here&#8217;s what did end up making the cut for 1.1</p>
<ul>
<li>The backend web service caches results now, makes updating faster (but the data is no less fresh!)</li>
<li>Expanding in height was retarded, the guidelines were correct. To solve the problem of more than 5 online contacts without expanding there’s now pagination!</li>
<li>Undocked state exists now, might even be marginally useful.</li>
<li>Flyout has a link to open up xbox.com to send user a message over XBL</li>
<li>Error Handling for bad data from the WS</li>
<li>New background images, no longer quite so boring!</li>
<li>List updates are animated with a subtle fade effect. Probably needs more tweaking, but I think it makes a big difference.</li>
<li>Checks to make sure you have the latest version of the gadget and will nag you if not</li>
<li>(Online) Instructions for updating the gadget to save you from having to retype your friends list</li>
<li>(Online) Actual web page for the gadget to provide some useful info</li>
</ul>
<p>Unfortunately showing offline contacts didn&#8217;t make it. That task is quite a bit bigger than I originally though, but may still be coming down the pipe in a future update. There&#8217;s already a list of things I&#8217;m going to be working on next, so here&#8217;s a peek</p>
<ul>
<li>Show total count of online friends somewhere</li>
<li>Flyout wonkiness</li>
<li>Make flyout more useful (it&#8217;s getting there slowly!)</li>
<li>List update fades interfere with the hover effect. This will be amusing to fix, I just know it.</li>
</ul>
<p>So there&#8217;s still plenty for me to do and that was just after having one other person look at this. I&#8217;d love to get some feedback so I could keep working on this. After really getting into it I&#8217;m having a blast working with gadgets.</p>
<p>And now, <strong>pictures</strong>!</p>
<div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:1bf9e9b0-ab09-4378-a48b-d374f0fbf405" class="wlWriterSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a title="Upgrade notification" rel="thumbnail" href="http://patcavit.com/wp-content/uploads/2008/04/upgrade-available-8x6.png"><img src="http://patcavit.com/wp-content/uploads/2008/04/upgrade-available.png" border="0" alt="" /></a></div>
<div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:bab44337-d0f3-4612-889b-39f9f2cbb8da" class="wlWriterSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a title="Basic error handling" rel="thumbnail" href="http://patcavit.com/wp-content/uploads/2008/04/ws-error-8x6.png"><img src="http://patcavit.com/wp-content/uploads/2008/04/ws-error.png" border="0" alt="" /></a></div>
<div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:32f75cf1-1037-456c-8fcb-3944057d625e" class="wlWriterSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a title="Send a message via flyout" rel="thumbnail" href="http://patcavit.com/wp-content/uploads/2008/04/new-flyout-8x6.png"><img src="http://patcavit.com/wp-content/uploads/2008/04/new-flyout.png" border="0" alt="" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/04/19/xbox-live-friends-sidebar-gadget-11/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Closing in on Xbox Gadget 1.1</title>
		<link>http://patcavit.com/2008/04/19/closing-in-on-xbox-gadget-11/</link>
		<comments>http://patcavit.com/2008/04/19/closing-in-on-xbox-gadget-11/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 10:44:02 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/2008/04/19/closing-in-on-xbox-gadget-11/</guid>
		<description><![CDATA[I&#8217;ve been working on this off and on ever since releasing 1.0, I definitely feel like this is deserving of a whole tenth of a full version bump.&#160; Quick list of things that have changed so far off the top of my head. The backend web service caches results now, makes updating faster (but the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on this off and on ever since releasing 1.0, I definitely feel like this is deserving of a whole tenth of a full version bump.&nbsp; Quick list of things that have changed so far off the top of my head.</p>
<ol>
<li>The backend web service caches results now, makes updating faster (but the data is no less fresh!)</li>
<li>Expanding in height was retarded, the guidelines were correct. To solve the problem of more than 5 online contacts without expanding there&#8217;s now pagination!</li>
<li>Undocked state exists now, might even be marginally useful.</li>
<li>Flyout has a link to open up xbox.com to send user a message over XBL</li>
<li>Error Handling for bad data from the WS</li>
<li>New background images, no longer quite so boring!</li>
<li>List updates are animated with a subtle fade effect. Probably needs more tweaking, but I think it makes a big difference.</li>
</ol>
<p>There&#8217;s still a few things left I want to do before making 1.1 official like update nagging and possibly adding a toggle to the settings page to show all your contacts and just filter it so that the only ones are a different color and show up first. Not sure about that one yet, but it&#8217;s a possibility.</p>
<p>Look, it&#8217;s a SCREENSHOT of the new stuff! Ok so mostly I wanted to play with a Windows Live Writer &#8220;Polariod Image&#8221; plugin, but it&#8217;s still a perfectly reasonable picture. I don&#8217;t feel bad for a second about posting it, so there!</p>
<p>
<div class="wlWriterSmartContent" id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:dd547c69-2938-4795-b923-adac6156575e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a href="http://patcavit.com/wp-content/uploads/2008/04/friends-gadget-11-undocked-8x6.png" title="New Undocked Mode" rel="thumbnail"><img border="0" src="http://patcavit.com/wp-content/uploads/2008/04/friends-gadget-11-undocked3.png" /></a></div>
</p>
<p>One last thing, I&#8217;ve given the gadget a &#8220;proper&#8221; home page at <a title="http://patcavit.com/xbox-live-gadget/" href="http://patcavit.com/xbox-live-gadget/">http://patcavit.com/xbox-live-gadget/</a> thanks to WordPress&#8217;s support for pages and custom templates.&nbsp; It took some hunting to figure out how to make a static page include a list of posts from a certain category, but <a title="http://www.transycan.net/blogtest/2007/09/10/static-frontpage-combined-with-dynamic-content/" href="http://www.transycan.net/blogtest/2007/09/10/static-frontpage-combined-with-dynamic-content/">http://www.transycan.net/blogtest/2007/09/10/static-frontpage-combined-with-dynamic-content/</a> was incredibly helpful in answering the questions I had.</p>
<p>Oh that reminds me I have to update the homepage in the gadget metadata&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/04/19/closing-in-on-xbox-gadget-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xbox Live Friends Sidebar Gadget</title>
		<link>http://patcavit.com/2008/04/14/xbox-live-friends-sidebar-gadget/</link>
		<comments>http://patcavit.com/2008/04/14/xbox-live-friends-sidebar-gadget/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 22:39:10 +0000</pubDate>
		<dc:creator>Pat Cavit</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://patcavit.com/?p=172</guid>
		<description><![CDATA[What&#8217;s the problem? Knowing when my friends are online on Xbox Live has been a problem I&#8217;ve struggled with for years. When Microsoft announced the Xbox Community Developers program I thought I had found the answer. Then the recipients of the 50 API keys they gave out promptly made a bunch of websites I couldn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<h3>What&#8217;s the problem?</h3>
<p>Knowing when my friends are online on Xbox Live has been a problem I&#8217;ve struggled with for years. When Microsoft announced the Xbox Community Developers program I thought I had found the answer. Then the recipients of the 50 API keys they gave out promptly made a bunch of websites I couldn&#8217;t care less about&#8230;</p>
<p>Except for <a href="http://360voice.com">360voice.com</a> (&lt;3 their RSS feeds, I&#8217;m right <a href="http://www.360voice.com/tag/Tivac">here</a>). I really like the daily summaries that pop up into <a href="http://bloglines.com">Bloglines</a>, it&#8217;s cool knowing what games I should get so we can play more.</p>
<p>But even 360voice doesn&#8217;t handle the status info I was interested in. There&#8217;s no good way to have a list of my friends updating in the background so I can tell with a glance who is online and whether or not I should join them.  Plus there&#8217;s the hassle of actually getting someone else to sign up for it, so far I think all of 3 or so friends of mine are on there.</p>
<p>The other issue is one that isn&#8217;t anyone&#8217;s fault, per se. I don&#8217;t want to have to open a webpage to know who is online. The Xbox.com friends page is certainly easy to read, and it sticks all your friends at the top so you can scan it quickly. It still suffers from the fact that I have to actively go to it if I want to see who is online. I could hook up one of the Firefox extensions that checks a page for updates, but that still isn&#8217;t what I&#8217;m looking for.</p>
<h3>That sounds like it should work&#8230;</h3>
<p>So how do I get an unobtrusive, automatically updating list of my friends to sit on my desktop so I know at a glance who is online? Well I&#8217;m rocking Vista and dual-monitors, so I fired up the Sidebar and added the <a href="http://adamkinney.com/studios/xboxfriendswatch/"></a><a href="http://patcavit.com/wp-content/uploads/2008/04/xbox-friends-watch.png"><img style="border-right: 0px; border-top: 0px; margin: 10px 10px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://patcavit.com/wp-content/uploads/2008/04/xbox-friends-watch-thumb.png" border="0" alt="Xbox Friends Watch" width="160" height="238" align="left" /></a>Xbox Friends Watch gadget. It&#8217;s doubly neat because it not only does what I want but it uses Silverlight so there&#8217;s lots of fancy animations and the like.</p>
<p>I was pretty happy with this solution for a while, but it&#8217;s still not quite right. Despite me having more than 5 friends on Xbox Live, I can&#8217;t get updates for them. The gadget will happily add them and even appears to render them on its list, but it doesn&#8217;t support scrolling of any sort. You can kinda mouseover the very bottom and see the highlight travel to the other people on your list, but you&#8217;ll never know if they are online or not. Adding gamertags to it wasn&#8217;t the easiest thing in the world either, as the settings dialog expects tags to be commas-separated , which I always found to be pretty clunky.</p>
<p>Like I mentioned, the hard limit of 5 gamertags wasn&#8217;t a huge issue for me and I was happily using the Xbox Friends Watch gadget for several months.  Eventually though I was having to swap people in and out of the list on a pretty regular basis, depending on which group of friend<a href="http://patcavit.com/wp-content/uploads/2008/04/xbox-friends-watch-config.png"><img style="border-right: 0px; border-top: 0px; margin: 15px 0px 5px 15px; border-left: 0px; border-bottom: 0px" src="http://patcavit.com/wp-content/uploads/2008/04/xbox-friends-watch-config-thumb.png" border="0" alt="Xbox Friends Watch Config" width="182" height="244" align="right" /></a>s I was going to try and play with next. It didn&#8217;t make sense to me that I would have to do that, so I went looking to see if there were any other options out there.</p>
<h3>Not quite, next!</h3>
<p>The closest I found was Duncan MacKenzie&#8217;s <a href="http://www.duncanmackenzie.net/blog/connect-your-xbox-360-gamertag-to-twitter/default.aspx">Xbox to Twitter</a> application. It&#8217;s very cool, and something I contemplated running for a while before deciding that I spammed Twitter (and Facebook, thanks to the Twitter App) and people probably wouldn&#8217;t care that much. Besides, I&#8217;m not looking for ways to broadcast to other people that I&#8217;m online, I want a way to keep tabs on my friends and know when they&#8217;re online.</p>
<p>So Xbox to Twitter wasn&#8217;t what I needed, but it did get me the hook I needed to be able to solve my problem. As part of his twitter app Duncan also put up a Webservice API you can hit to get Xbox status info for a gamertag. Even better, he put up a REST version of it that you can hit using plain old HTTP. It&#8217;s super simple, check this out:</p>
<p><a title="http://duncanmackenzie.net/services/GetXboxInfo.aspx?GamerTag=Tivac" href="http://duncanmackenzie.net/services/GetXboxInfo.aspx?GamerTag=Tivac">http://duncanmackenzie.net/services/GetXboxInfo.aspx?GamerTag=Tivac</a></p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">="1.0"</span>?<span class="kwrd">&gt;</span></pre>
<pre><span class="kwrd">&lt;</span><span class="html">XboxInfo</span> <span class="attr">xmlns:xsi</span><span class="kwrd">=<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a></span></pre>
<pre><span class="attr">xmlns:xsd</span><span class="kwrd">="http://www.w3.org/2001/XMLSchema"</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">AccountStatus</span><span class="kwrd">&gt;</span>Gold<span class="kwrd">&lt;/</span><span class="html">AccountStatus</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">PresenceInfo</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">    <span class="kwrd">&lt;</span><span class="html">Valid</span><span class="kwrd">&gt;</span>true<span class="kwrd">&lt;/</span><span class="html">Valid</span><span class="kwrd">&gt;</span></pre>
<pre>    <span class="kwrd">&lt;</span><span class="html">Info</span><span class="kwrd">&gt;</span>Last seen 58 minutes ago<span class="kwrd">&lt;/</span><span class="html">Info</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">    <span class="kwrd">&lt;</span><span class="html">Info2</span> <span class="kwrd">/&gt;</span></pre>
<pre>    <span class="kwrd">&lt;</span><span class="html">LastSeen</span><span class="kwrd">&gt;</span>2008-04-14T15:42:05-05:00<span class="kwrd">&lt;/</span><span class="html">LastSeen</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">    <span class="kwrd">&lt;</span><span class="html">Online</span><span class="kwrd">&gt;</span>false<span class="kwrd">&lt;/</span><span class="html">Online</span><span class="kwrd">&gt;</span></pre>
<pre>    <span class="kwrd">&lt;</span><span class="html">StatusText</span><span class="kwrd">&gt;</span>Offline<span class="kwrd">&lt;/</span><span class="html">StatusText</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">    <span class="kwrd">&lt;</span><span class="html">Title</span><span class="kwrd">&gt;</span>www.xbox.com<span class="kwrd">&lt;/</span><span class="html">Title</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;/</span><span class="html">PresenceInfo</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">State</span><span class="kwrd">&gt;</span>Valid<span class="kwrd">&lt;/</span><span class="html">State</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">Gamertag</span><span class="kwrd">&gt;</span>tivac<span class="kwrd">&lt;/</span><span class="html">Gamertag</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">ProfileUrl</span><span class="kwrd">&gt;</span>http://live.xbox.com/member/tivac<span class="kwrd">&lt;/</span><span class="html">ProfileUrl</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">TileUrl</span><span class="kwrd">&gt;</span>http://tiles.xbox.com/ti...8M6cr.jpg<span class="kwrd">&lt;/</span><span class="html">TileUrl</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">Country</span><span class="kwrd">&gt;</span>United States<span class="kwrd">&lt;/</span><span class="html">Country</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">Reputation</span><span class="kwrd">&gt;</span>99.98135<span class="kwrd">&lt;/</span><span class="html">Reputation</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">ReputationImageUrl</span><span class="kwrd">&gt;</span>http://live.xbox.com/xweb/...gif<span class="kwrd">&lt;/</span><span class="html">ReputationImageUrl</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">GamerScore</span><span class="kwrd">&gt;</span>12860<span class="kwrd">&lt;/</span><span class="html">GamerScore</span><span class="kwrd">&gt;</span></pre>
<pre>  <span class="kwrd">&lt;</span><span class="html">Zone</span><span class="kwrd">&gt;</span>Recreation<span class="kwrd">&lt;/</span><span class="html">Zone</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">  <span class="kwrd">&lt;</span><span class="html">RecentGames</span><span class="kwrd">&gt;</span></pre>
<pre>    <span class="kwrd">&lt;</span><span class="html">XboxUserGameInfo</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">      <span class="kwrd">&lt;</span><span class="html">Game</span><span class="kwrd">&gt;</span></pre>
<pre>        <span class="kwrd">&lt;</span><span class="html">Name</span><span class="kwrd">&gt;</span>Halo 3<span class="kwrd">&lt;/</span><span class="html">Name</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">        <span class="kwrd">&lt;</span><span class="html">TotalAchievements</span><span class="kwrd">&gt;</span>49<span class="kwrd">&lt;/</span><span class="html">TotalAchievements</span><span class="kwrd">&gt;</span></pre>
<pre>        <span class="kwrd">&lt;</span><span class="html">TotalGamerScore</span><span class="kwrd">&gt;</span>1000<span class="kwrd">&lt;/</span><span class="html">TotalGamerScore</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">        <span class="kwrd">&lt;</span><span class="html">Image32Url</span><span class="kwrd">&gt;</span>http://tiles.xbox.com/tiles/oo/P5/0...<span class="kwrd">&lt;/</span><span class="html">Image32Url</span><span class="kwrd">&gt;</span></pre>
<pre>        <span class="kwrd">&lt;</span><span class="html">Image64Url</span><span class="kwrd">&gt;</span>http://tiles.xbox.com/tiles/zS/3N/1W....jpg<span class="kwrd">&lt;/</span><span class="html">Image64Url</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">      <span class="kwrd">&lt;/</span><span class="html">Game</span><span class="kwrd">&gt;</span></pre>
<pre>      <span class="kwrd">&lt;</span><span class="html">LastPlayed</span><span class="kwrd">&gt;</span>2008-04-10T00:25:48-05:00<span class="kwrd">&lt;/</span><span class="html">LastPlayed</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">      <span class="kwrd">&lt;</span><span class="html">Achievements</span><span class="kwrd">&gt;</span>25<span class="kwrd">&lt;/</span><span class="html">Achievements</span><span class="kwrd">&gt;</span></pre>
<pre>      <span class="kwrd">&lt;</span><span class="html">GamerScore</span><span class="kwrd">&gt;</span>770<span class="kwrd">&lt;/</span><span class="html">GamerScore</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">      <span class="kwrd">&lt;</span><span class="html">DetailsURL</span><span class="kwrd">&gt;</span>http://live.xbox.com/en-...o=tivac<span class="kwrd">&lt;/</span><span class="html">DetailsURL</span><span class="kwrd">&gt;</span></pre>
<pre>    <span class="kwrd">&lt;/</span><span class="html">XboxUserGameInfo</span><span class="kwrd">&gt;</span></pre>
<pre class="alt">    ...</pre>
<pre>  <span class="kwrd">&lt;/</span><span class="html">RecentGames</span><span class="kwrd">&gt;</span></pre>
<pre class="alt"><span class="kwrd">&lt;/</span><span class="html">XboxInfo</span><span class="kwrd">&gt;</span></pre>
</div>
<p>A little hard to parse in this format, I know. Hitting that URL in your browser will make it easier to understand though. I also shortened all the URLs and removed a the previous 9 games I had played because honestly, it&#8217;s not <strong>that</strong> interesting and it makes the XML way longer.</p>
<p>This is it though, the data that I needed to solve the problem of &#8220;I want to know what friends are on Xbox Live&#8221; (at least for me!). All I needed to do was to figure out how to use that info. Reaching back into the depths of my memory I recalled my previous attempt at building sidebar gadgets (<a title="http://patcavit.com/2007/05/04/vista-gadget-headaches/" href="http://patcavit.com/2007/05/04/vista-gadget-headaches/">http://patcavit.com/2007/05/04/vista-gadget-headaches/</a>) and how I in fact had tried to build this very gadget once before. Except it failed horribly because I couldn&#8217;t automate a Windows Live login. Well wonder of wonders, with this API I don&#8217;t have to!</p>
<h3>Finally, some progress!</h3>
<p>So after a few days of hacking in JavaScript and PHP I&#8217;ve got a sidebar gadget that takes a list of Xbox gamertags and will update to let you know when any of them are online. It even uses the cool <a href="http://blogs.msdn.com/sidebar/archive/2006/09/21/765604.aspx">Gadget Persistent Storage</a> library to store your list of gamertags when you remove and re-add the gadget. A lot of this is powered by a small subset of <a href="http://developer.yahoo.com/yui">YUI</a> because programming JS without it is too painful. Specifically I&#8217;m using <a href="http://developer.yahoo.com/yui/reset/">Reset</a>, <a href="http://developer.yahoo.com/yui/dom/">DOM</a>, <a href="http://developer.yahoo.com/yui/event/">Event</a>, <a href="http://developer.yahoo.com/yui/json/">JSON</a> &amp; <a href="http://developer.yahoo.com/yui/connection/">Connection</a>.</p>
<p>There are of course some caveats to this, but there always are.</p>
<p>Getting a list of gamertags isn&#8217;t automated. I&#8217;m not even sure the people who have direct access to the Xbox Community Developers Program ever got this capability. I doubt it. It means that for now you&#8217;ll still need to input a bunch of gamertags by hand. Fortunately this list is newline separated, so it&#8217;s very quick to add a bunch of them. I&#8217;ve got some stub code in there to parse it from a copy/paste of your <a href="http://live.xbox.com/en-US/profile/Friends.aspx?WT.svl=nav">Xbox.com friends management page</a>, but it isn&#8217;t ready for anyone to actually use yet.</p>
<ol>
<li>It violates Microsoft&#8217;s <a href="http://msdn2.microsoft.com/en-us/library/aa974179.aspx">Gadget UI Guidelines</a>, in that gadgets shouldn&#8217;t change size on anything other than a click. Mine does automatically depending on the number of people online. It could even conceivably become taller than your monitor. Microsoft is definitely right about this and I think it sucks, but I didn&#8217;t figure out a clean way of paginating the data that could stand. This is something I&#8217;m going to work on in the future, but for now it&#8217;s crappy.</li>
<li>There&#8217;s no undocked state. More accurately, it&#8217;s the exact same docked to the sidebar and undocked. Ideally it would expand a bit to shower bigger icons, larger text, and gamerscore (at a minimum) when you undocked the gadget. That&#8217;s on the list of things I&#8217;d like to do someday, but since I never use the gadget undocked is pretty low priority.</li>
<li>There&#8217;s still some weird behaviors. Here&#8217;s the ones I know about.
<ol>
<li>Sometimes the requests to the server for user info just take forever and return empty.</li>
<li>Opening a new flyout when there&#8217;s already one open causes the flyout to lose focus until you click on it. This appears to be a Sidebar/Gadgets limitation so it&#8217;s unlikely to be fixed.</li>
</ol>
</li>
</ol>
<p>Still, it works like I need it to which is really the only important thing! I&#8217;d love to have some other people use it and give me feedback though. I&#8217;m always down for hearing about bugs as well, though no promises that they will be something easily fixable.</p>
<p>It&#8217;s not the prettiest thing in the world, I&#8217;ve modelled it after <a href="http://live.xbox.com/en-US/profile/Friends.aspx?WT.svl=nav">xbox.com</a> and the flyout details are powered by the <a href="http://www.xbox.com/en-US/MyXbox/embedgamercard.htm">Embeddable Gamercards</a> offered on xbox.com.  Here&#8217;s an example of the what those look like</p>
<p>Put your gamertag here too.</p>
<p>It&#8217;s lazy but it gets the data I want in there without a lot of hassle on my part. In the future I would like to have a nicer flyout more akin to what Xbox Friends Watch has. Unfortunately, that&#8217;ll be a a good chunk of work to get the interactions right so that&#8217;s a challenge I&#8217;m putting off for another day. I don&#8217;t even really use the flyouts in my day to day gadget usage, but it&#8217;s nice to be able to interact and get a bit more information.</p>
<p>As usual I&#8217;ve written way too much and not posted enough links to just get the damn thing, so here you go!</p>
<p><strong><a href="http://patcavit.com/dev/gadgets/Xbox Live Friends.gadget">Xbox Live Friends Gadget 1.0</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://patcavit.com/2008/04/14/xbox-live-friends-sidebar-gadget/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
