DŮLEŽITÉ UPOZORNĚNÍ!
Policie České republiky a šéfcensor Ústavu pro studium totalitních režimů Jaroslav Čvančara varují: citovat jakékoli texty z tohoto blogu způsobuje vážné nebezpečí trestního stíhání! Četba na vlastní nebezpečí!

20. 4. 2012

Nová profese: datový archeolog

Když jsem si před třemi lety posteskl, že umíme přečíst nápisy na egyptských pyramidách, ale s děrnými štítky a páskami z 50. let minulého století si poradí jen pár specialisovaných firem, nenapadlo mne, že situace je ještě horší a nestvůra času pozřela další medium, které tu s námi bylo ještě docela nedávno. To ukázala kausa zdrojáků ke hře Prince of Persia pocházejících z r. 1989: přečíst data z nalezených disket si vyžádalo pomoc specialisty, datového archeologa. Ten k mechanice zapojil speciální hardware a 23 let staré diskety s ní přečetl, resp. sejmul průběh magnetického toku nad povrchem diskety, z čehož poté úspěšně rekonstruoval data.

Za pár let nebude možné ani tohle, prostě proto, že nebudou k disposici původní mechaniky, takže předpokládám, že diskety se budou číst tak, že medium vyloupneme z obalu, oskenujeme ho Hallovou sondou upevněnou např. na 3D-tiskárně a výsledný soubor zanalysujeme softwarově. Asi stejně, jako bychom dnes četli děrné štítky pomocí scanneru anebo děrnou pásku pomocí videokamery.

Ještě víc problémů nám za pár desítek let nadělají USB paměti (flashky): protokol USB je hardwarově jednoduchý, ale softwarově relativně dost složitý. Přečtení staré flashky tak určitě nebude práce na jedno odpoledne.

Oč lépe je na tom tradiční, konservativní svět mainframů a Unixu, kde jsou běžně používány hardwarové i softwarové komponenty ze 60. a 70. let, a kde je pět let vyvíjený souborový systém obecně pokládán za příliš mladý a nevyzkoušený, než aby mohl být produkčně nasazen: za stejnou dobu přitom, ve druhé polovině dvourychlostního počítačového světa, např. na Internetu, stačí firma vzniknout, dojít rentability, vydělat akcionářům peníze, začít upadat a zaniknout.

Applovské zdrojáky k Perskému princi pocházejí z r. 1989. Schválně jsem vyzkoušel prohledat svůj datový server, jaký nejstarší soubor, mnou vytvořený, na něm najdu. Programuji od začátku 80. let a neočekával jsem, že objevím např. svůj první větší program, který jsem vytvořil ještě na gymnasiu pro mikropočítač kompatibilní s TRS-80, regresní analysu ke zjišťování parametrů tenké vrstvy napařené na skleněný povrch čočky (tyto vrstvy o tloušťce srovnatelné s vlnovou délkou světla snižují odrazivost povrchu, avšak vykazují určitou dispersi indexu lomu: proto se zejména starší objektivy jeví v odraženém světle modré až modrofialové; jenže to odbíháme od počítačů k fysice).

Nenašel jsem ani spoustu programů v assembleru Z-80 pro řízení laboratorních přístrojů ze druhé poloviny 80. a začátku 90. let, včetně fungujícího operačního systému pracujícího v reálném čase. Úlovek téměř budí rozpaky. Tento krátký program v C, pocházející z května 1993, zahraje (spíše tedy zapípá) na terminálu určeném ke snímání čárových kodů skladbu – Smetanovu Jiřinkovou polku.

Což má svou historii. Na přelomu 80. a 90. let jsem pro komunistický národní, později státní podnik Laboratorní přístroje Praha vyvíjel řídicí software – dnes bychom řekli firmware – pro čerpadlo k systému Flow Injection Analysis. Čerpadlo ovšem nečerpalo, resp. když mělo čerpat, buď se přetrhly nekvalitní planšety unášející píst anebo začala podtékat teflonová těsnění. Aby tedy přístroj, který měl být vystavován na Mezinárodním strojírenském veletrhu v Brně, dělal aspoň něco, napsal jsem pro něj tuto aplikaci, ve strojovém kodu (assembleru) Z-80. No a nalezený zdroják je konversí tohoto díla pro terminál s laserovým snímačem čárových kodů, který, shodou okolností, také bylo potřeba kdesi předvádět za situace, že skenovat čárové kody mu právě nešlo…

Z dnešního pohledu jsou takové hříčky dětinské, zahrát melodii umí pomalu i inteligentní monočlánek, tehdy ovšem byli lidé elektronikou fascinováni: stolní počítač, stejně jako první mobilní telefony, vážící přes pět kilo, byly přijímány jako malý zázrak.

Na objeveném zdrojáku je pro mne zajímavé třeba to, že jsem tehdy psal s úplně jinou indentací a stylem než dnes: složené závorky jsou používal podobně jako v Pascalu begin a end a mezery dělal úplně opačně, než bych je umístil dnes.

Příkladmo funkci play jsem tehdy zapsal takto:
/* play sequence */
void play(byte *p)
  {
  byte c;
  for (;;)
    {
    if ( kbhit() )
      {
      getch();
      tone(SILFRQ,1000,BGR);
      curon();
      exit(0);
      }
    c = *p++;
    if ( c < 0x80 )
      tone(ttbl[c],TEMPO * (*p++),FGR);
    else
      if ( c == 0xff )
        return;
      else
        tone(SILFRQ,TEMPO * (*p++),FGR);
    }
  }
