{"id":7453,"date":"2012-06-05T07:00:00","date_gmt":"2012-06-05T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2012\/06\/05\/microspeak-turds\/"},"modified":"2012-06-05T07:00:00","modified_gmt":"2012-06-05T07:00:00","slug":"microspeak-turds","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20120605-00\/?p=7453","title":{"rendered":"Microspeak: Turds"},"content":{"rendered":"<p>In Microspeak, a <i>turd<\/i> is a graphics glitch which results in old pixels appearing on the screen when they shouldn&#8217;t. Perhaps they are not being erased properly, or instead of being erased, they move to an unwanted location. The source of the problem could be failing to mark a region for redrawing after something changed, or it could be that the drawing code ran into a problem and failed to draw over the old pixels. The problem might be that the code whose job it is to remove the object from the screen ran into a problem and didn&#8217;t actually remove it, resulting in an on-screen object that nobody really is keeping track of. Whatever the reason, these &#8220;junk pixels&#8221; go by the name <i>turds<\/i>.\n For non-English speakers: <i>turd<\/i> is a boorish term for dung.\n The term <i>turds<\/i> are more generally applied to objects that don&#8217;t serve any purpose but never got cleaned up. For example, they might be files and registry keys that didn&#8217;t get deleted when you uninstalled an application, or user accounts for employees who left the company years ago, or C++ objects that some code forgot to <code>delete<\/code>. If you upgrade your <a href=\"http:\/\/blogs.msdn.com\/b\/oldnewthing\/archive\/2011\/08\/02\/10191834.aspx\"> dogfood<\/a> machine from build to build, there may be files left over from earlier builds that aren&#8217;t being used by the product any more. A build system may create temporary files that only get erased up when you do a &#8220;make clean&#8221;.\n Note that this particular term <i>turd<\/i> is not formal Microspeak. You won&#8217;t find it in a specifications document. But you may encounter it in a bug report or hear it in a casual discussion. Personally, I don&#8217;t use the term. For the graphics glitches, I prefer to use the word <i>artifact<\/i>. The leftover stuff that didn&#8217;t get cleaned up I simply call <i>dirt<\/i>.<\/p>\n<p> <b>Bonus chatter<\/b>: There was one project that actually tried to introduce the word <i>turd<\/i> as a formal technical term: <\/p>\n<blockquote class=\"q\"><p> If a transaction has been superseded by another transaction, a marker is left behind in the original transaction record which redirects the resolver to the new transaction. This marker is known as the Transaction Under Redirection Descriptor (TURD). <\/p><\/blockquote>\n<p> I bet the developer who came up with that spent way too much time making up turd-related jokes in other parts of the specification. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Microspeak, a turd is a graphics glitch which results in old pixels appearing on the screen when they shouldn&#8217;t. Perhaps they are not being erased properly, or instead of being erased, they move to an unwanted location. The source of the problem could be failing to mark a region for redrawing after something changed, [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[105,26],"class_list":["post-7453","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-microspeak","tag-other"],"acf":[],"blog_post_summary":"<p>In Microspeak, a turd is a graphics glitch which results in old pixels appearing on the screen when they shouldn&#8217;t. Perhaps they are not being erased properly, or instead of being erased, they move to an unwanted location. The source of the problem could be failing to mark a region for redrawing after something changed, [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/7453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=7453"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/7453\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=7453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=7453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=7453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}