<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>this.Reflect();</title>
    <description>The technology blog of Donn Felker</description>
    <link>http://blog.donnfelker.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://blog.donnfelker.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Donn Felker</dc:creator>
    <dc:title>this.Reflect();</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/donnfelker" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>A True Life Git Story …</title>
      <description>&lt;p&gt;Recently I took a trip to South Carolina (which was a ton of fun). We ended up in a place which isn't known for its high speed internet … and a WIFI signal could not be identified for nearly nearly 15 miles (I know because I had a WIFI detector enabled on my G1 when we drove around). I needed to do some development over the week, but this development was a major change to some software I was writing. I needed the ability to branch, merge, check-in, revert, etc _without_ being connected to the internet, because I knew it would be over a week before I’d re-connect. Without this ability I’d have to create manual copies of my files, perform manual diffs of the files and manually merge/revert … aka: shoot myself in the foot. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="71px-Git-logo.svg" border="0" alt="71px-Git-logo.svg" align="right" src="http://blog.donnfelker.com/image.axd?picture=71px-Git-logo.svg.png" width="71" height="26" /&gt;Luckily, I had &lt;a href="http://git-scm.com/" target="_blank"&gt;GIT&lt;/a&gt; installed. If you don’t know what it is, click on the link on the left. GIT enabled me to create a repository of my current work, (I was working with SVN previously for the project) branch for a new large feature and make frequent check-in’s throughout my development. I was able to create two new versions of my product on separate branches, all while maintaining a version history with full revert capability (which I ended up using a few times). &lt;/p&gt;  &lt;p&gt;Once I was connected back at home, I was able to submit a pull request up to a &lt;a href="http://www.github.com" target="_blank"&gt;GitHub.com&lt;/a&gt; private repository and pull the branched changes up (that’s not all of the steps I did, but this is what the end result pretty much came down to). &lt;/p&gt;  &lt;p&gt;From here on out, I’m pretty much sold on the features that GIT comes with &lt;a href="http://en.wikipedia.org/wiki/Out-Of-Box_Experience" target="_blank"&gt;OOB&lt;/a&gt; as it provided the ability to work remotely, completely disconnected with a full &lt;a href="http://en.wikipedia.org/wiki/Version_control_system" target="_blank"&gt;VCS&lt;/a&gt; at my fingertips (which I used extensively). &lt;/p&gt;  &lt;p&gt;Mark me down as another GIT convert. &lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/A-True-Life-Git-Story-e280a6.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/A-True-Life-Git-Story-e280a6.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=d6e16075-5e2f-4209-8c7b-b612d949e05c</guid>
      <pubDate>Tue, 07 Jul 2009 14:36:15 -0500</pubDate>
      <category>SCM</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=d6e16075-5e2f-4209-8c7b-b612d949e05c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=d6e16075-5e2f-4209-8c7b-b612d949e05c</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/A-True-Life-Git-Story-e280a6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=d6e16075-5e2f-4209-8c7b-b612d949e05c</wfw:commentRss>
    </item>
    <item>
      <title>Running Your Android App on a Device</title>
      <description>&lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=androidlogo.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="androidlogo" border="0" alt="androidlogo" align="left" src="http://blog.donnfelker.com/image.axd?picture=androidlogo_thumb.png" width="240" height="240" /&gt;&lt;/a&gt; I’m impressed with the &lt;a href="http://developer.android.com/guide/" target="_blank"&gt;Android Dev Guide&lt;/a&gt;. It’s fairly comprehensive guide, however, I can say from personal experience that the Dev Guide is not complete in all areas. &lt;/p&gt;  &lt;p&gt;One key example is the section on &lt;a href="http://developer.android.com/guide/developing/device.html" target="_blank"&gt;developing on a device&lt;/a&gt;. I followed the instructions exactly. The last couple of lines state the following: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;You can verify that your device is connected by executing adb devices from your SDK tools/ directory. If connected, you'll see the device name listed as a &amp;quot;device.&amp;quot; &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;If using Eclipse, select run or debug as usual. You will be presented with a Device Chooser dialog that lists the available emulator(s) and connected device(s). Select the device to install and run the application there.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So, I do exactly that: &lt;/p&gt;  &lt;p&gt;As you can see, my device was found. &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_12.png" width="326" height="133" /&gt; &lt;/p&gt;  &lt;p&gt;I use Eclipse for my Android development so I hit Run and I got this window: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_17.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_12.png" width="358" height="358" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;No where in there do I see my device. The docs state you’ll see a “Device Chooser”. Unfortunately I did not. I got a “Run As” Dialog. &lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;The Issue&lt;/h3&gt;  &lt;p&gt;Being that I’m not a day to day Eclipse/Android developer I was at a loss for what to do now. After a few hours of &lt;strike&gt;poking&lt;/strike&gt; fumbling around I traced the problem back to a Run Configuration in Eclipse. &lt;/p&gt;  &lt;p&gt;Here’s how to fix it. Open the Run Configurations: &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_14.png" width="397" height="251" /&gt; &lt;/p&gt;  &lt;p&gt;Once this Window Opens, click on the Target Tab. Then select the “manual” option and then click run (as shown below). &lt;/p&gt;  &lt;p&gt;(Click for larger image).&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_15.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_10.png" width="244" height="196" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now click “RUN” and you’ll get a device chooser like this: &lt;/p&gt;  &lt;p&gt;(click for larger image)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_11.png" width="244" height="183" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Select this device and click “Ok”. You’re app will now be installed on your device. &lt;/p&gt;  &lt;p&gt;Now you’re back to testing, this time on a real device, not on an emulator. &lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Final Notes&lt;/h3&gt;  &lt;p&gt;&lt;em&gt;You’re going to want to test your app on an actual device&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;For my current personal project I’m using the G1’s built in accelerometer. I’ve found some simulators out there for the accelerometer and they have worked great, but I still need to see what the app will do on an actual device. Installing it on an actual device detailed a couple of critical issues that the emulator did not illustrate. I’d say, from personal experience, the emulator is the perfect example of the &lt;a href="http://en.wikipedia.org/wiki/Pareto_principle" target="_blank"&gt;Pareto principle&lt;/a&gt; as it fulfills the 80/20 rule. 80'% of the features you’ll use in the G1 can be effectively simulated in the emulator. The other 20%, you’ll need to test on an actual device as well as on the emulator (as the emulator makes development super easy).&lt;/p&gt;  &lt;p&gt;I will always test my app on an actual device to see what the user experience is going to be like, I advise you do the same. &lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/Running-Your-Android-App-on-a-Device.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/Running-Your-Android-App-on-a-Device.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=0147329e-a767-4048-9f9e-9db11dd25406</guid>
      <pubDate>Mon, 29 Jun 2009 08:30:03 -0500</pubDate>
      <category>Mobile</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=0147329e-a767-4048-9f9e-9db11dd25406</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=0147329e-a767-4048-9f9e-9db11dd25406</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/Running-Your-Android-App-on-a-Device.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=0147329e-a767-4048-9f9e-9db11dd25406</wfw:commentRss>
    </item>
    <item>
      <title>Could Not Import Contacts Into G1 From CSV…</title>
      <description>&lt;p&gt;This is one of those blog posts that simply exist for the simple reason that if I run into this issue again I can find it later (and hopefully someone else will find it and it will help them too). &lt;/p&gt;  &lt;p&gt;I recently got a new G1 and I exported my contacts into CSV from my old phone. The G1 syncs its contacts with the Google account that its linked to. You can log into the contact manager via Gmail (click on contacts on the left hand side). From there you can import a csv file. Their docs say something like this: &lt;em&gt;We will import almost any csv file. The system will figure out the fields and place them into the appropriate area. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;However, this isn't quite true. If you try this, you’ll see that the names and email addresses come over fine, but the Phone field shows up in the “notes”. This isn't so helpful on a G1. I cant use the notes field to SMS or call someone. After a few&amp;#160; hours of trying to figure out why my phone numbers were not coming over as “Phone” or “mobile” or anything. I found &lt;a href="http://www.google.com/support/forum/p/gmail/thread?tid=72588897e1471a2b&amp;amp;hl=en" target="_blank"&gt;this post&lt;/a&gt; (which I’m copying and pasting the good stuff below just in case this help goes away) which outlines the reason. Read below to see how to fix this issue. &lt;/p&gt;  &lt;p&gt;----------------------- Original Post----------------------------&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The list of fields are below at Note #1. But, in my experimentation to make this structure work, I found some strange and annoying quirks.       &lt;br /&gt;1) The two Description fields (Section 1 - Description, Section 2 - Description) must be populated with the word Personal (initial cap counts!) on each and every row if you want the data in the 10 fields that follow to be included in your Import. If you have no data in the Section 1 - Description field, then the data in that row following will not be imported AND the data in the fields following Section 2 - Description will be imported instead if the Section 2 - Description field is populated with Personal. If you put another word in, rather than Personal, the data will import, but each field in the row will be appended with that word. So, if you use the word Business, your data for the Google Contact for that row will be included, but renamed (i.e., (213) 555-1212 Business / mobile). As a result of this, when iPhone tries to upload this field, it will not be recognized as a phone number and will be left out or included in the Note section.        &lt;br /&gt;2) If you remove any fields (columns) from this format, the Google will only look for and populate: name, email addresses and notes.        &lt;br /&gt;3) Most contacts CSV formats separate First Name and Last Name. Not Google's. You have to concatenate (just learned this function) the two fields into one, first. (See below Note B.)        &lt;br /&gt;4) If you are importing a lot of contacts (I have &amp;gt;2500), it takes Google a while to update the Contact Manager screen. Even though it says it's done, there is nothing there. In my case, I figured 2500 was too much, so I tried importing again with a new CSV file with only 400 records. The import of the 400, five minutes later, was rejected because, it turns out, the 2500 were there all the time.        &lt;br /&gt;That's what I learned so far. Good luck to everyone.        &lt;br /&gt;--------------------------        &lt;br /&gt;Note A:        &lt;br /&gt;Name, E-mail, Notes, Section 1 - Description, Section 1 - Email, Section 1 - IM, Section 1 - Phone, Section 1 - Mobile, Section 1 - Pager, Section 1 - Fax, Section 1 - Company, Section 1 - Title, Section 1 - Other, Section 1 - Address, Section 2 - Description, Section 2 - Email, Section 2 - IM, Section 2 - Phone, Section 2 - Mobile, Section 2 - Pager, Section 2 - Fax, Section 2 - Company, Section 2 - Title, Section 2 - Other, Section 2 - Address        &lt;br /&gt;Note B:        &lt;br /&gt;I found this on Dave Jeyes blog (http://theregoesdave.com/ &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;2008/10/17/importing-contacts-into-gmail-guide-to-google-contact-csv-fields/)&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Once you open the CSV file in Excel, you can write a formula to combine the first and last name then paste them into the correct column in this spreadsheet.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;First create a column in your Outlook Export for the combined fields. Then write a function that looks something like this:&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;=CONCATENATE(F1, ” “, L1)&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;F1 should be whatever field the first name is in and L1 should be whatever field the last name is in. The part in the middle with a space between the question marks will add a space between the two. Then you can copy this field and paste it down the rest of the column to perform the same function on the rest of your contacts. Now copy this entire column and then right click on the column in my template under the Name column and select ‘Paste Special’ then ‘Values’ and it should automate it for you.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;---------------------------End-------------------------------------&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Simply put, make sure you have Section 1 Description set properly and things will work out fine for you. They did for me once I populated this field. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Google should fix their help. I consider myself to be a fairly technical person, but this took way too much time. If my mother was doing this she’d be lost. Big UX fail there.&lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/Could-Not-Import-Contacts-Into-G1-From-CSVe280a6.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/Could-Not-Import-Contacts-Into-G1-From-CSVe280a6.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=6f0bcfe8-cb2e-4e1d-bd85-6ea3f6c1690b</guid>
      <pubDate>Fri, 26 Jun 2009 12:49:39 -0500</pubDate>
      <category>Mobile</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=6f0bcfe8-cb2e-4e1d-bd85-6ea3f6c1690b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=6f0bcfe8-cb2e-4e1d-bd85-6ea3f6c1690b</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/Could-Not-Import-Contacts-Into-G1-From-CSVe280a6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=6f0bcfe8-cb2e-4e1d-bd85-6ea3f6c1690b</wfw:commentRss>
    </item>
    <item>
      <title>Twin Cities Pragmatic/ALT.NET Beer Tomorrow</title>
      <description>&lt;p&gt;Tomorrow we have another Twin Cities Pragmatic Beer event at the Herkimer in Minneapolis (Uptown). Another name for this same event is the Twin Cities ALT.NET Beers. For more information on where the Herkimer is and what time things are going to get going, see the site &lt;a href="http://www.twincitiespragmaticbeer.com" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;See you there. &lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/Twin-Cities-PragmaticALTNET-Beer-Tomorrow.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/Twin-Cities-PragmaticALTNET-Beer-Tomorrow.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=29133484-dda3-4fcc-b5d1-b65e8b9c78dc</guid>
      <pubDate>Wed, 24 Jun 2009 09:53:02 -0500</pubDate>
      <category>Events</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=29133484-dda3-4fcc-b5d1-b65e8b9c78dc</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=29133484-dda3-4fcc-b5d1-b65e8b9c78dc</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/Twin-Cities-PragmaticALTNET-Beer-Tomorrow.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=29133484-dda3-4fcc-b5d1-b65e8b9c78dc</wfw:commentRss>
    </item>
    <item>
      <title>LINQ: Single() vs First()</title>
      <description>&lt;p&gt;Continuing on my path to LINQ greatness, I want to cover another topic that some people get confused over: LINQ’s &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx" target="_blank"&gt;First()&lt;/a&gt; vs. &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx" target="_blank"&gt;Single()&lt;/a&gt;. Both perform a particular task for us, but just by looking at the name you’d never know which one performed the action that you expected. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx" target="_blank"&gt;First()&lt;/a&gt; returns the first element in a sequence … &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx" target="_blank"&gt;Single&lt;/a&gt;() returns the _only_ occurrence of the element in the sequence … &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;… Beware: They Throw Exceptions&lt;/h4&gt;  &lt;p&gt;One _very_important_ thing to be aware of is that these two functions throw exceptions if they do not find what they are looking for. &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx" target="_blank"&gt;First&lt;/a&gt;() will throw if it cannot find the first matching value, &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx" target="_blank"&gt;Single&lt;/a&gt;() will throw if it cannot find the value and if there are more than one matching element in the input sequence. Therefore they have sister functions called &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx" target="_blank"&gt;FirstOrDefault&lt;/a&gt;() and &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx" target="_blank"&gt;SingleOrDefault&lt;/a&gt;(). &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx" target="_blank"&gt;FirstOrDefault&lt;/a&gt;() method will search for an element in the sequence and if the first requested element is not found (that matches the &lt;a href="http://en.wikipedia.org/wiki/Functor" target="_blank"&gt;functor&lt;/a&gt;) the function will return the default value (usually null if a reference type). &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx" target="_blank"&gt;SingleOrDefault&lt;/a&gt;() method will search for a single occurrence of the requested element that matches the functor. If the element is not found it will return the default value (usually null if a reference type), OR if the method finds more than 1 result matching the functor this method will throw an InvalidOperationException. The reason this method will throw is because the input sequence contains more than one matching element. Single follows the&amp;#160; “one” and “only one” return mechanism. If more than one element matches your predicate, this method will throw. &lt;/p&gt;  &lt;p&gt;All the combinations of throw/success can get kind of confusing and is best illustrated with a simple table. &lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;First vs Default Success/Throw Matrix&lt;/h4&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="500"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="132"&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;strong&gt;Success When … &lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="166"&gt;&lt;strong&gt;Throws When …&lt;/strong&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="132"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx" target="_blank"&gt;First&lt;/a&gt;()&lt;/td&gt;        &lt;td valign="top" width="200"&gt;1..* – elements match&lt;/td&gt;        &lt;td valign="top" width="166"&gt;0 elements match&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="132"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx" target="_blank"&gt;FirstOrDefault&lt;/a&gt;()&lt;/td&gt;        &lt;td valign="top" width="200"&gt;0..* – elements match&lt;/td&gt;        &lt;td valign="top" width="166"&gt;(does not throw)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="132"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx" target="_blank"&gt;Single&lt;/a&gt;()&lt;/td&gt;        &lt;td valign="top" width="200"&gt;1..1 – one element matches&lt;/td&gt;        &lt;td valign="top" width="166"&gt;0 | &amp;gt;1 - elements match&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="132"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx" target="_blank"&gt;SingleOrDefault&lt;/a&gt;()&lt;/td&gt;        &lt;td valign="top" width="200"&gt;0..1 – Elements match&lt;/td&gt;        &lt;td valign="top" width="166"&gt;&amp;gt;1 – elements match&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h4&gt;Conclusion&lt;/h4&gt;  &lt;p&gt;The end goal here is to be aware of what you’re doing with LINQ. All in all, be careful. &lt;/p&gt;  &lt;p&gt;If you use “First” be aware that it WILL thrown an exception if the element is not found. This can be a simple mistake. Example - while unit testing you may set up a List&amp;lt;Orders&amp;gt; to use for testing. You ensure your code works for valid orders but perhaps you forgot to test the code with an empty list. Doing this would have caught your error because the First() method would have told you right away by throwing exception. &lt;/p&gt;  &lt;p&gt;Think about how you want to handle your use cases. With a null, or an exception handling routine? It’s up to you as null/exception handling is a different debate all together. I hope this helped some of you out there.&lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/LINQ-Single()-vs-First().aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/LINQ-Single()-vs-First().aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=1c575b6a-761d-4e3f-b495-9add65d0a9e9</guid>
      <pubDate>Tue, 23 Jun 2009 09:57:31 -0500</pubDate>
      <category>.NET</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=1c575b6a-761d-4e3f-b495-9add65d0a9e9</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=1c575b6a-761d-4e3f-b495-9add65d0a9e9</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/LINQ-Single()-vs-First().aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=1c575b6a-761d-4e3f-b495-9add65d0a9e9</wfw:commentRss>
    </item>
    <item>
      <title>LINQ: Any() vs. Count()</title>
      <description>&lt;p&gt;In most code that you find that uses lists you will find something like this:&amp;#160; &lt;/p&gt;  &lt;pre class="csharp" name="code"&gt;if(products.Count() &amp;gt; 0)
            {
                // Do stuff
            }&lt;/pre&gt;

