{"id":78,"date":"2019-06-19T15:02:25","date_gmt":"2019-06-19T15:02:25","guid":{"rendered":"https:\/\/creosite.com\/?page_id=78"},"modified":"2020-06-13T15:33:23","modified_gmt":"2020-06-13T15:33:23","slug":"pro-e-programmers-speak-r18","status":"publish","type":"page","link":"https:\/\/creosite.com\/index.php\/programmers-speak\/pro-e-programmers-speak-r18\/","title":{"rendered":"Pro\/E Programmers Speak: R18"},"content":{"rendered":"\n<p>For years people (user people and PTC people) have mentioned there are\npersonal names and comments embedded in the Pro\/E code. But that fact\napparently has never been documented. At the user conference in\nOrlando, I submitted a question to the PTC management track on these\nnames and comments, with some examples, but didn&#8217;t get a reply.\n<\/p>\n\n\n\n<p>Pro\/E may be unique among major software applications because of all\nthe personal observations distributed in the compiled code. These\ncomments could be a contribution to the history of software\nprogramming&#8212;at times you feel as if you&#8217;re looking right over the\nindividual programmers&#8217; shoulders, as they express themself on the\nkeyboard. You get an insight into the people, their work, their common\nculture and their personal differences.\n<\/p>\n\n\n\n<p>To list out the plain text in any compiled code, you can use the Unix\n&#8216;strings&#8217; command. That&#8217;s often useful to check a version, or to\ncollect and compare error messages, normally very dull reading. But\nwith Pro\/E you get a lot more, not dull at all. Everything indented\nbelow is taken directly from the plain text in the R18 code, with\ncomments added.\n<\/p>\n\n\n\n<p>Customers don&#8217;t often talk directly to programmers. However here you can\nlisten to the programmers talking among themselves. Often they are\npolite, courteous even:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Please tell Konstantin.<\/li><\/ul>\n\n\n\n<p>Although there can also be a trace of stress:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Please complain to Konstantin.\n<\/li><\/ul>\n\n\n\n<p>Mike and Jatin seem to share responsibility for part size:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>part size has increased, please notify Mike.\n<\/li><li>part size has increased, please notify Jatin.\n<\/li><\/ul>\n\n\n\n<p>But it&#8217;s Anton who gets the calls with steadily increasing urgency:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Please tell Anton\n<\/li><li>Please tell Anton !\n<\/li><li>cannot classify loop %d &#8211; please tell Anton !!\n<\/li><li>Cannot raytrace this loop.  Please tell Anton !!!!\n<\/li><\/ul>\n\n\n\n<p>Most of the personal names embedded in the code are Russian, not a big\nsurprise, since for years many Russian technical immigrants relied on\njobs with one of the Boston area MCAD vendors. And these Russian names\nusually appear with courteous and polite statements (like, &#8220;Please\ntell&#8230;&#8221;). There&#8217;s also at least one Scot in the crowd:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cannae find the entity\n<\/li><li>Cannae find _any_ entities!\n<\/li><\/ul>\n\n\n\n<p>However other programmers are not quite so polite, here are some\nexamples of a more abrupt native born American style:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Not using your menu item font because it is too big.\n<\/li><li>You have too many windows open. Quit out of a few and retry.\n<\/li><li>Who called me with no expressions?\n<\/li><li>do NOT pass negative index to me please\n<\/li><li>very stupid call &#8211; no view buffer\n<\/li><\/ul>\n\n\n\n<p>Here&#8217;s a common observation, but surely not intended for the paying\ncustomer:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Obviously You don&#8217;t know the Password\n<\/li><\/ul>\n\n\n\n<p>And us native born Americans can get pretty rude, even:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Hey, fix the sect_flip!!\n<\/li><li>Hey schmuck, what table is this %d\n<\/li><\/ul>\n\n\n\n<p>Sad to say, Konstantin&#8217;s children growing up in the US are more likely\nto talk that way than in the polite manner of their father.\n<\/p>\n\n\n\n<p>NC programming often depends on using a quilt of surfaces to guide\nthe tool, and if you lose the quilt that&#8217;s important:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>We lost the quilt !!\n<\/li><\/ul>\n\n\n\n<p>Another NC programming problem is gouges, caused when the cutting tool\ncuts into the part surface. Here the story is one of steady progress:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>resolve_vertical_jumps_3ax: SMALL GOUGE FIXED\n<\/li><li>resolve_vertical_jumps_3ax: MEDIUM GOUGE FIXED\n<\/li><li>resolve_vertical_jumps_3ax: LARGE GOUGE FIXED\n<\/li><li>resolve_vertical_jumps_3ax: HUGE GOUGE FIXED\n<\/li><\/ul>\n\n\n\n<p>Data can have problems:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>BAD DATA.\n<\/li><li>VERY BAD DATA.\n<\/li><li>Dataflow screwup, please tell Piotr\n<\/li><\/ul>\n\n\n\n<p>But an explanation might be close to hand:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>somebody forgot to clean data last time\n<\/li><\/ul>\n\n\n\n<p>We all probably know someone like that, the kind of person who forgets\nto clean up after themselves, making problems for others.\n<\/p>\n\n\n\n<p>In MCAD programming, geometry can be difficult to deal with:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Tweak_faces error: new_geom is INVISIBLE. Please, tell Lev.\n<\/li><li>Tweak_faces error: old_geom is INVISIBLE. Please, tell Lev.\n<\/li><\/ul>\n\n\n\n<p>Sometimes the whole outlook isn&#8217;t good:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>LOOKS BAD\n<\/li><li>Something BAD !\n<\/li><li>Very, very BAD !\n<\/li><\/ul>\n\n\n\n<p>Something can happen in different ways:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Something happened.\n<\/li><li>Something happened !\n<\/li><li>Something happened !!!\n<\/li><\/ul>\n\n\n\n<p>Sometimes we get a few more details about something:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Something is already there\n<\/li><li>something didn&#8217;t get popped\n<\/li><li>something&#8217;s wrong.\n<\/li><li>something is wrong.\n<\/li><li>SOMETHING WRONG !!!\n<\/li><\/ul>\n\n\n\n<p>Sometimes something wrong doesn&#8217;t mean much:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>draft ok setup ok picture wrong?  Applying anyway.\n<\/li><li>dropped through to the bottom. Returning TRUE anyway\n<\/li><\/ul>\n\n\n\n<p>Goofs happen in programming, that&#8217;s normal:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Major goof: special_draw_brick.\n<\/li><li>tri_insert goof.  Please tell KMR\n<\/li><li>Goofed\n<\/li><\/ul>\n\n\n\n<p>And mistakes too, sometimes big mistakes:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>eval_cl_chain_quick: big mistake\n<\/li><\/ul>\n\n\n\n<p>Imagine you&#8217;re on a plane, and you happen to hear this exclamation from\nthe cockpit:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>NO OVERRIDE OCCUPY!!!!! DOING IT ANYWAY&#8230;\n<\/li><\/ul>\n\n\n\n<p>You might be concerned. But we&#8217;re not on a plane, this is just a\nsoftware application, and it doesn&#8217;t seem to apply to any particular\narea of the software.\n<\/p>\n\n\n\n<p>However here&#8217;s a warning message that might have any user worried:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>You better don&#8217;t push this button&#8230;\n<\/li><\/ul>\n\n\n\n<p>I tried to find out from the context, which button it is, that you&#8217;d\nbetter not push, but that isn&#8217;t clear. Hopefully you get the message\nbefore you push the button.\n<\/p>\n\n\n\n<p>Of course, in any programming task, weird things happen:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>rgb_img_seek: weird dim\n<\/li><li>rgb_img_seek: weird image type\n<\/li><li>weird geom with no outer contour\n<\/li><li>subkeys even though handle IS the parent of prev_handle &#8211;<br>\n  Weird !\n<\/li><li>subkeys, even though handle IS the parent of next_handle &#8211;<br>\n  Weird !\n<\/li><\/ul>\n\n\n\n<p>Weird slots can jump on you almost any time, you&#8217;d better be alert&#8212;\nlook out, be ready to duck down right under your desk!\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>WEIRD FROM-TO ONE SIDE SLOT &#8211; LOOK OUT !\n<\/li><li>WEIRD THRU-UNTIL BOTH SIDES SLOT &#8211; LOOK OUT !\n<\/li><\/ul>\n\n\n\n<p>You hear some pretty candid admissions:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>I don&#8217;t like infinite loops\n<\/li><li>don&#8217;t know what to say about the failure!!!\n<\/li><li>check_break_intersections () didn&#8217;t do the job!\n<\/li><li>I think this function never works.\n<\/li><\/ul>\n\n\n\n<p>Sometimes the statement is the simplest possible fact:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>I am here!\n<\/li><\/ul>\n\n\n\n<p>(good at least someone is on the job there).\n<\/p>\n\n\n\n<p>Sometimes questions appear just as they might have been asked\nright out in the hallway, or at the soda machine:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What did I forget?\n<\/li><li>Well is it or isn&#8217;t it?\n<\/li><li>just found it, didn&#8217;t I ?\n<\/li><li>how did we get out of the loop?\n<\/li><li>Do we copy sub structures?\n<\/li><li>Should copied surfaces be updated if they are cut?\n<\/li><li>DOES THIS WORK?\n<\/li><\/ul>\n\n\n\n<p>And sometimes the tone is more discursive:\n<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Though I don&#8217;t know what the problem is<br>\nI suspect it may be related to either<br>\n%s(%d) or EDGE(%d).\n<\/li><\/ul>\n\n\n\n<p>Sometimes comments are tied to particular routines:\n<\/p>\n\n\n\n<li>which_seg_to_clean: don&#8217;t know where to go<br>\nrunmode %d &#8212; calling crash_on_exit (), sorry &#8230;\n\n<p>Yes, I&#8217;d hope you would say sorry, if you called crash_on_exit on me.\nSorry is refreshing, would be nice to see more computer error messages\nthat say sorry. Most of these were probably intended for fellow\nprogrammers, and not for users:\n<\/p>\n\n<ul>\n<li>sorry, not fully implemented yet\n<\/li><li>Sorry, not implemented yet for connectors&#8230;\n<\/li><li>Functionality doesn&#8217;t ready yet. Sorry.\n<\/li><li>something is wrong &#8211; sorry, this is experimental\n<\/li><\/ul>\n\n<p>Anyone who&#8217;s done any programming should recognize these states of\nmind, when words just fail:\n<\/p>\n\n<ul>\n<li>????\n<\/li><li>??????\n<\/li><li>?!?!?!?\n<\/li><\/ul>\n\n<p>And the monotony and routine of programming work can get you down:\n<\/p>\n\n<ul>\n<li>legacy_free_backup_feat_low\n<\/li><li>What the bloody hell&#8230;\n<\/li><li>legacy_recover_feat_low\n<\/li><li>What the bloody hell&#8230;\n<\/li><\/ul>\n\n<p>Language becomes pretty colloquial at times:\n<\/p>\n\n<ul>\n<li>Guess transformation ain&#8217;t even close.\n<\/li><li>ain&#8217;t no model\n<\/li><li>add_algndtans_eq: This code ain&#8217;t written yet.\n<\/li><\/ul>\n\n<p>Perhaps by now you might agree with this statement:\n<\/p>\n\n<ul>\n<li>Sorry, too many messages&#8230;\n<\/li><\/ul>\n\n<p>To conclude, anyone who has ever worked on a major software development\nproject has probably felt this way:\n<\/p>\n\n<ul>\n<li>how could we have survived this?\n<\/li><\/ul>\n\n<p>However from the heart of the code comes this affirmative answer:\n<\/p>\n\n<ul>\n<li>But we created it!\n<\/li><\/ul>\n<p><\/p>\n<addres>\n\u00a9 Peter Nurkse<br>\nSun Microsystems<br>\n<\/addres><\/li>\n","protected":false},"excerpt":{"rendered":"<p>For years people (user people and PTC people) have mentioned there are personal names and comments embedded in the Pro\/E code. But that fact apparently has never been documented. At the user conference in Orlando, I submitted a question to the PTC management track on these names and comments, with some examples, but didn&#8217;t get &#8230; <a title=\"Pro\/E Programmers Speak: R18\" class=\"read-more\" href=\"https:\/\/creosite.com\/index.php\/programmers-speak\/pro-e-programmers-speak-r18\/\" aria-label=\"Read more about Pro\/E Programmers Speak: R18\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":46,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-78","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/pages\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":5,"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/pages\/78\/revisions"}],"predecessor-version":[{"id":829,"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/pages\/78\/revisions\/829"}],"up":[{"embeddable":true,"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/pages\/46"}],"wp:attachment":[{"href":"https:\/\/creosite.com\/index.php\/wp-json\/wp\/v2\/media?parent=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}