Rozhovor s programátorem Miroslavem Němečkem

Rozhovory Rozhovor s programátorem Miroslavem Němečkem

Rozhovor zveřejněný na http://www.osdos.net/ dne 9.3.2007 a 3.4.2007 .

Každý z nás, kdo začínal s PC na začátku 90 let, prožil dobu, kdy DOS byl nekorunovaným králem všech dostupných počítačů. Každý z nás měl své oblíbené hry a programy, na které jistě rád zavzpomíná. Mojí nejoblíbenější hrou byl VLAK a nejoblíbenější aplikací DOS MANAŽER. Oba dva tyto programy mají společného autora, Ing. Miroslava Němečka. A protože mi skoro každý týden zasíláte prográmky a utilitky od tohoto autora, požádal jsem ho, zda by zavzpomínal a poskytnul pro náš WEB rozhovor o době, která tvořila budoucnost.

Začněme tedy od začátku. Kdy jste se poprvé setkal s počítačem?

S prvním počítačem jsem se setkal na střední škole na branném dni Svazarmu. Byl jím Sinclair ZX81. Obdivovali jsme tento technický zázrak a především předváděnou hru "Dělo" spočívající ve střelbě na cíl pod zadaným úhlem a se zadanou rychlostí. Dělo bylo znázorněno černobílou "kostičkovou grafikou" s výstupem na přenosný televizor Merkur.

Vlastně první "počítač" jsem si postavil někdy v 10 letech. :-D Měl jsem kapesní kalkulačku značka byla Calcumat 106 a když už mě přestalo bavit neustále opakovaně naťukávat prvky číselných řad, vyrobil jsem si k ní programovací přípravek. Kontakty klávesnice jsem vyvedl ven, na pérka, a protahoval jsem přes ně děrnou pásku s otvory (=proužek papíru s vyseknutými dírkami). Klávesnice byla organizována do matice (řádky x sloupce), takže pozicí dvou otvorů se simulovalo sepnutí některého tlačítka. Trvalo dlouho, než jsem mechaniku doladil k dostatečné funkčnosti. Ale pak jsem si pořídil programovatelný kalkulátor Texas Instruments TI58-C a to už bylo jiné "dělo". :-)

Počítač Sinclair ZX81

Předpokládám, že nezůstalo jen u něho?

Později jsem se setkal v Amatérském rádiu s popisem 8-bitového procesoru Intel 8008 se 14-bitovou sběrnicí. Hltal jsem popisy instrukcí a uchvacovaly mě možnosti, co takový jeden integrovaný obvod vše dokáže. A přál jsem si se s ním setkat.

Procesor Intel 8008a.jpg

Technice mikropočítačů jsem propadl natolik, že jsem si začal na vysoké škole stavět svůj vlastní mikropočítač na bázi 8-bitového procesoru U880D (východoněmecká obdoba Z80) za vydatné pomoci stavebnice zveřejňované tehdy v Amatérském rádiu. Většinu částí jsem si navrhl vlastní. Především zobrazovací kartu. Pracovala sice v černobílém znakovém režimu (statické paměti MHB2114, ROM generátor znaků), ale umožňovala i čtverečkovou pseudografiku. Paměťový modul byl sestaven z dynamických pamětí MHB4116. Transformátor mi nechal navinout spolužák v nějakém závodě. Bohužel největším zádrhelem byla sběrnice z plošného spoje, která se mi mírně podleptala a tak byly trochu problémy se spolehlivostí. A také proto, že namísto těžko dostupných FRB konektorů jsem použil objímky pro integrované obvody. Klávesnici jsem si vyrobil membránovou, ze staniolu a fotopapíru nalepeného na plošném spoji.

Východoněmecký klon Z80 procesor U880D

Vaše začátky s počítači byly přes hardware, a jak jste se dostal na programování?

