<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.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#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>beecy.net</title>
    <description>will work for foo</description>
    <link>http://beecy.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://beecy.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Al Beecy</dc:creator>
    <dc:title>beecy.net</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <geo:lat>42.370446</geo:lat><geo:long>-71.235635</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/beecynet" type="application/rss+xml" /><feedburner:emailServiceId>beecynet</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/beecynet" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.fwicki.com/users/default.aspx?addfeed=http%3A%2F%2Ffeeds.feedburner.com%2Fbeecynet" src="http://www.fwicki.com/images/ui/fwicki_clicklet.png">Subscribe with fwicki</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>How to Troubleshoot Sys.WebForms.PageRequestManagerServerErrorException when Debugging</title>
      <description>Today I was busily working on an ASP.Net app when I was confronted with the dreaded "Sys.WebForms.PageRequestManagerServerErrorException":&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/files/images/Sys.WebForms.PageRequestManagerServerErrorException.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
As anybody who has spent a fair amount of time working with ASP.Net can attest, this is one of the last things you want to see pop up because it is next to useless for figuring out what is actually wrong. Assuming you follow good practices in terms of error handling, odds are pretty good that when you see this the bugs isn't even in your code. Usually, it will end up being a bug in some flaky declarative control you're using.&lt;br /&gt;
&lt;br /&gt;
Personally, I think that the Microsoft Moron who decided that bubbling server errors up to javascript before breaking should be tarred, feathered, and made to watch the Complete Works of Pee-wee Herman. Twice!&lt;br /&gt;
&lt;br /&gt;
Anyway, enough ranting. So how do you get at some useful info? Basically, you need to trap the error somewhere that will allow you to interact with it. &lt;br /&gt;
&lt;br /&gt;
One place is the Global.asax file's Application_Error event handler. This will catch anything not handled elsewhere:&lt;br /&gt;
&lt;br /&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #0000ff; font-size: 10pt; mso-no-proof: yes;"&gt;protected&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Application_Error(&lt;span style="color: #2b91af;"&gt;Object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Exception&lt;/span&gt; ex = Server.GetLastError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (ex != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//log it or do something else useful...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;Context.ClearError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;Server.ClearError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; { }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
Another is the page in question's Page_Error handler:&lt;br /&gt;
&lt;br /&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #0000ff; font-size: 10pt; mso-no-proof: yes;"&gt;protected&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Page_Error(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Exception&lt;/span&gt; ex = Server.GetLastError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (ex != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//log it or do something else useful...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;    &lt;/span&gt;Context.ClearError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;   &lt;/span&gt;Server.ClearError();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-no-proof: yes;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
In either case, put a breakpoint in the location where the logging goes. You'll now have full access to the exception, complete with call stacks, etc.  &lt;br /&gt;
&lt;br /&gt;
BTW, in case you were wondering: no, the actual problem above was not because the "Status" field was missing from the "Pages" table -- that would have been way too easy.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=LFilvmhb0Ys:6vv_tZ64Kk0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=LFilvmhb0Ys:6vv_tZ64Kk0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=LFilvmhb0Ys:6vv_tZ64Kk0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=LFilvmhb0Ys:6vv_tZ64Kk0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/LFilvmhb0Ys" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/LFilvmhb0Ys/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/10/03/how-to-troubleshoot-Sys-WebForms-PageRequestManagerServerErrorException-when-debugging.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=a7d0f638-7920-45bd-9aea-91f6fa853bab</guid>
      <pubDate>Sat, 03 Oct 2009 18:55:00 -0500</pubDate>
      <category>AJAX</category>
      <category>Asp.Net</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=a7d0f638-7920-45bd-9aea-91f6fa853bab</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=a7d0f638-7920-45bd-9aea-91f6fa853bab</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/10/03/how-to-troubleshoot-Sys-WebForms-PageRequestManagerServerErrorException-when-debugging.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=a7d0f638-7920-45bd-9aea-91f6fa853bab</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=a7d0f638-7920-45bd-9aea-91f6fa853bab</feedburner:origLink></item>
    <item>
      <title>Sys.WebForms.PageRequestManager is null or not an object</title>
      <description>After merging two ASP.Net projects, one that used Ajax, and one that did not, I began getting a stange error: "Sys.WebForms.PageRequestManager is null or not an object". &lt;br /&gt;