&lt;p&gt;Personally, I’ve seen this literally thousands of times. While this works and gets the job done, there is one issue with this method. It enumerates the entire enumerable collection. What if you have 10,000 items in your collection? What if that collection has a bunch&amp;#160; of other nested LINQ queries that must be executed prior to the actual count can be evaluated? &lt;/p&gt;

&lt;p&gt;A simpler way to identify if the sequence contains any elements is to use the .Any() method. From &lt;a href="http://msdn.microsoft.com/en-us/library/bb337697.aspx" target="_blank"&gt;the .Any() MSDN article&lt;/a&gt;: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“&lt;em&gt;Determines whether a sequence contains any elements.” 
      &lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Later in the article it states: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;“The enumeration of source (&lt;/em&gt;the source enumeration) &lt;em&gt;is stopped as soon as the result can be determined.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In English .. the Any() method&amp;#160; stops enumerating the enumeration as soon as it finds the first element. This is the same for &lt;a href="http://msdn.microsoft.com/en-us/library/bb534972.aspx" target="_blank"&gt;the overload&lt;/a&gt; of the function as well. &lt;/p&gt;

&lt;p&gt;Therefore you could do this: &lt;/p&gt;

&lt;pre class="csharp" name="code"&gt;var products = productService().GetProducts();
            if(products.Any())
            {
                // Do Stuff
            }&lt;/pre&gt;

