Reakce autora na recenzi zveřejněnou na MCU.cz

Udělejte si z PC v Delphi..., 1.díl

3. 2. 2004, Ing. David Matoušek

Před vlastním komentářem k poznámkám recenzenta bych rád připomenul, že kniha Udělejte si z PC v Delphi, 1. díl je již třetím dílem této série. Předchozí dva díly se jmenovaly: Udělejte si z PC, 1. díl (poprvé vyšlo v roce 2001) a Udělejte si z PC, 2. díl (vyšlo v roce 2002). V těchto knihách byla jednak probrána základní teorie spojená s použitím paralelního portu (dle standardů SPP a EPP) a sériového portu (buď v asynchronním režimu nebo za přímého řízení linek). Konstrukce zde uváděné jsem již nepřenášel do nové knihy, chtěl jsem publikovat něco nového (také proto, abych nebyl nařčen ze „samoplagiátorství“). Zároveň byly stručně popsány procesory AT89C2051, AT90S2313 a AT89S8252 tak, aby si čtenář uvědomil jejich základní parametry hlavně s ohledem na ovládání přes porty počítače. Je jisté, že podrobnější popis do knih nemohl být zařazen hlavně z důvodu požadavku na co nejmenší rozsah. Existuje mnoho zdrojů, kde informace načerpat. Jsou to buď knihy o těchto mikrokontrolérech nebo zdroje na internetu. Konečně řada 8051 je notoricky známá a tak by asi podrobnější popis některé čtenáře „urážel“.
Z těchto důvodu je kniha Udělejte si z PC v Delphi, 1. díl určitým shrnutím předchozích dvou dílů. Přesto je popis paralelního a sériového portu opět zařazen (ale pouze v nezbytné míře) a je uvedeno několik jednodušších aplikací. Myslím si ale, že 8bitový převodník na bázi levného obvodu TC1320 (připojený na sériový port a napájený přímo z něj) a univerzální přípravek pro paralelní port (zajišťuje ovládání různých zařízení) najdou široké uplatnění. Dále je ukázáno ovládání LCD displeje pomocí paralelního portu a na příkladu přípravku AT8VV ukázán snadný přechod od programování v C++ Builderu na Delphi (AT8VV je také jedinou aplikací, která je přejata z předchozích dvou dílů (když tedy opomeneme teoretické popisy portů). Na CD-ROM je také upravená verze programu pro ovládání přípravku SPPTEST z Delphi (do knihy jsem popis tohoto přípravku nezařadil, už bych toho z předchozích knih použil příliš).
Právě to bylo největším požadavkem čtenářů. Mnoho začátečníků se lépe orientuje v Delphi než ve zdánlivě složitém C++ Builderu. Proto jsem se snažil nejdříve vysvětlit náročnější partie objektového programování v Delphi. Rozhodně jsem však nechtěl suplovat učebnice představující základní kurz programování v Delphi, o tom tato kniha není. Předpokládám, že ke knize sáhnou většinou středoškoláci. Dnes se Pascal nebo i přímo Delphi vyučuje na mnoha středních průmyslových školách a gymnáziích.
Další snahou bylo volně přejít na používání sběrnice USB (ale nebylo záměrem, že kniha bude pouze o USB). Popis sběrnice USB a obvodu FT232BM (konvertuje signály USB na asynchronní sériový port) je podán velmi stručně. Mou snahou je vždy přinášet hlavně aplikace. Odkaz na knihu USB prakticky, 1. díl, kde čtenář najde podrobnější informace, je v knize rovněž uveden (ostatně od str. 259 jsou reprodukovány poměrně podrobné anotace všech souvisejících knih, což však neznamená, že pro zvládnutí problematiky si je musíte všechny přečíst nebo koupit).

A nyní budu reagovat na poznámky recenzenta, případně na další ohlasy:

  1. Kniha sice obsahuje množství příkladů, ale bohužel chybí detailnější vysvětlení postupů použitých při jejich řešení.
    Zde bohužel poznámce moc nerozumím. Každý program je slušně okomentován, nechybí předchozí vysvětlení teorie a popis programu. Například u konstrukce LPTUNI (od str. 140) věnuji popisu zapojení a možného řízení 6 stran. Nechybí popis implementace třídy TLUInterface, která zajišťuje velmi snadné ovládání přípravku pro čtenáře, kteří jsou obeznámeni se základy objektově orientovaného programování. Po výpisu programu (je zařazen pochopitelně proto, aby se odhalily jednotlivé části implementace) je ještě doplněn stručný popis vlastností takto zavedené třídy. Komentáře v programu jsou strohé, sekvence se však stále opakují. Vysvětlení zápisu je podáno na straně 145.
  2. V kapitole "Přímý přístup na porty" je stručně popsán jeden freewarový prostředek - toť vše. Přiznám se, že jsem očekával výčet dostupných prostředků s popisem základních vlastností a ne jen strohé popsání jednoho z nich.
    Chápu, že recenzent může být seznámen s dalšími ovladači či komponentami, které lze do Delphi zaintegrovat. Popisu řešení přímého přístupu na porty a detailnějšímu rozboru jsem se věnoval již v knize Udělejte si z PC, 2. díl. Tento rozbor byl tedy nyní vynechán (či zjednodušen, vyberte si) a čtenáři bylo nabídnuto jedno z osvědčených řešení. To by nemělo být na újmu. Bohužel jsem tuto informaci do kapitoly 2 nezařadil, takže může opravdu vznikat dojem, že znám jen jedno řešení.
  3. Vlastní příklady jsou tak trochu z "jiného" světa - najít použití pro "Dvoukanálový digitální osciloskop" se vzorkovací rychlostí 100ks bude problematické.
    Dvoukanálový osciloskop se vzorkovací rychlostí 100 kSPS je velmi dobře použitelný. Například pro vstupní signál kmitočtu 10 kHz poskytuje 10 vzorků na periodu. Pokud jej použijeme pro měření signálů síťového kmitočtu (a s tím se v praxi setkáme nejčastěji), nebude takové omezení vůbec patrné. Chtěl bych upozornit na skutečnost, že existuje mnoho tzv. univerzálních měřicích karet, které dosahují maximální vzorkovací rychlosti zhruba o 2 řády nižší. Takže s jejich použitelností je to mnohem problematičtější.
  4. I když jsou příklady jednoduché, neznalý čtenář nepronikne k podstatě problému, ale je směřován k cíli postuláty typu: "Vzhledem k tomu, že výstupní pulzně-šířkový signal má kmitočet v rozsahu 1 až 4 kHz, musí být měření velmi rychlé. Myšlenka použít časovače (s teoretickým časovým rozlišením 1ms) byla ihned zapuzena". Na otázky: "Proč musí být měření rychlé?" případně: "Proč nepoužít časovač?", nebo "Proč nepoužít jiný časovač?" se prostě odpověď nedovíme.
    Poznámka se týká strany 48. V textu je obsažena informace o tom, že kmitočet signálu je vyšší než 1 kHz. Takže perioda je pak kratší než 1 ms. Pokuď tedy použijeme klasický časovač poskytovaný Windows, nastanou problémy. Teoretické rozlišení 1 ms bude pro nás výrazným omezením (signál pulzně-šířkově modulovaný musíme sledovat rychleji než po 1 ms). Navíc (a to uvádí i jiní), je 1 ms teoretickým rozlišením. Ve skutečnosti generuje časovač intervaly, které jsou násobkem 55 ms. Je jistě možné používat jiné časovače (například Waitable Timer nebo Multimedia Timer), ale při jejich nasazení můžeme narazit na fakt, že nejsou podporovány všemi typy operačního systému Windows. Nejen z tohoto důvodu byla aplikace vytvořena jako vícevláknová (začínajícími delphistovi se zde objeví nový rozměr programování).
    Již na základní škole je ve fyzice probírán pojem kmitočet a perioda, proto jsem předpokládal, že čtenář takto krátké vysvětlení pochopí. Děkuji, je to důležitá informace pro druhé vydání. Pokusím se problém lépe nastínit.
    Recenzent bohužel neuvedl jiný další příklad takto nejasného vysvětlení, ale přesto poznámka vyznívá v tom smyslu, že taktovýchto sporných míst je v textu více. Myslím si, že dobrá recenze má být pro každou knihu přínosem. Ocenil bych, kdyby recenzent uvedl i další nejasná místa.
  5. Autor soustavně (nejen v této knize), odbíhá od tématu a nahrazuje objasnění princpů rozvláčným, nicneříkajícím výpisem programů, případně citacemi katalogových listů použitých součástek.
    Ve svých knihách výpisy programů a překlady katalogových listů uvádím. Je jisté, že zdrojové texty a katalogové listy v angličtě najdete na doprovodném CD-ROM. Může to vypadat jako snaha o “nafouknutí“ knihy (opravdu si myslíte, že cena knihy je nezbytně v lineráním vztahu k jejímu rozsahu?). Každá kniha je především souhrnem textových a grafických informací. Není to CD-ROM, které si dáme do počítače a prohlížíme. Co tím chci říci??? Snažím se knihy sestavovat tak, aby si je čtenář mohl studovat i bez počítače. Zdá se to zbytečné? Každý přece musí mít počítač, pokud chce programy spustit! Máme ale počítač k dispozici vždy, když máme čas se věnovat studiu? Co když čteme po cestě do práce, v noci (když se vzbudíme s nápadem a chceme si jej ověřit) nebo nám počítač „zaberou“ děti (znám z vlastní zkušenosti)? Nevypadá to tak směšně, dostávám i takové ohlasy, že čtenáři si berou knihu do postele a listují jí před spaním. Sám jsem to také dělával, vzpomínám si na jedinou učebnici programování v Pascalu, která byla v tehdy socialistickém Československu k dispozici. Rozhodně jsem si ji nebral proto, aby mě uklimbala. Pasáže byly mnohdy náročné, ale nikdy jsem neusnul dříve, než jsem pochopil text.
    Že stále odbíhám od tématu? Nezdá se mi, viz můj komentář k bodu 1.
  6. Celkově na mně kniha působí dojmem "Málo muziky za hodně peněz". Přiznám se, že při ceně 499 Kč bych očekával hlubší odhalení postupů, případně několik alternativních přístupů k řešení stejného problému s názorným vysvětlením jejich kladů a záporů.
    K ceně se bohužel vyjadřovat nemohu. Byla stanovena nakladatelem. Je to důsledek marketingových záměrů, předpokladu prodejnosti a dalších faktorů. Sám jsem se přimlouval, a pan Libor Kubica z nakladatelství BEN – technická literatura mi to jistě ochotně potvrdí, k mnohem nižší ceně. Klady a zápory použitého řešení diskutovány nebyly. Jistě je možné najít více variant, ale to je snad ta nejlepší cesta k tomu, jak se informace naučit aplikovat. Kniha je zaměřena především na USB (i když jsou zde i aplikace pro sériový a paralelní port). Vysvětlení, proč je používán konvertor FT232BM a ne jiné řešení, je podáno na straně 115.
  7. Pro lidi, kteří nevládnou jazykem anglickým, kteří nepronikli hlouběji do tajů programování v Delphi, potažmo v prostředí Windows, má kniha svůj nepopiratelný půvab. Pro všechny ostatní ji však považuji za naprosto zbytečnou.
    Myslím si, že kniha je určena především těm, kteří nejsou špičkovými odborníky (do této skupiny se řadí recenzent). Tato kniha je má naučit používat předkládané informace. Pracuji jako učitel odborných předmětů na Vyšší odborné škole v Jihlavě. Již na studiích na vysoké škole mě rozčilovalo, že informace jsou předkládány spíše teoreticky. Nacházel jsem jen velmi málo praktických příkladů. To je problém našeho školství, snažím se studenty směrovat jinam.
    V knize jsem se snažil zjednodušit teoretický úvod (pak jsem ale zase upozorňován, že je vynechán); zase na místech, kde jsem to považoval za nutné, je vysvětlení podrobnější (pak se ale může zdát, že příliš teoretizuji). Místo toho jsem se zaměřil na aplikace. Mnoho čtenářů si prostě sestrojí přístroje dle uvedeného popisu a bude je používat. Šikovnější (a takové ohlasy také dostávám – čtenáři mě informují o svém vlastním „bádání“) půjdou dál, například si přizpůsobí hardware svým požadavkům nebo vylepší ovládací program. Jedině tak se naučí předkládané informace využívat.
    Když jsem se v této problematice začal více „štárat“ narazil jsem na jedinou (prakticky pojatou) knihu. Byla z pera dobře známého autora: B. Kainky a pojednávala o využití sériového a paralelního portu. S jednoduchým hardwarem byly ukazovány aplikace počítače pro měření, řízení a regulaci. Líbilo se mi to moc, snažím se psát stejným stylem. Je to spíše pro začátečníky a mírně pokročilé. Věřím ale, že i mnozí odborníci uvítají popis novějších součástek (vždyť nepopisuji hradlo v obvodu SN7400, ale obvody, které se na našem trhu objevily teprve nedávno; některé spatřily světlo světa před méně než 3 roky).

Na závěr bych se rád vyjádřil k problému, který byl často zmiňován v reakcích na recenzi. Jedná se o používání některých pasáží opakovaně ve více mých knihách.
Jak jsem naznačil výše, před začátkem mých prací v oblasti použití portů počítače, jsem našel jen velmi málo výchozích zdrojů. Knihy jako Udělejte si z PC, 1. díl a Udělejte si z PC, 2. díl byly předstupněm před tím, než jsem mohl přistoupit k náročnějším aplikacím. Půlrok jsem strávil podrobným studiem obvodu FT232BM a vzešla z toho kniha USB prakticky, 1. díl. Jsem rád, že můj konzultant Ing. Václav Dvořáček z firmy ASIX se o tuto knihu velmi zajímal a používá ji. A to se v tomto oboru pohybuje profesionálně, ne jako já...

Takže to nakonec shrňme. Kniha je určena především začínajícím a pokročilým amatérům. Některé pasáže však přinášejí nové poznatky a aplikace, takže jsou použitelné i profesionálně. Hlavním rysem knihy je ukázat ovládání hardwaru pomocí vývojového prostředí Delphi a rámcově shrnout použití paralelního a sériového portu. Důraz je kladen na sběrnici USB. Tam bude i těžiště druhého dílu (také máte nový počítač bez sériového portu???).
Tyto informace najde čtenář v úvodní části knihy (na stranách 8 a 9) a také v závěru (strana 255). Podobně jako v ostatních knihách jsem ochoten reagovat na dotazy čtenářů. Takže pokud Vás trápí určité nejasnosti, můžete například zaslat mail na:

matousek@vosji.cz

V Jihlavě dne 3. 2. 2004

Ing. David Matoušek
autor knihy

 


www.ben.cz