Sorry, you need to enable JavaScript to visit this website.

Bože, chraň nás před našimi programátory

Čas nutný k přečtení
6 minut
Již přečteno

Bože, chraň nás před našimi programátory

0 comments
Autoři: 
Když se u nás objevil Internet, byl každý rád, že někde sehnal nějaký počítač připojitelný k Internetu. A když se něco psalo česky, tak bez háčků a čárek, protože kompatibilitu angličtiny pro nejrůznější počítače v Americe vyřešili. Samozřejmě se brzy přišlo na to, že když se v Internetu přenáší nějaké písmeno latinky (anebo číslice a obvyklé zvláštní znaky jako +, -, =, ;, apod.) vždy se přenáší celý byte - v Internetu nazývaný oktet, tedy 8 bitů. Přitom na všechny takové znaky by stačilo jen 7 bitů a první se takto přenáší vždy nulový. Při troše opatrnosti lze vybrat takové přenosové a programové prostředky, že ani první bit se nijak nepoškodí (nenuluje). Lze tedy dost snadno přenášet i češtinu s diakritikou, kterou většina počítačů vždy umísťuje do (nevyužitých) bitových kombinací začínajících 1.

Samozřejmě - na různých počítačích a v různých programových produktech se používá odlišné zakódování znaků s diakritikou do osmibitové posloupnosti. V době, kdy se u nás začaly počítače propojovat do Internetu, nikdo administrativně nerozhodl, který kód bude v české části Internetu používán. (Počítače s jiným kódem by pak stačilo doplnit jedním konverzním programem.) Takovýmto rozhodnutím by se snad bývalo mohlo stát, že z naprosté neznalosti by někdo vybral takový kód, který se prakticky nepoužívá. A potom by na tom byli všichni producenti softwaru stejně. Asi proto se dnes u nás nemůžeme dohodnout na jednom preferovaném (již používaném) kódu češtiny, protože jen někteří by pak měli nevýhodu v tom, že by museli své programy doplnit o konverzní moduly.

A tak sice češtinu po Internetu úspěšně přeneseme, ale občas je text interpretován ještě hůře, než kdyby byl jen bez háčků a čárek. Koncepci Internetu (i jednoduchosti algoritmu) by nejlépe vyhovovalo, kdyby konverzi bylo možno provádět až na počítači uživatele. Což také řada uživatelů s úspěchem využívá, ale vesměs v prostředích mimo Windows. Ovšem při práci (v grafickém režimu) s WWW je obvykle uživatel odkázán pouze na takovou kódovou nabídku, kterou mu poskytuje WWW-server. Nejjednodušším řešením je prostě situace, kdy stránky jsou již na WWW-serveru vícekrát, pokaždé v jiném kódu češtiny, a to včetně varianty bez háčků a čárek. Uživatel si pak sám vybere tu, která vyhovuje konfiguraci jeho počítače. V podstatě stejným způsobem řeší situaci programové nadstavby na straně WWW-serveru, které stránky před odesláním umějí překódovat. Stránky tak mohou být na serveru jen jednou, v kódu nejvýhodnějším pro jejich údržbu a tvorbu.

S rozvojem WWW se ale první verze 0.9 protokolu http, podle něhož si WWW-klient z WWW-serveru vyžaduje stránku, na kterou uživatel kliknul, změnila na variantu 1.0 a nejnověji na 1.1. A zde začalo velké trápení uživatelům, kteří u nás nějakým způsobem vybočují z řady. (Tedy nepoužívají poslední verzi programu Netscape nebo Internet Explorer a to na takové verzi Windows, kterou jedině lze pokládat za správnou podle reklamních brožurek.) V krátké komunikaci mezi WWW-klientem a serverem podle protokolu http 1.1, nejen klient opakuje jméno počítače, ze kterého získává WWW-stránku, ale měl by i uvést, co je zač (User-Agent: ). Bohužel se většinou neuvádí (pro nás potřebné) Accept-Charset: . A tak se v rámci programové nadstavby rozšířilo, že konverzní program na WWW-serveru podle toho, jak by měl být takový a takový program (asi zase podle reklamních letáků) nakonfigurován, pošle WWW-stránku v předpokládaném kódu. A uživateli se již žádná volba k výběru ani nedává. Že by k nestandardní konfiguraci měl jiné důvody než vlastní neschopnost, tak takový chaos u nás přece podporovat nebudeme. Zcela dočasně (protože WWW-servery jsou převzaté programy) je možno se smířit s tím, že lze se serverem komunikovat i ve verzi 0.9, v níž informace o klientovi nelze předat. Potom tedy obdrží nějakou jednu implicitně danou variantu kódování češtiny.

Kde se takovýto způsob překódovávání českého textu vyskytuje? Teď už na řadě WWW-serverů. Třeba i na www.cesnet.cz. Pokud obsah dosud nezměnili, tak viz hned http://www.cesnet.cz/reakce.html nebo třeba http://www.cesnet.cz/cesnet/cz/prices/home.html. A pokud na tom nejste správně s konfigurací a vadí Vám nečitelné znaky, tak to máte prostě smůlu, ledaže byste se na text podívali přes "anonymní Lynx" přístupný přes TN3270 na Floridě. Ke cti lidí z www.cesnet.cz je třeba říci, že když se v klientovi nevyznají, posílá se mu stránka bez diakritiky. No ale potom je již všechno jednoduché. Každý uživatel Internetu přece po večerech musí studovat RFC-dokumeny, a tak samozřejmě ví, že z režimu spolupráce s Gopherem lze na WWW-server promluvit v protokolu http 0.9, stačí jen přepsat http: na gopher: a přidat :80/hGET%20, tedy například: gopher://www.cesnet.cz:80/hGET%20/reakce.html anebo gopher://www.cesnet.cz:80/hGET%20/cesnet/cz/prices/home.html.

