<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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/"><channel><title>Craig Gemmill&amp;#39;s Blog</title><link>http://weblogs.asp.net/craigg/default.aspx</link><description>There is nothing more secure than an educated user!</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>A New Era of Software</title><link>http://weblogs.asp.net/craigg/archive/2006/11/18/a-new-era-of-software.aspx</link><pubDate>Sat, 18 Nov 2006 06:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:953757</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=953757</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/11/18/a-new-era-of-software.aspx#comments</comments><description>&lt;p&gt;I was reading a post by &lt;a href="http://weblogs.asp.net/rchartier/archive/2006/11/17/microsoft-needs-to-give-developers-a-break.aspx" title="Rob Chartier" target="_blank"&gt;Rob Chartier&lt;/a&gt;&amp;nbsp;titled, &amp;quot;Microsoft needs to give developers a break...&amp;quot;, and&amp;nbsp;anyone whose been keeping up&amp;nbsp;with&amp;nbsp;news from Microsoft these days&amp;nbsp;can easily assume that his post is talking about all of the new and soon-to-be software&amp;nbsp;releases. I was going to leave him a comment, but it soon became a post.&lt;/p&gt;&lt;p&gt;Overall, I agree... but&amp;nbsp;it&amp;#39;s bitter-sweet. I love new technology, always have... and I&amp;#39;m particularly thrilled with all of the new bits for Developers, IT Pros, and even the daily user that&amp;nbsp;are being, and will be released by Microsoft: WF, WCF, WPF, ATLAS, Vista, CardSpace, Exchange, SMS and all of it&amp;#39;s buddies, Longhorn, Storage Server, ISA, MapPoint, Office, IIS, IE, Live, WinMo 5, CE 6, PowerShell, SharePoint, BizTalk... and on and on.&lt;/p&gt;&lt;p&gt;So what makes it different from the last several years? Well, it&amp;rsquo;s easily overwhelming because a lot of these new releases are not relatively simple updates to the software we know, they&amp;#39;re so different that it&amp;#39;s like learning an entirely new product.&lt;/p&gt;&lt;p&gt;Also in the past, we&amp;#39;ve seen a lot of new software come out that was not easily adopted by small-businesses. So unless you were strictly working with major corporations, you had some time to play with software before you saw it become widely used. Now, small-business is booming and MS is releasing a lot of &amp;quot;lite&amp;quot; versions to meet these companies&amp;rsquo; needs and budgets, so it&amp;#39;s not leaving us much time to get familiar with the products before they become main-stream.&lt;/p&gt;&lt;p&gt;The sweet side of this is that it&amp;#39;s new technology, and it&amp;#39;s only a matter of time before you figure it out.&lt;/p&gt;&lt;p&gt;A new era of software is upon us and I&amp;#39;m just excited to be a part of it.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=953757" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/craigg/archive/tags/Vista/default.aspx">Vista</category><category domain="http://weblogs.asp.net/craigg/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Software+Development/default.aspx">Software Development</category><category domain="http://weblogs.asp.net/craigg/archive/tags/community+news/default.aspx">community news</category></item><item><title>Halloween Horror: The SQL Timeout</title><link>http://weblogs.asp.net/craigg/archive/2006/10/09/Halloween-Horror_3A00_-The-SQL-Timeout.aspx</link><pubDate>Mon, 09 Oct 2006 08:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:638823</guid><dc:creator>CraigG</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=638823</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/10/09/Halloween-Horror_3A00_-The-SQL-Timeout.aspx#comments</comments><description>&lt;font face="Times New Roman" size="3"&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;I don&amp;rsquo;t know when it started or why, but I love Halloween (and autumn for that matter). So keeping the tradition of Halloween alive, I&amp;rsquo;ve decided to share some &amp;ldquo;horror&amp;rdquo; stories from the software/IT field over the next few weeks.&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;The SQL Timeout&amp;hellip;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;A few years ago, myself and another developer were brought in to help get a project moving along that had been at a stand still basically because it was the first ASP.NET app the existing team had tried to tackle. They sure picked a whopper to take on as their &amp;ldquo;learning&amp;rdquo; project too, but that of course ended up being bitter-sweet for me. I should add that the team was very competent and well experienced; they just lacked the .NET mojo.&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;Anyway, by the time we got involved; they had laid most of the foundation and were starting to build the other layers on top. Due to the existing project state and the time-constraints, we were forced to do a lot of independent testing during development. When a major milestone in the project was reached and it came time to stress/load test the application, we were expecting similar results to those found in the independent tests (famous last words). Well&amp;hellip; not quite. We kept getting a SQL Timeout Error whenever there were multiple, simultaneous requests for databound pages, and we couldn&amp;rsquo;t test anything beyond that point. The weird thing about this was that it didn&amp;rsquo;t just happen under heavy loads; it simply happened when there was more than 1 request.&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;I&amp;rsquo;ll spare you the story about all the things we checked and re-checked from the hardware to the end users. In the end, I found that someone had declared a SqlConnection object as Static/Shared in the heart of the O/R mapped code. So anytime a request was processed, it was using the same SqlConnection object as the previous request (remember, this is a web-app) and would kill the previous request. The result would be a SQL Timeout Error&amp;nbsp;for any of the requests before the last. Ah, memories.&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;The moral of this story is that you should be very weary of creating Static/Shared&amp;nbsp;databound objects&amp;nbsp;in ASP.NET applications, especially connection objects.&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;Oh yeah, boo!&lt;/p&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=638823" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/craigg/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/VB.NET/default.aspx">VB.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/craigg/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Software+Development/default.aspx">Software Development</category><category domain="http://weblogs.asp.net/craigg/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Search.Live.Com. I want to like it, I really do...</title><link>http://weblogs.asp.net/craigg/archive/2006/09/28/Search.Live.Com.-I-want-to-like-it_2C00_-I-really-do_2E002E002E00_.aspx</link><pubDate>Thu, 28 Sep 2006 06:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:590337</guid><dc:creator>CraigG</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=590337</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/09/28/Search.Live.Com.-I-want-to-like-it_2C00_-I-really-do_2E002E002E00_.aspx#comments</comments><description>&lt;p&gt;Since it&amp;#39;s no longer tagged Beta, its fair game right? Well, I have to be honest; so far I&amp;#39;ve had nothing but bad experiences with using the Live.com search engine. I&amp;#39;ll give you my latest example:&lt;br /&gt;&lt;br /&gt;I was watching a video of Victor Wooten, one of the most unique bass players around. Being a bass player myself, I like to learn other people&amp;rsquo;s styles and try to incorporate them into my music. So what&amp;#39;s one of the first things you&amp;nbsp;do when you need help&amp;nbsp;learning someone else&amp;#39;s song? Tab search, of course! Just look at the difference between Live and Google results for the value&amp;nbsp;&amp;quot;wooten amazing grace bass tab&amp;quot;:&lt;/p&gt;&lt;p&gt;Live: &lt;a href="http://search.live.com/results.aspx?FORM=IE7&amp;amp;q=wooten+amazing+grace+bass+tab"&gt;http://search.live.com/results.aspx?FORM=IE7&amp;amp;q=wooten+amazing+grace+bass+tab&lt;/a&gt;&lt;br /&gt;Google: &lt;a href="http://www.google.com/search?q=wooten+amazing+grace+bass+tab"&gt;http://www.google.com/search?q=wooten+amazing+grace+bass+tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It almost feels like the Live search results are based around trying to sell&amp;nbsp;you stuff rather than&amp;nbsp;relevance.&lt;/p&gt;&lt;p&gt;I tried every combination I could think of, short of&amp;nbsp;searching for an exact&amp;nbsp;URL. I even tried other search engines and was surprised to see that every other engine actually returned more relevant results than Live... except for&amp;nbsp;Lycos. Then I noticed at the bottom of the Lycos page, it says: &amp;quot;Portions powered by Windows Live&amp;quot;. Well, no surprise there.&lt;br /&gt;&lt;br /&gt;I have hope for the future of Live search, but for right now I&amp;#39;m just a little surprised it&amp;#39;s not still in Beta, because it really&amp;nbsp;should be.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=590337" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/craigg/archive/tags/Live/default.aspx">Live</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Live.com/default.aspx">Live.com</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Search+Engine/default.aspx">Search Engine</category></item><item><title>VB.NET Hexadecimal to Floating Point / Single (IEEE 754)</title><link>http://weblogs.asp.net/craigg/archive/2006/09/25/Hexadecimal-to-Floating-Point-_2800_IEEE-754_2900_.aspx</link><pubDate>Mon, 25 Sep 2006 05:35:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:580006</guid><dc:creator>CraigG</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=580006</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/09/25/Hexadecimal-to-Floating-Point-_2800_IEEE-754_2900_.aspx#comments</comments><description>&lt;p&gt;A post just came across the forum I frequent regarding Hexadecimal to Floating Point conversion. Strangely there appears to be no direct way to do this in .NET, and the solutions I found were pretty lame and tedious&amp;hellip; so it became my mission to get it done the .NET way, and here is the result:&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Private&lt;/span&gt; &lt;span style="color: blue"&gt;Function&lt;/span&gt; ConvertHexToSingle(&lt;span style="color: blue"&gt;ByVal&lt;/span&gt; hexValue &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;String&lt;/span&gt;) &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Single&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Try&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; iInputIndex &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Integer&lt;/span&gt; = 0&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; iOutputIndex &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Integer&lt;/span&gt; = 0&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; bArray(3) &lt;span style="color: blue"&gt;As&lt;/span&gt; &lt;span style="color: blue"&gt;Byte&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;For&lt;/span&gt; iInputIndex = 0 &lt;span style="color: blue"&gt;To&lt;/span&gt; hexValue.Length - 1 &lt;span style="color: blue"&gt;Step&lt;/span&gt; 2&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bArray(iOutputIndex) = &lt;span style="color: blue"&gt;Byte&lt;/span&gt;.Parse(hexValue.Chars(iInputIndex) &amp;amp; hexValue.Chars(iInputIndex + 1), Globalization.NumberStyles.HexNumber)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;iOutputIndex += 1&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Array.Reverse(bArray)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Return&lt;/span&gt; BitConverter.ToSingle(bArray, 0)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Catch&lt;/span&gt; ex &lt;span style="color: blue"&gt;As&lt;/span&gt; Exception&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;Throw&lt;/span&gt; &lt;span style="color: blue"&gt;New&lt;/span&gt; FormatException(&lt;span style="color: maroon"&gt;&amp;quot;The supplied hex value is either empty or in an incorrect format. Use the following format: 00000000&amp;quot;&lt;/span&gt;, ex)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Try&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt; &lt;span style="color: blue"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0in 0in 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'"&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;ConvertHexToSingle(&amp;quot;3C000000&amp;quot;)&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Even though this is just a rough example, it does work, and it can be expanded to support larger types (such as Double) with a couple of small mods. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=580006" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/craigg/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Single/default.aspx">Single</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Conversion/default.aspx">Conversion</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Visual+Basic/default.aspx">Visual Basic</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Hexadecimal/default.aspx">Hexadecimal</category><category domain="http://weblogs.asp.net/craigg/archive/tags/VB.NET/default.aspx">VB.NET</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Double/default.aspx">Double</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Hex/default.aspx">Hex</category></item><item><title>3D Desktop Interface... decorated by BOB</title><link>http://weblogs.asp.net/craigg/archive/2006/08/11/3D-Desktop-Interface_2E002E002E00_-decorated-by-BOB.aspx</link><pubDate>Fri, 11 Aug 2006 05:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:467138</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=467138</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/08/11/3D-Desktop-Interface_2E002E002E00_-decorated-by-BOB.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;With all the hype surrounding 3D desktop interfaces these days, it&amp;#39;s always fun to take a look back at some of the projects that have helped us to get where we are now: &lt;a href="http://research.microsoft.com/adapt/taskgallery/"&gt;http://research.microsoft.com/adapt/taskgallery/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;I&amp;#39;ve always thought that&amp;nbsp;this project was actually a pretty good idea &lt;span style="font-size: 10pt; font-family: Arial"&gt;(except for the BOB&amp;rsquo;ness of course)&lt;/span&gt;, and probably one of the&amp;nbsp;only 3D interfaces I would actually use. It&amp;#39;s summed up pretty well in this excerpt from the site:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;&amp;quot;People typically spend most of their time concentrating on one task at a time, whether on the computer or engaged in more tangible pursuits. This concentrated focus, though, is often interspersed with attempts to gain overall awareness of context. Sometimes this happens serially: intense focus while writing a document and then a brief and temporary switch to check email. Sometimes it happens in parallel: taking in peripheral information while driving. Current computer-based productivity applications do not support this basic need: the need to combine focus and context. By placing existing productivity applications in a 3D environment, the TaskGallery design lets the user easily and dynamically choose a balance between focus and context.&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=467138" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/craigg/archive/tags/Vista/default.aspx">Vista</category><category domain="http://weblogs.asp.net/craigg/archive/tags/UI/default.aspx">UI</category><category domain="http://weblogs.asp.net/craigg/archive/tags/3d/default.aspx">3d</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Interface/default.aspx">Interface</category><category domain="http://weblogs.asp.net/craigg/archive/tags/Desktop/default.aspx">Desktop</category><category domain="http://weblogs.asp.net/craigg/archive/tags/GUI/default.aspx">GUI</category></item><item><title>SharePoint Portal Server 2003 Experience (Part 3)</title><link>http://weblogs.asp.net/craigg/archive/2006/04/10/442423.aspx</link><pubDate>Mon, 10 Apr 2006 21:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:442423</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=442423</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2006/04/10/442423.aspx#comments</comments><description>&lt;p&gt;In the first two parts of this series, I discussed some topical information. In Part 3, I’ll just jump all over.&lt;/p&gt;&lt;u&gt; &lt;p&gt;Audiences not being populated with all members of a security group&lt;/p&gt;&lt;/u&gt; &lt;p&gt;There is a BUG related to the Audience feature in SPS2003 (all current services packs) that I found during the implementation process.&lt;/p&gt; &lt;p&gt;When you create an Audience using the &lt;b&gt;User&lt;/b&gt; -&amp;gt; &lt;b&gt;Member Of &lt;/b&gt;option and you specify a Windows security group (group &lt;b&gt;ABC&lt;/b&gt;), if any of the users in group &lt;b&gt;ABC&lt;/b&gt; also have group &lt;b&gt;ABC&lt;/b&gt; as their primary group, it will not find that user. &lt;/p&gt; &lt;p&gt;The reason is because the LDAP query only searches the &lt;b&gt;memberOf&lt;/b&gt; attribute in the metadata of each user object, and AD does not store any reference to the primary group information in &lt;b&gt;memberOf&lt;/b&gt;, but instead it stores it as an integer in the &lt;b&gt;primaryGroupID&lt;/b&gt; attribute.&lt;/p&gt; &lt;p&gt;The easiest way to solve this is to change the &lt;b&gt;Primary Group&lt;/b&gt; of the affected users by opening the user account in AD and clicking on &lt;b&gt;[Member Of]&lt;/b&gt; tab. You can change the Primary group by selecting a group name, and clicking on &lt;b&gt;[Set Primary Group]&lt;/b&gt;. Unless you are using a 3rd party product that requires specific primary groups, the primary group should be set to &lt;b&gt;Domain Users&lt;/b&gt; by default.&lt;/p&gt; &lt;p&gt;The other workaround that Microsoft suggested is not even worth repeating.&lt;/p&gt; &lt;p&gt;If you need to reference the open Microsoft support case, send me an email and I’ll give you the case ID.&lt;/p&gt; &lt;p&gt;&lt;u&gt;Local Administrators have full access to WSS sites&lt;/p&gt;&lt;/u&gt; &lt;p&gt;By default, any user that is a member of the local machines Administrators group will have full access to all SharePoint sites in your portal. You can disable this behavior with the following hotfix: &lt;a href="http://support.microsoft.com/kb/892295/"&gt;http://support.microsoft.com/kb/892295/&lt;/a&gt;&lt;/p&gt;&lt;u&gt; &lt;p&gt;Static IP in IIS&lt;/p&gt;&lt;/u&gt; &lt;p&gt;Your SPS Web sites cannot have a static IP defined in the IIS configuration. It must be set to (All Unassigned). This is by design.&lt;/p&gt;&lt;u&gt; &lt;p&gt;Create custom templates for your WSS sites&lt;/p&gt;&lt;/u&gt; &lt;p&gt;The following procedure will allow you to create a custom site template that can be used whenever creating a new site.&lt;/p&gt; &lt;dir&gt; &lt;dir&gt; &lt;p&gt;1) Create a new site and set up everything the way you want it.&lt;/p&gt; &lt;p&gt;2) Navigate to: Site Settings -&amp;gt; Go to Site Administration -&amp;gt; Save Site as Template&lt;/p&gt; &lt;p&gt;3) Save it as &lt;b&gt;c:\someDir\myTemplate.stp&lt;/p&gt;&lt;/b&gt; &lt;p&gt;4) Import the template into the SPS database and make it available for site creators by using the stsadm tool:&lt;br /&gt;&lt;br /&gt;stsadm.exe -o addtemplate -filename &lt;b&gt;c:\someDir\myTemplate.stp&lt;/b&gt; -title "My Custom Template" -description "A custom WSS template."&lt;br /&gt;&lt;/p&gt; &lt;p&gt;5) Now when you create a new site, you will see "My Custom Template" as an option.&lt;/p&gt; &lt;p&gt;6) stsadm.exe/? for more options including enumeration and removal of templates.&lt;/p&gt;&lt;/dir&gt;&lt;/dir&gt;&lt;u&gt; &lt;p&gt;Create a custom link in Portal Site Map&lt;/p&gt;&lt;/u&gt; &lt;p&gt;The quick launch bar (the vertical link bar on the left) does not directly allow custom links to be added, only links to Areas that you create. This is how to do it without modifying the underlying source:&lt;/p&gt; &lt;dir&gt; &lt;dir&gt; &lt;p&gt;1) From the portal home page, click on &lt;b&gt;Site Settings&lt;/b&gt; -&amp;gt; &lt;b&gt;Manage portal site structure&lt;/p&gt;&lt;/b&gt; &lt;p&gt;2) Now you have to pretend that each new "Area" you create is really just a link. Determine where you want to add the custom link, then either &lt;b&gt;Create Area&lt;/b&gt; (or link), or &lt;b&gt;Create Sub Area&lt;/b&gt; (or link). &lt;br /&gt;&lt;br /&gt;** Deleting or editing an existing link/area will directly impact the Area and all data, so make sure you don’t do that until you understand how this all works.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;3) Now click on the &lt;b&gt;[Edit]&lt;/b&gt; menu option for the new Area you just created.&lt;/p&gt; &lt;p&gt;4) Click on the &lt;b&gt;[Page]&lt;/b&gt; tab.&lt;/p&gt; &lt;p&gt;5) In &lt;b&gt;"Area Templates"&lt;/b&gt;, change the option to: &lt;b&gt;"This area uses the following page as a template"&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;6) Change the textbox to whatever link you want, ex: http://www.crgitsolutions.com&lt;/p&gt; &lt;p&gt;7) Click &lt;b&gt;[Ok]&lt;/b&gt;, and you now have a custom link in the portal site map.&lt;/p&gt;&lt;/dir&gt;&lt;/dir&gt;&lt;u&gt; &lt;p&gt;Disable Front-Page editing of your sites pages&lt;/p&gt;&lt;/u&gt; &lt;p&gt;I strongly recommend you put some manual labor into editing your SPS/WSS pages, as using Front-page only causes more headaches then its worth.&lt;/p&gt; &lt;p&gt;This article explains how to disable editing all together:&lt;/p&gt; &lt;p&gt;http://www.kbalertz.com/kb_838117.aspx&lt;/p&gt;&lt;u&gt; &lt;p&gt;All lists are not created equal&lt;/p&gt;&lt;/u&gt; &lt;p&gt;Some of the pre-defined list types are not as functional as others, and you should be aware of this before you use them for production tasks.&lt;/p&gt; &lt;p&gt;For instance, the &lt;b&gt;Attendee&lt;/b&gt; list in &lt;b&gt;Meeting Workspaces&lt;/b&gt; can not be edited in a datasheet (or Access), exported, nor can it have its existing column settings modified.&lt;/p&gt; &lt;p&gt;If you are already in this situation, check this out:&lt;/p&gt; &lt;p&gt;http://www.sharepointblogs.com/vandest/archive/2006/02/23/5313.aspx&lt;/p&gt; &lt;p&gt;Otherwise, create a custom list to store your Attendees.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=442423" width="1" height="1"&gt;</description></item><item><title>SharePoint Portal Server 2003 Experience (Part 2)</title><link>http://weblogs.asp.net/craigg/archive/2005/08/09/422064.aspx</link><pubDate>Wed, 10 Aug 2005 02:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:422064</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=422064</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2005/08/09/422064.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;In Part 1, I talked mostly about redesigning the presentation layer of your SharePoint Portal Server (SPS) website. What I would like to cover now is modifying other aspects not directly linked to the standard website design process.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;u&gt;Supporting Other File Types&lt;/u&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;u&gt;&lt;/u&gt;&lt;br /&gt;One of the things you will most likely want to add is the ability to accommodate file types beyond what ships with SPS. You need four things to make this happen. Below are the steps required to add a PDF document type to your portal. Replace “PDF” with any other file extension to do the same.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Change the Index settings to include this file type:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;- Navigate to: Site Settings &amp;gt; Configure Search and Indexing &amp;gt; Include File Types&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;- Add the “pdf” extension.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Modify the *\TEMPLATE\XML\DOCICON.XML file:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;- Open this file in Notepad or whatever text editor you want and add this line to the other like elements:&lt;br /&gt;&lt;br /&gt;&amp;lt;Mapping &lt;font color="#000000"&gt;Key="pdf"&lt;/font&gt; Value="pdf16.gif"/&amp;gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;3)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Add an IFilter that is created just&amp;nbsp;for the file type.&lt;br /&gt;- In this case, there just so happens to be an IFilter for this document type. You can download it with installation instructions here:&lt;br /&gt;&lt;a href="http://www.adobe.com/support/downloads/detail.jsp?ftpid=1276"&gt;http://www.adobe.com/support/downloads/detail.jsp?ftpid=1276&lt;/a&gt;&lt;br style="mso-special-character: line-break" /&gt;&lt;br style="mso-special-character: line-break" /&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;- IFilters allow you to full-text search the document type. Not all document types have an appropriate filter, but don’t fear, everything else will work fine.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;4)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Add an image of the ICON associated with that file type:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;- Once you have a 16x16 gif of the ICON associated with this file type, copy it into *\TEMPLATE\IMAGES\ as these two file names: ICPDF.GIF and PDF16.GIF.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Here is a KB article that basically says the same:&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;832809"&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;832809&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;FrontPage Ghosting&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;In Part 1, I mentioned that FrontPage caused some headaches with “ghosting”. Ghosting is essentially SPS’s terminology for caching page content. When you edit a page and save it in FrontPage, not only does it add a bunch of crap that you usually don’t need, but it also stores ALL of the page content directly in the database. This makes sense since that is the fundamental process SPS uses to load content for your viewing pleasure. However, this destroys any inheritance from template pages, meaning any design changes you make to the template pages will not be applied to this now “unghosted” page. There is a fix, but it requires some SQL knowledge. Because of the potential problems you could encounter, I am not going to spell it out, but I will point you in the right direction:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Open the SITENAME_SITE database.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Open the DOCS table and find the exact page you are trying to “unghost”.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;3)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Write a SQL statement to set that rows CONTENT field to NULL.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Your page will now be “ghost-able” again.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Silly FrontPage.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;u&gt;QuickLaunch Watermark&lt;br style="mso-special-character: line-break" /&gt;&lt;br style="mso-special-character: line-break" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Another thing you may want to change on your SPS site is that vertical “SharePoint Portal Server” logo located in the QuickLaunch area. This is easily done by simply finding and replacing any occurrence of "SharePoint Portal Server" in *\TEMPLATE\1033\default.aspx (and a couple others) with whatever your want.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;u&gt;Global Templates&lt;/u&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;So you finally design a SITE that you would like to use as a template for other sites that are not children of this site. This link will explain how to create a template you can use&amp;nbsp;with new sites, among other things:&lt;br /&gt;&lt;a href="http://www.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsh05.mspx"&gt;http://www.microsoft.com/resources/documentation/wss/2/all/adminguide/en-us/stsh05.mspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;* = C:\program Files\Common Files\Microsoft Shared\web server extensions\60&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=422064" width="1" height="1"&gt;</description></item><item><title>SharePoint Portal Server 2003 Experience (Part 1)</title><link>http://weblogs.asp.net/craigg/archive/2005/07/30/421107.aspx</link><pubDate>Sat, 30 Jul 2005 21:40:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:421107</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=421107</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2005/07/30/421107.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I’ve recently started a project implementing SharePoint Portal Server 2003 (SPS) to replace a legacy intranet solution, and while I’ve deployed SharePoint several times in the past, this is by far the most customizations that I have made to the portal. So I figured this would be a good opportunity to talk about some of my experiences thus far… &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;The requirements for the Portal:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Design to look somewhat familiar to parent companies site (not SPS).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Mimic all the functionality from the legacy intranet site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Simplify current document sharing scheme.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Make as self manageable as possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;4 month schedule.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;One of the major customizations that needed to be done to the out-of-the-box SPS install was the UI design. I don’t know if it’s just the projects I’ve worked on, but when it comes to UI, it always seems to take longer then it should to make everyone happy… so I fittingly scheduled this part of the project to take the longest (and it has). &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;All tasks considered, modifying the SPS UI has been pretty easy, but by no means has it been snag free. Almost all of the existing components can be easily modified by changing a CSS value, but for any major change you will most likely have to modify every .aspx page under the *\TEMPLATE directory/sub directories. One of the things that required this level of change was the common Portal header. I was very surprised to find that some of the style values were hard coded in the .aspx page while the rest of the values were in a CSS. SPS does provide an option to supply an “AlternateHeader” that works by replacing the page header with a customized one, and it does… however there are 2 reasons why I didn’t use this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;1)&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The “AlternateHeader” is not context sensitive. There are certain values that need to be hard coded into header web parts on each page that assist in linking to Help topics, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;2)&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Not all pages implement the “AlternateHeader” option.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I also investigated using the option for a &lt;i style="mso-bidi-font-style: normal"&gt;Custom Cascading Style Sheet.&lt;/i&gt; This seemed to work ok until I found out that the Portal and the Windows SharePoint Services (WSS) had some common values stored in the same CSS. For example, if I was trying to change the color of one element in the Portal, it might very well change the color of a totally different element in a WSS site, which I suppose is the logic behind offering an option for a custom CSS that ONLY applies to the Portal. Another issue is that you can not change the default theme used for WSS sites, so you MUST modify the common CSS files. I was able to get both the Portal and WSS sites looking the way I wanted by making the modifications in this order:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I modified all of the *\TEMPLATE\LAYOUTS\1033\STYLES\*.CSS files to make the &lt;b style="mso-bidi-font-weight: normal"&gt;WSS &lt;/b&gt;sites look the way I wanted them. Don’t worry about what this does to the Portal, as you are going to fix that shortly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I then made my changes to the common Portal header by writing a program that would first pull context sensitive values from an .aspx page, and then overwrite the existing header with my custom header incorporating the values I gathered earlier. I ran this program against all .aspxs pages in the *\TEMPLATE directory/sub directories.** (I hope to document this more when I have a chance)&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; tab-stops: list .5in"&gt;-&lt;span style="FONT-SIZE: 7pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I created a separate CSS and told the Portal to use it as the &lt;i style="mso-bidi-font-style: normal"&gt;Custom Cascading Style Sheet.&lt;/i&gt; I then modified this CSS to make the Portal look the way I wanted it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;br /&gt;&lt;br /&gt;This was the only way I could find to give me all the control I needed. I also designed my custom header to be very flexible and to rely heavily on CSS so that in the future I won’t have to modify every .aspx again to make simple design changes.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I also tried to use FrontPage to assist in this process, but it ended up causing me a major issue with "ghosting", which I will explain in Part 2 of this series. If you are going to use FrontPage with SPS, then I would limit its use to one of two scenarios:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;1)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;You set up a development site where you can make your changes to the design, then manually apply them to the rest of portal.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;span style="mso-list: Ignore"&gt;2)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;You are editing a page which does not inherit any design elements from a parent page.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Here are a couple of links that really helped:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;SharePoint CSS Definitions: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tsovCSSStyles.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/tsovCSSStyles.asp&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;SharePoint CSS Info: &lt;a href="http://blog.hishambaz.com/archive/2005/01/29/196.aspx"&gt;http://blog.hishambaz.com/archive/2005/01/29/196.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;The author from the above link provides the following code that will help you figure out what CSS styles are being used. Just plop this in the &amp;lt;body&amp;gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;script language="jscript"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;function ClassInfo() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;if (window.event.srcElement.className != null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;{ stsclass.innerText = window.event.srcElement.className; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else { stsclass.innerText = ""; } }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;window.document.body.onmouseover = ClassInfo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;div style="border-style:solid;border-width:1px; width: 281px; height: 34px; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;position: absolute; left: 286px; top: 41px; z-index:15; padding-left:4px; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;padding-right:4px; padding-top:2px; padding-bottom:2px; background-color:#EEEEF4"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;p id="stsclasstitle"&amp;gt;&amp;lt;font face="Tahoma" id="stsclasstitle"&amp;gt;Classname: &amp;lt;/font&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;font face="Tahoma"id="stsclass"&amp;gt;&amp;amp;#xa0;&amp;lt;/font&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;span style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I know there is not much documentation on this entire process, so hopefully this information will be of some use to you ;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;* = Program Files\Common Files\Microsoft Shared\web server extensions\60&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;** = When applying changes to the .aspx pages. The *\1033\STS, and the *\TEMPLATE\LAYOUTS\1033 folders contain the WSS files. The rest are SPS files.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=421107" width="1" height="1"&gt;</description></item><item><title>Suggestions while visiting London?</title><link>http://weblogs.asp.net/craigg/archive/2004/10/26/247812.aspx</link><pubDate>Tue, 26 Oct 2004 10:23:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:247812</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=247812</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/10/26/247812.aspx#comments</comments><description>&lt;p&gt;I&amp;nbsp;am heading over to &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City&gt;&lt;st1:place&gt;London&lt;/st1:place&gt;&lt;/st1:City&gt; for a couple of weeks in November, and I would be very interested in hearing from the perspective of people with similar interests as me. Do you have any suggestions and/or advice for a first time &lt;st1:City&gt;&lt;st1:place&gt;London&lt;/st1:place&gt;&lt;/st1:City&gt; visitor?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.mdevx.com/other/temp/british_flag.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Thanks for any info.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=247812" width="1" height="1"&gt;</description></item><item><title>The DragDrop events have stolen my object, now I want it back...</title><link>http://weblogs.asp.net/craigg/archive/2004/08/30/222529.aspx</link><pubDate>Mon, 30 Aug 2004 05:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:222529</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=222529</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/08/30/222529.aspx#comments</comments><description>&lt;font size="2"&gt;&lt;font face="Verdana"&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;When you initiate Control.DoDragDrop() and drag&amp;nbsp;the cursor&amp;nbsp;over another control that has AllowDrop = TRUE, a reference to the object in the drag data is created and&amp;nbsp;not released upon DragLeave.&lt;br /&gt;&lt;br /&gt;Here is an example demonstrating the behavior:&lt;br /&gt;&lt;a href="http://www.mdevx.com/other/temp/dragdrop_issue.zip"&gt;http://www.mdevx.com/other/temp/dragdrop_issue.zip&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=222529" width="1" height="1"&gt;</description></item><item><title>For you must-have-music-at-work people...</title><link>http://weblogs.asp.net/craigg/archive/2004/08/24/219519.aspx</link><pubDate>Tue, 24 Aug 2004 15:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:219519</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=219519</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/08/24/219519.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;- I am one of those people that need to have music playing in the background while working, but what usually happens is that I end up singing the songs because I hear the same thing over and over (especially with Cleveland radio). If I was mowing the lawn it would be ok, but this can be very distracting while writing software, so I usually just&amp;nbsp;turn off whatever I was listening to.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;A couple of weeks ago a friend suggested that I check out: &lt;a href="http://www.kawaii-radio.net/" target="_blank"&gt;www.kawaii-radio.net&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I’m not really a fan of anime, or j-pop for that matter, but this music has great energy, a huge library, and I have no idea what they are saying most of the time (90% is in Japanese)! Perfect.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;- For those with a bit more nostalgic taste, a big band station I volunteer at (WKHR 91.5) is finally available to hear live on the internet: &lt;a href="http://www.wkhr.org/" target="_blank"&gt;www.wkhr.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;font color="#a9a9a9"&gt;&lt;font size="2"&gt;- Unrelated: I have another gmail invite to give out, so… who wants this one? - NO LONGER AVAILABLE&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;I would also like to hear of any other online stations that are software development friendly.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=219519" width="1" height="1"&gt;</description></item><item><title>What a little free testing can inspire...</title><link>http://weblogs.asp.net/craigg/archive/2004/06/30/170417.aspx</link><pubDate>Thu, 01 Jul 2004 01:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:170417</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=170417</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/06/30/170417.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG src="http://www.mobile2market.net/upload/products/mprod_3799D654-98AD-40D6-91C5-05BC59EDEB3F.gif"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;I decided to take advantage of the free testing being offered as part of the &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/windowsmobile/information/devprograms/mobile2market/contest.mspx" target=blank&gt;&lt;FONT face=Verdana size=2&gt;Mobile2Market Contest&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; by submitting a little utility I wrote called &lt;STRONG&gt;PocketZOOM&lt;/STRONG&gt;&amp;nbsp;which magnifies what is currently displayed on the screen of your Windows Mobile 2003 device. The testing process was successful, and the application is now offered for free here:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;A href="http://www.pocketzoom.com" target=blank&gt;&lt;FONT face=Verdana size=2&gt;http://www.pocketzoom.com&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Verdana size=2&gt;In the next couple of weeks, I hope to have some time to discuss the differences encountered when moving from the desktop to a mobile platform, and also how the .NET Compact Framework has truly lifted my interest in mobile development. But for now, you just have to take my word for it ;)&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/windowsmobile/catalog/default.aspx?xslt=detail&amp;amp;subid=22&amp;amp;pgn=3799d654-98ad-40d6-91c5-05bc59edeb3f" target=blank&gt;&lt;FONT face=Verdana size=2&gt;You can also find the product listed in the Mobile Application Catalog.&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=170417" width="1" height="1"&gt;</description></item><item><title>A 4 Port USB Server... and it works!</title><link>http://weblogs.asp.net/craigg/archive/2004/05/18/134412.aspx</link><pubDate>Tue, 18 May 2004 20:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:134412</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=134412</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/05/18/134412.aspx#comments</comments><description>&lt;P&gt;&lt;IMG src="http://www.keyspan.com/products/usb/server/gr/gr-PrdSht-US4Asm.jpg"&gt;&lt;BR&gt;I took a chance with the first generation &lt;A href="http://www.keyspan.com/products/usb/server/"&gt;4 Port USB Server&lt;/A&gt; from &lt;A href="http://www.keyspan.com"&gt;Keyspan&lt;/A&gt;, and I'll be a monkey if it didn't work just like they said it would. The software required to administer the device is very small, and easy to use...&amp;nbsp;in fact,&amp;nbsp;as soon as I connected to the device it warned me that the firmware was old and asked me if I wanted to upgrade it. I clicked [Upgrade Firmware], and it took care of getting the update from the web and installing it for me. After the server drivers are installed, you can install devices as if they were connected directly to your machine. Simple.&lt;BR&gt;&lt;BR&gt;So what am I not thrilled about?&lt;BR&gt;- Defaulted to DHCP (this may not be bad if you have a dhcp server running).&lt;BR&gt;- Only guaranteed to work with USB-Printers for now, although I have it working with some other devices.&lt;BR&gt;- Not recommend for Epson printers, but with the amount of software required to setup Epson printer ports (evil), this shouldn't be a surprise.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=134412" width="1" height="1"&gt;</description></item><item><title>WinMo Certification</title><link>http://weblogs.asp.net/craigg/archive/2004/05/17/WinMo-Certification.aspx</link><pubDate>Mon, 17 May 2004 16:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:133303</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=133303</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/05/17/WinMo-Certification.aspx#comments</comments><description>&lt;p&gt;&lt;img style="width: 137px; height: 73px" src="http://www.mdevx.com/images/dw_mobile_h_rgb.jpg" alt="" width="137" height="73" /&gt; I received email notification this morning that an application I submitted for Winmo certification had passed testing and was ready to wear the Windows Mobile Logo. I have to admit that the certification process was far less painful then what I had expected, in fact, it was downright simple.&amp;nbsp;I used &lt;a href="http://www.nstl.com/" target="_blank"&gt;NTSL&lt;/a&gt; for the testing/certification, and while I can only speak as an individual developer, I highly recommend them for the certfication process.&lt;/p&gt;&lt;p&gt;Let this also start the trend of people calling Windows Mobile, WinMo ;)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=133303" width="1" height="1"&gt;</description></item><item><title>Taking a break from software...</title><link>http://weblogs.asp.net/craigg/archive/2004/05/15/132678.aspx</link><pubDate>Sun, 16 May 2004 01:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:132678</guid><dc:creator>CraigG</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/craigg/rsscomments.aspx?PostID=132678</wfw:commentRss><comments>http://weblogs.asp.net/craigg/archive/2004/05/15/132678.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;While I am in the midst of a rather complex network upgrade project (W2k&amp;nbsp;to&amp;nbsp;W2k3) that has already taken about a month, I figured I might as well make some comments about it.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Exchange 2003 still irks me with its lack of support for HTTP Mail Connectors (Hotmail) and &amp;#8220;Catch-All&amp;#8221; accounts.&amp;nbsp;Equally, I&amp;nbsp;don&amp;#8217;t like that NDR&amp;#8217;s are still tied directly to recipient policies, making it that much&amp;nbsp;harder to&amp;nbsp;work with them. On the mobile end, Exchange 2003 really makes it&amp;nbsp;easy for administrators to setup and deploy mobile solutions.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Windows Server 2003 and Windows 2000 Server seem to be just fine together for almost all of the backwards compatibility stuff we needed to do in the forest, with the exception of a 2000 RRAS/ISA Server having some problems with LDAP access to a 2003 DC.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;A href="http://support.microsoft.com:80/support/kb/articles/q305/2/93.asp&amp;amp;NoWebContent=1" target=_blank&gt;Windows XP SP1 still has that annoying setting&amp;nbsp;that causes havoc with group policies and several other things&lt;/A&gt;.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;2003 RRAS has some useful new criteria to check for would-be connections. Somewhat related, it seemed like setting up IPSec/L2TP connections&amp;nbsp;was a lot&amp;nbsp;friendlier then it used to be.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The new Group Policy tools&amp;nbsp;make&amp;nbsp;managing&amp;nbsp;GPOs a billion times more efficient then it used to be, although I would still like to see support added for binary registry values. Specifically, I would like support for client power settings.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;.NET Pre-Installed on 2003&amp;#8230; hope this is a trend that continues ;)&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The new default security levels are certainly encouraging, not to mention administrative friendly.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;AD Schemas could still be easier to work with.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;IIS 6 has set a positive new&amp;nbsp;direction for future IIS versions.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;And finally, there is no better music to listen to when setting up&amp;nbsp;networks then Motown ;)&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=132678" width="1" height="1"&gt;</description></item></channel></rss>