"Počas tvorby programu sme narazili na nízkoúrovňové technické obmedzenia."
Ne, nikoli, narazili jsme na omezeni autora. Asi by byl mnohem rozumnejsi priklad kadit to pi po cislicich do GUI. Z toho by slo i snaze odvodit pouziti takovyho modelu pro nejakej jinej vypocet. Sotva chapu, k cemu by mohl bejt dobrej program, kterej pracuje davkove a po ukonceni davky vybleje cast vysledku do GUI -- cast omezenou bajtove velikostne na dnesni dobu tak, ze se tam nevejde skoro nic (jak velke jsou dnesni zvuky, obrazky, mereni a datove soubory...).
Hodne nesmyslnej priklad.
Trocha osvezeni: http://www.cut-the-knot.org/Curriculum/Algorithms/SpigotForPi.shtml
(Rrrola to napsal v x86 asm na tusim 32 bajtu vcetne I/O, ale nenasel jsem to verejne vystaveny, byt jsem ten kod dostal soukrome mailem.)
Krom výše zmíněného wtf o tom, že omezení velikosti Message v queue by rozhodně nemělo být technická překážka (i bez spigota by stačilo převést na string a poslat ve více částech, které hlavní vlákno zase spojí), mě ještě zaráží přístup autora k "multiplatformnímu kódu". Psát dvě verze téže aplikace je obvykle cesta do pekel. Obzvláště, když ji lze snadno napsat tak aby fungovala na linuxu i na windows. Tak snadno, že to dokonce autor v článku sám bezděky dokázal. Verze pro windows totiž v pohodě funguje i na windows. Ano, není to teoreticky správný kód, ale funguje multiplatformně a případné odchylky od ideálu v praxi bohatě stačí okomentovat ve stylu "# autor ví, že tohle je není úplně dobře, ale musí to tak být, protože windows".
Původně jsem myslel, že autor chce veřejnost upozornit na to, že při použití Tkinter nefunguje automatické uvolňování paměti zabrané automaticky zrušenými grafickými objekty, ale je potřeba každý objekt v rušeném stromu explicitně zrušit, případně že na to má nějaký „workaround“. Je to to největší omezení Tkinter, na které navíc není nikde upozorněno.