Dnes bych to samé napsal v této podobě:
/* play sequence */
void play(byte *p) {
  byte c;
  for (;;) {
    if (kbhit()) {
      getch();
      tone(SILFRQ, 1000, BGR);
      curon();
      exit(0);
    }
    c = *p++;
    if (c < 0x80)
      tone(ttbl[c], (TEMPO * (*p++)), FGR);
    else
      if (c == 0xff)
        return;
      else
        tone(SILFRQ, (TEMPO * (*p++)), FGR);
  }
}
A co je nejzajímavější, vůbec jsem si nevšiml, že bych někdy svůj styl změnil, a pokud byste mi tento kod ukázali ještě včera, přísahal bych, že nemůže být můj, vždyť takto já neindentuji!

Už tehdy jsem ale zdroják komentoval anglicky. České komentáře jsem opustil velmi záhy, a to ze dvou důvodů: jednak nebylo mému perfekcionismu přijatelné psát české texty bez háčků a čárek, a za druhé komentovat česky vždy znamenalo navíc překládat, protože pro počítačovou terminologii je angličtina nativní asi stejně, jako je pro moderní umění nativní francouzština nebo pro hru go japonština.

10 komentářů :

  1. Mechner je vskutku obdivuhodny clovek. Musim hned vyzkouset hru Last Express. j

    OdpovědětVymazat
  2. Já jsem se k anglickým komentům a pojmenovávání přiklonilv době, kdy jsem kdysi dělal nějakou dll knihovnu pro účely logování a kolega v práci si ze mě utahoval na schůzi, že tam mám pravopisnou chybu, že mi chybí "s" ve slově "pis".

    OdpovědětVymazat
  3. Nejstarší soubor, který jsem na disku objevil, je interr-b.txt z 14. 10. 1990, což je „Interrupt List, part 2 of 4. This compilation is Copyright (c) 1989,1990 Ralf Brow“. Pár starých souborů bylo editováno na XT bez baterky v hodinách, kdy většina lidí byla líných nastavovat správný čas, takže to hodilo: „1. 1. 1980 v 0.00“.

    Nejstarší vlastní soubor je C27.602 z 4. 12. 1991, což byla příprava z češtiny na maturitní otázku č. 27 psaná ve wordstarovském klonu Text 602. Kódování je bratří Kamenických, takže je to bez problémů čitelné i dnes:

    @CT 0
    @LM 1
    @RM 70
    @PL 58
    @TB ----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T----T--
    @MT 2
    @MB 2
    @PO 4
    @PN 1
    @OP
    @LH 3
    20. Zájem o historii v české lit.
    @LH 4
    19. a 20. století

    Alois Jirásek
    Byl národní demokrat a spolutvůrce mnoha pozdních mýtů národníhoĺ
    obrození. Když Zdeněk Nejedlý pátral po způsobu, jak ve státnímĺ
    měřítku čelit modernímu umění a literatuře, vyrukoval s historickyĺ
    reakční, zato však populisticky osvětovou a zároveň i úředně povinnouĺ
    "jiráskovskou akcí".

    Znak „ĺ“ je měkký konec řádku.

    Nejstarší „program“ mám script mcad-hlp.bat z 31. 1. 1992:

    be ask "Navolte IBM mod na tiskarne"
    echo : x1 l >prn
    type mcad-hlp.txt >prn

    Nejstarší DOC mám Jesus Christ Superstar 1.doc z 2. 12. 1994 a dnešní Word to otevře pohodlně.

    Nejstarší HTML mám interest.htm z 21. 2. 1996, což byl „Interest Calculator“.

    OdpovědětVymazat
    Odpovědi
    1. Kód Kamenických a jednoduše čitelný? Na čem to pracujete, probůh?

      Vymazat
    2. P.Pecino,
      dovolím si vyjádřit nesouhlas s Vaším pozměněním této věty:
      ...pro počítačovou terminologii je angličtina nativní asi stejně, jako je pro moderní umění nativní francouzština nebo pro hru go japonština...
      V první verzi jste uvedl na místě příměru japonské hry příměr německého pivovarnictví, což pokládám za daleko výstižnější....

      Vymazat
    3. Servant Salamander to jistí.

      Vymazat
    4. Nepiji pivo, pročež jsem si nebyl jist, jestli je to pravda, a věren praxi nepublikovat neověřené informace, text jsem změnil.

      Vymazat
  4. Zajímavé téma! Nejstarší zdroják, co jsem našel, mám z listopadu 94. Tehdy jsem se v Pascalu pokoušel napsat hru "chodičku/skákačku". Skončil jsem hodně rychle - bylo to pomalé, skoky jsem nedokázal animovat nějak uvěřitelně a to nemluvím o kreslení grafiky.
    Odsazování bylo standardní pascalovské. Pascalovského odsazování jsem se držel i po přechodu na C a následně C++. Zlomila mě až Java (a taky ne hned). Pascal to v člověku vypěstuje.
    (je tam i exe soubor, musím ho zkusit spustit v dosboxu :))

    OdpovědětVymazat
  5. No toto, tak jsem si dal na komentáři záležet, odeslal, stránka napsala, že byl uložen - a teď tu není. Spadl někam do spamu, nebo se zahodil úplně?

    OdpovědětVymazat

Kursiva: <i>text</i>
Tučně (když už to musí být…): <b>text</b>
Odkaz: <a href = "http://adresa">název odkazu</a>, tedy <a href = ""></a>

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.