<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Work</title>
        <link>http://geekswithblogs.net/rakker/category/3483.aspx</link>
        <description>Stuff related to coding, design, etc</description>
        <language>en-US</language>
        <copyright>Robert May</copyright>
        <managingEditor>robert@laradsolutions.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Design is about simplicity, and not for the developer</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/06/13/113206.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Read a good article today:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://bokardo.com/archives/five-principles-to-design-by/"&gt;http://bokardo.com/archives/five-principles-to-design-by/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Far too often, I've heard developers say, "But it's easier for me to write it this way" without ever taking into account what that does for the user.&lt;/p&gt;
&lt;p&gt;KISS (Keep it simple stupid) does NOT necessarily apply to the developer.  Sometimes keeping it simple for the user means making it more difficult for the developer.&lt;/p&gt;
&lt;p&gt;Forcing the user to do something complicated is forcing the user to serve technology, and that's bad! :)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113206"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113206" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/113206.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/06/13/113206.aspx</guid>
            <pubDate>Wed, 13 Jun 2007 19:42:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/113206.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/06/13/113206.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/113206.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/113206.aspx</trackback:ping>
        </item>
        <item>
            <title>NetTiers and WCF and object passing</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/06/08/113118.aspx</link>
            <description>&lt;p&gt;We're writing an app for a client and we're using WCF and Nettiers together in the app.  One of the requirements of app is very good auditing.  Every time data is picked up in the system, we need to audit it and let people know what happened.&lt;/p&gt;