Možná několik řádek vysvětlení těchto URL-specifikací. Odkazy na Gopher obvykle obsahují na začátku cesty k souboru cifry 00 evenutálně znaky 11 pro menu, např. gopher://gopher.eunet.cz/11/services. První znak v celé cestě instruuje klienta o typu, tedy   1 - menu, dalším znakem pak začíná požadavek, který klient zadává Gopher-serveru (a který musí pro většinu serverů opět začínat informací, zda je požadováno menu nebo soubor), konkrétně tedy   1/services  . Specifikací gopher://gopher.eunet.cz/01/services by tak měl WWW-klient získané menu zobrazit jako soubor, jenž vlastně obdžel. V pozdějším rozšíření se pak objevil i typ h, interpretovat získaný soubor hypertextově.

Specifikace ..:80/hGET%20/.. tedy znamenají hypertextově interpretovat soubor, který se získá požadavkem  GET /..  zaslaným na port 80. Ale to je přesně způsob, jímž komunikuje WWW-klient s WWW-serverem podle protokolu http 0.9. Jistým problémem je pak získání obrázků do WWW-stránky. Odkazy na ně buď musí obsahovat cestu začínající z této WWW-stránky anebo je třeba, aby stránka byla vytvořena tak, že obsahuje v hlavičce specifikaci BASE. Pro úplnost je snad třeba ještě doplnit, že použitý WWW-klient musí sám interpretovat %20 jako mezeru a tu uvést v požadavku za slovem GET. Proto může být pro některé klienty (naopak) potřeba mezeru násilím uvést: ..:80/hGET /...

A nyní nám již nemůže ani automatické přepínání kódu češtiny znepříjemňovat čtení časopisu Ikaros třeba i na počítači špatně nakofigurovaném. Problém je ale v tom, že při komunikaci přes protokol http 0.9 nedostaneme text bez diakritiky. Navíc na požadavek gopher://ikaros.ff.cuni.cz:80/hGET%20/ dostaneme WWW-stránku Filozofické fakulty. Přes protokol 0.9 totiž nelze serveru předat informaci o zadaném jméně hostitelského počítače a není proto ani možné rozlišit mezi alias-jmény ikaros.ff.cuni.cz a www.ff.cuni.cz. Ale obdobně je věc řešena na www.cuni.cz. Analogií s gopher://www.cestina.cz:80/hGET%20/ lze tedy předpokládat, že by šlo použít gopher://www.ff.cuni.cz:80/hGET%20/ikaros/ a že možná i přepínání češtiny půjde specifikovat vhodným suffixem. Bohužel suffixy na ..ff.cuni.cz nejsou stejně pojmenované a nejsou ani přímo k nalezení.

Potom už zbývá jediná možnost, hledat v domovských stránkách studentů. Třeba to některý z nich (omylem) přímo uvedl, neboť z role uživatele se ještě plně nevžil do role budoucího správce. I když z WWW-stránky na jiném počítači, přesto lze nalézt správný výsledek: http://ikaros.ff.cuni.cz/welcome.htm.CASCII. WWW-stránky jsou napsány tak šťastně, že lze i odkazy a obrázky získat přes URL-specifikaci: gopher://www.ff.cuni.cz:80/hGET%20/ikaros/welcome.htm.CASCII. Pro kód ISO-latin2 se doplňuje  .CISO8859_2 a pro Windows-1250  .CP1250, i když toto přepínání obvykle WWW-klienti umějí. Z variant kódování, které - eventuálně interně - ještě připouští ( budoucí ) Státní informační systém, už zbývá jen PC-latin2, a to je  .CP852. - Navíc snad doplňme pro uživatele Arachne kód Kamenický, pro ten je třeba použít  .CKAM. Vše samozřejmě platí pouze do doby, než někdo napíše dokonalejší program, aby už nebylo vše tak průhledné.

Co by mě ovšem velmi zajímalo, je názor nějakého krajana třeba v Americe, který zašel do místní knihovny a tam někde našel terminál, z něhož se bylo možno podívat na WWW u nás. Zda i on si myslí, jak dokonalý je náš automatický výběr kódu ve srovnání se zcela nedokonalou instalací v jejich knihovně, protože tam nemají fonty, kde by byly naše háčky. A že si pak některá naše slova po těch letech tak rychle nedomyslí? Jeho chyba! No přece si nesedl k terminálu, aniž by si alespoň trochu nepročetl rfc1345, rfc1436, rfc1738, rfc1945, rfc2068 a rfc2145.

Hodnocení: 
Zatím žádné hodnocení
KASTL, Jan. Bože, chraň nás před našimi programátory. Ikaros [online]. 1998, ročník 2, číslo 4 [cit. 2024-11-28]. urn:nbn:cz:ik-10185. ISSN 1212-5075. Dostupné z: http://ikaros.cz/node/10185

automaticky generované reklamy