<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Tobin Titus</title>
        <description>Take a walk on the Wireside
</description>
        <link>/RSS</link>
        <language>en</language>
        <image>
            <url>http://tobint.com/Content/icons/favicon.png</url>
            <title>Tobin Titus</title>
            <link>/RSS</link>
            <width>64</width>
            <height>64</height>
        </image>
        <creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TobinT" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <dc:creator>tobint</dc:creator>
            <title>Run-in with Beaver, PA Police Department</title>
            <description>&lt;p&gt;I'm writing after a very long and scary night in an encounter with the &lt;a href="http://www.beaverpolice.us/" target="_blank"&gt;Beaver police department &lt;/a&gt; in Pennsylvania. &lt;/p&gt;  &lt;p&gt;My dad and I attended the 10pm showing of Star Trek at the &lt;a href="http://www.fandango.com/cinemarkcentertownshipmarketplace_aaswc/theaterpage" target="_blank"&gt;Cinemark Center Township Theater&lt;/a&gt; near &lt;a href="http://www.shopbeavervalley.com/" target="_blank"&gt;Beaver Valley Mall&lt;/a&gt;. All went well until our trip home. On the way home, I took my &lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;FORM=LMLTCC&amp;amp;cp=40.683107~-80.33245&amp;amp;style=r&amp;amp;lvl=17&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;phx=0&amp;amp;phy=0&amp;amp;phscl=1&amp;amp;sp=Point.qsdmw1894yc0_Exit%2013B%20to%20Rt%2068_Exit%20off%2013B%20onto%20Route%2068%20through%20Vanport%2FMidland.___&amp;amp;encType=1" target="_blank"&gt;normal exit to cut through Vanport and Midland&lt;/a&gt; to take my dad home in Ohio. &lt;/p&gt;  

&lt;iframe width="350" height="197" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.com/maps/sv?cbp=12,345.56,,0,-2.09&amp;amp;cbll=40.682825,-80.333563&amp;amp;v=1&amp;amp;panoid=&amp;amp;gl=&amp;amp;hl="&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a id="cbembedlink" href="http://www.google.com/maps?cbp=12,345.56,,0,-2.09&amp;cbll=40.682825,-80.333563&amp;ll=40.682825,-80.333563&amp;layer=c" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;

&lt;p&gt;&lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;FORM=LMLTCC&amp;amp;cp=40.681328~-80.336284&amp;amp;style=h&amp;amp;lvl=19&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;phx=0&amp;amp;phy=0&amp;amp;phscl=1&amp;amp;sp=Point.qsdmw1894yc0_Exit%2013B%20to%20Rt%2068_Exit%20off%2013B%20onto%20Route%2068%20through%20Vanport%2FMidland.___~Point.qsd6ff894s82_Approximate%20location%20of%20check%20point_Approximate%20location%20of%20check%20point___&amp;amp;encType=1" target="_blank"&gt;Directly off of the exit&lt;/a&gt;, I encountered something I have never seen before. Having lived in Ohio, North Carolina, South Carolina, and Washington State, I have never encountered a &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Sobriety_checkpoint" target="_blank"&gt;sobriety check point&lt;/a&gt;&amp;quot;. Am I the only one who has reached the age of 33 without this “pleasure”? It was a foreign concept to me so when I approached the officer and he asked me for my license, I was taken aback. I hadn't done anything wrong, and my &amp;quot;sobriety&amp;quot; can be ascertained without my license. I looked at the officer for a moment strangely and before I could react he immediately barked, &amp;quot;give me your license or I'll arrest you&amp;quot;. I pulled my license out and handed it to the officer reluctantly. He then asked me something, which I cannot remember exactly. The question was effectively asking why I hesitated to give him my license. The question seemed strange and obvious to me. I answered, &amp;quot;Have you not heard of the &lt;a href="http://en.wikipedia.org/wiki/Fourth_Amendment_to_the_United_States_Constitution" target="_blank"&gt;fourth amendment&lt;/a&gt;?&amp;quot; Obviously the officer was not happy with the answer because he put his hand on his gun, leaned in toward me and started barking at me &amp;quot;Your F*$%ing 4th amendment rights?! Say something again and I'll arrest you!&amp;quot; The police officer went on and on for what seemed like an eternity but was likely shorter than I remember. I literally feared for my life. I was among a dozen or so &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Peace_officer" target="_blank"&gt;peace officers&lt;/a&gt;&amp;quot; and I feared for my life as a law-abiding citizen. For what? For answering the question that he asked. Granted, my response was in a tone that was not respectful, but it was not taunting or belligerent either. The situation was so bazaar to me that the question just seemed absurd. It would be like an officer pulling you over to ask you if you know how to drive. The obvious fact that he pulled you over would indicate your ability do drive. Therefore, you might likely respond, &amp;quot;Umm. Seriously?&amp;quot; That’s how I felt. &lt;/p&gt;  &lt;p&gt;My dad at this point looked shocked too and we were both scared. The man was clearly out of control. I gazed at the other officers at the checkpoint. They all had a very confused look on their faces too. At this point, I was scared – not so much for me but for my dad. He has two bad knees and all I could imagine was the &lt;a href="http://www.youtube.com/watch?v=kJitpvE3Jq4" target="_blank"&gt;police pulling him from the car and slamming him to the ground&lt;/a&gt; – all because I answered his seemingly silly question. &lt;/p&gt;  &lt;p&gt;I picked up my ‘mini computer’. I didn't even care that it wasn’t recording. I just wanted to get the device out and visible. I figured the police, thinking they were possibly recorded might be enough to deter him from making an unwise decision. Worst case scenario – if I did manage to record anything that the recording might serve as evidence if anything “happened” to my dad and I. Apparently, this decision worked in my advantage. I didn't even have to tell him the device was on or that I was recording. His actions ever so slightly changed from “Who’s your daddy now” to “just get the hell out of here.” He just handed my license back and started yelling, saying &amp;quot;Go ahead and say something again.&amp;quot; I kept my mouth shut and he said, &amp;quot;Just go&amp;quot;. So as I turned my gaze back toward the road ahead of me, I didn't even inch forward a foot from the checkpoint before he started cussing at me and yelling. It was disturbing. This man has a gun -- and is sanctioned to carry AND use one by the city. He was dangerous and frightening. This was only the beginning of a long night. &lt;/p&gt;  &lt;p&gt;After making it through the stop, I pulled over and called 911. I told them what happened and they directed me to go to the &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=469+3rd+St,+Beaver,+PA+15009&amp;sll=37.0625,-95.677068&amp;sspn=55.937499,58.535156&amp;ie=UTF8&amp;ll=40.696107,-80.302742&amp;spn=0.001655,0.002806&amp;t=h&amp;z=19&amp;iwloc=A" target="_blank"&gt;police department in Beaver&lt;/a&gt; to file a report. My dad, knowing the area better than I do, advised that I go around the checkpoint a different way so I didn't instigate that officer further. The 911 officer, still on the phone at this point, seemed to indicate that going the alternate route wasn't a bad idea. &lt;/p&gt;  

&lt;p&gt;My dad and I drove to the Beaver police department the back way and got into town where I was greeted with a darkened police station. (see Google street view below)&lt;/p&gt;
&lt;iframe width="350" height="197" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/sv?cbp=12,131.18,,0,-8.15&amp;amp;cbll=40.696062,-80.302857&amp;amp;v=1&amp;amp;panoid=&amp;amp;gl=&amp;amp;hl=en"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a id="cbembedlink" href="http://maps.google.com/maps?cbp=12,131.18,,0,-8.15&amp;cbll=40.696062,-80.302857&amp;ll=40.696062,-80.302857&amp;layer=c" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;

