{"id":92,"date":"2007-09-29T15:18:18","date_gmt":"2007-09-29T23:18:18","guid":{"rendered":"http:\/\/www.stattenfield.com\/keith\/blog\/2007\/09\/29\/the-end-game\/"},"modified":"2007-09-29T15:18:18","modified_gmt":"2007-09-29T23:18:18","slug":"the-end-game","status":"publish","type":"post","link":"https:\/\/www.stattenfield.org\/keith\/blog\/2007\/09\/29\/the-end-game\/","title":{"rendered":"The end game"},"content":{"rendered":"<p>I work on Mac OS X, and long ago it was announced that Mac OS X 10.5, codename Leopard, would be shipping in October, so it&#8217;s no secret that the process of wrapping up the release has been going on for a while.  It&#8217;s an interesting time for an engineer, at least for me at Apple, because it generally means that I&#8217;m hip deep in bugs and the goal every day is to make them go away as quickly as possible.  Sometimes that means fixing them, because the bug represents something that is actually wrong with my code which I need to address.  Sometimes the bug I have isn&#8217;t really a bug at all in my code, but a problem elsewhere which I can&#8217;t do anything to address.  And, sometimes it&#8217;s a problem in whatever code is calling me, usually written by someone outside Apple, but which either behaved correctly in previous releases or which behaved differently in previous releases, and I have to patch around it in my code because even though the bug is in that code over there, well, it isn&#8217;t going to get changed and we don&#8217;t want to ship an os release which breaks a lot of things, because people hate that.<\/p>\n<p>So, I end up doing lots of things like &#8220;If an application A launches another application B, and if it then tells the system to bring that application forward, and if that application what was launched is running but isn&#8217;t yet far enough along in its launch to be brought forward, then save aside the knowledge that B should be brought forward and let application A believe that bringing it forward worked, and later, when application B does get far enough along in its launch process, bring it forward then, unless something else has happened between back then and now which changed the application ordering.  Do all that so that an app written and released back in 2001 keeps working, because a fair number of folks still use that app.  And do all that even though application B would have always been brought forward after it finished launching, so there&#8217;s never been a need for application A to do so, but it did, and it always use to work and so it needs to continue to work.&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I work on Mac OS X, and long ago it was announced that Mac OS X 10.5, codename Leopard, would be shipping in October, so it&#8217;s no secret that the process of wrapping up the release has been going on for a while. It&#8217;s an interesting time for an engineer, at least for me at [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-92","post","type-post","status-publish","format-standard","hentry","category-web-places"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":0,"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stattenfield.org\/keith\/blog\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}