{"id":1803,"date":"2014-02-11T07:00:00","date_gmt":"2014-02-11T15:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2014\/02\/11\/microspeak-party-in-various-forms\/"},"modified":"2014-02-11T07:00:00","modified_gmt":"2014-02-11T15:00:00","slug":"microspeak-party-in-various-forms","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20140211-00\/?p=1803","title":{"rendered":"Microspeak: Party, in various forms"},"content":{"rendered":"<p>\nRemember, Microspeak includes words and phrases in general use,\nas long as they are employed at Microsoft at a higher rate than\nin the general population,\nor in specific situations that may not be obvious to the uninitiated.\nThey are the words and phrases you need to use in order to fit in.\n<\/p>\n<p>\nToday&#8217;s word is <i>party<\/i>, in various forms,\nand usually paired with the preposition <i>on<\/i>.\nIn general, it means <i>to use, change, or modify\nwith few or no constraints<\/i>.\nThese aren&#8217;t genteel tea parties;\nthey&#8217;re more like\nwild college parties,\nthe kind\nthat end with the police being called.\n<\/p>\n<blockquote CLASS=\"q\"><p>\nLockBits returns a pointer to the pixel buffer,\nand the caller can party on the memory inside\nthe rectangle until it calls UnlockBits.\n<\/p><\/blockquote>\n<p>\nWhen used with permission verbs like <i>can<\/i> and\n<i>may<\/i>,\nthe usage indicates that the component has permission\nto read from and write to the memory,\nsubject to the given constraints.\n<\/p>\n<blockquote CLASS=\"q\"><p>\nThe code partied on our data structures because it\nused a pointer after freeing it.\n<\/p><\/blockquote>\n<p>\nIt is often used in a negative sense to indicate\nthat the component wrote to memory that it should not have.\nSort of an unauthorized party.\n(Compare\n<a HREF=\"http:\/\/www.catb.org\/jargon\/html\/F\/fandango-on-core.html\">\n<i>fandango on core<\/i><\/a>.)\n<\/p>\n<blockquote CLASS=\"q\"><p>\nThe Contoso notifier injects a DLL into Explorer so it can\nparty on the internal data that keeps track of\nicons in the notification area and thereby disable the\nicons of its competitors.\n<\/p><\/blockquote>\n<p>\nThese sorts of unauthorized parties can be malicious and willful\nas well as merely accidental.\n<\/p>\n<blockquote CLASS=\"q\"><p>\nThe <i>exp<\/i> branch is a party branch.\nYou can commit your changes there\nso we can test it\nbefore pulling it into the release branch.\n<\/p><\/blockquote>\n<p>\nThe word <i>party<\/i> can be used to describe an environment\nin which the normal rules and constraints are reduced\nor removed entirely.\nHere, the <i>party branch<\/i> is presumably\na branch of the project\nin which the usual procedures for code changes don&#8217;t apply,\nor at least apply less strictly than normal.\nYou can put any experimental changes in the\n<i>exp<\/i> branch,\nand then when a new build comes out the next day,\nyou can run your tests against it to see if they solve\nthe problem.\nIf so, then you can start filling out the necessary paperwork\nto pull the changes into the release branch.\n<\/p>\n<p>\nMany release branches have an experimental offshoot.&sup1;\nThe idea is that people developing fixes to the product\ncan commit their changes to the experimental branch\nto see how they work out.\nIf the changes look good, they are pulled into\nthe release branch.\nIf the changes doesn&#8217;t pass muster,\nthey are rolled back.\nThe developers who use the experimental branch are on their\nhonor to keep the branch in good condition.\n<\/p>\n<p>\nNote that this sense of <i>party<\/i> is relative.\nThe experimental branch is a big party compared to the\nstaid and formal release branch,\nbut it&#8217;s still not a crazy free-for-all.\nYou still need to be judicious about what you put into the party\nbranch so you don&#8217;t ruin the party for everybody else.\n<\/p>\n<blockquote CLASS=\"q\"><p>\nThe Q1 branch is locked down for the beta,\nbut you can party your post-beta fixes into the Q2 branch.\n<\/p><\/blockquote>\n<p>\nThe above example further highlights the relative nature of the\nterm <i>party<\/i>.\nEven though the Q2 branch is open to post-beta fixes,\nyou still have to go through the usual test and review\nprocesses for fixing bugs.\nIt&#8217;s just that Q2 will accept any approved bug fix,\nwhereas Q1 will accept only fixes for bugs marked\nbeta-blocking.\n<\/p>\n<p>\n(That&#8217;s a little extra Microspeak for you: <i>blocking<\/i>.\nIn Microspeak,\na\n<a HREF=\"http:\/\/www.mayoclinic.org\/diseases-conditions\/high-blood-pressure\/in-depth\/beta-blockers\/ART-20044522\">\nbeta blocker<\/a>\nis not a pharmacological agent.\nRather, it&#8217;s something that prevents the beta from being released.)\n<\/p>\n<p>\n&sup1;\nIn Windows, the experimental branch associated with a release\nbranch is typically called\n<i>cbt<\/i>.\nThis officially stands for\n<i>Central Build Team<\/i>,\nbut some people who live in my house\nlike to joke that it stands for\n<i>Can&#8217;t Be Trusted<\/i>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To use with abandon.<\/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-1803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-microspeak","tag-other"],"acf":[],"blog_post_summary":"<p>To use with abandon.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/1803","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=1803"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/1803\/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=1803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=1803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=1803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}