&lt;p&gt;I used the telephone outside the station to contact the police. The individual on the phone asked for my name, and said someone would be there shortly to take my report. My dad then said, “They aren’t going to be happy about you reporting one of their own.” I felt this was a slight risk, but was unlikely – something that only happens in movies. Boy was I wrong. &lt;/p&gt;  &lt;p&gt;I went back to my truck for a minute and my dad stayed on the stoop of the police station. Just as I got into my truck, an officer pulled up. I got out of the vehicle and so did the officer. We met together and I began telling him what happened, my dad chiming in occasionally with his perspective and agreement that the officer was acting recklessly. The officer was very courteous and listened intently and seemingly concerned. He was a fairly young looking guy so I wondered if he was able to take the report or had to report to someone else first. The officer started to give me his perspective on the legality of sobriety checks and &lt;a href="http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=us&amp;amp;vol=496&amp;amp;invol=444" target="_blank"&gt;the reason for being able to side-step the 4th amendment&lt;/a&gt; (see the previously linked Wikipedia article for more information – essentially, it was decided that violation of constitutional rights is OK because its effective… hmm). I told him that at this point I wasn’t as concerned about that as I was with the officer’s very inappropriate actions and temper at the checkpoint. The officer may normally be OK. Maybe he had a bad day. Whatever the case, I didn’t think he needed to be at that station tonight. That said, I expressed my concern that all I wanted was to file the report and go home. Just as I did, another officer pulled up and started listening from his car. The second officer, also a young guy with a shaved head, stayed in his car for some time. After I while further into my story, the officer in the car told me “You know what, If I go and get that officer and he tells me it didn’t happen, I’m going to arrest you!” At that point, I told both officers that I was fine with that and I would prefer they got the officer so he could be present while I gave the report. I also told them that I might have been able to record the incident in question and really wanted to file my report. I could suddenly sense the mood change and the officer in the car looked visibly upset. Scared what may happen, I told the officer that I may have uploaded the recording already. I didn’t want them thinking that if they took the device, they could make it go away – and therefore the problem too. &lt;/p&gt;  &lt;p&gt;The officer in the car said, “Go ahead and record me and put it on YouTube!” Based on his facial expression and the tone with which he said it, I thought he was being serious. I said “really?” “Yeah,” he said, “Put it up on YouTube. You’ll be arrested for wire fraud.” I then realized he was not serious at all. He was trying to threaten me. He got out of the car and kept saying, “go ahead and record me. But you can’t record anyone without their consent.” I said, “As far as I understand, you can record anything that is out in the public without consent. Reporters do it all the time. He said, “How much do you want to bet?” I said, “Well, nothing because unsanctioned gambling IS illegal, but I still contend recording in public is not.” At this point, I hadn’t even acknowledged that I HAD ACTUALLY recorded anything. I simply indicated that I might have been able to – but was uncertain yet. So I pulled the device out again and asked, “You did say I can record you then?” He said “No. I didn’t say that.” He changed his story -- a flat-out lie. I asked him, “How can I even trust you to give you a report if you are already lying to me?” &lt;/p&gt;  &lt;p&gt;At this point, another car pulled up and the bald-headed officer said, “There’s the chief of police right there! We can ask him!” I said, “Great, let’s go talk to him.” So I started walking toward the chief and the bald-headed officer started shouting, “Don’t say anything, he’s recording this whole thing!” I never affirmed or denied it to the captain or anyone. The captain then started concentrating on my device despite my request to file a report. He didn’t care about the report. He wanted that device away from me. He kept demanding it from me. “Give me that phone. I want to see if it’s recording.” “No!” I exclaimed. “I never said it was recording, HE did,” as I pointed at the bald officer. The captain said, “Well, give me the device, I want to see. You have turned something very simple into something very difficult.” I thought, why was it *me* making this difficult? I just wanted to file a report. They were the ones getting very interested in what devices I had and making the issue about me, rather than simply taking a report. Were citizens that used to rolling over and giving up their rights? Am I really the only person they’ve ever seen who has indicated they had rights? Do they really not care? &lt;/p&gt;  &lt;p&gt;I simply held my device and occasionally looked at it. I was afraid at this point. I realized it was the Serriff’s office against my dad and me. The only defense I had was that the police had no idea what technological capability my device had. They also weren’t certain if I had uploaded a recording or streamed it somewhere that others could see. They weren’t certain if my device was a phone and I had someone listening/watching/reading to an open call/video feed/text-to-speech for an witness. That device felt like my only defense against what was increasingly looking like a completely corrupt police department. “Give me the phone,” the captain said assumingly. “No. See, if I WERE actually recording you, and it is actually against the law, I have a right to not turn that over to you and incriminate myself. That is the 5th amendment.” At this point, another few officers had shown up and had circled. There were 6 surrounding me. Other officers were now looking in the windows of my truck and running my license plates. They were just looking for a reason to arrest me. One of the additional officers on duty said, “You think because you read a few law books you know what’s going on? It’s called wire fraud in PA. You can record video, but you can’t record audio. I need to see what you are recording“, insisted the captain. The officers were drawing increasingly close, and had surrounded my dad and I. Some had their hands on their guns. Others were standing very threateningly – like a cobra ready to strike. OK, I’ve seen “Cops” and other shows. I see how these things go down. I was ready for someone to tackle me to the ground at any moment and arrest me. They would then “lose” my device to make sure there was no proof and then I’d be stuck on defense rather than offense. I was playing out every scenario in my head and I kept thinking my poor father was standing in harm’s way. I was still scared they would take him down hard and he just couldn’t handle that right now. &lt;/p&gt;  &lt;p&gt;So after repeated attempts to take my device, the captain said, “OK, let’s go! We are done here.” I asked “What about my report?” And they just ignored me and got in their cars. They weren’t even going to take my report. My dad and I went back to our truck. The police stuck around for a minute until the realized I wasn’t going anywhere just yet. I made a phone call to 911 again and expressed my concern that we were going to be harassed or worse on our way out of town. This was a rather valid concern at this point because the police had ‘driven off’ but had circled back around. Despite their obvious attempts to hide – turning off their lights and creeping into position so I wouldn’t see them, I could see them placing themselves in strategic positions. The 911 dispatcher gave me the number for the state highway patrol. I called that number and was told that the officer would call me back. As I waited for a return call, the police officers repositioned themselves. One even threateningly put himself directly in the alley in front of me as if to say, “go ahead and pull out, I dare you.” &lt;/p&gt;  &lt;p&gt;The state trooper on the line was very helpful by providing me with some information, but he was unable to come help me in what I perceived to be a dangerous situation. So, I hung up and put my phone down in the console. I knew there are anti-cellphone laws in the area, so I didn’t even want it in my hand where they could say I was on it. I pulled out and drove down toward Bridgewater. It was just a mile or so away to get out of Beaver’s jurisdiction in that direction. My dad and I ended up driving completely around the jurisdiction of Beaver police department  out of fear. &lt;/p&gt;  &lt;p&gt;I have never been afraid of anything like this in my life. I stand up when I feel it is necessary. When I was a child in school, Edmund Burke’s quote had a profound impact on my life: “all that is necessary for evil to triumph is for good men to do nothing.” I wasn't grandstanding for my own amusement. I wasn't trying to cause problems. I really just wanted to go home after watching a movie. However, this situation just got increasingly worse as more and more testosterone and abused power was added to the group. There was strength in numbers, but fortunately for me, there was also strength in using fear of the unknown and media scrutiny to keep me busy. I fully believe that if I had not had my device, or had the police had any certainty that I wasn't recording them, I would have been in jail or dead -- perhaps my dad too. &lt;/p&gt;  &lt;p&gt;From our childhoods, we are told to cooperate with the police. However, I have always had distrust for law enforcement officers. Growing up, I was told about the police scandals in my little home town and knew that a badge isn’t necessarily a reason to trust someone. This certainly hasn’t helped the cause. Tonight I was threatened by an officer at a sobriety check point because I wasn’t familiar with them. I was directed into a bad situation by a 911 operator. I was threatened again by a gang from the police department – including the chief himself. I was told to give up my rights, that I had none. Even if I wanted to record the police officers, apparently it &lt;a href="http://www.rottingnation.com/2007/06/14/pa-man-faces-seven-years-in-jail-for-video-taping-police/" target="_blank"&gt;IS illegal to do so in PA&lt;/a&gt; (seriously, they can record you, but you can’t record them). I witnessed a police officer change his story to protect himself and others around him when he thought he was being recorded. The chief of police wouldn’t even take my report and in fact, threatened me instead of helping me. So the police are out to stop drunken driving (an admirable act), but were more than willing to break laws, abuse their power, and make threats to protect a man who was just as dangerous as a drunk driver – if not more so. &lt;/p&gt;  &lt;p&gt;The police cry foul when citizens don’t help them out. Perhaps this is why. It has taken me three hours to write this up as my hands are still shaking and my heart is still literally racing from the experience. I still fear retaliation or reaction from them in some way. How are my dad and I to react? &lt;/p&gt;  &lt;p&gt;Is Pennsylvania so corrupt that they give you means for the average citizen to defend themselves? What is a person to do if they feel their life is threatened and there is no other way to prevent harm other than to record the officer? What is a person to do when the police department is so corrupt that they won’t even take a report against one of their officers. I’m afraid to even go in to file the report now. I’m actually securing an attorney to handle the matter because I feel I have no choice. Had the police just taken my report, I would have been happier and there would have been no need for me to protect myself. Hell, they could have thrown the report away afterward. I wouldn’t have known any better. The point is, I didn’t make this a big deal. The police just gave me no choice but to make it one because they wanted to swing their authority around for absolutely no reason at all. &lt;/p&gt;  &lt;p&gt;Please tell me what you think.&lt;/p&gt;
&lt;B&gt;Update (May 9, 2009 - 9:34PM EST):&lt;/B&gt;
&lt;P&gt;I've been doing some more reading and have found some more resources. First, I found &lt;a href="http://www.beavercountypa.gov/Sheriff/RightToKnow.htm"&gt;the location to contact for public records&lt;/a&gt;. I will be requesting transcripts of the 911 calls, videos from the police vehicles, correspondence and public records about the officers involved last night. I also found that the &lt;a href="http://www.attorneygeneral.gov/"&gt;Pennsylvania State Attorney General&lt;/a&gt; has a &lt;a href="http://www.attorneygeneral.gov/press.aspx?id=989"&gt;Public Corruption Unit&lt;/a&gt;. I will be contacting them on Monday to file a formal complaint and ask for an investigation.&lt;/P&gt;
&lt;B&gt;Update (May 10, 2009 - 12:03AM EST):&lt;/B&gt;
&lt;P&gt;In my previous version of this post, I posted that this was the Sheriff's department. After doing some investigation and talking with my dad to confirm, it was the local Beaver, PA police, and not Beaver County police. Beaver is the county seat so the local police and Sherriff's office are on the same street within blocks of each other. My sincerest apologies for the misunderstanding. &lt;/P&gt;
&lt;B&gt;Update (May 10, 2009 - 1:00AM EST):&lt;/B&gt;
I was checking out Google Street view and found this 'grab' to be a bit humorous. That's right, Google street view cams drove right by a speed trap on their way into Beaver from Bridgewater.
&lt;iframe width="700" height="394" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/sv?cbp=11,123.36,,1,8.88&amp;amp;cbll=40.682278,-80.333244&amp;amp;v=1&amp;amp;panoid=Lz09U92qr5nZtyUtlOrspA&amp;amp;gl=&amp;amp;hl=en"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a id="cbembedlink" href="http://maps.google.com/maps?cbp=11,123.36,,1,8.88&amp;cbll=40.682278,-80.333244&amp;ll=40.682278,-80.333244&amp;layer=c" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/sjGtIWrAAa0/Run-in-with-Beaver-PA-Police-Department</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Run-in-with-Beaver-PA-Police-Department</guid>
            <pubDate>Sat, 09 May 2009 06:37:00 GMT</pubDate>
            <category>PA</category>
            <category>Beaver</category>
            <category>Corruption</category>
            <category>PoliceCorruptionUnit</category>
            <category>BeaverPoliceDepartment</category>
            <category>Pennsylvania</category>
            <category>LegalSystem</category>
        <feedburner:origLink>http://tobint.com/Blog/Run-in-with-Beaver-PA-Police-Department</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS Security – Past and Present</title>
            <description>&lt;p&gt;This topic has been covered many times both by Microsoft and non-Microsoft employees. However, I’ve recently been asked what the main features of IIS 7 are and have seen a great deal of misinformation about IIS security on twitter, blog posts and forums. &lt;/p&gt;  &lt;p&gt;I think, therefore, the issue deserves yet another look. In this post, I’m going to go over security in the past for IIS and then move on to talk about security features in IIS 7. These are not in any particular order. This post is not meant to diminish the many thoughtful works already created by others – both complimentary and critical. This is just meant to bring the subject back up for discussion again in hopes that you can be properly equipped with the decision making information you may need.&lt;/p&gt;  &lt;h2&gt;Ghosts of IIS Security Past&lt;/h2&gt;  &lt;p&gt;The reason for so much misinformation about the current state of security in IIS is likely due to the earned reputation the product had in versions previous to IIS 6.0. A quick search on the web for &lt;a href="http://search.live.com/results.aspx?q=IIS+5+security+vulnerability&amp;amp;src=IE-SearchBox&amp;amp;Form=IE8SRC" target="_blank"&gt;IIS 5 security vulnerabilities&lt;/a&gt; may be like a walk down memory lane for some of the more veteran administrators and IT staff across the globe. The search results are littered with critical vulnerabilities related to buffer overflows, ISAPI extensions, exploits on rarely-used features, or features that were available by a default installation. We are haunted by names like “&lt;a href="http://en.wikipedia.org/wiki/Code_Red_(computer_worm)" target="_blank"&gt;Code Red&lt;/a&gt;” and “&lt;a href="http://en.wikipedia.org/wiki/Nimda" target="_blank"&gt;Nimda&lt;/a&gt;”. I don’t know about you, but those very names send shivers down my spine. I was consulting as a developer and web administrator for a very large property management company when these hit. We were lucky enough to avoid these as we had patched our services. That said, many whom I did business with on a regular basis were not very happy. So, to be clear, I feel the misinformation that is spread today is built on an element of experience with previous versions. Secunia reports &lt;a href="http://secunia.com/advisories/product/39/" target="_blank"&gt;16 advisories and 6 vulnerabilities&lt;/a&gt; with IIS 5.&amp;#160; And so started the reputation , perhaps deservedly so, that IIS was not secure unless you really knew what you were doing with security.&lt;/p&gt;  &lt;p&gt;Bill Gates was apparently visited by the ghosts of security past, present and future when he laid his head on his pillow January 14th, 2002. I say that because on January 15th, 2002 Mr. Gates sent out the &lt;a href="http://www.wired.com/techbiz/media/news/2002/01/49826" target="_blank"&gt;now-famous trustworthy computing memo&lt;/a&gt; to every employee at Microsoft.&amp;#160; This set off a major revamp of products from the ground up. Standards were set for test planning and testing. Writing Secure Code was mandatory reading for every Microsoft developer and tester. The results have been staggering.&lt;/p&gt;  &lt;p&gt;Security drastically improved in Microsoft products over the years, and IIS was definitely no exception to this. IIS 6 saw &lt;a href="http://secunia.com/advisories/product/1438/" target="_blank"&gt;5 security advisories and 4 vulnerabilities&lt;/a&gt; reported since 2003. Not to get ahead of myself, but IIS 7 has &lt;a href="http://secunia.com/advisories/product/17543/" target="_blank"&gt;exactly 1 advisor and 1 vulnerability&lt;/a&gt; from Secunia. Compare this against Apache 2.0.x which has had &lt;a href="http://secunia.com/advisories/product/73/" target="_blank"&gt;39 advisories and 23 vulnerabilities&lt;/a&gt; (4 of which are still unpatched as of this writing) and Apache 2.2.x which has had &lt;a href="http://secunia.com/advisories/product/9633/" target="_blank"&gt;10 advisories and 16 vulnerabilities&lt;/a&gt; (2 of which are still unpatched as of this writing) in the same period.&amp;#160; Now I have seen attempts (&lt;a href="http://googleonlinesecurity.blogspot.com/2007/06/web-server-software-and-malware.html" target="_blank"&gt;[1]&lt;/a&gt;, &lt;a href="http://blog.washingtonpost.com/securityfix/2007/05/cyber_crooks_hijack_activities_1.html" target="_blank"&gt;[2]&lt;/a&gt;) to quantify or otherwise explain these numbers further. You can read those articles for yourself and determine how much weight you want to give them. However you skew it, the facts should speak for themselves – IIS has dramatically improved and taken a leadership roll in security in IIS 6 and 7. Our ghost of IIS past still haunts the product’s reputation today, despite obvious strides taken. Even if you feel you like Apache better I think it is only fair to give credit where it is due. &lt;/p&gt;  &lt;h2&gt;Improvements in IIS 6&lt;/h2&gt;  &lt;p&gt;The IIS team took the four tenants of Microsoft’s Trustworthy Computing initiative to heart: Secure by Design, Secure by Default, Secure in Deployment and Secure Communication. Since we are already on the next version, I won’t spend a great deal of time talking about the security improvements in the last version other than a brief overview so you know how they relate to changes in our current version, IIS 7. &lt;/p&gt;  &lt;p&gt;IIS 6 took vast strides to improve security. During upgrade installations, IIS 6 was disabled by default if the previous server had not been secured by the &lt;a href="http://blog.washingtonpost.com/securityfix/2007/05/cyber_crooks_hijack_activities_1.html" target="_blank"&gt;IIS lockdown tool&lt;/a&gt;. The architecture was completely revamped to separate kernel-mode HTTP listening from user-mode application execution. Changes were made to application pools, authentication, access control, encryption and certificate handling, auditing, logging and patch management that made the product far superior to its predecessors. You can find a detailed list of these features on &lt;a href="http://technet.microsoft.com/en-us/library/cc736369.aspx" target="_blank"&gt;TechNet&lt;/a&gt;.&amp;#160; SecurityFocus did a comparison of these features in &lt;a href="http://www.securityfocus.com/infocus/1765" target="_blank"&gt;March of 2004&lt;/a&gt;.Server Watch wrote an article in &lt;a href="http://www.serverwatch.com/tutorials/article.php/3294371" target="_blank"&gt;December of 2003&lt;/a&gt;. By most accounts, everything accomplished in IIS 6 was a huge step in the right direction.&lt;/p&gt;  &lt;p&gt;Despite the massive steps already taken in IIS6, IIS 7 took these all a bit further. Let’s go ahead and investigate these now.&lt;/p&gt;  &lt;h2&gt;Improvements in IIS 7.x&lt;/h2&gt;  &lt;h3&gt;Customizable Installation&lt;/h3&gt;  &lt;p&gt;Continuing with the tenant of being secure in deployment, IIS 7 has made installation a wonder to behold. In IIS 6, you could reduce your attack surface by disabling features native to web server. However, these features were still loaded into the process. This carried not only a security factor, but also a performance and memory footprint issue.&amp;#160; IIS 7 has a completely modular architecture. That means that features which you do not want are not only NOT loaded into the process, you can leave the bits for those features off of your disk completely. &lt;/p&gt;  &lt;h3&gt;Limitable Attack Surface&lt;/h3&gt;  &lt;p&gt;This is a bit dubious and is essentially part of the customizable installation. By reducing the modules that are available on disk or loaded into a process, you significantly reduce the attack surface for your specialized web servers. If all you intend to do is serve static content with caching and no default documents, you can simply install the static file handler and caching module and leave the rest of the IIS modules off of your server. Additional controls and limitations will also reduce your attack surface and I’ll cover those below.&lt;/p&gt;  &lt;h3&gt;IUSR account&lt;/h3&gt;  &lt;p&gt;Anyone who has tried to migrate an IIS installation from one machine to another or attempted to recover your installation on a new machine, previous to IIS 7, has likely run into an issue with the local “IUSR_&amp;lt;machine_name&amp;gt;” account.&amp;#160; IIS 7 now uses a built-in IUSR account that allows you to easily copy your security settings from one machine to the next. This is great news for those using distributed configuration in web farms, recovery, restoration, or replication.&lt;/p&gt;  &lt;h3&gt;IIS_IUSRS group&lt;/h3&gt;  &lt;p&gt;IIS 6 introduced the IIS_WPG group. Application pool security identities had to be assigned to this group in order to host the w3wp.exe process. Like the IUSR account, IIS 7 now creates a built-in security group (IIS_IUSRS) and assigns application pool identities to the group automatically. You can find more information about the built-in user and built-in group for IIS 7 on IIS.NET (&lt;a href="http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-7/." target="_blank"&gt;Understanding the Built-In User and Group Accounts in IIS 7.0&lt;/a&gt;). &lt;/p&gt;  &lt;h3&gt;ASP.NET / IIS Unified Security Architecture&lt;/h3&gt;  &lt;p&gt;Previous versions of IIS did not provide a unified approach to security with ASP.NET. The IIS 7 unified request pipeline that supports both Windows and non-Windows principals and provides one place to do all authentication and authorization. Apart from simplification and performance improvements, this also reduces the attack surface and allows for greater flexibility in authentication / authorization scenarios with custom modules.&lt;/p&gt;  &lt;h3&gt;Request Filtering / URL Rewriting&lt;/h3&gt;  &lt;p&gt;IIS 7.0 includes a request filtering module that is based on the URLScan ISAPI Filter for IIS 6.0. The module helps you tighten security of your Web servers. &lt;/p&gt;  &lt;p&gt;The IIS team has also released an add-on URL rewrite module for IIS 7.0, which provides functionality for rule-based URL manipulation. Even though the primary purpose of the URL rewrite module is to rewrite URL paths for requests, the rewrite module can also be used as a security enforcement tool that helps prevent access to Web site content.&lt;/p&gt;  &lt;h3&gt;Application Pool Identities&lt;/h3&gt;  &lt;p&gt;On top of Application Pool Isolation, IIS introduces a new security feature in Service Pack 2 of Windows Server 2008 and Windows Vista. It's called Application Pool Identities. Application Pool Identities allows you to run Application Pools under an unique account without having to create and manage domain or local accounts. The name of the Application Pool account corresponds to the name of the Application Pool. &lt;/p&gt;  &lt;h3&gt;Kernel mode SSL&lt;/h3&gt;  &lt;p&gt;The implementation of SSL has changed from IIS 6.0 to IIS 7.0.&amp;#160; On Windows Server 2003, all SSL configuration was stored in the IIS metabase and encryption/decryption happened in user mode (required a lot of kernel/user mode transitions).&amp;#160; On Windows Vista and Windows Server® 2008, HTTP.sys handles SSL encryption/decryption in kernel mode, resulting in up to 20% better performance for secure connections.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Configuration Improvements&lt;/h3&gt;  &lt;p&gt;IIS 7.0 allows locking and unlocking configuration settings in various levels and scopes. Locking down configuration means that it cannot be overridden (or set at all) at lower levels in the hierarchy. Unlocking configuration can only be done at the level where it was locked. This is useful, for example, when creating different configuration for different sites or paths, and only some of sites and paths are allowed to override it. Locking can be done at the section level or for specific elements, attributes, collection elements and collection directives within sections.&lt;/p&gt;  &lt;h3&gt;Dynamic IP Restriction&lt;/h3&gt;  &lt;p&gt;IIS 7 provides a new module that allows dynamic, temporary IP address restriction. This module prevents brute force attacks and HTTP clients that make unusually high number of concurrent requests or a large number of requests over a short period of time.&lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;A verbose list of security features in IIS 6 and IIS 7 might be nearly impossible. Apart from the obvious features, there were numerous improvements to code made over these two versions that make the product far more secure than IIS 5 and earlier. That said, this should give you a summary start on information. I’ve listed some reference documents that may help you understand these features better.&amp;#160; In general, I would encourage you to ask questions of the product team and or other users on the &lt;a href="http://forums.iis.net/" target="_blank"&gt;IIS.NET forums&lt;/a&gt; if you hear something that sounds negative regarding IIS. If the feedback is true, the product team has the benefit of improving the next release. If the feedback is unfounded, the product team has the benefit of helping you find the information you need to make an informed decision. &lt;/p&gt;  &lt;h2&gt;See Also&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/scobleizer/Brent-Hill-and-Roger-Grimes-Chatting-about-IIS-7s-security/"&gt;&lt;strong&gt;Brent Hill and Roger Grimes - Chatting about IIS 7's security&lt;/strong&gt;&lt;/a&gt; (From Sept. 2005) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/shows/TechNet+Radio/TechNet-radio-Learn-about-the-IIS7-Security-features-and-benefits/" target="_blank"&gt;&lt;strong&gt;TechNet radio: Learn about the IIS7 Security features and benefits&lt;/strong&gt;&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.gartner.com/DisplayDocument?doc_cd=125453" target="_blank"&gt;&lt;strong&gt;Management Update: IIS Is No Longer the Problem in Web Server Security&lt;/strong&gt;&lt;/a&gt; (Gartner) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=568&amp;amp;PUID=00034001826C5CC7" target="_blank"&gt;&lt;strong&gt;IIS 7 Security: Less Exposure, Greater Control&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc731278.aspx" target="_blank"&gt;&lt;strong&gt;TechNet: Configure Web Server Security&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/88/configuring-security/" target="_blank"&gt;&lt;strong&gt;IIS.NET : Configuring Security&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/139/iis7-security-improvements/" target="_blank"&gt;&lt;strong&gt;IIS.NET : IIS Security Improvements&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/548/using-dynamic-ip-restrictions/" target="_blank"&gt;&lt;strong&gt;Using Dynamic IP Restrictions&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering" target="_blank"&gt;&lt;strong&gt;IIS.NET Configuration Reference: Request Filtering&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/-NmTmJLd11g/IIS-Security--Past-and-Present</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-Security--Past-and-Present</guid>
            <pubDate>Tue, 28 Apr 2009 04:31:00 GMT</pubDate>
            <category>URLRewriter</category>
            <category>Logging</category>
            <category>IIS6</category>
            <category>configuration</category>
            <category>IIS</category>
            <category>Installation</category>
            <category>Security</category>
            <category>IIS51</category>
            <category>IIS7</category>
            <category>ApplicationPools</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-Security--Past-and-Present</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>I might be Speaking at CodeStock – or watching Shawn Wildermuth</title>
            <description>&lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="right" src="http://codestock.org/App_Themes/CodeStock09/images/nerdSkull_logo_2009.png" /&gt;OK, so I had intended to announce that I posted a session submission to &lt;a href="http://codestock.org/" target="_blank"&gt;CodeStock&lt;/a&gt; and that voting was open. However, I procrastinated and &lt;a href="http://wildermuth.com/2009/04/03/I_Might_Be_Speaking_at_CodeStock" target="_blank"&gt;Shawn Wildermuth&lt;/a&gt; beat me to the punch. So in an act of utter creepiness, I am modeling my post after his and invoking his name for extra copy-cat points.&lt;/p&gt;  &lt;p&gt;For those of you that don’t know what CodeStock is, think of it as a CodeCamp done better – in two days instead of one. In their own words:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;CodeStock is about Community. For Developers, by Developers (with love for SysAdmins and DBAs too!). Last year and idea started at CodeStock to mix Open Spaces within a traditional conference. This year we're going to crank things up to 11 and rip off the knob - and you're being drafted to help.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This two-day conference, of sorts, will be kicked off June 26th and costs only $25 to register.&lt;/p&gt;  &lt;p&gt;My sessions are in the running, right along side Shawn’s. As he so eloquently pointed out, CodeStock attendees get to pick what sessions they wish to see from all of those submitted by would-be speakers. If my session doesn’t get picked, perhaps I can just watch Shawn. I’m told he has given a presentation or two in his career :)&lt;/p&gt;  &lt;p&gt;So if you haven’t already, please go register for CodeStock so you can vote on those sessions while you can! Session voting ends on May 15th.&lt;/p&gt;  &lt;p&gt;(Thanks, Shawn!) &lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/oOfPKkz5dfo/I-might-be-Speaking-at-CodeStock--or-watching-Shawn-Wildermuth</link>
            <guid isPermaLink="false">http://tobint.com/Blog/I-might-be-Speaking-at-CodeStock--or-watching-Shawn-Wildermuth</guid>
            <pubDate>Fri, 03 Apr 2009 22:21:51 GMT</pubDate>
            <category>Speaking</category>
            <category>MGrammar</category>
        <feedburner:origLink>http://tobint.com/Blog/I-might-be-Speaking-at-CodeStock--or-watching-Shawn-Wildermuth</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Installing CakePHP on IIS 7</title>
            <description>&lt;p&gt;Recently I spoke with someone on Twitter who was having issues running &lt;a href="http://cakephp.org/" mce_href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt; on IIS. With all the talk about ASP.NET MVC on IIS, folks forget that the MVC pattern works in other languages as well. CakePHP provides MVC&amp;#160; development on PHP. That said, I wanted to dive in and see what the issues were involved in getting this project up and running on IIS 7. I managed to get it installed pretty quickly, but it does take a little tweaking to get you up and running. I've chronicled my adventures with CakePHP below in case anyone else is having issues. That said, I must first say that I am not an expert working with CakePHP. This was my first experience with the project, so this information is provided &amp;quot;as-is&amp;quot; and should be taken with a grain of salt. With this demo, I’ll be walking through the &amp;quot;&lt;a href="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial" target="_blank"&gt;Cake Blog Tutorial&lt;/a&gt;” offered on cakephp.org, and modifying it as needed to work with IIS 7. That said, let's get started.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div&gt;Install: IIS 7 on Windows 2008 Server or Windows Vista&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div&gt;Install: &lt;a href="http://php.iis.net/" target="_blank"&gt;PHP&lt;/a&gt; for IIS 7.0. Use the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" mce_href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web Platform Installer&lt;/a&gt; for easiest experience.&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;Install: &lt;a href="http://www.iis.net/extensions/URLRewrite"&gt;URL Rewriter&lt;/a&gt; module. Use the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" mce_href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web Platform Installer&lt;/a&gt; for easiest experience.&lt;/div&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Install: A database &lt;a href="http://book.cakephp.org/view/308/Installing-CakePHP" target="_blank"&gt;supported by CakePHP&lt;/a&gt;. This post uses MySQL.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Download: &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt; source code&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div&gt;Unzip: CakePHP (entire contents) to the intended path&lt;/div&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Yes, there ARE a lot of Prerequisites, but these are pretty typical for any MVC app on any platform.&lt;/p&gt;  &lt;h2&gt;Assumptions / Conventions&lt;/h2&gt;  &lt;p&gt;For the purposes of this post, I will use the convention/assumption that you have unzipped CakePHP to c:\inetpub\CakePHP\ . You should have the following paths now:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div&gt;c:\inetpub\CakePHP\&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div&gt;\app&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;\cake&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;\vendors&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;.htaccess&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;index.php&lt;/div&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;version.txt&lt;/div&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I will also use the assumption that this is being installed on the &amp;quot;Default Web Site&amp;quot;. This is unlikely what you are doing, so you'll want to replace the &amp;quot;Default Web Site&amp;quot; instances in the steps below with your site or application path.&lt;/p&gt;  &lt;p&gt;Lastly, I will assume that you are using and have already installed MySQL. You may use another database if you please, but this blog will reference MySQL.&lt;/p&gt;  &lt;h2&gt;&lt;b&gt;Installing the Blog Sample&lt;/b&gt;&lt;/h2&gt;  &lt;h3&gt;&lt;b&gt;Pointing IIS to the cake document root&lt;/b&gt;&lt;/h3&gt;  &lt;p&gt;First, you'll need to configure your website to point to the correct location. Using the assumptions above, the correct location would be c:\inetpub\CakePHP\app\webroot\ . &lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Creating a Blog Database&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Second, configure your database connection. To do this, you’ll need to create a blog database, and then point your configuration to that new catalog.&lt;/p&gt;  &lt;p&gt;Start by creating a new MySQL Catalog using your favorite tool. I used &lt;a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank"&gt;MySQL Administrator&lt;/a&gt;. Simply right click in the catalogs and click “create new schema.”&lt;/p&gt;  &lt;p&gt;&lt;img src="http://tobint.com/timgs/cakephp/mysql-createschema.jpg" width="599" height="480" /&gt; &lt;/p&gt;  &lt;p&gt;Create a schema named “CakeBlog”. Once the schema is created, click on the “Tools” menu and select “MySQL Query Browser” and execute the following script:&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#006400"&gt;/* First, create our posts table: */&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;CREATE&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;TABLE&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;posts&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;id&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;INT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;UNSIGNED&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;AUTO_INCREMENT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;PRIMARY&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;KEY&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;title&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;50&lt;/font&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;body&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;TEXT&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;created&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;DEFAULT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;NOT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;NULL&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;modified&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;DEFAULT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;NOT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;NULL8.)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#006400"&gt;/* Then insert some posts for testing: */&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;posts&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(title,body,created)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#808080"&gt;'The title'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt; 'This is the post body.'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;NOW())&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;posts&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(title,body,created)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#808080"&gt;'A title once again'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt; 'And the post body follows.'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;NOW())&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;posts&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(title,body,created)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#808080"&gt;'Title strikes back'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt; 'This is really exciting! Not.'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;NOW())&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt; &lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="code"&gt;&lt;em&gt;* This SQL code copied verbatim from tutorial found here: &lt;/em&gt;&lt;/div&gt;  &lt;div class="code"&gt;&lt;em&gt;&amp;#160;&amp;#160; &lt;/em&gt;&lt;a title="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial" href="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial"&gt;&lt;em&gt;http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/div&gt;  &lt;p&gt;You’ve now created your database and a blog posts table with some default posts. Time to configure CakePHP to read from the database:&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Cake Database Configuration&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;We’ll need to let CakePHP know where the database is. Copy &lt;strong&gt;database.php.default&lt;/strong&gt; in c:\inetpub\CakePHP\app\config\ to &lt;strong&gt;database.php&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Open c:\inetpub\cakephp\app\config\database.php and change the $default variable to point to your database:    &lt;br /&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;$&lt;/font&gt;&lt;font color="#0000ff"&gt;default&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;array(&lt;/font&gt;&lt;font color="#808080"&gt;'driver'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'mysql'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'connect'&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'mysql_connect'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'host'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'localhost'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'login'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'CakeBlog'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'password' &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'c4ke-1z-k00l'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'database' &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; 'CakeBlog'&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'prefix'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#808080"&gt; ''&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt; &lt;/p&gt;  &lt;div class="code"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;  &lt;div class="code"&gt;&lt;em&gt;* This PHP code copied nearly verbatim from tutorial found here: &lt;/em&gt;&lt;/div&gt;  &lt;div class="code"&gt;&lt;em&gt;&amp;#160;&amp;#160; &lt;/em&gt;&lt;a title="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial" href="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial"&gt;&lt;em&gt;http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/div&gt;  &lt;p&gt;You should not be able to open your browser to your application and see the default cake configuration page.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Setting up Rewriting Rules&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;CakePHP uses mod_rewrite, but also provides the ability to use Cake’s built-in ‘pretty URLs’. We’ll be importing the mod_rewrite rules from the .htaccess files from the default cakephp installation into the IIS URL Rewrite module. We’ll then have to modify those rules.&lt;/p&gt;  &lt;p&gt;Start this process by opening the IIS Management Console. Open your application path. In this instance, we are using “Default Web Site”. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Click on the “&lt;strong&gt;Default Web Site&lt;/strong&gt;” &lt;/li&gt;    &lt;li&gt;Open the “&lt;strong&gt;URL Rewrite&lt;/strong&gt;” module &lt;/li&gt;    &lt;li&gt;Click on “&lt;strong&gt;Import Rules…&lt;/strong&gt;” in the &lt;strong&gt;Actions&lt;/strong&gt; pane       &lt;br /&gt;&lt;img src="http://tobint.com/timgs/cakephp/mod-rewrite.jpg" width="563" height="480" /&gt; &lt;/li&gt;    &lt;li&gt;Click the “&lt;strong&gt;…&lt;/strong&gt;” button next to the “Configuration file” textbox. &lt;/li&gt;    &lt;li&gt;Select the c:\inetpub\cakephp\.htaccess file and click “&lt;strong&gt;OK&lt;/strong&gt;” &lt;/li&gt;    &lt;li&gt;Click the “&lt;strong&gt;Import&lt;/strong&gt;” button &lt;/li&gt;    &lt;li&gt;Click the “&lt;strong&gt;Apply&lt;/strong&gt;” button in the “&lt;strong&gt;Actions&lt;/strong&gt;” pane &lt;/li&gt;    &lt;li&gt;Repeat steps 4, 5, 6 and 7 for c:\inetpub\cakephp\app\.htaccess and c:\inetpub\cakephp\app\webroot\.htaccess files. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The rules are imported, but now you’ll need to edit the rules.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Click the “&lt;strong&gt;Back to Rules&lt;/strong&gt;” button in the “&lt;strong&gt;Actions&lt;/strong&gt;” pane &lt;/li&gt;    &lt;li&gt;Edit the two rules with the action starting with “&lt;strong&gt;webroot/&lt;/strong&gt;” &lt;/li&gt;    &lt;li&gt;Remove the “&lt;strong&gt;webroot&lt;/strong&gt;” portion of the “Rewrite URL”. Your paths should now look as follows:       &lt;br /&gt;&lt;img src="http://tobint.com/timgs/cakephp/mod-rewrite2.jpg" /&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;&lt;strong&gt;Creating your MVC Application&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;The remainder of your application setup should follow the steps found in the original “&lt;a href="http://book.cakephp.org/view/326/The-Cake-Blog-Tutorial" target="_blank"&gt;Cake Blog Tutorial&lt;/a&gt;”. There is nothing different between IIS and Apache at this point, so copying the steps would be a bit redundant. Start with the step named “&lt;strong&gt;&lt;u&gt;Create a Post Model&lt;/u&gt;&lt;/strong&gt;”. Much like ASP.NET MVC, Cake provides an MVC pattern for developing PHP applications. &lt;/p&gt;  &lt;p&gt;Once you have completed the steps, you should have a default site that looks something like the following:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://tobint.com/timgs/cakephp/completed.jpg" width="640" height="396" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Installing CakePHP on IIS is actually not much different from installing on Apache. The main difference lies in the implementation of mod_rewrite on Apache vs URL Rewriter in IIS. Obviously the installation of PHP differs from Apache. IIS makes the installation of PHP simple with Web Application Installer. If you are using CakePHP on IIS, I would be interested to hear if your experience was different than mine.&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/Xw2zGOhpbGY/Installing-CakePHP-on-IIS-7</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Installing-CakePHP-on-IIS-7</guid>
            <pubDate>Fri, 03 Apr 2009 08:47:54 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Installing-CakePHP-on-IIS-7</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>A matter of pixels</title>
            <description>&lt;p&gt;I’ve been sick a lot lately. In fact, in my entirely life, I don’t ever remember being this sick for this long. It’s been weeks with the same cold – months if you consider the on-again/off-again problems I’ve been having. I guess it could be my fault. I’ve never been a big fan of drugs or doctors. &lt;/p&gt;  &lt;p&gt;During my sick time, I try to do some work and often find myself barely able to concentrate. You know how it is, your head feels like its floating, and then you cough or sneeze and you feel as though your body has shaken apart into a million pieces. I’ve always equated that feeling with the visualization of my head becoming pixilated or snowy. That brings me, ever so strangely, to my current topic.&lt;/p&gt;  &lt;p&gt;It’s been years since I focused on the front of web development issues. Back in the late 1990’s and early 2000’s I tinkered with client-side web development a great deal. I was writing “Ajax” applications before they were known as that. Of course, they all ran on intranet sites for my clients because they would only work in IE. I learned something back then. It was all a matter of pixels. In many cases, you had to take a box model and calculate precisely where things were and how they should line up. Of course, back then I was still using tables for layouts and cutting up images into manageable slices to put in individual or spanned table cells. Making those images line up, then, was extremely important to work on all browsers.&lt;/p&gt;  &lt;p&gt;Over the years, I drifted away from client-side development. I have been concentrating on the back end of the web development stack. IIS, Apache, SQL Server, MySQL, MSMQ, MQ Series, BizTalk, WF, Remoting=&amp;gt;WCF, and associated technologies have been where I spent my time. What happened with data once my server pieces were done was beyond me. As a 3-year veteran working with IIS at Microsoft, you can see why this is important to me. That said, to help make IIS a better web server, it is always useful to actually know what is being served by your webserver, and why it may be important to you. I started playing with ASP.NET MVC which of course means I had to look at the “View” side of things again. To get a better grip on ASP.NET MVC, I decided to implement my blog in &lt;a href="http://www.codeplex.com/oxite" target="_blank"&gt;Oxite&lt;/a&gt;. Oxite isn’t a product, its a technology sample that is being followed to its logical conclusion – full implementation. This project fills the void of most samples by truly evangelizing the technology in a real-world implementation that can (and should) be implemented by others. Many of the samples out there are great examples of how to start an app, but never demonstrate that you can fully implement your project in the technology. &lt;/p&gt;  &lt;p&gt;So, as I decided to dive in again and start playing with client-side development, I realized quickly that I needed to relearn everything I once knew. Box models were still important, but so was understanding the nuances of where my pixels within the context of their containers. Unlike with tables, that are fairly predictable, I learned very quickly that CSS-based DIV layouts can break down quickly if you aren’t using the proper attributes in your styles. div wrapping, overflow, z-indexes, display styles all became important topics for me to learn. I was trying to learn All this while I was laying sick in my bed! &lt;/p&gt;  &lt;p&gt;I must say that I’m hooked now. I love technologies like jQuery. I’ve written a few plug-ins already. Some of them you see on this site, others will be on my site soon. Some will be coming in next revisions and available for download from this site. You can get the twitter client plug-in that scrolls at the top of this site’s page by downloading the Oxite &lt;a href="http://tobint.com/titus.zip" target="_blank"&gt;skin&lt;/a&gt; on this website. I love that the community has developed many resources such as Yahoo’s CSS &lt;a href="http://developer.yahoo.com/yui/reset/" target="_blank"&gt;reset&lt;/a&gt; and associated style sheets. &lt;/p&gt;  &lt;p&gt;Don’t get me wrong, I’m not an expert in these technologies overnight. I’ve got a LOT to learn. But I just keep telling myself, its all a matter of pixels. Count them out and everything will turn out ok!&lt;/p&gt;  &lt;p&gt;Some resources for your own journey in client-side design/development:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://jquery.com" target="_blank"&gt;jQuery&lt;/a&gt; – jQuery is a technology rooted in Microsoft’s leading &lt;a href="http://www.alexhopmann.com/story-of-xmlhttp/" target="_blank"&gt;XmlHttpRequest&lt;/a&gt; object. jQuery native core allows you to assign behavior to elements of the document object, perform common tasks such as layout, animations, fades and much more. This site’s plug-in repository is worth checking out and scouring for examples.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://jQueryUI.com" target="_blank"&gt;jQueryUI&lt;/a&gt; – If you like jQuery, this framework of UI plug-ins will help you get a clean, professional look for any website. The site allows you to create a customized theme, download it, and apply it to your layout. Absolutely brilliant.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/" target="_blank"&gt;YUI&lt;/a&gt; – Yahoo User Interface Library provides many user interface modules. I highly recommend the reset CSS. It helps all browser get on the same footing as far as padding, margin, borders, and spacing go. Very useful tool to help you achieve your desired look/feel on all browsers.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ajaxian.com/" target="_blank"&gt;The Ajaxian&lt;/a&gt; – Great blog with useful information about developing dynamic content on the client side.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://json.org/" target="_blank"&gt;Introducing JSON&lt;/a&gt; – A good starting spot to learn about JSON (JavaScript Object Notation) and associated extensions such as JSONP. JSON allows you to serialize objects across Ajax requests. jQuery provides &lt;a href="http://docs.jquery.com/Ajax/jQuery.ajax" target="_blank"&gt;support for&lt;/a&gt; JSON/JSONP.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb299886.aspx" target="_blank"&gt;Microsoft: Introduction to JSON in JavaScript and .NET&lt;/a&gt; – Useful information to further your understanding of JSON.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html" target="_blank"&gt;HTML 5 Draft Recommendation&lt;/a&gt; – It always helps to know where your rendering specification is heading. HTML 5 supports things such as &lt;a href="http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.png" target="_blank"&gt;canvases&lt;/a&gt; that can render objects of irregular shapes and even manipulate individual pixels.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://layouts.ironmyers.com/" target="_blank"&gt;Common layouts&lt;/a&gt; – This useful site provides the code needed to produce common layouts in fixed and fluid mode.&lt;/li&gt;    &lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank"&gt;Firebug&lt;/a&gt; – This tool is useful if you need to inspect a website’s output and determine what isn’t working. Often times it is hard to tell what setting is making our layout go wildly wrong. Firebug allows you to view the aggregate of your CSS calls for a given element, and let you see where your settings are coming from. The tool is invaluable to any client-side developer.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://fireunit.org/" target="_blank"&gt;FireUnit&lt;/a&gt; – Provides JavaScript debugging. This is a necessary tool for anyone developing modern, dynamic, and interactive web UI today.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.colorschemer.com/" target="_blank"&gt;Color Schemer&lt;/a&gt; – This site provides a great tool to create color pallets for your site.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There is so much more to look at that I’m leaving out here. Obviously I could make the list extremely long. However, emphasizing everything means I am emphasizing nothing. I suggest those sites above as a good starting point.&lt;/p&gt;  &lt;p&gt;Happy Coding!&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/mutrYhDv-ek/A-matter-of-pixels</link>
            <guid isPermaLink="false">http://tobint.com/Blog/A-matter-of-pixels</guid>
            <pubDate>Tue, 24 Feb 2009 01:34:58 GMT</pubDate>
            <category>design</category>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/A-matter-of-pixels</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Enabling VS.NET 2008 to work with IIS 7.0</title>
            <description>&lt;P&gt;This is likely old ground for some, but I thought I’d cover it again just in case. As you may know Visual Studio allows you to create a new web site on IIS. However, there are some minor steps that you need to complete before it will work appropriately.&lt;/P&gt;

