January 2003 Blog Posts

What do you guys think? There is still time to address this for NewsGator v1. I'm leaning toward defaulting to no referrer, and allowing the user to override this with a custom referrer string. Another option is what Aggie does (or used to), where the referrer could be something like http://www.newsgator.com/referrers?usersite=www.rassoc.com/gregr/weblog/. Thoughts? [Greg Reinacker's Weblog]

If you were being strict about things, you'd probably say that the referrer should be blank and just use the User Agent. I think people are pretty used to looking at their logs by referrer and so it wouldn't be a great stretch to also include a custom string for this so that the information is all logged in one place. I think it should be one of those two alternatives, though: blank or custom. A static value linking to the user agent doesn't add much value.

RSS readers misusing the referer field?

Very few of these are true referers. No one clicked on a link on the NewsGator page to get to my site, yet I have almost 2000 referers from that page in my logs for this month. Checking my logs more closely, it appears that each time an RSS file from my site is loaded by one of these applications, a referer is deposited in the log file. Each time I load a page in Internet Explorer, I don't leave a referer for www.microsoft.com/ie in the log files of the site whose page I loaded, so why should any of the RSS readers be different?

The definition of referer from RFC 2616 on HTTP 1.1 seems relevant to the question. It states that "The Referer[sic] request-header field allows the client to specify, for the server's benefit, the address (URI) of the resource from which the Request-URI was obtained" and that "the Referer field MUST NOT be sent if the Request-URI was obtained from a source that does not have its own URI".

This is an interesting point - some aggregators have at various times allowed people to include their own URL's as part of the referrer and this encourages back-linking by allowing writers to find out about their readers. I'm not sure what value a plain static URL has, though, considering the fact that the User Agent also identifies the software.

Internet Explorer Fitted-Width Printing

I've updated the download for the IE printing add-in to hopefully cure the problem where it came up with security errors with IE6 SP1.

I will update the source code to match soon. Your Downloaded Program Files should list IEPrint with version 1.0.0.140 after installing this version (the previous version was 1.0.0.123).

I'd be grateful to hear about any successes or failures with this new version.

I've been working on fixing up my IE Printing helper which broke when IE6 SP1 was released (I think). According to Q220830 (INFO: Syntax of the Res: Protocol and Some Known Related Issues):

You do not have to specify the whole path to the module, on the condition that the module is either in the path or is a loaded DLL.

For example, you can shorten this longer path from Res://c:\projects\debug\Test.exe/Test.htm to the shorter path of Res://Test.exe/Test.htm on the condition that Test.exe is in the path, in the startup directory, or in the working directory.

It seems like res://myloaded.dll/page.htm now loads in the Internet zone and hence I get security errors whereas res://c:\path\to\my.dll/page.htm loads in the My Computer zone and so is fine.

Has anyone else seen this? Is it documented anywhere? Is there a legitimate security reason for why they would have done this?

I have been too busy to blog or even keep up to date with my RSS subscriptions for the last few weeks so I am trying to catch up today. Even though many posts will have disappeared off the bottom of the RSS files, it's still too much to read so I'll have to skip most of it.

Greg Reinacker'sNewsGator seems to have come on in leaps and bounds during those couple of weeks and now demands a closer look whilst simultaneously putting an end to my wish to write something similar (which is good because I don't have the time anyway!).

Outlook Based Aggregator. Greg Reinacker: ...possibly coming soon to a weblog near you. Anyone interested in something like this?

No hablo Outlook. ;-)Looks real cool, though. [Sam Ruby]

It's funny because I've actually been looking at doing the exact same thing this week. I downloaded the source for Aggie which I was going to use as a base. My second thought was to create a POP3 server that converted RSS posts to mail messages until I realised that I have HTML e-mail disabled in Outlook. I decided I need to check to make sure that PostItems with HTML aren't disabled by the same setting before proceeding and I haven't got around to it yet.

This would be a step along the path to stopping using Radio which is (touch wood) working okay for me right now, but the problems others have experienced makes me nervous.

In real life, you never have to stop to consider whether, for example, the failure of gravity to operate as expected is a possible explanation for some problem. In the realm of computers and software, you're dealing with abstractions layered on abstractions, and in order to make progress on the higher-level ones you have to believe in the lower-level ones. But in order to debug things, you have to question all assumptions, at every level, all the time. This is, psychologically, just plain hard. [Jon's Radio]

Don't Forget RenderControl!.

Is it possible to just get the raw HTML that is sent to the browser when a web control is rendered?

Yes, but only if you subclass the control. The method you need to call is 'Render' and it's protected. Here's aquick sample... [Wrinkled Paper]

Ack! No. Just call Control.RenderControl(). :-p No need to sub-class the control just to get its rendered data... If you have Visual Studio.NET installed, you canread all about it here.

[The .NET Guy]

Thanks Brad. :o)

Is it possible to just get the raw HTML that is sent to the browser when a web control is rendered?

Yes, but only if you subclass the control. The method you need to call is 'Render' and it's protected. Here's a quick sample... [Wrinkled Paper]

BaseCodeGeneratorWithSite
This is the sourcefor BaseCodeGeneratorWithSite class that was public in Microsoft.VSDesigner.dll of VS.NET 2002 and made internal during the VS.NET 2003 product cycle. We decided to release this code for any developers who may have been using this class and would be broken by the change that made this class internal. Zip file contains project file for VS.NET 2002 and VS.NET 2003 (Frameworks 1.0 and 1.1).

This is good news. I was a little worried about the change since I have used this class for my SqlGen code generator that takes an XML file and generates the T-SQL table definitions, T-SQL stored-proc definitions, and C# data layer components.

18 Steps to a TCP/IP Boot Disk
All you need is a blank disk and a little patience

"A TCP/IP boot disk is handy when you're using imaging software to roll out a standard client image across the network, running an unattended installation of Windows NT 4.0, or troubleshooting a machine that has a FAT partition."

Who says Windows can't be reliable? This is a Windows XP laptop that is only being rebooted because I need to reformat it to use for a different task:

C:\>uptime i3500
\\i3500 has been up for: 319 day(s), 19 hour(s), 40 minute(s), 30 second(s)