Improv a bounty

Profesionál používá profesionální nástroje. Řešením problémů zdánlivých vznikají problémy skutečné. A za práci si člověk zaslouží odměnu.
Ale jak to souvisí s tímhle článkem?
Zpracovávám teď větší statistický soubor. Pamatuji se na doby, kdy jsem matlal statistiky v Excelu, a byla to hrůza. Svůj oblíbený Calculus pro ZX Spectrum ale nemůžu použít, protože (když si odmyslím, že nepoužívám D40/80), nemá zabudované statistické funkce a musel bych si je sám psát, což ve standardním spreadsheetu není zrovna sranda. Uvidíme proč.
Co tedy použít nějaký statistiický systém?
U nás se v podstatě dají použít dva.
Statistica od Starsoftu, která je placená, ale nikde na jejich webu nezjistíme, kolik. Ceník kurzů ale hovoří za vše – jednodenní kurz za 7 000 a pak už jsou ceny jenom vyšší.
Podle mne jedinou rozumnou alternativou je naprosto vynikající, navíc free & open R Projekt (www.r-project.org).
Jeho velká výhoda je, že byl portován i na Mac OS X (což potřebuji já) a dokonce i na Windows (což se hodí nějakým 99% ostatních lidí – původně jsem chtěl napsat “dementům v populaci”, ale u pracovního nástroje si často člověk nemůže vybírat a má na stole prostě to, co mu zaměstnavatel na stůl postavil – pokud si k tomu nenosí ještě vlastní jablečný či aspoň linový notebook).
Vzhledem k tomu, že standardní vědec 80. a 90. let pracuje v UNiXu, je i R program půvoodně unixový, ovládaný z vlasní příkazové řádky – a dokumentace k němuvám zajistí přísun čtení na pěkně dlouhou dobu. Doporučuju vytisknout, opatřit záložkou a ponechat na záchodě jako jedinou dostupnou literaturu. Do měsíce takhle zvládnete prostudovat i hůře stravitelé texty (doma jsme většinou mívali na záchodě učebnici fyziky nebo výbory esejí matematiků z Akademie Věd SSSR).
při normálním pracovním nasazení je ale potřeba ihned zpracovávat data a ne se učit ovládat zase nějaký nový systém.
Kurzy k ovládnutí R taky existují. Akademie Věd koná e-learningový kurz asi za 2 000, ale to rovnou můžu sedět doma a louskat v originální dokumentaci (zjistil jsem totiž, že i
v dokumentaci k domácím počítačům dávám přednost anglickému originálu před českým “překladem” – ověřeno na dokumentaci k programu Falc pro Sord m5 (což je vlastně zjednodučený Sordovský PIPS – Pan Information Processing System, jakýsi programovatelnný spreadsheet a databáze v jednom, PIPS III byla “killer app” pro Sordovské stroje na CP/M). kromě kurzu e-learningovéhose konái kurz prezenční, na kterém s probírá vedle R i Statistica (ta od Starsoftu), což je možná důvod, proč týdenní kurz najednou stojí 17 850 korun!
(Při zhruba třiceti účastnících to musí být “rejže jak prase”, můj problém je, že absolvování podobného kurzu je moje studijní povinnost a nemám moc z čeho vybírat).

Vraťme se tedy se spreadsheetům.
Vzpomněl jsem si na brožurku k počítačům NeXT. Šlo vlastně o chválu nového objektového vývojového prostředí jazyka Objective-C. “V našem světě, Lotus znovu objevil spreadsheet“. Což vzhledem k tomu, že v tehdejším světě byl Lotus 1-2-3 asi nejpoužívanějším spreadsheetem, bylo silné tvrzení.
Jenže, bohužel, pravdivé. Bohužel proto, že inovace, které Lotus Improv zavedl, nedošly většího rozšíření.

Vezměte si to: spreadsheet se od doby VisiCalcu příliš nezměnil. Porovnejte si základní filozofii Microsoft Excelu 2008 (což je nejnovější verze, kterou se mi podařilo najít, samozřejmě není pro Windows, kde dosud vládne Office 2007, ale pro Mac OS X). Nic nového. Bohapustá vykrádačka třicet let starého programu.
Srovnejte si původní VisiCalc pro Apple II, Microsoft MultiPlan (zde ve verzi pro Commodore 64) a Microsoft Excel 2008.
VisiCalc, Apple II
Microsoft MultiPlan, Commodore 64
Microsoft Excel 2008, Mac OS X

Pořád to samé. Řádky 1-2-3, sloupce A-B-C, mezi nimi číslíčka,neviditelné rovnice (vidíte vždy jen rovnici týkající se daného políčka), a čím víc dat, tím víc rovnic (které většinou naštěstí nemusíte znovu vypisovat jak debilové,ale dají se kopírovat).
Pokud máte datový soubor, kde máte tak 2000 řádků, ke každému tak 20 různých údajů, z toho máte provést výpočty a ty pak statisticky zpracovat, přibudou vám ještě sloupečky s mezivýpočty, s výslednými výpočty, s jejich sumami, průměry, ochylkami, průměry těch odchylek a odchylkami průměrů těch odchylek, t-testy (které jsou mimochodem v Excelu naprogramovány s chybou), což znamená bratru desítky tisíc rovnic typu R50=(R49+$A$16)*sum (A50..P50)!
Možná se vám to vše podaří vtěsnat na jeden list.

Existují dokonce studie, které zkoumají počty chyb v rovnicích v závislosti na počtu políček v dokumentu, a zjistily, že obsluze unikne až 57% techto chyb.

Lotus Improv je jiný. Na NeXT Stepu to byla opravdu killer app. Nicméně, pro ty, kdo NeXT na stole neměli, to nebyl zrovna důvod, proč si “Stevův předražený černobílý počítač pro studenty” (jak ho nazval Bill Gates) koupit.
Lotus už od začátku plánoval port Improvu pro Windows a Mac. Jenže, co bylo jednoduché v objektovém prostředí NextStepu, to dost dobře nešlo v tehdejších Windows ani na tehdejším Mac OS s jejich API a programovacím modelem. Port proMac OS nejspíš nevznikl vůbec. Port pro Windows se nakonec po delší práci zdařil. Jeho problém ale byl, že konkuroval nejenom Quattro pro a Excelu, ale i vlastnímu Lotus 1-2-3, který společnost jako tradiční produkt odmítla novinkou zcela nahradit.

Hlavní změna, se kterou Lotus přišel, bylo oddělení logiky, struktury a prezentace dat.
Lotus Improv, NextStep
To, co vidíte,není tabulka. Je to jen její prezentace. Improv si data stejně ukládá vícerozměrně, takže se normálně v ploché tabulce nedají úplně jednoduše zobrazit.
Data (“sloupce” a “řádky”, i když v Improvu je tento pojem více než relativní, protože “sloupec” se snadno může stát “řádkem”) se konečně zbavila svého A16, B25, C48, a mají normální názvy, které se používají v rovnicích. Rovnice se ukládají odděleně (Improv je zobrazuje v samostatném okně pod daty), a platí ne pro určité políčko, ale pro celou tabulku (cílová data, tedy “sloupce” nebo “řádky”, kterých se rovnice týká, jsou definována přímo v rovnici).
Takže “rychlost = dráha / čas”, “cena = (cena[PREV] + priplatky::postovne) * groupsum (polozka)” – to je přesně případ našeho R50=(R49+$A$16)*sum (A50..P50) – oboje jsem si právě vymyslel jako příklad, takže v tom nějakou extra logiku nehledejte.
O tom, jak jsou data dynamická, se ještě přesvědčíme.

No fajn, řeknete si. Jenže co s tím?
Ano, jeden by hned běžel shánět si vlastní NeXT Station (nebo NeXT Cube) a k ní příslušný Improv (protože se asi nedá jen tak někde stáhnout). To ale není cesta.
Ti, co používají Windows,mají svého druhu štěstí. Improv 2.0, určený původně pro Windows 3.1, běží totiž i na současných NT verzích Windows (na Windows 2000 ho spustíte určitě). Sice může házet chybovou hlášku (protože nerozeznává swapfile ve Win NT), ale funguje.
Koupit se dá na Amazonu za 72 dolarů a příručky k němu se na Amazonu také najdou.

My, co máme Maca, máme ale smůlu. Zdá se, že Mac OS X, nástupce NextStepu, svůj Improv nemá.

Apple Works, dnes již zastaralé a nepodporované, obsahují zcela klasický spreadsheet, navíc o něco jednodušší, než Excel, s vlastním formátem souborů. A na novějších verzích OS X bez Classicu je nespustíte. Mám navíc dojem, že nejde o Unicode aplikaci.

Pravda, Apple přišel se svými Numbers, ty se objevily poprvé v iWork 2007 a nyní pokračují v iWork 2009, ale já nějak netoužím vyhazovat 3000 korun za novou verzi.
Numbers jsou sice o něco jednodušší a přehlednější než Excel, ale Improv to pořád není.
Jednoduchost a přehlednost Improvu se sice snaží dohnat některými kompromisními řešeními, jako jsou Pivot tables (které najdete ale i v Excelu – jejich použití ale není úplně nejjednodušší a je standardně microsofťácky nepřehledné), je to ale pořád jen první krok na douhé cestě, kterou Lotus kdysi urazil celou.
Bordel v rovnicích stále zůstává, i když v Numbers existuje možnost, jak si je zobrazit v odděleném seznamu:
Seznam rovnic v Apple Numbers

Numbers jsou navíc orientované spíš na prezentaci, než na shromažďování dat a vlastní výpočty. Je to spíš jakási náhrada worďáckých tabulek, kam si může nějaký manažer vepsat přehledně uspořádané údaje,a jentak mimochodem si k nimi spočítat nějaké jednodušší “kupecké” vzorce, a vylepšit si tak prezentaci, než matematický a statistický nástroj. Velká tabulka s tisíci údaji by v Numbers ani nebyla moc praktická a nevypadala by úplně dobře. Možná bych mluvil jinak, kdybych měl možnost osobně vyzkoušet. Apple se totiž, zdá se, opravdu snaží a pracuje dokonce na iWorks.com, což je věc, která má umožnit on-line spolupráci na dokumentech a jejich sdílení (navíc cross-platform, mezi iWorks a Microsoft/Open Office).

Co tedy dělat, aby člověk nemusel používat Microsoft Excel – což je od doby, co existuje Mellel (či Apple Pages) a Apple Keynote, snad poslední software Microsoftu, který mi (v edici pro studenty a učitele) zůstává na disku?

Existuje pokračovatel Improvu. Funguje na Windows i Mac OS X. Moje podezření je, že je založen na Javě (takže běží pod virtuální mašinou,což na výkonu nikdy dvakrát nepřidává), ale když bude použitelný – proč ne, že ano? Lepší něco, než nic.
Jmenuje se Quantrix. A ve standardní edici stojí 329 dolarů. To fakt není málo! Za ty prachy si už člověk pořídí pomalu počítač. Takový software nestojí za to, i kdyby byl pozlacený, uměl zařídit světový mír a udělovat Nobelovu cenu.
Ale jinak je to parádní kousek.

Zjednodušeně a ve zkratce vám jeho možnosti odhalí TATO PREZENTACE.

Předvádí na jednoduchém modelu:
Předpovídáme počty prodaných aut za čtvrtletí, pokud známe koeficient nárůstu prodeje.
Aut je několik různých modelů, které si můžeme normálně uspořádat do Excelských řádků A1..A5, ale proč sije nepojmenovat normálně lidsky? Situaci sizkomplikujeme tím, že chceme předpověď nejen na různé kvartály, ale i na různé roky,a krom několika různých modelů se bude provádět prodej i v několika státech.
Nejprve se předvádí zadání rovnice s fixním koeficientem, podle kterého se prodej aut v kvartálech bude dvojnásobit, potom si ale zavedeme proměnnou, a to dokonce pro každý stát jinou (vývoj prodejů v každém státě bude jiný).
Takže máme (přesné počty si nepamatuju, tak jen zhruba) pět modelů aut ve třech státech (celkem 15), prodávaných ve čtyřech kvartálech čtyř roků (16 kvartálů), plus součty – celkové prodeje za kvartál, prodej modelu ve státě, prodej modelu ve všech státech, to vše i ve verzi za rok.
Ne méně než nějakých 300 políček
Kontrolní otázka:
Kolik je ve výsledném dokumentu rovnic?
Ten, kdo se na prezentaci podíval, už zná odpověď:
Rovnic je tam opravdu přehršel. Přesněji řečeno čtyři rovnice.

Tahle prezentace je věc, která člověka opravdu přesvědčí o tom, že (alespoň, co se týče mě osobně) Excelům a ostatním derivátům 30 let starého VisiCalcu (ano, VisiCalc letos oslaví třicátiny!) v dnešní době už dávno odzvonilo – nebo aspoň již odzvonit mělo.

Problém je ten, že Quantrix sám sebe bere tak, jak přistupovalo vedení Lotusu k Improvu: “uděláme z toho balík pro high-end finanční modelování, s cílovou skupinou 10% enterprise společností”. Na to autoři Improvu řvou: “Ne,ne ne! Tohle je spreadsheet, jednoduchý, určený lidem, měl by běžet na stolním počítači v polovině všech kanceláří, účetními počínaje, úřady a školami konče!”
Proto si taky Quantrix nasazuje cenu takovou, jakou si nasazuje. Manažera v kravatě a v audině nezajímá, co si kupuje. Ale stojí to 329 dolarů, tak to asi bude dobré. Takže si raději koupí ještě dražší verzi za 1425 dolarů!

Dobře, co má ale dělat člověk, který těch 329 dolarů nedá?
(Třeba proto, že je už utratil za kurs statistiky, který potřebuje kvůli škole, a škola mu ho neproplatí proto, že má limit 3 000 korun?)

Obraťme se opět do vod free & open software (můj oblíbený).
Ano, někoho Lotus Improv nadchl tak, že začal tvořit spreadsheet založený na vlastnostech Improvu, a to, narozdíl od Quantrixu, ve free & open verzi (jak říkám – moje oblíbené).
Jmenuje se FlexiSheet. A je vyvíjen pro Mac OS X.
Když se kouknete na Sourceforge, zjistíte, že moc aktivity kolem FlexiSheetu není a stáhnout se nedá ani binárka,ani zdroják.
A to jde o produkt, který byl dotažen až do verze 0.5.6!
Původní stránka www.materialarts.com/FlexiSheet je taky mrtvá a prázdná.
Různé Version Trackery a podobné ho sice znají, ale dělají jednu velkou chybu, za kterou je nenávidím – odkazují se na stránku autora programu (což hlavně u Version Trackeru nedává moc smlysl v okamžiku, kdy autor má na stránce jenposlední verzi, která k běhu potřebuje leopard a Intel, zatímco já sháním starší verzi, o které Version Tracker tvrdí, že běhala na PPC pod Tigerem).
Takže se FlexiSheet normálně najít a stáhnout nedá.
FlexiSheet beta, Mac OS X
Napadlo mne podívat se na archive.org, ale .dmg odtamtud stažený mi nejde namountovat (byť jsem zkoušel obrazy webu z různých let).

A to nás vede k závěrečné otázce:
Proč mají autoři na sourceforge tak mrtvo?
Vždyť by to přeci byl zajímavý program! A psát ho v Objective-C na Macu musí být podobné situaci, kdy vznikal Improv v Objective-C na NeXTu.
Je pravda, že na to možná nemají čas.
Možná nemají ani pořádnou motivaci.
Každý člověk musí nějak živit rodinu či aspoň sebe, a pokud není nadšenec, který si na živobytí vydělává jinak a svým projektům pak věnuje volný čas, pak mu zákonitě jedno musí chybět: buď čas, protože ho spotřebuje na vydělávání peněz, nebo mu pak chybí ty peníze.
V podstatě záleží na tom, jak moc časově náročné to vydělávání peněz je. Víc času na projekty bude mít člověk, který pracuje za třicet tisíc osm hodin denně, než někdo, kdo nemá pořádně ani deset, a to ještě včetně služeb přes noci a víkendy, které zase užírají čas.
V podstatě se dá říct, že pokud by takový projekt vydělal svému autorovi tolik, aby nemusel měsíc chodit do práce, pak by mu ten měsíc vývoje mohl věnovat.

Zajímavé je, že v okamžiku, kdy existuje hotový program (free & open) s možností darovat nějaký obnos (oblíbené “Donate!”), málokdo přispěje.
Pokud ale nějaký program není dostupný, ale mohl by být, tak ten, kdo ho potřebuje, je najednou mnohem ochotnější přispět na jeho vývoj.
V podstatě se dá říct, že chtěl-li by někdo z toho, že napíše nějaký užitečný program, taky něco mít, je výhodnější chtít peníze předem, dokud ten,kdo program chce,má motivaci přispět (aby program opravdu byl) a ne až potom, kdy si lidi program volně stahují a kopírují a přispěje jen málokdo.
(Trochu výjimka je App Store pro iPhone, kde placenou aplikaci bez zaplacení prostě nedostanete. Tradiční disttribuční kanály krabicového software už ovšem trpí kopírováním, různými cracky a keygeny. Ale to s platbami za free & open software nesouvisí – kdo by chtěl být vydřiduch a prodávat soft za přemrštěnou cenu v krabici, když si ho koupí jeden člověk a rozkopíruje ho celé planetě?)
Na rozhazování nemám, ale na FlexiSheet bych přispěl.

Možná jsem se o tom už zmiňoval.
Amigisti vypisují odměny, zvané Bounty (v případě oné slavné lodi to znamenalo spíš “Štědrost”, ale jinak je to opravdu prémie, odměna, dar, výnos, a konečně subvence či pobídka, což nejpřesněji sedí na amigistickou realitu).
Existuje na to i webový portál amigabounty.net
Amigisté prostě takhle zjistí, že potřebují nějaký kousek softwaru (ale mohl by to být i hardware). A vyhlásí, obrazně řečeno, “kdo chce tenhle program, ať hodí sem do hrnce nějaký prachy”.
Když se nashromáždí dost peněz, tak lidi asi program opravdu chtějí a vývojáři se můžou začít snažit.
Kdo přijde s hotovým projektem, ten dostane “prachy z toho hrnce”. A může se takhle dospět k částkám, které mohou motivovat i k několikaměsíčnímu vývoji nějakého složitějšího projektu!

Možná, že by tímhle způsobem vznikalo víc užitečných věcí i na jiných platformách, než je jen Amiga.

A možná, že by to pomohlo k tomu, abych konečně odložil Excel a další VisiCalcovské příšerky a začal konečně pracovat s daty tak, jak si to 21. století, zvlášť, když 21. století Lotusu nastalo někdy roku 1989.