<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://jaysonknight.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>jaysonKnight.com</title><link>http://jaysonknight.com/blog/</link><description>Welcome to my corner of the internet</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Debug Build: 40407.4157)</generator><item><title>Matriculating Into Columbia University, Moving to New York</title><link>http://jaysonknight.com/blog/archive/2009/12/09/matriculating-into-columbia-university-moving-to-new-york.aspx</link><pubDate>Wed, 09 Dec 2009 07:39:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:120139</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I have the proud distinction of being able to say that I have been accepted to Columbia University (yeah, that Columbia...the Ivy League one) and will be finishing up my degree there. I&amp;#39;m still in shock that it&amp;#39;s actually happened, that I get to fulfill my lifelong dream of attending an Ivy League institution...and Columbia at that which is IMO the coolest of the Ivies, namely due to its location in Manhattan. I have busted my ass over the past year in my studies, and it&amp;#39;s great to see this hard work paying off. So long as all the logistics fall into place, I will be moving to the Morningside Heights neighborhood of Manhattan in early January to begin classes. All of my credits transferred, so I&amp;#39;ll be enrolling as a Junior. I&amp;#39;m excited and apprehensive at the same time, but I have no doubt that this was meant to be. I have a philosophy of believing that things happen for a reason, and the more effortlessly they happen, the more they were meant to happen.&lt;/p&gt;
&lt;p&gt;And it would seem that I&amp;#39;m not the only one making a big move these days. My good friend &lt;a target="_blank" href="http://nayyeri.net"&gt;Keyvan Nayyeri&lt;/a&gt; (&lt;a target="_blank" href="http://www.facebook.com/keyvan.nayyeri"&gt;Facebook profile&lt;/a&gt;) has also fulfilled a lifelong dream and is finally making it stateside to complete his Ph.D in Mathematics at the University of Texas: San Antonio. The internet sure does make the world seem awfully small sometimes, and the prospect of finally getting to meet this guy in real life is astounding. I&amp;#39;m so happy for him as I know he&amp;#39;s wanted this for a long time now. I know he&amp;#39;s going to do great, and I wish him the best of luck.&lt;/p&gt;
&lt;p&gt;Any readers of this blog (if there are any left actually) located in and around the NYC area, please feel free to drop me a line. Next post will be from the Big Apple!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=120139" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category><category domain="http://jaysonknight.com/blog/archive/tags/Medical+Student/default.aspx">Medical Student</category></item><item><title>Laparoscopic Cholecystectomy Tomorrow; Bye Bye Gallbladder</title><link>http://jaysonknight.com/blog/archive/2009/05/18/laparoscopic-cholecystectomy-tomorrow-bye-bye-gallbladder.aspx</link><pubDate>Mon, 18 May 2009 20:51:52 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:118694</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Just a short blurb: I’m going in for a very routine procedure tomorrow to have my gallbladder removed. I’ve recently been diagnosed with Cholecystitis, and the pain over the past 2 weeks has been pretty bad at times. The surgery itself was scheduled over a week ago, so just waiting around for tomorrow to come has been the hard part. The procedure itself takes less than an hour, and carries virtually no risk of complications. The human body gets on just fine without a gallbladder…its only real purpose seems to be to get inflamed and cause the body lots of pain actually. Regardless, I’ll be fine. At this point I can’t remember what a pain free day feels like, so I’m very much looking forward to that feeling. Watch this space for more details.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sidenote:&lt;/strong&gt; The medical student in me wants them to tape the procedure so I can watch it later on. How wrong is that?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=118694" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/Medical+Student/default.aspx">Medical Student</category></item><item><title>Another Semester Done, Summertime Is Here</title><link>http://jaysonknight.com/blog/archive/2009/05/14/another-semester-done-summertime-is-here.aspx</link><pubDate>Thu, 14 May 2009 05:02:54 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:118497</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 5px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="beach_wallpaper_brazil[1]" border="0" alt="beach_wallpaper_brazil[1]" align="left" src="http://jaysonknight.com/misc/AnotherSemesterDoneSummertimeIsHere_739/beach_wallpaper_brazil1.jpg" width="244" height="184" /&gt;Spring semester at UNCC has ended, and compared to previous semesters, this one was quite the crusher to say the least, even though it was only 15 credit hours. My GPA for the semester was a 3.53, so I’ll make Dean’s List again, but I was a bit disappointed by one particular B in my Chemistry lab…the TA said I was extremely close to an A, but that there would be no curve. My most surprising comeback story was Calculus I; bear in mind I haven’t had a college level math class in about a decade, so all of those skills had long disappeared. Combine that with the fact that about halfway through the semester our professor fell gravely ill, and we got a new professor that although very smart, hadn’t taught a low level math class in years so he was way above our heads. I found some fantastic &lt;a href="http://tutorial.math.lamar.edu/Classes/CalcI/CalcI.aspx" target="_blank"&gt;online lecture notes&lt;/a&gt; and basically locked myself in a room for an entire weekend and taught myself everything I needed to know for the final exam. I went from a 67 on the first exam to a 92 on the final, good enough to get an A as my final grade.&lt;/p&gt;  &lt;p&gt;One thing this semester taught me is that I no longer want to be a Chemistry major. My first round in school, before I discovered computer science, I was absolutely fascinated by Chemistry and had a natural knack for it. The knack is still there, but the interest…well, not so much. Of course my end goal is medical school so the major doesn’t matter per se, but I have to be interested in the work I’m doing. This round, my interests are much more towards the biological sciences. I have decided to change to either a B.S. Biology should I decide to stay at UNCC, or Biomedical Engineering should I decide to transfer to a school that offers an undergraduate degree in that area. I have also decided that UNC-Chapel Hill may not be an option for various reasons that I won’t go into…it’s mainly a matter of timing. As such, I’m going to apply to other schools in the region that offer a competitive BME program such as NC State and GA Tech for consideration of a Spring ‘10 transfer. A BME degree will be a fantastic fallback degree should my physician aspirations not work out (which of course I have complete confidence that they will, but there are so many places where pursuing an M.D. can abruptly end).&lt;/p&gt;  &lt;p&gt;The end of this semester was complicated by some strange medical issues I’ve been having. I won’t get into a lengthy diatribe nor will I play armchair physician in this post about what’s going on, but it got severe enough last week that it warranted 2 physician visits, a smattering of chest x-rays, and a CT scan. The findings are leaning towards gallstones (which I suspected all along), but aside from that I’m a perfectly healthy 30 year old according to test results. I have a consultation with a general surgeon tomorrow morning to discuss a further course of action. I will say that I wouldn’t wish the amount of pain I’ve been experiencing on my worst enemy. My last 2 exams of the semester, I was basically writhing in pain throughout them feeling pretty close to death, and still managed to do well on both. Mind over matter I guess. It’s also safe to say that dye contrast CT scans are quite interesting…the barium sulfate shake given beforehand provides you with about 18 hours of severe cramps and diarrhea, and the IV injected contrast dye also has some interesting physiological properties…feels like your skin is on fire and like you’ve peed all over yourself. Highly recommended.&lt;/p&gt;  &lt;p&gt;First summer session (aka 5 weeks of Organic Chemistry pain) starts in just over 2 weeks. I was planning on enjoying my break, but it looks like it’ll be consumed with physician visits until we get the pains resolved. It’s all good, I have faith in the system (even though it does move pretty slow). Watch this space for more updates.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=118497" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category><category domain="http://jaysonknight.com/blog/archive/tags/Medical+Student/default.aspx">Medical Student</category></item><item><title>One Month’s Worth of Sleepless Nights To Go Please</title><link>http://jaysonknight.com/blog/archive/2009/02/25/one-month-s-worth-of-sleepless-nights-to-go-please.aspx</link><pubDate>Wed, 25 Feb 2009 05:23:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:112373</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;img height="162" width="200" src="http://i119.photobucket.com/albums/o128/hockeyhull22/unc1.jpg" align="left" border="0" style="border-right-width:0px;margin:2px 5px 2px 2px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Spring semester at &lt;a target="_blank" href="http://en.wikipedia.org/wiki/University_of_North_Carolina_at_Charlotte"&gt;UNCC&lt;/a&gt; has gotten off to a roaring start; I can&amp;rsquo;t believe it&amp;rsquo;s already been 6 weeks. I had to do some schedule adjusting&amp;hellip;trust me, my course load is not to be envied at 16 hours: General Chemistry 2 (with lab), General Biology 2 (with lab), Calculus, Japanese, and I&amp;rsquo;m TA&amp;rsquo;ing for a deductive logic professor. The labs are what absolutely kill me each week since they are three classroom hours + lab reports + quizzes, exams, and papers&amp;hellip;all for one lousy credit hour. So far it&amp;rsquo;s a bit rougher than last semester, but definitely manageable.&lt;/p&gt;
&lt;p&gt;The good news is that I have finally completed my application to &lt;a target="_blank" href="http://en.wikipedia.org/wiki/University_of_North_Carolina_at_Chapel_Hill"&gt;UNC&lt;/a&gt; aka Carolina aka Chapel Hill. It&amp;rsquo;s a phenomenal school with one of the better Chemistry programs in the country. The bad news is that notification won&amp;rsquo;t be coming for at least a month, and I don&amp;rsquo;t do too well with suspense and waiting. Fingers are crossed, but this will be by far one of the biggest decisions I&amp;rsquo;ve ever made in my entire life. Chapel Hill is only 3 hours away from Charlotte, but my life is here: Friends, family, girlfriend&amp;hellip;I mean it&amp;rsquo;s not the end of the world, but it&amp;rsquo;s still a heavy decision. Like I always say, I&amp;rsquo;ll burn that bridge when I get to it. Provided I get in, it would be the opportunity of a lifetime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sidenote:&lt;/strong&gt; Condolences to those who didn&amp;rsquo;t survive the great &lt;a target="_blank" href="http://telligent.com/blogs/corporate/telligent-reduction-in-force/"&gt;Telligent Carnage of &amp;lsquo;09&lt;/a&gt;. Over the years before I got out of the software business, I got to know quite a few of you, and even before that, many of you were household names amongst .Net developers. My heart especially goes out to Rob Howard&amp;hellip;I know just how passionate you are about software and your company, so I&amp;rsquo;m sure the decision was not an easy one. No doubt that even with what little sleep I&amp;rsquo;ll be getting over the next few weeks in anticipation of an acceptance letter, they are nothing compared to the sleepless nights you had before having to make this decision. I am truly sorry.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=112373" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category></item><item><title>I'm Drowning in Paper, So I Bought a Tablet</title><link>http://jaysonknight.com/blog/archive/2008/12/20/i-m-drowning-in-paper-so-i-bought-a-tablet.aspx</link><pubDate>Sat, 20 Dec 2008 06:45:02 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:112006</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;img style="margin:0px 5px;" border="0" alt="Latitude XT Tablet PC" align="left" src="http://i.dell.com/images/global/products/latit/latit_xt_overhead_standard_179x149.jpg" width="179" height="149" /&gt;   &lt;p&gt;So another semester has drawn to a close…this semester was my first full one; I did 17 hours and I can say one thing for certain: It’s a lot easier to focus at age 30 than it was at 18, and it wasn’t nearly as bad as I thought it would be. Finals were pretty gruesome, but overall it was a successful semester, and I’ve loaded myself up with 18 hours for Spring. One thing I learned about myself is that at some point, I stopped being able to do consecutive nights of 4 hours of sleep…I paid dearly for it during finals week and it caught up with me at the end. Yet another thing drastically different than being 18.&lt;/p&gt;  &lt;p&gt;I also learned that a decade of cube life spoiled me in some ways…I haven’t put pen to paper (e.g. taking notes) in many many years having always used a computer for all of my document generation needs. The problem wasn’t with the note taking itself, but rather being able to quickly find information I had written down for later studying. Over the past few months I had gone back and forth on whether to get a laptop, or get a tablet. Since I’m a chemistry major, a good portion of my notes include drawings, charts, and equations with lots of symbols involved…so a regular laptop was not going to be a feasible solution. The obvious choice was then a tablet, but to get a decent one is a sizable chunk of change. A friend of mine reminded me about the &lt;a target="_blank" href="http://dell.com/outlet"&gt;Dell outlet site&lt;/a&gt;, and since the &lt;a target="_blank" href="http://www.dell.com/tablet"&gt;Latitude XT&lt;/a&gt; is the tablet I was interested in (namely due to multi-touch capabilities), it became a matter of checking the outlet page on a daily basis waiting for the configuration I wanted. It took a couple months, but the one I wanted finally showed up yesterday. To say I got a great deal would be an understatement. Brand new, the configuration I got would have been around $3,500…I ordered mine for $1,500. The main component I was holding out for was an SSD, which apparently are really hard to come by on the outlet site. Regardless, it gets here on the 22nd, and I’m beyond stoked to be getting rid of all the paper notebooks I would have had to keep up with next semester.&lt;/p&gt;  &lt;p&gt;So the question now becomes, do I stick with XP Tablet Edition, or do I use the free upgrade coupon it comes with to move to Vista Business? I’ve read reports on the web of Vista’s tablet capabilities being less than stellar, with many reviewers preferring XP for tablets. I personally love Vista, and would see going back to XP as a huge setback, but of course I want to use whatever works best. Any readers have experience with one or both?&lt;/p&gt;  &lt;p&gt;Anywho, I’m all caught up on sleep, have a week of family obligations, and am off to Vail for a week right after Christmas for a well deserved vacation. I keep telling myself I’ll blog more, but school is keeping me fairly hemmed up. Perhaps I’ll make a better effort come next year. Have a wonderful holiday season everyone!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=112006" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category></item><item><title>Vista Gigabit Performance Issues: Fixed</title><link>http://jaysonknight.com/blog/archive/2008/11/08/vista-gigabit-performance-issues-fixed.aspx</link><pubDate>Sat, 08 Nov 2008 17:29:29 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:111522</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Like quite a few folks, I&amp;#39;ve been plagued by issues with Vista on a Gigabit LAN, namely seeing throughput that&amp;#39;s a fraction of what it should be. I tried the fixes Scott Hanselman outlined in his &lt;a href="http://www.hanselman.com/blog/WiringTheHouseForAHomeNetworkPart5GigabitThroughputAndVista.aspx" target="_blank"&gt;excellent Vista Gigabit post&lt;/a&gt; to no avail. The Google gods must have been smiling on me yesterday because I found an article I had not seen before: &lt;a href="http://www.petri.co.il/improve_windows_vista_network_performance.htm" target="_blank"&gt;Disable Vista network autotuning&lt;/a&gt;. In a nutshell, open an elevated command prompt and run the following:&lt;/p&gt; &lt;p&gt;netsh int tcp set global autotuninglevel=disable&lt;/p&gt; &lt;p&gt;I&amp;#39;m now seeing sustained throughput between Vista and other machines on my network in the neighborhood of 80-100 MB/s. From what I&amp;#39;ve read, none of these &amp;#39;fixes&amp;#39; are needed when all machines are utilizing SMB 2.0, e.g. Vista &amp;lt;-&amp;gt; Windows 2008 or other Vista clients. Regardless, it&amp;#39;s great to finally be able to utilize all of my LAN bandwidth after almost a year of frustration.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=111522" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Tools+and+Resources/default.aspx">Tools and Resources</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Vista+and+WinFX/default.aspx">Vista and WinFX</category></item><item><title>Obama Picks UNCC As His Last Stop Before Election</title><link>http://jaysonknight.com/blog/archive/2008/11/03/obama-picks-uncc-as-his-last-stop-before-election.aspx</link><pubDate>Mon, 03 Nov 2008 05:56:12 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:111483</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Barack Obama has chosen UNCC (University of North Carolina at Charlotte, the university I&amp;#39;m attending) as &lt;a href="http://www.publicrelations.uncc.edu/default.asp?id=15&amp;amp;objId=452" target="_blank"&gt;his last stop before the elections&lt;/a&gt; on Tuesday. It&amp;#39;s pretty telling when a state that can only be described as historically &lt;em&gt;very&lt;/em&gt; red is not only a democratic candidate&amp;#39;s last stop, but is also seemingly going to go blue, exactly what kind of change people actually want.&lt;/p&gt; &lt;p&gt;We&amp;#39;re honored to have you here on the eve of the elections.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=111483" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category></item><item><title>eTrade Commercial: Mobile Trading Baby</title><link>http://jaysonknight.com/blog/archive/2008/10/20/etrade-commercial-mobile-trading-baby.aspx</link><pubDate>Mon, 20 Oct 2008 05:23:54 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110624</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I don&amp;#39;t know why I find this commercial so hilarious, but I can&amp;#39;t help but giggle out loud whenever I see it. Brilliant piece of marketing on the part of eTrade. &lt;/p&gt; &lt;p&gt;&lt;embed src="http://www.youtube.com/v/3xQLTxvDkk4&amp;amp;hl=en&amp;amp;fs=1" width="425" height="344" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110624" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Opinions/default.aspx">Opinions</category><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/TV+and+Movies/default.aspx">TV and Movies</category></item><item><title>CS Tidbit #28: Creating Nested Navigation Bar Items</title><link>http://jaysonknight.com/blog/archive/2008/09/26/cs-tidbit-28-creating-nested-navigation-bar-items.aspx</link><pubDate>Fri, 26 Sep 2008 20:51:57 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110372</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;In my previous CS Tidbit, I outlined how to &lt;a href="http://jaysonknight.com/blog/archive/2008/09/22/cs-tidbits-27-add-an-archive-page-for-blogs.aspx"&gt;add an archive page to your blogs&lt;/a&gt; to free up some sidebar real estate while still giving readers access to our post history. Of course, now that we have this in place, how do we let our readers know where it is? In the past, adding links to one of the standard sidebar widgets meant manually adding entries to various skin files, and doing it in each theme on our site. There was also really no way to control security on the links either without adding some more customizations, ie if you had a link that you only wanted displayed to logged in users, or to owners of a particular section (Sharepoint calls this Security Trimming, I&amp;#39;m not sure what CS refers to it as).&lt;/p&gt; &lt;p&gt;Fortunately for us, CS now supports creating nested navigation bar items via the control panel, and also allows us to specify security attributes to control what audience gets to see these links. In this tidbit, I&amp;#39;ll outline how to accomplish this. Our end result is going to look something like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="75" alt="image" src="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image_thumb.png" width="476" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This is just the standard navigation bar that you&amp;#39;d see in CS2008.5&amp;#39;s Hawaii theme, along with 4 nested navigation bar items. To create these items, navigate to Control Panel and select Site Administration, and then head over to Site Theme. The url to this page will look something like http://&amp;lt;yourSite.com&amp;gt;/ControlPanel/Settings/ThemeConfiguration.aspx. In the theme configuration editor, select the Header tab and look for the section called Navigation Bar. You&amp;#39;ll see a box similar to the one pictured here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image_3.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="168" alt="image" src="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image_thumb_3.png" width="531" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In this example, we&amp;#39;ll add a link to the archive page we created in the previous CS Tidbit. Click the Add button, and then fill in information similar to the following:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="340" alt="image" src="http://jaysonknight.com/misc/CSTidbit28CreatingNestedNavigationBarIte_F555/image_thumb_4.png" width="426" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once you&amp;#39;re done putting in the correct info, click save. You can then click and drag the newly created link to the section where you&amp;#39;d like it to be nested under. It&amp;#39;s actually a pretty slick control. Once you have it where you want, click the save button in the lower right hand corner and navigate back to your site. The newly created nested navigation item should be displayed under the section you placed it in. All of this adds some nice navigational touches for your site visitors to be able to find stuff in an easier more consistent manner.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110372" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://jaysonknight.com/blog/archive/tags/CS+Tidbits/default.aspx">CS Tidbits</category></item><item><title>CS Tidbits #27: Add An Archive Page For Blogs</title><link>http://jaysonknight.com/blog/archive/2008/09/22/cs-tidbits-27-add-an-archive-page-for-blogs.aspx</link><pubDate>Mon, 22 Sep 2008 21:13:57 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110353</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;It&amp;#39;s been a while since I&amp;#39;ve posted any CS Tidbits, but now that Community Server 2008.5 has been released, it&amp;#39;s time to get back in gear and post some tips and tricks that I&amp;#39;m learning as I get to know this new release.&lt;/p&gt; &lt;p&gt;If you&amp;#39;re like me and have been blogging for a non-trivial amount of time (over 5 years in my case), an archived list view of your posts starts to look a bit unwieldy. CS 2008.5 does ship with an archive widget to display in your blog&amp;#39;s sidebar, however this will lead to a long page length, and doesn&amp;#39;t look as tidy as it could if the archive list could live in its own page. Fortunately for us, adding a dedicated archive page is easy enough. First, create a blank .aspx page in your /themes/blogs/hawaii directory, and name it archive.aspx. Then just add the following markup to it:&lt;/p&gt; &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="background-color:#ffff00;"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; EnableViewState=&amp;quot;False&amp;quot; MasterPageFile=&amp;quot;theme.Master&amp;quot; Inherits=&amp;quot;CommunityServer.Blogs.Controls.CSBlogThemePage&amp;quot; %&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;bbcr&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CommonBreadCrumbArea&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Common&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSBlog:WeblogData&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;LinkTo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;HomePage&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#ff0000;"&gt;&amp;amp;raquo;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSBlog:WeblogData&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;LinkTo&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;archive&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Archive&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;tr&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSControl:Title&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;IncludeSectionOrHubName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;IncludeSiteName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;EnableRendering&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Tag&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;H1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;CssClass&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CommonTitle&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSBlog:WeblogData&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Archive&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSControl:Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;bcr&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CommonContentBox&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CommonContentBoxContent&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CSBlog:ArchiveDataItemList&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;div&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;That should be all you need to do as the URL for the page is already wired up correctly in your SiteUrls.config file by the following line:&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;url&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt; = &lt;span style="color:#0000ff;"&gt;&amp;quot;weblogarchive&amp;quot;&lt;/span&gt;  &lt;span style="color:#ff0000;"&gt;path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;##blogdirectory##archive.aspx&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;pattern&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;##blogName##/archive.aspx&amp;quot;&lt;/span&gt;  &lt;span style="color:#ff0000;"&gt;physicalPath&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;##blogthemeDir##&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;vanity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{2}?App=${{app}}&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;page&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;archive.aspx&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;indexable&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;To view the newly created archive page, navigate to &amp;lt;yourSite&amp;gt;/blogs/&amp;lt;blogName&amp;gt;/archive.aspx. Of course you&amp;#39;ll want to add a link to this somewhere on your blog. I&amp;#39;ll cover how to create a nested navigation bar for blog links in a future CS Tidbit post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110353" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/CS+Tidbits/default.aspx">CS Tidbits</category></item><item><title>JaysonKnight.com Upgraded To Community Server 2008.5</title><link>http://jaysonknight.com/blog/archive/2008/09/22/jaysonknight-com-upgraded-to-community-server-2008-5.aspx</link><pubDate>Mon, 22 Sep 2008 15:00:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110351</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Community Server 2008.5 was &lt;a href="http://dev.communityserver.com/blogs/announcements/archive/2008/09/17/community-server-2008-5-not-your-traditional-point-release.aspx" target="_blank"&gt;released recently&lt;/a&gt;. The half dozen or sites that I&amp;#39;ve upgraded over the weekend went without a hitch; the new Windows Client upgrader application is very easy to use...the toughest part is waiting for all of your site files to finish FTP&amp;#39;ing back up to your site. The only downside I&amp;#39;ve seen for CS 2008.5 is that it only ships with one theme, which is called Hawaii. I was initially underwhelmed by this theme, but after getting to know it a little better it&amp;#39;s grown on me. Total time to get JK.com upgraded and customized was about 6 hours total, although I do have a few non-standard tweaks that I always have to re-implement for new CS releases.&lt;/p&gt;
&lt;p&gt;I do plan on starting up my &lt;a href="http://jaysonknight.com/blog/archive/tags/CS+Tidbits/default.aspx"&gt;CS Tidbits&lt;/a&gt; post category again as well with some common tweaks, plus outlines of new features in CS 2008.5. I can say that my first reaction to this release is that performance has been improved quite a bit. Kudos to Telligent for a fantastic CS release!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110351" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Site+News/default.aspx">Site News</category></item><item><title>One Semester Down, Six To Go</title><link>http://jaysonknight.com/blog/archive/2008/08/24/one-semester-down-six-to-go.aspx</link><pubDate>Sun, 24 Aug 2008 23:57:53 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110326</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;a href="http://jaysonknight.com/misc/OneSemesterDownSevenToGo_1136F/images.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;margin:5px;border-left:0px;border-bottom:0px;" height="85" alt="images" src="http://jaysonknight.com/misc/OneSemesterDownSevenToGo_1136F/images_thumb.jpg" width="143" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;My career transformation is 1/7th complete, tack on 6 credit hours to my official transcript...unfortunately 6 hours is the max you can take during a summer session but it was certainly better than nothing. Classes went well, and I&amp;#39;m actually glad I decided to do a summer session since it allowed me to get back into the swing of things as well as get to know the UNCC campus. The real pain begins tomorrow when I start a 17 hour load for fall semester. I did not choose 17 hours by choice; in order for me to have the requisite 60 hours to enter UNC as a Junior next year I&amp;#39;ll have to do 17 hours this semester and at least 16 next semester. The good news is that I&amp;#39;ll get to take next summer off (or at least just do a light load in preparation for Chapel Hill).&lt;/p&gt;  &lt;p&gt;Thankfully I also get to start taking classes in my major this semester as well. Even though I&amp;#39;m only 6 hours into it, I know in my heart of hearts I&amp;#39;m making the right decision. Some of my friends think I&amp;#39;ve lost my mind, but overall the reaction has been positive. I cannot remember the last time I was happier. I have been doing some web consulting on the side, and have launched a couple of new sites for some local businesses and artists, and will probably continue to to do so since it wasn&amp;#39;t computers and coding that I left...just IT. But overall confidence is very high, and here&amp;#39;s looking forward to a great fall semester.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110326" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category></item><item><title>So Long, And Thanks For All The Fish</title><link>http://jaysonknight.com/blog/archive/2008/07/09/so-long-and-thanks-for-all-the-fish.aspx</link><pubDate>Wed, 09 Jul 2008 19:38:48 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110301</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;&lt;a href="http://jaysonknight.com/misc/SoLongAndThanksForAllTheFish_D0FC/so_long_and_thanks_for_all_the_fish.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;margin:5px;border-left:0px;border-bottom:0px;" height="244" alt="so_long_and_thanks_for_all_the_fish" src="http://jaysonknight.com/misc/SoLongAndThanksForAllTheFish_D0FC/so_long_and_thanks_for_all_the_fish_thumb.jpg" width="229" align="left" border="0" /&gt;&lt;/a&gt; I&amp;#39;ve been a software developer for almost 7 years now. To say I&amp;#39;ve had a good run at it would be an understatement (both financially and via life satisfaction)...I have no college degree, and learned most of my trade both on the job and in my spare time. Computers are one of the few fields where you can rise quickly through pure hard work and dedication without the requirement of a degree. With the proliferation of online communities and blogging, getting networked in to make even more of a name for yourself and over the years I&amp;#39;ve met some amazing people via blogging and communities. So why the title of this post?&lt;/p&gt; &lt;p&gt;I&amp;#39;ve decided to move on.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;*pause for effect*&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So what would possess someone with so much time and energy invested in his career to walk away from close to 6 figures a year, reasonable working hours, and a good working environment? The answer really isn&amp;#39;t that simple actually and is the culmination of several different factors. And to be honest, I&amp;#39;m not exactly walking away from anything. Over the years, I&amp;#39;ve gained experience that can never be taken away, and computers will always be one of my main passions...there&amp;#39;s no way I could have gotten to where I am today if they weren&amp;#39;t. Everything I&amp;#39;ve learned will be easily transferable to my future endeavors. The short answer is that people change over time. What they want out of life changes, their goals and desires that they strive for. I&amp;#39;ve been in this business in some way shape or form since I was in my early twenties, and what I wanted out of life then is completely different than what I want now at age 30. Having a stable desk based job was great, but about 2 years ago I noticed myself getting restless, going in to work day after day, watching the months roll by...and unfortunately I started to grow discontent with both my career and the industry as a whole. Again, things change over time...what makes a person happy today may not necessarily make them happy 5 years from now.&lt;/p&gt; &lt;p&gt;So needless to say that after 2 years of more or less just going through the motions of the daily grind, I came to the incredibly hard decision that it&amp;#39;s time for a change. Cube life just doesn&amp;#39;t suit me anymore. Staring into a computer monitor for 9 hours a day has taken its toll, and after a lot of soul searching and talking to dozens (if not hundreds) of folks both in this business and otherwise the choice became pretty obvious: It was time to exit stage right more towards the top of my career rather than let my growing disinterest and restlessness start to jeopardize my future endeavors. So that&amp;#39;s what I&amp;#39;ve done.&lt;/p&gt; &lt;p&gt;My relationship with my former employer has been severed and as of now I am &lt;strong&gt;&lt;em&gt;out&lt;/em&gt;&lt;/strong&gt; of the world of Corporate IT. I&amp;#39;m back in school fulltime working towards my B.A. Chemistry (which was my original major way back when I wanted to be a physician or a chemist, pre dotcom boom). I&amp;#39;ll also be pursuing more of my creative interests as well, such as music and music production by taking classes related to those disciplines. I&amp;#39;m still young, and now is the time when there aren&amp;#39;t other pressing obligations that would prohibit such a radical lifestyle change. The end goal as of now is either medical school, or post graduate work in Chemical Engineering. Outside of computers, chemistry and music were my biggest passions. The dotcom era steered me away from them...and while it was an amazing experience it is time to get back to my roots. That&amp;#39;s not to say that I won&amp;#39;t be doing any moonlighting...a complete severance might be too severe, but for now the main focus is school. If I bust my ass, I can have my B.A. in 2 years. I&amp;#39;ll do a year here at the local university, and will then transfer to UNC to complete my B.A.&lt;/p&gt; &lt;p&gt;So how will this transition affect my blog, and any loyal readers I have left? That I don&amp;#39;t know, but there will definitely be some changes in the direction of my writings. The lack of content over the past 2 years compared with previous time periods should be a pretty good indication of my growing discontent with the software industry. I&amp;#39;m sure I will still make technical posts from time to time as I still have several hobby projects I&amp;#39;m working on, but any content related to the business of software and Corporate IT will surely be few and far between, if at all. Seeing as school will be my number one priority, I&amp;#39;m sure content related to my Chemistry endeavors will begin once I start my major coursework. This will not become a student blog, but the focus from .Net and software development will surely change to more science and music. I realize I&amp;#39;ll lose some readers in the process, but I also hope to start getting in touch with a new audience as well. Hell, maybe just stick around to keep tabs on my progress if you&amp;#39;d like. It promises to be an amazing journey, and knowing me, a very interesting one as well.&lt;/p&gt; &lt;p&gt;I will still be lurking around in areas such as Community Server, as well as reading most of your blogs in the little spare time I&amp;#39;ll have going forward. I don&amp;#39;t think I would have been half the developer that I was without having read your posts and gotten to know you over the past few years...I attribute much of my success to the circle of friends I&amp;#39;ve made through this blog and other communities. You guys know who you are, and you pushed me to be a better developer, and to give back whatever I could in the process. I&amp;#39;ll be keeping up with you guys throughout this journey.&lt;/p&gt; &lt;p&gt;So that&amp;#39;s it. Or is it? The only thing that is changing is my focus and where my efforts are directed. If I was able to accomplish what I did in the software industry, I have confidence in myself that my future endeavors should be equally as rewarding. I have had some amazing times in the software biz, and have learned more than I ever thought my tiny brain could handle. While cubicle life ultimately took its toll on me, I wouldn&amp;#39;t trade any of it for anything else. Now at age 30 because of my years in the industry, I feel I&amp;#39;m better equipped for this new path than I ever could have been had I not pursued computers...I&amp;#39;ll always be incredibly grateful for that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110301" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Opinions/default.aspx">Opinions</category><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category><category domain="http://jaysonknight.com/blog/archive/tags/School/default.aspx">School</category></item><item><title>School Starts on Monday</title><link>http://jaysonknight.com/blog/archive/2008/07/06/school-starts-on-monday.aspx</link><pubDate>Sun, 06 Jul 2008 23:25:34 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110297</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;As of this coming Monday (7/7/2008) I am a college student once again. I am taking 6 hours worth of classes here at the University of North Carolina at Charlotte, 2nd summer session.&lt;/p&gt; &lt;p&gt;I also have other &lt;em&gt;huge&lt;/em&gt; news to write about, but everything isn&amp;#39;t quite nailed down yet so I don&amp;#39;t want to jump to any foregone conclusions only to perhaps have to retract them later on. More than likely, things are going to be taking a very new direction around here though. Stay tuned.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110297" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Western Digital VelociRaptor: How Fast Is Too Fast?</title><link>http://jaysonknight.com/blog/archive/2008/05/31/western-digital-velociraptor-how-fast-is-too-fast.aspx</link><pubDate>Sat, 31 May 2008 17:32:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110286</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;After several years of minimal upgrades, the highly acclaimed &lt;a href="http://www.wdc.com/en/products/products.asp?DriveID=189" target="_blank"&gt;Western Digital Raptor&lt;/a&gt; has gotten a serious upgrade: Enter the &lt;a href="http://www.westerndigital.com/en/products/products.asp?DriveID=459" target="_blank"&gt;WD VelociRaptor&lt;/a&gt;, which wasn&amp;#39;t supposed to be released to the masses until mid June but is &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822136260&amp;amp;Tpk=velociraptor" target="_blank"&gt;available now over at Newegg&lt;/a&gt;. I&amp;#39;ve been a subscriber to Jeff Atwood&amp;#39;s line of thinking for a long time now...that hard drive speed is the &lt;a href="http://www.codinghorror.com/blog/archives/000800.html" target="_blank"&gt;single most important factor&lt;/a&gt; in the overall speed of a machine and therefore should not be skimped on. Buy the fastest drive you can afford as your main boot drive, and then just buy a larger/slower/cheaper drive to stuff all of your data in.&lt;/p&gt; &lt;p&gt;Regardless of what line of reasoning you subscribe to, there is simply no reason not to buy one of the new VelociRaptor drives if you can afford it. I got mine in the mail earlier this week and decided to run a simple benchmark using &lt;a href="http://www.hdtune.com/" target="_blank"&gt;HD Tune&lt;/a&gt; on it versus my older SATA I 150 gigabyte Raptor. Most of the hardware sites are claiming about 35% better performance, however that&amp;#39;s not what I&amp;#39;m seeing:&lt;/p&gt; &lt;p&gt;Old School Raptor (SATA I 150 gigs):&lt;/p&gt; &lt;p&gt;&lt;a href="http://jaysonknight.com/misc/WesternDigitalVelociRaptorHowFastIsTooFa_B9BA/Raptor.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="462" alt="Raptor" src="http://jaysonknight.com/misc/WesternDigitalVelociRaptorHowFastIsTooFa_B9BA/Raptor_thumb.png" width="574" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;New School VelociRaptor (SATA II 300 gigs):&lt;/p&gt; &lt;p&gt;&lt;a href="http://jaysonknight.com/misc/WesternDigitalVelociRaptorHowFastIsTooFa_B9BA/Veloci.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="462" alt="Veloci" src="http://jaysonknight.com/misc/WesternDigitalVelociRaptorHowFastIsTooFa_B9BA/Veloci_thumb.png" width="574" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;As should be pretty apparent, these numbers show a much better gain than 35%. I ran the tests several times to make sure I was hallucinating Of course real world usage is a completely different story, but the cold hard numbers don&amp;#39;t lie...the new VelociRaptors are beating my older Raptor by more than 50% in each category. And yes, my machine definitely feels a lot faster now as well. Boot time is down by 15-20 seconds (well under a minute to desktop now), applications fly to life when double clicked, games load in about half the time. The most amazing thing about this drive is that they got all of this extra performance using 2.5&amp;quot; platters. The drive may look pretty beefy, but 70% of that surface area is actually just a heatsink with the drive itself situated in the middle. Of course it being so small means it&amp;#39;s completely silent as well. I use sound dampening in my case (rubber grommets), but the older Raptor could reach aircraft carrier levels during I/O intensive operations.&lt;/p&gt; &lt;p&gt;Expensive? Yes. Bleeding edge? Certainly. The best upgrade for your machine for the money? Absolutely. If you&amp;#39;ve got 300 bucks laying around and want to see noticeable performance improvements in your machine, this is a no-brainer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110286" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Tools+and+Resources/default.aspx">Tools and Resources</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category></item><item><title>DrumSTRONG 2008: A Smashing Success -- Thank You Scott and Mason!</title><link>http://jaysonknight.com/blog/archive/2008/05/06/drumstrong-2008-a-smashing-success-thank-you-scott-and-mason.aspx</link><pubDate>Tue, 06 May 2008 23:10:51 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:110278</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;a href="http://jaysonknight.com/misc/DrumSTRONG2008_106E1/drumSTRONG2008052.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;margin:0px 5px 0px 0px;border-left:0px;border-bottom:0px;" height="244" alt="drumSTRONG 2008 052" src="http://jaysonknight.com/misc/DrumSTRONG2008_106E1/drumSTRONG2008052_thumb.jpg" width="164" align="left" border="0" /&gt;&lt;/a&gt;Three years ago, a friend of my family&amp;#39;s teenage son was diagnosed with cancer, and was given fairly bleak chances of making it through the ordeal. It was a crushing blow to the family. For the full story, &lt;a href="http://sports.espn.go.com/oly/news/story?id=1845496" target="_blank"&gt;read the ESPN piece on Mason&lt;/a&gt; (he&amp;#39;s the last story). Mason would go on to conquer the cancer inside his body, and has been cancer free for a couple of years now. Against all odds. And it was during this time that he reached out to one of my idols, Lance Armstrong...the 2 had a bit of dialogue during the ordeal, and would eventually meet in real life.&lt;/p&gt; &lt;p&gt;It was during one of his meetings with Lance that Mason came up with the idea for &lt;a href="http://www.drumstrong.org/" target="_blank"&gt;drumSTRONG&lt;/a&gt;, whose &lt;a href="http://www.drumstrong.org/mission.htm" target="_blank"&gt;mission&lt;/a&gt; is simple: To beat the shit out of cancer, and raise awareness through drumming. Each year they&amp;#39;ve upped the ante just a little bit: The first year was 24 continuous hours of drumming, up to this year which was 26 straight hours. A secondary goal was to get into the Guinness World Record book for having the longest continuous group drumming event. I&amp;#39;m sure we succeeded on both fronts.&lt;/p&gt; &lt;p&gt;I personally committed to 10 hours of drumming over the 26 hour spread, and actually ended up doing more along the lines of 12 hours total. My hands are paying dearly this week, but that pain is outweighed by the pain that was lifted from me mentally during the event. I have &lt;a href="http://jaysonknight.com/media/g/photos/tags/drumSTRONG+2008/default.aspx"&gt;posted several photos&lt;/a&gt; of the event in my photo gallery, and more photos/videos will be posted to the drumSTRONG site over the coming days.&lt;/p&gt; &lt;p&gt;I&amp;#39;ve been playing drums of some sort since I was barely walking, and have been doing formal hand percussion gatherings for almost 15 years. Unfortunately it is something I haven&amp;#39;t made as much time for lately, but after this weekend I&amp;#39;m making it a personal goal to start rounding up some of the talent here in Charlotte for some formal jams. Given my background, this event was a no-brainer. In the end over 2,000 people showed up...there aren&amp;#39;t any words that can describe what the event did for everyone who participated. It was without a doubt one of the most moving experiences of my life, and I cannot wait to do it for 27 hours next year. Thank you Mason for this amazing concept, and thank you Scott for having the tenacity to actually make it happen. You&amp;#39;re both amazing people, and quite simply put the world needs more of you.&lt;/p&gt; &lt;p&gt;The image in this post is of me and my best friend 20 minutes before we hit the 26 hour mark. The skin was literally peeling off my hands at this point, but I felt no pain surprisingly. Actually in hindsight, it isn&amp;#39;t surprising at all.&lt;/p&gt; &lt;p&gt;Keep. Drumming. Beat. Cancer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=110278" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Photos/default.aspx">Photos</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Music/default.aspx">Music</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Broke The Mountain Bike Out Of Storage</title><link>http://jaysonknight.com/blog/archive/2008/03/09/broke-the-mountain-bike-out-of-storage.aspx</link><pubDate>Sun, 09 Mar 2008 19:46:38 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:109331</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I used to mountain bike. A lot. For some inexplicable reason I stopped a few years ago when other priorities manifested themselves, but recently I decided to start up again. While I&amp;#39;m not horribly out of shape, I&amp;#39;m definitely not the rider I used to be...but I aim to change this soon as the legs start getting used to pedaling again. I never have been much of a weight lifting guy, but the muscle group I&amp;#39;ve gravitated towards working when I do lift has been legs, and that&amp;#39;s also apparent by the sports I choose to do (cycling, skiing).&lt;/p&gt; &lt;p&gt;For any mountain bikers who read this blog, I ride a &lt;a href="http://www.bikepedia.com/QuickBike/BikeSpecs.aspx?Year=2000&amp;amp;Brand=GT&amp;amp;Model=XCR-2000&amp;amp;Type=bike" target="_blank"&gt;GT XCR 2000&lt;/a&gt;, although mine is similar to the one mentioned in that link in frame only; most of the parts have been upgraded to Shimano XT models, I have a minimalist style seat, and carbon stem/bars/seatpost...the bike tips the scales at about 27lbs and more upgrades for weight savings are planned. While it&amp;#39;s an older bike, the system that GT invented, i-Drive (which stands for independent drive) is still hailed as an engineering marvel for full suspension bikes as it was one of the first designs to eliminate pedal bob and brake jacking without having to resort to unwieldy looking linkage systems which were heavy and complicated: The more moving parts a bike has, the higher the chance of failure on one of those parts. Overall it&amp;#39;s a very fun bike to ride. See you guys on the trails!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=109331" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Heading Back To School, Finishing Up My Degree</title><link>http://jaysonknight.com/blog/archive/2008/03/08/heading-back-to-school-finishing-up-my-degree.aspx</link><pubDate>Sat, 08 Mar 2008 19:46:07 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:109321</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;After a long round of thinking about the future, my short and long term goals, and my overall level of happiness, I&amp;#39;ve decided to finally head back to school to finish up my degree. For those of you who don&amp;#39;t know, I dropped out of college my sophomore year to pursue my present career track in software development which at the time (the .com boom) was one of the better decisions I&amp;#39;ve ever made. I&amp;#39;ve always considered myself a student of life itself and love learning, so the logical progression of things was always to head back to school at some point and obtain my 4 year degree. That time is most definitely now more than ever as A) I&amp;#39;m not getting any younger and B) better now than later when it&amp;#39;ll be even tougher given other life constraints.&lt;/p&gt; &lt;p&gt;I&amp;#39;ve been accepted to the local university here in Charlotte and will be starting up classes in mid-May. Initially I&amp;#39;ll be doing a light course load (8 hours) since I will be of course working fulltime in parallel. I&amp;#39;m going back in declared as my original major: Biochemistry. At this point in my career, I don&amp;#39;t feel that a computer science degree would do me much good, and my true passion has always been one for the science disciplines. I may also minor in something a little off the beaten path like music theory since that&amp;#39;s my other true passion, but at this point I&amp;#39;m taking it one step at a time so as to avoid any type of burnout. If all goes to plan I&amp;#39;ll obtain my degree in about 2.5 years (or as little as 2 if I bust my ass). My goal is to move on to &lt;a href="http://en.wikipedia.org/wiki/University_of_North_Carolina_at_Chapel_Hill" target="_blank"&gt;UNC-Chapel Hill&lt;/a&gt; once I get the basics knocked out here in Charlotte.&lt;/p&gt; &lt;p&gt;I do have plans for myself after that, and there is a decent chance that it will not involve computers, at least not in the sense of writing software for them, however that&amp;#39;s a discussion outside the realm of this post. One of my dreams has always been to attend medical school, so I&amp;#39;ll leave it at that. It seems like a long ways off though, and no doubt intentions will change between now and then as they always do. I would never fully leave the software realm, and at the very least a degree will open up new doors within the software/IT realm that are unavailable to me sans degree. For me it&amp;#39;s all about grabbing life by the horns and achieving all the goals that I know I&amp;#39;m capable of, and giving new doors an opportunity to present themselves.&lt;/p&gt; &lt;p&gt;The silence has been deafening around here lately, but for the most part things have been alright. We still don&amp;#39;t know what&amp;#39;s up with my Mother&amp;#39;s health, and my dog has gone through yet another round of scariness (he&amp;#39;s been diagnosed with kidney disease now, but it&amp;#39;s manageable via special diet). My new condo is slated to be done sometime in early summer, which is the next major milestone in my life: The thoughts of finally owning my own place are amazing! Until next time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=109321" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Best. Wedding. Ever. Sorry Ladies, Matt Brandau Is Off The Market</title><link>http://jaysonknight.com/blog/archive/2008/01/01/best-wedding-ever-sorry-ladies-matt-brandau-is-off-the-market.aspx</link><pubDate>Tue, 01 Jan 2008 21:11:41 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:107806</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A very good friend of mine, Matt Brandau recently got married to a wonderful woman, and I had the pleasure of attending. &lt;a href="http://jaysonknight.com/photos/category3929.aspx"&gt;Here are some photos from the festivities&lt;/a&gt;. It was without a doubt the most fun reception I&amp;#39;ve ever attended...Matt is a professional bassist (shameless plug, he now plays with &lt;a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;amp;friendid=12037150" target="_blank"&gt;The Old Ceremony&lt;/a&gt;; an amazing band out of Chapel Hill...definitely check out some of their music @ the link above) with a degree in music from UNC. All of his previous bands were in attendance and got up on stage at one point or another to perform. Hilarity ensued, and it&amp;#39;ll be a tough act to follow whenever I get married one day.&lt;/p&gt; &lt;p&gt;Congratulations Matt...you guys are a beautiful couple and I&amp;#39;m sure you&amp;#39;ll have a lifetime of happiness together. All of the &amp;#39;core&amp;#39; crew is married up; my buddy Jason Dulin and I are the only bachelors left.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sidenote:&lt;/strong&gt; Where the heck has Jayson been lately? Taking a break from blogging. Actually, ever since I&amp;#39;ve discovered Twitter (&lt;a href="http://twitter.com/JaysonKnight" target="_blank"&gt;I&amp;#39;m here&lt;/a&gt;) I&amp;#39;ve been posting there quite a bit. Definitely not a substitute for blogging, but it&amp;#39;s been a great way to stay connected with a lot of folks I&amp;#39;ve met in the blogosphere. I&amp;#39;ve run this site for 4 years, and have close to a thousand posts, so a break was probably needed, if not earned. I&amp;#39;m not making any new year&amp;#39;s resolutions such as &amp;quot;I plan to make X number of posts this year&amp;quot; because quite simply I don&amp;#39;t know when I&amp;#39;ll get around to regular posting again. It&amp;#39;ll be sooner than later so definitely stay subscribed. From a technical perspective, Sharepoint 2007 has been taking up a lot of my time, so expect some posts soon about my adventures in MOSS-land.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sidenote++:&lt;/strong&gt; My main new year&amp;#39;s resolution is to quit smoking. I&amp;#39;m getting on the &lt;a href="http://en.wikipedia.org/wiki/Smoking_pill" target="_blank"&gt;cessation pill&lt;/a&gt; in the next week or 2, it&amp;#39;s worked miracles for some of my family members (some of them with 30+ years of smoking history). I wish all of you the very best of 2008...something tells me it&amp;#39;s gonna be the best year yet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=107806" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Photos/default.aspx">Photos</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>eVGA 8800GT Video Card -- The Way Games Are Supposed To Be Played</title><link>http://jaysonknight.com/blog/archive/2007/11/10/evga-8800gt-video-card-the-way-games-are-supposed-to-be-played.aspx</link><pubDate>Sat, 10 Nov 2007 20:24:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:106716</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The title of this post is a blatant rip off of nVidia&amp;#39;s current tagline; I felt it rings more true than ever with nVidia&amp;#39;s newest offering: &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814130303" target="_blank"&gt;Their 8800GT&lt;/a&gt; is out of this world when it comes to price/performance in video cards. The story behind how I got mine is more interesting than it should be though. I was fortunate enough to purchase one from MWave the day after they were released (most eTailers sold out within hours), and had it overnighted to me for the very reasonable price of about $280.00 for a card that performs better than most cards costing twice as much.&lt;/p&gt; &lt;p&gt;To make a long story short, the first card I received was DOA. No video signal, and Device Manager would not recognize the card. The real fun came &lt;em&gt;after&lt;/em&gt; I pulled the card out of my machine though: I got about half a dozen blue screens in rapid succession, and was finally able to coax Vista into safe mode to start digging around and yanking out drivers. That was fruitless though; attempting to remove any type of drivers triggered blue screens as well, so I ended up having to reinstall Vista. I hate to blame this on the card itself, but all fingers seemed to be pointing that way. I&amp;#39;ve read of no other horror stories like mine on the web, so no doubt I am more the exception than the norm.&lt;/p&gt; &lt;p&gt;Regardless, eVGA RMA&amp;#39;d the card for me, and about a week later I received the replacement part. I plopped it in my machine, fired it up, and all was well. To say the card is amazing would be an understatement. I&amp;#39;m getting 12,500 marks in 3DMark 06, and that will increase to about 16,000 once I go SLI. DirectX 10 on Vista has to be seen to be believed: Bioshock is like a whole new game now to the point that I started over from the beginning just to see what the newly textured worlds would look like. All of the games in the Steam portfolio now offer 16xQ CSAA as an option on the advanced video setup screen. Again, the difference that setting makes is unreal, and even with all settings maxed out in every game I own, the card has experienced nary a stutter. The only game I&amp;#39;ve had issues with is the Crysis demo, which refuses to start for some reason, but I suspect that&amp;#39;s related to running Vista x64 more than anything else. I have confidence the final release will be fine.&lt;/p&gt; &lt;p&gt;As stated before, most eTailers are sold out of this card until the end of this week. If you&amp;#39;ve got the spare cash and need an upgrade, I would highly recommend ordering one of these cards: It&amp;#39;s like having an entirely new machine for a fraction of the price. Don&amp;#39;t get suckered into buying one of the factory overclocked versions. I&amp;#39;ve maxed out the clock settings on mine via nTune and haven&amp;#39;t had any issues. &lt;/p&gt; &lt;p&gt;This card should be causing ATI execs fits right now as they won&amp;#39;t have an answering product for almost 2 months. I personally will not be going back to ATI any time soon. Fantastic job nVidia, you&amp;#39;ve gotten one of your original customers back with the release of this card.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=106716" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Opinions/default.aspx">Opinions</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Gameage/default.aspx">Gameage</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Valve's Orange Box -- A Great Way to Spend Less Time With Friends and Family</title><link>http://jaysonknight.com/blog/archive/2007/10/14/valve-s-orange-box-a-great-way-to-spend-less-time-with-friends-and-family.aspx</link><pubDate>Sun, 14 Oct 2007 19:10:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:105969</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;First off, &lt;a target="_blank"&gt;add me as friend&lt;/a&gt; over on &lt;a href="http://steamcommunity.com/id/jaysonknight" target="_blank"&gt;Steam Community!&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If the little things in life like spending quality time with family, friends, pets, etc are important to you then I would highly recommend &lt;em&gt;not&lt;/em&gt; purchasing the latest offering from Valve Software: &lt;a href="http://en.wikipedia.org/wiki/The_Orange_Box" target="_blank"&gt;The Orange Box&lt;/a&gt;. The majority of my weekend has been spent playing a smattering of Half-Life 2: Episode 2, Portal, and Team Fortress 2. Of the 3, I&amp;#39;ve spent most of the time playing Portal which from a purely gameplay point of view is one of the more amazing games I&amp;#39;ve ever played. I see it as more of a proof of concept and am sure Valve will be incorporating some of the coolness factor exhibited within in future titles.&lt;/p&gt; &lt;p&gt;Half-Life 2 E2 is of course pretty amazing as well. It&amp;#39;s easy to see that some portions of the gaming engine have been rewritten and registers pretty high on the coolness factor. It is simply amazing looking, and is fairly lean as well as it runs very nicely on my aging ATI 1950 Pro video card with all settings maxed out.&lt;/p&gt; &lt;p&gt;And then there is Team Fortress 2. I purposely waited until late last night after the dogs/girlfriend went to sleep before firing it up for the first time. I have not played the original Team Fortress, so the whole concept was pretty new to me; it took a few rounds to get the hang of the overall gameplay. Needless to say, from a playability standpoint it is one of the more enthralling games I&amp;#39;ve played recently. The Spy Class is without a doubt the most fun role to play. For a good overview of the different classes, &lt;a href="http://uk.xbox360.ign.com/articles/791/791200p1.html" target="_blank"&gt;check out IGN&amp;#39;s &amp;quot;Class Warfare&amp;quot; primer&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you&amp;#39;d like to add me as a buddy on Steam, &lt;a href="http://steamcommunity.com/id/jaysonknight" target="_blank"&gt;check out my profile over on Steam Community&lt;/a&gt;&amp;nbsp;and &lt;a target="_blank"&gt;add me as a friend&lt;/a&gt;&amp;nbsp;(note: I still suck at TF2, so bear with me).&lt;/p&gt; &lt;p&gt;I haven&amp;#39;t even finished Bioshock yet, and am now pretty sure it&amp;#39;ll be quite some time before I do. Thank you Valve...when my loved ones send out a search party for lack of communication with me over the coming weeks, I&amp;#39;ll blame you guys!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=105969" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Opinions/default.aspx">Opinions</category><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Gameage/default.aspx">Gameage</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Microsoft PerformancePoint Server Case Study Featuring Skanska USA</title><link>http://jaysonknight.com/blog/archive/2007/10/14/microsoft-performancepoint-server-case-study-featuring-skanska-usa.aspx</link><pubDate>Sun, 14 Oct 2007 18:29:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:105968</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A few weeks ago at Skanska, a film crew showed up at Skanska&amp;#39;s office here in Charlotte to shoot some footage for a then-upcoming case study Microsoft was doing featuring Skanska and the work we&amp;#39;ve done with &lt;a href="http://www.microsoft.com/business/performancepoint/" target="_blank"&gt;MS PerformancePoint Server&lt;/a&gt;. The crew spent the entire day onsite doing interviews with various department heads and directors, as well as getting general shots around the office. I didn&amp;#39;t think much of it until my boss informed us recently that the film they shot was going to be used at the PerformancePoint global launch in New York a few days ago. The film along with MS&amp;#39;s &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000000676" target="_blank"&gt;case study on Skanska and PerformancePoint has now been published to the MS website&lt;/a&gt;,&amp;nbsp;as well as&amp;nbsp;the &lt;a href="http://www.microsoft.com/casestudies/resources/Files/4000000676/SKANSKAPerformancePoint2007.wvx" target="_blank"&gt;video they shot onsite&lt;/a&gt; (~3 minutes long). Yours truly is featured in a couple of spots in the video, thankfully in a non-speaking role. Allen Emerick is the main focus; he&amp;#39;s our boss and he also was part of the keynote at the launch event in NYC.&lt;/p&gt; &lt;p&gt;Even though I don&amp;#39;t know much about PerformancePoint from a technical perspective, it&amp;#39;s a pretty exciting product and Skanska is already doing quite a bit with it. I don&amp;#39;t come from a strong BI background; one of the developers who sits next to me in the office is driving Skanska&amp;#39;s uptake of PerformancePoint (he previously worked for a enormous ISV that specialized in retail BI custom applications, so he&amp;#39;s definitely qualified for this role), so no doubt I&amp;#39;ll be peeking over his shoulder on a regular basis trying to&amp;nbsp;get some knowledge via osmosis. One of the things I really like about Skanska is their willingness to be early adopters of MS software in large production scenarios. We get to play with a lot of big toys early on in MS&amp;#39;s dev cycle. Just one of many perks actually.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sidenote: &lt;/strong&gt;I&amp;#39;d like to extend a huge congratulations to &lt;a href="http://blogbybob.com/" target="_blank"&gt;Robert Mills&lt;/a&gt; (a former colleague and good friend of mine from Microsoft) for having made it through the Skanska interview process. He&amp;#39;ll be joining our group in a developer capacity at the end of this month. I know he&amp;#39;s got&amp;nbsp;a ton to contribute to our team and am looking forward to working with him again after all these years.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=105968" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Links+and+News/default.aspx">Links and News</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Dynamically Inject Validation Controls From A Base ASP.NET Page</title><link>http://jaysonknight.com/blog/archive/2007/09/26/dynamically-inject-validation-controls-from-a-base-asp-net-page.aspx</link><pubDate>Wed, 26 Sep 2007 18:28:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:105422</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I&amp;#39;ve been out of work this week&amp;nbsp;sick (which really sucks...I don&amp;#39;t do very well with idle time, plus I haven&amp;#39;t been sick enough to miss work in many years), so what better time to catch up on some blogging. &lt;/p&gt;
&lt;p&gt;We had an interesting scenario at work recently whereby we needed to dynamically attach a number of asp.net validation controls to various TextBox controls on all of our existing pages. Specifically we had written a custom validation control which would test a control to make sure it didn&amp;#39;t contain any HTML tags (a common enough scenario). This post assumes knowledge of authoring custom asp.net validation controls, i.e. inherit from &lt;code&gt;BaseValidator&lt;/code&gt; and override &lt;code&gt;EvaluateIsValid&lt;/code&gt;. For anyone needing a refresher, &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.basevalidator.aspx" target="_blank"&gt;check out this MSDN post on custom validation controls&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are multiple ways to go about attaching asp.net validation controls to the controls they need to validate, but in the end I settled on going with a base page class that our existing base page could inherit from...you just plug in the base page and everything is automagically wired up during the page request cycle. Given that asp.net validation controls will almost always need to validate TextBox controls (more specifically, any type of control that accepts user input), all we need to do is find controls that implement the &lt;code&gt;&lt;/code&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/System.Web.UI.IEditableTextControl.aspx" target="_blank"&gt;&lt;code&gt;IEditableTextControl&lt;/code&gt; interface&lt;/a&gt;. Existence of this interface in the controls inheritance hierarchy means that the control supports user editing of text.&lt;/p&gt;
&lt;p&gt;So in short, here is the plan of attack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Author our custom validation control, or utilize one of the built in asp.net validation controls. 
&lt;li&gt;Create a base page that loops through all of the contained controls, and when a control is found that implements the &lt;code&gt;IEditableTextControl&lt;/code&gt; interface, instantiate and attach our validation control. Recursion seems to be the best way to go about this. 
&lt;li&gt;[optional] Inject a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.validationsummary.aspx" target="_blank"&gt;&lt;code&gt;ValidationSummary&lt;/code&gt;&lt;/a&gt; on the parent page to notify the user of any failed validation attempts.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Here is the code for a base page that dynamically attaches a custom validation control called &lt;code&gt;HtmlInputValidator&lt;/code&gt;:&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; HtmlValidationBasePage : Page&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;{&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; HtmlValidationBasePage()&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnLoad(EventArgs e)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        List&amp;lt;Control&amp;gt; controls = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;Control&amp;gt;();&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        FindControls&amp;lt;Control&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Page.Controls, controls);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (controls.Count &amp;gt; 0)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            controls.ForEach(&lt;span style="color:#0000ff;"&gt;delegate&lt;/span&gt;(Control control)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                IEditableTextControl textControl = control &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; IEditableTextControl;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (textControl != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    HtmlInputValidator handler = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HtmlInputValidator();&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                    handler.ControlToValidate = control.UniqueID;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    handler.Display = ValidatorDisplay.Dynamic;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                    handler.Text = &lt;span style="color:#006080;"&gt;&amp;quot;Failed Validation for control &amp;quot;&lt;/span&gt; + control.ID;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    handler.ErrorMessage = &lt;span style="color:#006080;"&gt;&amp;quot;Failed Validation for control &amp;quot;&lt;/span&gt; + control.ID;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                    handler.SetFocusOnError = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    handler.EnableClientScript = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                    handler.ID = control.ID + &lt;span style="color:#006080;"&gt;&amp;quot;Validator&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    control.Controls.Add(handler);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            });&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        ValidationSummary summary = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ValidationSummary();&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        summary.ShowSummary = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        summary.DisplayMode = ValidationSummaryDisplayMode.List;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        Page.Form.Controls.Add(summary);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.OnLoad(e);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#008000;"&gt;// Recurse through all of the controls on the page&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; T FindControls&amp;lt;T&amp;gt;(ControlCollection controls, List&amp;lt;T&amp;gt; foundControls) &lt;span style="color:#0000ff;"&gt;where&lt;/span&gt; T : Control&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        T found = &lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;(T);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (controls != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; controls.Count &amp;gt; 0)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; controls.Count; i++)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                found = controls[i] &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; T;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (found != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;                    foundControls.Add(found);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;                found = FindControls&amp;lt;T&amp;gt;(controls[i].Controls, foundControls);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; found;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Of course this base page could (and should) be further extended to support turning validation on/off, or only validating certain groups of controls...the above sample is simply for sake of brevity and should serve as a starting point only.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve always been a huge proponent of authoring a custom base asp.net page class from which the rest of your pages will inherit...it is without a doubt the easiest (and cheapest) way for you to get reusable functionality distributed to all of your asp.net pages with minimal coding effort. Their power really starts to shine in scenarios such as the one outlined in this post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;See attached file below&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=105422" width="1" height="1"&gt;</description><enclosure url="http://jaysonknight.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.10.54.22/HtmlValidationBasePage_2E00_cs" length="2374" type="text/plain" /><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Tools+and+Resources/default.aspx">Tools and Resources</category><category domain="http://jaysonknight.com/blog/archive/tags/.Net/default.aspx">.Net</category></item><item><title>Bought A Condo -- Celadon Greenway</title><link>http://jaysonknight.com/blog/archive/2007/09/11/bought-a-condo-celadon-greenway.aspx</link><pubDate>Tue, 11 Sep 2007 19:59:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:104950</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;We&amp;#39;ve bought a condo! Actually, we put a deposit down on it a few months ago, but things were a little dicey &lt;a href="http://jaysonknight.com/blog/archive/2007/07/14/starting-a-new-job-on-monday-7-16.aspx" target="_blank"&gt;after the Microsoft shake up&lt;/a&gt;. Everything has leveled off, i.e. the new job is going swimmingly and we&amp;#39;re forging ahead.&lt;/p&gt;
&lt;p&gt;There is one issue with our new purchase: They haven&amp;#39;t been built yet. Actually they just broke ground about 2 weeks ago, and construction is expected to to complete sometime next Spring so we&amp;#39;re in full blown hurry up and wait mode. The development itself is extremely cool: Enter &lt;a href="http://www.celadongreenway.com/index2.html" target="_blank"&gt;Celadon Greenway&lt;/a&gt;. I&amp;#39;ve been living in the middle of uptown Charlotte now for about 7 years; this will be the segway to our transition to just outside center city...a whopping .5 miles from where we live now. The main goal of this building project is being very eco-friendly. If everything goes as the developer plans, we&amp;#39;ll be one of the first &lt;a href="http://en.wikipedia.org/wiki/Leadership_in_Energy_and_Environmental_Design" target="_blank"&gt;LEED&lt;/a&gt; certified residential complexes in the entire country. &lt;a href="http://www.celadongreenway.com/green.html" target="_blank"&gt;Read more about their goals here&lt;/a&gt;. Picture time:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.celadongreenway.com/images/look6.jpg" height="210" width="390" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;This is a CG mockup of the development. There are 24 condos; ours is the 5th unit if you start counting them from the lower left hand side going clockwise (the end unit at the top of the bottom left structure). &lt;a href="http://www.celadongreenway.com/look.html" target="_blank"&gt;More general pictures are located here&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.celadongreenway.com/images/unitb.gif" target="_blank"&gt;This is our specific floor plan&lt;/a&gt;. It&amp;#39;ll be right at 1600 sq ft, and I&amp;#39;ve already laid claim to the media room, which will be known as the geek room going forward. We also got lucky and got an end unit...our side windows will face due west, so the sunsets will be nice, plus it&amp;#39;ll be good and dark in the mornings (&lt;i&gt;not&lt;/i&gt; a morning person).&lt;/p&gt;
&lt;p&gt;As is to be expected we&amp;#39;re beyond stoked. Eight months and counting.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=104950" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/General/default.aspx">General</category><category domain="http://jaysonknight.com/blog/archive/tags/Charlotte/default.aspx">Charlotte</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item><item><title>Machine Preparations For Overclocking</title><link>http://jaysonknight.com/blog/archive/2007/09/08/machine-preparations-for-overclocking.aspx</link><pubDate>Sat, 08 Sep 2007 16:12:00 GMT</pubDate><guid isPermaLink="false">68946f8a-ff84-48ba-8722-56d2a9e13499:104855</guid><dc:creator>Jayson Knight</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&amp;nbsp;My &lt;a href="http://stage.jaysonknight.com/blog/archive/2005/05/07/Let-the-Fun-Begin.aspx"&gt;main workstation&lt;/a&gt; is getting on up there in age...it&amp;#39;s about 27 months old, though the video card and &lt;a href="http://stage.jaysonknight.com/blog/archive/2006/12/25/amd-opteron-180-dual-core-processor-upgrade-thank-you-santa.aspx"&gt;processor&lt;/a&gt; were both upgraded within the past 6 months. I&amp;#39;m not really in the mood to wrangle together a completely new machine, so I&amp;#39;ve decided to go the overclocking route to try and eek out whatever performance gains I can. I&amp;#39;ve never been much of a hardware kind of guy, though I do remember the days of going through the tedious process of booting into the BIOS, increasing the FSB/Clock/etc a couple of clicks at a time, rebooting, and then running &amp;lt;insert benchmarking software here, usually Sandra or PCMark&amp;gt;. Lather, rinse, and repeat until you got the machine to crash, then back the settings down just a bit and voila...a faster running machine that only took the better part of a day to achieve. Now there are automated tools that&amp;#39;ll do all of this straight from the Windows GUI, although my beloved &lt;a href="http://www.nvidia.com/object/sysutility.html"&gt;nTune&lt;/a&gt; does not support dual core processors. Any recommendations, or should I just do it the old fashioned way?&lt;/p&gt;
&lt;p&gt;Here are a couple of photos of some recent cooling upgrades I made to the machine (click for larger images):&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://jaysonknight.com/photos/picture104852.aspx"&gt;&lt;img src="http://stage.jaysonknight.com/resized-image.ashx/__size/400x300/__key/CommunityServer.Components.PostAttachments/00.00.10.48.52/Picture-016.jpg" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The case is an &lt;a target="_blank" href="http://www.antec.com/us/productDetails.php?ProdID=81600"&gt;Antec P160&lt;/a&gt;...notice that the drives face forward for easy access. They are dual 150gb Raptors. The heatsink is a &lt;a target="_blank" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835106102&amp;amp;Tpk=thermaltake%2bv1"&gt;Thermaltake V1&lt;/a&gt;; my CPU temperature dropped 10 degrees C simply by dropping that into my case. Total case weight is around 25 lbs.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://jaysonknight.com/photos/picture104853.aspx"&gt;&lt;img src="http://stage.jaysonknight.com/resized-image.ashx/__size/400x300/__key/CommunityServer.Components.PostAttachments/00.00.10.48.53/Picture-020.jpg" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is another view of the new heatsink. It&amp;#39;s actually extremely quiet...much quieter than the stock AMD Opteron fan that shipped with the processor.&lt;/p&gt;
&lt;p&gt;Hopefully I&amp;#39;ll get another year or so of good use out of this machine before I have to build a new one. Newer games are starting to stress it a little (although Bioshock runs like a charm with all settings maxed out). I&amp;#39;m always looking for an excuse to buy hardware though.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://jaysonknight.com/aggbug.aspx?PostID=104855" width="1" height="1"&gt;</description><category domain="http://jaysonknight.com/blog/archive/tags/Technology+and+Internet/default.aspx">Technology and Internet</category><category domain="http://jaysonknight.com/blog/archive/tags/Tools+and+Resources/default.aspx">Tools and Resources</category><category domain="http://jaysonknight.com/blog/archive/tags/Photos/default.aspx">Photos</category><category domain="http://jaysonknight.com/blog/archive/tags/Being+Jayson/default.aspx">Being Jayson</category></item></channel></rss>