Když se mi počítač podařilo rozchodit, byl to jen „kus holého železa“. Ze začátku ovšem neměl žádný firmware, takže první hraní si s ním znamenalo připojit k němu řadu přepínačů Izostat a při každém zapnutí nejdříve namačkat krátký zaváděcí program pomocí DMA přenosu. To znamenalo: přepínačem zamknout DMA, resetovat CPU, nastavit na přepínačích binární kód bajtu programu, zmáčknout zápis do paměti a pokračovat takto pro všechny ostatní bajty programu. Nakonec odemknout DMA a nechat CPU rozběhnout zas od nuly. Tento úvodní program obsahoval základní monitorový program s obsluhou klávesnice a displeje. S jeho pomocí jsem v HEX kódu naťukal zaváděcí program, který sloužil k natažení programu z magnetofonu. Datový formát vycházel z formátu tehdy nejúspěšnějšího herního počítače ZX Spectrum. Psaní programu představovalo naťukání programu v HEX kódu (ten jsem měl již ručně zkompilovaný na papíře - jistě si umíte představit ruční „realokaci“ při vložení instrukce do středu programu), napsání kódu pro uložení na magnetofon a poté jeho uložení na magnetofon.

Mikropočítač Ondra, rok 1986

Takže Váš první program byl firmware (BIOS)?

Vlastně ano. Po prvních seznamovacích pokusech jsem si již troufnul k napsání firmware do svého "PC". Měl jsem pro něj připravenu paměť PROM 1 KB. Tehdy ještě nemazatelnou, těžko sehnatelnou a také drahou. Proto jsem měl jen jediný pokus, který musel vyjít. Stále dokola jsem procházel program firmware a hledal možné chyby. Vyzkoušení předem nebylo možné. Když jsem vývoj uzavřel, předal jsem zdrojový kód spolužákovi, který mi jej vypálil na svém ZX Spectru. Vložil jsem PROM do počítače, zapnul - a ono to skutečně fungovalo a dokonce bez chyby. Bylo možné psát programy v HEX kódu, ukládat je na magnetofon a načítat zpět.

A po skočení vysoké školy, předpokládám, rovnou do náruče programování...?

Kdepak, po skončení vysoké školy (1986) rovnou do náruče vojny :-). Ale měl jsem štěstí. Byl tam zakoupen počítač Sharp MZ-821, se kterým jsem si mohl ve volných chvílích hrát a jehož grafické schopnosti i hardwarové a softwarové vybavení mě uchvátily. Zpočátku jsme na něm hráli hry, které kolegové bůhví odkud sháněli. Poté jsem začal psát vlastní programy v Basicu a začal tento počítač znát skutečně důkladně. No a nakonec jsem začal luštit jeho vnitřní kód. Postupně jsem si vypisoval obsah jeho monitorového programu a poté i Basic interpreteru a některých dalších programů a luštil je. Nebylo možné použít disassembler, takže vše jsem dělal z HEX výpisu pomocí tabulek instrukcí, které se brzy staly zbytečné, když jsem si kódy již pamatoval. Popsal jsem takto mnoho sešitů instrukcemi procesoru, jejichž význam jsem pak luštil, až mi bylo jasné, co která část programu dělá. Myslím, že luštění cizích hotových programů mi dalo nejvíce programátorských znalostí.

Sharp MZ-821

Po návratu z vojny jsem byl zaměstnán v Tesle Rožnov jako technik počítačů Robotron. Nepřitahovaly mě ale velké sálové počítače, specializoval jsem se na periferní zařízení založená na 8-bitových procesorech U880D. Opět zvítězila touha po poznání a tak jsem znal mnoho zařízení nejen po hardwarové stránce, ale i po stránce vnitřního software. Jednalo se např. o tiskárny K6314, o terminály UBT a BDT. Mezi nimi i mikropočítače K5120 s operačními systémy SIOS (interpreter vnitřního binárního kódu) a SCPX (varianta systému CP/M).

Jehličková tiskárna Robotron K6314

A další sešity byly popsány... :-)

Ano, mnoho nových sešitů se plnilo výpisem disassemblovaných programů. Nejzajímavější pro mě byl právě systém SCPX. Vytvořil jsem si na pomoc i program pro zpětný překlad kódu. Nebyl však jen prostým disassemblerem. Bylo možné určovat, která část kódu jsou data a která program a jak se má která část překládat. K tomu sloužila i funkce automatického trasování, kdy program projel překládaný kód a snažil se uhádnout, kterými všemi místy program může procházet. Navíc vytvořil návěští skoků a datových míst. Poté následovala ruční analýza kódu s podporou programu, kdy bylo možné ještě upřesňovat způsob překladu. Při vepsání komentáře program zobrazoval komentář i u všech referencí na dané místo.

Naše čtenáře by také zajímalo, kdy jste se poprvé setkal s počítačem v dnešním slova smyslu, tj. IBM-PC?

