<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://interactiveasp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nate&amp;#39;s Stuff - All Comments</title><link>http://interactiveasp.net/blogs/natesstuff/default.aspx</link><description>Perspectives on Computing</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Incorporating the Windows 7 onscreen keyboard into a WPF app |Windows 7 Application | Windows 7 Guide</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/10/01/ink-in-wpf-using-textinputpanel-for-text-input.aspx#6743</link><pubDate>Wed, 08 May 2013 04:06:18 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6743</guid><dc:creator>Incorporating the Windows 7 onscreen keyboard into a WPF app |Windows 7 Application | Windows 7 Guide</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Incorporating the Windows 7 onscreen keyboard into a WPF app |Windows 7 Application | Windows 7 Guide&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6743" width="1" height="1"&gt;</description></item><item><title>6 Things I Bet You Didn&amp;#8217;t Know About Data Binding in WPF &amp;#8211; Nate&amp;#8217;s Stuff | Around computing</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx#6737</link><pubDate>Wed, 12 Dec 2012 17:42:48 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6737</guid><dc:creator>6 Things I Bet You Didn’t Know About Data Binding in WPF – Nate’s Stuff | Around computing</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;6 Things I Bet You Didn&amp;#8217;t Know About Data Binding in WPF &amp;#8211; Nate&amp;#8217;s Stuff | Around computing&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6737" width="1" height="1"&gt;</description></item><item><title>Jensen 5112 | Monaschilling</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/08/21/product-reviews-westinghouse-32h570d-amp-jensen-hd5112.aspx#6732</link><pubDate>Sat, 19 May 2012 17:35:22 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6732</guid><dc:creator>Jensen 5112 | Monaschilling</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Jensen 5112 | Monaschilling&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6732" width="1" height="1"&gt;</description></item><item><title>re: Moving a WPF Window Without a Title Bar</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/09/04/moving-a-wpf-window-without-a-title-bar.aspx#6719</link><pubDate>Fri, 05 Aug 2011 16:08:45 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6719</guid><dc:creator>Nathan Zaugg</dc:creator><description>&lt;p&gt;This is probably a better way with newer versions of the WPF framework:&lt;/p&gt;
&lt;p&gt;private void LeftMouseDown_Event(object sender, EventArgs e)&lt;/p&gt;
&lt;p&gt; {&lt;/p&gt;
&lt;p&gt; &amp;nbsp; this.DragMove();&lt;/p&gt;
&lt;p&gt; }&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6719" width="1" height="1"&gt;</description></item><item><title>6 Things I Bet You Didn&amp;#8217;t Know About Data Binding in WPF - nonocast</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx#6708</link><pubDate>Sat, 05 Mar 2011 13:47:25 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6708</guid><dc:creator>6 Things I Bet You Didn’t Know About Data Binding in WPF - nonocast</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;6 Things I Bet You Didn&amp;#8217;t Know About Data Binding in WPF - nonocast&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6708" width="1" height="1"&gt;</description></item><item><title>re: Family, Community, then the Government</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2010/12/13/family-community-then-the-government.aspx#6704</link><pubDate>Tue, 21 Dec 2010 23:57:42 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6704</guid><dc:creator>Phil Gilmore</dc:creator><description>&lt;p&gt;I like the case where an out-of-work Fortran guy collects welfare to augment his tech support job while he goes to school.&lt;/p&gt;
&lt;p&gt;Welfare in exchange for effort (requiring a job to get it) instead of welfare discouraging employment (losing benefits when you get a job) is something to to consider.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6704" width="1" height="1"&gt;</description></item><item><title>Good DataBinding Reference &amp;laquo; This Hours Eternity</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2009/01/21/6-things-i-bet-you-didn-t-know-about-data-binding-in-wpf.aspx#6692</link><pubDate>Wed, 27 Oct 2010 15:13:56 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6692</guid><dc:creator>Good DataBinding Reference « This Hours Eternity</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Good DataBinding Reference &amp;laquo; This Hours Eternity&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6692" width="1" height="1"&gt;</description></item><item><title>re: Taxed Enough Already (TEA) Party Protests &amp; My Idea for Personal Retirement Accounts</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2009/04/15/taxed-enough-already-tea-party-protests-amp-my-idea-for-personal-retirement-accounts.aspx#6690</link><pubDate>Tue, 05 Oct 2010 19:16:47 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6690</guid><dc:creator>Nathan Zaugg</dc:creator><description>&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.danpink.com/archives/2010/10/idea-of-the-day-a-taxpayer-receipt"&gt;www.danpink.com/.../idea-of-the-day-a-taxpayer-receipt&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6690" width="1" height="1"&gt;</description></item><item><title>re: Why I am Excited about Windows Phone 7 (WP7)</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2010/09/09/why-i-am-excited-about-windows-phone-7-wp7.aspx#6677</link><pubDate>Mon, 13 Sep 2010 16:39:54 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6677</guid><dc:creator>cgibbons</dc:creator><description>&lt;p&gt;In Android&amp;#39;s defense of your comment &amp;quot;The bad is that it seems like Google leaves a lot of their “old generation” phones in the cold when it comes to OS enhancements&amp;quot;, this decision is not Google&amp;#39;s, the manufacturer is the one that chooses to &amp;quot;end of life&amp;quot; existing phones and not provide upgrades. &amp;nbsp;The nice thing about android is there are tons of &amp;quot;cooks&amp;quot; out there, Cyanogenmod being one of the most popular that release builds of android for these end of life phones that side steps the phone manufacturers. &amp;nbsp;Microsoft will have the same problem since they license the OS out to phone manufacturers who then have the choice whether to upgrade their handsets or not.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6677" width="1" height="1"&gt;</description></item><item><title>Twitter Trackbacks for                 Why I am Excited about Windows Phone 7 (WP7) - Nates Stuff         [interactiveasp.net]        on Topsy.com</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2010/09/09/why-i-am-excited-about-windows-phone-7-wp7.aspx#6676</link><pubDate>Fri, 10 Sep 2010 23:26:20 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6676</guid><dc:creator>Twitter Trackbacks for                 Why I am Excited about Windows Phone 7 (WP7) - Nates Stuff         [interactiveasp.net]        on Topsy.com</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Twitter Trackbacks for &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Why I am Excited about Windows Phone 7 (WP7) - Nates Stuff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [interactiveasp.net] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on Topsy.com&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6676" width="1" height="1"&gt;</description></item><item><title>Twitter Trackbacks for                 Long Term Data Archival Strategy - Nates Stuff         [interactiveasp.net]        on Topsy.com</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2010/08/17/long-term-data-archival-strategy.aspx#6674</link><pubDate>Fri, 03 Sep 2010 06:13:07 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6674</guid><dc:creator>Twitter Trackbacks for                 Long Term Data Archival Strategy - Nates Stuff         [interactiveasp.net]        on Topsy.com</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Twitter Trackbacks for &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Long Term Data Archival Strategy - Nates Stuff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [interactiveasp.net] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on Topsy.com&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6674" width="1" height="1"&gt;</description></item><item><title>Uno snippet per i routed event</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/10/15/routed-event-code-snippet.aspx#6671</link><pubDate>Thu, 19 Aug 2010 16:25:44 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6671</guid><dc:creator>A DotNet Raider</dc:creator><description>&lt;p&gt;Uno snippet per i routed event&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6671" width="1" height="1"&gt;</description></item><item><title>Long Term Data Archival Strategy &amp;#8211; Nates Stuff | All About Solid State Drives (SSD)</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2010/08/17/long-term-data-archival-strategy.aspx#6670</link><pubDate>Tue, 17 Aug 2010 20:24:20 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6670</guid><dc:creator>Long Term Data Archival Strategy – Nates Stuff | All About Solid State Drives (SSD)</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Long Term Data Archival Strategy &amp;#8211; Nates Stuff | All About Solid State Drives (SSD)&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6670" width="1" height="1"&gt;</description></item><item><title>re: Database Naming Conventions</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/07/02/database-naming-conventions.aspx#6666</link><pubDate>Wed, 21 Jul 2010 22:47:38 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6666</guid><dc:creator>Nathan Zaugg</dc:creator><description>&lt;p&gt;Here is the 4-1-1 on why it&amp;#39;s important to use identity columns over &amp;quot;natural&amp;quot; keys. &amp;nbsp;Listed in order of importance.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * It is important for the health of a database to insert data into the clustered index in an ascending order. &amp;nbsp;Background: &amp;nbsp;There are two types of indexes called a Clustered Index and a Non-Clustered index. &amp;nbsp;A clustered index is the physical ordering of the rows in the pages on the database. &amp;nbsp;A non-clusterd index references the clustered index to make it&amp;#39;s own lists of the order of the rows, but it just keeps a reference to the clustered index. &amp;nbsp;You may only have one clustered index because you can only have one physical ordering of data. &amp;nbsp;Okay, so now to the question &amp;quot;Why is it bad to insert rows out of order&amp;quot;. &amp;nbsp;The answer is that because the clustered index is physically ordered, if you have a row that goes in the middle of other rows, those other rows need to be shifted down. &amp;nbsp;Actually it doesn&amp;#39;t bother moving the data down, it performs something called a page tear. &amp;nbsp;Because all rows are stored on 8K pages any rows behind the row that is inserted are simply copied to a new page. &amp;nbsp;This leaves both pages half empty and means your database has to perform twice as many requests to the disk. &amp;nbsp;This is a big deal! &amp;nbsp;The performance will be acceptable in development (you may never notice) but in production it will cause nothing but problems.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * There really is no such thing as a natural key - there would be very few real-life examples of where the data is guaranteed to be unique (an imperative for being a primary key). It then takes very little time for an application to want to insert a duplicate record (violating the key) because the key was poorly selected. In fact, because of these problems, I very frequently see tables with almost ALL columns in the composite key because it takes nearly all columns to make the row unique. &amp;nbsp;So what&amp;#39;s the point of a key at all?&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * Natural keys typically include more than a single value (see reason above). &amp;nbsp;This makes it difficult to make relationships to other tables because each column that constitutes the key will have to be present on the child table to make that relationship.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * When you join two tables together, you typically join the tables on as key. &amp;nbsp;For the parent table it will probably be a primary key and for the child table it will be a foreign key (non-clustered index). &amp;nbsp;There are many ways the DBMS may choose to join the tables but typically it will be able to use the clustered index of the parent table and join the parent to the child. &amp;nbsp;This will use a clustered-index scan which is the fastest. &amp;nbsp;If both keys are non-clustered-indexes (because you are trying to avoid the page tearing on insert) the result is a hash-join or even a full table scan which are much slower! Also your join statements in SQL are going to get really long and ugly.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * If your primary key is missing or is an non-clustered index, a key is generated for you anyway. &amp;nbsp;This is so it can distinguish between two different rows in the heap that have the same values and it really *needs* that row internally. &amp;nbsp;For example, if you add a non-clustered index what would it point to? &amp;nbsp;This also means that you will have two non-clustered indexes to deal with when joining tables together which hurts join performance (see point above)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * The surrogate key gains meaning in the application and is often used as the predicate in SQL queries.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; * The table schema is more difficult to change. For example, you cannot move a field out of one table and into another when it is part of the natural key. &amp;nbsp;The integrity of the entire table is put at risk.&lt;/p&gt;
&lt;p&gt;Having said that, you can have a primary key that is a non-clustered index and you can opt for a different column to be your clustered index. &amp;nbsp;This is a very a-typical configuration and can be helpful. &amp;nbsp;Remember, clustered index seeks/scans are far faster than using a non-clustered index. &amp;nbsp;If you constantly query on a field or set of fields that can be unique, you would see a big performance boost in those queries. &amp;nbsp;Pretty much everything else you do with that table will suffer though and you still have the problem of getting it in there in order or keeping the database defragmented. &amp;nbsp;Another potential gain is that the natural order of the rows will be the same as the clustered index. &amp;nbsp;There are situations where you would want to take advantage of these side-effects but only an experienced DBA could make a good judgment call there.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6666" width="1" height="1"&gt;</description></item><item><title>R63 Amg Cooling System Family, Cooling System Mercedes Benz R63 Amg V8 - 149.unlockiphone30.net</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/08/11/managed-vs-unmanaged-round-1-theoretical.aspx#6641</link><pubDate>Tue, 25 May 2010 20:51:23 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:6641</guid><dc:creator>R63 Amg Cooling System Family, Cooling System Mercedes Benz R63 Amg V8 - 149.unlockiphone30.net</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;R63 Amg Cooling System Family, Cooling System Mercedes Benz R63 Amg V8 - 149.unlockiphone30.net&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=6641" width="1" height="1"&gt;</description></item></channel></rss>