&lt;p&gt;We wanted this to be transparent to the users, which meant that it should probably go into the DAL somewhere.  We thought about Triggers (no user information, so you'd have to pass the user to everything), and finally settled on putting it in the save, update, delete calls of nettiers.&lt;/p&gt;
&lt;p&gt;We wrote our auditing code into EntityProvider.cs (the non-overwritten class) and then modified the templates to call the audit code.&lt;/p&gt;
&lt;p&gt;There were various problems, none of them too hard to fix, but one major one that we ran into was in the mechanism that we were using to do diffs of the entities.  We basically were assuming that for each column inside of the database (Entity has a TableColumns array which tells you want columns are in the entity), there was a property as well.  Then, using reflection, we captured the value of that property and returned it to the caller, like so:&lt;/p&gt;
&lt;p&gt; &lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; GetProperty(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; obj, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; propertyName)&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; result = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;PropertyInfo&lt;/font&gt;&lt;font size="2"&gt; pi = obj.GetType().GetProperty(propertyName);&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (pi != &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; result;&lt;/font&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;System.Reflection.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;result = pi.GetValue(obj, &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;To compare the old entity and the new entity, we assumed that we could make a clone of the entity and call CancelChanges and we'd have the original version.  &lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt;Entity clone = &lt;/p&gt;
&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;EntityHelper&lt;/font&gt;&lt;font size="2"&gt;.Clone&amp;lt;Entity&amp;gt;(entity);&lt;br /&gt;
System.Reflection.&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;MethodInfo&lt;/font&gt;&lt;font size="2"&gt; mi = clone.GetType().GetMethod(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"CancelChanges"&lt;/font&gt;&lt;font size="2"&gt;);&lt;br /&gt;
mi.Invoke(clone, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;
&lt;p&gt;This worked great, except when you sent the Nettiers entity down through a wcf service.&lt;/p&gt;
&lt;p&gt;WCF only cares about the data contract, which means that the _originalData value from the Nettiers entity wasn't populated, and that's how nettiers does their cancel changes.&lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;obj.CancelEdit();&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;p&gt;So, the original data was stripped out of the entity, and when you called cancel changes, you'd get a nasty NullReference exception, since OriginalData was null.&lt;/p&gt;
&lt;p&gt;What to do, what to do.  What we decided to do was to make the original data, entity data, and backup data part of the DataContract in WCF.  To do this, we had to modify the nettiers templates to have OriginalData public properties and decorate them with [DataMember].  Then, the EntityData template had to be modified to mark the entitydata items with [DataContract] and the individual elements with the [DataMember] attribute.&lt;/p&gt;
&lt;p&gt;Upon regeneration of the dal, everything now works as expected.  This solution works, but it does increase the payload substantially, since effectively everything is at least duplicated.  Was it worth the price?  Don't know.&lt;/p&gt;
&lt;p&gt;We could have also solved this by simply getting the current version out of the database and looking for diffs.  That may be a better solution, but it does have its problems as well (database query, locking issues, etc).&lt;/p&gt;
&lt;p&gt;We'll see what happens.&lt;/p&gt;
&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; CancelChanges()&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;IEditableObject&lt;/font&gt;&lt;font size="2"&gt; obj = (&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;IEditableObject&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.entityData = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.entityData = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;._originalData.Clone() &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;EntityEntityData&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113118"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113118" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/113118.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/06/08/113118.aspx</guid>
            <pubDate>Fri, 08 Jun 2007 19:52:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/113118.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/06/08/113118.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/113118.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/113118.aspx</trackback:ping>
        </item>
        <item>
            <title>This is scary!</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/05/01/112166.aspx</link>
            <description>Check out this &lt;a href="http://news.com.com/British+motorists+face+spy-in-sky+monitoring/2100-1029_3-6180566.html?tag=nefd.top"&gt;article&lt;/a&gt; on News.Com.  Big brother is watching.  The technology is cool though. :)&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112166"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112166" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/112166.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/05/01/112166.aspx</guid>
            <pubDate>Tue, 01 May 2007 23:47:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/112166.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/05/01/112166.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/112166.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/112166.aspx</trackback:ping>
        </item>
        <item>
            <title>Learn WPF in 5 days</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/04/24/111935.aspx</link>
            <description>&lt;p&gt;Read an intersting &lt;a href="http://blogs.msdn.com/karstenj/archive/2006/06/15/632639.aspx"&gt;article&lt;/a&gt; about WPF today.  Wish I would have seen it when I was trying to get up to speed on WPF.  Looks pretty good.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111935"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111935" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/111935.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/04/24/111935.aspx</guid>
            <pubDate>Tue, 24 Apr 2007 14:57:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/111935.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/04/24/111935.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/111935.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/111935.aspx</trackback:ping>
        </item>
        <item>
            <title>Response to Vista?  That's it?</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/25/104588.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;This is in response to a comment about my last post.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I expected something revolutionary and significantly better than what was currently on the market.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Microsoft consistently does this with other applications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sql Server is, in my opinion, FAR superior to Oracle and MySql.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;.net kick’s Java’s behind.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Visual Studio is so far ahead of the competition that using anything else is painful.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For those of you that live and die by Eclipse, VS 2005 is clearly a superior product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The XBOX 360 is also much better than just about anything else, although the WII comes close in sheer fun.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So why isn’t the operating system and browser far superior to the competition?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Microsoft has &lt;A href="http://en.wikipedia.org/wiki/Microsoft"&gt;70,000&lt;/A&gt; employees for crying out loud!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They had &lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=185468"&gt;100&lt;/A&gt; or so developers working on WPF alone!&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;My point is this:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They started from the Server 2003 core and then modified it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It took them 5 YEARS and it looks and feels like Service Pack 3 for XP.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Why couldn’t they have released this incrementally?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After all, we know that it can run without Aero, and we know that the .net bits can be back ported to XP, so why the large release?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;There’s got to be a better way to do security.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Surely the smart folks at MS can come up with a way to monitor the intent of an app to determine that’s its going to do something that would be perceived as bad and notify the user appropriately.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The logic you used for why they are being restrictive is the same logic that people use to explain why communism is a good thing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The “people” are too stupid to run their own lives, therefore, the big government must come in and do it for them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I don’t buy that.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I think a better solution would be to anticipate when an application is going to do something bad and stop it and notify the user then.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No, that’s not going to be easy, but it’s possible.&amp;nbsp; Assuming that everything that touches something that some developer in a cubicle somewhere decided could possibly be used badly is something that should be blocked is stupid.&amp;nbsp; Start with that, but then take it another step.&amp;nbsp; Look what the change is going to be and if it is, block it (roll it back) and notify.&amp;nbsp; Yes, that's hard.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;You should have a more &lt;A href="http://www.joelonsoftware.com/uibook/fog0000000249.html"&gt;user centric&lt;/A&gt; view of the world.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In general, software isn’t for the developers, it’s for the users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Calling the users stupid serves little purpose other than demonstrating your lack of concern for your customer.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Software is for the user and should behave how the user expects it to, not force its will on the user.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The stuff that the user can’t see is only important if it meets that goal.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The general user population DOES NOT CARE about the bits inside of the machine.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They only care about whether or not the software helps them do what they want to do.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Software does “magically” develop from ideas.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Coming up with the ideas tends to be the hard part.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The “programming” aspect is merely a constraint of time and computing power.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;WinFS was innovative, but it was cut.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Aero is a mac look alike.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;WPF and WCF are innovative, but they’re not the “OS”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Maybe my standards are too high.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Anyway, this is too long already.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104588"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104588" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/104588.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/25/104588.aspx</guid>
            <pubDate>Fri, 26 Jan 2007 02:04:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/104588.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/25/104588.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/104588.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/104588.aspx</trackback:ping>
        </item>
        <item>
            <title>Vista:  That's it?</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/25/104538.aspx</link>
            <description>&lt;P&gt;O.K.--so I got a shiny core duo 2 from dell the other day, and have vista loaded onto it.&amp;nbsp; The performance thingy rates me as a 3.5 (because of the video card), and says I should be able to enjoy all of the snazzy new features of &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;Vista&lt;/st1:place&gt;.&lt;BR&gt;I start to tinker, and soon find that the Aero stuff is really only skin deep--as soon as you go into any of the dialog boxes for more advanced stuff (like the system dialog boxes, the "advanced properties" of the display, etc), you quickly find that this is just XP with a little paint.&lt;BR&gt;The annoying nag screens are also pointless.&amp;nbsp; After 10 minutes I was promptly ignoring them and just allowing them to do whatever they wanted to do without even reading them.&amp;nbsp; They won't change security, they'll just irritate people.&lt;BR&gt;So we got WCF, WPF, and WWF.&amp;nbsp; I view those as extensions of .net, NOT as features to the operating system, and those should have happened in spite of the OS.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;I’m really left wondering, “Is that it?”&amp;nbsp; It took them five years and that’s it??&amp;nbsp; What a disappointment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Update to respond to comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;1.&amp;nbsp; I spent more than 5 minutes with the OS and read more than one review.&amp;nbsp; &lt;A href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9004916"&gt;&lt;FONT color=#800080&gt;My favorite is this one.&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; Yes, they did a lot of work, yes the network stack is nice, yes, hooking up to my wireless network was nice.&amp;nbsp; But did all of that REALLY take 5 years?&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;2.&amp;nbsp; Security is always an issue with users.&amp;nbsp; However, I've dealt with far too many users that become accustomed to boxes popping up and become numb to them and stop reading the contents.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will become the same way.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After all, users have been warned forever that running attachments from e-mail spreads viruses, but we still have no shortage of viruses spread in that manner.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Couldn’t they have done something better that was smarter about determining if an attack was taking place and THEN warned the user?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That way, the user would only see the messages once in a while, rather than all of the time.&lt;/P&gt;
&lt;P&gt;3.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The users don’t give a rat’s rear end about what they can’t see.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They just want it to work.&lt;/P&gt;
&lt;P&gt;4.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;DirectX 10 is wonderful.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The removing of kernel mode drivers was a good thing (although I’m not a driver writer, so I don’t know how good and may not understand this exactly).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, isn’t DirectX 10 something that should have been given to us anyway, and did it REALLY take 5 years to do?&lt;/P&gt;
&lt;P&gt;Ultimately, my point is that although there are some nice new features in &lt;st1:place w:st="on"&gt;Vista&lt;/st1:place&gt;, I was expecting a lot more after 5 years of development.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Everything they’ve done in this release should have been done with incremental releases to XP.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This feels like Service Pack 3, or like the ME launch was to 98.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Maybe that’s why MS is saying there will be &lt;A href="O.K.--so I got a shiny core duo 2 from dell the other day, and have vista loaded onto it.  The performance thingy rates me as a 3.5 (because of the video card), and says I should be able to enjoy all of the snazzy new features of Vista." temp_href="O.K.--so I got a shiny core duo 2 from dell the other day, and have vista loaded onto it.  The performance thingy rates me as a 3.5 (because of the video card), and says I should be able to enjoy all of the snazzy new features of Vista."&gt;shorter&lt;/A&gt; release cycles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104538"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=104538" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/104538.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/25/104538.aspx</guid>
            <pubDate>Thu, 25 Jan 2007 16:20:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/104538.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/25/104538.aspx#feedback</comments>
            <slash:comments>13</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/104538.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/104538.aspx</trackback:ping>
        </item>
        <item>
            <title>I'm sure this won't win me any friends . . .</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/18/103906.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Does open source really work?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’m skeptical.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A perfect example is the open source project &lt;A href="http://johnsbraindump.blogspot.com/2006/07/ndoc-20-is-dead.html"&gt;NDoc&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve seen this with more than one project.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A project goes open source by a company, supposedly to accept outside contributors, but few open source projects have contributors outside of those that started the project.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At best, most successful open source projects only have a handful of contributors and are dependent upon large corporations funding development work on the project.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Here’s my take on why:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Most people don’t care enough about stuff to contribute (NDoc, for example).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The people who care about it, wrote it.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Most people capable of contributing are getting paid to write code, and most coder’s like money.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Some people are trying to get recognition and, as a result, contribute to support their ego.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Many “open source” projects are VERY picky about what is included in the project (Linux).&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Most people using open source are doing so because it’s free (i.e. they’re cheap), not because they have any desire to do anything else with the code (most of my former bosses).&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I’d love to find out the demographics of people that consume open source but never contribute.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Do they also not donate to charity?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Do they use pirated music (after all, shouldn’t music be open source)?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I think people should be paid for good work, but much of open source disagrees with me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Am I missing something?&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103906"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103906" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/103906.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/18/103906.aspx</guid>
            <pubDate>Thu, 18 Jan 2007 17:17:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/103906.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/18/103906.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/103906.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/103906.aspx</trackback:ping>
        </item>
        <item>
            <title>Using Windows Live Writer</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/10/103293.aspx</link>
            <description>&lt;p&gt;This is my first use of &lt;a title="Windows Live Writer" href="http://ideas.live.com/programpage.aspx?versionId=4372c8c2-b76f-4d44-aea1-9835b61d8dc1"&gt;Windows Live Writer&lt;/a&gt; to post a blog.&amp;nbsp; I don't know how it'll go, but I thought I'd give it a try and see if it behaves better, especially with posting code.&lt;/p&gt; &lt;p&gt;Here's a snippet of code from a project I'm working on:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;/// &amp;lt;summary&amp;gt;&lt;br&gt;/// Gets the default adapter.&lt;br&gt;/// &amp;lt;/summary&amp;gt;&lt;br&gt;public static Adapter DefaultAdapter&lt;br&gt;{&lt;br&gt;get&lt;br&gt;{&lt;br&gt;return (Adapter)CIConfiguration.Adapters[DEFAULT].Value;&lt;br&gt;}&lt;br&gt;}&lt;/p&gt; &lt;p&gt;Hmm--that didn't seem to be much different from using the web interface, other than I lost all of the color. :(&lt;/p&gt; &lt;p&gt;Anybody know of a good blog editor that will preserve the formatting of code and such?&lt;/p&gt; &lt;p&gt;Update:&amp;nbsp; So I found a &lt;a title="Paste from Visual Studio" href="http://gallery.live.com/liveItemDetail.aspx?li=d8835a5e-28da-4242-82eb-e1a006b083b9&amp;amp;l=8"&gt;plugin&lt;/a&gt; that will allow better pasting.&amp;nbsp; Only caveat is that you can't paste using CTRL-V, instead you have to use the insert menu, but here's what it looks like:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="code"&gt;        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;override&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; Merge(&lt;span style="color: rgb(43,145,175)"&gt;IXPathNavigable&lt;/span&gt; doc)
        {
            &lt;span style="color: rgb(0,128,0)"&gt;//get the event id (
&lt;/span&gt;        }&lt;/pre&gt;Much better!&amp;nbsp; Now I need to find out what other types of plugins are available!&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103293"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103293" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/103293.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/10/103293.aspx</guid>
            <pubDate>Wed, 10 Jan 2007 17:02:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/103293.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/10/103293.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/103293.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/103293.aspx</trackback:ping>
        </item>
        <item>
            <title>More Interviewing</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/09/103180.aspx</link>
            <description>&lt;P&gt;Had three interviews yesterday, all from very large companies.&amp;nbsp; The first interview was unlike anything that I've ever experienced.&amp;nbsp;&amp;nbsp;Many of the questions were "masked" and the interview flowed like a conversation, not an interview.&amp;nbsp; Very relaxing although I think back to all of the things that I missed and am left to wonder how well I did.&amp;nbsp; It was a fun interview though.&amp;nbsp; This position would require me to relocate, which is a huge downer for it, but we'll see what happens.&lt;/P&gt;
&lt;P&gt;The next interview was also rather interesting.&amp;nbsp; Few technical questions were asked, even though I was being brought in as "someone who knows the technology already."&amp;nbsp; If you don't ask technical questions, how do you know I am just not a good interviewer?&amp;nbsp; I also was allowed to see politics that had happened when this formerly small company was purchased by a very large company, and I'm not sure that I'm comfortable with it.&amp;nbsp; Based on what I saw, I'd probably be their most senior guy.&amp;nbsp; Politics are a way of life, and as long as I have stuff to work on, I don't know that I'd care much, but I'm sure I'd end up in "discussions" with the person named as their chief architect, simply because I asked him some design questions and he didn't know what I was talking about. :)&amp;nbsp; His appointment appeared to be a political assignment . . .&amp;nbsp; This one's up in the air.&lt;/P&gt;
&lt;P&gt;The third interview was from the same company as the first, and I've got to tell you, it was one of the most miserable interviews I've ever had; not because I thought I did poorly, but because of the interview itself.&amp;nbsp; The interviewer seemed focused on a wide amount of m&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;inutiae &lt;/SPAN&gt;about what I feel are more entry to mid level concepts.&amp;nbsp; For example, he asked me what normalization was (the elimination of redundant data), and then had me walk through each form of normalization!&amp;nbsp; Wasn't satified with "this is what the end result would be" but wanted each in order.&amp;nbsp; Grr.&amp;nbsp; Asked what the difference between a struct and a class was (structs are composed of primitive types and allocated on the stack, classes are not), but he wasn't happy with that answer and kept probing for more--I'm still not sure what.&amp;nbsp; He would ask questions about stuff that I wasn't sure about (such as the async methods on XmlTranformedCompile) and even after repeated statements that I hadn't used that so I didn't know exactly how it functioned, he kept going.&amp;nbsp; I gave him what I thought it did, but why probe for information when obviously I didn't know??&amp;nbsp; The most irritating was when he gave me the following scenario:&amp;nbsp; "Two laptops and a server in a room.&amp;nbsp; Both hit the same web page on the server and get different results.&amp;nbsp; Why?"&amp;nbsp; I spit out the standard answers:&amp;nbsp; Cookies, Sessions, IP Address content restriction, server errors, browser differences, client side software differences.&amp;nbsp; He promptly probes for more.&amp;nbsp; Huh?&amp;nbsp; What else can their be?&amp;nbsp; When I tell him that I don't know what else there can be, he says, "They could have been hitting different servers, like in a web farm."&amp;nbsp; What??&amp;nbsp; He explicitly stated that there was only one server!&amp;nbsp; I guess I should have verbalized the assumption that there was only one server.&amp;nbsp; More examples?&amp;nbsp; I said that I had used xslt to transform xml from one format to another, to which he acted very surprised and wanted an example.&amp;nbsp; After giving him abstract examples about how I did it (established the structure for the new document and copied the data out of the other xml document using xslt) I was able to discern that he wanted me to spell out the specific code (i.e. verbalize the xslt!!) over the phone!!&amp;nbsp; Double Grr.&lt;/P&gt;
&lt;P&gt;The best part about this whole thing is at the end, I ask him what position he saw me filling.&amp;nbsp; Both were MANAGEMENT POSITIONS!!!&amp;nbsp; After he tells me, I guess it dawned on him that he MIGHT want to ask me some management questions, but before that, he didn't ask a single one.&amp;nbsp; Even if he offered me a position, I wouldn't take it.&amp;nbsp; I wouldn't want to work for someone like that.&amp;nbsp; Very annoying interview.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103180"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=103180" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/103180.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/09/103180.aspx</guid>
            <pubDate>Tue, 09 Jan 2007 16:54:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/103180.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/09/103180.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/103180.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/103180.aspx</trackback:ping>
        </item>
        <item>
            <title>Am I missing something (ApplicationSettings)?</title>
            <link>http://geekswithblogs.net/rakker/archive/2007/01/05/102893.aspx</link>
            <description>&lt;P&gt;I'm trying to use ApplicationSettings in the following scenario:&lt;/P&gt;
&lt;P&gt;The settings are not all completely defined at design time (think plug-ins, but not completely that) and can be added by clients over time.&lt;/P&gt;
&lt;P&gt;I can't find a way to make AppplicationSettings recognize new settings that weren't part of what it was compiled against.&lt;/P&gt;
&lt;P&gt;I would have thought that this would be something pretty basic that they would add.&lt;/P&gt;
&lt;P&gt;For example:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;TestAppSettings.TestSettings&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;DefaultSetting&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;serializeAs&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Default Setting Value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;TestAppSettings.TestSettings&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000 size=3&gt;Then, after we ship, they need to add another setting:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&lt;/FONT&gt;&amp;lt;&lt;FONT color=#a31515 size=2&gt;TestAppSettings.TestSettings&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;DefaultSetting&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;serializeAs&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Default Setting Value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;"AnotherSetting&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;serializeAs&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;FONT color=#000000&gt;Another Setting Value&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;setting&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;TestAppSettings.TestSettings&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;I can't seem to get the code or the settings file to recognize AnotherSetting without modifying the wrapper class and adding AnotherSetting as a property.&amp;nbsp; When I iterate over the propertyvalues or the properties collection, the new setting doesn't show up, which I would have expected it to do.&lt;/P&gt;
&lt;P&gt;Any ideas or suggestions?&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=102893"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=102893" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/rakker/aggbug/102893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Robert May</dc:creator>
            <guid>http://geekswithblogs.net/rakker/archive/2007/01/05/102893.aspx</guid>
            <pubDate>Sat, 06 Jan 2007 01:06:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rakker/comments/102893.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rakker/archive/2007/01/05/102893.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/rakker/comments/commentRss/102893.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rakker/services/trackbacks/102893.aspx</trackback:ping>
        </item>
    </channel>
</rss>