<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://everythingandnothing.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2feverythingandnothing.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tales of a Gadget Developer</title><description /><link>http://everythingandnothing.spaces.live.com/</link><language>en-US</language><pubDate>Sun, 03 Aug 2008 15:58:17 GMT</pubDate><lastBuildDate>Sun, 03 Aug 2008 15:58:17 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>8475505343921084160</live:id><live:alias>everythingandnothing</live:alias></live:identity><image><title>Tales of a Gadget Developer</title><url>http://byfiles.storage.live.com/y1pSyF5Mvgb-LQq8eDrxZjesT2P-ULKD6QQLAKfUJOEO0-rxXxhJ3_xnw</url><link>http://everythingandnothing.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Sidebar gadgets and resuming from sleep</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!249.entry</link><description>&lt;p&gt;In the process of updating my &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=10f027c7-8153-48f6-bffb-b1846bd52d76"&gt;Soapbox&lt;/a&gt; sidebar gadget, I ran into a little problem with timers and resuming from sleep.  I had a timer setup to make a network call every 30 minutes, but upon resume the network call would fail and the timer would not be reset into its proper failure state (on failure, the timer switches to 2.5 minute updates, in case your network connection comes back).  After poking around for a bit, I found that if I listened for &lt;a href="http://msdn2.microsoft.com/en-us/library/bb267257.aspx"&gt;System.Gadget.visibilityChanging&lt;/a&gt; to stop and restart the timers, everything started working correctly.  Just wanted to share that bit of info in case others are having the same problem.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Sidebar+gadgets+and+resuming+from+sleep&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Computers and Internet</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!249.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!249.entry</guid><pubDate>Mon, 24 Sep 2007 05:45:02 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!249/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!249.entry#comment</wfw:comment><dcterms:modified>2007-09-24T05:46:03Z</dcterms:modified></item><item><title>Soapbox Gadget is here</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!203.entry</link><description>&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJE9YS3Sw2lsZnJ-x_NCQ5rm302AHZEAu8I1_z0CFO9EsZRJ16uTVdEVuq9r36IglmvaL1v4kjHnvvkSCStZ7G2hdVjF7rJzCXDqBxR4MornAQ"&gt;&lt;img height=490 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJHwQXzh9s0_JWmjhkFEmcg6RFFv0GVzQ4EWJsRzbPXbXtUQsU125w3j8qovc442RRtCAHflRn1TyKcTxkoEca9apSPRcKYurBhmrH2mX4yt-w" width=310&gt;&lt;/a&gt; 
&lt;p&gt;The new gadget is &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=d906a4b9-9cf0-4bc6-9c9e-909a5ddfa823&amp;amp;l=1"&gt;here&lt;/a&gt;!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Soapbox+Gadget+is+here&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!203.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!203.entry</guid><pubDate>Tue, 14 Nov 2006 08:28:17 GMT</pubDate><slash:comments>6</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!203/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!203.entry#comment</wfw:comment><dcterms:modified>2006-11-14T21:11:16Z</dcterms:modified></item><item><title>Hacking an Xbox 360 Headset Adapter</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!199.entry</link><description>&lt;p&gt;A couple of months ago, I purchased an &lt;a href="http://froogle.google.com/froogle?hl=en&amp;amp;q=intec xbox 360 headset adapter&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;sa=N&amp;amp;tab=wf"&gt;Intec Headset Adapter&lt;/a&gt; for my Xbox 360.  I really dislike the over-the-head form factor used by the official &lt;a href="http://www.xbox.com/en-US/hardware/x/xbox360headset/"&gt;Xbox 360 headset&lt;/a&gt;, and really prefer the behind-the-head form factor of the &lt;a href="http://www.xbox.com/en-US/hardware/xboxlivecommunicator.htm"&gt;original Xbox Communicator headset&lt;/a&gt;.  Unfortunately, the original Xbox headset doesn't have volume or mute controls, which is why I bought the adapter.  After a couple of months of usage the adapter had become loose when connected to the 360 controller.  The body of the adapter would wiggle when trying to adjust volume, change mute status, or even just plugging in a headset.  After taking it apart, I found the problem: the plug is not anchored to anything!  Knowing the problem, I resolved to fix the issue.  So, armed with a small Phillips screwdriver, a soldering iron, a Dremel rotary tool, and a spare Xbox 360 headset, I set out to fix the problem.
&lt;p&gt;In the photo below, you can see the difference between the plug from the Intec adapter (on the left) and the Microsoft headset plug.  The Microsoft version has two prongs that fit over the screw posts and anchor the plug to the body of the dongle.  The Intec relied on a friction fit in the plug faceplate that is prone to wearing out.
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJEhdDXXzUHn9WUl9ByhOsSDzBGXvoAlgMGKZQB5ArMWTg6tOtovjn9cNxlhstqE2sn-XgZj94AZOGz10z93HuDxsODHMkkEyeCwfeU-u68zbg"&gt;&lt;img height=426 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJFdvSR59mqAbJn_ddDrDerbQHLIYt5Q_vJqcYCuO-4Z4oLjEC8hyxAFeOdOuOUjoHAqzcrAWk0SvhDEJq6u7p73FhwQVjAqIoeABB-cxaN7aA" width=640&gt;&lt;/a&gt; 
&lt;p&gt;Obviously the Microsoft unit will be more stable, being anchored by screws, so I decided to swap the two plugs.  First, take note where each wire goes.  The Intec unit has red, blue, and copper wires, going to SP+, M+, and G, respectively.  The Microsoft unit has black, blue, and copper wires going to the same connection points.  Carefully de-solder each plug from its circuit board, and then solder the Microsoft plug onto the correct connections on the Intec board.  This should be relatively simple to do, as you just need to melt the existing solder to remove or replace the leads.  No extra solder was necessary for me.  Make sure your solder joints are good, or you'll have to re-do this step later.  While you're at it, there's a little rubber wrapping at the base of the Microsoft plug that's going to get in the way later.  Slide that down the wires and out of the way so you can bend the wire connecting to the very end of the plug.  There's going to be very little clearance between the plug and the jack when you put this back together, and the rubber thing just gets in the way.  
&lt;p&gt;Below is a picture of the SP+, M+, and G connection points.  This picture is after soldering on the Microsoft unit, so SP+ has the black wire at the top of the photo, M+ has the blue wire at the bottom of the photo (a little hard to see), and G has the copper wire in between the two.
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJEMEVXILZlNPpBn2EnkdaAt-x12jXbXD9gnAiEo7j8MFmsd8yBxlbUKXP4_pSOfTZXFAnGWxav6gwVWecfv2dtCjYW_hfMyEu507XBFYOk4pg"&gt;&lt;img height=426 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJHBEH6umLZdbn81SkMzL256JcdPVkyt-j4dg6NsSgT4DVX5HsGQF-xc1J3w7k_-fypmbg57A02uHiEJd4yPco7PcLDza6cjpN2m6Iko9G0S0A" width=640&gt;&lt;/a&gt; 
&lt;p&gt;Once everything is soldered, it's time to put the Intec unit back together.  Immediately you'll notice that the faceplate (the slightly curved bit where the jack sticks out) is different between the two units.  Not a problem.  Just grab the faceplate from the Microsoft headset and use that.  In the picture below, the Intec plate is on the left, while the Microsoft plate (as indicated by the &amp;quot;Microsoft&amp;quot; label) is on the right.
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJENRsSzsroBI40ED_dhRIQLiRSe02aON7AyDbRP2ywmmNxPbac_P1F_7qewebE8nsAKRuP7kcVJJnG1agN6hqdtHtmmbODkKePmsv_hbt66Ow"&gt;&lt;img height=426 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJG1oLCO3AAjkcv4bjSXMgp4LmD_9qc_1LKpyoJ1LsYlHK_vlkMYe5Z_vkykNu3CDofZoIsZSXYYcrCZI4OMnYuV2sezTJ-gETV9kDJzvXLgpA" width=640&gt;&lt;/a&gt; 
&lt;p&gt;Now that the faceplate issue is sorted out, you'll find that the two halves of the Intec unit still don't fit together.  The top plate was not meant to work with the anchors from the Microsoft plug, so we're going to have to fix that.  Using your Dremel rotary tool, select an appropriate grinding bit for plastic.  I used a cone-shaped aluminum oxide bit (similar to &lt;a href="http://www.dremel.com/en-us/attachments-and-accessories/attachment-accessory-detail.htm?H=188558&amp;amp;G=66333&amp;amp;I=66343"&gt;this one&lt;/a&gt;) because that's what I happened to have available, but a sanding bit or otherwise abrasive bit should work just as well.  On the backplate, you need to grind down the screw posts, the little pointy bits next to the posts, and the two ledges at the front of the plate.  On the Microsoft plug, you'll want to grind down the upraised portion on the prongs that sit over the top of the screw posts.  I just eyeballed it, grinding and test-fitting as needed.  In the picture below, you can see the backplate after I finished grinding.
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJEbLrY5ILchXMpNEeG26i325EH1QQvUyLHbBpBzlGjvxo07EPUVsnDPG74OOwFu7O_dNN6VTAzZOIFaI_aC8aH-IFEMdeUeB2nw6eOWqgw7zw"&gt;&lt;img height=426 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJFmNL_DJ1S2ZzpFjXRG7pdEKBtysPMXD5gCIj4JhsbYSAn3ScBLvVyKzhLugyUl5-Ln_Kt9FEennx1bEPf0WBhqizve7Zt8EKL03RKiaZ0dbA" width=640&gt;&lt;/a&gt; 
&lt;p&gt;Once everything fits back together, insert the two screws and you're done!  At this point, you should fire up your Xbox 360, plug in your chosen headset, and record a voice message to a friend (no need to send it).  This will test mic functionality (recording) and earphone functionality (playing back the recorded message).  If all went well, you're truly done.  If the sound is scratchy or non-existent, try using the headset directly with the controller to see if it's a problem with your chosen headset or with the adapter.  If there is a problem with the adapter, you'll need to take everything apart again and re-solder your connections.
&lt;p&gt;Now you have an Intec headset adapter that doesn't wiggle when adjusting controls, and doesn't look all ghetto like you'd get if you &lt;a href="http://forums.xbox-scene.com/index.php?showtopic=464068&amp;amp;st=0&amp;amp;p=3073549&amp;amp;#entry3073549"&gt;hacked&lt;/a&gt; your own adapter (I did that before Intec released their unit, cannibalizing an old Xbox headset puck for a jack; it worked well, but was quite ugly).  Enjoy!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Hacking+an+Xbox+360+Headset+Adapter&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Games</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!199.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!199.entry</guid><pubDate>Tue, 14 Nov 2006 07:01:56 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!199/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!199.entry#comment</wfw:comment><dcterms:modified>2006-11-14T07:28:47Z</dcterms:modified></item><item><title>Restoring the luster of a Miata</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!189.entry</link><description>&lt;p&gt;Yesterday I spent 3.5 hours detailing a friend's Miata.  I did it because I enjoy doing that stuff (I did my own car in preparation for winter last week).  The car started out in pretty bad shape, having not been washed in several years.  Once I got all of the grime off (and &lt;a href="http://www.griotsgarage.com/catalog.jsp?L1=L1_1000&amp;amp;L2=L2_1004&amp;amp;SKU=11153"&gt;clayed&lt;/a&gt; the paint), it was clear that the paint had oxidized quite a bit, as many older cars with red paint don't have a clear coat for whatever reason (oddly enough, the car was devoid of swirl marks -- I assume that's because she never washed it).  I had initially just planned for a wash and wax, but this called for more drastic measures.  So, out came the &lt;a href="http://www.meguiars.com/?auto-paint-cleaners/Deep-Crystal-System-Paint-Cleaner"&gt;non-abrasive paint cleaner&lt;/a&gt;.  That cleared up the oxidation problem pretty quickly, though I did have to break out my random orbital polisher to remove the excess cleaner.  As an aside, I generally prefer to do things by hand, as fingers can get into smaller places than a big buffer.  I only used the polisher to remove the excess in this case because the paint needed so much work that the cleaner just didn't want to come off (no wax for years == very rough paint that likes to hold onto everything).
&lt;p&gt;After the paint cleaner, I followed up with a hand &lt;a href="http://www.meguiars.com/?car-polishes/Deep-Crystal-System-Polish"&gt;polish&lt;/a&gt;.  That really brought out the color, so it was time for some wax.  I had initially planned to do two coats, starting with a &lt;a href="http://www.meguiars.com/?liquid-car-waxes/NXT-Generation-Tech-Wax"&gt;longer-lasting polymer-based wax&lt;/a&gt; (since Suzy's not likely to wax the car often in the future) and then follow it up with a more conventional &lt;a href="http://www.meguiars.com/?liquid-car-waxes/Deep-Crystal-System-Carnauba-Wax"&gt;carnauba wax&lt;/a&gt; to make the paint really pop, but at that point I had run out of clean applicators and was quickly running short on clean towels (the cleaner and polish steps used up what I had planned for the carnauba step) so I left it with just the polymer wax.  It still looks 1000% better than before, and Suzy was very happy.  I did get a free dinner out of it, but that was totally unnecessary.  I did it for love of cars, and to show her that the Miata is still a great little car while the rest of my friends are buying Porsches, Audis, Bimmers, and Benzes.
&lt;p&gt;I applied the finishing touches by &lt;a href="http://www.griotsgarage.com/catalog.jsp?SKU=11155"&gt;polishing&lt;/a&gt; up the tailpipe, cleaning the interior and top with &lt;a href="http://www.meguiars.com/?vinyl-rubber-plastic-protectants/Gold-Class-Protectant-Wipes"&gt;vinyl protectant&lt;/a&gt;, &lt;a href="http://www.armorall.com/prod_glasswipes.html"&gt;cleaning&lt;/a&gt; the insides of the windows, and &lt;a href="http://www.meguiars.com/?tire-care/NXT-Generation-Insane-Shine-Tire-Spray"&gt;blacking&lt;/a&gt; the tires.  Since I rarely use the vinyl protectant or glass wipes on my own car, I went ahead and gave those to Suzy for maintenance cleaning, as well as throwing in a couple of nice cotton towels to use.  I would've also thrown in some &lt;a href="http://www.griotsgarage.com/catalog.jsp?SKU=11146"&gt;speed shine&lt;/a&gt; / &lt;a href="http://www.meguiars.com/?car-maintenance/Quik-Detailer"&gt;quick detailer&lt;/a&gt;, but I didn't have any to spare (I'm running low on speed shine myself, and will need to get another bottle probably this spring).
&lt;p&gt;You can see pictures from the process in my photo albums here.  Apparently my camera is crap and I suck at taking pictures, because a few came out blurry.  It's a little hard to see the difference between the steps, but trust me, the car at the end of the process was barely recognizable as the one I started with.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Restoring+the+luster+of+a+Miata&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Hobbies</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!189.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!189.entry</guid><pubDate>Sun, 29 Oct 2006 09:49:17 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!189/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!189.entry#comment</wfw:comment><dcterms:modified>2006-10-29T09:51:41Z</dcterms:modified></item><item><title>Upcoming Favorite Xbox 360 Games gadget changes</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!153.entry</link><description>&lt;p&gt;&lt;strong&gt;Edit 2&lt;/strong&gt;:  Apparently the gadget did update, but recent changes to Gallery means that the new code was uploaded to a different URL than the old.  You'll have to go back to Gallery (link below), click &amp;quot;Add to my space&amp;quot; again, and remove the old one.  The gamertag configuration you set with the old code will continue to work with the new.
&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:  Well, Gallery accepte my submission but didn't prop my new code, so version 1.4 on the Gallery doesn't have the updates below.  I'm following up on this to see if I can get the update fixed, and may have to resubmit the gadget.
&lt;p&gt;The next update to my Favorite Xbox 360 Games gadget should be uploaded on &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=33e9aed1-bd31-43b6-aaff-b8d9a1f39719&amp;amp;l=1"&gt;Gallery&lt;/a&gt; soon.  You'll know it's there when the version number is 1.4.  Here's a sneak preview:
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJHhe1T3y0pbnr5F12O-shA6gD-xvxrg-efDoe3iCYaIdRc7Lp-_4tKR3b1Z9XyfJNQuKI5oRie5XJWghVGlQ5mmOYPyZVrZ5xu1JP4llnYf3Q"&gt;&lt;img height=272 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJEmIe_BNI-QdCmBNlLrclyckgBoNXk7TEeaSTBlR54XqSiL1aRCD5XUZUs75FPWlGU8LRi_rLSRXMQuql2rnX9dfb2oNLKUMaTcC9TepoU3rg" width=311&gt;&lt;/a&gt; 
&lt;p&gt;Can you spot the differences?  (Ignore the broken images.  Xbox.com was down while I was working on this, so game tiles failed to load.)
&lt;ol&gt;
&lt;li&gt;Rounded corners.  This makes the gadget look a bit better on dark-themed Spaces.  Technique &amp;quot;borrowed&amp;quot; from &lt;a href="http://www.html.it/articoli/niftycube/index.html"&gt;Alessandro Fulciniti's Nifty Corners Cube technique&lt;/a&gt; (the Nifty code was not used, just the idea).  If you use a white background on your Space, the corners are essentially invisible, but they're still there.
&lt;li&gt;Icons!  FamFamFam's lovely &lt;a href="http://www.famfamfam.com/lab/icons/silk/"&gt;Silk&lt;/a&gt; icon set makes another appearance in one of my gadgets (previously used in my &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=cfbe8911-313d-4025-a755-948e75c5de08&amp;amp;l=1"&gt;Similar Artists&lt;/a&gt; gadget).  This time, the wrench replaces the old &amp;quot;Edit&amp;quot; text and the refresh arrows are added for ...
&lt;li&gt;Refresh functionality.  Not all that useful, since 360Voice only updates once a day, but the functionality is there and may be useful if the gadget fails to retrieve data for some reason.  Edit will still only be available to Live.com users and while in Author mode on Spaces.  Refresh will be available to all users at all times.&lt;/ol&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Upcoming+Favorite+Xbox+360+Games+gadget+changes&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Computers and Internet</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!153.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!153.entry</guid><pubDate>Wed, 18 Oct 2006 06:04:31 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!153/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!153.entry#comment</wfw:comment><dcterms:modified>2006-11-14T07:29:13Z</dcterms:modified></item><item><title>Gadget ideas</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!150.entry</link><description>&lt;p&gt;I enjoy writing gadgets.  What I don't enjoy is writer's block when I'm out of ideas for gadgets to write.  I've added a list to my Space here to track gadget ideas I'm thinking about.  If you have cool gadget ideas, please leave a comment.  I won't guarantee that I'll implement your idea (even assuming that your idea is feasible), but it'll help get my creative juices flowing.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Gadget+ideas&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Computers and Internet</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!150.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!150.entry</guid><pubDate>Wed, 11 Oct 2006 08:42:02 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!150/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!150.entry#comment</wfw:comment><dcterms:modified>2006-11-14T07:29:04Z</dcterms:modified></item><item><title>Implementing a storage mechanism for Spaces gadgets</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!142.entry</link><description>&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:  This is no longer necessary, as Windows Live Spaces now supports get/setProperties on the Module object.  The article is still interesting from a technical perspective, but you no longer need to implement your own preference storage mechanism for Spaces gadgets.
&lt;p&gt;Donavon's LiveSide.net &lt;a href="http://www.liveside.net/blogs/developer/archive/2006/10/03/Live-Spaces_3A00_-The-challenges-facing-gadget-developers.aspx"&gt;article&lt;/a&gt; on building gadgets for Spaces mentions one of the main problems remaining for gadget developers trying to target Spaces, namely how to store preferences for a gadget and reference them in such a way that the gadget can be both configurable for the author and yet show what the author wants to visitors.  Since he didn't go into detail about how to build such a mechanism, I thought I'd do a quick run through of the solution I used.
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;To do this, you'll need a couple resources up front that you may or may not have.
&lt;ul&gt;
&lt;li&gt;A web hosting site that allows you to use some sort of server-side language.  I used PHP because that's what my provider made available, but you could do this with ASP, ASP.NET, Perl, Ruby, Python, or even good old C/C++ (as a CGI). 
&lt;li&gt;A database or other storage mechanism.  I went with MySQL, again because that's what my host provides (I'll not get into my biases against MySQL here ...).  You could do this with file-based storage if you really want to, though I'm going to present a SQL-based solution here. 
&lt;li&gt;A hosting plan that has adequate bandwidth limits and reliability.  The last thing you want is to have your gadgets stop working because your hosting provider cut you off.  Keep in mind that if your gadget gets popular, what you initially feel is adequate may ultimately be too little to support the load.&lt;/ul&gt;
&lt;p&gt;Expect to have to pay money for a hosting service that will provide you what you need.  Geocities is not going to cut it.
&lt;h2&gt;Storage&lt;/h2&gt;
&lt;p&gt;While I built my storage service for a single gadget, I looked at what I would need to make it work for multiple gadgets.  I ended up with two tables:
&lt;ol&gt;
&lt;li&gt;spaces_author, to track the combination of Space + gadget id (where &amp;quot;gadget id&amp;quot; is a string I made up for my gadget, and must be unique for each gadget you use with this service). 
&lt;li&gt;spaces_pref, to map name/value pairs to the ID from spaces_author.  This table holds the actual preferences you're going to store.&lt;/ol&gt;
&lt;p&gt;Here's the schema for spaces_author.  This is from MySQL, so you will need to adjust it for other databases like SQL Server, PostgreSQL, or Oracle.
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;CREATE TABLE `spaces_author` (&lt;br&gt;    `id` bigint(20) NOT NULL auto_increment,&lt;br&gt;    `host` varchar(250) NOT NULL default '',&lt;br&gt;    `gadget` varchar(250) NOT NULL default '',&lt;br&gt;    PRIMARY KEY (`id`),&lt;br&gt;    UNIQUE KEY `host_2` (`host`,`gadget`)&lt;br&gt;) TYPE=MyISAM COMMENT='Spaces author mapping';&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;id&amp;quot; is the unique id of the host + gadget (herein referred to as &amp;quot;author&amp;quot;).  &amp;quot;host&amp;quot; is a unique value to identify the Space.  I used the first part of the URL, or &amp;quot;everythingandnothing&amp;quot; from this page's full URL of &amp;quot;everythingandnothing.spaces.live.com&amp;quot;.  &amp;quot;gadget&amp;quot;, as mentioned before, is a made-up unique key for a gadget.  You can use whatever you like here, change it to an integer, or whatever.
&lt;p&gt;And here's the schema for spaces_pref.
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;CREATE TABLE `spaces_pref` (&lt;br&gt;    `authorId` bigint(20) NOT NULL default '0',&lt;br&gt;    `name` varchar(64) NOT NULL default '',&lt;br&gt;    `value` varchar(255) NOT NULL default '',&lt;br&gt;    PRIMARY KEY (`authorId`,`name`)&lt;br&gt;) TYPE=MyISAM COMMENT='Spaces preference storage';&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;authorId&amp;quot; is a link back to the &amp;quot;spaces_author&amp;quot; table (in a better database, I'd actually make this a foreign key; for MySQL, I just didn't bother).  &amp;quot;name&amp;quot; is the name of the preference you're storing, and &amp;quot;value&amp;quot; is the value.  Note the size limitations.  You can adjust those as appropriate for what you want to store and your database's capabilities.
&lt;h2&gt;The Web Service&lt;/h2&gt;
&lt;p&gt;Once you have your storage mechanism in place, you need a way to store and retrieve that data.  This is where the web service comes in.  Since you'll be calling this with the gadget framework's Web.Network.createRequest() method, you're limited to either JSON or REST XML (if you choose to use SOAP, make sure you enable HTTP-GET or you won't be able to call this from your gadget!).  I chose to work with XML as it's simple, I know it, and I've not worked much with JSON.  In the long run JSON is probably a better choice, but I'm not going to cover that here.
&lt;p&gt;I wrote my web service using PHP, and created two different files, one to set preferences and the other retrieve them.  You could do this with a single interface if you like, but it was simpler for me to do it as two separate files.  I'm not going to provide code here, but the idea is simple.  I've omitted some error checking in the workflow here, but you should check for errors at every step and return useful information in an XML or JSON format so your gadget can figure out what went wrong.
&lt;ol&gt;
&lt;li&gt;Pass in host, gadget, name, and value as GET parameters. 
&lt;ol&gt;
&lt;li&gt;Make sure you validate your parameters!&lt;/ol&gt;
&lt;li&gt;For Set 
&lt;ol&gt;
&lt;li&gt;Check if the host + gadget key exists in spaces_author 
&lt;ol&gt;
&lt;li&gt;If it does, retrieve the authorId 
&lt;li&gt;If it doesn't, insert host + gadget into spaces_author and retrieve the newly created authorId.&lt;/ol&gt;
&lt;li&gt;Check if authorId + name exists in spaces_pref 
&lt;ol&gt;
&lt;li&gt;If it does, update spaces_pref and set value to the new value. 
&lt;li&gt;If it doesn't, insert authorId, name, and value into spaces_pref&lt;/ol&gt;
&lt;li&gt;Return some indicator that Set succeeded.&lt;/ol&gt;
&lt;li&gt;For Get, check if the host + gadget key exists in spaces_author 
&lt;ol&gt;
&lt;li&gt;If it does, retrieve authorId 
&lt;ol&gt;
&lt;li&gt;Check if authorId + name exists in spaces_pref 
&lt;ol&gt;
&lt;li&gt;If it does, retrieve the value and return it wrapped in XML 
&lt;li&gt;If it doesn't, return an error&lt;/ol&gt;&lt;/ol&gt;
&lt;li&gt;If it doesn't, return an error&lt;/ol&gt;&lt;/ol&gt;
&lt;p&gt;And a few tips for those who plan to use PHP:
&lt;ul&gt;
&lt;li&gt;Before you echo or print anything, make sure you set your content to application/xml (for XML).  You really should do this first thing in your PHP file, because you may include other files that do some sort of output that you're not aware of. 
&lt;ul&gt;
&lt;li&gt;&lt;font face="Courier New"&gt;header('Content-Type: application/xml');&lt;/font&gt;&lt;/ul&gt;
&lt;li&gt;Make sure you protect yourself against SQL injection. 
&lt;ul&gt;
&lt;li&gt;&lt;font face="courier new"&gt;if (get_magic_quotes_gpc() == 1)&lt;br&gt;{&lt;br&gt;    $foo = $_GET[&amp;quot;foo&amp;quot;];&lt;br&gt;}&lt;br&gt;else&lt;br&gt;{&lt;br&gt;    $foo = addslashes($_GET[&amp;quot;foo&amp;quot;]);&lt;br&gt;}&lt;/font&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;h2&gt;Putting it all together&lt;/h2&gt;
&lt;p&gt;Now you have a storage backend and a web service to access it.  How do you use this in a gadget?  To reduce load, you should only use this storage mechanism for gadgets running on Spaces, and continue to use module.[set|get]Preference() for Live.com gadgets.  I'm going to make a couple assumptions here:
&lt;ul&gt;
&lt;li&gt;You've defined a variable m_isSpace that is true if the gadget is running on a Spaces page. 
&lt;li&gt;You've defined a variable m_isAuthor that is true if the gadget is running in author mode. 
&lt;li&gt;If m_isSpace is true, you've populated a variable m_host that contains a unique key to identify this Space (I suggest you parse window.location like Donavon suggests).&lt;/ul&gt;
&lt;p&gt;Saving is easy.  Here's a sample function:
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new"&gt;function SetData()&lt;br&gt;{&lt;br&gt;    if (!m_isSpaces)&lt;br&gt;    {&lt;br&gt;        // Not on a Space.  Use the normal preference mechanism&lt;br&gt;        m_module.setPreference(&amp;quot;tag&amp;quot;, m_tag);&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        if (!m_isAuthor)&lt;br&gt;        {&lt;br&gt;            // On a Space, but as a visitor.  No saving for you!&lt;br&gt;            return;&lt;br&gt;        }&lt;br&gt;        else&lt;br&gt;        {&lt;br&gt;            // On a Space as an author.  We need to kick off a web request to do the save&lt;br&gt;            var url = // TODO:  Build your URL here, with your host key, gadget key, etc&lt;br&gt;                + &amp;quot;&amp;amp;f=&amp;quot; + Math.random(); // Break the cache, since we want to make sure we do save &lt;/font&gt;
&lt;p&gt;&lt;font face="courier new"&gt;            var req = Web.Network.createRequest(&lt;br&gt;                Web.Network.Type.XML&lt;br&gt;                , url&lt;br&gt;                , null&lt;br&gt;                , OnSetData); &lt;/font&gt;
&lt;p&gt;&lt;font face="courier new"&gt;            req.execute();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;OnSetData doesn't actually do anything, because saving is best-effort 
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new"&gt;function OnSetData(response)&lt;br&gt;{&lt;br&gt;    // Don't much care what happens here!&lt;br&gt;}&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font face=verd&gt;Retrieving data is a bit more involved.&lt;/font&gt; 
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new"&gt;function GetData()&lt;br&gt;{&lt;br&gt;    if (!m_isSpaces)&lt;br&gt;    {&lt;br&gt;        // Not on a Space.  Use the proper getPreference call&lt;br&gt;        m_tag = m_module.getPreference(&amp;quot;tag&amp;quot;);&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        // On a Space, so kick off a web request&lt;br&gt;        var url = // TODO: Build your URL here, wit your host key, gadget key, etc &lt;/font&gt; 
&lt;p&gt;&lt;font face="courier new"&gt;        var req = Web.Network.createRequest(&lt;br&gt;            Web.Network.Type.XML&lt;br&gt;            , url&lt;br&gt;            , null&lt;br&gt;            , OnGetData); &lt;/font&gt;
&lt;p&gt;&lt;font face="courier new"&gt;        m_retrievingData = true;&lt;br&gt;        req.execute();&lt;br&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;Note &amp;quot;&lt;font face="Courier New"&gt;m_retrievingData = true;&lt;/font&gt;&amp;quot;.  I'll get to that later. 
&lt;p&gt;OnGetData does the actual work of pulling out the retrieved value. 
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new"&gt;function OnGetData(response)&lt;br&gt;{&lt;br&gt;    if (response.readyState == 4 &amp;amp;&amp;amp; response.status == 200 &amp;amp;&amp;amp; response.responseXML != null)&lt;br&gt;    {&lt;br&gt;        var error = response.responseXML.selectSingleNode(&amp;quot;//error&amp;quot;); &lt;/font&gt;
&lt;p&gt;&lt;font face="courier new"&gt;        if (!error)&lt;br&gt;        {&lt;br&gt;            // Whee!&lt;br&gt;            m_yourValue = response.responseXML.selectSingleNode(&amp;quot;//get_pref&amp;quot;).text;&lt;br&gt;        }&lt;br&gt;        else&lt;br&gt;        {&lt;br&gt;            // uh ...&lt;br&gt;            m_yourValue = null;&lt;br&gt;        } &lt;/font&gt;
&lt;p&gt;&lt;font face="courier new"&gt;        m_retrievingData = false;&lt;br&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;In this example, I'm assuming that &amp;quot;&amp;lt;error /&amp;gt;&amp;quot; (with some information inside it) is the root of the returned document if something went wrong, and &amp;quot;&amp;lt;get_pref /&amp;gt;&amp;quot; (with a value inside) is the root of the returned document if everything went right. 
&lt;p&gt;Now, about that m_retrievingData variable.  These calls run asynchronously, but you may need the returned data to finish initialization of your gadget.  The m_retrievingData variable indicates that you're still waiting on this data to return, so you need to wait for that.  The simplest thing to do is to kick off a timer and check the state of m_retrievingData. 
&lt;p&gt;In this.initialize, add &amp;quot;setTimeout(OnLoadingWait, 100);&amp;quot; after you've completed all initialization that can be done without the retrieved data.  Here's OnLoadingWait: 
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;function OnLoadingWait()&lt;br&gt;{&lt;br&gt;    if (m_retrievingData)&lt;br&gt;    {&lt;br&gt;        // Still waiting on data&lt;br&gt;        setTimeout(OnLoadingWait, 100);&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        if (m_yourValue != null)&lt;br&gt;        {&lt;br&gt;            DoSomethingWithData();&lt;br&gt;        }&lt;br&gt;        else&lt;br&gt;        {&lt;br&gt;            if (m_isSpaces &amp;amp;&amp;amp; !m_isAuthor)&lt;br&gt;            {&lt;br&gt;                // No tag, but we can't let the viewer do anything about it&lt;br&gt;                // A failure message would be good&lt;br&gt;            }&lt;br&gt;            else&lt;br&gt;            {&lt;br&gt;                // No tag, but we're in author mode.  Give the author a way to set preferences&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;And you're done! 
&lt;h2&gt;Caveats&lt;/h2&gt;
&lt;p&gt;This approach works for me, but it may not work for you.  The Spaces team will surely heed the cries from the gadget developer community and provide a standard storage mechanism soon enough.  The code is not guaranteed to be bug free.  The code was written with the assumption that you're only storing or retrieving a single value at a time.  You could certainly modify your web service to handle multiple name/value pairs to minimize the number of web calls you have to make.  Code and ideas are provided as-is, and I'm in no way responsible for any bandwidth overage charges you may incur by using this method with a popular gadget.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Implementing+a+storage+mechanism+for+Spaces+gadgets&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Computers and Internet</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!142.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!142.entry</guid><pubDate>Tue, 10 Oct 2006 04:02:29 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!142/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!142.entry#comment</wfw:comment><dcterms:modified>2006-11-14T07:30:31Z</dcterms:modified></item><item><title>Building Gadgets for Spaces</title><link>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!140.entry</link><description>&lt;p&gt;&lt;strong&gt;Edit 2:&lt;/strong&gt;  The gadget finally got approved!  &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=33e9aed1-bd31-43b6-aaff-b8d9a1f39719&amp;amp;l=1"&gt;Go get it&lt;/a&gt;!
&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;:  The gadget's not yet approved, and it turns out that gadgets hosted anywhere besides the Windows Live Gallery are not publicly viewable.  That sucks.  The screenshots below give an idea of how the gadget looks.  Hopefully it'll get approved soon so others can see and use the gadget.
&lt;p&gt;Donavon, of &lt;a href="http://www.livegadgets.net/#home"&gt;LiveGadgets.net&lt;/a&gt; fame posted an &lt;a href="http://www.liveside.net/blogs/developer/archive/2006/10/03/Live-Spaces_3A00_-The-challenges-facing-gadget-developers.aspx"&gt;article&lt;/a&gt; up on &lt;a href="http://www.liveside.net/"&gt;LiveSide&lt;/a&gt; today covering issues we gadget developers face when targeting our gadgets for Spaces.  This was the kick in the butt I needed to finally write my own preference storage mechanism so &lt;a href="http://gallery.live.com/Author.aspx?a=e3befa48-3a1e-44b4-86ed-798746fbbb60&amp;amp;l=1"&gt;my own gadgets&lt;/a&gt; would be more useful here.  The first Spaces-targeted gadget is &amp;quot;&lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=33e9aed1-bd31-43b6-aaff-b8d9a1f39719&amp;amp;l=1"&gt;My Xbox 360 Favorite Games&lt;/a&gt;&amp;quot;.  As of this writing, the gadget is still in the approval queue.  You'll know it's available when the &amp;quot;Add to your space&amp;quot; button is available and the version number reads &amp;quot;1.3&amp;quot;.  You can see the gadget running from my development server above.
&lt;p&gt;Previously, the gadget used Live.com's standard preference storage mechanism.  That doesn't work on Spaces, so the gadget would load up to a screen asking you to input a gamertag.  Now only the page author (me, in this case) can set the gamertag, and viewers will either see what the author set (&amp;quot;Osty&amp;quot;, in this case), or a note saying that the page author hasn't yet configured the gadget.  Of course, if you're running the gadget on Live.com it will continue to use Live.com's preference storage mechanism.
&lt;p&gt;My main concern with the approach I've taken is that my storage solution may not scale if the gadget becomes popular.  Hopefully Spaces will step up and provide some sort of preference storage for gadgets soon.  Then again, I may be worried about nothing and it'll work flawlessly as currently implemented.
&lt;p&gt;Viewer mode.  Note the lack of an &amp;quot;Edit&amp;quot; link:
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJGk4HkQYESeKLlj-0t254rPxeRItl40fHryjc-Vt0cld3xw503c4GkrpcsrIXyvlni9v6gOVJVfQ0QnBehVBjHZiBdU9zZR_w8P1IpqTiT9Gw"&gt;&lt;img height=243 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJH_cIUjatvQiiRryAigjuB1jYM59YdC-fqN8CA0mfLt9foNO0J_yWwzouAQhbzmMoF_iFUT23Mo637xxfbm6EXTjld0AV-YwThYTp6L2vWNDA" width=402&gt;&lt;/a&gt; 
&lt;p&gt;Author mode.  The &amp;quot;Edit&amp;quot; link is back, which is how the author determines what Gamertag to show:
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJE6h5oBfXqMAYfuJuK5JtYYKRHzdKfN_wskwVCCtSm9zwsSgj0qHHrY4ZVyFrdsPlZCVHwFoG2CbKB14VSJqr8Eo_wJ7Rn4eJIxEgLBqmuVHQ"&gt;&lt;img height=244 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJENJyI1PX5CmKWg1LUDQjKWVk_KR0JSLnqPmAGshkhJwg3gz-yQioeu1znPPr_MO-jtR_wlukltGdIckiDamqlWK17nj2S3SSXmbJoOtvCrSQ" width=402&gt;&lt;/a&gt; 
&lt;p&gt;And finally, the edit view, where the author can change the Gamertag:
&lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJGCeVDv9QLlIMhXjflPIBMA14l36V1kZYpUmdbj_-nyLqlMFLZNtzTfVv4350nbb2Lb0D_0eytLz4X8IROS-bh7ZU2oQe_C2FoaMQuba34Kuw"&gt;&lt;img height=112 src="http://tk1.storage.msn.com/x1pGHpas_o48lnJWyfj-tJ5-e_z8MiGsVa8nW0ypXctkJG5pWw4KJ-1zX8kXTaQWPJKLn2HDEIAMmi6v8gxzwrD2w49e1KjiVPof5uCj26J9EuEmwjE4DeaW-6oSVyX26rOO9m8powK-1AyEmoBP3mULQ" width=402&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Building+Gadgets+for+Spaces&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><category>Computers and Internet</category><comments>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!140.entry#comment</comments><guid isPermaLink="true">http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!140.entry</guid><pubDate>Thu, 05 Oct 2006 05:45:50 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://everythingandnothing.spaces.live.com/blog/cns!759F0B3484575700!140/comments/feed.rss</wfw:commentRss><wfw:comment>http://everythingandnothing.spaces.live.com/Blog/cns!759F0B3484575700!140.entry#comment</wfw:comment><dcterms:modified>2006-10-10T02:51:27Z</dcterms:modified></item><item><title>Photo Album: Suzy's Miata, post-polish</title><link>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!178/</link><description>&lt;p&gt;Suzy&amp;#39;s Miata, post-polish&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;178&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;179"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;179&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 022&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;178&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;180"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;180&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 023&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;178&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;182"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;182&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 025&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Photo+Album%3a+Suzy's+Miata%2c+post-polish&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!178</guid><pubDate>Fri, 17 Nov 2006 03:54:19 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!178/feed.rss</cf:itemRSS><dcterms:modified>2006-11-17T03:54:19Z</dcterms:modified></item><item><title>Photo Album: Suzy's Miata, post-wax and clean interior</title><link>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!184/</link><description>&lt;p&gt;Suzy&amp;#39;s Miata, post-wax and clean interior&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;184&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;185"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;185&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 026&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;184&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;186"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;186&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 027&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;184&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;187"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;187&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 028&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Photo+Album%3a+Suzy's+Miata%2c+post-wax+and+clean+interior&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!184</guid><pubDate>Sun, 29 Oct 2006 01:04:36 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!184/feed.rss</cf:itemRSS><dcterms:modified>2006-10-29T01:04:36Z</dcterms:modified></item><item><title>Photo Album: Suzy's Miata, post-paint cleaner</title><link>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!168/</link><description>&lt;p&gt;Suzy&amp;#39;s Miata, post-paint cleaner&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;168&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;174"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;174&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 017&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;168&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;175"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;175&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 018&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;168&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;176"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;176&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 019&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;168&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;177"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;177&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 020&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Photo+Album%3a+Suzy's+Miata%2c+post-paint+cleaner&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!168</guid><pubDate>Sun, 29 Oct 2006 01:02:16 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!168/feed.rss</cf:itemRSS><dcterms:modified>2006-10-29T01:02:16Z</dcterms:modified></item><item><title>Photo Album: Suzy's Miata, post-wash</title><link>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!167/</link><description>&lt;p&gt;Suzy&amp;#39;s Miata, post-wash&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;167&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;169"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;169&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 011&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;167&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;170"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;170&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 012&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;167&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;171"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;171&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 013&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;167&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;172"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;172&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 014&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;167&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;173"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;173&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 015&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Photo+Album%3a+Suzy's+Miata%2c+post-wash&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!167</guid><pubDate>Sun, 29 Oct 2006 01:01:31 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!167/feed.rss</cf:itemRSS><dcterms:modified>2006-10-29T01:01:31Z</dcterms:modified></item><item><title>Photo Album: Suzy's Miata, pre-wash (starting state)</title><link>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!157/</link><description>&lt;p&gt;Suzy&amp;#39;s Miata, pre-wash &amp;#40;starting state&amp;#41;&lt;/p&gt;&lt;div&gt;&lt;table cellspacing="0" border="0"&gt;&lt;tr height="8"&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;158"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;158&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 001&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;159"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;159&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 002&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;160"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;160&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 003&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;161"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;161&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 004&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;162"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;162&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 005&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;163"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;163&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 006&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;164"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;164&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 007&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;165"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;165&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 008&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;p&gt;&lt;a href="http://everythingandnothing.spaces.live.com&amp;#47;photos&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;157&amp;#47;cns&amp;#33;759F0B3484575700&amp;#33;166"&gt;&lt;img src="http://storage.live.com&amp;#47;items&amp;#47;759F0B3484575700&amp;#33;166&amp;#58;thumbnail" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Miata 009&lt;/p&gt;&lt;/td&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Photo+Album%3a+Suzy's+Miata%2c+pre-wash+(starting+state)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!157</guid><pubDate>Sun, 29 Oct 2006 01:00:09 GMT</pubDate><msn:type>photoalbum</msn:type><live:type>photoalbum</live:type><live:typelabel>Photo album</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/photos/cns!759F0B3484575700!157/feed.rss</cf:itemRSS><dcterms:modified>2006-10-29T01:00:09Z</dcterms:modified></item><item><title>Custom List: Gadget Ideas</title><link>http://everythingandnothing.spaces.live.com/Lists/cns!759F0B3484575700!143</link><description>&lt;p&gt;Gadget Ideas&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://soapbox.msn.com"&gt;Soapbox gadget&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Done.  http&amp;#58;&amp;#47;&amp;#47;gallery.live.com&amp;#47;liveItemDetail.aspx&amp;#63;li&amp;#61;d906a4b9-9cf0-4bc6-9c9e-909a5ddfa823&amp;#38;l&amp;#61;1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://dev.hotornot.com&amp;#47;wiki&amp;#47;Main_Page"&gt;HotOrNot update&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Done.&amp;#10;Add voting support for the HotOrNot gadget.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Custom+List%3a+Gadget+Ideas&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!143</guid><pubDate>Sun, 18 Feb 2007 10:17:34 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/Lists/cns!759F0B3484575700!143/feed.rss</cf:itemRSS><dcterms:modified>2007-02-18T10:17:34Z</dcterms:modified></item><item><title>Custom List: My Stuff</title><link>http://everythingandnothing.spaces.live.com/Lists/cns!759F0B3484575700!107</link><description>&lt;p&gt;My Stuff&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.daishar.com&amp;#47;blog"&gt;My real blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://gallery.live.com&amp;#47;Author.aspx&amp;#63;a&amp;#61;e3befa48-3a1e-44b4-86ed-798746fbbb60&amp;#38;l&amp;#61;1"&gt;My Web Gadgets&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Gadgets I&amp;#39;ve written for Live.com and Spaces&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8475505343921084160&amp;page=RSS%3a+Custom+List%3a+My+Stuff&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=everythingandnothing.spaces.live.com&amp;amp;GT1=everythingandnothing"&gt;</description><guid isPermaLink="false">cns!759F0B3484575700!107</guid><pubDate>Wed, 11 Oct 2006 08:25:02 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://everythingandnothing.spaces.live.com/Lists/cns!759F0B3484575700!107/feed.rss</cf:itemRSS><dcterms:modified>2006-10-11T08:25:02Z</dcterms:modified></item></channel></rss>