Poprvé jsem spatřil počítač řady IBM PC v roce 1988, kdy si mě šéf zavolal, abych mu poradil, jak se takový počítač používá. Byl to zbrusu nový Robotron XT 5 MHz s 20 MB harddiskem a černozeleným monitorem. Předvedl jsem mu pár příkazů z prostředí CP/M (jako DIR, TYPE a Ctrl+P), které kupodivu fungovaly i v systému DOS. Počítač se začal používat pro databázové systémy, ale mimoto načerno i na hry. Časem jsem do něj začal také zabrousívat a seznamovat se s PC programy.

Robotron XT A7100

Po nějaké době bylo zakoupeno ze Slušovic několik nových počítačů PC-AT 12 MHz s harddiskem 40 MB (každý údajně za 470 tisíc) a k nim mnoho disket se software. Jednalo se většinou o anglické programy, které byly v binárním kódu počeštěny a vepsán copyright Slušovic. Začal jsem PC také bohatě využívat, kromě vlastní softwarové tvorby i jako CAD stanici (OrCAD a Redboard).

A tam asi začalo i programování pro PCéčka... ?

Ano. Při práci s PC se objevila potřeba usnadnění manipulace se soubory, k čemuž sloužily souborové manažery. K mým nejoblíbenějším prostředkům patřil souborový manažer Ergo a textový editor Context. K editoru Context jsem napsal ovladače pro podporu češtiny a práci v grafickém i textovém módu a po další roky jsem ho používal jako hlavní programátorský editor. Souborový manažer Ergo byl časem vytlačen programem PCTools (PCShell) a ten poté nahrazen geniálním programem Norton Commander.

Brzy se začal objevovat strašák softwarové policie a potřeba software legalizovat. Ceny software byly tehdy ještě nepřijatelné i pro podnik a tak se objevil návrh, abych zkusil vytvořit náhradu za nejpoužívanější z programů - Norton Commander. Zkusil jsem to - a tak v roce 1990 vznikl program MNShell, později přejmenovaný na DOS Manažer. Jeho obliba v podniku rychle rostla, až se objevila myšlenka opustit zaměstnání a pustit se do podnikání. Toho se chytla firma Golem, zabývající se tehdy ochranným systémem Hradba (sloužícím k ochraně před ilegálním kopírováním programů) a nabídli mi spolupráci a své bohaté podnikatelské zkušenosti. A tak jsem opustil zaměstnání a vrhl se do podnikatelské sféry.

Takže od této chvíle jste se začal živit jako programátor na plný úvazek ?

Vlastně ano. Spolu s DOS Manažerem vznikala i hromada jednoúčelových utilit (která časem dosáhla počtu 250, vše v assembleru), která byla spolu s ním dodávána. Mezi nejzajímavější a nejpopulárnější patřil např. ovladač české klávesnice, který v miniverzi zabíral na disku přesně 1 sektor (512 bajtů) a v paměti 256 bajtů. Bohatší verze (CSKEY) zahrnovala několik variant rozložení a znakových sad (včetně speciálností jako generátor rámečků) a šířila se mezi lidmi jako shareware. Od spokojených uživatelů CSKEY jsem obdržel nejednu poštovní poukázku. Zajímavý byl též ovladač češtiny pro displeje. Miniverze zabírala na disku 422 bajtů, v paměti 336 bajtů a pracovala přímým přístupem na hardware syntetickým doplněním diakritických znamének do existujících znaků. V současnosti jsou všechny zdrojové texty programů volně k dispozici - buď už přímo ke stažení (http://sweb.cz/Panda38 nebo jiná část na http://mnsoft.wz.cz) nebo na vyžádání (není čas je všechny připravit, takže spíše po dohodě).

DOS MANAŽER

Pracoval jsem dále na rozpracovaném programu DOS Manažer (v assembleru) a spolu s ostatními členy firmy Golem jsme jej začali uvádět na trh. Program byl nadmíru úspěšný. Bylo na něj v mnoha časopisech vydáno mnoho kladných recenzí. Vzpomínám na výstavu Invex 1991, na kterou jsme přivezli 10 počítačů XT z Nového Boru s barevnými monitory. 8 z nich jsme zavěsili na stropní konzolu (ne konzoli :-) ) stánku, 2 zůstaly jako záložní. Na všech monitorech běžely barevné poutače, především na program DOS Manažer. V této době grafika na počítačích teprve vznikala a tak tyto 16-barevné poutače velmi přitahovaly pozornost všech kolemjdoucích.

