<?xml version="1.0" encoding="utf-8"?><rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Spontaneous Publicity</title><link>http://azure.spontaneouspublicity.com/feed</link><description>The new phone book is here.</description><item><link>http://azure.spontaneouspublicity.com/introducing-stacky-a-net-client-library-for-the-stackoverflow-api</link><title>Introducing Stacky: A .Net Client Library for the StackOverflow API</title><description>&lt;p&gt;Looking back at the &lt;a href="http://googlecharts.codeplex.com/"&gt;various&lt;/a&gt; &lt;a href="http://tagchimp.codeplex.com/"&gt;open&lt;/a&gt; &lt;a href="http://smugmug.codeplex.com/"&gt;source&lt;/a&gt; &lt;a href="http://yuidotnet.codeplex.com/"&gt;projects&lt;/a&gt; I have started, I am starting to see a pattern. When I use a REST API provided by a given web site, I end up writing a full-fledged client for that library if one doesn’t exist. There is something I really enjoy about writing wrapper libraries.&lt;/p&gt;

&lt;p&gt;In any event, when the &lt;a href="http://blog.stackoverflow.com/2010/03/stack-overflow-api-private-beta-starts/"&gt;stackoverflow.com api beta&lt;/a&gt; was announced, I decided to play around with it. One thing lead to another and I ended up implementing a full client library. That is where &lt;a href="http://stacky.codeplex.com/"&gt;Stacky&lt;/a&gt; was born (it was originally called &lt;a href="http://stackoverflow.codeplex.com/"&gt;Stackoverflow.Net&lt;/a&gt; but due to some &lt;a href="http://stackoverflow.com/legal/trademark-guidance"&gt;naming concerns&lt;/a&gt; I renamed it). This has been a very fun project to work on and I have received some great participation and feedback from people in the community. The StackOverflow API is officially named &lt;a href="http://stackapps.com/"&gt;Stack Apps&lt;/a&gt; because it applies to all Stackoverflow family websites.&lt;/p&gt;

&lt;h2&gt;Simple&lt;/h2&gt;

&lt;p&gt;One of my main goals with the library was to just keep things simple. It is a simple library with a simple purpose so there is no need to be fancy or complicated. One feature introduced in c# 4 was &lt;a href="http://msdn.microsoft.com/en-us/library/dd264739.aspx"&gt;optional parameters&lt;/a&gt;. Most REST services have a certain amount of optional parameters to each method and it is often messy to model this behavior in C#. Often you end up just having a crazy amount of method overloads. Here is a simple example of using the library:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;IUrlClient urlClient = new UrlClient();
IProtocol protocol = new JsonProtocol();

