<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title>Ruminations</title>
		<link>http://www.timapke.com/blog/index.php</link>
		<description><![CDATA[No Footer]]></description>
		<copyright>Copyright 2008, Tim Apke</copyright>
		<managingEditor>Tim Apke</managingEditor>
		<language>en-US</language>
		<generator>SPHPBLOG 0.5.1</generator>
		<item>
			<title>So much to do ... so little time</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry080804-153658</link>
			<description><![CDATA[It&#039;s been way too long since I&#039;ve written an entry here. Since my last entry I have (nearly) completed my foray into RoR, participated in a panel at the Cincinnati .NET User Group, and done some pretty heavy development at my current gig. In the next month or two, I&#039;ll be checking out Silverlight 2.0 and ASP.NET MVC, so my plate will remain full for a while. I&#039;ll give more details about what&#039;s been going on in the coming weeks.]]></description>
			<category>General</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry080804-153658</guid>
			<author>Tim Apke</author>
			<pubDate>Mon, 04 Aug 2008 21:36:58 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=08&amp;m=08&amp;entry=entry080804-153658</comments>
		</item>
		<item>
			<title>Trying out Development with Ruby on Rails</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry080303-112556</link>
			<description><![CDATA[Well, after months of struggling with getting the latest version of Ruby on Rails installed on my MacBook, I&#039;m finally going to attempt a Rails app. <br /><br />As I&#039;ve stated before, I&#039;m a .NET developer on the Windows platform, but I want to get a feel for a Model/View/Controller application. This is especially important now, since the ASP.NET team has released a Community Technology Preview for MVC.NET. Instead of writing all kinds of plumbing to make a web-based application look like a WinForms app, MVC.NET takes a more minimalistic approach, allowing the Controller part of the application to decide how to render a View (the web page) based on a Model (the data that drives the page). I will try to write more about my experiences with RoR, and also with MVC.NET. <br /><br />Finally, I wanted to try Ruby because the language is based on Smalltalk. I worked on IBM VisualAge for Smalltalk back in 1997, and was impressed by how easy it was to make an application work. Of course, there was a steep learning curve making the transition from C and C++. However, learning Smalltalk helped me to really understand object-oriented programming.]]></description>
			<category>Development</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry080303-112556</guid>
			<author>Tim Apke</author>
			<pubDate>Mon, 03 Mar 2008 18:25:56 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=08&amp;m=03&amp;entry=entry080303-112556</comments>
		</item>
		<item>
			<title>Making MSDTC Work with Windows XP SP2</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071229-175319</link>
			<description><![CDATA[Here&#039;s the rundown on my most recent admin nightmare. I was helping to get  <a href="http://en.wikipedia.org/wiki/Distributed_Transaction_Coordinator" target="_blank" >Microsoft Distributed Transaction Coordinator</a> working between 2 Windows XP SP2 boxes. These are development machines on which we wanted to prototype distributed transactions. In our case, we wanted to update 2 different SQL Server databases on 2 separate machines, and allow the updates to be committed on both systems in the case of success, or rolled back if an error occurred on either system. This is known as <a href="http://en.wikipedia.org/wiki/Two-phase_commit_protocol" target="_blank" >Two Phase Commit</a>.<br /><br /><strong>SECURITY WARNING!</strong><br />The following changes could expose your system to security risks. This was implemented on development systems to test prototype code. If you need to make this work on a production system, please consult a qualified Microsoft Server Professional to implement MSDTC in your environment.<br /><br />To make DTC work, a few changes have to be made to XP SP2. Here&#039;s the list:<br /><br />
<ul>
<li>Open the following firewall ports</li>
<ul><li>TCP Port 1433 (Default port used by SQL Server)</li>
<li>UDP Port 1434 (Used by SQL Server)</li>
<li>TCP Port 3372 (Used by MSDTC.EXE)</li>
<li>Add MSDTC.EXE to the firewall as an allowed program</li>
</ul>
<li>Add the following entries to the registry if they don't already exist in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\ClientProtocols - Found in MS Knowledge Base <a href="http://support.microsoft.com/kb/325930" target="_blank" >Article 325930</a></li>
<ul>
<li>ncacn_http   REG_SZ  rpcrt4.dll</li>
<li>ncacn_ip_tcp REG_SZ  rpcrt4.dll</li>
<li>ncacn_np     REG_SZ  rpcrt4.dll</li>
<li>ncadg_ip_udp REG_SZ  rpcrt4.dll</li>
</ul>
<li>Run dcomcnfg.exe to modify the security for MSDTC</li>
<ul><li>Navigate to "Component Services\Computers\My Computer" in the tree view in the left-hand pane.</li>
<li>Right-click on My Computer and select properties</li>
<li>On the MSDTC tab, click on the "Security Configuration..." button</li>
<li>Change the security settings to match the following:</li>
</ul>
</ul>
<a href="javascript:openpopup('images/MSDTC_Security_Config.jpg',650,825,false);"><img src="images/MSDTC_Security_Config.jpg" width="512" height="650" border="0" alt="" /></a>
<br /><br /><br /><strong>SECURITY WARNING!</strong><br />The preceding changes could expose your system to security risks. This was implemented on development systems to test prototype code. If you need to make this work on a production system, please consult a qualified Microsoft Server Professional to implement MSDTC in your environment.<br />]]></description>
			<category>Administration</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071229-175319</guid>
			<author>Tim Apke</author>
			<pubDate>Sun, 30 Dec 2007 00:53:19 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=12&amp;entry=entry071229-175319</comments>
		</item>
		<item>
			<title>iCal on Mac OS X v10.4 and ics files</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071130-103946</link>
			<description><![CDATA[A little preface for this entry:<br /><br />I have been developing on Microsoft platforms since the late  1980&#039;s. However,<br />I&#039;ve always been fascinated with Apple products. So this year, I decided to buy<br />a MacBook Pro. I can run Windows on a VM because it&#039;s running an Intel<br />processor, and I can experiment with the Mac and try my hand at developing for<br />it.<br /><br />That being said, I was registering for a Microsoft Developer event and was<br />prompted to add the event to my calendar. Since iCal on the Mac can read ics and<br />vcal files, I accepted. Then iCal displayed the following error:<br /><br />&quot;The calendar file is unreadable. No events have been added to your iCal<br />calendar.&quot;<br /><br />Browsing the ics file in TextWrangler revealed the following:<br /><br />BEGIN:vCalendar <br />VERSION:2.0 <br />METHOD:PUBLISH <br />BEGIN:vEvent <br />DTSTART:20071201T230000Z<br />DTEND:20071202T010000Z <br />UID:11111111111 <br />DTSTAMP:20071130T175905Z<br />DESCRIPTION: We look forward to seeing you at the Event! <br />SUMMARY:In-Person Event - Meeting <br />PRIORITY:3 <br />BEGIN:vAlarm <br />TRIGGER:P0DT0H15M <br />ACTION:DISPLAY<br />DESCRIPTION:Reminder <br />END:vAlarm <br />END:vEvent <br />END:vCalendar<br /><br />I only found a couple of search hits on Google, but everything that I did find showed that certain key words were capitalized (strings after BEGIN: and END:). So I capitalized the strings after the BEGIN and END tags and tried to re-import the ics file. This time it was successful. I don&#039;t know if there is a global specification for ics files, so I can&#039;t say who&#039;s to blame here. I do know that iCal expects VCALENDAR, VEVENT, and VALARM tags to be capitalized.]]></description>
			<category>Administration</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071130-103946</guid>
			<author>Tim Apke</author>
			<pubDate>Fri, 30 Nov 2007 17:39:46 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=11&amp;entry=entry071130-103946</comments>
		</item>
		<item>
			<title>Trying to Create FxCop Rules for Source Code Analysis</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071022-211928</link>
			<description><![CDATA[I started working today on creating a rule in FxCop to enforce the use of curly braces on if and for statements. I know that FxCop is built to analyze IL, not source code, so this should be an interesting experience. I&#039;ll blog about it if I&#039;m successful.<br /><br />UPDATE: I was correct about FxCop not reading the source code. So I was unable to enforce the curly brace rule. I was able to create a custom rule although it was a painful exercise. I will post the code that I created, but it&#039;s taking some time to properly cite all the information that I found on the Internet. <br /><br />The problem with custom FxCop rules is that Microsoft really doesn&#039;t document how to do it. I sent an e-mail and got a very prompt reply from Brad Abrams, Krzysztof Cwalina, and David Kean. The final response I got about the curly braces was from David Kean:<br /><br /><i>Unfortunately, you will need to parse the source yourself, FxCop (even with the PDB) doesn&#039;t provide enough information. Braces (like whitespace, comments, etc) are a source-only construct.</i><br /><br />I will work this weekend to post the code for a simple FxCop rule.<br /><br />FINAL UPDATE: Okay, here&#039;s the link to the code which has an NUnit test and the actual FXCop assembly. The code is definitely not production quality, it&#039;s more of a proof-of-concept.<br /><br /><a href="http://www.timapke.com/testfxcoprule.zip" target="_blank" >testfxcoprule.zip</a><br /><br />Here are some of the websites that I used to write the code.<br /><br /><a href="http://weblogs.asp.net/rosherove/archive/2007/02/24/introducing-fxcopunit-a-framework-for-integrated-fxcop-rule-testing.aspx" target="_blank" >http://weblogs.asp.net/rosherove/archiv ... sting.aspx</a><br /><a href="http://blogs.interknowlogy.com/timmccarthy/archive/2007/02/13/11543.aspx" target="_blank" >http://blogs.interknowlogy.com/timmccar ... 11543.aspx</a><br /><a href="http://bordecal.mvps.org/Nicole/FxCop/CustomRuleDetails.htm" target="_blank" >http://bordecal.mvps.org/Nicole/FxCop/C ... etails.htm</a><br /><br />]]></description>
			<category>Development</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071022-211928</guid>
			<author>Tim Apke</author>
			<pubDate>Tue, 23 Oct 2007 03:19:28 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=10&amp;entry=entry071022-211928</comments>
		</item>
		<item>
			<title>Cool site I found</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071006-204614</link>
			<description><![CDATA[I was browsing this evening and found a really cool site. It&#039;s called ChristianASP.NET and it offers free website hosting without banner ads. If I didn&#039;t already have a website host, I would check this one out myself. Click on the &quot;related link&quot; below to go there.]]></description>
			<category>Technology</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071006-204614</guid>
			<author>Tim Apke</author>
			<pubDate>Sun, 07 Oct 2007 02:46:14 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=10&amp;entry=entry071006-204614</comments>
		</item>
		<item>
			<title>Microsoft to release .NET Framework Source Code!</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071005-115814</link>
			<description><![CDATA[Microsoft is finally going to release the source code to the .NET Framework. The code will be available for reference and for debugging.]]></description>
			<category>Development</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071005-115814</guid>
			<author>Tim Apke</author>
			<pubDate>Fri, 05 Oct 2007 17:58:14 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=10&amp;entry=entry071005-115814</comments>
		</item>
		<item>
			<title>Accessing Underlying Data in ObjectDataSource - ASP.NET 2.0</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071004-204358</link>
			<description><![CDATA[I went around a few times on this problem today. I was pulling data into a GridView control from an ObjectDataSource. This ODS represented a Generic List of Data Transfer Objects that were populated using NHibernate. The DTO has a property that is really a foreign key into a reference table. The problem is that there are legacy portions of the system that still use the value of the foreign key as data. I know, I know, I should have refactored the relationship into the DTO. Time pressure being what it is, refactoring that portion of the system was not an option. Instead, I wanted to treat the &quot;Order&quot; field as a lookup into the list contained in a second ObjectDataSource. Then I would display the text for the lookup value in the GridView.<br /><br />Since I don&#039;t yet know the internals of databound controls and datasources, I couldn&#039;t find a way to access the data in the ODS programmatically. So, I came up with a huge hack instead. I decided that I needed functionality that looks like a DropDownList control. I had the value in the DTO, and I wanted the human readable text like the Text in a DropDownList. So I created an invisible DropDownList on my page that was bound to a second ObjectDataSource containing the reference data I needed. Then, I set the SelectedValue of the DropDownList to the Order property in the DTO. Finally, I returned the SelectedText of the DropDownList from a protected method that was called using Eval in the GridView&#039;s databound column. <br /><br />This works, and is much more performant than my first attempt, but there&#039;s got to be a cleaner way to get the desired results.]]></description>
			<category>Development</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071004-204358</guid>
			<author>Tim Apke</author>
			<pubDate>Fri, 05 Oct 2007 02:43:58 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=10&amp;entry=entry071004-204358</comments>
		</item>
		<item>
			<title>Problems with ASP on Win2003 Server</title>
			<link>http://www.timapke.com/blog/index.php?entry=entry071004-200858</link>
			<description><![CDATA[A friend called me today about a problem he was having with Win2K3 Server. He was receiving a 404 Page not found error when trying to GET a simple &#039;hello, world&#039; ASP page. When we looked in the W3SVC IIS Logs, the error was a 404 2 1260, which indicates &quot;404.2-Lockdown Policy Prevents This Request&quot; <br /><a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0f4ac79a-dc2b-4a5f-89c1-d57266aa6ffe.mspx?mfr=true" target="_blank" >404 Description</a> <br /><br />Then we found out that ASP had to be enabled through the IIS Manager <a href="http://technet2.microsoft.com/windowsserver/en/library/4a082632-1425-45ac-8286-1e543747df911033.mspx?mfr=true" target="_blank" >Enabling ASP in IIS 6</a><br /><br />It&#039;s difficult going from an environment like XP or 2K Server, which is wide open, to 2K3, which is locked tight out of the box. Hope this post helps someone.]]></description>
			<category>Administration</category>
			<guid isPermaLink="true">http://www.timapke.com/blog/index.php?entry=entry071004-200858</guid>
			<author>Tim Apke</author>
			<pubDate>Fri, 05 Oct 2007 02:08:58 GMT</pubDate>
			<comments>http://www.timapke.com/blog/comments.php?y=07&amp;m=10&amp;entry=entry071004-200858</comments>
		</item>
	</channel>
</rss>