&lt;br /&gt;
After googling around and trying various things, the problem turned out to be an optional tag in the web.config file that I had carried over from the non-Ajax project:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #0000ff; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #a31515; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt;xhtmlConformance&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #0000ff; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #ff0000; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt;mode&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; color: #0000ff; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt;=&lt;/span&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa; mso-no-proof: yes;"&gt;"&lt;span style="color: #0000ff;"&gt;Legacy&lt;/span&gt;"&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Turns out that MS's Ajax doesn't like this. Some folks suggested changing "Legacy" to "Transitional", but when I looked the "xhtmlConformance" tag up on MSDN, it says that "Transitional" is the default, so I just deleted it and the problem went away.&lt;br /&gt;
&lt;br /&gt;
Hope this saves someone a little time.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=22BiVlBJWrc:7OjlIYUvrac:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=22BiVlBJWrc:7OjlIYUvrac:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=22BiVlBJWrc:7OjlIYUvrac:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=22BiVlBJWrc:7OjlIYUvrac:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/22BiVlBJWrc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/22BiVlBJWrc/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/10/03/Sys-WebForms-PageRequestManager-is-null-or-not-an-object.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=e1464ede-af11-4055-99f8-e32091f5061d</guid>
      <pubDate>Sat, 03 Oct 2009 12:21:00 -0500</pubDate>
      <category>AJAX</category>
      <category>Asp.Net</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=e1464ede-af11-4055-99f8-e32091f5061d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=e1464ede-af11-4055-99f8-e32091f5061d</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/10/03/Sys-WebForms-PageRequestManager-is-null-or-not-an-object.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=e1464ede-af11-4055-99f8-e32091f5061d</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=e1464ede-af11-4055-99f8-e32091f5061d</feedburner:origLink></item>
    <item>
      <title>Telerik ASP.Net RadTreeView Event Signature Reference</title>
      <description>Here's a quick reference listing of all the event signatures for the &lt;strong&gt;Telerik RadTreeView&lt;/strong&gt; control. &lt;br /&gt;