&lt;P&gt;Let’s walk through this. &lt;/P&gt;

&lt;OL&gt;
&lt;LI&gt;Open Visual Studio .NET 2008&lt;/LI&gt;

&lt;LI&gt;Go to &lt;STRONG&gt;File&lt;/STRONG&gt; | &lt;STRONG&gt;Web Site…&lt;/STRONG&gt;&lt;/LI&gt;

&lt;LI&gt;Click the &lt;STRONG&gt;Browse&lt;/STRONG&gt;… button to choose a &lt;STRONG&gt;Location&lt;/STRONG&gt; &lt;BR&gt;&amp;nbsp;&lt;A href="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_21C7C2CC.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_21C7C2CC.jpg"&gt;&lt;IMG title="1 - vs08-newwebsite-sm" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=392 alt="1 - vs08-newwebsite-sm" src="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_thumb_5F74AA88.jpg" width=607 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_thumb_5F74AA88.jpg"&gt;&lt;/A&gt; &lt;/LI&gt;

&lt;LI&gt;Click on the &lt;STRONG&gt;Local IIS&lt;/STRONG&gt; button on the left &lt;BR&gt;&lt;A href="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_4866294C.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_4866294C.jpg"&gt;&lt;IMG title="2 - vs08-iis-sm" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=401 alt="2 - vs08-iis-sm" src="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_thumb_1F7B1443.jpg" width=503 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_thumb_1F7B1443.jpg"&gt;&lt;/A&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;You’ll notice the IIS 6 Metabase and IIS Configuration Compatibility need to be installed as well as ASP.NET.&amp;nbsp; The next steps we’ll go through will enable this for you.&lt;/LI&gt;

&lt;LI&gt;Go to &lt;STRONG&gt;Start&lt;/STRONG&gt; | &lt;STRONG&gt;Control Panel&lt;/STRONG&gt; and click on the &lt;STRONG&gt;Programs and Features&lt;/STRONG&gt; applet&lt;/LI&gt;

&lt;LI&gt;Click on the &lt;STRONG&gt;Turn Windows features on or off&lt;/STRONG&gt; button on the left&lt;/LI&gt;

&lt;LI&gt;From the &lt;STRONG&gt;Windows Features&lt;/STRONG&gt; window, select the &lt;STRONG&gt;IIS Metabase and IIS 6 configuration compatibility&lt;/STRONG&gt; option under &lt;STRONG&gt;IIS 6 Management Compatibility&lt;/STRONG&gt; as well as &lt;STRONG&gt;ASP.NET&lt;/STRONG&gt; under &lt;STRONG&gt;Application Development Features&lt;/STRONG&gt; &lt;BR&gt;&lt;A href="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_526AA4AA.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_526AA4AA.jpg"&gt;&lt;IMG title="3 - vs08-features-sm" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=450 alt="3 - vs08-features-sm" src="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_thumb_0245466C.jpg" width=343 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_thumb_0245466C.jpg"&gt;&lt;/A&gt; &lt;/LI&gt;

&lt;LI&gt;Click &lt;STRONG&gt;OK&lt;/STRONG&gt; and wait as Windows configures the service &lt;BR&gt;&lt;A href="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_26F65DE3.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_26F65DE3.jpg"&gt;&lt;IMG title="4 - vs08-configuring" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=188 alt="4 - vs08-configuring" src="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_thumb_0596B847.jpg" width=370 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_thumb_0596B847.jpg"&gt;&lt;/A&gt; &lt;/LI&gt;

&lt;LI&gt;Once Windows is done configuring IIS, it may ask you to restart. Click &lt;STRONG&gt;Restart Now&lt;/STRONG&gt;. &lt;BR&gt;&lt;A href="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_0B0528EB.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_0B0528EB.jpg"&gt;&lt;IMG title="5 - vs08-restart" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=178 alt="5 - vs08-restart" src="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_thumb_3BB83096.jpg" width=370 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_thumb_3BB83096.jpg"&gt;&lt;/A&gt; &lt;/LI&gt;

&lt;LI&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;After rebooting, you should be able to walk through steps 1-4 again and create a Web site with the &lt;STRONG&gt;Local IIS&lt;/STRONG&gt; option. &lt;BR&gt;&lt;A href="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_4845DDB2.jpg" mce_href="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_4845DDB2.jpg"&gt;&lt;IMG title="6 - vs08-working-sm" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=401 alt="6 - vs08-working-sm" src="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_thumb_6D63281E.jpg" width=503 border=0 mce_src="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_thumb_6D63281E.jpg"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;This should be all you need to do to enable Local IIS integration with VS.NET 2008.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/EAoMblQc1s8/Enabling-VSNET-2008-to-work-with-IIS-70</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Enabling-VSNET-2008-to-work-with-IIS-70</guid>
            <pubDate>Wed, 22 Oct 2008 14:08:05 GMT</pubDate>
            <category>vista</category>
            <category>Installation</category>
            <category>IIS7</category>
        <feedburner:origLink>http://tobint.com/Blog/Enabling-VSNET-2008-to-work-with-IIS-70</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS cannot start after upgrade to Vista SP1</title>
            <description>&lt;P mce_keep="true"&gt;Some time ago, I tried to start up the IIS Management Console on my Vista machine and I received an exception. After trying a few quick fixes, I gave up. I had several VPC images that I worked from and I didn't particularly need this machine to work when I had so many others.&amp;nbsp; However, I've been doing a great deal of development on this machine now, and having IIS working is obviously rather handy. So, I tracked down the exception and solved my problem. I thought I'd go ahead and chronical my adventures for anyone else who is having this issue and needs help.&lt;/P&gt;

&lt;P mce_keep="true"&gt;So first of all, the error that was displayed when I started inetmgr was as follows:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;PRE&gt;---------------------------
Failed to connect
---------------------------
There was an error when trying to connect. Do you want to retype your credentials and try again? &lt;BR&gt;Details: 
Creating an instance of the COM component with CLSID {2B72133B-3F5B-4602-8952-803546CE3344} &lt;BR&gt;from the IClassFactory failed due to the following error: 8007000d.
---------------------------
Yes   No   
---------------------------&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;

&lt;P&gt;So I thought that this might be a configuration error. I tried to roll back to a known good configuration but appcmd failed with the following exception:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;ERROR ( hresult:80070426, message:Command execution failed. &lt;BR&gt;The service has not been started. ) &lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;I tried to start the service with a good old fashion iisreset command and the following exception occurred:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;Attempting stop...&lt;BR&gt;Internet services successfully stopped&lt;BR&gt;Attempting start...&lt;BR&gt;Restart attempt failed.&lt;BR&gt;The IIS Admin Service or the World Wide Web Publishing Service, or a service dep&lt;BR&gt;endent on them failed to start.&amp;nbsp; The service, or dependent services, may had an&lt;BR&gt;error during its startup or may be disabled.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Once again, I thought I'd go into the services console and try to start IIS manually. After trying to start it manually, it failed, stating that a dependent service failed. So I looked at Windows Process Activation Services (WAS) and noticed it was stopped. I tried to start it manually and found the following:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;---------------------------&lt;BR&gt;Services&lt;BR&gt;---------------------------&lt;BR&gt;Windows could not start the Windows Process Activation Service service on Local Computer. &lt;BR&gt;Error 13: &lt;BR&gt;The data is invalid. &lt;BR&gt;---------------------------&lt;BR&gt;OK&amp;nbsp;&amp;nbsp; &lt;BR&gt;---------------------------&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;So I checked out the event log and found the following four entries:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;First Event&lt;/STRONG&gt;&amp;nbsp;:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System&lt;BR&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Service Control Manager&lt;BR&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9/21/2008 11:52:00 PM&lt;BR&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7001&lt;BR&gt;Task Category: None&lt;BR&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error&lt;BR&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic&lt;BR&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;BR&gt;Description:&lt;BR&gt;The World Wide Web Publishing Service service depends on the Windows Process Activation Service service which failed to start because of the following error: &lt;BR&gt;The data is invalid.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;STRONG&gt;Second Event:&lt;/STRONG&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System&lt;BR&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Service Control Manager&lt;BR&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9/21/2008 11:52:00 PM&lt;BR&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7023&lt;BR&gt;Task Category: None&lt;BR&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error&lt;BR&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic&lt;BR&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;BR&gt;Description:&lt;BR&gt;The Windows Process Activation Service service terminated with the following error: &lt;BR&gt;The data is invalid.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;STRONG&gt;Third Event:&lt;/STRONG&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System&lt;BR&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WAS&lt;BR&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9/21/2008 11:51:59 PM&lt;BR&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5005&lt;BR&gt;Task Category: None&lt;BR&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error&lt;BR&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic&lt;BR&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;BR&gt;Description:&lt;BR&gt;Windows Process Activation Service (WAS) is stopping because it encountered an error. The data field contains the error number.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;STRONG&gt;Fourt Event:&lt;/STRONG&gt;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System&lt;BR&gt;Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WAS&lt;BR&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9/21/2008 11:51:59 PM&lt;BR&gt;Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5036&lt;BR&gt;Task Category: None&lt;BR&gt;Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error&lt;BR&gt;Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic&lt;BR&gt;User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A&lt;BR&gt;Description:&lt;BR&gt;The configuration manager for Windows Process Activation Service (WAS) did not initialize. The data field contains the error number.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;I checked through my event logs and realized that this started happening after I had upgraded to SP1. I hadn't recognized this as the issue because, as I said, don't typically use IIS on this machine on a regular basis. I decided to go back to my initial assessment that this had to be configuration related. I started doing comparisons between configuration of a pure Vista installation vs a Vista machine with SP1. I found that the schema had changed during the install, but something had been left out.&amp;nbsp; The schema file was updated to add the configurationHistory configuration section, but a corresponding section definition was not added to the applicationHost.config file.&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Whether this was what was causing the problem or not, I knew this was going to cause a problem. I added the following configuration entry to the applicationHost.config file under the&amp;nbsp;section group for "system.applicationHost".&amp;nbsp;&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /&amp;gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;After this I started the WAS service, the World Wide Publishing Service and the IIS Admin Service. I opened up the IIS Management Console and everything was working just fine.&lt;/P&gt;

&lt;P&gt;I'm not sure what exactly happened during the SP1 upgrade that caused this file to not be updated, but I'm pleased to report that all things are up and running again.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/YgsdHHarqSQ/IIS-cannot-start-after-upgrade-to-Vista-SP1</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-cannot-start-after-upgrade-to-Vista-SP1</guid>
            <pubDate>Thu, 02 Oct 2008 00:31:40 GMT</pubDate>
            <category>vista</category>
            <category>sp1</category>
            <category>configuration</category>
            <category>iis70</category>
            <category>errors</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-cannot-start-after-upgrade-to-Vista-SP1</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Enabling VS.NET 2008 to work with IIS 7.0</title>
            <description>&lt;p&gt;This is likely old ground for some, but I thought I’d cover it again just in case. As you may know Visual Studio allows you to create a new web site on IIS. However, there are some minor steps that you need to complete before it will work appropriately.&lt;/p&gt;
&lt;p&gt;Let’s walk through this. &lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;ol&gt;
   &lt;li&gt;Open Visual Studio .NET 2008&lt;/li&gt;
   &lt;li&gt;Go to &lt;strong&gt;File&lt;/strong&gt; | &lt;strong&gt;Web Site…&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Click the &lt;strong&gt;Browse&lt;/strong&gt;… button to choose a &lt;strong&gt;Location&lt;/strong&gt;      &lt;br /&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_21C7C2CC.jpg"&gt;&lt;img title="1 - vs08-newwebsite-sm" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="392" alt="1 - vs08-newwebsite-sm" src="http://blogs.iis.net/blogs/tobintitus/1%20-%20vs08-newwebsite-sm_thumb_5F74AA88.jpg" width="607" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click on the &lt;strong&gt;Local IIS&lt;/strong&gt; button on the left      &lt;br /&gt;&lt;a href="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_4866294C.jpg"&gt;&lt;img title="2 - vs08-iis-sm" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="401" alt="2 - vs08-iis-sm" src="http://blogs.iis.net/blogs/tobintitus/2%20-%20vs08-iis-sm_thumb_1F7B1443.jpg" width="503" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;You’ll notice the IIS 6 Metabase and IIS Configuration Compatibility need to be installed as well as ASP.NET.&amp;#160; The next steps we’ll go through will enable this for you.&lt;/li&gt;    &lt;li&gt;Go to &lt;strong&gt;Start&lt;/strong&gt; | &lt;strong&gt;Control Panel&lt;/strong&gt; and click on the &lt;strong&gt;Programs and Features&lt;/strong&gt; applet&lt;/li&gt;    &lt;li&gt;Click on the &lt;strong&gt;Turn Windows features on or off&lt;/strong&gt; button on the left&lt;/li&gt;    &lt;li&gt;From the &lt;strong&gt;Windows Features&lt;/strong&gt; window, select the &lt;strong&gt;IIS Metabase and IIS 6 configuration compatibility&lt;/strong&gt; option under &lt;strong&gt;IIS 6 Management Compatibility&lt;/strong&gt; as well as &lt;strong&gt;ASP.NET&lt;/strong&gt; under &lt;strong&gt;Application Development Features&lt;/strong&gt;      &lt;br /&gt;&lt;a href="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_526AA4AA.jpg"&gt;&lt;img title="3 - vs08-features-sm" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="450" alt="3 - vs08-features-sm" src="http://blogs.iis.net/blogs/tobintitus/3%20-%20vs08-features-sm_thumb_0245466C.jpg" width="343" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt; and wait as Windows configures the service      &lt;br /&gt;&lt;a href="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_26F65DE3.jpg"&gt;&lt;img title="4 - vs08-configuring" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="188" alt="4 - vs08-configuring" src="http://blogs.iis.net/blogs/tobintitus/4%20-%20vs08-configuring_thumb_0596B847.jpg" width="370" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Once Windows is done configuring IIS, it may ask you to restart. Click &lt;strong&gt;Restart Now&lt;/strong&gt;.      &lt;br /&gt;&lt;a href="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_0B0528EB.jpg"&gt;&lt;img title="5 - vs08-restart" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="178" alt="5 - vs08-restart" src="http://blogs.iis.net/blogs/tobintitus/5%20-%20vs08-restart_thumb_3BB83096.jpg" width="370" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;/p&gt;      &lt;p&gt;&lt;/p&gt;      &lt;p&gt;After rebooting, you should be able to walk through steps 1-4 again and create a Web site with the &lt;strong&gt;Local IIS&lt;/strong&gt; option.        &lt;br /&gt;&lt;a href="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_4845DDB2.jpg"&gt;&lt;img title="6 - vs08-working-sm" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="401" alt="6 - vs08-working-sm" src="http://blogs.iis.net/blogs/tobintitus/6%20-%20vs08-working-sm_thumb_6D63281E.jpg" width="503" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;This should be all you need to do to enable Local IIS integration with VS.NET 2008.&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/rg9kxkbpxbM/post</link>
            <guid isPermaLink="false">http://tobint.com/Blog/post</guid>
            <pubDate>Mon, 22 Sep 2008 11:08:00 GMT</pubDate>
            <category>vista</category>
            <category>IISNET</category>
            <category>Installation</category>
            <category>IIS7</category>
        <feedburner:origLink>http://tobint.com/Blog/post</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS 7.0 Error Support</title>
            <description>&lt;P mce_keep="true"&gt;I know that most of you reading the blogs on this site have already seen how handy the errors are in IIS 7.0 as compared to previous error conditions. This weekend, I was playing with &lt;A class="" href="http://www.dotnetblogengine.net/" mce_href="http://www.dotnetblogengine.net/"&gt;BlogEngine.NET&lt;/A&gt; and thought I'd put it on my personal site (&lt;A class="" href="http://tobint.com/" mce_href="http://tobint.com"&gt;tobint.com&lt;/A&gt;)&amp;nbsp;to try it out. I downloaded the software and tried setting it up on my server. After following the brief instructions, I hit an error:&lt;/P&gt;

&lt;DIV style="COLOR: #ff0000"&gt;&lt;STRONG&gt;HTTP Error 500.22 - Internal Server Error&lt;/STRONG&gt;&lt;BR&gt;An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode. &lt;/DIV&gt;
&lt;P mce_keep="true"&gt;In previous versions of IIS, this might have been all that I had to go on. I'd then search one or several search engines for that exact error and read through blog posts, forums, knowledge base articles and FAQ's before I found what I needed. In IIS 7.0, I found the friendly error page awaiting me:&lt;/P&gt;

&lt;P mce_keep="true"&gt;&lt;IMG title="Error 500.22" style="WIDTH: 583px; HEIGHT: 697px" alt="Error 500.22" src="http://tobint.com/community/images/tobint-error-sm.jpg" align=middle border=2 mce_src="http://tobint.com/community/images/tobint-error-sm.jpg"&gt;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;I looked at the "Things you can try" and a picked the first "fix" on the list. Since my application was not in the Default Web Site, I ran the appcmd for my application in "tobint.com/".&amp;nbsp; &lt;/P&gt;

&lt;P mce_keep="true"&gt;&lt;IMG title=AppCmd style="WIDTH: 668px; HEIGHT: 331px" height=331 alt=AppCmd src="http://tobint.com/community/images/tobint-error-cmd.jpg" width=668 align=middle border=2 mce_src="http://tobint.com/community/images/tobint-error-cmd.jpg"&gt;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;As you can see, the error page correctly identified that my configuration needed to be migrated, and gave me the steps I needed to migrate it effectively. No searching the web. No trying to trace the problem down. No turning on tracing for ASP.NET pages.&amp;nbsp; &lt;/P&gt;

