<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="./rss/rssfeed.xsl"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 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/"><channel><title>mike's web log</title><link>http://www.mikepope.com/blog/</link><description>mike pope's Web log</description><language>en-US</language><docs>http://www.mikepope.com/blog/BlogFeed.rss</docs><webMaster>mike@mikepope.com</webMaster><lastBuildDate>Thu, 09 Sep 2010 15:00:00 GMT</lastBuildDate><pubDate>Thursday, September 09, 2010 3:00:00 PM</pubDate><ttl>60</ttl><item><title>That unmistakable sound</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2178</link><description> &lt;a style="border:none;" href="http://www.world-education.info/?tag=hard-drive-failure" target="_blank"&gt;&lt;img style="border:none;float:right;margin:10px;" src="http://www.mikepope.com/blog/images/HardDiskOnFire.jpg" width='123' height='131' /&gt;&lt;/a&gt;I think that one of the disks on my server computer is dying -- it's making that spin-up-spin-down noise that they make just before they break. (Break your heart, that is.)[&lt;a href='#thatunmistakablesound1'&gt;1&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;If the blog disappears, it's because I'm, you know, servicing the server. &lt;br /&gt;&lt;br /&gt;Once again I wonder whether it's really worth it to maintain my own server. Hmmm. &lt;br /&gt;&lt;br /&gt;&lt;hr align="left" style="width:50%;"/&gt;&lt;a name='thatunmistakablesound1'&gt;[1]&lt;/a&gt; As an aside, I got this image  from &lt;a href="http://www.world-education.info/?p=35" target="_blank"&gt;a site&lt;/a&gt; that obviously is auto-translated. From what language, who knows. Here's an excerpt about the warning signs of incipient failure:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left:50px"&gt;&lt;strong&gt;Symptoms of harder drive failure&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The pre-warnings of harder drive abortion are not consistently accustomed by declining harder drive, if sometimes the agnate absurdity letters may arise and sometimes not. The a lot of accepted signs are beat or abrading sounds, while others, lower in ratings, cover aspersing arrangement achievement and abrupt behavior.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>personal,blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2178</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2178</guid><pubDate>Thu, 29 Oct 2009 12:02:23 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2178">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2178</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2178</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2178</wfw:commentRss><slash:comments>1</slash:comments></item><item><title>Foiled attack</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2174</link><description>Earlier today, someone left the following "comment" on an entry in the blog:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;% foreach (var x in ConfigurationManager.ConnectionStrings){%&amp;gt;&amp;lt;%= x.ToString() + "&amp;lt;br /&amp;gt;" %&amp;gt;&amp;lt;% } %&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is an attempt, obviously, to get connection information about any and all databases that the blog has access to.&lt;br /&gt;&lt;br /&gt;In this particular case, the attack was not successful because I encode stuff in comments, so it was just passed through as text. I sure hope that I've anticipated other, relatively straightforward attacks of a similar nature. But as we know, hackers are wily. And I am not particularly so, alas.&lt;br /&gt;&lt;br /&gt;It goes to show that no matter how trivial your site, someone is interested in hacking it. Security: It's not just for commercial web sites.&lt;br /&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,aspnet</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2174</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2174</guid><pubDate>Thu, 15 Oct 2009 14:07:51 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2174">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2174</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2174</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2174</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>You can again enter comments</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2171</link><description>Apparently a couple of days ago I broke the ability to add comments, in a well-meaning attempt to add some other functionality to the blog. Which I didn't finish, so no birds with two stones. Oh, well. I think I've fixed the comment-add feature again. &lt;br /&gt;&lt;br /&gt;Man, do I ever need to rewrite this creaking hunk o' software. Real Soon Now.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2171</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2171</guid><pubDate>Sun, 04 Oct 2009 22:14:22 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2171">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2171</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2171</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2171</wfw:commentRss><slash:comments>2</slash:comments></item><item><title>Blog feed changes</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2123</link><description>What started as a simple request from Phil -- use fully qualified URLs for images -- turned, naturally, into something a bit more. I fixed the feed, then needed to update the feed URL in Feedburner, which led to moving the feed to Google (which bought Feedburner), which led to an error, which led to some further tweaking of the actual feed. &lt;br /&gt;&lt;br /&gt;Anyway. If I broke your feed, let me know. PS Sorry if so. &lt;br /&gt;&lt;br /&gt;One URL that should always work is this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mikepope.com/blog/blogfeed.rss" target="_blank"&gt;http://www.mikepope.com/blog/blogfeed.rss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mikepope.com/blog/blogfeed.rss?full=true" target="_blank"&gt;http://www.mikepope.com/blog/blogfeed.rss?full=true&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;if you want full entries in the feed.&lt;br /&gt;&lt;br /&gt;But of course that does not go through a subscription service. </description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2123</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2123</guid><pubDate>Tue, 31 Mar 2009 23:26:22 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2123">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2123</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2123</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2123</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Speaking of large numbers</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2110</link><description>Another blog milestone today -- sometime during the night, the blog hit counter rolled over to 7 digits:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left:50px"&gt;&lt;img src="http://www.mikepope.com/blog/images/BlogStats_MillionHits.png" width='310' height='259' /&gt;&lt;/div&gt;As noted earlier, compared wtih actual, real blogs, this is nothing -- most of the people whose blogs I read pick up a million hits in months, if not weeks. But hey, it's sumpin' special for &lt;em&gt;this&lt;/em&gt; blog, anyway.&lt;br /&gt;&lt;br /&gt;So, 5-1/2 years, &lt;a href="http://mikepope.com/blog/AddComment.aspx?blogid=2102" target="_blank"&gt;2000 posts&lt;/a&gt;, a million hits, half a million words:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left:50px"&gt;Blah-blah, yadda-yadda, a milestone hit today&lt;br /&gt;A &lt;em&gt;million&lt;/em&gt; times the server has been asked for to display&lt;br /&gt;These pages of Verdana 8-point text all bluish gray&lt;br /&gt;And weeks ago the blog post count inched slightly past 2K.&lt;br /&gt;A half a million words, by god, so little to convey&lt;br /&gt;You'd think by now I might have had some useful things to say.&lt;/div&gt;Haha.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,personal</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2110</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2110</guid><pubDate>Tue, 24 Feb 2009 09:59:51 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2110">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2110</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2110</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2110</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>2K</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2102</link><description>This is my 2,000th post. You'd think that by now I'd have something interesting to say, wouldn't you? :-)</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,personal</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=2102</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2102</guid><pubDate>Tue, 10 Feb 2009 18:55:34 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2102">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=2102</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=2102</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=2102</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Blogiversary: 5 years</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1986</link><description>This blog went live &lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=25" target="_blank"&gt;5 years ago today&lt;/a&gt;.[&lt;a href='#blogiversaryyears1'&gt;1&lt;/a&gt;] It was a kind of lark, of course. ("How hard could it be?") &lt;br /&gt;&lt;br /&gt;Some stats:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Entries&lt;/strong&gt;: 1885.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Words&lt;/strong&gt;: 545,938. That's a lot of blather, dang.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Average entry size&lt;/strong&gt;: 289, or 298 if I count code.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Hits&lt;/strong&gt;: 917,375 or thereabouts. The, um, rigorousness of the hit counting is not guaranteed. &lt;/ul&gt;More stats are available over on the bottom left.&lt;br /&gt;&lt;br /&gt;I've slowed way down in the last year or so. Partly I just don't have as much time, and partly it's because the editing game requires less daily coding, hence I've had fewer incentives to blog about my adventures and problems therewith. &lt;br /&gt;&lt;br /&gt;As I keep saying, tho, it's just a phase. &lt;br /&gt;&lt;br /&gt;And hey, maybe I'll even get version 2.0 of this thing out during this fiscal year. I see that from the very beginning, the idea was to "include forthcoming ASP.NET features." That was, like, in the days of ASP.NET 1.1. The team has lapped me several times by now. Oh, well. Real Soon Now. :-)&lt;br /&gt;&lt;br /&gt;&lt;span class='footnote'&gt;&lt;a name='blogiversaryyears1'&gt;[1]&lt;/a&gt; I am amused, altho not surprised, to see that the first entry was made at 2:13 in the morning. That got me kind of curious, so I wrote a little page that shows the &lt;a href="http://www.mikepope.com/blog/fun/BlogTimesOfDay.aspx" target="_blank"&gt;distribution of postings across the 24-hour clock&lt;/a&gt;. &lt;/span&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1986</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1986</guid><pubDate>Fri, 27 Jun 2008 00:41:54 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1986">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1986</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1986</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1986</wfw:commentRss><slash:comments>2</slash:comments></item><item><title>Viewstate errors</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1972</link><description>This is the tale of an error, but first you have to listen to me blather about the background. &lt;br /&gt;&lt;br /&gt;In my blog, I have a crude hit counter and a referrers list that I occasionally poke through to see how people got here. A month or so ago, I noticed that a &lt;em&gt;lot&lt;/em&gt; of referrers were from the blog itself. I'd see them in bunches, which upon counting I realized were in 25-link batches. This very strongly suggested that someone or something (&amp;lt;-more likely) was walking the RSS feed. Well, I need neither referrer information nor hits from my own blog, so I tweaked the blog code so that it could ignore incoming URLs that matched the current domain name. &lt;br /&gt;&lt;br /&gt;That solved that problem. Thereafter, however, I was getting error notifications on average about once a day, but with no actual error detail. Clearly I'd horked something up, but who knows what. I have a catch-all error handler that redirects to an error page (I try to &lt;a href="http://www.codinghorror.com/blog/archives/001118.html" target="_blank"&gt;crash responsibly&lt;/a&gt;), where I unpack &lt;strong&gt;Server.LastError&lt;/strong&gt;. However, for the most part, this was coming up null. &lt;br /&gt;&lt;br /&gt;I set about adding a lot more try-catch blocks to the code. The problem (with the problem) is that it was sporadic, and I could never force it. A classic debugging issue. So I added a very simple logging facility that wrote out to this log on every catch block before it redirected to the error page. (My logging added a tiny bit of useful detail, like what handler in what page I was in; I realize that the Windows event log was capturing these exceptions as well.)&lt;br /&gt;&lt;br /&gt;That actually helped. Sure enough, when I'd added the filter, I was blithely checking &lt;strong&gt;Request.UrlReferrer&lt;/strong&gt; without first determining if it was null. This bascially happens every time I screw around with &lt;strong&gt;Request.UrlReferrer&lt;/strong&gt;. So I fixed that, and the sporadic errors went away.&lt;br /&gt;&lt;br /&gt; [&lt;a href='http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1972'&gt;more&lt;/a&gt;]</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,aspnet</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1972</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1972</guid><pubDate>Mon, 26 May 2008 21:21:07 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1972">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1972</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1972</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1972</wfw:commentRss><slash:comments>8</slash:comments></item><item><title>New, improved comment spam?</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1970</link><description>If you look at the comments for the two entries immediately preceding this one, the first (or only) comment seems reasonable. But the links for the commenter's name(s) -- well, those are commercial sites, so it's a good bet that they're link spam. Have a look and see if you agree. If they are, how are these comments being generated?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt; I've de-link-ified the commenter names, so they're no longer pointing anywhere. &lt;code&gt;Dim limit = 1 : For i As Integer = 0 To limit : Response.Write("neener") : If i &amp;lt; limit Then : Response.Write("-") : End If : Next&lt;/code&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1970</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1970</guid><pubDate>Wed, 21 May 2008 16:43:59 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1970">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1970</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1970</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1970</wfw:commentRss><slash:comments>3</slash:comments></item><item><title>Can you convert ... ?</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1948</link><description>Twice today I've gotten requests via the blog to convert code in old (old, old) blog entries -- one request to convert VB to C#, another request for C# to VB. Weird, huh? Two requests, both today.&lt;br /&gt;&lt;br /&gt;Dunno, what do you think? Should I do the conversions and post the code, so the (probably) newbies who need it can find what they need? Should I point out that I already wrote and posted the code once, I don't want to do it twice? &lt;br /&gt;&lt;br /&gt;What would &lt;em&gt;you&lt;/em&gt; do?&lt;br /&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>aspnet,blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1948</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1948</guid><pubDate>Tue, 01 Apr 2008 16:46:39 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1948">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1948</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1948</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1948</wfw:commentRss><slash:comments>6</slash:comments></item><item><title>Blog error</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1942</link><description>Just so you know, the blog errors this morning (Mon) appear to be a problem with DNS lookup, either with the company that holds my domain (GoDaddy) or with the DNS redirect service (DNS2Go). The blog itself works fine, and is accessible via raw IP (24.16.235.163 at the moment). Not sure exactly what to do about that except to make a note of it for my own satisfaction ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS I'm sure that with a small amount of effort, we can find a way to point out that this wouldn't happen if I were using a Mac ... :-)</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1942</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1942</guid><pubDate>Mon, 24 Mar 2008 09:24:03 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1942">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1942</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1942</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1942</wfw:commentRss><slash:comments>1</slash:comments></item><item><title>There once was a Federalist named Hamilton ...</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1914</link><description>Looking through my referrer list today, I ran across one that amused me:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.mikepope.com/blog/images/BlogReferrers_federalismpoem.jpg" width='681' height='70' /&gt;&lt;br /&gt;&lt;br /&gt;Hope they found what they were looking for ...</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1914</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1914</guid><pubDate>Thu, 07 Feb 2008 18:22:25 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1914">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1914</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1914</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1914</wfw:commentRss><slash:comments>2</slash:comments></item><item><title>Tagged quotations</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1883</link><description>I've updated the &lt;a href="http://www.mikepope.com/blog/BlogDisplayAllQuotes.aspx" target="_blank"&gt;page&lt;/a&gt; that lists my collected quotations[&lt;a href='#taggedquotations1'&gt;1&lt;/a&gt;] to include the ability to filter by tag and by author. This also implies that I've added tags to the quotations, of course. (The author filter thing is perhaps not very useful, but I could add it essentially for free, so what the heck.)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.mikepope.com/blog/images/QuotesPageFiltered.JPG" width='413' height='338' /&gt;&lt;br /&gt;&lt;br /&gt;I do like my collection of quotations; in a roundabout way, they make me pay slightly more attention when I read things. And I take enjoyment from the fact that a number of them have also appeared on the &lt;a href="http://www.quotationspage.com/qotd.html" target="_blank"&gt;quotes-of-the-day feed&lt;/a&gt; that I subscribe to. I suppose this is because good quotations are good quotations, and everyone runs across them sooner or later. I would prefer, of course, to think that the quotations I have on my site have inspired submissions to that site. One has to derive satisfaction where one can find it, even if one has to invent things in the process. Ha. Maybe I'll put &lt;em&gt;that&lt;/em&gt; on my quotations list. :-)&lt;br /&gt;&lt;br /&gt;On the technology side of things, I got some &lt;a href="http://mikepope.com/blog/AddComment.aspx?blogid=1879#1879_1903" target="_blank"&gt;help&lt;/a&gt; from Phil Weber on tweaking the XSLT transform that turns elements into attributes (required by the &lt;strong&gt;XmlDataSource&lt;/strong&gt; control, as I keep sort of complaining about.) From that point, implementing filtering was a matter of dynamically setting the XPath property of the &lt;strong&gt;XmlDataSource&lt;/strong&gt; control, like this:&lt;pre&gt;Protected Sub buttonFilterTags_Click(ByVal sender As Object, _&lt;br /&gt;        ByVal e As System.EventArgs)&lt;br /&gt;    Dim xPathExpression As String&lt;br /&gt;    If listTags.SelectedValue = "all" Then&lt;br /&gt;        xPathExpression = ""&lt;br /&gt;    Else&lt;br /&gt;        ' From http://www.eggheadcafe.com/articles/20030627d.asp&lt;br /&gt; [&lt;a href='http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1883'&gt;more&lt;/a&gt;]</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>aspnet,blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1883</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1883</guid><pubDate>Thu, 03 Jan 2008 21:18:55 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1883">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1883</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1883</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1883</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>SiteMeter and specificclick</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1881</link><description>I've been using SiteMeter to track usage statistics for the blog. I was just now playing around with &lt;a href="http://www.nikhilk.net/ASPNETDevHelperTool.aspx" target="_blank"&gt;Nikhil's Web Development Helper&lt;/a&gt;, and I noticed that among all the traffic generated by a request to the blog was a request to the specificlick.net site:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.mikepope.com/blog/images/specificclick.jpg" width='549' height='248' /&gt;&lt;br /&gt;&lt;br /&gt;I guess I haven't been paying attention[&lt;a href='#sitemeterandspecificclick1'&gt;1&lt;/a&gt;], so I hadn't seen this before. A little googling turned up a &lt;a href="http://michaelsync.net/2007/04/11/things-you-should-know-before-using-sitemeter" target="_blank"&gt;blog post&lt;/a&gt; that broke this story back in April and gives all the gory details (as of then, of course).&lt;br /&gt;&lt;br /&gt;Anyway, I took the sitemeter tracker off, and that seems to have killed the specificclick request. However, there is probably a cookie for those weasels, which you might want to kill. And my apologies for inadvertently contributing to this vile practice. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class='footnote'&gt;&lt;a name='sitemeterandspecificclick1'&gt;[1]&lt;/a&gt; This is new?&lt;/span&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1881</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1881</guid><pubDate>Sun, 30 Dec 2007 20:40:30 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1881">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1881</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1881</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1881</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>SQL Server backup</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1774</link><description>The blog runs on &lt;a href="http://www.microsoft.com/sql/prodinfo/previousversions/msde/prodinfo.mspx" target="_blank"&gt;MSDE&lt;/a&gt;, which is the "desktop" version of SQL Server (and the predecessor to &lt;a href="http://msdn.microsoft.com/vstudio/express/sql/" target="_blank"&gt;SQL Server Express&lt;/a&gt;). I run a backup every night, and to back up the blog database, I use a command like this:&lt;pre&gt;BACKUP DATABASE blog TO DISK = 'c:\blog_bu\&lt;em&gt;dayofweek&lt;/em&gt;\blog.dat_bak'&lt;/pre&gt;So of course I have 7 backups at any given time. I was looking at my disk stats on the server today and noticed that I seemed to be running a bit low on disk space. I looked through the drive to see where all that space was going, and I noticed that the backup files for the blog database were huge -- like, 2.5 &lt;strong&gt;&lt;em&gt;GB&lt;/em&gt;&lt;/strong&gt; each. (And that times 7.)&lt;br /&gt;&lt;br /&gt;Long story short, the backup command I've been using &lt;em&gt;appends&lt;/em&gt; to the backup file. Every time I back up, the backup files are getting bigger. The solution (a solution) is to add the INIT option to the command, like this:&lt;pre&gt;BACKUP DATABASE blog TO DISK = 'c:\blog_bu\&lt;em&gt;dayofweek&lt;/em&gt;\blog.dat_bak' &lt;font color=red&gt;&lt;strong&gt;WITH INIT&lt;/strong&gt;&lt;/font color=red&gt;&lt;/pre&gt;Much better -- the backup is now in the neighborhood of 35 MB. Whew.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1774</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1774</guid><pubDate>Sat, 07 Jul 2007 09:07:37 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1774">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1774</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1774</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1774</wfw:commentRss><slash:comments>1</slash:comments></item><item><title>Blog anniversary</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1768</link><description>I started this blog &lt;a href="http://mikepope.com/blog/DisplayBlog.aspx?permalink=25" target="_blank"&gt;4 years ago today&lt;/a&gt;. As recently noted, it was an outgrowth, sort of, from working with &lt;a href="http://www.asp.net/webmatrix/" target="_blank"&gt;Web Matrix&lt;/a&gt;. Web Matrix has of course grown up to become &lt;a href="http://msdn.microsoft.com/vstudio/express/vwd/" target="_blank"&gt;Visual Web Developer&lt;/a&gt;. The blog was going to be a simple little project -- hey, how hard could it be? For all its subsequent complexity, tho (e.g, did I really &lt;em&gt;need&lt;/em&gt; to implement trackbacks?), it's been a heck of a learning tool for me.&lt;br /&gt;&lt;br /&gt;Here are some stats, primarily for my own amusement:&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Entries:&lt;/strong&gt; 1,668&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Entries/day:&lt;/strong&gt; 1.14. My average is sinking.&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Comments:&lt;/strong&gt; 1,426&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Word count:&lt;/strong&gt; 467,246 (using my imperfect &lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1544" target="_blank"&gt;word counter&lt;/a&gt;)&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Average entry size:&lt;/strong&gt; 280 (not counting code)&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Hits:&lt;/strong&gt; 778,889&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Hits/day:&lt;/strong&gt; 533&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Most popular post:&lt;/strong&gt; &lt;a href="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1418&amp;count=no" target="_blank"&gt;Custom bi-directional sorting in GridView&lt;/a&gt; (12,527 hits). In fact, of the top 25 posts, 17 are about ASP.NET, and another 3 are probably the results of ASP.NET searches. If I want more traffic (do I?), I know what I should be writing about.&lt;br /&gt;&lt;/ul&gt;</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,personal</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1768</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1768</guid><pubDate>Wed, 27 Jun 2007 07:25:15 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1768">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1768</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1768</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1768</wfw:commentRss><slash:comments>8</slash:comments></item><item><title>.NET blog software</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1721</link><description>Now and again someone on an internal alias will ask about blog software written in .NET. I was perusing the &lt;a href="http://www.larkware.com/dg8/TheDailyGrind1113.aspx" target="_blank"&gt;Daily Grind&lt;/a&gt; today, and Gunderloy noted that Mads Kristensen had just released a new .NET-based blog engine named &lt;a href="http://www.madskristensen.dk/blog/TheLaunchOfBlogEngineNET.aspx" target="_blank"&gt;BlogEngine.NET&lt;/a&gt;. So it seemed like it might be useful to do an inventory.&lt;br /&gt;&lt;br /&gt;This is what I came up with. For the most part, it's the same list you can assemble if you google for "asp.net blog software." Or maybe not. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Downloadable/Installable .NET-based blog software&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.webmasterdeveloper.com/press_20050113a.aspx" target="_blank"&gt;.Blog&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=e99fccb3-1a8c-42b5-90ee-348f6b77c407" target="_blank"&gt;.Text&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.mandsconsulting.com/products/asp.net_blog_software/asp.net_blogs.html" target="_blank"&gt;ASP.NET Blogs&lt;/a&gt; (under development)&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.madskristensen.dk/blog/TheLaunchOfBlogEngineNET.aspx" target="_blank"&gt;BlogEngine.NET&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.simplegeek.com/PermaLink.aspx/91bcddca-d9c1-4c45-8481-b04bef0734ff" target="_blank"&gt;BlogX&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://communityserver.org/Default.aspx" target="_blank"&gt;Community Server&lt;/a&gt; (forum and blog engine)&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.dasblog.info/" target="_blank"&gt;Das Blog&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; (content publishing)&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.hostforest.co.uk/Products/blog.asp" target="_blank"&gt;ForestBlog&lt;/a&gt; (ASP, not ASP.NET)&lt;br /&gt;&lt;li&gt;&lt;a href="http://presstopia.com/pt/blog/default.aspx?id=21&amp;t=Presstopia-Blog-v10-released" target="_blank"&gt;Presstopia&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://community.rainbowportal.net/" target="_blank"&gt;Rainbow Portal&lt;/a&gt; (content management)&lt;br /&gt;&lt;li&gt;&lt;a href="http://subtextproject.com/" target="_blank"&gt; [&lt;a href='http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1721'&gt;more&lt;/a&gt;]</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>aspnet,blog,technology</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1721</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1721</guid><pubDate>Wed, 04 Apr 2007 20:56:29 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1721">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1721</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1721</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1721</wfw:commentRss><slash:comments>4</slash:comments></item><item><title>More changes to blog comments</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1702</link><description>I think it was Yaron who suggested (although I can't find the specific place where this appeared) that in the recently revamped comment pane, the Preview tab should both show the comment &lt;em&gt;and&lt;/em&gt; allow the commenter to save. Yaron (or whoever) pointed out that the sequence of tabs suggested that the Preview tab was an end point and it was perhaps confusing to have to go back to the Post a Comment tab to save the comment.&lt;br /&gt;&lt;br /&gt;So I just finished rejiggering it -- whether you're in Post a Comment or Preview, you can enter all your info and save. Hopefully this will be a more intuitive process. One feature I guess I'd like to add Real Soon Now is the ability to write a comment &lt;em&gt;and&lt;/em&gt; see the existing thread at the same time. Part of my eventual complete overhaul, I guess.&lt;br /&gt;&lt;br /&gt;As always, let me know if you have problems.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1702</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1702</guid><pubDate>Sat, 24 Feb 2007 11:36:47 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1702">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1702</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1702</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1702</wfw:commentRss><slash:comments>1</slash:comments></item><item><title>Technorati stuff</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1667</link><description>I added (as you can see to the left) a Technorati "claim" for the blog. After doing that, I poked around a little to see who was linking, which is always an interesting exercise. &lt;br /&gt;&lt;br /&gt;I was able to "claim" www.mikepope.com/blog/DisplayBlog.aspx, but not the simpler (and probably more common) www.mikepope.com/blog/.  I couldn't "complete the claim," as they refer to it, and one of their FAQ suggestions was that they couldn't follow redirects. Dunno. If I can ever figure out how to claim the latter, I'm sure I'll find a different set of links.&lt;br /&gt;&lt;br /&gt;Anyway, another task for the blog, since I haven't messed with it in a while.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1667</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1667</guid><pubDate>Fri, 22 Dec 2006 14:01:39 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1667">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1667</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1667</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1667</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Blustery day</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1659</link><description>Big ol' windstorm today. If the blog disappears for a bit, it's because I've lost power and have taken the server down.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1659</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1659</guid><pubDate>Thu, 14 Dec 2006 22:17:27 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1659">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1659</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1659</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1659</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Comments redux</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1627</link><description>With a slight bit of trepidation I'm rolling out a new comments page for the blog. I never liked the old page much -- too much scrolling, for starters -- so I jury-rigged a tab-control-like thing. I also added a toolbar of buttons that will wrap formatting tags around text. Still a "Source view" kind of thing, but slightly improved, perhaps.&lt;br /&gt;&lt;br /&gt;Anyway, &lt;em&gt;I&lt;/em&gt; keep finding bugs, so I doubt they're all gone. Let me know, I guess. If it turns out that you can't leave a comment, then email me.&lt;br /&gt;&lt;br /&gt;PS This won't make it into the download real soon -- I'm in the middle of a somewhat large refactoring exercise that's going to take some time.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1627</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1627</guid><pubDate>Mon, 23 Oct 2006 20:01:15 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1627">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1627</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1627</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1627</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Comments and email</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1594</link><description>I just made a small change to the commenting feature in the blog. When you comment, at your option you can be notified by email when others comment. However, I noticed today (I can't believe I didn't think of this till now) that the email that is sent to other commenters lists your email address. That's no good -- it's my goal to keep everything private, and that even if you want to be notified by email, your email address should never be exposed to anyone else.&lt;br /&gt;&lt;br /&gt;So that's fixed. If you happen to notice a problem, let me know. (Of course, if I've now broken the commenting feature, that could be tricky, eh? haha)</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1594</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1594</guid><pubDate>Fri, 08 Sep 2006 09:09:38 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1594">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1594</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1594</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1594</wfw:commentRss><slash:comments>10</slash:comments></item><item><title>Another outage</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1557</link><description>Interesting ... my net is down &lt;i&gt;again&lt;/i&gt;. This time it happened while I was actually sitting here, so I can examine the lights on the modem and determine that the modem is unable to "acquire a network connection" (fr. the manual), which means, correct me if I'm wrong, there's a problem talking to Comcast. This does not seem good, does it? Is Comcast being flaky, or is my modem, you know, breaking down? The modem appears to be cycling through some sort of start-up procedure ... it tries to get a net connect, and when that doesn't work for a few minutes, it goes through a power-on sequence. Well, we'll see tomorrow AM if things are mo' better. </description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,technology</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1557</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1557</guid><pubDate>Wed, 12 Jul 2006 01:15:45 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1557">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1557</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1557</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1557</wfw:commentRss><slash:comments>1</slash:comments></item><item><title>New blogfeed</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1553</link><description>As I noted a little while ago, I thought I should convert my blog feed from a Web service (&lt;a href="http://www.mikepope.com/blog/BlogFeed.asmx/GetRSS?" target="_blank"&gt;BlogFeed.asmx/GetFeed?&lt;/a&gt;) to an HttpHandler ... and so I have. You can now get the feed using &lt;a href="http://www.mikepope.com/blog/blogfeed.rss" target="_blank"&gt;BlogFeed.rss&lt;/a&gt;, including the feeds for individual categories if you want (e.g. &lt;a href="http://www.mikepope.com/blog/blogfeed.rss?category=aspnet" target="_blank"&gt;BlogFeed.rss?category=aspnet&lt;/a&gt;). You can also get the full feed instead of the truncated feed using the flag I created for the Web service -- &lt;a href="http://www.mikepope.com/blog/blogfeed.rss?full=true" target="_blank"&gt;BlogFeed.rss?full=true&lt;/a&gt;, &lt;a href="http://www.mikepope.com/blog/blogfeed.rss?category=aspnet&amp;full=true" target="_blank"&gt;BlogFeed.rss?category=aspnet&amp;full=true&lt;/a&gt;. As with the comment feed, the .rss extension is mapped to a handler class in App_Code.&lt;br /&gt;&lt;br /&gt;Converting from the Web service to a handler was not hard. In fact, it took me probably 15 minutes to do the basic conversion. Other than the small differences between a Web service and a handler class, which Visual Studio basically did for me, the logic was the same. The only real functionality to address was that I had to change the logic so that instead of returning an &lt;b&gt;XmlElement&lt;/b&gt; object, the handler called &lt;b&gt;context.Response.Write&lt;/b&gt; and passed a string with the feed contents.&lt;br /&gt;&lt;br /&gt;What I spent rather more time on was two additional features, one that I thought was important and one that was merely interesting. The important one was caching. In the Web service, I could get caching merely by including an attribute in the method:&lt;pre&gt;&amp;lt;WebMethod(CacheDuration:=3600)&gt; Public Function GetRSS() As XmlNode&lt;/pre&gt;I don't know of a way to get caching for free like this in a handler, so I ended up writing my own. Caching can be kinda tricky, eh? There are &lt;a href="http://msdn2.microsoft.com/en-us/library/18c1wd61.aspx" target="_blank"&gt; [&lt;a href='http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1553'&gt;more&lt;/a&gt;]</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog,aspnet</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1553</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1553</guid><pubDate>Mon, 10 Jul 2006 00:28:52 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1553">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1553</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1553</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1553</wfw:commentRss><slash:comments>0</slash:comments></item><item><title>Apologies ...</title><link>http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1551</link><description>I was gone for a couple of days and my local network went south. This only ever seems to happen when I'm gone -- it's like it misses me when I'm not here. Anyway, everything's been rebooted, which I guess was attention enough or something. Hopefully.</description><author>Mike Pope&lt;mike@mikepope.com&gt;</author><category>blog</category><wfw:comment>http://www.mikepope.com/blog/AddComment.aspx?blogID=1551</wfw:comment><guid isPermaLink="true">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1551</guid><pubDate>Sun, 09 Jul 2006 18:59:16 GMT</pubDate><source url="http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1551">http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1551</source><trackback:ping>http://www.mikepope.com/blog/BlogTrackback.aspx?id=1551</trackback:ping><wfw:commentRss>http://www.mikepope.com/blog/BlogCommentsFeed.rss?id=1551</wfw:commentRss><slash:comments>0</slash:comments></item></channel></rss>