var client = new StackyClient(version, apiKey, Sites.StackOverflow, urlClient, protocol);
var questions = client.GetQuestions();
foreach (var question in questions)
{
    Console.WriteLine(question.Title);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Multi-Platform&lt;/h2&gt;

&lt;p&gt;After creating a .Net 4 version of the library, I realized I could also support Silverlight with a minimal amount of extra effort. Then once I had the library running in Silverlight, it was another small step to support Windows Phone 7. So then I had a multi platform library on my hands. This introduced an extra set of problems mostly having to do with making sure all the libraries are in sync and tested correctly.&lt;/p&gt;

&lt;p&gt;After I released a version supporting these three platforms I received many requests to support .Net 3.5 so I eventually made a version for .Net 3.5 which used wrapper classes for optional parameters.&lt;/p&gt;

&lt;p&gt;You can check out the source for Stacky here: &lt;a href="http://stacky.codeplex.com/"&gt;http://stacky.codeplex.com&lt;/a&gt;. I will blog more of the specifics in the next week leading up to the final release of the stackapps api.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/recent-must-haves</link><title>Recent Must Haves</title><description>&lt;p&gt;There are a couple of things lately that I enjoy so much that I feel I need to share them with others.&lt;/p&gt;

&lt;h2&gt;This American Life&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.thisamericanlife.org"&gt;http://www.thisamericanlife.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a free podcast of a public radio show which features stories about everything from stories about being &lt;a href="http://thisamericanlife.org/Radio_Episode.aspx?episode=360"&gt;switched at birth&lt;/a&gt; to the &lt;a href="http://thisamericanlife.org/Radio_Episode.aspx?episode=27"&gt;cruelty of children&lt;/a&gt;. &lt;a href="http://thisamericanlife.org/Radio_Podcast.aspx"&gt;Subscribe now&lt;/a&gt;. It is free. It is awesome.&lt;/p&gt;

&lt;h2&gt;Radio Lab&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.wnyc.org/shows/radiolab/"&gt;http://www.wnyc.org/shows/radiolab/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another free podcast that just astounds me with its amazing content show after show. From the first show I heard on &lt;a href="http://www.wnyc.org/shows/radiolab/episodes/2007/07/15"&gt;time&lt;/a&gt; to the recent show on &lt;a href="http://www.wnyc.org/shows/radiolab/episodes/2009/09/25"&gt;parasites&lt;/a&gt;. I constantly find myself wanting to tell people about the amazing things I hear on this show. Usually, my wife ends up with the brunt of it :) &lt;a href="http://www.wnyc.org/shows/radiolab/rss?utm_source=rss&amp;amp;utm_medium=hp&amp;amp;utm_campaign=radiolab"&gt;Subscribe now&lt;/a&gt;. Also Free. Also Awesome.&lt;/p&gt;

&lt;h2&gt;Greg Laswell&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.greglaswell.com"&gt;http://www.greglaswell.com&lt;/a&gt;
Greg is one of my favorite artists. Everything he touches seems to turn to gold. Recently he released an album of just covers of other peoples songs. How is it that somebody covers an amazing song like Kate Bush’s This Woman’s Work and does it better than the original? Unfortunately, as of this writing the album only seems to be available from iTunes.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/for-the-kids</link><title>For The Kids</title><description>&lt;p&gt;The things you do for your kids:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://static.spontaneouspublicity.com/images/for-the-kids/01.png" alt="alt text" /&gt;&lt;/p&gt;

&lt;p&gt;I put this song in a playlist we play to help our 8 month old sleep. Now the play count is embarrassingly high. I am very tempted to use the reset play count feature of iTunes to cover my tracks…&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/code-i-almost-wrote</link><title>Code I Almost Wrote</title><description>&lt;p&gt;The only thing scarier than the code I actually write is the code I thought of and decided not to write. Actually, that is not true. The code I write is always perfect. Until I decide to change it later and make it more perfect.&lt;/p&gt;

&lt;p&gt;Today I was writing a small console app which I wanted to run indefinitely until the user decides they would like to close it. This posed quite a challenge. Should I stop every 1000 iterations and check if the user has indicated they would like to stop processing? Should this be a windows app so I can have a stop button?&lt;/p&gt;

&lt;p&gt;No, I should just run indefinitely and if they user wants the program to terminate, they will &lt;strong&gt;close the console window&lt;/strong&gt;. So simple. My mind really wanted to complicate this one.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.spontaneouspublicity.com/BlogImages/CodeIAlmostWrote_9EB1/duh_thumb.png" alt="Duh" /&gt;&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/microsoft-year-one</link><title>Microsoft Year One</title><description>&lt;p&gt;I can’t believe it but as of today I have already been at Microsoft for a whole year. It really has been a great year. Moving up to Washington from San Diego happened so fast my head was spinning for the first couple of months. Now that we feel more settled we really like it up here.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.spontaneouspublicity.com/image.axd?picture=WindowsLiveWriter/MicrosoftYearOne_619C/windowsvswalls_3.jpg" alt="Windows vs Walls" /&gt;&lt;/p&gt;

&lt;h2&gt;What I Have Worked On&lt;/h2&gt;

&lt;p&gt;I work on a team called the Windows Reliability Team. I have actually had the opportunity to work on two different features this past year. I started out working on a testing framework which was really challenging and interesting. It was a great introduction to Microsoft and to the Windows organization because it allowed me to interact with different teams and different technologies. When I joined the Windows team I wasn’t sure how much C# (or any managed code) I would get to use. Windows is, however, still mainly a native code product. And that is the way it should be. It is an operating system. But on the test side of things it is much more common for developers to be using .Net. In fact, I sometimes find myself being sort of an evangelist for .Net and C# within the team which is interesting. I never I thought I would join Microsoft only to teach them about their own technology. But then again with a company with such a wide array of products it is impossible for everybody to know them all.&lt;/p&gt;

&lt;p&gt;The other feature I have been working on for the last 6 months or so is called Windows Reliability Component (RAC). It is a new feature in Vista which monitors the reliability of your machine. In fact, if you run the reliability monitor (another feature owned by my team) it displays data produced by RAC. We are working on some great new features for Windows 7 and I can’t wait until the PDC when people actually get to see some of our work.&lt;/p&gt;

&lt;h2&gt;What I Have Learned&lt;/h2&gt;

&lt;p&gt;Microsoft is a huge company. The opportunities here are immense. The trick is finding something that you are passionate about and pursuing that. Right now, I feel like I am just starting that journey. I have been a developer for almost 10 years and working at Microsoft has shown me that there is so much ahead of me in my career. There are real problems to be solved. Interesting technologies to contribute to.&lt;/p&gt;

&lt;p&gt;So have I found my passion at Microsoft? I would say I am still looking. Windows Reliability is a great place for me to be right now. There is so much to learn and there are some great people on my team to learn from. I have often asked myself if I could work on anything I wanted to what would it be. Unfortunately I don’t have a great answer for that. So I am going to continue to search for that answer. And when I find it I will let you know.&lt;/p&gt;

&lt;h3&gt;Agile Windows&lt;/h3&gt;

&lt;p&gt;It has been interesting to follow the rise of the Alt.Net movement and the popularization of more Agile techniques in the .Net community. It is especially interesting when you look at the principles of Agile and wonder if they could ever scale to the point of a project like Windows. The way that Windows is engineered is nothing short of amazing. Although I think there is a lot an organization like Windows can learn from the Agile community, I don’t think Windows will be jumping on the Agile bandwagon any time soon. But within the small feature teams, like the one I work on, there is a lot of opportunity to apply TDD and continuous integration.&lt;/p&gt;

&lt;h2&gt;What I Am Looking Forward To&lt;/h2&gt;

&lt;p&gt;I am very grateful for the opportunity to work on a product like Windows which is literally used by about a billion people. I can’t wait to get feedback on Windows 7. Internally we have been using it for a while and we love it. Hopefully you will too. I look forward to experiencing everything that goes along with the release of a product like Windows.&lt;/p&gt;

&lt;p&gt;Mostly, I am looking forward to all that I know is in store for me at Microsoft. I feel like I have barely had time to scratch the surface of all that Microsoft is about. Probably the best advice I have received since I have been at Microsoft has been this:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Your career at Microsoft is more of a marathon than it is a sprint.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think of this advice whenever I wonder if I have accomplished enough during my first year. Have I made my mark? No. But I plan on it.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/paparazzi-for-nerds</link><title>Paparazzi For Nerds</title><description>&lt;p&gt;Being a relatively new employee at Microsoft, I have really enjoyed getting to know the culture and the wide array of people that work for Microsoft. To that end, I really enjoy the web site &lt;a href="http://www.microspotting.com/"&gt;Microspotting&lt;/a&gt; which chronicles some of these interesting people. I was hooked as soon as I saw &lt;a href="http://www.microspotting.com/2007/11/the-golden-helmet"&gt;Golden Helmet&lt;/a&gt; and got a good laugh out of the &lt;a href="http://www.microspotting.com/2008/05/jeff-lin-harvey-danger"&gt;Program Managa&lt;/a&gt;. Now I have to go figure out what kind of off beat thing I can do to become featured next...&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.spontaneouspublicity.com/image.axd?picture=WindowsLiveWriter/PaparazziForNerds_11B4E/image_3.png" alt="Microspotting" /&gt;&lt;/p&gt;

&lt;p&gt;BTW: I would live a &lt;a href="http://www.microspotting.com/2008/06/microspotting-tshirts"&gt;free t-shirt&lt;/a&gt;.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/hidden-gem-in-net-3-5-sp1-announcement</link><title>Hidden Gem in .net 3.5 SP1 Announcement</title><description>&lt;p&gt;There is some great stuff hidden in &lt;a href="http://blogs.msdn.com/tims/archive/2008/05/12/introducing-the-third-major-release-of-windows-presentation-foundation.aspx"&gt;Tim Sneath’s&lt;/a&gt; post announcing the WPF aspects of the .net 3.5 SPI release:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;It's been a long time in coming, but
  we're finally adding the
  much-requested DataGrid control to
  WPF. This will ship out-of-band at
  first, just after we release 3.5 SP1…
  ...Another oft-requested control is
  the Office Ribbon, and I'm sure you'll
  be pleased to know that we're also
  shipping an implementation of that
  control, also out-of-band, before the
  end of the year. The ribbon will be
  fully implemented in WPF&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So there you have it, there is a DataGrid and a Ribbon control coming to WPF! This is really cool. Something else that is really great is it appears that the WPF team is starting to adopt the “out of band” release model that other developer tools such as &lt;a href="http://asp.net/mvc/"&gt;Asp.net MVC&lt;/a&gt; are using. I think this is a huge step forward in terms of integrating customer feedback into their products.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/vote-to-improve-sql-management-studio</link><title>Vote to Improve Sql Management Studio</title><description>&lt;p&gt;I rarely write feedback to product teams but today I decided that I have had enough of this Identity Specification nonsense. How often do you create tables in Sql Management Studio which have some sort of identity column which is a primary key and an auto incrementing integer. Unless I am way off base, this is probably the most common scenario when creating a new table. So why does it take so many clicks? I have to click the Primary Key button to make the column a primary key and then scroll down in the Column Properties pane and find "Identity Specification" and expand it to change the value of "Is Identity" to "Yes".  That is just way too many clicks and scrolls for me.&lt;/p&gt;

&lt;p&gt;So I have submitted a suggestion on Microsoft connect:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=340996"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=340996&lt;/a&gt;&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/subsonic-blogprovider-for-blogengine-net</link><title>SubSonic BlogProvider for BlogEngine.net</title><description>&lt;p&gt;One of the things I love about &lt;a href="http://www.dotnetblogengine.net/"&gt;BlogEngine.net&lt;/a&gt; is that it is built with extensibility in mind. On example of this extensibility is the ability to customize the provider which it uses to retrieve and persist posts, pages, categories, etc.&lt;/p&gt;

&lt;p&gt;Currently there are two providers that are supported out of the box: The XmlProvider and the &lt;a href="http://www.dotnetblogengine.net/wiki/SQLServerBlogProvider.ashx"&gt;MSSQLProvider&lt;/a&gt;. After I moved my blog from wordpress.com to BlogEngine.net, I decided I wanted to store my posts and such in a database rather than in xml files. So I set out to get the MSSQLProvider up and running. There is not, however, any established way to convert all of your content from the XmlProvider to the MSSQLProvider. So I first attempted to create my own quick little script to select the content from one provider and insert it using the other. But this didn't work. I ran into connection management problems within the MSSQLProvider code.&lt;/p&gt;

&lt;h2&gt;SubSonic to the Rescue&lt;/h2&gt;

&lt;p&gt;Then it dawned on me: what I really wanted was an easy to use data access layer to access the Sql Server tables which I wanted to store my blog content in. Well, since I was planning on using the schema which ships with BlogEngine.net, I already had the schema created. This is the kind of thing that SubSonic is great at - generating an easy to use data access layer given a database schema.&lt;/p&gt;

&lt;p&gt;Subsonic ships with a console application called Sonic.exe which can be used to generate the data access classes. Since the database schema in this case is fairly static, I figured I could just generate the classes once and not worry about using a BuildProvider or anything fancy like that. So, here is the command line I used to generate the classes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sonic generate /override /server HOMIE /db BlogEngine 
/userid OMMITED /password OMMITED /out C:\code\out 
/generatedNamespace BlogEngine.Core.Providers.SubSonic /stripTableText be_
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I used the stripTableText option to replace take out the 'be_' prefix from each table which is present in the Sql schema. This results in classes which are named 'Post' and 'Page' rather than 'BePost' and 'BePage'.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.spontaneouspublicity.com/image.axd?picture=WindowsLiveWriter/SubSonicBlogProviderforBlogEngine.net_14637/ssconvert_3.png" alt="Subsonic" /&gt;&lt;/p&gt;

&lt;p&gt;Now that I had my data access layer, it was time to write the BlogProvider.&lt;/p&gt;

&lt;h3&gt;All Your Provider Are Belong To Us&lt;/h3&gt;

&lt;p&gt;Implementing the provider was pretty straight forward. There isn't really documentation I can find about exactly how the provider should behave so I based my code of the MSSQLProvider. I will not really go over the code too much here because there is not all that much to it. Mostly, it is a matter of mapping the SubSonic generated data access objects to the BlogEngine.net types like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;private static Post GetPost(SubSonicPost p)
{
    Post post = new Post();
    post.Id = p.PostID;
    post.Title = p.Title;
    post.Content = p.PostContent;
    post.Description = p.Description;
    post.DateCreated = p.DateCreated ?? DateTime.MinValue;
    post.DateModified = p.DateModified ?? DateTime.MinValue;
    post.Author = p.Author;
    post.IsPublished = p.IsPublished ?? false; ;
    post.IsCommentsEnabled = p.IsCommentEnabled ?? false;
    post.Raters = p.Raters ?? 0;
    post.Rating = p.Rating ?? 0;
    post.Slug = p.Slug;

    return post;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pretty boring and repetitive code.&lt;/p&gt;

&lt;h3&gt;Configuration&lt;/h3&gt;

&lt;p&gt;In order to configure your site to use this provider you must first configure it for SubSonic and then add the SubSonic provider. First, add the SubSonic config section to your confSections in your web.config:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;section name="SubSonicService"
   type="SubSonic.SubSonicSection, SubSonic"
   requirePermission="false"
   allowDefinition="MachineToApplication"
   restartOnExternalChanges="true"/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And here is the SubSonic section:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;SubSonicService defaultProvider="Default"&amp;gt;
    &amp;lt;providers&amp;gt;
        &amp;lt;clear/&amp;gt;
        &amp;lt;add name="Default" type="SubSonic.SqlDataProvider, SubSonic" 
         connectionStringName="BlogEngine"
         generatedNamespace="BlogEngine.Core.Providers.SubSonic"
         enableTrace="false" /&amp;gt;
    &amp;lt;/providers&amp;gt;
&amp;lt;/SubSonicService&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Lastly, you can edit the blogProvider section:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;BlogEngine&amp;gt;
  &amp;lt;blogProvider defaultProvider="SubSonicProvider"&amp;gt;
    &amp;lt;providers&amp;gt;
      &amp;lt;add name="XmlBlogProvider"
       type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/&amp;gt;
      &amp;lt;add name="MSSQLBlogProvider"
       type="BlogEngine.Core.Providers.MSSQLBlogProvider, BlogEngine.Core"/&amp;gt;
      &amp;lt;add name="SubSonicProvider"
       type="BlogEngine.Core.Providers.SubSonicProvider, BlogEngine.Core.Providers.SubSonic"/&amp;gt;
    &amp;lt;/providers&amp;gt;
  &amp;lt;/blogProvider&amp;gt;
&amp;lt;/BlogEngine&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;One Gotcha&lt;/h3&gt;

&lt;p&gt;The one problem I ran into was that SubSonic doesn't appear to run in a medium trust environments because it uses Tracing calls which require elevated trust. This does not mix well with BlogEngine.net and running in a medium trust environment. To get around this I commented out the tracing calls from the SubSonic source code and recompiled the SubSonic.dll. This is just a workaround until I find a permanent fix. You can read &lt;a href="http://forums.subsonicproject.com/forums/p/1250/12284.aspx#12284"&gt;this forum post&lt;/a&gt; for more details.&lt;/p&gt;

&lt;p&gt;So that's it. Here is the code. Feel free to give me any feedback or questions you have.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.spontaneouspublicity.com/Downloads/BlogEngine.Core.Providers.SubSonic.zip"&gt;BlogEngine.Core.Providers.SubSonic.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; The problem with medium trust and SubSonic has since been fixed so I will remove the SubSonic.dll from this site and just send you to the &lt;a href="http://subsonicproject.com/getting-at-the-subsonic-svn-subversion-repository/"&gt;SubSonic site for download&lt;/a&gt;.&lt;/p&gt;
</description></item><item><link>http://azure.spontaneouspublicity.com/dotnetkicks-penance</link><title>Dotnetkicks Penance</title><description>&lt;p&gt;I am a big fan of &lt;a href="http://www.dotnetkicks.com/"&gt;Dotnetkicks&lt;/a&gt;. I have found several interesting articles written by mostly lesser known authors (like myself) on that site. I have also received the benefits (more traffic) of getting some of my articles on the front page. As has been &lt;a href="http://devblog.ailon.org/devblog/post/2008/02/The-DotNetKicks-Effect---Enjoy-While-it-Lasts.aspx"&gt;discussed previously&lt;/a&gt;, the “&lt;a href="http://www.frickinsweet.com/ryanlanciaux.com/post/The-DotNetKicks-Effect.aspx"&gt;Dotnetkicks Effect&lt;/a&gt;” is very unpredictable due to the fact that there aren’t many people who regularly read the “&lt;a href="http://www.dotnetkicks.com/upcoming"&gt;Upcoming&lt;/a&gt;” section of the site. As a result, you can never really know if articles you submit to Dotnetkicks will get many views because there are so many different factors that contribute to your article being popular.&lt;/p&gt;

&lt;p&gt;Sometimes this feeling of guilt comes over me. A little voice in my head says: “Why haven’t you visited the upcoming section of Dotnetkicks.com lately and given some kick love to your fellow unknown bloggers?” So I dutifully visit the site and read through the first 3 pages of upcoming articles to see if anything seems kick-worthy. I call this Dotnetkicks penance. Does anybody else do this? Could this possibly be the mystery contributing factor that keeps the steady flow of articles from the upcoming page to the front page? I imagine if my fellow guilty bloggers unite we could keep the signal to noise ratio on the front page at a healthy level.&lt;/p&gt;
</description></item></channel></rss>