Kalkulatorji na sto in en način
Mavrik
9. jun 2007 ob 12:39:08
Mnogi gotovo poznate spletno stran Worse Than Failure, bivši The Daily WTF, katere glavni namen je zbiranje vseh čudaškosti, na katere naletijo razvijalci programske opreme pri takih in drugačnih podjetjih. Tako ni nobeno naključje, da je tam zbranih nekaj najbolj nemogočih primerov programske kode, kar jih je zmožna izpljuniti človeška pamet. Ravno zato so se pred dobrima dvema tednoma v ekipi odločili, da bodo razpisali majhen natečaj, katerega cilj je bil dokaj preprost: sprogramirati kalkulator, ki bi zamenjal Windowsovega na čimbolj nekonvencionalen način, s čimbolj hroščato kodo, ki bo še pa vedno delovala.
Pred nekaj dnevi je tako komisija končno prišla iz svoje temnice ter objavila dvanajst najboljših med več kot sto poslanimi programčki. Finalisti so bili:
- Stephen Oberholzer: Kalkulator s štirimi funkcijami, za katerega je značilno, da še nikoli ni slišal za matematiko s plavajočo vejico.
- Dan U: FileSystemHashMapNotepadCalculator, ki povzema Linux filozofijo uporabe že obstoječih orodij v op. sistemu. Tako programček odpre Windowsov kalkulator, skopira rezultat računa na odložišče, odpre Notepad, prilepi rezultat ter ga shrani v ustrezno mapo na C: particiji. Zatem samo še naloži rezultat iz te datoteke in ga prikaže.
- Keith Lucas: Estimator, ki se ponaša s svojo server-client arhitekturo. Vsakič ko uporabnik pritisne na gumb, se pošlje sporočilo na enega izmed 16 odprtih portov na strežniku (vsak port za svoj gumb). Ko je pritisnjen gumb '=', se sestavi izraz v LISPu in nato poračuna. Rezultat je zatem poslan v obliki XMLja klientu.
- Welbog: TerseCalc, zasnovan za računalnike brez matematičnega koprocesorja.
- Dave C: WebCalc, ki teče v oknu brskalnika, s pomočjo AJAXa sestavlja izraz, dokler uporabnik ne pritisne '='. Zatem izraz pošlje Googlu, dobljene podatke obdela in izpiše rezultat.
- Ivan Milyakov: OCRCAL, pri katerem uporabnik riše številke na ustrezna mesta, kjer jih kalkulator prepozna in izračuna. Vključuje tudi konfiguracijsko datoteko v jasni angleščini, kjer so opisane vse številke in tako omogoča dodajanje poljubnih znakov.
- Rube Goldberg: Kalkulator, za katerega so decimalne številke nepotrebno kompliciranje in tako predstavlja vse številke kot ulomke. Obenem je zaradi večje hitrosti napisan v assemblerju ter uporablja predpomnjenje v obliki XML datotek.
- Greg D: Univerzalni kalkulator, ki je pripravljen za vse matematične probleme vseh časov, zahvaljujoč uporabi ločenih knjižnic za še tako majhno malenkost. Podpora dodajanju svojih števil je samo plus.
- Terry: Kalkulator, ki se drži starega dobro poznanega uporabniškega vmesnika, uporablja namreč kar fotografijo namiznega kalkulatorja. Za računanje uporablja rekurzivne funkcije, ki seveda tečejo v ločeni niti. Seveda program za thread safety še slišal ni in porablja več RAMa kot Vista.
- Denis Ferron: FerronCalc, ki je v celoti baziran na C++ predlogah in uporablja state machine, čeprav ni nobene potrebe za to.
- Rodolpho St. John: VICE, ki bi moral biti zmožen teči na praktično katerikoli platformi. Programska koda se namreč začne z virtualnim tranzistorjem ter virtualno povezavo, se nadaljuje čez virtualna stikala, multiplekserje, križišča ter še kaj. Tako avtor dejansko v programski kodi zasnoval preprost procesor, ki zmore seštevati, odštevati in množiti 32-bitna števila.
- James NG: ExtensibleCalc, ki je opremljen s celim kupom različnih načinov za računanje, med drugim s takim, kjer moramo na koncu sami vtipkati rezultat.