{"id":256,"date":"2011-04-07T19:16:30","date_gmt":"2011-04-07T19:16:30","guid":{"rendered":"http:\/\/www.calvert.ch\/geodesix\/?page_id=256"},"modified":"2011-04-08T11:59:37","modified_gmt":"2011-04-08T11:59:37","slug":"providing-easy-to-read-function-names","status":"publish","type":"page","link":"https:\/\/www.calvert.ch\/geodesix\/help\/source-code\/providing-easy-to-read-function-names\/","title":{"rendered":"Providing easy-to-read function names"},"content":{"rendered":"<p>Geeks like us have no qualms about typing <span style=\"color: #0000ff;\">=RTD(&#8220;GeodesiX.RTD&#8221;,,&#8221;geocode&#8221;, &#8220;status&#8221;, &#8220;Tokyo&#8221;) <\/span>in an Excel cell to get a value. Normal people find this a bit clumsy, and it would be nice to humour them.<\/p>\n<p>Excel provides a way to this quite simply. We create a UDF called Geocode whose sole function is to compose the ghastly RTD formula and return that to Excel #15#.<\/p>\n<p>The only fine point here is that the Geocode function has two options.<\/p>\n<ol>\n<li>Return the RTD formula. Excel will note this and continuously call the RTD module to obtain updates of the value<\/li>\n<li>Return an actual value. The UDF now behaves like any other non-volatile function: Excel will never call it again unless its arguments change.<\/li>\n<\/ol>\n<p>GeodesiX makes use of this to avoid being called a second time once a geocode has been resolved, on the reasonable assumption that once we have the latitude of a place, it&#8217;s not likely to change in the near future.<\/p>\n<p>If you&#8217;re implementing a true real-time server, where values change continuously, your UDF must always return the =RTD() formula.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Geeks like us have no qualms about typing =RTD(&#8220;GeodesiX.RTD&#8221;,,&#8221;geocode&#8221;, &#8220;status&#8221;, &#8220;Tokyo&#8221;) in an Excel cell to get a value. Normal people find this a bit clumsy, and it would be nice to humour them. Excel provides a way to this <a href='https:\/\/www.calvert.ch\/geodesix\/help\/source-code\/providing-easy-to-read-function-names\/' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":247,"menu_order":5,"comment_status":"open","ping_status":"closed","template":"momoframepage.php","meta":{"footnotes":""},"class_list":["post-256","page","type-page","status-publish","hentry","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/pages\/256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/comments?post=256"}],"version-history":[{"count":5,"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/pages\/256\/revisions"}],"predecessor-version":[{"id":318,"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/pages\/256\/revisions\/318"}],"up":[{"embeddable":true,"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/pages\/247"}],"wp:attachment":[{"href":"https:\/\/www.calvert.ch\/geodesix\/wp-json\/wp\/v2\/media?parent=256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}