&lt;br /&gt;
I generated it using the &lt;a href="http://beecy.net/post/2009/01/08/reflection-get-control-event-signatures.aspx" title="c# event signature reflection exmaple"&gt;&lt;span style="color: #5c80b1;"&gt;C# event signature reflection example&lt;/span&gt;&lt;/a&gt; I posted previously. &lt;br /&gt;
&lt;br /&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeClick(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeDataBound(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeCreated(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeExpand(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeCollapse(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeCheck(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeDrop(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeDragDropEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_NodeEdit(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeNodeEditEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_ContextMenuItemClick(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
Telerik.Web.UI.&lt;span style="color: #2b91af;"&gt;RadTreeViewContextMenuEventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_DataBound(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_Disposed(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_DataBinding(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_Init(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_Load(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_PreRender(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt; &lt;/p&gt;
&lt;p style="margin: 0in 0in 0pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; RadTreeView_Unload(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: calibri;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: times new roman;"&gt;Applies to: RadTreeView for ASP.NET AJAX Version Q2 2009. &lt;/span&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=cuvzX9U9IzI:2TDkEUKbZag:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=cuvzX9U9IzI:2TDkEUKbZag:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=cuvzX9U9IzI:2TDkEUKbZag:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=cuvzX9U9IzI:2TDkEUKbZag:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/cuvzX9U9IzI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/cuvzX9U9IzI/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/10/02/telerik-aspnet-radtreeview-event-signature-reference.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=a1b806f1-7cab-48a3-8334-166276a3e715</guid>
      <pubDate>Fri, 02 Oct 2009 14:16:00 -0500</pubDate>
      <category>Asp.Net</category>
      <category>Reference</category>
      <category>Telerik</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=a1b806f1-7cab-48a3-8334-166276a3e715</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=a1b806f1-7cab-48a3-8334-166276a3e715</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/10/02/telerik-aspnet-radtreeview-event-signature-reference.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=a1b806f1-7cab-48a3-8334-166276a3e715</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=a1b806f1-7cab-48a3-8334-166276a3e715</feedburner:origLink></item>
    <item>
      <title>Creating an FTP-Only Site in Plesk 9</title>
      <description>Plesk can be really annoying at times. Sometimes tasks that should be dirt simple like making a basic FTP site without associated web hosting can be next to impossible.&lt;br /&gt;
&lt;br /&gt;
After wasting about a half hour hunting around in Plesk 9 for a way to make an FTP site (authenticated) that did not also set up a website, I concluded that it simply could not be done through the interface.  &lt;br /&gt;
&lt;br /&gt;
Fine, I'll do it the old-fashioned way: I'll Google up an answer. After visiting a couple sites courtesy of Google, a consensus emerged. The way to create an ftp site/account was to connect via SSH and use the following three commands, followed by a little tweaking of the /etc/passwd file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/# mkdir /home/ftp &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/# useradd -d /home/ftp/ftpuser/ -s /dev/null ftpuser &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/# passwd ftpuser&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
The first line creates an /ftp folder beneath /home. The second creates a new user named "ftpuser". And the third allows you to set his pasword. So far, so good.&lt;br /&gt;
&lt;br /&gt;
The next generally recommended step was to edit the /etc/passwd file, changing this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;ftpuser:x:502:502::/home/ftp/ftpuser/:/dev/null&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
to this:&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;/div&gt;
&lt;/code&gt;&lt;/span&gt;
&lt;div style="background-color: #fff;"&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;ftpuser:x:502:502::/home/ftp/./ftpuser/:/dev/null&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
adding an extra dot slash between "ftp/" and "ftpuser".  I used nano.&lt;br /&gt;
&lt;br /&gt;
Didn't work. All the commands were successful, but FileZilla could not connect. Kept getting "bad login".&lt;br /&gt;
&lt;br /&gt;
Back to the drawing board.  My problem was that sites created in Plesk allowed too much access to uploaded content, specifically, HTTP access. It also subjected the ftp user to a hodgepodge of silly folders since the ftp account wa rooted above all the folders associated with the domain like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/anon_ftp &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/bin &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/conf &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/error_docs &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/httpsdocs &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/pd &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/private &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/statistics &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/web_users &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f8f8;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/cgi-bin &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;/httpdocs &lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Even worse, some of these folders could not be deleted, nor could files be wrtten to the "root" of this structure. Very annoying.&lt;br /&gt;
&lt;br /&gt;
I decided that to make this mess usable for an FTP-only site, I needed to do two things: &lt;br /&gt;
&lt;ol&gt;
    &lt;li&gt;Prevent access to the bogus website via HTTP. &lt;/li&gt;
    &lt;li&gt;Re-root the login to a secure folder just in case someone found a way around my solution to step 1. &lt;/li&gt;
&lt;/ol&gt;
The first part was pretty straight forward. I would drop a simple one-line .htaccess file in the various web-accessible directories to punt unwanted browsers from my site:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;deny from all&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
The next required a secure directory to which I could re-root my ftp user. Fortunately, there already was such a directory, named "private". So off I went to the /etc/passwd file again, where I changed this:  &lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;ftpuser:x:10021:2522::/var/www/vhosts/ftp.foo.com:/bin/false&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
to this:&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px !important;"&gt;&lt;code style="color: #000;"&gt;ftpuser:x:10021:2522::/var/www/vhosts/ftp.foo.com/private:/bin/false&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Now to test. I popped open a browser and went to my site. Got nada via HTTP except a stupid Apache message providing way more information about my server than I thought was sensible to reveal.  Seems if httpdocs can't be accessed, Apache gets stupid. &lt;br /&gt;
&lt;br /&gt;
Fine. I replaced the .htaccess files with a zero-byte index.html. Now all I get is a blank white screen. "Good enough for government work", as we used to say in the Army.&lt;br /&gt;
&lt;br /&gt;
Now the real test: ftp. First I go to the site using various browsers using ftp://. Up pops a login screen on all of them. I provide crdentials and land in my nice empty, private root. Looking good. &lt;br /&gt;
&lt;br /&gt;
One last test: FilleZilla. I enter my site and credentials and click connect. It connects, and I'm again in my private root. Time for a beer!&lt;br /&gt;
&lt;br /&gt;
Hope this helps someone.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=eOyYzzNwLJc:W9Frw97LreE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=eOyYzzNwLJc:W9Frw97LreE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=eOyYzzNwLJc:W9Frw97LreE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=eOyYzzNwLJc:W9Frw97LreE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/eOyYzzNwLJc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/eOyYzzNwLJc/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/09/12/creating-an-ftp-only-site-in-plesk-9.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=e3aac88b-6170-474f-ab5b-a3c0980a01b3</guid>
      <pubDate>Sat, 12 Sep 2009 19:20:00 -0500</pubDate>
      <category>Linux</category>
      <category>Networking and Hosting</category>
      <category>Plesk</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=e3aac88b-6170-474f-ab5b-a3c0980a01b3</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=e3aac88b-6170-474f-ab5b-a3c0980a01b3</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/09/12/creating-an-ftp-only-site-in-plesk-9.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=e3aac88b-6170-474f-ab5b-a3c0980a01b3</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=e3aac88b-6170-474f-ab5b-a3c0980a01b3</feedburner:origLink></item>
    <item>
      <title>Create a Top-Level Sub-Domain in Plesk 9 for Linux</title>
      <description>If you've ever used Plesk to create a sub-domain, you may have run into a quirk, depending on how it was configured by your ISP.  &lt;br /&gt;
&lt;br /&gt;
In some configurations, if you use Plesk's regular sub-domain functionality, it creates the root of the sub-domain in a directory below the root of the main domain. Which means that "&lt;strong&gt;sub.foo.com&lt;/strong&gt;" can also be accessed via "&lt;strong&gt;foo.com/sub&lt;/strong&gt;". Sometimes this is ok but, usually, it is not what you intended.&lt;br /&gt;
&lt;br /&gt;
Aside from the navigational weirdness this allows, it could also trick Google into thinking you 're posting duplicate content since the same stuff will be available at two URLs.&lt;br /&gt;
&lt;br /&gt;
So how do you work around this?  Simple: don't create it as a sub-domain.  Create a new top-level domain, but where you would normally enter something like "foo.com", instead enter "sub.foo.com". Be sure that the checkbox next to "WWW" is not checked. &lt;br /&gt;
&lt;br /&gt;
Other than that, configure it as you would any domain. You will now have a true, blue, top-level sub-domain. I'n not sure this is a "correct" way to make a sub-domain, but it seems to work just fine and doesn't allow the weirdness that putting the sub-domain beneath the root of the main domain causes.&lt;br /&gt;
&lt;br /&gt;
Hope this helps someone.  BTW, if you know of a better way to do this. Please let me know.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=zUyzK7XkKC0:cLr9cV9wlvk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=zUyzK7XkKC0:cLr9cV9wlvk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=zUyzK7XkKC0:cLr9cV9wlvk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=zUyzK7XkKC0:cLr9cV9wlvk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/zUyzK7XkKC0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/zUyzK7XkKC0/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/09/12/create-a-top-level-sub-domain-in-plesk-9-for-linux.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=fd30ad5b-926e-458c-9c08-7498d76efc59</guid>
      <pubDate>Sat, 12 Sep 2009 16:41:00 -0500</pubDate>
      <category>Networking and Hosting</category>
      <category>Linux</category>
      <category>Plesk</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=fd30ad5b-926e-458c-9c08-7498d76efc59</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=fd30ad5b-926e-458c-9c08-7498d76efc59</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/09/12/create-a-top-level-sub-domain-in-plesk-9-for-linux.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=fd30ad5b-926e-458c-9c08-7498d76efc59</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=fd30ad5b-926e-458c-9c08-7498d76efc59</feedburner:origLink></item>
    <item>
      <title>Reverse a String in JavaScript</title>
      <description>Fo some reason, the JavaScript String object doesn't have a reverse method, but JavaScript Array does. So the easiest way to reverse a string is to convert it to an array, reverse it, then convert it back to a string.&lt;br /&gt;
&lt;br /&gt;
Given a variable:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px! important;"&gt;&lt;code style="font-weight: bold; color: #069;"&gt;var&lt;/code&gt; &lt;code style="color: #000;"&gt;foo = &lt;/code&gt;&lt;code style="color: blue;"&gt;'foo'&lt;/code&gt;&lt;code style="color: #000;"&gt;;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
To reverse:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="reCodeBlock" style="border: #7f9db9 1px solid; overflow-y: auto;"&gt;
&lt;div style="background-color: #fff;"&gt;&lt;span style="margin-left: 0px! important;"&gt;&lt;code style="font-weight: bold; color: #069;"&gt;var&lt;/code&gt; &lt;code style="color: #000;"&gt;reversedFoo = foo.split(&lt;/code&gt;&lt;code style="color: blue;"&gt;''&lt;/code&gt;&lt;code style="color: #000;"&gt;).reverse().join(&lt;/code&gt;&lt;code style="color: blue;"&gt;''&lt;/code&gt;&lt;code style="color: #000;"&gt;);&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Enjoy.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=lpP9XA0X7R8:oITnz-BOMhM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=lpP9XA0X7R8:oITnz-BOMhM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=lpP9XA0X7R8:oITnz-BOMhM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=lpP9XA0X7R8:oITnz-BOMhM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/lpP9XA0X7R8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/lpP9XA0X7R8/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/09/03/reverse-a-string-in-javascript.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=9e3330b2-eba0-4e18-b21f-f80e1196e5ab</guid>
      <pubDate>Thu, 03 Sep 2009 18:01:00 -0500</pubDate>
      <category>JavaScript</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=9e3330b2-eba0-4e18-b21f-f80e1196e5ab</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=9e3330b2-eba0-4e18-b21f-f80e1196e5ab</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/09/03/reverse-a-string-in-javascript.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=9e3330b2-eba0-4e18-b21f-f80e1196e5ab</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=9e3330b2-eba0-4e18-b21f-f80e1196e5ab</feedburner:origLink></item>
    <item>
      <title>Cool Links - August 2009</title>
      <description>&lt;a href="http://www.wired.com/gadgets/miscellaneous/magazine/17-09/ff_goodenough?currentPage=all" target="_new" rel="nofollow"&gt;The Good Enough Revolution: When Cheap and Simple Is Just Fine&lt;/a&gt;&lt;br /&gt;
An article that effectively makes the case that the "good enough" is increasingly supplanting more polished (and expensive) offerings. Some of the examples cited are MP3's, Flip Ultra camcorders, and Predator drones.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://slick-ticket.com" target="_new" rel="nofollow"&gt;Slick Ticket&lt;/a&gt;&lt;br /&gt;
A very nice looking open-source ticket system. Not fancy, but a perfect example of the "good enough" trend discussed in the previous article.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=kmtDxhiduBY:u5BDgRTwGcw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=kmtDxhiduBY:u5BDgRTwGcw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=kmtDxhiduBY:u5BDgRTwGcw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=kmtDxhiduBY:u5BDgRTwGcw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/kmtDxhiduBY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/kmtDxhiduBY/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/09/01/Cool-Links-August-2009.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=18def5dd-194e-4f52-94d1-e366504391a4</guid>
      <pubDate>Tue, 01 Sep 2009 10:15:00 -0500</pubDate>
      <category>Links</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=18def5dd-194e-4f52-94d1-e366504391a4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=18def5dd-194e-4f52-94d1-e366504391a4</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/09/01/Cool-Links-August-2009.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=18def5dd-194e-4f52-94d1-e366504391a4</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=18def5dd-194e-4f52-94d1-e366504391a4</feedburner:origLink></item>
    <item>
      <title>IE is Stoooopid!</title>
      <description>&lt;p&gt;&lt;strong&gt;&amp;lt;rant&amp;gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Bugzilla allows you to attach various and sundry files to tickets for viewing in a pop-up window. Sometimes those files are snippets of HTML, XML, etc. that&amp;nbsp;may not be completely valid markup. Mozilla-based browsers just display what is there --&amp;nbsp;as they should.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;But it seems that the geniuses at Microsoft have decided that I'd rather see this annoying error message than the content:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://beecy.net/image.axd?picture=2009%2f7%2fie-is-stoooopid.bmp" alt="" /&gt; &lt;br /&gt;&lt;br /&gt;Good job Microsoft!&lt;br /&gt;&lt;br /&gt;You know, each time you force me to switch to a competitor's browser to view a page, the time&amp;nbsp;when I won't switch back moves a little bit closer. Tick, tock. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/rant&amp;gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=C_a9OgGnGu4:UfC_mW2AReE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=C_a9OgGnGu4:UfC_mW2AReE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=C_a9OgGnGu4:UfC_mW2AReE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=C_a9OgGnGu4:UfC_mW2AReE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/C_a9OgGnGu4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/C_a9OgGnGu4/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/07/22/ie-is-stupid.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=48895439-a28d-4ba6-b595-379ceb0fdcb0</guid>
      <pubDate>Wed, 22 Jul 2009 10:41:00 -0500</pubDate>
      <category>Usability</category>
      <category>Rants</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=48895439-a28d-4ba6-b595-379ceb0fdcb0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=48895439-a28d-4ba6-b595-379ceb0fdcb0</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/07/22/ie-is-stupid.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=48895439-a28d-4ba6-b595-379ceb0fdcb0</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=48895439-a28d-4ba6-b595-379ceb0fdcb0</feedburner:origLink></item>
    <item>
      <title>3 Reasons Not to Use Relative Dates in Web Pages</title>
      <description>&lt;p&gt;When filtering, relative dates and ranges&amp;nbsp;are great. "Today", "yesterday", "last 7 days", "this month",&amp;nbsp;etc., are much more user-friendly than manually entered date ranges.&lt;/p&gt;
&lt;p&gt;Unfortunately, I've noticed that an increasing number of sites are now using dates like "4 days ago", "Tuesday", or "Nov 3rd" instead of&amp;nbsp;absolute dates in pages and listings to specify key information such as publication or upload&amp;nbsp;dates. There are a number of problems with using relative dates in this manner and I address the three biggies below.&lt;/p&gt;
&lt;h2&gt;1. Relative Dates&amp;nbsp;Force Readers to Perform Calculations&lt;/h2&gt;
&lt;p&gt;I&amp;nbsp;know there are some who&amp;nbsp;will dispute this point, arguing that relative dates are easier to understand when used properly. And I will not deny that "yesterday" or "a week ago", for instance,&amp;nbsp;seem easier to grok than "June 13, 2009" or "June 7, 2009", but these are edge cases and their utility degrades rapidly with the passage of time.&lt;/p&gt;
&lt;p&gt;When I see something like "uploaded Nov 3rd", my instinctive reaction is "WTF does that mean?". Then I have to slow down and think "well, if there is no year included,&amp;nbsp;it &lt;em&gt;probably&lt;/em&gt; means that it was uploaded within the last 12 months, so let's see... this is June, 2009, so that means that it was &lt;em&gt;probably&lt;/em&gt; uploaded Nov 3, 2008". Would your grandmother, who has trouble turning on her computer, be be able to figure out what was meant?&lt;/p&gt;
&lt;p&gt;Even a reader familiar with the convention will be distracted and have to waste valuable processor cycles&amp;nbsp;translating the relative date to an actual date. It is even worse when dealing with seach engine cache documents. What does "3 days ago" mean when reading a Google Cache document?&amp;nbsp;Sure, you can scroll to the top,&amp;nbsp;note the date that the document was cached, then relocate the part you were reading and compute the actual date, but now you've had to actually stop and go hunting for the additional information needed to perform the calculation.&lt;/p&gt;
&lt;h2&gt;2. Relative Dates&amp;nbsp;Cannot Be Trusted&lt;/h2&gt;
&lt;p&gt;I said "probably" in the section above when describing the process of figuring out the actual publication date because&amp;nbsp;the ommission of the year&amp;nbsp;could have been accidental. Even when it is clear that the use of a relative date is intentional, such as "3 days ago",&amp;nbsp;there is no way to be sure that the document being viewed is current.&lt;/p&gt;
&lt;p&gt;There are many layers of caching between the typical web page and the typical web page reader. Many web servers/farms have a caching layer, many ISPs employ caches in an attempt to save bandwidth, many companies have caching proxy servers. Many of these caches are misconfigured (or intentionally configured) to ignore Expires&amp;nbsp;headers.&amp;nbsp;Many&amp;nbsp;web pages do not bother to include Expires headers. You get my point.&lt;/p&gt;
&lt;p&gt;Worst of all, many non-web-developer-types do not know&amp;nbsp;much (if any)&amp;nbsp;of this and will never guess that the document that says it was published "Today" is a week old and came from a cache.&lt;/p&gt;
&lt;h2&gt;3. Relative Dates Are&amp;nbsp;Bad for SEO&lt;/h2&gt;
&lt;p&gt;Search engines like to know when something was published and often give more weight to fresh content. As near as I can tell, they pretty much ignore relative dates.&lt;/p&gt;
&lt;p&gt;Don't believe me? Do a Google search on just about anything. You'll see some&amp;nbsp;results that lead with the date in the&amp;nbsp;little blurb beneath the link and some that have no date. What you won't see is "Tuesday" or "3 days ago".&lt;/p&gt;
&lt;p&gt;Search engines will not attempt&amp;nbsp;to translate&amp;nbsp;a relative date to an actual date. There is a simple reason for this: it may know when it first crawled a document, but it has no sure way of knowing when that document was actually published.&lt;/p&gt;
&lt;p&gt;The relative display of the date will eventually age out and be replaced by an absolute date but many of the algorithms floating around out there take a year before they switch over. If you're lucky, the search engines that matter will re-crawl your page and will then know its publication date. Sadly, by then your content will&amp;nbsp;be a year old and already stale.&amp;nbsp;Boo-hoo for you.&lt;/p&gt;
&lt;h2&gt;A Better Way&lt;/h2&gt;
&lt;p&gt;Misguided ideas about usability aside, I suspect that many sites adopt relative dates because they are less impersonal than absolute dates. "Yesterday" feels warmer and fuzzier than "June, 13 2009". And I get that this is important for sites looking to make a connection with their users (and what sensible site isn't?)&lt;/p&gt;
&lt;p&gt;If you believe your&amp;nbsp;readers or site will benefit from relative dates, use both. For instance, you could&amp;nbsp;display dates with an absolute part and a&amp;nbsp;relative part that changes as&amp;nbsp;time passes and is dropped entirely when no longer useful.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For your publication date, use "Yesterday, June 13, 2009" or "10 days ago, June 4, 2009". It's easy for both users (whatever their preferred mode of reference) and search engines to understand and will cause no confusion&amp;nbsp;even if cached. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;In lists&amp;nbsp;and grids, I think it is best to stick to absolute dates, but it would not be a bad thing if items were grouped into bands, Outlook-style, when sorted by date.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=gC-oiZWp8uM:pQL0GrBxx78:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=gC-oiZWp8uM:pQL0GrBxx78:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=gC-oiZWp8uM:pQL0GrBxx78:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=gC-oiZWp8uM:pQL0GrBxx78:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/gC-oiZWp8uM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/gC-oiZWp8uM/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/06/14/three-reasons-not-to-use-relative-dates-in-web-pages.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=253a1977-e813-43db-b9f5-c031d9d61e22</guid>
      <pubDate>Sun, 14 Jun 2009 18:55:00 -0500</pubDate>
      <category>SEO</category>
      <category>Usability</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=253a1977-e813-43db-b9f5-c031d9d61e22</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=253a1977-e813-43db-b9f5-c031d9d61e22</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/06/14/three-reasons-not-to-use-relative-dates-in-web-pages.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=253a1977-e813-43db-b9f5-c031d9d61e22</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=253a1977-e813-43db-b9f5-c031d9d61e22</feedburner:origLink></item>
    <item>
      <title>LLBLGenProDataSource Event Signature Reference</title>
      <description>Here&amp;#39;s a quick reference listing of all the event signatures for the &lt;strong&gt;LLBLGenProDataSource&lt;/strong&gt; and &lt;strong&gt;LLBLGenProDataSource2&lt;/strong&gt; controls. &lt;br /&gt;
&lt;br /&gt;
I generated it using the &lt;a href="http://beecy.net/post/2009/01/08/reflection-get-control-event-signatures.aspx" title="c# event signature reflection exmaple"&gt;&lt;font color="#5c80b1"&gt;C# event signature reflection example&lt;/font&gt;&lt;/a&gt; I posted previously. &lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;LLBLGenProDataSource2 (used with Self-Service templates)&lt;/h2&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_PerformSelect(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformSelectEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_PerformGetDbCount(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformGetDbCountEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_PerformWork(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformWorkEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityInserting(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityUpdating(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityDeleting(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityInserted(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityUpdated(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_EntityDeleted(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_ElementsFetched(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_Disposed(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_DataBinding(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_Init(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_Load(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_PreRender(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource_Unload(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;LLBLGenProDataSource2 (used with Adapter templates)&lt;/h2&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_PerformSelect(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformSelectEventArgs2&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_PerformGetDbCount(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformGetDbCountEventArgs2&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_PerformWork(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;PerformWorkEventArgs2&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityInserting(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityUpdating(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityDeleting(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;CancelableDataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityInserted(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityUpdated(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_EntityDeleted(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
SD.LLBLGen.Pro.ORMSupportClasses.&lt;span style="color: #2b91af"&gt;DataSourceActionEventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_ElementsFetched(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_Disposed(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_DataBinding(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_Init(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_Load(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_PreRender(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LLBLGenProDataSource2_Unload(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;br /&gt;
System.&lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e) { }&lt;/span&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=PnrVAXXVnco:stACVQm1HCY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=PnrVAXXVnco:stACVQm1HCY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beecynet?a=PnrVAXXVnco:stACVQm1HCY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beecynet?i=PnrVAXXVnco:stACVQm1HCY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/beecynet/~4/PnrVAXXVnco" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/beecynet/~3/PnrVAXXVnco/post.aspx</link>
      <author>Al Beecy</author>
      <comments>http://beecy.net/post/2009/06/13/LLBLGenProDataSource-event-signature-reference.aspx#comment</comments>
      <guid isPermaLink="false">http://beecy.net/post.aspx?id=e109beb1-3e82-4935-b50c-b5525e765cec</guid>
      <pubDate>Sat, 13 Jun 2009 05:32:00 -0500</pubDate>
      <category>LLBLGen Pro</category>
      <category>Reference</category>
      <dc:publisher>Al Beecy</dc:publisher>
      <pingback:server>http://beecy.net/pingback.axd</pingback:server>
      <pingback:target>http://beecy.net/post.aspx?id=e109beb1-3e82-4935-b50c-b5525e765cec</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://beecy.net/trackback.axd?id=e109beb1-3e82-4935-b50c-b5525e765cec</trackback:ping>
      <wfw:comment>http://beecy.net/post/2009/06/13/LLBLGenProDataSource-event-signature-reference.aspx#comment</wfw:comment>
      <wfw:commentRss>http://beecy.net/syndication.axd?post=e109beb1-3e82-4935-b50c-b5525e765cec</wfw:commentRss>
    <feedburner:origLink>http://beecy.net/post.aspx?id=e109beb1-3e82-4935-b50c-b5525e765cec</feedburner:origLink></item>
  </channel>
</rss>