&lt;p&gt;… and you would get the same effect as Count() without the overhead of processing the entire enumeration. &lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/LINQ-Any()-vs-Count().aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/LINQ-Any()-vs-Count().aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=b37287bb-8c1b-4986-ae9e-ea5de9d60acf</guid>
      <pubDate>Mon, 22 Jun 2009 10:23:00 -0500</pubDate>
      <category>.NET</category>
      <category>Productivity</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=b37287bb-8c1b-4986-ae9e-ea5de9d60acf</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=b37287bb-8c1b-4986-ae9e-ea5de9d60acf</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/LINQ-Any()-vs-Count().aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=b37287bb-8c1b-4986-ae9e-ea5de9d60acf</wfw:commentRss>
    </item>
    <item>
      <title>Beginning Google Android Development</title>
      <description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="AndroidPhone" border="0" alt="AndroidPhone" align="left" src="http://blog.donnfelker.com/image.axd?picture=AndroidPhone.jpg" width="237" height="240" /&gt; My wife and &lt;a href="http://www.bigjwalk.com" target="_blank"&gt;good friend&lt;/a&gt; have a G1 and I’m absolutely in love with the damn thing. I plan on getting one soon, however I’ve read a lot and some people are saying to wait for the &lt;a href="http://www.engadget.com/2009/06/16/wsj-t-mobiles-mytouch-3g-coming-this-summer/" target="_blank"&gt;MyTouch&lt;/a&gt;. However, this does not prevent me from getting my hands dirty with some Android development. &lt;/p&gt;  &lt;p&gt;Since I’m a .NET guy I thought it would be fun to see what the experience would be like to develop a simple app. A few things that I wanted accomplish during this little project: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use &lt;a href="http://www.eclipse.org" target="_blank"&gt;Eclipse&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Use the &lt;a href="http://developer.android.com/guide/developing/tools/adt.html" target="_blank"&gt;ADT&lt;/a&gt; for Eclipse &lt;/li&gt;    &lt;li&gt;Test with an Emulator (Android SDK provides one for free, emulator.exe) &lt;/li&gt;    &lt;li&gt;Use the &lt;a href="http://en.wikipedia.org/wiki/Accelerometer" target="_blank"&gt;Accelerometer&lt;/a&gt; in Android &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The fun part being the Accelerometer stuff. If you don’t know what one is, here’s a Wikipedia snippet from the &lt;a href="http://en.wikipedia.org/wiki/Accelerometer" target="_blank"&gt;accelerometer article&lt;/a&gt;: &lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;An accelerometer measures the acceleration it experiences relative to freefall. This is equivalent to inertial acceleration minus the local gravitational acceleration, where inertial acceleration is understood in the Newtonian sense of acceleration with respect to a fixed reference frame, which the Earth is often considered to approximate.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cool, huh? Basically, I want to move the phone and events should fire when certain velocities and inertias are achieved. This should be a good math based challenge for me. Calculating positive and negative accelerations, gravity, etc. Getting this to work is something I plan on doing over the next few days. &lt;/p&gt;  &lt;p&gt;So far after playing with it a bit I’ve found that the best place to start is truly with the Android SDK’s Hello World. I’m impressed with the documentation and how to information in the Hello World. It has really helped. &lt;a href="http://developer.android.com/guide/tutorials/hello-world.html" target="_blank"&gt;Check it out here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;If you’re interested in following along my Android journey, I’ll probably be posting my in depth findings here and my snippets/comments on the experience on my &lt;a href="http://www.twitter.com/donnfelker" target="_blank"&gt;twitter&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/Beginning-Google-Android-Development.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/Beginning-Google-Android-Development.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=074030e5-0b9b-4457-ba8f-4ec504b9bab0</guid>
      <pubDate>Fri, 19 Jun 2009 08:12:50 -0500</pubDate>
      <category>Mobile</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=074030e5-0b9b-4457-ba8f-4ec504b9bab0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=074030e5-0b9b-4457-ba8f-4ec504b9bab0</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/Beginning-Google-Android-Development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=074030e5-0b9b-4457-ba8f-4ec504b9bab0</wfw:commentRss>
    </item>
    <item>
      <title>Hangin’ in the Lounge</title>
      <description>&lt;p&gt;&lt;a href="http://www.theloungenet.com" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" title="LoungeLogo" border="0" alt="LoungeLogo" align="right" src="http://blog.donnfelker.com/image.axd?picture=LoungeLogo_1.png" width="240" height="63" /&gt;&lt;/a&gt; I’ve death with numerous different advertisers and such over the few years I’ve had my blog. Just recently I spoke with the guys over at the &lt;a href="http://www.theloungenet.com/" target="_blank"&gt;Lounge&lt;/a&gt; and we decided to work together. I needed a low maintenance advertising system that could help with the monthly costs of the blog, they needed another person to join their &lt;a href="http://www.theloungenet.com/rooms/DOTNETSP" target="_blank"&gt;Small Publishers&lt;/a&gt; network (because lets face it… I’m no &lt;a href="http://www.hanselman.com" target="_blank"&gt;hanselborg&lt;/a&gt;, yet).&amp;#160; :) Therefore we decided to join up and make the Lounge my exclusive graphical advertiser. &lt;/p&gt;  &lt;p&gt;From the famous words of SLC Punk.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“I didn’t sell out, son. I bought in.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I personally feel that these ads are much more respectable and are a huge improvement compared to the huge banners that I’ve previously had (as they did all sorts of non-sense, IMO). Hopefully this makes the reading experience less like a 1987 ad party rave with candy necklaces. Enjoy&lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/Hangine28099-in-the-Lounge.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/Hangine28099-in-the-Lounge.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=490fcce9-7f9a-4810-b3df-7b10ddcc9960</guid>
      <pubDate>Thu, 18 Jun 2009 17:15:25 -0500</pubDate>
      <category>Misc</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=490fcce9-7f9a-4810-b3df-7b10ddcc9960</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=490fcce9-7f9a-4810-b3df-7b10ddcc9960</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/Hangine28099-in-the-Lounge.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=490fcce9-7f9a-4810-b3df-7b10ddcc9960</wfw:commentRss>
    </item>
    <item>
      <title>New DimeCast: Exploring Expressions with Spark</title>
      <description>&lt;p&gt;I have another DimeCast that went live this morning. This one is entitled “&lt;a href="http://www.dimecasts.net/Casts/CastDetails/119" target="_blank"&gt;Exploring Expressions with Spark&lt;/a&gt;.”. &lt;/p&gt;  &lt;p&gt;Here’s what we cover:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;”&lt;em&gt;We are going to take a look at the various different ways you can use Expressions with the Spark View engine. We are going to review simply scenarios such as math based expressions and move up to looking at nested if-then-else statements.&lt;/em&gt;” &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://www.dimecasts.net/Casts/CastDetails/119" target="_blank"&gt;Click here to watch the episode&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/New-DimeCast-Exploring-Expressions-with-Spark.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/New-DimeCast-Exploring-Expressions-with-Spark.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=2d52b35e-f6f1-4fc4-a4f4-121c9ad34b89</guid>
      <pubDate>Thu, 18 Jun 2009 07:44:38 -0500</pubDate>
      <category>MVC</category>
      <category>ASP.NET</category>
      <category>ALT.NET</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=2d52b35e-f6f1-4fc4-a4f4-121c9ad34b89</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=2d52b35e-f6f1-4fc4-a4f4-121c9ad34b89</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/New-DimeCast-Exploring-Expressions-with-Spark.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=2d52b35e-f6f1-4fc4-a4f4-121c9ad34b89</wfw:commentRss>
    </item>
    <item>
      <title>ASP.NET MVC without Installing the MVC Bits</title>
      <description>&lt;p&gt;I was recently was helping out a collague with an ASP.NET MVC problem and I was given a link to a solution. I opened it and got this message: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_6.png" width="477" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Which ends up giving you the following in the solution explorer. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_7.png" width="290" height="96" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The reason I’m getting this is because I never installed the ASP.NET MVC bits, well, actually that's a lie. I have them, but I never installed the full ASP.NET MVC package. I unzipped the MSI with the following command prompt: &lt;/p&gt;  &lt;p&gt;#&amp;gt; msiexec –a PathToMsi.msi &lt;/p&gt;  &lt;p&gt;This will drop the MSI contents your output to your C:\ drive. Here’s the help window for the msiexec (app click for larger): &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_8.png" width="220" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you’re like me, and have the bits local, then this can be a pain. Again, the underlying reason is I did not install the MSI which contains a project template which this project is using. Its actually using a particular ProjectTypeGuid in the csproj file. This guid is: &lt;/p&gt;  &lt;p&gt;603c0e0b-db56-11dc-be95-000d561079b0&lt;/p&gt;  &lt;p&gt;This tells Visual Studio that this project is an ASP.NET MVC file. To open this project in Visual Studio, remove this guid. &lt;/p&gt;  &lt;p&gt;Change the project file from this: &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre class="xml" name="code"&gt;&lt;projecttypeguids&gt;{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}&lt;/projecttypeguids&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;…to this…&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&lt;projecttypeguids&gt;{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}&lt;/projecttypeguids&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Now re-open and you’ll see the project loaded successfully. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.donnfelker.com/image.axd?picture=image_11.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.donnfelker.com/image.axd?picture=image_thumb_9.png" width="259" height="331" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The only thing you’ll have to do is fix your references in your project as they will probably be broken. Point the references back to the ASP.NET MVC binaries stored locally on your machine. &lt;/p&gt;</description>
      <link>http://blog.donnfelker.com/post/ASPNET-MVC-without-Installing-the-MVC-Bits.aspx</link>
      <author>Donn</author>
      <comments>http://blog.donnfelker.com/post/ASPNET-MVC-without-Installing-the-MVC-Bits.aspx#comment</comments>
      <guid>http://blog.donnfelker.com/post.aspx?id=bc7b8e26-c788-4658-98e1-758ba8c73f62</guid>
      <pubDate>Mon, 15 Jun 2009 21:56:13 -0500</pubDate>
      <category>ASP.NET</category>
      <category>ALT.NET</category>
      <dc:publisher>Donn</dc:publisher>
      <pingback:server>http://blog.donnfelker.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.donnfelker.com/post.aspx?id=bc7b8e26-c788-4658-98e1-758ba8c73f62</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://blog.donnfelker.com/trackback.axd?id=bc7b8e26-c788-4658-98e1-758ba8c73f62</trackback:ping>
      <wfw:comment>http://blog.donnfelker.com/post/ASPNET-MVC-without-Installing-the-MVC-Bits.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.donnfelker.com/syndication.axd?post=bc7b8e26-c788-4658-98e1-758ba8c73f62</wfw:commentRss>
    </item>
  </channel>
</rss>