&lt;P mce_keep="true"&gt;I love this feature. It's a huge time saver and I don't think it gets bragged on enough.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/O51ZkMbuWhI/IIS-70-Error-Support</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-70-Error-Support</guid>
            <pubDate>Sun, 21 Sep 2008 00:48:09 GMT</pubDate>
            <category>IIS7</category>
            <category>errors</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-70-Error-Support</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Reading IIS.NET Blogs (or any RSS) with Powershell</title>
            <description>&lt;P&gt;Being a member of the IIS team, I often find myself checking blog posts to see what the members of the product team are blogging about.&amp;nbsp; However, since Powershell came out, I find myself doing more and more work on my scripts. It's a bit annoying to have to jump out of Powershell to go read blog posts.&amp;nbsp; As such, I've written a few quick scripts to help me read IIS.NET from my pretty blue shell. For those of you who are already familiar with powershell and don't want to read the long blog post, you can download my blog script from the DownloadCENTER: &lt;A href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1387"&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1387&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;(&lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2007/02/13/reading-iis-net-blogs-with-powershell.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2007/02/13/reading-iis-net-blogs-with-powershell.aspx"&gt;continued&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/dFw-lvdEkio/Reading-IISNET-Blogs-or-any-RSS-with-Powershell</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Reading-IISNET-Blogs-or-any-RSS-with-Powershell</guid>
            <pubDate>Wed, 14 Feb 2007 14:46:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Reading-IISNET-Blogs-or-any-RSS-with-Powershell</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS 7 Logging UI For Vista - Download Now</title>
            <description>&lt;P&gt;As many of you already know, the management console for IIS 7.0 on Windows Vista does not have a UI for logging.&amp;nbsp; Since this was a pain point for several customers, I decided to test out the extensibility APIs by creating a logging UI module.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;( &lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2007/01/30/logging-ui-for-iis-7-0-on-vista.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2007/01/30/logging-ui-for-iis-7-0-on-vista.aspx"&gt;continued&lt;/A&gt; )&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/xGPB57D_DHs/IIS-7-Logging-UI-For-Vista-Download-Now</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-7-Logging-UI-For-Vista-Download-Now</guid>
            <pubDate>Tue, 30 Jan 2007 14:28:03 GMT</pubDate>
            <category>NET</category>
            <category>UIModule</category>
            <category>Download</category>
            <category>SDK</category>
            <category>IIS7</category>
            <category>CodeSample</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-7-Logging-UI-For-Vista-Download-Now</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Extending Microsoft.Web.Administration through PowerShell  (Part II)</title>
            <description>&lt;P&gt;In my &lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx" mce_href="/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx"&gt;previous post&lt;/A&gt;, I showed you how easy it was to leverage your knowledge of the IIS 7 managed SDK in Windows PowerShell.&amp;nbsp; We loaded the IIS 7 managed assemblies and then traversed the object model to display site information and stop application pools.&amp;nbsp; While this in itself was pretty cool, I don't think I quite got my point across about how powerful IIS 7 and PowerShell are together. As such, I wanted to show you some more fun things to do with PowerShell in the name of easy IIS 7 administration.&lt;/P&gt;

&lt;P&gt;First, our examples still required a great deal of typing and piping and filtering.&amp;nbsp; Let's modify our profile script from my previous post by adding at least one new global variable that will give us access to the ServerManager without much typing.&amp;nbsp; Add the following line to your profile script from my previous post.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;new-variable iismgr -value (New-Object Microsoft.Web.Administration.ServerManager) -scope "global"&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;(if you don't have a profile script yet, go back to my &lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx" mce_href="/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx"&gt;previous post&lt;/A&gt; to learn&amp;nbsp;how to create one).&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; If you signed your script before, you'll have to do it again after modifying the script&lt;/P&gt;

&lt;P&gt;Open a new instance of PowerShell and now you can access the site collection just by typing:&lt;/P&gt;

&lt;P&gt;PS C:\&amp;gt; &lt;STRONG&gt;$iismgr.Sites&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;That's considerably smaller than our previous examples.&amp;nbsp; But let's not stop there.&amp;nbsp; What happens if I want to search the site collection? PowerShell has some fun syntax for this as well. I simply pipe the output of my SiteCollection to a "Where-Object" cmdlet and then specify what site I'm looking for:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;$iismgr.Sites | Where-Object {$_.Name -match "Default*"}&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;( &lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/12/01/more-on-iis-7-administration-with-powershell.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/12/01/more-on-iis-7-administration-with-powershell.aspx"&gt;blog post continued on IIS.NET ...&lt;/A&gt; )&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/bI1Lwk-vHEY/Extending-MicrosoftWebAdministration-through-PowerShell-Part-II</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Extending-MicrosoftWebAdministration-through-PowerShell-Part-II</guid>
            <pubDate>Fri, 01 Dec 2006 11:46:00 GMT</pubDate>
            <category>PowerShell</category>
            <category>IISSDK</category>
            <category>IIS</category>
            <category>IIS7</category>
        <feedburner:origLink>http://tobint.com/Blog/Extending-MicrosoftWebAdministration-through-PowerShell-Part-II</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Where can I find &lt;feature x&gt; in IIS 7.0 ?</title>
            <description>&lt;P&gt;&lt;STRONG&gt;Question&lt;/STRONG&gt;: &lt;EM&gt;Where can I find&amp;nbsp;Windows Authentication&amp;nbsp;in IIS 7.0&lt;/EM&gt;?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I've seen this question or questions like this&amp;nbsp;asked numerous times so I thought it would make a nice quick -- and hopefully useful --&amp;nbsp;blog post.&lt;/P&gt;

&lt;P&gt;In previous versions of IIS, administrators were able to enable or disable features on their servers by simply checking or unchecking a box in the IIS management console.&amp;nbsp; However, when an administrator unchecked a feature in IIS, the feature still existed on the machine and was even loaded.&amp;nbsp; Unchecking a box allowed the administrator to disable a feature -- but it didn't physically remove anything from the machine.&lt;/P&gt;

&lt;P&gt;(&lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/10/10/Where-can-I-find-_3C00_feature-x_3E00_-in-IIS-7.0-_3F00_.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/10/10/Where-can-I-find-_3C00_feature-x_3E00_-in-IIS-7.0-_3F00_.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/uAWdwTswQ50/Where-can-I-find-feature-x-in-IIS-70-</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Where-can-I-find-feature-x-in-IIS-70-</guid>
            <pubDate>Tue, 10 Oct 2006 14:40:00 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/Where-can-I-find-feature-x-in-IIS-70-</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Steve Wozniak ... at Microsoft?</title>
            <description>&lt;P&gt;I know it may sound very strange coming from a Microsoft employee, but last Friday I found myself in awe while I sat directly in front of Steve Wozniak while he gave a presentation ... on Microsoft campus.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;(&lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/10/08/Steve-Wozniak-_2E002E002E00_-at-Microsoft_3F00_.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/10/08/Steve-Wozniak-_2E002E002E00_-at-Microsoft_3F00_.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/rZIyONVoOFs/Steve-Wozniak--at-Microsoft</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Steve-Wozniak--at-Microsoft</guid>
            <pubDate>Sun, 08 Oct 2006 22:00:00 GMT</pubDate>
            <category>MicrosoftCulture</category>
        <feedburner:origLink>http://tobint.com/Blog/Steve-Wozniak--at-Microsoft</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Unsafe thread safety</title>
            <description>&lt;P&gt;As I stated in my last post, for the past two days I've been sitting in Jeffrey Richter's threading class.&amp;nbsp;The class is near the end and I can't say that a lot of new concepts have been taught. Another student and I have decided that the class should have been renamed, "Threading Basics". That's not to say anything of Richter's teaching skill or the content of the class.&amp;nbsp; It just goes to show that if the architecture of a product is right, the threading code should be extremely simple to use.&lt;/P&gt;

&lt;P&gt;However, what I love about this class is that it reminds me how much I enjoy this topic.&amp;nbsp; The theory of the perfect architecture doesn't exist. Additionally, many times the developer has little-to-no ability to push back on a bad&amp;nbsp;architecture. It's in these cases that you must use your bag of concurrency tricks to work out of the whole the architect(s) put you in.&amp;nbsp; That sound easy enough, but what if the architecture included - *gasp* - "less-than-optimal" decisions in the actual .NET framework classes?&amp;nbsp; What if those decisions were made in the very methods that are supposed to help you with these synchronization problems?&amp;nbsp; These problems perplexed me when I first encountered them and I never really thought to blog about them (I was actually just scared I was doing something wrong).&amp;nbsp; Taking this class gave me the perfect excuse to bring the topic up.&lt;/P&gt;

&lt;P&gt;(&lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/10/05/Unsafe-thread-safety.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/10/05/Unsafe-thread-safety.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/V886lSjVb0s/Unsafe-thread-safety</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Unsafe-thread-safety</guid>
            <pubDate>Thu, 05 Oct 2006 00:42:00 GMT</pubDate>
            <category>Threading</category>
            <category>Asynchronous</category>
        <feedburner:origLink>http://tobint.com/Blog/Unsafe-thread-safety</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Back in business...</title>
            <description>&lt;P mce_serialized="4"&gt;I haven't blogged for some time now.&amp;nbsp; This in large part has been due to heavy workload, close deadlines, and the fact that I was alone in my workload.&amp;nbsp; Over the past few weeks, I've been able to get my head above water.&amp;nbsp; While our open position on the team is still "open", we've filled our contractor position.&amp;nbsp;Not only have we "filled" it, we've actually brought in one of our old contractors who is more than capable.&amp;nbsp; He is definitely helping to alieviate my workload already.&amp;nbsp; I've finished my Vista RTM handoffs and that has taken off some more pressure.&amp;nbsp; I've also completed my first review at Microsoft and, while I definitely see much room for improvement in the process, I was pretty pleased with the outcome.&lt;/P&gt;

&lt;P mce_serialized="4"&gt;All three of these events have helped me free up time to start blogging again.&amp;nbsp;&amp;nbsp;In fact,&amp;nbsp;this new found freedom has given me some time to start&amp;nbsp;taking some classes at Microsoft.&amp;nbsp;As we speak, I'm&amp;nbsp;typing this blog post up during a break&amp;nbsp;of a class on&amp;nbsp;managed code threading.&amp;nbsp;&amp;nbsp;Those of you that know me may be saying, "Didn't you write books on threading? Why would you sit in a class on that very topic?"&amp;nbsp; Well, I'm attending for two reasons. The first of these reasons is that the class is being taught by &lt;A title="Jeffrey Richter" href="http://www.amazon.com/s/ref=br_ss_hs/002-4127674-5395213?platform=gurupa&amp;amp;url=index%3Dblended&amp;amp;keywords=Jeffrey+Richter" mce_href="http://www.amazon.com/s/ref=br_ss_hs/002-4127674-5395213?platform=gurupa&amp;amp;url=index%3Dblended&amp;amp;keywords=Jeffrey+Richter" mce_serialized="4"&gt;Jeffrey Richter&lt;/A&gt;.&amp;nbsp; No matter how much you think you know about anything, I guarantee you that Jeffrey Richter can make you feel like a "n00b". OK, there may be a small percentage of you out there that know more about obscure printer driver hacks, but even there, I'd defer to Mr Richter.&amp;nbsp; If you ever get a chance to sit in on one of &lt;A title=Wintellect href="http://www.wintellect.com/" mce_href="http://www.Wintellect.com" mce_serialized="4"&gt;Wintellect&lt;/A&gt;'s classes, I recommend you take advantage of that opportunity.&amp;nbsp; If you can't afford it, I'd recommend you read the many books published by Wintellect employees.&amp;nbsp; The second reason I'm sitting in this class is because I think threading is increasingly important. When I co-authored my first book on this topic, I believed that the multi-core and multi-processor industry would be growing by leaps and bounds making threading knowledge extremely valuable.&amp;nbsp; This is proving true as Intel has just announced that they will have 80 core processors by 2011.&amp;nbsp; If you don't know how to use multi-threading techniques PROPERLY, I highly suggest you start learning.&amp;nbsp; Despite my involvement in three books on the topic of threading, Richter's class, in my opinion, is one of the best means to get solid, current multi-threading advice today.&lt;/P&gt;

&lt;P mce_serialized="4"&gt;I hope you'll forgive the silence on my blog from the past few months.&amp;nbsp; I also hope you'll come back often and trust me to provide you with some relevant articles on a more regular basis.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/Nbar5A018a0/Back-in-business</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Back-in-business</guid>
            <pubDate>Mon, 02 Oct 2006 14:58:00 GMT</pubDate>
            <category>MicrosoftCulture</category>
        <feedburner:origLink>http://tobint.com/Blog/Back-in-business</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Accessing Microsoft.Web.Administration through PowerShell (Part I)</title>
            <description>&lt;P&gt;I've caught the PowerShell bug. In between stints with my ever-expanding code samples, I play with PowerShell a lot.&amp;nbsp; I thought I'd share a quick example of how to load Microsoft.Web.Administration.dll and use it to perform some basic tasks.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Note: &lt;/STRONG&gt;I'm running these samples on Windows Vista RTM, but I have no reason to believe this will not work on the PowerShell release candidates for the Vista RC* builds that are &lt;A class="" title="available now" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" mce_href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;available now&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;So let's get started.&lt;/P&gt;

&lt;P&gt;First, PowerShell has no idea where Microsoft.Web.Administration.DLL is so you have to tell it how to load it. Anyone who has written code to&amp;nbsp;dynamically load an assembly should be familiar with this syntax.&amp;nbsp; Type the following command&lt;/P&gt;

&lt;P&gt;PS C:\&amp;gt; &lt;STRONG&gt;[System.Reflection.Assembly]::LoadFrom( "C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll" )&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;The path to your assembly may change depending on your install.&amp;nbsp; I'll show you later how to use environment variables to calculate the correct path.&amp;nbsp; In the mean time the out put of the line above display something like the following:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
&lt;DIV style="FONT-FAMILY: COURIER"&gt;GAC&amp;nbsp;&amp;nbsp;Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location &lt;/DIV&gt;
&lt;DIV style="FONT-FAMILY: COURIER"&gt;---&amp;nbsp;&amp;nbsp;-------&amp;nbsp;&amp;nbsp;&amp;nbsp; -------- &lt;/DIV&gt;
&lt;DIV style="FONT-FAMILY: COURIER"&gt;True v2.0.50727 C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Administration\7.0.0.0__31bf3856ad364e35\Microsoft.... &lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Once the assembly is loaded you can use PowerShell's "New-Object" command to create a ServerManager object that is defined in Microsoft.Web.Administration.&lt;/P&gt;

&lt;P&gt;PS C:\&amp;gt; &lt;STRONG&gt;(New-Object Microsoft.Web.Administration.ServerManager)&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;( &lt;A class="" href="http://blogs.iis.net/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/11/30/powershell-and-microsoft-web-administration.aspx"&gt;blog post continued on IIS.NET ... &lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/1MINuMhX8AA/Accessing-MicrosoftWebAdministration-through-PowerShell-Part-I</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Accessing-MicrosoftWebAdministration-through-PowerShell-Part-I</guid>
            <pubDate>Sun, 01 Oct 2006 11:43:04 GMT</pubDate>
            <category>PowerShell</category>
            <category>IISSDK</category>
            <category>IIS</category>
            <category>IIS7</category>
        <feedburner:origLink>http://tobint.com/Blog/Accessing-MicrosoftWebAdministration-through-PowerShell-Part-I</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Why am I smiling?</title>
            <description>&lt;P&gt;I moved to &lt;A href="http://local.live.com/?v=2&amp;amp;sp=aN.ry5wn84tp0p2_Redmond__http%253a%252f%252fwww.microsoft.com_http%253a%252f%252fi.cnn.net%252fmoney%252f2006%252f06%252f26%252ftechnology%252fmicrosoft%25255fphone.reut%252fmicrosoft%25255flogo%25255fsign.03.jpg" mce_href="http://local.live.com/?v=2&amp;amp;sp=aN.ry5wn84tp0p2_Redmond__http%253a%252f%252fwww.microsoft.com_http%253a%252f%252fi.cnn.net%252fmoney%252f2006%252f06%252f26%252ftechnology%252fmicrosoft%25255fphone.reut%252fmicrosoft%25255flogo%25255fsign.03.jpg"&gt;Redmond&lt;/A&gt; just over four months ago.&amp;nbsp; In the time I have been here, my &lt;A href="http://www.avis.com/" mce_href="http://www.avis.com"&gt;rental car &lt;/A&gt;was side-swiped, my &lt;A href="http://www.topsellingsuv.com/2001FordExplorerSportTrac.html" mce_href="http://www.topsellingsuv.com/2001FordExplorerSportTrac.html"&gt;truck&lt;/A&gt; was broken into, my &lt;A href="http://www.americanbodyparts.com/auto-body-parts/FOEXPLORERSPORTTRAC10.html" mce_href="http://www.americanbodyparts.com/auto-body-parts/FOEXPLORERSPORTTRAC10.html"&gt;headlight and bumper&lt;/A&gt; were damaged by someone in our own parking garage, someone stole my copy of "&lt;A href="http://www.amazon.com/gp/product/1590596404/ref=s9_asin_image/103-4183020-9172644?n=283155" mce_href="http://www.amazon.com/gp/product/1590596404/ref=s9_asin_image/103-4183020-9172644?n=283155"&gt;Professional Visual C++/CLI&lt;/A&gt;" from my office today (clearly someone missed the "&lt;A href="http://www.microsoft.com/mscorp/mission/" mce_href="http://www.microsoft.com/mscorp/mission/"&gt;corporate values&lt;/A&gt;" talk at New Employee Orientation), and my relocation to the great &lt;A href="http://en.wikipedia.org/wiki/Pacific_Northwest" mce_href="http://en.wikipedia.org/wiki/Pacific_Northwest"&gt;Pacific Northwest&lt;/A&gt; has been less than smooth or swift -- waiting for the &lt;A href="http://willis.com/" mce_href="http://willis.com/"&gt;insurance company&lt;/A&gt; to assess and pay my claim for the furniture damaged by the &lt;A href="http://www.unitedvanlines.com/mover/" mce_href="http://www.unitedvanlines.com/mover/"&gt;movers&lt;/A&gt;.&amp;nbsp;&amp;nbsp; I'm the only &lt;A href="http://members.microsoft.com/careers/careerpath/technical/usered.mspx" mce_href="http://members.microsoft.com/careers/careerpath/technical/usered.mspx"&gt;PW&lt;/A&gt; in my group and we've been unable to find anyone else that can fill the shoes for our &lt;A href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=11&amp;amp;interval=10&amp;amp;SortCol=DatePosted&amp;amp;SortOrder=" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=11&amp;amp;interval=10&amp;amp;SortCol=DatePosted&amp;amp;SortOrder="&gt;open position&lt;/A&gt;.&amp;nbsp;I have deadlines looming with tons of work to do and not enough time to do it all by myself.&amp;nbsp; &lt;A href="http://newsimg.bbc.co.uk/media/images/41816000/jpg/_41816780_gatesglum_ap.jpg" mce_href="http://newsimg.bbc.co.uk/media/images/41816000/jpg/_41816780_gatesglum_ap.jpg"&gt;Bill Gates&lt;/A&gt; has announced he is reducing his role here, both &lt;A href="http://www.microsoft.com/presspass/press/2006/mar06/03-21WindowsVistaDeliveryPR.mspx" mce_href="http://www.microsoft.com/presspass/press/2006/mar06/03-21WindowsVistaDeliveryPR.mspx"&gt;Windows&lt;/A&gt; and &lt;A href="http://www.infoworld.com/article/06/06/29/HNofficedelayed_1.html" mce_href="http://www.infoworld.com/article/06/06/29/HNofficedelayed_1.html"&gt;Office&lt;/A&gt; have announced&amp;nbsp;schedule changes&amp;nbsp;and &lt;A href="http://moneycentral.msn.com/investor/charts/chartdl.asp?Symbol=MSFT" mce_href="http://moneycentral.msn.com/investor/charts/chartdl.asp?Symbol=MSFT"&gt;Microsoft's stock&lt;/A&gt; has dropped over&amp;nbsp;four dollars&amp;nbsp;since I arrived on campus.&lt;/P&gt;

&lt;P&gt;So why am I smiling?&lt;/P&gt;

&lt;P&gt;In&amp;nbsp;four month's&amp;nbsp;time I've learned so much.&amp;nbsp; I've been able to look at the technologies we will implement in the future before most people even know they are in the pipeline. I sit in on meetings and get to give real feedback that can influence products used by more people than I could have ever imagined.&amp;nbsp; I have taken over ownership of an internal&amp;nbsp;tool our team uses and have written a few of my own.&amp;nbsp; I've gathered customer feedback and helped several customers personally or got them in touch with others who could help them. The amount of responsibility piled on me is less of a burdon and more of a compliment, in my opinion.&amp;nbsp; Who puts that amount of pressure on someone if they feel they can't handle it?&lt;/P&gt;

&lt;P&gt;Apart from all the &lt;A href="http://members.microsoft.com/careers/mslife/benefits/plan.mspx" mce_href="http://members.microsoft.com/careers/mslife/benefits/plan.mspx"&gt;benefits&lt;/A&gt; provided by Microsoft there are other reasons I'm happy to be working here. I'm in a technological heaven.&amp;nbsp; The &lt;A href="http://www.scottgu.com/" mce_href="http://www.scottgu.com/"&gt;people&lt;/A&gt; are &lt;A href="http://en.wikipedia.org/wiki/Anders_Hejlsberg" mce_href="http://en.wikipedia.org/wiki/Anders_Hejlsberg"&gt;brilliant&lt;/A&gt; and &lt;A href="http://www.microsoft.com/about/corporatecitizenship/citizenship/diversity/" mce_href="http://www.microsoft.com/about/corporatecitizenship/citizenship/diversity/"&gt;open-minded&lt;/A&gt; (except when it comes to "&lt;A href="http://www.gop.org/" mce_href="http://www.gop.org/"&gt;Red State&lt;/A&gt;" ideas, but give me time -- I'm still working on it).&amp;nbsp;&amp;nbsp;I &lt;A href="http://blogs.msdn.com/david.wang/" mce_href="/david.wang/"&gt;pass&lt;/A&gt; &lt;A href="http://iisgeek.no-ip.org/" mce_href="http://iisgeek.no-ip.org/"&gt;those&lt;/A&gt; &lt;A href="http://blogs.iis.net/bills/default.aspx" mce_href="http://blogs.iis.net/bills/default.aspx"&gt;same&lt;/A&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/brada/" mce_href="/brada/"&gt;brilliant&lt;/A&gt; &lt;A href="http://blogs.msdn.com/jasonz/" mce_href="/jasonz/"&gt;people&lt;/A&gt; &lt;A href="http://blogs.msdn.com/carlosag/default.aspx" mce_href="/carlosag/default.aspx"&gt;in&lt;/A&gt; &lt;A href="http://shaikariv-ms.spaces.msn.com/PersonalSpace.aspx" mce_href="http://shaikariv-ms.spaces.msn.com/PersonalSpace.aspx"&gt;the&lt;/A&gt; halls every day.&amp;nbsp; If I have a question about something, I can go hit our Global Address Book and track down the person who owns the feature to discuss the matter with them personally.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;I also get to see the company make huge changes in the way it delivers software.&amp;nbsp; With the industry changing so quickly, its awesome to see a company of this size roll with the punches and adapt.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;It's hard to explain why I'm so happy to work here. The only thing I can say is that you can tell that the majority of people working here love working here and finding new ways to make customers happy.&amp;nbsp; That reason alone is enough to make me love working at Microsoft.&lt;/P&gt;

&lt;P&gt;Enjoy the weekend!&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/0xH6HscNTL0/Why-am-I-smiling</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Why-am-I-smiling</guid>
            <pubDate>Fri, 21 Jul 2006 14:22:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Why-am-I-smiling</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>OT: Bank transaction privacy</title>
            <description>&lt;P&gt;&lt;A href="http://www.bankrate.com/" mce_href="http://www.bankrate.com"&gt;BankRate.com&lt;/A&gt; is reporting a story about the use of financial transactions being used to track down terrorism.&amp;nbsp; Of course, our&amp;nbsp;anti-American partners at &lt;A href="http://articles.moneycentral.msn.com/Banking/FinancialPrivacy/WhyYourBankThinksYoureATerrorist.aspx?GT1=8377" mce_href="http://articles.moneycentral.msn.com/Banking/FinancialPrivacy/WhyYourBankThinksYoureATerrorist.aspx?GT1=8377"&gt;MSN&lt;/A&gt; are, of course, lapping up the story like a dog to a toilet bowl.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;The article states:&lt;/P&gt;

&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;According to their rules, any group of transactions totaling $5,000 or more that "is not the sort in which the particular customer would normally be expected to engage" can cause enough suspicion to create a SAR&lt;/EM&gt; [Suspicious Activity Report]&lt;EM&gt;.&lt;/EM&gt; &lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P dir=ltr&gt;Having engaged in more than my fair share of transactions last year that involved more than $5000 on a weekly basis, and having had my fair share of "irregular" bank transaction requests, I can state that I more than likely have one or more of these reports generated about me and suprisingly enough, I'm not cowering in a corner waiting for the feds to bust down my door.&amp;nbsp; Now, if I had engaged in any illegal activity, I am sure I'd be singing a different tune.&amp;nbsp;I also appreciate the fact that our government is trying to track possible terrorist activities and I'm thankful that we have a President who is willing to do what is necessary to meet that need.&lt;/P&gt;

&lt;P dir=ltr&gt;It seems to me I remember some certain "Jersey Girls" complaining:&lt;/P&gt;

&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P dir=ltr&gt;&lt;EM&gt;I&amp;nbsp;watched my husband murdered live on TV. . . . At any point in time the casualties could have been lessened, and it seems to me there wasn't even an attempt made.&lt;/EM&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P dir=ltr&gt;Among other things, they charge that nothing was done in a meaningful timeframe to save anyone's life, that the delay was on purpose, and that [President] George Bush was responsible for the deaths of three thousand people.&lt;/P&gt;

&lt;P dir=ltr&gt;I actually can understand the sentiment and complaints. I can even sympathize with the rationale, but these same women are complaining when we do try to gather intelligence.&amp;nbsp; Democrats are proud to bring up the intelligence failures of 9/11, but are also quick to leak intelligence to&amp;nbsp;ensure failure again in the future -- and they wonder why they lost the Presidential election as well as the House and Senate in 2004?&lt;/P&gt;

&lt;P dir=ltr&gt;Now, I'm certain I'll be attacked for taking this stand, but I want to get one thing straight. I don't believe that the government should be so involved in our lives either.&amp;nbsp; I think that we have let the government etch itself too deeply into our way of life. Let's not forget that the government was never intended to control so much of our lives.&amp;nbsp; Instead, we've perverted it to do so and now we are paying the consequences of those decisions.&amp;nbsp; Socialism has crept into our society years after we supposedly defeated it.&amp;nbsp; We've put the burdon of our every-day lives onto the government and now that the government is &lt;EM&gt;taking &lt;/EM&gt;what we have &lt;EM&gt;given &lt;/EM&gt;them over the years, we are going to complain?&amp;nbsp; &lt;/P&gt;

&lt;P dir=ltr&gt;You cannot have it both ways. Either you have a government that is in charge of distributing wealth, protecting citizenry, giving "free" health care to "everyone", establishing what is moral and what is not, literally &lt;A href="http://www.coalitionforredevelopmentreform.org/blog/archives/000193.php" mce_href="http://www.coalitionforredevelopmentreform.org/blog/archives/000193.php"&gt;robbing &lt;/A&gt;from the not-so-rich and giving to the not-so-poor, educating our children (if you can call it that) and caring for our every need, or they can be a thin layer of government that conforms to the will of the people and doesn't have the ability or business of prying into our every day lives.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/_PMKEyIINmM/OT-Bank-transaction-privacy</link>
            <guid isPermaLink="false">http://tobint.com/Blog/OT-Bank-transaction-privacy</guid>
            <pubDate>Thu, 13 Jul 2006 13:10:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/OT-Bank-transaction-privacy</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Looking left and turning right: management style</title>
            <description>&lt;P&gt;Today, I was returning from my manager's office to my own when I nearly collided with another manager-type in the hall.&amp;nbsp; As I was approaching a hallway intersection, a manager emerged in a bit of a hurry looking to the left while she was turning to the right.&amp;nbsp; She prolonged her view to the left for so long that her path was diverging directly into mine.&amp;nbsp; In motorcycle safety course several years ago we were taught while taking a corner that we should look in the direction of the curve. Looking to the opposing direction could often cause us to veer off course toward the direction of our gaze. Referring back to my manager-turned-missile, of course, I scrambled to get out of her way before she hit me. This was rather awkward to do and by the time the manager looked back at me shuffling around, she look at me like I was the stupid one and didn't as much as say "oops, sorry".&lt;/P&gt;

&lt;P&gt;Nothing in this world enrages me more than managers with an inflated view of their own self-importance.&amp;nbsp; But this is rather indicative of the problem I think we face in our company.&amp;nbsp; We know where we want to go, and if we just focused on our own goals, we would get there in spectacular fashion.&amp;nbsp; This isn't the case, however. We fixate on what other companies are doing and what else we could be doing instead of directing our gaze at what we are working on until it is completed.&amp;nbsp; Couple these misguiding glances with all of our team meetings, morale events, office sharing and quarterly group/org/company ra-ra meetings that do nothing more than tell us what we already know -- or tell us more than we care to know -- and it's no wonder we &lt;A href="http://www.theregister.co.uk/2002/06/25/windows_longhorn_slips_again_becomes/" mce_href="http://www.theregister.co.uk/2002/06/25/windows_longhorn_slips_again_becomes/"&gt;cannot&lt;/A&gt; get &lt;A href="http://www.crn.com/sections/breakingnews/breakingnews.jhtml?articleId=183701609" mce_href="http://www.crn.com/sections/breakingnews/breakingnews.jhtml?articleId=183701609"&gt;anything&lt;/A&gt; &lt;A href="http://www.eweek.com/article2/0,1895,1983846,00.asp" mce_href="http://www.eweek.com/article2/0,1895,1983846,00.asp"&gt;done&lt;/A&gt;.&lt;/P&gt;

&lt;P&gt;I encourage Microsoft to start training our managers -- and our non-management employees for that matter -- to stay focused on the direction of our company. Stop worrying about what every other company out there is doing and start worrying about what we are NOT getting done on time.&amp;nbsp; Our customers depend on us.&amp;nbsp; You want to drive up customer satisfaction rates?&amp;nbsp; How about delivering a product for them to be satisfied with!&amp;nbsp; You want to drive up revenue?&amp;nbsp; How about filling some warehouses with some freshly minted retail bits! &lt;/P&gt;

&lt;P&gt;Obsessing over our career options at &lt;A href="http://scobleizer.wordpress.com/2006/05/18/missed-big-hr-meeting/" mce_href="http://scobleizer.wordpress.com/2006/05/18/missed-big-hr-meeting/"&gt;myMicrosoft&lt;/A&gt; and worrying about &lt;A href="http://work.auroravoice.com/evidence/evidence2.asp?id=1187&amp;amp;qid=3" mce_href="http://work.auroravoice.com/evidence/evidence2.asp?id=1187&amp;amp;qid=3"&gt;work-life&lt;/A&gt; balance cannot continue to be our main focus.&amp;nbsp; Putting our focus in that direction will only take us off course from our real goals. Trust me, when we deliver quality products to our customers on time and under budget, our career options will open up for themselves. And nothing makes work-life balance easier than getting performance bonuses that we can spend on our nights, weekends and vacations or put toward our children's college education fund.&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Edit:&lt;BR&gt;&lt;/EM&gt;&lt;/STRONG&gt;I should clarify that I am also guilty of this very same problem.&amp;nbsp; While re-reading my annual review, my commitments are&amp;nbsp;filled with goals that aren't in my direct line of responsibility.&amp;nbsp; This is as much of a criticism of myself as it is of anyone else.&amp;nbsp; Furthermore, my managers up my direct line have been pretty wonderful, supportive and have kept me fairly focused on my tasks.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/t3c3LskwxJo/Looking-left-and-turning-right-management-style</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Looking-left-and-turning-right-management-style</guid>
            <pubDate>Fri, 07 Jul 2006 16:43:00 GMT</pubDate>
            <category>MicrosoftCulture</category>
        <feedburner:origLink>http://tobint.com/Blog/Looking-left-and-turning-right-management-style</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>SDK Sample: Programmatically change the runtime version of an application pool in IIS 7</title>
            <description>&lt;P&gt;I have posted a &lt;A href="http://blogs.iis.net/tobintitus/archive/2006/06/28/1327861.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/06/28/1327861.aspx"&gt;new sample&lt;/A&gt; on &lt;A href="http://www.iis.net/" mce_href="http://www.iis.net"&gt;IIS.NET&lt;/A&gt; demonstrating how to programmatically change the managed runtime version of an application pool in IIS 7.0.&amp;nbsp; I have posted code in VB.NET and C#.&amp;nbsp; Enjoy.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/0CgoZac_V34/SDK-Sample-Programmatically-change-the-runtime-version-of-an-application-pool-in-IIS-7</link>
            <guid isPermaLink="false">http://tobint.com/Blog/SDK-Sample-Programmatically-change-the-runtime-version-of-an-application-pool-in-IIS-7</guid>
            <pubDate>Wed, 28 Jun 2006 20:02:00 GMT</pubDate>
            <category>VisualBasic</category>
            <category>VB6</category>
            <category>Migration</category>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/SDK-Sample-Programmatically-change-the-runtime-version-of-an-application-pool-in-IIS-7</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Communication breakdown: internal spam affects productivity</title>
            <description>&lt;P&gt;When I interviewed with Microsoft, I was asked, "What is one thing we can count on you to do at Microsoft?"&amp;nbsp; &lt;/P&gt;

&lt;P&gt;My reply was brief: "&lt;EM&gt;You can count on me to complain&lt;/EM&gt;."&amp;nbsp; &lt;/P&gt;

&lt;P&gt;My interviewer suddenly took on the puzzled look that an interviewee would normally take when presented with an unfamiliar scenario.&amp;nbsp; The facial expression of my inquisitor demanded an explanation.&amp;nbsp; I decided to end the torment by presenting further detail;&amp;nbsp; “&lt;EM&gt;When something is wrong, I’m going to bring it up and someone will hear me.&amp;nbsp; I’m not going to just complain, but I’m going to offer at least one alternative solution.&lt;/EM&gt;”&amp;nbsp; Apparently, my explanation cured the torment of my initial declaration. I was hired and here I sit; typing my 23rd Microsoft blog post to an audience that has graced me with tens of thousands of views.&amp;nbsp; This particular post is a follow-up on my promise to complain and provide an alternative solution.&lt;/P&gt;

&lt;P&gt;As many have said in the past, email is the life-blood of our company. We communicate everything in email.&amp;nbsp; That’s why our anti-spam measures that counteract external tormenters are so critical to our business.&amp;nbsp; But what are we doing about the measures to counteract internal spammers?&amp;nbsp; Adam Barr made light of the need for Microsoft Outlook rules in his short story, “&lt;A href="http://www.proudlyserving.com/archives/2006/06/the_microsoft_c_6.html" mce_href="http://www.proudlyserving.com/archives/2006/06/the_microsoft_c_6.html"&gt;The Microsoft Code&lt;/A&gt;”, but the premise is 100% genuine.&amp;nbsp; Internally, we have people who just &lt;STRONG&gt;&lt;EM&gt;LOVE&lt;/EM&gt;&lt;/STRONG&gt; to toot their own horns and, as you might guess, these horn-tooters are typically the management way up the line.&amp;nbsp; They do this horn-tooting in a barrage of email that cripples productivity.&amp;nbsp; This is fine, I suppose, but it comes from the internal culture that supports working toward better reviews each year rather than making meaningful contributions to their teams, organizations, the company and (hopefully) the customers.&amp;nbsp; When a director sends you a “professional” email that contains exclamation points and smiley faces, you can almost assuredly delete the email – &lt;STRONG&gt;&lt;EM&gt;can anyone make an Outlook rule for that&lt;/EM&gt;&lt;/STRONG&gt;?&lt;BR&gt;&amp;nbsp;&lt;BR&gt;I've been at Microsoft for less than 4 months now and I've been swamped with work since I came to Redmond.&amp;nbsp;&amp;nbsp; I am the only worker of my particular discipline in my particular group.&amp;nbsp; I have deadlines; big ones; looming ones. I sincerely mean no offense here, but I don’t have time to listen to everybody in our company talk about what they did and&amp;nbsp;what they are going to do.&amp;nbsp; To take that one step further, I don’t care to know everything that’s going on. I lose my focus as I try to decipher the email and understand how that particular communication affects my day-to-day work.&amp;nbsp; If our upper management stopped to think about the opportunity cost of each email they sent out, we might actually have time to stop reading email and start getting products shipped on time.&amp;nbsp; Seriously, I wonder how many people send out these emails to distribution lists that “appear” correct (apparently based on the name of the group) without actually looking to see who is involved in the distribution.&amp;nbsp; Those distribution lists in the GAL can be nested so many levels deep, I venture to say that no one knows who is going to receive a particular email with any degree of specificity.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;If upper management is going to send email to everyone, what is intermediate management meant to do?&amp;nbsp; I personally prefer a military style approach where one level talks directly to the level above them and the level below them with rare communications in between.&amp;nbsp; If those particular levels above or below think the information is important to the next level up or down, they can forward that communication accordingly.&amp;nbsp; Dissemination of information in this particular manner assures that the appropriate people get the data, and everyone else doesn’t suffer from information overload.&amp;nbsp; Each management level can also summarize the information and parse out the pieces that they feel are important for their group – a human Outlook rule, if you will.&amp;nbsp;&amp;nbsp;That's obviously not the culture we have here at Microsoft.&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;One idea I tossed about in my head was the idea that everyone internally should have their own RSS feed or VLOG.&amp;nbsp; When someone wants to toot their own horn, they can do so on their blog; their managers can see those accolades, their team can see it, and the people who really care about it can see it.&amp;nbsp; If that particular employee keeps blogging about stuff that doesn’t affect me, I can unsubscribe and stop wasting my time reading/watching that feed&amp;nbsp;– providing incentive for everyone to keep their topics relevant or risk humiliation with low agg-view participation.&amp;nbsp; In this approach, new employees or employees who transfer to groups could then subscribe to manager-recommended OPMLs that generally contain information that you will want so you can be effective in your new role.&amp;nbsp;&amp;nbsp; Furthermore, RSS feeds can be much more easily tagged than email can.&amp;nbsp; I can subscribe to “John Doe’s IIS posts” but filter out “John Doe’s Accomplishments” (much like my own blog that will allow some of you to ignore this particular “Microsoft Culture” post if you so desire).&amp;nbsp; Sure, this is&amp;nbsp;not a perfect solution,&amp;nbsp;but it's a start.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;I have tons of important data to keep track of.&amp;nbsp; Communication is very important to the company – too important to gum up with internal spam.&amp;nbsp; We need to find a solution or we will forever find ourselves bogged down in self-congratulatory expression and no real work getting done.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/L7NIsau_uDQ/Communication-breakdown-internal-spam-affects-productivity</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Communication-breakdown-internal-spam-affects-productivity</guid>
            <pubDate>Wed, 28 Jun 2006 17:49:00 GMT</pubDate>
            <category>MicrosoftCulture</category>
        <feedburner:origLink>http://tobint.com/Blog/Communication-breakdown-internal-spam-affects-productivity</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Security: There's incompetence, and there's major incompetence</title>
            <description>&lt;P&gt;It's one type of incompetence to keep the personal identifiers and financial data of customers on your laptop and then &lt;A href="http://www.msnbc.msn.com/id/13437723/" mce_href="http://www.msnbc.msn.com/id/13437723/"&gt;lose it&lt;/A&gt; -- &lt;A href="http://www.msnbc.msn.com/id/13392729/" mce_href="http://www.msnbc.msn.com/id/13392729/"&gt;twice&lt;/A&gt;;&amp;nbsp; It's an entirely different type of incompetence that allows government &lt;A href="http://www.msnbc.msn.com/id/13470744/" mce_href="http://www.msnbc.msn.com/id/13470744/"&gt;data to be compromised&lt;/A&gt;&amp;nbsp;through a network.&amp;nbsp; Last year at TechEd, a demo showed how a completely patched network could be compromised using an exploit in a web site.&amp;nbsp; The best part of the exploit was made possible due to turning on more functionality than was necessary. Namely, one issue in the demo was that the router configuration allowed port 80 and port 443 traffic -- despite the fact that SSL was not in use on the web site.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;Regardless of the&amp;nbsp;platform being used, many of these compromises are possible these days not due to the operating system itself, but&amp;nbsp;due to assumptions made about users, lack of planning, or pure laziness of administrators and developers.&amp;nbsp; This is one major reason why I'm not a big fan of agile. Despite the best arguments I've heard for agile software development, I have witnessed too much emphasis on feature completion without regard to overall system security. I would encourage you all to read Michael Howard's new book on the security development lifecycle (link provided below).&lt;/P&gt;

&lt;P&gt;Whatever the case --&amp;nbsp;whatever the cause -- I would urge the community to pay attention to the recent news stories, learn to start protecting important data and please stop putting personal and financial information that doesn't belong to you on your laptop!&lt;/P&gt;

&lt;P&gt;For more Microsoft resources on security please check out the following:&lt;/P&gt;

&lt;P&gt;General Security Websites:&lt;BR&gt;&lt;A href="http://www.microsoft.com/security/default.mspx" mce_href="http://www.microsoft.com/security/default.mspx"&gt;http://www.microsoft.com/security/default.mspx&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Developer Security:&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/security/securityreskit/default.aspx" mce_href="http://msdn.microsoft.com/security/securityreskit/default.aspx"&gt;http://msdn.microsoft.com/security/securityreskit/default.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/security/securecode/default.aspx" mce_href="http://msdn.microsoft.com/security/securecode/default.aspx"&gt;http://msdn.microsoft.com/security/securecode/default.aspx&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Blogs:&lt;BR&gt;&lt;A href="http://blogs.technet.com/msrc/default.aspx" mce_href="http://blogs.technet.com/msrc/default.aspx"&gt;http://blogs.technet.com/msrc/default.aspx&lt;/A&gt;&lt;BR&gt;&lt;A href="http://blogs.msdn.com/michael_howard/" mce_href="/michael_howard/"&gt;http://blogs.msdn.com/michael_howard/&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Books:&lt;BR&gt;&lt;A href="http://books.mcgraw-hill.com/getbook.php?isbn=0072260858" mce_href="http://books.mcgraw-hill.com/getbook.php?isbn=0072260858"&gt;http://books.mcgraw-hill.com/getbook.php?isbn=0072260858&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/MSPress/books/5957.asp" mce_href="http://www.microsoft.com/MSPress/books/5957.asp"&gt;http://www.microsoft.com/MSPress/books/5957.asp&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/MSPress/books/8753.asp" mce_href="http://www.microsoft.com/MSPress/books/8753.asp"&gt;http://www.microsoft.com/MSPress/books/8753.asp&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/mspress/books/6893.asp" mce_href="http://www.microsoft.com/mspress/books/6893.asp"&gt;http://www.microsoft.com/mspress/books/6893.asp&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/mspress/books/6788.asp" mce_href="http://www.microsoft.com/mspress/books/6788.asp"&gt;http://www.microsoft.com/mspress/books/6788.asp&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/mspress/books/6892.asp" mce_href="http://www.microsoft.com/mspress/books/6892.asp"&gt;http://www.microsoft.com/mspress/books/6892.asp&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.microsoft.com/mspress/books/6432.asp" mce_href="http://www.microsoft.com/mspress/books/6432.asp"&gt;http://www.microsoft.com/mspress/books/6432.asp&lt;/A&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/-MHnQcS8-Yg/Security-Theres-incompetence-and-theres-major-incompetence</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Security-Theres-incompetence-and-theres-major-incompetence</guid>
            <pubDate>Wed, 21 Jun 2006 22:11:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Security-Theres-incompetence-and-theres-major-incompetence</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>ADO.NET 2.0 Boot Camp</title>
            <description>&lt;P&gt;&lt;A href="http://blah.winsmarts.com/" mce_href="http://blah.winsmarts.com/"&gt;Sahil Malik&lt;/A&gt;, a prolific speaker, &lt;A href="https://mvp.support.microsoft.com/profile=D5203CE2-A442-44B8-99E4-6E7AB6EBAA49" mce_href="https://mvp.support.microsoft.com/profile=D5203CE2-A442-44B8-99E4-6E7AB6EBAA49"&gt;Microsoft MVP&lt;/A&gt; and author of "&lt;A href="http://www.amazon.com/gp/product/1590595122/104-8110845-8289515?v=glance&amp;amp;n=283155" mce_href="http://www.amazon.com/gp/product/1590595122/104-8110845-8289515?v=glance&amp;amp;n=283155"&gt;Professional&amp;nbsp;ADO.NET 2.0&lt;/A&gt;" is holding a one-day &lt;A href="https://www.itenlightenment.com/adodotnet072106.php" mce_href="https://www.itenlightenment.com/adodotnet072106.php"&gt;ADO.NET boot camp&lt;/A&gt; in Charlotte next month.&amp;nbsp; If you are in the area, I think this class will definitely give you your money's worth.&amp;nbsp; Sahil has a very unique way of teaching that is easy to follow and highly effective.&amp;nbsp; If you are going to be in the area on July 21st, and want to master ADO.NET, I would encourage you to take a look at this great opportunity in the Charlotte, NC.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/qbFcYNuJFOA/ADONET-20-Boot-Camp</link>
            <guid isPermaLink="false">http://tobint.com/Blog/ADONET-20-Boot-Camp</guid>
            <pubDate>Tue, 20 Jun 2006 20:01:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/ADONET-20-Boot-Camp</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Workaround: Adding a script map in IIS 5.1</title>
            <description>&lt;P&gt;I was contacted by a customer who commented that he could not add a Script Map to IIS 5.1.&amp;nbsp; After selecting his executable for the script map and adding his extension, the "OK" button was still disabled -- preventing him from committing the script map change.&lt;/P&gt;

&lt;P&gt;To work around this issue, once you have selected the executable and set the extension, click inside the "Executable" text box to expand the full path to the executable.&amp;nbsp; Doing so will enable the OK button and you will be able to commit your script map change. &lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/tnLDctXUxLU/Workaround-Adding-a-script-map-in-IIS-51</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Workaround-Adding-a-script-map-in-IIS-51</guid>
            <pubDate>Sat, 17 Jun 2006 01:15:00 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/Workaround-Adding-a-script-map-in-IIS-51</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Bill Gates affect on my mood</title>
            <description>&lt;P&gt;Being a new employee at Microsoft leaves me at a bit of a disadvantage in weeks like this.&amp;nbsp; First, we hear that our "chief blogging officer", &lt;A href="http://www.jokeseveryday.com/funnypages/billgatestakesthepie.htm" mce_href="http://www.jokeseveryday.com/funnypages/billgatestakesthepie.htm"&gt;Robert Scoble is leaving &lt;/A&gt;the company.&amp;nbsp; Today, it’s been announced that &lt;A href="http://www.msnbc.msn.com/id/13348456/" mce_href="http://www.msnbc.msn.com/id/13348456/"&gt;BillG will be stepping back &lt;/A&gt;his responsibilities at the companies once again.&amp;nbsp; It is not like this wasn't expected, but it is a bit disheartening, none-the-less.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;Bill Gates has had a profound affect on my life.&amp;nbsp; I grew up in a poor town with family that worked VERY hard to provide for us, but by no means were we wealthy.&amp;nbsp; However, when I was writing code on my &lt;A href="http://www.atarimuseum.com/computers/8BITS/XL/800xl/800xl.htm" mce_href="http://www.atarimuseum.com/computers/8BITS/XL/800xl/800xl.htm"&gt;Atari 800XL &lt;/A&gt;in fifth grade, I told my mom that I would be working for Microsoft one day.&amp;nbsp; Since then, Bill Gates' drive has inspired this poor kid from &lt;A href="http://www.eastliverpool.com/" mce_href="http://www.eastliverpool.com/"&gt;East Liverpool, OH&lt;/A&gt; to succeed.&amp;nbsp; No matter what life throws at you, &lt;A href="http://www.slashdot.org/" mce_href="http://www.slashdot.org"&gt;who makes fun of you &lt;/A&gt;or &lt;A href="http://www.jokeseveryday.com/funnypages/billgatestakesthepie.htm" mce_href="http://www.jokeseveryday.com/funnypages/billgatestakesthepie.htm"&gt;attacks you with pies&lt;/A&gt;&amp;nbsp;you can always come out on top.&amp;nbsp; Like BillG, I didn't finish &lt;A href="http://www.bju.edu/" mce_href="http://www.bju.edu"&gt;college&lt;/A&gt; -- but unlike Mr. Gates, I quit because I ran out of money.&amp;nbsp; None-the-less, in my mind, I said "If Bill can succeed without a degree, so can I!"&amp;nbsp; Over the years, my life has thrown one curve ball after another at me.&amp;nbsp; I've had good times and bad. The one common factor in all those years has been Microsoft software;&amp;nbsp; I've made my career of it; I've based my life on it;&amp;nbsp; My house and my belt clip are embedded with it;&amp;nbsp; I've tied my success (if I can call it that) to it.&amp;nbsp; So with all of this said, it’s a deeply saddening experience to see the man who is responsible for getting it all started is now slowly backing out of his role here.&lt;/P&gt;

&lt;P&gt;However...&lt;/P&gt;

&lt;P&gt;If you talk to the larger percentage of Microsoft employees, most of us have had little to no interaction with Bill. Our software goes in and out the door much without his micro-management or interference.&amp;nbsp; How much of the Microsoft Office 2007 feature set was designed or coded by Mr. Gates? What drivers for Windows Vista do you think Bill had a part in creating?&amp;nbsp; My guess is, very little of our software is directly controlled by Bill.&amp;nbsp; Instead, he delegates those responsibilities as he sees fit.&lt;/P&gt;

&lt;P&gt;I think it's great that Bill gets to follow this path with his life. There is such an emphasis on giving at Microsoft. I'm proud to be part of a company that thinks about more than what goes on inside its own walls.&amp;nbsp; I, too, intend to do charity work full time at some point in my life. I think, one again, Bill is setting an example for my own life.&amp;nbsp; I obviously will not likely be able to do this to the same degree that Bill Gates is, but the example has been set and I admire the man.&lt;/P&gt;

&lt;P&gt;Microsoft will go on making great software on and off the desktop for years to come and Bill is responsible for the spark that started this software industry off in such spectacular fashion. It’s time for someone else to take the torch and move on while Bill starts a new spark in charitable giving. If it's possible for someone 11 levels under Mr Gates to say this, I'm proud of him for doing this and I can't wait to see what he accomplishes with &lt;A href="http://www.gatesfoundation.org/" mce_href="http://www.gatesfoundation.org/"&gt;The Gates Foundation&lt;/A&gt;&amp;nbsp;when he goes full time with it in 2008.&lt;/P&gt;

&lt;P&gt;Good luck, Mr. Gates, and God Bless.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/-Nd1GfIOMTk/Bill-Gates-affect-on-my-mood</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Bill-Gates-affect-on-my-mood</guid>
            <pubDate>Thu, 15 Jun 2006 15:29:00 GMT</pubDate>
            <category>MicrosoftCulture</category>
        <feedburner:origLink>http://tobint.com/Blog/Bill-Gates-affect-on-my-mood</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>ASP.NET 1.1, IIS 6.0 and 64-bit Windows</title>
            <description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;A few days ago, one of the many distribution lists I belong to was presented with the following requests:&lt;/FONT&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;FONT face="Courier New" size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;I’m trying to create a Web Service in Visual Studio .NET 2003 and am getting an error “Visual Studio .NET has detected that the specified Web server is not running ASP .NET version 1.1. You will be unable to run ASP .NET Web applications or services.”&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;The individual said that he had checked the script maps and everything seemed to be in order on the server.&amp;nbsp; They had installed and uninstalled the ASP.NET extensions several times using aspnet_regiis.exe.&amp;nbsp; After a few more communications the poster added:&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;(Potential complication: my machine is a 64-bit OS; does this change the equation?)&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;FONT face=Arial size=2&gt;The answer is that running 64-bit Windows &lt;EM&gt;does&lt;/EM&gt; have an affect on your ability to run ASP.NET 1.1 in IIS 6.&amp;nbsp; ASP.NET 1.1 only supports running in 32-bit mode.&amp;nbsp; Fortunately, IIS 6 on 64-bit Windows can run in either 64-bit mode or 32-bit mode. &lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face=arial size=2&gt;The following steps to run IIS 6 in 32-bit mode can be found in our &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;894435" mce_href="http://support.microsoft.com/default.aspx?scid=kb;en-us;894435"&gt;MSDN documentation&lt;/A&gt;: &lt;/FONT&gt;&lt;FONT face="courier new" size=2&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Click Start, click Run, type cmd, and then click OK.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#000080&gt;Type the following command to enable the 32-bit mode:&lt;BR&gt;&lt;/FONT&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="courier new size=" color=#000080 2?&gt;&lt;B&gt;cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1&lt;/B&gt;&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;

&lt;LI&gt;&lt;FONT color=#000080&gt;Type the following command to install the version of ASP.NET 1.1 and to install the script maps at the IIS root and under:&lt;BR&gt;&lt;/FONT&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;FONT face="courier new size=" color=#000080 2?&gt;&lt;B&gt;%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i &lt;/B&gt;&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;

&lt;LI&gt;&lt;FONT color=#000080&gt;Make sure that the status of ASP.NET version 1.1.4322 is set to Allowed in the Web service extension list in Internet Information Services Manager.&lt;/FONT&gt; &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;FONT face=Arial size=2&gt;After following these instructions, the issue still wasn't resolved.&amp;nbsp; In fact, the script maps for the web application were not being properly updated.&amp;nbsp; I had the customer execute the "aspnet_regiis -ua" which would remove all versions of ASP.NET from the machine.&amp;nbsp; To reinstall the ASP.NET 1.1 again, you then need to reissue the "aspnet_regiis -i" command (use "aspnet_regiis -i -enable" if you are using Windows 2003).&amp;nbsp; This should allow you to run ASP.NET 1.1 on IIS 6.&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face=Arial size=2&gt;Keep in mind, however, that &lt;EM&gt;&lt;STRONG&gt;IIS 6.0 cannot run in both 64-bit mode and 32-bit mode at the same time&lt;/STRONG&gt;&lt;/EM&gt;. By running IIS 6.0 in 32-bit mode on 64-bit Windows, ASP.NET 2.0 applications will also run in 32-bit mode.&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;EM&gt;(This blog post was cross-posted from: &lt;/EM&gt;&lt;A href="http://blogs.iis.net/tobintitus/archive/2006/06/15/1315931.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/06/15/1315931.aspx"&gt;&lt;EM&gt;http://blogs.iis.net/tobintitus/archive/2006/06/15/1315931.aspx&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&amp;nbsp;)&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/jpRm0UDbFHg/ASPNET-11-IIS-60-and-64-bit-Windows</link>
            <guid isPermaLink="false">http://tobint.com/Blog/ASPNET-11-IIS-60-and-64-bit-Windows</guid>
            <pubDate>Thu, 15 Jun 2006 11:17:00 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/ASPNET-11-IIS-60-and-64-bit-Windows</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Work-life balance; Robert Scoble; Weekends @ Microsoft</title>
            <description>&lt;P&gt;Since coming to Microsoft, I have heard a LOT about our policy on "work-life balance".&amp;nbsp;&amp;nbsp;&amp;nbsp;If you aren't familiar with what work-life balance is,&amp;nbsp;a simple &lt;A href="http://search.msn.com/results.aspx?q=Microsoft+work-life+balance" mce_href="http://search.msn.com/results.aspx?q=Microsoft+work-life+balance"&gt;search&lt;/A&gt; on the web should satisfy your curiosity.&amp;nbsp; Essentially, we believe that people work best when they are satisified with their accomplishments at work as well as their lives at home.&amp;nbsp; Microsoft will often say that their greatest asset is their employees.&amp;nbsp; However, Microsoft &lt;EM&gt;doesn't actually believe&lt;/EM&gt; that last statement.&amp;nbsp; Now if you are a manager or an HR rep at Microsoft, and you just read that last statement, you probably just spewed your soda ("pop" for some of you) all over your flat-screen and keyboard.&amp;nbsp; Never fear.&amp;nbsp; Let me explain that.&amp;nbsp; If Microsoft actually believed that employees were an &lt;EM&gt;asset&lt;/EM&gt;, they would treat them like they owned them.&amp;nbsp; This is NOT the case.&amp;nbsp; In fact, Microsoft treats us more like a guest that they don't want to leave.&amp;nbsp; I'm sure this week will be particularly hard for Microsoft as one of our more prominent guests have &lt;A href="http://scobleizer.wordpress.com/2006/06/10/correcting-the-record-about-microsoft/" mce_href="http://scobleizer.wordpress.com/2006/06/10/correcting-the-record-about-microsoft/"&gt;announced they are leaving&lt;/A&gt;.&amp;nbsp; I'm glad that Robert has seen fit to shut down the &lt;A href="http://www.siliconvalleywatcher.com/mt/archives/2006/06/microsofts_top.php" mce_href="http://www.siliconvalleywatcher.com/mt/archives/2006/06/microsofts_top.php"&gt;critics&lt;/A&gt;&amp;nbsp;who opened their mouths before &lt;A href="http://mp.blogs.com/mp/2006/06/s_7.html" mce_href="http://mp.blogs.com/mp/2006/06/s_7.html"&gt;getting the facts straight&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;I often hear about how Microsoft doesn't pay enough or treat their employees right.&amp;nbsp; While that may or may not be true (depending on who you talk to), Microsoft has proved with their benefits that they do care deeply about their employees.&amp;nbsp; From day one at Microsoft, you are given a package of benefits so thick that it takes two days of new employee orientation to help you get familiar with them -- and even then, you are left bewildered with all of the benefits and resources at your disposal.&amp;nbsp; One such benefit that is actually a "requirement" at Microsoft is work-life balance.&amp;nbsp; In the past three months since my arrival, I've been pressured to make sure I have been enjoying life while getting my work done at the same time.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;However, here I sit at work on the weekend, trying to pound out some of my work while there are less distractions and no meetings to attend.&amp;nbsp; This is by choice, obviously, and if anyone from my team knew I was here, I'm sure I would get reminded that my "life" is just as important as work.&amp;nbsp; Of course, at the moment I decide to take a quick break, a member of my team walks in and "catches" me with a pocket full of ping pong balls on my way from the ping pong table. See, I've got work-life balance! (Thank goodness they didn't catch me working instead).&lt;/P&gt;

&lt;P&gt;This post was prompted by the news of Scoble's departure and the folks that immediately took that opportunity to bash Microsoft over "letting him go". And that they didn't "do everything they could to make sure he stayed put".&amp;nbsp; I'm sure that everything was done to encourage him to stay -- but remember -- he is just &lt;EM&gt;guest&lt;/EM&gt; and not an &lt;EM&gt;asset&lt;/EM&gt;.&amp;nbsp; Therefor he is entitled to leave any time that he wants for whatever reason he wants.&lt;/P&gt;

&lt;P&gt;I'm very sorry to hear Robert Scoble is leaving Microsoft, but very happy that he cleared the air about life at Microsoft before it got out of hand.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Good luck, Robert!&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/Yma9VBTfexA/Work-life-balance-Robert-Scoble-Weekends--Microsoft</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Work-life-balance-Robert-Scoble-Weekends--Microsoft</guid>
            <pubDate>Sun, 11 Jun 2006 21:36:09 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Work-life-balance-Robert-Scoble-Weekends--Microsoft</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Improving code performance</title>
            <description>&lt;p&gt;&lt;font face="Arial" size="2"&gt;Recently, an old co-worker contacted me to ask me a question about code performance. Specifically, he was emitting IL from his code and had some questions about some of the opcode usage he witnessed when viewing the IL of some compiled assemblies.&amp;#160; The question was based on a simple application he wrote in C#, compiled, and disassembled.&amp;#160; He did this to see how the C# compiler produced IL and give him clues in how he should emit IL.&amp;#160; The function in question was as follows:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;font color="#0000ff"&gt;public object&lt;/font&gt; GetProp(&lt;font color="#0000ff"&gt;string&lt;/font&gt; name)       &lt;br /&gt;{&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (name == &lt;font color="#800000"&gt;&amp;quot;X&amp;quot;&lt;/font&gt;)&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;return this&lt;/font&gt;.X;       &lt;br /&gt;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;return null;        &lt;br /&gt;} &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;Now, the code obviously isn't meant to do anything other than lend some insight into the IL.&amp;#160; Compiling to 'debug' the following IL was produced.      &lt;br /&gt;&lt;/font&gt;&lt;font face="Fixedsys" size="2"&gt;     &lt;br /&gt;.method public hidebysig instance object       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GetProp(string name) cil managed       &lt;br /&gt;{       &lt;br /&gt;// Code size&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 35 (0x23)       &lt;br /&gt;.maxstack&amp;#160; 2       &lt;br /&gt;.locals init ([0] object CS$1$0000,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [1] bool CS$4$0001)       &lt;br /&gt;IL_0000:&amp;#160; nop       &lt;br /&gt;IL_0001:&amp;#160; ldarg.1       &lt;br /&gt;IL_0002:&amp;#160; ldstr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;X&amp;quot;       &lt;br /&gt;IL_0007:&amp;#160; call&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bool [mscorlib]System.String::op_Equality(string, string)       &lt;br /&gt;IL_000c:&amp;#160; ldc.i4.0       &lt;br /&gt;IL_000d:&amp;#160; ceq       &lt;br /&gt;IL_000f:&amp;#160; stloc.1       &lt;br /&gt;IL_0010:&amp;#160; ldloc.1       &lt;br /&gt;IL_0011:&amp;#160; brtrue.s&amp;#160;&amp;#160; IL_001d       &lt;br /&gt;IL_0013:&amp;#160; nop       &lt;br /&gt;IL_0014:&amp;#160; ldarg.0       &lt;br /&gt;IL_0015:&amp;#160; call&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; instance string class TestApp.TClass`1&lt;!T&gt;::get_X()       &lt;br /&gt;IL_001a:&amp;#160; stloc.0       &lt;br /&gt;IL_001b:&amp;#160; br.s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IL_0021       &lt;br /&gt;IL_001d:&amp;#160; ldnull       &lt;br /&gt;IL_001e:&amp;#160; stloc.0       &lt;br /&gt;IL_001f:&amp;#160; br.s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IL_0021       &lt;br /&gt;IL_0021:&amp;#160; ldloc.0       &lt;br /&gt;IL_0022:&amp;#160; ret       &lt;br /&gt;} // end of method TClass`1::GetProp       &lt;br /&gt;&lt;/font&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;The question was, why was the stloc.1 and ldloc.1 needed after the ceq instruction at IL_000d (there are actually other issues in this small snippet, but I'll focus on this particular one) . I, too, tried to resolve the issue and batted a few guesses around.&amp;#160; I proffered two ideas, and then ultimately suggested that the JIT compiler would likely be modifying this code anyway (particularly once it was recompiled in 'release' with optimization).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;Still curious as to why the compiler produced the stloc and ldloc opcodes, I asked around internally until Vance set me straight with this blog post.&lt;/font&gt;&lt;/p&gt;  &lt;blockquote dir="ltr" style="margin-right: 0px"&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;Introduction: What does ‘foreach’ actually do?&lt;/b&gt;&lt;/font&gt;       &lt;br /&gt;&lt;a title="http://blogs.msdn.com/vancem/archive/2006/02/20/535807.aspx" href="http://blogs.msdn.com/vancem/archive/2006/02/20/535807.aspx" mce_href="http://blogs.msdn.com/vancem/archive/2006/02/20/535807.aspx"&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/vancem/archive/2006/02/20/535807.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;Essentially, he states what I initially felt -- that the JIT transformations on the IL are so dramatic, that you cannot judge an application's performance based on the IL.&amp;#160; He also gives some great information on how to view your JITed code -- with release optimizations and everything.&amp;#160; The other side to this is, that after further review, the inefficiencies of the IL were fixed in the optimized IL anyway once the code was set to 'release'. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial" size="2"&gt;Sometimes, it's really easy to get side-tracked by these discussions in your quest for software glory.&amp;#160; I'm glad to know we have people like Vance around to set me straight when I do.&lt;/font&gt;&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/70anYHv2TO0/Improving-code-performance</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Improving-code-performance</guid>
            <pubDate>Tue, 06 Jun 2006 16:40:00 GMT</pubDate>
            <category>NET</category>
            <category>Performance</category>
            <category>CIL</category>
        <feedburner:origLink>http://tobint.com/Blog/Improving-code-performance</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IL Performance Optimization</title>
            <description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;Recently, an old co-worker contacted me to ask me a question about code performance. Specifically, he was emitting IL from his code and had some questions about some of the opcode usage he witnessed when viewing the IL of some compiled assemblies.&amp;nbsp; The question was based on a simple application he wrote in C#, compiled, and disassembled.&amp;nbsp; He did this&amp;nbsp;to see how the C# compiler produced IL and give him clues in how he should emit IL.&amp;nbsp; The function in question was as follows:&lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT color=blue&gt;public object&lt;/FONT&gt; GetProp(&lt;FONT color=blue&gt;string&lt;/FONT&gt; name) &lt;BR&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=blue&gt;if&lt;/FONT&gt; (name == &lt;FONT color=maroon&gt;"X"&lt;/FONT&gt;)&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=blue&gt;return this&lt;/FONT&gt;.X;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=blue&gt;return null;&lt;BR&gt;} &lt;/FONT&gt;&lt;/P&gt;
(&lt;A href="http://blogs.iis.net/tobintitus/archive/2006/06/06/1307054.aspx" mce_href="http://blogs.iis.net/tobintitus/archive/2006/06/06/1307054.aspx"&gt;continue&lt;/A&gt;)&lt;/FONT&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/v1sl3fpiO5w/IL-Performance-Optimization</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IL-Performance-Optimization</guid>
            <pubDate>Tue, 06 Jun 2006 13:13:34 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/IL-Performance-Optimization</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS 7 on a MacBook !</title>
            <description>&lt;p&gt;The IIS 7 Commander-in-chief, Bill Staples , has just released a screenshot of his new &lt;A href="http://blogs.iis.net/bills/archive/2006/05/23/1294639.aspx" mce_href="http://blogs.iis.net/bills/archive/2006/05/23/1294639.aspx"&gt;17" MacBook running IIS 7&lt;/A&gt;!&amp;nbsp; I simply&amp;nbsp;&lt;A href="http://blogs.iis.net/bills/archive/2006/05/23/1294639.aspx" mce_href="http://blogs.iis.net/bills/archive/2006/05/23/1294639.aspx"&gt;must&lt;/A&gt; get one now!&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/XVv1VEJ_FQ8/IIS-7-on-a-MacBook-</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-7-on-a-MacBook-</guid>
            <pubDate>Wed, 24 May 2006 12:58:03 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-7-on-a-MacBook-</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Beta 2 Live - IIS.NET now open!</title>
            <description>&lt;P&gt;Now that &lt;A href="http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/" mce_href="http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/"&gt;Beta 2 has been announced &lt;/A&gt;and IIS 7 is now publicly available to beta testers on both the Vista and Longhorn platforms, our new portal, &lt;A href="http://www.iis.net/" mce_href="http://www.iis.net"&gt;IIS.NET &lt;/A&gt;is now open and live!&amp;nbsp; Many long hours were spent on this by some great guys here at Microsoft.&amp;nbsp; Be sure to stop by and tell them what you think of the site!&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/DmReZ4LjZ8A/Beta-2-Live-IISNET-now-open</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Beta-2-Live-IISNET-now-open</guid>
            <pubDate>Tue, 23 May 2006 11:39:00 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/Beta-2-Live-IISNET-now-open</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>IIS 7.0 UE team is hiring!</title>
            <description>&lt;P dir=ltr&gt;&lt;FONT face=Arial&gt;We're hiring!&amp;nbsp; Take a look at the details below&lt;/FONT&gt;&lt;/P&gt;

&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;"Do you love Internet and Web server technologies? Join the IIS UE team and work on the coolest version of Internet Information Services (IIS) ever. IIS 7.0 joins forces with ASP.NET to deliver a Web application development platform that's getting rave reviews from customers. &lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;We're looking for a programmer writer to define and deliver essential developer-focused, solution-based documentation for a programming audience. Your responsibilities will include writing API reference topics, conceptual topics about IIS, and code examples that demonstrate product features. You’ll be responsible for multiple feature areas, so good organizational skills and the ability to prioritize your workload are a must."&lt;/FONT&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&lt;FONT face=Arial&gt;(&lt;/FONT&gt;&lt;A href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=1&amp;amp;interval=10" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=1&amp;amp;interval=10"&gt;&lt;FONT face=Arial&gt;continue&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial&gt;)&lt;/FONT&gt;&lt;A href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=1&amp;amp;interval=10" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=3310FAA7-A614-41E7-8D01-F45C298C25F1&amp;amp;start=1&amp;amp;interval=10"&gt;&lt;/A&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/05fxGpsThGM/IIS-70-UE-team-is-hiring</link>
            <guid isPermaLink="false">http://tobint.com/Blog/IIS-70-UE-team-is-hiring</guid>
            <pubDate>Mon, 15 May 2006 11:58:00 GMT</pubDate>
            <category>IIS</category>
        <feedburner:origLink>http://tobint.com/Blog/IIS-70-UE-team-is-hiring</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Online Training: Upgrade from VB 6.0 to VB.NET and Absolute Beginners Guide to VB.NET Express Edition</title>
            <description>&lt;P&gt;Microsoft Learning has put together a great series of training courses which are available now at a substantial discount.&amp;nbsp; Take advantage of the deal while it lasts (sale ends June 30th)!&lt;/P&gt;

&lt;P&gt;&lt;A href="https://www.microsoftelearning.com/visualstudio2005/#upgradingfromVB60" mce_href="https://www.microsoftelearning.com/visualstudio2005/#upgradingfromVB60"&gt;https://www.microsoftelearning.com/visualstudio2005/#upgradingfromVB60&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Also, don't forget to check out the free training videos for VB.NET Express Edition. They provide a great starting point for anyone looking to break into the Visual Basic .NET market.&lt;/P&gt;

&lt;P&gt;&lt;A href="http://msdn.microsoft.com/vstudio/express/vb/learning/" mce_href="http://msdn.microsoft.com/vstudio/express/vb/learning/"&gt;http://msdn.microsoft.com/vstudio/express/vb/learning/&lt;/A&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/TAAkYFP3bCU/Online-Training-Upgrade-from-VB-60-to-VBNET-and-Absolute-Beginners-Guide-to-VBNET-Express-Edition</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Online-Training-Upgrade-from-VB-60-to-VBNET-and-Absolute-Beginners-Guide-to-VBNET-Express-Edition</guid>
            <pubDate>Mon, 15 May 2006 01:05:00 GMT</pubDate>
            <category>VisualBasic</category>
            <category>VB6</category>
            <category>Migration</category>
        <feedburner:origLink>http://tobint.com/Blog/Online-Training-Upgrade-from-VB-60-to-VBNET-and-Absolute-Beginners-Guide-to-VBNET-Express-Edition</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>What technology actually improves your life?</title>
            <description>&lt;P&gt;Nearly a year ago, I &lt;A href="http://codemilitia.com/blogs/tobin.titus/archive/2005/06/22/52.aspx" mce_href="http://codemilitia.com/blogs/tobin.titus/archive/2005/06/22/52.aspx"&gt;blogged&lt;/A&gt; about the fact that I had no "cool" technologies in my house.&amp;nbsp; I didn't own a single gadget that anyone would consider to be "up to date" by any standard. I didn't own a PDA, a laptop, or even a modern cell-phone.&amp;nbsp; I didn't have flat-panel monitors or anything other than a standard 27" television -- with a broken power button at that.&amp;nbsp; I had several computers in the house, but all of them were at least a year and a half old -- with the exception of my wife's gaming system.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;I decided after posting that complaint that things were going to change.&amp;nbsp; I released my death grip on my cash that I had been hording and sprung for a new, improved, gadget-savvy image.&lt;/P&gt;

&lt;P&gt;Flash forward to today -- 11 months after that post.&amp;nbsp; As I got ready to head into work, I closed up my &lt;A href="http://h10025.www1.hp.com/ewfrf/wc/product?product=500253&amp;amp;lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;lang=en&amp;amp;cc=us" mce_href="http://h10025.www1.hp.com/ewfrf/wc/product?product=500253&amp;amp;lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;lang=en&amp;amp;cc=us"&gt;17" widescreen HP media center ready laptop&lt;/A&gt; and turned off my &lt;A href="http://h10025.www1.hp.com/ewfrf/wc/product?product=391153&amp;amp;lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;cc=us&amp;amp;lang=en#" mce_href="http://h10025.www1.hp.com/ewfrf/wc/product?product=391153&amp;amp;lc=en&amp;amp;cc=us&amp;amp;dlc=en&amp;amp;cc=us&amp;amp;lang=en#"&gt;HP printer/copier/fax&lt;/A&gt;.&amp;nbsp; I packed up my &lt;A href="http://gateway.com/products/gconfig/prodhmseries.asp?seg=hm&amp;amp;gcseries=gtwycx200&amp;amp;clv=LNav" mce_href="http://gateway.com/products/gconfig/prodhmseries.asp?seg=hm&amp;amp;gcseries=gtwycx200&amp;amp;clv=LNav"&gt;Gateway Tablet PC&lt;/A&gt; and shoved it into my Microsoft backpack along with my &lt;A href="http://www.apple.com/ipod/specs.html" mce_href="http://www.apple.com/ipod/specs.html"&gt;60GB video iPod&lt;/A&gt;, assorted USB flashdrives, bluetooth adapters, folding headphones, and the like.&amp;nbsp; I strapped my &lt;A href="http://www.nikonusa.com/template.php?cat=1&amp;amp;grp=2&amp;amp;productNr=25539" mce_href="http://www.nikonusa.com/template.php?cat=1&amp;amp;grp=2&amp;amp;productNr=25539"&gt;8.1 MegaPixel Nikon digital camera&lt;/A&gt; and &lt;A href="http://www.amazon.com/gp/product/B0009LP6O0/002-4345554-6790407?v=glance&amp;amp;n=301185" mce_href="http://www.amazon.com/gp/product/B0009LP6O0/002-4345554-6790407?v=glance&amp;amp;n=301185"&gt;Audiovox Smart Phone&lt;/A&gt; to my belt.&amp;nbsp; I put my &lt;A href="http://motorola.digitalriver.com/DRHM/servlet/ControllerServlet?Action=DisplayProductDetailsPage&amp;amp;SiteID=motostor&amp;amp;Locale=en_US&amp;amp;Env=BASE&amp;amp;productID=36061500" mce_href="http://motorola.digitalriver.com/DRHM/servlet/ControllerServlet?Action=DisplayProductDetailsPage&amp;amp;SiteID=motostor&amp;amp;Locale=en_US&amp;amp;Env=BASE&amp;amp;productID=36061500"&gt;Motorola bluetooth hands-free headset&lt;/A&gt; on my ear.&amp;nbsp; I walked into the living room and turned off my &lt;A href="http://www.consumer.philips.com/consumer/catalog/catalog.jsp?fhquery=fh_secondid%3D50pf7220a_37_us_consumer%26fh_location%3D%2F%2Fconsumer%2Fen_US%2Fcategories%3Ccatalog_us_consumer%2Fcategories%3Ctv_gr_us_consumer%2Fcategories%3Cflat_tv_ca_us_consumer%26&amp;amp;productId=50PF7220A_37_US_CONSUMER&amp;amp;activeCategory=FLAT_TV_CA_US_CONSUMER&amp;amp;fredhopperpage=detail.jsp&amp;amp;activeTab=specifications&amp;amp;language=en&amp;amp;country=US&amp;amp;catalogType=CONSUMER" mce_href="http://www.consumer.philips.com/consumer/catalog/catalog.jsp?fhquery=fh_secondid%3D50pf7220a_37_us_consumer%26fh_location%3D%2F%2Fconsumer%2Fen_US%2Fcategories%3Ccatalog_us_consumer%2Fcategories%3Ctv_gr_us_consumer%2Fcategories%3Cflat_tv_ca_us_consumer%26&amp;amp;productId=50PF7220A_37_US_CONSUMER&amp;amp;activeCategory=FLAT_TV_CA_US_CONSUMER&amp;amp;fredhopperpage=detail.jsp&amp;amp;activeTab=specifications&amp;amp;language=en&amp;amp;country=US&amp;amp;catalogType=CONSUMER"&gt;50" Plasma TV&lt;/A&gt; and shoved the &lt;A href="http://www.xbox.com/en-US/hardware/x/xbox360wirelesscontroller/default.htm" mce_href="http://www.xbox.com/en-US/hardware/x/xbox360wirelesscontroller/default.htm"&gt;wireless controllers&lt;/A&gt; for my &lt;A href="http://www.consumer.philips.com/consumer/catalog/catalog.jsp?fhquery=fh_secondid%3D50pf7220a_37_us_consumer%26fh_location%3D%2F%2Fconsumer%2Fen_US%2Fcategories%3Ccatalog_us_consumer%2Fcategories%3Ctv_gr_us_consumer%2Fcategories%3Cflat_tv_ca_us_consumer%26&amp;amp;productId=50PF7220A_37_US_CONSUMER&amp;amp;activeCategory=FLAT_TV_CA_US_CONSUMER&amp;amp;fredhopperpage=detail.jsp&amp;amp;activeTab=specifications&amp;amp;language=en&amp;amp;country=US&amp;amp;catalogType=CONSUMER" mce_href="http://www.consumer.philips.com/consumer/catalog/catalog.jsp?fhquery=fh_secondid%3D50pf7220a_37_us_consumer%26fh_location%3D%2F%2Fconsumer%2Fen_US%2Fcategories%3Ccatalog_us_consumer%2Fcategories%3Ctv_gr_us_consumer%2Fcategories%3Cflat_tv_ca_us_consumer%26&amp;amp;productId=50PF7220A_37_US_CONSUMER&amp;amp;activeCategory=FLAT_TV_CA_US_CONSUMER&amp;amp;fredhopperpage=detail.jsp&amp;amp;activeTab=specifications&amp;amp;language=en&amp;amp;country=US&amp;amp;catalogType=CONSUMER"&gt;Xbox 360&lt;/A&gt; under the TV stand.&amp;nbsp; I walked out to my car and looked at the windshield cluttered with an &lt;A href="http://shop.xmradio.com/detail.aspx?pid=120&amp;amp;cat=8" mce_href="http://shop.xmradio.com/detail.aspx?pid=120&amp;amp;cat=8"&gt;XM SkyFi2 satelite radio&lt;/A&gt;, a &lt;A href="http://shop.sirius.com/edealinv/servlet/ExecMacro?nurl=control/StoreItem.vm&amp;amp;ctl_nbr=2640&amp;amp;siId=608426&amp;amp;catLevel=1&amp;amp;scLevel=0&amp;amp;thisCatLevel=&amp;amp;oldParentID=7870&amp;amp;catParentID=7870&amp;amp;scId=7875" mce_href="http://shop.sirius.com/edealinv/servlet/ExecMacro?nurl=control/StoreItem.vm&amp;amp;ctl_nbr=2640&amp;amp;siId=608426&amp;amp;catLevel=1&amp;amp;scLevel=0&amp;amp;thisCatLevel=&amp;amp;oldParentID=7870&amp;amp;catParentID=7870&amp;amp;scId=7875"&gt;Sirius satelite radio&lt;/A&gt;, and a &lt;A href="http://www.microsoft.com/streets/ProductDetails.aspx?pid=001" mce_href="http://www.microsoft.com/streets/ProductDetails.aspx?pid=001"&gt;Microsoft Streets and Trips GPS device&lt;/A&gt;.&amp;nbsp; Now, I say all of this to point out that&amp;nbsp;I've gone from one extreme to another and at no small expense.&amp;nbsp; I sometimes wonder if I should have just hung onto my cash, but in other instances, I really enjoy my products.&lt;/P&gt;

&lt;P&gt;I asked myself as I traveled to work this morning "Have I gotten my money's worth out of these devices? Have they made my life better -- or just more expensive?"&amp;nbsp; It seems that many of today's top technological gadgets are great at overcoming technological problems, but do they really enrich our lives?&amp;nbsp; My Smartphone is one device that I just couldn't live without.&amp;nbsp; I keep track of my appointments, birthdays, phone numbers and so much more on that little thing.&amp;nbsp; I also keep a copy of Microsoft Pocket Streets and Trips on there -- which is a great little tool for getting around.&amp;nbsp; There is no question that this device makes my life easier in today's society that requires that I know how to contact any number of people, keep track of appointments and schedules that change every hour, or keep me up to date with birthdays of family members all the way on the other side of the country.&amp;nbsp; My camera is great. Photos are so hard for me to keep track of.&amp;nbsp; I keep a few but they are usually buried in boxes that I have to dig for if I want to view them again.&amp;nbsp; I can snap pictures of the mountains out here in the Pacific Northwest and immediately send them to my parents.&amp;nbsp; The camera is a great addition to my "technical family." That said -- there are other devices that just seem to be excessive (Who needs XM &lt;EM&gt;and&lt;/EM&gt; Sirius &lt;EM&gt;and&lt;/EM&gt; an iPod?&amp;nbsp; Could I do without them? Most likely.)&lt;/P&gt;

&lt;P&gt;I could go on and on talking about my devices.&amp;nbsp; Instead, I'd like to hear from you.&amp;nbsp; What technologies have made your life better?&amp;nbsp; These could be services, pieces of hardware, or even websites in general.&amp;nbsp; I want to know what technologies make a difference in your everyday life and what technologies have you invested your hard-earned money into that haven't been worth it.&amp;nbsp; &lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/j1tcUIWK_VA/What-technology-actually-improves-your-life</link>
            <guid isPermaLink="false">http://tobint.com/Blog/What-technology-actually-improves-your-life</guid>
            <pubDate>Mon, 15 May 2006 00:00:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/What-technology-actually-improves-your-life</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Mort, Elvis and Einstein don't exist</title>
            <description>&lt;P&gt;&lt;A href="http://wesnerm.blogs.com/net_undocumented/2003/09/who_are_you_mor.html" mce_href="http://wesnerm.blogs.com/net_undocumented/2003/09/who_are_you_mor.html"&gt;Much&lt;/A&gt; &lt;A href="http://www.nikhilk.net/Personas.aspx" mce_href="http://www.nikhilk.net/Personas.aspx"&gt;has&lt;/A&gt; &lt;A href="http://www.bbits.co.uk/blog/archive/2004/01/15/167.aspx" mce_href="http://www.bbits.co.uk/blog/archive/2004/01/15/167.aspx"&gt;been&lt;/A&gt; &lt;A href="http://donxml.com/allthingstechie/archive/2004/03/05/466.aspx" mce_href="http://donxml.com/allthingstechie/archive/2004/03/05/466.aspx"&gt;said&lt;/A&gt; about the Mort, Elvis and Einstein controversy over the past few years (yes, years).&amp;nbsp; The past few days have been no exception.&amp;nbsp; One of our &lt;A href="http://codebetter.com/blogs/scott.bellware/archive/2006/04/25/143303.aspx" mce_href="http://codebetter.com/blogs/scott.bellware/archive/2006/04/25/143303.aspx"&gt;MVPs&lt;/A&gt; is apparently upset about them, and apparently &lt;A href="http://scobleizer.wordpress.com/2006/04/25/ethically-bankrupt-personas/" mce_href="http://scobleizer.wordpress.com/2006/04/25/ethically-bankrupt-personas/"&gt;some employees&lt;/A&gt; are not too happy about it either.&amp;nbsp; I've waited several days to comment until the screaming stopped.&amp;nbsp; Now that it has, it's my turn to weigh in.&amp;nbsp; Most of this content about this topic is completely off-base and unfounded.&amp;nbsp; "Why?", you might ask.&amp;nbsp; That's because Mort, Elvis, and Einstein don't exist.&amp;nbsp; That's right, there is no one person on this planet that is meant to be exhibited by these personas.&amp;nbsp; The names depicted here are meant to represent behaviors --&amp;nbsp;not people.&amp;nbsp; Trying to pigeon-hole people into one of these areas is just a misrepresentation of what the persona was meant to portray.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;Mort is not a VB developer, Elvis is not a C# developer, and Einstein is not a C++ developer.&amp;nbsp; Sure, the personas use these analogies because they do fairly closely resemble&amp;nbsp;a&amp;nbsp;large&amp;nbsp;stereotypical audience, but it doesn't "fit" to anyone. Then again, no description fits&amp;nbsp;more than one developer.&amp;nbsp; These personas don't drive features and they don't do anything but serve as reminders that we have different types of developers who need different types of features, documentation, and applications.&amp;nbsp; Don't think this is true?&amp;nbsp; Ask the average VB developer what a thread is and they may get the "word for word" answer, but a large part of that audience never has wanted to understand the intricate details of thread local storage, differences between the stack and the heap and &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=9756&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=9756&amp;amp;SiteID=1"&gt;why&lt;/A&gt; &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=340347&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=340347&amp;amp;SiteID=1"&gt;those&lt;/A&gt; are important in the context of application development.&amp;nbsp; Does that mean that all VB developers don't care about threading? NO. Once again, there is plenty of evidence that ei&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=60994&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=60994&amp;amp;SiteID=1"&gt;nsteins exist in the VB community&lt;/A&gt; as well&amp;nbsp; -- "Einsteins" meaning people who want detail!&amp;nbsp; Mort behaviors&amp;nbsp;exist in the C++ community as well. I'm one of the people have have a mort mentality with C++. I know so little about C++ I'm amazed I'm allowed to breath the same air as the folks here at Microsoft.&amp;nbsp; That, indeed, is the Mort side of me.&lt;/P&gt;

&lt;P&gt;Several people have asked "Why are there no definitions for these from Microsoft." And they are hopping mad about it!&amp;nbsp; Quite frankly, its because the personas were not meant to be public information.&amp;nbsp; They were used to help mold and categorize functionality internally, and nothing more.&amp;nbsp; Because of that, the actual documents for these personas are not available externally.&amp;nbsp;&amp;nbsp; If they were, they would also likely be taken out of context.&lt;/P&gt;

&lt;P&gt;That said, this won't be the last discussion about these fictional characters.&amp;nbsp; I imagine we'll be hearing about them for some time.&amp;nbsp; Just remember to take everything you hear with a grain of salt, and if you think the way we construct software is wrong, by all means RESPOND!&amp;nbsp; Speak up, tell us how you would approach it. Better yet, &lt;A href="http://www.microsoft.com/careers" mce_href="http://www.microsoft.com/careers"&gt;apply &lt;/A&gt;to the team that interests you most and come implement those changes yourself!&amp;nbsp; &lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/Y9UYHV4NSqI/Mort-Elvis-and-Einstein-dont-exist</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Mort-Elvis-and-Einstein-dont-exist</guid>
            <pubDate>Mon, 01 May 2006 20:44:27 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Mort-Elvis-and-Einstein-dont-exist</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Free Training CDs from AppDev</title>
            <description>&lt;P&gt;AppDev is apparently giving away free training CDs.&amp;nbsp; I have not personally seen the training, but free is not typically a trait in a product that I hate, so AppDev already "has me at hello" with this offer!&lt;BR&gt;&lt;A href="http://www.appdev.com/promo.asp?page=SN00009" mce_href="http://www.appdev.com/promo.asp?page=SN00009"&gt;http://www.appdev.com/promo.asp?page=SN00009&lt;/A&gt;&lt;/P&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/C2eX0fW3d94/Free-Training-CDs-from-AppDev</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Free-Training-CDs-from-AppDev</guid>
            <pubDate>Mon, 01 May 2006 09:20:35 GMT</pubDate>
            <category>resources</category>
        <feedburner:origLink>http://tobint.com/Blog/Free-Training-CDs-from-AppDev</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>What's wrong with MSDN documentation? (and what's right?)</title>
            <description>&lt;P&gt;A large part of my job at Microsoft is to provide developers with the knowledge they need to make use of the IIS 7.0 SDK.&amp;nbsp; While the information about IIS 7.0 is not out yet for review, there are plenty of docs provided in other areas, such as the .NET Framework SDK and ASP.NET sections, which can be used as a benchmark.&amp;nbsp;&amp;nbsp; In order to make the IIS 7.0 SDK a success, we must do more than just put out a good product. We must also describe how to use it properly or it just will not be used.&amp;nbsp; So I pose a question to anyone who has ever looked something up in MSDN, what is wrong with the documentation you have used so far?&amp;nbsp; What is good about it?&amp;nbsp; What would you like to see to a greater/lesser extent in our documentation?&amp;nbsp;&amp;nbsp; Feel free to flame us, or praise us.&amp;nbsp; If you have suggestions, comments, or ideas, feel free to express them here. &lt;/P&gt;

&lt;P&gt;Your feedback will help me understand how to increase your satisfaction with MSDN and Microsoft in general.&lt;/P&gt;

&lt;P&gt;Or better yet, if you have some desire to play with new technology that isn't documented yet and provide that content to a worldwide audience, why not &lt;A href="http://members.microsoft.com/careers/search/results.aspx?FromCP=Y&amp;amp;JobCategoryCodeID=&amp;amp;JobLocationCodeID=1&amp;amp;JobProductCodeID=&amp;amp;JobTitleCodeID=10261&amp;amp;Divisions=&amp;amp;TargetLevels=&amp;amp;Keywords=%20&amp;amp;JobCode=&amp;amp;ManagerAlias=&amp;amp;Interval=10" mce_href="http://members.microsoft.com/careers/search/results.aspx?FromCP=Y&amp;amp;JobCategoryCodeID=&amp;amp;JobLocationCodeID=1&amp;amp;JobProductCodeID=&amp;amp;JobTitleCodeID=10261&amp;amp;Divisions=&amp;amp;TargetLevels=&amp;amp;Keywords=%20&amp;amp;JobCode=&amp;amp;ManagerAlias=&amp;amp;Interval=10"&gt;apply&lt;/A&gt;?&amp;nbsp; &lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/BqqI5VSasU0/Whats-wrong-with-MSDN-documentation-and-whats-right</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Whats-wrong-with-MSDN-documentation-and-whats-right</guid>
            <pubDate>Fri, 28 Apr 2006 14:17:17 GMT</pubDate>
            <category>IIS</category>
            <category>SDK</category>
        <feedburner:origLink>http://tobint.com/Blog/Whats-wrong-with-MSDN-documentation-and-whats-right</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Threading issue with VB.NET Default Instances</title>
            <description>&lt;P&gt;Here is an issue that showed up for one of our customers in the Microsoft forums for Visual Basic .NET.&amp;nbsp; It is NOT the typical ”cross-threaded UI update” issue that you might think. No, this one, IMO, is slightly harder to catch since no exception is thrown to let you know something has gone wrong.&lt;/P&gt;

&lt;P&gt;One of the many new features of Visual Basic .NET are &lt;A href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/LanguageEnhancements.asp#languageenhancements_topic16" mce_href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/LanguageEnhancements.asp#languageenhancements_topic16"&gt;default form instances&lt;/A&gt;.&amp;nbsp; As the feature lists explain, a default form instance prevents you from having to "new up" an instance of a form before acting on it.&amp;nbsp; So, instead of using:&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;  Dim frm As New frmMain
  frm.Show()&lt;/PRE&gt;
&lt;P&gt;I can simply use:&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;  frmMain.Show()&lt;/PRE&gt;
&lt;P&gt;This is handy, particularly for the folks coming from VB6 who are used to forms that behave in this manner.&amp;nbsp; However, default instances present a very interesting problem.&lt;/P&gt;

&lt;P&gt;Take, for instance, a project that I create with a form (named frmMain) and a module (named BackgroundMethods.vb) .&amp;nbsp; For the form, I have&amp;nbsp;simply added a multi-line text box (named txtOutput) and a button control (named button1).&amp;nbsp; &lt;/P&gt;

&lt;P&gt;Here is the code I have in my project:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;[frmMain]&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;Imports System.Threading

Public Class frmMain
  Private Sub Button1_Click( ByVal sender As System.Object, _
                             ByVal e As System.EventArgs) _
                             Handles Button1.Click
     Dim t As Thread = New Thread(AddressOf GetData)
     t.Start()
     txtOutput.Text &amp;amp;= "Updates complete"
     ' Break after the call above to read the value
     ' in txtOutput.Text
  End Sub
End Class&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;[BackgroundMethods.vb]&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;Imports System.Threading
Module BackgroundMethods
   Public Sub GetData()
      WaitForData("Message 1")
      WaitForData("Message 2")
   End Sub
   Public Sub WaitForData(ByVal strMessage As String)
      ' Presumably this method would actually be 
      ' waiting for data from a network connection,&amp;lt;
      ' serial port, or other source
      Thread.Sleep(2000)
      My.Forms.frmMain.txtOutput.Text &amp;amp;= (vbCrLf &amp;amp; Now().ToShortTimeString() &amp;amp; _
      vbTab &amp;amp; strMessage)
      ' Break after the call above to read the value
      ' in My.Forms.frmMain.txtOutput.Text
   End Sub
End Module&lt;/PRE&gt;
&lt;P&gt;So the simple example is that I have a button which, when clicked, will execute&amp;nbsp;the "GetData"&amp;nbsp;method asynchronously in a module.&amp;nbsp; That method is going to call the WaitForData method that updates the UI with two different messages ("message1" and "message2").&amp;nbsp; WaitForData is supposed to simulate a long-running process, so I threw in the typical "thread.sleep" call to make this illusion.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;If you run this code, you will notice that no exceptions are thrown, but the UI for your form is also not updated.&amp;nbsp; Why is this?&amp;nbsp; You would have at least expected a cross-thread exception, right?&lt;/P&gt;

&lt;P&gt;In any other managed language, this likely wouldn't happen -- namely because the "My" application is specific to VB, as well as default form instances!&amp;nbsp; In C#, if I try to update the UI from another thread, I would get an exception stating: "Cross-thread operation not valid: Control 'txtSerialIn' accessed from a thread other than the thread it was created on." which could be solved by using the "Invoke" method.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;

&lt;P&gt;The issue with Visual Basic, in this instance, is that the default form instances are thread-specific.&amp;nbsp; So, when I try to access the form using My.Forms.frmMain from within the worker thread, a &lt;STRONG&gt;&lt;EM&gt;NEW&lt;/EM&gt;&lt;/STRONG&gt; default instance is created under the covers.&amp;nbsp;&amp;nbsp;My calls to update the text box are then executed on the NEW instance of the form which resides in the same thread as the call to update it -- hence it doesn't throw a cross-thread exception. In the mind of the VB program, the request to update the textbox occurred without an error.&amp;nbsp; When the worker thread dies, the second instance of the form (which was never displayed) is now a candidate for garbage collection.&amp;nbsp; Meanwhile, back on the original thread and original form the textbox is left blank.&amp;nbsp; You can validate this by running the program (I have attached sample code to this blog post) and setting breakpoints on the textbox update line in the WaitForData method, and in the last line of the button1_click event handler of the code.&amp;nbsp; You will notice that after the second call to WaitForData (before the debugger exits the Sub) that My.Forms.frmMain.txtOutput.Text has been properly set to the value you expected.&amp;nbsp; However, remember that this is on a second background instance of the form, not the original one you expected.&amp;nbsp; Once the debugger hits the last line in the button1_click event handler, read the value of txtOutput.Text and realize THAT instance of the textbox was never updated.&lt;/P&gt;

&lt;P&gt;So what is&amp;nbsp;the solution?&lt;/P&gt;

&lt;P&gt;First off, you still have to use the "&lt;A href="http://codemilitia.com/blogs/tobin.titus/archive/2005/04/10/12.aspx" mce_href="http://codemilitia.com/blogs/tobin.titus/archive/2005/04/10/12.aspx"&gt;Invoke solution&lt;/A&gt;" that is often times bandied about in threading discussions.&amp;nbsp; To do this in VB.NET (and particularly in our solution), do the following:&lt;/P&gt;

&lt;P&gt;1. Add the following code to the top of your BackgroundMethods.vb file:&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;        Delegate Sub UpdateTextHandler(ByVal strMessage As String)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows you to create a delegate that can be invoked on the UI.&lt;/P&gt;

&lt;P&gt;2. Add the following method to your frmMain file:&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;    Public Sub UpdateTextMethod(ByVal strMessage As String)
       txtOutput.Text &amp;amp;= (vbCrLf &amp;amp; Now().ToShortTimeString() &amp;amp; vbTab &amp;amp; strMessage)
    End Sub&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This creates the method that will actually be executed via your delegate &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from the worker thread.&lt;/P&gt;

&lt;P&gt;3.&amp;nbsp;Change your WaitForData method as follows:&lt;/P&gt;
&lt;PRE style="WIDTH: 100%; BACKGROUND-COLOR: #c0c0c0"&gt;    Public Sub WaitForData(ByVal strMessage As String)
        ' Presumably this method would actually be 
        ' waiting for data from a network connection
        ' serial port, or other source
        Thread.Sleep(2000)
        Dim f As frmMain = My.Application.OpenForms("frmMain")
        f.Invoke(New UpdateTextHandler(AddressOf f.UpdateTextMethod), _  
                 New Object() {strMessage})
    End Sub&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; This method now uses the form's "Invoke" method (actually defined in&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control)&amp;nbsp;to execute UpdateTextMethod on the original form via the&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UpdateTextHandler delegate.&lt;/P&gt;

&lt;P&gt;So what is happening is that your new thread is getting an instance to the existing&amp;nbsp;frmMain instance by going through the OpenForms call.&amp;nbsp; Once I have that instance, I can invoke a delegate that points to the "UpdateTextMethod" of the existing form (&amp;nbsp;passing in the message in the object array ).&amp;nbsp; By invoking, I am able to get back on the UI's thread and that call can execute any updates to the UI that it wishes.&lt;/P&gt;

&lt;P&gt;Keep this in mind the next time you are not receiving errors and your UI isn't getting updated how you would expect -- particularly if you code communicates with the network, a serial device, or other device which communicates asynchronously.&lt;/P&gt;
&lt;PRE&gt;&lt;/PRE&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/8Z_Rh-1C9jU/Threading-issue-with-VBNET-Default-Instances</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Threading-issue-with-VBNET-Default-Instances</guid>
            <pubDate>Tue, 11 Apr 2006 17:40:55 GMT</pubDate>
            <category>VisualBasic</category>
            <category>VB6</category>
            <category>Threading</category>
            <category>Migration</category>
        <feedburner:origLink>http://tobint.com/Blog/Threading-issue-with-VBNET-Default-Instances</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Free Microsoft Press Book: Introducing Microsoft Visual Basic 2005 for Developers</title>
            <description>&lt;P&gt;Microsoft has a free book available for download for anyone who wants it.&amp;nbsp; Download the whole book, or download it chapter-by-chapter (8 in all).&amp;nbsp; Check it out at &lt;A href="http://msdn.microsoft.com/vbasic/learning/introtovb2005/" mce_href="http://msdn.microsoft.com/vbasic/learning/introtovb2005/"&gt;http://msdn.microsoft.com/vbasic/learning/introtovb2005/&lt;/A&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/49HKPuYU53g/Free-Microsoft-Press-Book-Introducing-Microsoft-Visual-Basic-2005-for-Developers</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Free-Microsoft-Press-Book-Introducing-Microsoft-Visual-Basic-2005-for-Developers</guid>
            <pubDate>Tue, 04 Apr 2006 10:25:07 GMT</pubDate>
            <category>VisualBasic</category>
            <category>VB6</category>
            <category>Migration</category>
        <feedburner:origLink>http://tobint.com/Blog/Free-Microsoft-Press-Book-Introducing-Microsoft-Visual-Basic-2005-for-Developers</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Debugging Resources</title>
            <description>&lt;P&gt;It is my opinion that the difference between good developers and outstanding ones are the way that they debug applications. As such, I wanted to point you to some great debugging resources to get you well on your way to standing with the outstanding developers.&lt;/P&gt;

&lt;P&gt;First off, there is the issue of understanding Windows to begin with that get a lot of people in trouble.&amp;nbsp; Many issues can be traced down to something that is "working as designed". As such, I highly recommend the Microsoft &lt;A href="http://www.microsoft.com/MSPress/books/6710.asp" mce_href="http://www.microsoft.com/MSPress/books/6710.asp"&gt;Windows Internals &lt;/A&gt;book from MS Press.&amp;nbsp; This book will give you a great understanding of how Windows works.&amp;nbsp; Next, I would brush up on .NET debugging skills. To do so,&amp;nbsp; I recommend a .NET 2003 book, but most of the debugging skills still apply to 2005, so don't be dismayed by the title: &lt;A href="http://www.microsoft.com/mspress/books/5822.asp" mce_href="http://www.microsoft.com/mspress/books/5822.asp"&gt;Debugging Applications for Microsoft .NET and Windows&lt;/A&gt;. Once again, John Robbins from Wintellect writes one awesome book. &lt;/P&gt;

&lt;P&gt;Well, books are great, but what about free resources?&amp;nbsp; I have some of those too!&lt;/P&gt;

&lt;P&gt;First, you can check out the windows debugging website at:&lt;BR&gt;&lt;A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx" mce_href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;Then there are a new series of webcasts that have just been released in the past week or so dealing with the very issue of debugging:&lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290844%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290844%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;TechNet Webcast: Microsoft.com Operations Introduces Real World Debugging: Determining When You Have a Problem and Beginning the Initial Debugging (Level 300)&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290859%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290859%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;TechNet Webcast: Microsoft.com Operations Introduces Real World Debugging: Debugging CLR Internals&lt;/A&gt; &lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290862%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290862%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;TechNet Webcast: Microsoft.com Operations Introduces Real World Debugging: Diagnosing Memory Leaks in ASP.NET Applications (Level 300) &lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290866%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290866%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;TechNet Webcast: Microsoft.com Operations Introduces Real World Debugging: How to Tackle Problems in Dynamically Generated Assemblies (Level 300)&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290870%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e" mce_href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032290870%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;TechNet Webcast: Microsoft.com Operations Introduces Real World Debugging: Debugging Without the Debugger in IIS and ASP.NET (Level 300)&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;OK. So maybe I did not have a TON of debugging resources, but this is a great start for anyone who wants to make himself or herself into an outstanding SDE or SDET. So go work yourself into a "debugging guru".&amp;nbsp; By the time you are done, hopefully &lt;/SPAN&gt;&lt;A href="http://www.microsoft.com/MSPress/books/8650.asp" mce_href="http://www.microsoft.com/MSPress/books/8650.asp"&gt;John Robbins' new book&lt;/A&gt; on debugging will be out.&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/lik80Qx_b4I/Debugging-Resources</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Debugging-Resources</guid>
            <pubDate>Tue, 04 Apr 2006 09:25:18 GMT</pubDate>
            <category>debugging</category>
        <feedburner:origLink>http://tobint.com/Blog/Debugging-Resources</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>202 VB.NET Samples</title>
            <description>&lt;p&gt;I just wanted to bring some attention to a resource that I think is extremely valuable for VB developers (and really, any .NET developer using any other language for that matter).&amp;nbsp; MSDN has a website with &lt;A href="http://msdn.microsoft.com/vbasic/downloads/code/101samples/" mce_href="http://msdn.microsoft.com/vbasic/downloads/code/101samples/"&gt;101 Code Samples for VB.NET 2005&lt;/A&gt;.&amp;nbsp; There is also another website for those of you that haven't upgraded to 2005 yet: &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=08e3d5f8-033d-420b-a3b1-3074505c03f3&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=08e3d5f8-033d-420b-a3b1-3074505c03f3&amp;amp;displaylang=en"&gt;101 Code Samples for VB.NET 2003&lt;/A&gt;.&amp;nbsp; Both of these sites have very valuable sample code for doing things such as network programming, using regular expressions, executing transactions, handling/changing ACL’s on files, accessing data, performing bulk data transactions, executing asynchronous operations (one of my favorite topics), using ClickOnce, creating ASP.NET pages and more!&amp;nbsp; It is a great resource for those of you that just want to get it done and don't want to waste a lot of time reading specifications on each class in System.Net or System.Data.&amp;nbsp; The samples are robust and provide some great starting points for anyone interested in the many topics available in these samples.&amp;nbsp; Check them out and let me know what you think!&lt;/p&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/ZmWfWFmcZ2g/202-VBNET-Samples</link>
            <guid isPermaLink="false">http://tobint.com/Blog/202-VBNET-Samples</guid>
            <pubDate>Mon, 03 Apr 2006 16:33:00 GMT</pubDate>
            <category>VisualBasic</category>
            <category>VB6</category>
            <category>Migration</category>
        <feedburner:origLink>http://tobint.com/Blog/202-VBNET-Samples</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>XBOX 360</title>
            <description>&lt;P&gt;On my way home from work Friday, I stopped by a local game store had a few 360 consoles in stock.&amp;nbsp; This just a short time after it was announced that shipments would be stepping up for the console. So, I bought myself a premium console and headed over to the Microsoft store and bought Kameo.&amp;nbsp; I then headed home with a giddy little grin on my face.&amp;nbsp; On the way home, I stopped at yet another game store and bought Ghost Recon and Fight Night.&amp;nbsp; &lt;/P&gt;

&lt;P&gt;When I got home, I started feverishly hooking the console up.&amp;nbsp; I realized quickly that I didn't have enough power outlets at my entertainment center to plug in the 360 so I started running around the house looking for a power strip to plug all of my other devices into (the 360 should not be plugged into a surge protector).&amp;nbsp; Since we&amp;nbsp; JUST moved to the Northwest&amp;nbsp; all of our stuff is still mostly packed in boxes. I had paper and cardboard flying everywhere while looking for this strip! At last: I found one!&amp;nbsp; "I'll clean up the mess later," I thought as I rushed back into the living room to finish the setup. &lt;BR&gt;I turned the console on and changed the television to channel 3 and then 4 -- an obvious habit I had from the last console I owned so many years ago (Nintendo -- nope, not 64, not DS -- just plain old Nintendo).&amp;nbsp; I finally got everything set up right and then I saw it -- the Xbox 360 console -- right there on my TV.&amp;nbsp; I could curl up to this thing at night for warmth -- I'm sure of it.&lt;/P&gt;

&lt;P&gt;I've already been playing so much longer than I ever expected.&amp;nbsp; I've already got a list of friends hooked up in my console and have already played a few rounds (and lost many) of Fight Night.&amp;nbsp; I love this game and I can already tell that I need to apply some time management skills to keep me productive.&amp;nbsp; If you haven't played Fight Night yet, let me explain.&amp;nbsp; This game lets you build your own fighter. You can control his stats, his clothes, his skills and even his look.&amp;nbsp; That's right, when you build your fighter, you can control every aspect of his looks -- cheek shape / size, skull shape/size, jaw shape/size, eye color/socket size, eye brows, facial hair, and more.&amp;nbsp; You can then add tattoos to the boxer's back, arms, and chest.&amp;nbsp; The amount of customization is unreal.&amp;nbsp; You can then start fighting and training your boxer up the ranks, all the while fighting great boxers like Ali, Frazier, Leonard, and more.&amp;nbsp; As you are fighting, the level of control is amazing and the detail in the graphics is fantastic.&amp;nbsp; I can lean back, block with one arm, two or even duck and cover. The conrol is 100% up to me -- no preset motions that limit your ability to create your own fighting style. Jab left then Haymaker right.&amp;nbsp; Jab high right, jab low and left, jab low left, uppercut right, parry, counter haymaker!&amp;nbsp; It’s indescribable!&amp;nbsp; I'm addicted already:&amp;nbsp; not good yet, but addicted!&lt;/P&gt;

&lt;P&gt;I then picked up Ghost Recon and tried playing that.&amp;nbsp; It’s really amazing how cool this game is, but honestly -- it's a lot harder for me to play this than anything else.&amp;nbsp; To explain, I've been a PC gamer for a while. I've played PC-based FPSes (First Person Shooters) since .. well Wolfenstein 3D.&amp;nbsp; I then moved on to games like Doom (1 and 3), Enemy Territory, Quake (1, 2, 3 4), Call of Duty, and Half Life. I've played them as single player. I've played them as multiplayer. I played in clans. I created trick jump videos and even got bored and started doing trick jump videos backwards.&amp;nbsp; Yes -- I'm no stranger to FPS gaming. But playing on a console is so much more... contrived.. harder.&amp;nbsp; In my opinion, the keyboard and mouse are the best controllers for an FPS. None-the-less, the game play itself is awesome.&amp;nbsp; I also like that being shot actually hurts the character -- and being shot in the right spot -- even with one shot is fatal.&amp;nbsp; This is contrary to a lot of older games that I played that just took your 'health' down with gun shots to the chest and head.&amp;nbsp; In any case, once I've mastered Fight Night, I'm definitely going to give this game another shot with a controller.&amp;nbsp; Note to XBOX 360 team -- allow mouse and keyboard controller input for games!&amp;nbsp; &lt;/P&gt;

&lt;P&gt;Kameo was ... different. I'm not used to playing games like this, and I honestly didn't put much time into it. The game is very cool looking. Kameo can change shape into a rolling spikey looking creature that can spin at high velocity toward monsters. She can also transform into a plant-like creature that is great at sneaking up on things. She can take the shape of a blue ape-like creature that can bash monsters and stick them to his back and use those monsters as weapons. More shapes are available later. It’s very... umm... interesting. Kameo herself can fly short little hops over obstacles.&amp;nbsp; This game appeals to my some but for me, I think I'll stick to the other two for now.&lt;/P&gt;

&lt;P&gt;The games themselves aren't the only thing that are cool.&amp;nbsp; I can connect my XBOX to my PC's in the house and use MP3's I have stored there as well as pictures and movies.&amp;nbsp; The only thing I wish is that I could continue playing those MP3s while I played Fight Night. I prefer my music to EA sports selection!&lt;BR&gt;This post was much longer than expected. But I couldn't help but share my enthusiasm about this machine.&amp;nbsp; For those that have stuck around a bit, I have some thoughts: If you buy one of these systems, consider buying the core system. You'll save $100 that you can spend on a 20GB&amp;nbsp; hard drive and a pair of headphones that feel good for you.&amp;nbsp; The ones included in the premium system aren’t that great and are cheaply made, IMHO.&amp;nbsp; Once again, I could just be spoiled from my previous online gaming headphones I use. Also, consider buying the wireless ethernet adapter, and some recharge kits for your controler(s).&amp;nbsp; All of this will cost a bit more, but will make your gaming experience better, IMO.&amp;nbsp; That's all for now. Happy gaming!&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/vkF6iOQKtuI/XBOX-360</link>
            <guid isPermaLink="false">http://tobint.com/Blog/XBOX-360</guid>
            <pubDate>Sun, 02 Apr 2006 13:04:00 GMT</pubDate>
            <category>welcome</category>
            <category />
            <category>msdn</category>
        <feedburner:origLink>http://tobint.com/Blog/XBOX-360</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Tobin.Swallow( Pills.Red );</title>
            <description>&lt;P&gt;Doing a &lt;A href="http://www.google.com/"&gt;google&lt;/A&gt; search for &lt;A href="http://www.google.com/search?hl=en&amp;q=%22red+pill%22+microsoft&amp;btnG=Google+Search"&gt;"red pill" and microsoft&lt;/A&gt; today yielded 55,700 hits.  That &lt;A href="http://search.msn.com/results.aspx?q=%22red+pill%22+microsoft&amp;FORM=QBHP"&gt;same search&lt;/A&gt; on &lt;A href="http://search.msn.com/"&gt;MSN search&lt;/A&gt; yields 14,433.  This term, and other variations, are often used on blogs when someone takes a job at &lt;A href="http://www.microsoft.com/careers/"&gt;Microsoft&lt;/A&gt;.  I would be naive to think that all of those hits are new employee announcements, but with these sort of numbers, I might have to buy some stock in a red-pill-manufacturing pharmaceutical company.  This particular post will increase the count on those searches by 1 and will be counted among the many search hits that ARE about taking a Microsoft job. &lt;/P&gt;
&lt;P&gt;Its my pleasure to announce that I will be packing up and moving to the Redmond, WA area to take a position with &lt;A href="http://www.microsoft.com/"&gt;Microsoft &lt;/A&gt;sometime at the beginning of March. The exact date hasn't been chosen yet but the offer has been made and accepted.&lt;/P&gt;
&lt;P&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2006/01/12/JoiningMicrosoft.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/kzjg4SE6UJY/TobinSwallow-PillsRed-</link>
            <guid isPermaLink="false">http://tobint.com/Blog/TobinSwallow-PillsRed-</guid>
            <pubDate>Fri, 13 Jan 2006 03:14:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/TobinSwallow-PillsRed-</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>MVP Award</title>
            <description>&lt;P&gt;I just got an email today stating that I was awarded a Microsoft MVP award.  This is an honor. In the past, this award was mainly given to the folks who posted a ton of replies to forums and newsgroups (whether the responses were right or wrong).  Microsoft has made a shift to try to reward people who do a lot of local work too.  I've been highly involved with the local code camps, user groups and the like. I'm very excited to receive this award and I look forward to continuing participation in the year ahead.&lt;/P&gt;
&lt;P&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2006/01/04/MSMVP.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/nO_EcNdUg0c/MVP-Award</link>
            <guid isPermaLink="false">http://tobint.com/Blog/MVP-Award</guid>
            <pubDate>Wed, 04 Jan 2006 23:54:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/MVP-Award</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Visual Studio 2005 Community Launch : Tools of the Trade</title>
            <description>&lt;P&gt;This year, I was asked to be the INETA community launch champion for my local user group.  Essentially, the job is to present at least two topics related to Visual Studio 2005 and/or SQL Server 2005 and/or BizTalk 2006.  I was honored to be picked for this role and have done my best to provide the best possible experience for those who come to listen.  This month's topic is "Managing the Software Development Life Cycle with Visual Studio 2005 Team System".  WOW!  Here's the blurb that the UG's sent out on this topic:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;"Today’s software projects have one consistent trait – they fail. They fail to meet budgets. They fail to meet deadlines. In many instances, they fail to even make it to implementation. In 2000, only a fraction of software projects succeeded. That rate did not get much better in 2004. Industry demands such as more complex business requirements, government regulations, and standardization of components will make success all the more challenging. In this presentation, we’ll explore how you can utilize the new tools found in Visual Studio Team Services to increase your own success track record. This presentation will show how requirements can be gathered early, managed, modified, tracked, and reported on all the way through the software development life cycle. Come see the powerful new tools that are provided for architects, developers, testers, project managers, business analysts, and even project stake holders!"&lt;/BLOCKQUOTE&gt;
&lt;P&gt;While its always a good thing to prepare for a meeting, I realized while sitting in my hotel room that there are quite a few tools that I use to give presentations.  I thought I might post pictures and informationa bout the tools I use so that others who are just getting started in their presentation careers can get a glimps into their future.&lt;/P&gt;
&lt;P&gt;
&lt;H2&gt;The Laptop&lt;/H2&gt;Its an HP Pavilion zd8000 series laptop that has been customized for the best performance I can get out of it. It has 2GB of ram, a 100 GB hard drive, Lightscribe DVD burner, and the like. I love this laptop because it has 4 USB ports (5 if you count the HP usb digital drive port), firewire, built in wireless, bluetooth, 5-1 media reader, built in speakers, and the list goes on. It even has a media remote control (meant for use with Windows Media Center Edition) that works very well for remotely moving forward and backward in powerpoint slides. Its a varitable swiss army knife of laptops and the kicker, of course, is the 17" widescreen LCD.&lt;BR&gt;&lt;BR&gt;
&lt;DIV style="WIDTH: 100%; align: center"&gt;&lt;IMG style="align: center" src="http://www.codemilitia.com/blogs/tobin.titus/images/articles/present/a_notebook.jpg" width=250&gt; &lt;/DIV&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/11/18/ToolsOfTheTrade.aspx"&gt;continued&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/eirNV7BNbfw/Visual-Studio-2005-Community-Launch--Tools-of-the-Trade</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Visual-Studio-2005-Community-Launch--Tools-of-the-Trade</guid>
            <pubDate>Fri, 18 Nov 2005 01:17:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Visual-Studio-2005-Community-Launch--Tools-of-the-Trade</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Microsoft Korean Promo for Visual Studio .NET 2005</title>
            <description>&lt;P&gt;&lt;FONT size=2&gt;OK. I don't really know how to react to &lt;A href="http://www.microsoft.com/korea/events/ready2005/vs_song.asp"&gt;this&lt;/A&gt;. &lt;/FONT&gt;&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/Sizo1hkqNDQ/Microsoft-Korean-Promo-for-Visual-Studio-NET-2005</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Microsoft-Korean-Promo-for-Visual-Studio-NET-2005</guid>
            <pubDate>Wed, 09 Nov 2005 21:59:00 GMT</pubDate>
        <feedburner:origLink>http://tobint.com/Blog/Microsoft-Korean-Promo-for-Visual-Studio-NET-2005</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>What part of conserve gas do you not understand?</title>
            <description>&lt;P&gt;Forgive the non-technical post and the language, but this has me a bit upset.&lt;/P&gt;
&lt;P&gt;There is nothing I hate more than to see millionaires complain about money problems. NASCAR is apparently &lt;A href="http://msn.foxsports.com/nascar/story/4826542"&gt;having some difficulty &lt;/A&gt;with their races due to the recent gas hike.  My favorite quote was:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;"We also are seeing it in our aircraft. Our charter company, because we charter our team planes, has given us an extra charge directly due to the raise in fuel costs."&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Well boo-f ' ing-who. &lt;/P&gt;
&lt;P dir=ltr&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/09/02/296.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/0up7xrWde5c/What-part-of-conserve-gas-do-you-not-understand</link>
            <guid isPermaLink="false">http://tobint.com/Blog/What-part-of-conserve-gas-do-you-not-understand</guid>
            <pubDate>Fri, 02 Sep 2005 16:42:00 GMT</pubDate>
            <category>Political</category>
        <feedburner:origLink>http://tobint.com/Blog/What-part-of-conserve-gas-do-you-not-understand</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Engineering for Reliability: What we can learn from a chair</title>
            <description>&lt;P&gt;The other day, I posted an article about &lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/08/12/280.aspx"&gt;Engeneering for Usability&lt;/A&gt;. I hadn't intended to make a series of this, but it may very well turn out that way as today's post is about engeneering for reliability. Who knows what future posts may hold.&lt;/P&gt;
&lt;P&gt;I was sitting in a doctors office the other day, waiting very patiently to be called in.  I fidgetted as I always did. Leaning forward, leaning sideways, flopping around like an idiot just trying to reconcile myself with the fact that I didn't have a laptop or something in front of me to do.  But then it sort of hit me.  I was abusing that chair to death and it was taking it.  &lt;/P&gt;
&lt;P&gt;Lets think about the first sentance of this blog post.  I said that I was sitting in the doctors office.  I'll bet not one person reading this said "Oh man, what kind of chair was it?" or "Oh my goodness, what if it breaks?" or "Holy cow, that guy is really rolling the dice there isn't he?".  All of you most likely pictured someone just plopped down on a chair. No one was really fixed on the idea that the chair could fall apart or that it wasn't an appropriate height.  The reason behind this is that, in general, we tend to think that a chair will work when we use it.  When was the last time you tested a chair to see if it would hold your weight?  I'm sure under the right circumstances, you just might -- like if the chair looked visibly weak or damaged, but once again, the general concensus is that its going to work out for you.&lt;/P&gt;
&lt;P&gt;When was the last time you could rest this easy with the software we use on our desktops? &lt;/P&gt;
&lt;P&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/08/20/288.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/MM2CaYR0EAs/Engineering-for-Reliability-What-we-can-learn-from-a-chair</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Engineering-for-Reliability-What-we-can-learn-from-a-chair</guid>
            <pubDate>Sun, 21 Aug 2005 03:21:00 GMT</pubDate>
            <category>design</category>
            <category>reliability</category>
        <feedburner:origLink>http://tobint.com/Blog/Engineering-for-Reliability-What-we-can-learn-from-a-chair</feedburner:origLink></item>
        <item>
            <dc:creator>tobint</dc:creator>
            <title>Engineering for usability: What we can learn from vending machines</title>
            <description>&lt;P&gt;Today, I used a vending machine.  Anyone that has met me will surmise that this was obviously not my first attempt to purchase an unhealthy snack from such a contraption.  In fact, not only have I excessively used of vending machines, I've written code for kiosks that use the same currency and coin accepting hardware as vending machines. Suffice it to say this long paragraph was meant to proclaim my self-appointed title of "Certified Vending Machine Professional" (CVMP).  &lt;/P&gt;
&lt;P&gt;However, with all of my years of experience, todays experience was different. Today, I approached the vending machine, tired from lack of sleep the past month, distraught over having to get my cat a permanent tracheotomy, cranky from a back problem, and distracted by tons of work-related issues running through my head.  I carefully stood in front of the machine contemplating what I would get this time -- as though the product selection would have changed between now and the last time I looked.  Well, I am supposed to be on a diet, but due to the massive amount of life-issues I'm having at the moment, I decide a "healthier" vending machine snack of pretzels will suffice this time.  "D10, 65 cents, ok." I think to myself as I begin to press the numbers out on the keypad "D, One, Zero -- CRAP!". As it turns out D-10 expected me to press D and then press a key they had specifically set to 10 -- not 1 then 0 as I was thinking.  I knew this. I've used enough vending machines in my life to know how they work. But today, I failed the test.  I immediately began to blaim the vending machine and started re-engineering a smart vending machine in my head.&lt;/P&gt;
&lt;P&gt;(&lt;A href="http://www.codemilitia.com/blogs/tobin.titus/archive/2005/08/12/280.aspx"&gt;continue&lt;/A&gt;)&lt;/P&gt;</description>
            <link>http://feedproxy.google.com/~r/TobinT/~3/4N4xqL-AejU/Engineering-for-usability-What-we-can-learn-from-vending-machines</link>
            <guid isPermaLink="false">http://tobint.com/Blog/Engineering-for-usability-What-we-can-learn-from-vending-machines</guid>
            <pubDate>Fri, 12 Aug 2005 23:20:00 GMT</pubDate>
            <category>usability</category>
            <category>design</category>
        <feedburner:origLink>http://tobint.com/Blog/Engineering-for-usability-What-we-can-learn-from-vending-machines</feedburner:origLink></item>
    </channel>
</rss>