Poutače byly vytvořeny v programu Animator, který jsem pro tento účel tehdy vyvinul. Byl to programovací nástroj s vlastním jazykem zaměřený především na tvorbu animací. Umožňoval práci v grafickém i textovém režimu, měl vlastní formát obrázků (včetně obrázků v textovém režimu), které se daly získávat snímáním obrazovky programů. Kromě poutačů jsem v tomto nástroji vytvořil například hru Privatizace. Každým rokem v něm vznikala PF novoroční animovaná přání, která se stala dost populární.

Jaký byl další osud DOS Manažeru?

Přes úspěch DOS Manažeru jsme začali cítit i jeho nedostatky. Hlavním nedostatkem bylo omezení programu na 64 KB, protože byl překládán jako COM soubor. To bylo výhodné pro minimální náročnost programu, ale nedostačující pro rostoucí počty souborů v adresářích uživatelů. A také nebylo již možné přidávat do programu další funkce. Proto souběžně s vylepšováním DOS Manažeru 1 začala v roce 1992 vznikat verze 2 překládaná jako EXE program s mnoha novými funkcemi (opět v assembleru).

DOS Manažer 2 měl hromady výhod, jako počet souborů v adresáři omezený jen velikostí paměti (kolem 10 tisíc), souborové funkce nejen pro vybrané soubory, ale i pro soubory vyhledávané průběžně na celém disku nebo v adresáři, dále diskový editor, editor textů do 250 MB, 3 režimy spouštění programů, kalendář od roku 1, velmi přesný řádkový kalkulátor, dlouhá jména Windows a mnoho dalších. Bohužel jeho vývoj nebyl dostatečně rychlý. První verze byla vydána v roce 1996, kdy už se staly Windows 95 značně rozšířeným systémem a zájem o souborové manažery rychle upadal. Proto DOS Manažer 2 nebyl už tak úspěšný na trhu jako jeho předchůdce, přestože kvalitativně nebyly spolu srovnatelné. V dnešní době je stále ještě v nabídce nástupné firmy GEMA Soft pod verzí 2.10 (z roku 1998, http://www.gemtree.cz/…t/dosman.htm), ale jeho vývoj dále nepokračuje, přestože se již ví o některých záporech, jako nepodporování dlouhých jmen pod Windows NT/2000/XP, havárie při rušení souboru se jménem delším než asi 200 znaků a zacyklení při přejmenování adresáře se změnou znaku na pozici vyšší než 11.

Vím, že jste se kromě DOS Manažeru věnoval i programu Petr. Jak ten vznikl?

Souběžně s DOS Manažerem jsem se příležitostně dále zabýval i programem Animator, jakožto grafickým programovacím nástrojem. Na nátlaky mého tehdy osmiletého syna jsem v roce 1996 začal pracovat na novém pokusu - vytvořit programovací nástroj pro děti. Využil jsem zkušenosti z programu Animator a vytvořil DOS interpreter programu, založený na principech Karla s rozšířenými možnostmi, jako např. možnost kladení libovolných ikon na políčka hrací plochy a tím zobrazování jednoduché grafiky. Málo dětský robot Karel s přítelkyní Karlou byl záhy změněn na králíka Petra s králičicí Petrou, inspirované obrázkem na tričku dcery a tehdy vysílaným seriálem "Příběhy králíka Petra". Později byla Petra nahrazena Luckou (kvůli rozlišení jmen v cizích jazycích).

Novoroční přání PF1993

Textový zápis programu se ukázal pro dětské uživatele nepřijatelný a tak jsem začal studovat programování pod systémem Windows, jakožto nutné prostředí i pro vznik nového souborového manažeru, který jsem plánoval. Programování v assembleru pod Windows se zdálo být velmi zajímavé, ale bylo dost pracné a neznal jsem prostředí Windows ještě dostatečně na to, abych v něm mohl tímto stylem tvořit. Vše změnila kniha "Mistrovství v Delphi". Byl jsem nadšený její přehledností a názorností a začal jsem pronikat do programování pod Windows v Delphi za podpory dalších knih o systému Windows (anglické dokumentační knihy od Microsoftu). Začaly vznikat první pokusy v souborovém manažeru pro Windows a objevila se první koncepce programovacího nástroje pro děti v grafickém prostředí.

První verze Petra v DOS

Údajně jste se podílel i na vývoji Baltíka od SGP. Je to pravda?

Na podzim roku 1997 se na naši firmu obrátil pan Soukup (který byl stálým odběratelem ochranného systému Hradba), autor programovacího nástroje Baltazar (http://www.sgpsys.com), s prosbou, abychom pro něj vytvořili Windows verzi jeho programu Baltík. Jednalo se o dost krkolomný termín, pár týdnů, údajně měl předvádět nového Baltíka na Invexu 1997 zástupcům firmy Microsoft. Po dohadech jsme nakonec výzvu přijali (pan Soukup nás už několik měsíců předtím marně vyzýval ke spolupráci na jeho produktech). Bohužel kvůli časové tísni vše probíhalo přes telefon, bez jakékoliv písemné smlouvy.

Nového Baltíka 2.0 jsem začal tvořit v Delphi, protože jsem využil polotovar, který jsem měl připravený pro svého Petra. Chtěl jsem v Baltíkovi uplatnit své představy o novém programovacím nástroji pro děti. Hlavním zádrhelem v práci se však ukázal být pan Soukup. Příliš striktně vyžadoval své představy o programu, které vycházely z jeho DOS verze. Několikrát se i stalo, že jsem propagoval nějakou myšlenku, po velkých dohadech (opět po telefonu) jsem ustoupil a funkci z programu zrušil. No a po nějaké době pak Soukup přišel s přesně stejnou myšlenkou jako svou vlastní a musel jsem ji tam opět dodělávat. Takže - práce sice po několika bezesných týdnech velkého pracovního vypětí byla nakonec zvládnuta včas, ale s velkým odporem k výtvoru a přesvědčením, že s panem Soukupem už nikdy nechci mít nic společného. To byl také jeden z důvodů, proč jsem panu Soukupovi kromě hotového programu poslal i veškeré zdrojové texty programu, aby si případné další změny už dodělával sám (což nebyl ten nejsprávnější tah, jak jsem pak později pochopil).

Baltík 2.0

Takže jste se pak vrátil opět k Petrovi?

K předvedení nového Baltíka firmě Microsoft nakonec nedošlo. Po výstavě jsem na programu ještě dále pokračoval podle požadavků a představ pana Soukupa až do února 1998, kdy jsem už další spolupráci odmítl. Čas plynul a pan Soukup se namísto dohodnutých plateb za provedené práce vykrucoval výmluvami o špatné finanční situaci. To pokračovalo i další roky. Mezitím jsem se pustil opět do práce na svém Petrovi. Realizoval jsem v něm své (panem Soukupem odmítnuté) představy - stavba programu umísťováním ikon do stromu, čímž bylo možné přehledně "sklapávat" části programu. A také automatická syntaktická kontrola, kdy lze k sobě připojit pouze smysluplné prvky.

Upustil jsem od Delphi, protože v něm nebylo možné psát program dostatečně efektivně, tj. na dostatečně nízké úrovni. Zvolil jsem Microsoft VC++, protože mě "pustilo níže" do systému, což bylo u takového real-time programu docela podstatné. Zpočátku jsem využíval MFC knihovny. Narážel jsem velmi často na až neřešitelné potíže s MFC a přicházel ke zjištění, že mě knihovna obcházením jejích nevýhod a chyb spíše zdržuje od práce než že by byla prospěšná.

A pak jste od MFC upustil a vrátil se zpět, k "jádru věci"?

Po půl roce práce jsem začal psát Petra prakticky znovu - tentokrát však bez MFC, pouze s holým API. S překvapením jsem zjistil, jak jde programování bez MFC snadno. Mnoho problémů naprosto zmizelo. Základním požadavkem na Petra bylo, aby byl dostatečně rychlý. Proto jsem hned na začátku vypustil CRT jádro programu a vše nahradil vlastními obsluhami. Prvním krokem tedy bylo vytvořit program, který měl 4 KB - tj. jen EXE hlavička a nějaké interní proměnné, které překladač vyžadoval a které běžně nachází v CRT modulu. Bylo to obtížnější než jsem si představoval, překladač vyžadoval spoustu věcí, o kterých byl problém něco zjistit, protože běžně nejsou dokumentované. Ale nakonec se zadařilo.

Jednou z prvních věcí, kterou jsem do Petra vytvářel, byl manažer paměti, který měl nahradit paměťové funkce z vypuštěné CRT knihovny. Ze zdrojových kódů Delphi i VC++ jsem věděl, jak pracují jejich manažery paměti a věděl jsem, že nepracují příliš efektivně. Manažer paměti, který jsem vytvořil, byl při testech 15x rychlejší než manažer z VC++ a 4x rychlejší než manažer z Delphi. Rozděloval virtuální paměť na skupiny bloků paměti o stejné velikosti mocniny 2 spojené do řetězce pomocí odkazů. I v mnoha dalších programech jsem tento manažer později úspěšně používal.

Petr pro Windows

Čeho si na Petrovi nejvíce ceníte?

Jednou z věcí, co mnoho lidí na Petrovi překvapuje je, že se jedná o interpreter, protože rychlostí je v mnoha oblastech srovnatelný s kompilátory. Zdrojový kód (v binárním tvaru) je současně i prováděcím kódem programu. Každý program je uložen přímo v EXE souboru spolu s interpeterem, takže program vytvořený v Petrovi lze přímo spustit jako běžnou spustitelnou aplikaci Windows, aniž vyžaduje instalaci nějakého prostředí, a současně lze takový program otevřít v editoru Petra a program procházet či upravovat.

Za nejzajímavější část na Petrovi považuji 3D grafiku. Je to oblast, která mě velmi zaujala a kterou jsem tvořil s radostí. Petr vnitřně řeší správu objektů 3D světa, veškeré transformace matic, renderování scény, překryvy textur. To vše zajišťuje pro rozhraní DirectX 3 (kde se používají složité prováděcí buffery) až DirectX 8 a také pro rozhraní OpenGL. Petr zajišťuje, aby se programátor pokud možno nemusel o nic starat. Nemusí vědět, pod jakým rozhraním program pracuje (přestože to může určit pokud chce), Petr stírá rozdíly mezi rozhraními. A platí zde více než jinde, že program v Petrovi je velmi rychlý, což dokazují 3D hry v Petrovi vytvořené.

V Petrovi bylo napsáno mnoho her, mnohé z nich se vítězně umístily v soutěžích Becherovky (např. Bechtor, 13 duchů, Turbo Cars, Kóta 236 a další) a dokázaly tak kvalitu prostředí Petra.

Dobrou ukázkou rychlosti Petra je program Sinusovka. Jde sice o maličkost, ale - Baltík obsahuje obdobný program, vykreslení jedné sinusovky v něm trvá desítky sekund. V Petrovi se obdobných sinusovek vykreslí několik desítek za sekundu.

Hra 13 duchů

A jak dále pokračovalo uvedení Petra na trh?

Po ukončení "spolupráce" s panem Soukupem pokračovalo tahání peněz za provedenou práci. Pozorovali jsme, jak pomalu svého Baltíka dále upravuje (dnes ve verzi 3). Přesněji ne on, ale lidi, které touto prací zaměstnával. Informaci o Petrovi jsme z celkem pochopitelných důvodů zatím raději tajili. Nevěděli jsme, jak se k tomu pan Soukup postaví. Přece jen jsme byli pro něj nově vznikající konkurencí. Paradoxně jsem se stal konkurentem sám sobě (v programech Petr a Baltík).

1.6.1999 (na Den dětí) jsme konečně uvedli na trh první verzi Petra (http://www.gemtree.cz a http://www.gemtree.com). Zveřejňovali jsme o něm informace, uváděli jej v časopisech, účastnili se výstav a očekávali odezvy. První odezva přišla, ale byla poněkud z jiné strany než jsme čekali. Pan Soukup začal proti nám bojovat veškerými prostředky a to ne příliš čistými. Ve spolupráci s některými redakcemi PC časopisů, jako např. Chip, rozpoutal velkou pomlouvačnou kampaň "Kauza Králík" za vydatné pomoci spisovatele Rudolfa Pecinovského.

Ve zveřejněném článku dokazovali naše plagiátorství, jak jsme napodobili které programy, ale především jak jsme panu Soukupovi ukradli jeho myšlenky z Baltíka a jak jsme ho podrazili. Přitom nám pan Soukup stále neproplatil práce na Baltíkovi, prováděl prodeje Baltíka bez jakékoliv písemné smlouvy se mnou jako s autorem, takže nelegálnosti a rozporu s autorským zákonem se ve skutečnosti vlastně dopouštěl on (a dodnes dopouští). Připomíná mi to známé rčení "Zloděj křičí: chyťte zloděje!" Zajímavý důkaz plagiátorství předvedl pan Pecinovský, když srovnával Petra s Baltíkem porovnáním dvou ukázkových programů (vystavění domečku) vytvořených v Baltíkovi a v Petrovi (čili věc uživatelského použití nástrojů, ne porovnání nástrojů samých) a program v Petrovi sám upravil tak, aby se co nejvíce podobal Baltíkovské variantě. Ovšem nejvíce mě pobavily důkazy plagiátorství na základě hry Vlak, která se v Petrovi objevila, jako plagiát známé DOS hry - zřejmě pánové nevěděli, že jsem byl autorem i původní DOS verze.

Hra Vlak pro Windows

Po mnoha dohadech ve firmě jsme nakonec zvolili taktiku ignorování, neboť na pomluvy a lži skutečně nemělo smysl reagovat. Přitom jsme měli obavy, čeho všeho se pan Soukup ještě může dopustit dále. Jen jsme pozorovali, jak pan Soukup Baltíka upravil tak, aby v něm nebyla patrná jména funkcí a proměnných (zřejmě nějakým korekčním programem, který je nahradil nic neříkajícími symboly), která by dokazovala původnost kódu. Časem hluk utichl (především když se pan Soukup protlačil do nechvalně známé akce Indoš) a my dál pokračovali ve své práci na Petrovi.

I přes naše velké nadšení pro věc byla však odezva trhu malá. Časem jsme dospěli ke zjištění, že je velmi málo tvůrčích lidí. Na druhou stranu byl ohromný zájem o programy v Petrovi vytvořené - obzvláště o program Desktop Hry, který se stal absolutně nejstahovanějším programem z našich www stránek a rozšířil se lavinovitě do celého světa (obzvláště do USA). Ovšem - freeware nikoho neuživí. Proto jsme byli nuceni se pustit i do jiných oblastí.

Na čem pracujete nyní?

V současnosti mám nového koníčka, který mě plně uchvátil. Začal ve chvíli, kdy jsem si nainstaloval na PC operační systém Linux. Ale Linux tím koníčkem není, právě naopak. Po mnoha pokusech proniknout do světa Linuxu jsem dospěl k závěru, že v této oblasti čeká ještě velmi mnoho práce. Zjistil jsem, jak je tato oblast uživatelsky nepřívětivá, těžko přístupná a nepřehledná a jak bych spoustu věcí udělal jinak. Je vhodná pouze pro mladé bystré počítačové odborníky, kteří nelitují času stráveného studiem a experimentováním.

Proto postupně ve mně uzrála myšlenka pustit se do tvorby vlastního systému, podle vlastních představ a požadavků. Systému, který bude přehledný, jednoduchý a přitom dostatečně výkonný. Nevadí, když nenahradí jiné systémy - i uplatnění v oblasti real-time aplikací může být dostatečným přínosem. Nejdříve jsem "na rozcvičku" začal vytvářením vlastní verze systému DOS (projekt Litux, http://litux.wz.cz). Měl jsem v úmyslu vytvořit volně šířitelný DOS, který přitom nebude mít nectnosti jiných podobných systémů - tj. musí být miniaturní a přitom musí pracovat v reálném módu procesoru (což je jedna z velkých předností systému DOS).

Časem jsem dospěl k závěru, že je to možná spíše jen ztráta času, že bych se měl raději věnovat "opravdovému systému". Proto jsem systém DOS zanechal v polovině, možná jako inspiraci jiným programátorům, a pustil se do multitaskového systému Litos (plně v assembleru, http://litos.wz.cz), na kterém v současnosti pracuji. Zda budu v této oblasti úspěšný nevím. Ale držím se myšlenky, že člověk by neměl přemýšlet předem "co za to", ale pokud je chuť něco tvořit, tak by měl tvořit - a ono se to všechno nějak samo poddá.

Operační systém Litos

Update - květen 2012.

Po pár letech práce na Litosu jsem usoudil, že je to úkol nad síly jednoho člověka a projekt jsem uzavřel. Bylo mi sice líto vynaložené práce, obzvláště s některými částmi jsem byl velmi spokojený - např. práce s časem a datem, práce s texty, Unicode, scheduler, alokátor paměti. Díky assembleru bylo možné, oproti vyšším jazykům, dosáhnout mnohem vyšší efektivnosti a jednoduchosti. Ale - vývoj je vývoj, světovému trendu je těžké tímto stylem konkurovat. Na druhou stranu, už se mi ozvalo mnoho programátorů, kteří ve svých projektech využili myšlenky nebo částí kódů, takže zřejmě úplně ztracená tato práce nebude.

Před časem jsem začal pracovat na novém projektu - 3D engine Artonix http://artonix.sweb.cz/. Vedlo mě k tomu zjištění, že když jsem někdy potřeboval udělat snadno a rychle nějaký 3D projekt, byly k dispozici jen buď příliš složité a těžkopádné enginy, nebo enginy jednoduché, ale nepoužitelné. Proto jsem pak obvykle sáhl k Petrovi, který mé požadavky nejlépe splňoval. Artonix hodně vychází z Petra, ale značně jeho myšlenky rozšiřuje za hranice, kde by Petr už nemohl stačit. Snažil jsem se dodržet jednoduchost použití při zajištění dostatečné funkčnosti a rychlosti. S výsledky jsem zatím velmi spokojený - jsou podporována rozhraní DirectX 3 až 9, OpenGL 1.1, kvalitní konstruktor, deformátor a modifikátor objektů, bohatá práce s texturami. Zatím Artonix není připraven k veřejnému použití. Jeho funkčnost je již bohatá, ale zbývá ještě příprava ukázkových projektů (včetně manuálu a tutoriálů), při jejichž přípravě se postupně objevují chyby a nové požadavky. Projekt ještě nějakou dobu zabere, protože se mu věnuji jen občas, po chvílích. Jeho plné dokončení se však zdá být mnohem reálnější, než tomu bylo u Litosu. A možná, že se stane základem budoucí nové verze Petra 3.0.

3D engine Artonix

Děkujeme za rozhovor :)


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (14 hlasů) :
55555


 



 

 

Komentáře

Avatar
dagon
Neregistrovaný
Avatar
dagon:

Ahoj, možná by Vás mohlo zajímat :-)

  1. Miroslav Němeček se přeci jen vrátil k operačním systémům a naprogramoval malý operační systém (Litos8), v assembleru 8086, omezený na 64 KB paměti, čili taková obdoba lepšího CP/M. V praxi to podle jeho slov moc využitelné není, je to spíš experiment (proto dál nepokračoval a ani nedotahoval ladění, takže to má chyby), aby si vyzkoušel cestu vývojáře systému od těch jednodušších věcí. Hodně se tím naučil. Doufám že časem ještě bude pokračovat na dalších systémech, postupně asi až k protect módu : Přece jen ho tahle oblast stále hodně láká. http://litos.wz.cz/…s8/index.htm
  2. Po 15 letech vývoje také konečně uvolnil programovací nástroj Petr do freeware. Připravil také www stránky, tutoriály a ukázkové programy. Myslím že tohle byla dobrá akce a že konečně to přinese lidem užitek. http://petr.hostuju.cz/
 
Odpovědět 11.9.2012 15:24
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na dagon
David Čápka:

Ano, jsem s ním v kontaktu, dnes mi psal, budu pro Petra dělat instalátor a objeví se i zde, ještě jsem se k tomu nedostal :)

Je to určitě dobrá akce, jsem za to moc rád a trochu doufám, že jsme se o to i z části zasloužili.

Editováno 11.9.2012 15:57
Odpovědět  +1 11.9.2012 15:57
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Dragi
Člen
Avatar
Dragi:

Pěkné :)

 
Odpovědět 17.6.2013 19:19
Avatar
Asura
Člen
Avatar
Asura:

Legenda :)
Aspoň v ČR.
Kdo nezná vlak, jako by nebyl :D

 
Odpovědět  +2 24.12.2013 12:27
Avatar
polemes
Redaktor
Avatar
polemes:

Vlak jsem hrával jako malý kluk byl fakt super. Pochází ten Miroslav z Rožnova p.Radh.? Mě se zdá že Vlak byl vytvořen v Rožnově p. Radh..

Odpovědět 29.10.2015 12:53
5 + 5 = 1010
Avatar
Michal Žůrek (misaz):

jo jo, Vlak, to byly časy když jsme to v družině pařili a nebylo vůbec divné, když si někdo pamatoval hesla ke všem 50 levelům.

Odpovědět  +2 29.10.2015 14:03
Nesnáším {}, proto se jim vyhýbám.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.