{"id":1015,"date":"2007-09-25T20:04:31","date_gmt":"2007-09-25T19:04:31","guid":{"rendered":"http:\/\/www.lubica.net\/bigwhale\/blog\/?p=1015"},"modified":"2007-09-25T20:04:31","modified_gmt":"2007-09-25T19:04:31","slug":"excel-really-excels","status":"publish","type":"post","link":"https:\/\/lubica.net\/bigwhale\/blog\/excel-really-excels\/","title":{"rendered":"Excel really excels!"},"content":{"rendered":"<p>Imate najnovej\u0161i Microsoft Excel 2007? Vpi\u0161ite tole <em>ena\u010dbo<\/em> v celico: =850*77,1.<\/p>\n<p>Ste dobili kot rezultat 100,000? No, narobe. Pravilen rezultat je 65535.<\/p>\n<p>Saj vem, bug pri katerem bi se marsikdo posral ali pa poscal od smeha. Le kako jih je to uspelo. Zadnje \u010dase se precej ukvarjam z &#8216;hardcode&#8217; kodiranjem. Premetavam bite sem ter tja, jih premikam levo in desno, se odlo\u010dam ali bom nekaj <em>castal<\/em> v unsigned int ali v unsigned char. Zato se mi zdi odgovor na to, kako jim je to uspelo sila preprost, hkrati pa precej zaskrbljujo\u010d. <\/p>\n<p>MS Excel za prikaz \u0161tevil uporablja primarno 16 bitne spremenljivke, morda tudi manjse pri manjsih vrednostih, kdo ve. Med ra\u010dunanjem je pri\u0161lo do precej neljubega dogodka, da je Excel pri izra\u010dunu  neke formule narobe preklopil iz 16 bitnega na\u010dina v 32 bitni na\u010din. Morda je naklju\u010dje, da je 100000 binarno ravno 32. In da je en 16 bitni floating point rezultat v bistvu 32 bitni ((vsaj zdi se mi, verjetno tudi odvisno od tega kak je precision)). Nekje je nekaj odletelo <em>out-of-bounds<\/em> in <em>exception handler<\/em> tega ni odpravil tako kot treba. Pri predpostavki, da je vse skupaj pisano v C++ in dejansko imajo exception handler.<\/p>\n<p>Tisti bolj zaskrbljujo\u010d del cele zadeve je to, da so v novem Office paketu \u0161li popravljati samo jedro Excela, tisti del, ki opravlja izra\u010dune. Takle \u0161olski primer napake, bi se enostavno moral preveriti ob avtomatskem <em>unit testu<\/em> in razvijalec bi dobil obvestilo o napaki izpisano z velikimi ampak ni\u010d kaj prijaznimi \u010drkami.<\/p>\n<p>Poleg vsega skupaj pa se \u010dlovek vpra\u0161a, kje vse se Excell \u0161e zmoti? \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imate najnovej\u0161i Microsoft Excel 2007? Vpi\u0161ite tole ena\u010dbo v celico: =850*77,1. Ste dobili kot rezultat 100,000? No, narobe. Pravilen rezultat je 65535. Saj vem, bug pri katerem bi se marsikdo posral ali pa poscal od smeha. Le kako jih je to uspelo. Zadnje \u010dase se precej ukvarjam z &#8216;hardcode&#8217; kodiranjem. Premetavam bite sem ter tja, jih premikam levo in desno, se odlo\u010dam ali bom nekaj castal v unsigned int ali v unsigned char. Zato se mi zdi odgovor na to,&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/lubica.net\/bigwhale\/blog\/excel-really-excels\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-1015","post","type-post","status-publish","format-standard","hentry","category-windows-hate"],"_links":{"self":[{"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/posts\/1015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/comments?post=1015"}],"version-history":[{"count":0,"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/posts\/1015\/revisions"}],"wp:attachment":[{"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/media?parent=1015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/categories?post=1015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lubica.net\/bigwhale\/blog\/wp-json\/wp\/v2\/tags?post=1015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}