yEnc čili za e-mail rychlejší

26. dubna 2002
Google API SDÍLET NA FACEBOOKU TWEETNOUT
Softwarová finta z dílny německého programátora by mohla zrychlit přenos e-mailových a usenetových dat až o třetinu; hodně hlasů je ale také proti.
yEnc čili za e-mail rychlejší

Díla z oblasti open source software se do světa šíří způsobem, jaký v dnešní konzumní společnosti už neznáme. Programátor něco vymyslí a své dílo dá na web, maximálně ještě o tom informuje pár svých známých. Ti a další programátoři a uživatelé se k dílku dostanou, prohlédnou si je, a když se jim líbí, rozšíří informaci dál; další programátoři je implementují, uživatelé užívají – a náhle je tu celosvětová sláva, protože produkt, je-li dobrý, se pak dokáže šířit jako epidemie, ovšem v pozitivním slova smyslu. (Co kdyby byla zákonem zakázána reklama a Nový Vylepšený Prací Prášek by si musel nalézt cestu k zákazníkem jen tímto způsobem? Třeba by se firmy naučily dělat již jenom kvalitní produkty).

Pravděpodobně ještě většina z vás nikdy neslyšela podivné slovo yEnc: přesto se jedná o softwarové udělátko, které může docela zásadním způsobem změnit přenos dat v elektronické poště a na Usenetu. Jak je už více známo, protokol používaný v elektronické poště znemožňuje přenos všech znaků, protože některé znaky používá jako řídící, pro řízení vlastní komunikace. Toto je standard, zavedený před dvaceti lety v USA. Tehdy vyhovoval, protože se předpokládalo, že e-mail bude vždy sloužit jen pro tzv. plain text (písmena bez diakritiky a číslice, tzv. US-ASCII sada, prvních 127 znaků kompletní ASCII sady nebo též sedmibitové znaky), nemyslelo se ani na přílohy, jako jsou obrázky, a už vůbec nikoho nenapadlo, že kdesi za oceánem žijí takoví divní lidé používající znaky jako č nebo ů, nemluvě o fň. Tento standard už asi nelze změnit. Když se objevila potřeba přenášet binární data e-mailem, vznikly kódovací standardy, které je překódovaly opět do plain textu, do US-ASCII sady. I když si to málokdo uvědomuje, e-mail a Usenet umí přenést pouze text, takže obrázek se přenáší tak, že jej e-mailový program překóduje do textu, přenese po Internetu, a příjemce jej zase překóduje do obrázku. Vznikla různá kódovací schémata, nejpoužívanější je UUencode, dále BinHex, Base64; ta fungují pro uživatele zcela transparentně, o vše se stará bez jeho vědomí mailový či usenetový klientský program. Tento proces je dnes celý slušně standardizován do uceleného standardu známého jako MIME.

A teď to teprve začne být zajímavé. Zmíněné kódovací metody nafukují objem přenášených dat zhruba o 40 %, protože převádějí všechny znaky v druhé polovině ASCII tabulky do její první poloviny (plus k souboru přidávají ještě další vlastní znaky, jako hlášení „-----cut here------„ nebo vkládání umělých konců řádků). Při posílání obrázku o velikosti jednoho megabajtu tak musí Internetem protéct 1,4 megabajtu, v případě vytáčeného připojení to každého z uživatelů stojí o čtyřicet procent financí více, stejně tak pokud jsou tarifikováni za objem přenesených dat. Nejde přitom jen o obrázky: dnes se kóduje vlastně každý e-mail s „češtinou“.

Vtip je v tom, že horních 128 znaků se vlastně kóduje zbytečně: e-mail a zejména Usenet používá jako řídící znaky jen několik málo speciálních znaků. Je tedy možné přenášet celou „abecedu“ bez jakéhokoli kódování, pokud bychom se těmto několika znakům vyhnuli – to ale možné není, v běžných binárních datech se samozřejmě nalézají a nelze je z nich „vykousnout“. Zatímco u Usenetu se fakticky jedná jen o tři znaky, u e-mailu je to komplikovanější, hlavně z důvodu velkého množství programů (serverů i klientů) používaných pro e-mail, z nichž každý má své poněkud jiné standardy pro přenos řídících znaků.

Německý programátor jménem Jürgen Helbing se proto „partyzánsky“ pokusil vytvořit nové kódovací schéma. To funguje (zjednodušeně) tak, že do speciální, přijatelné sekvence zakódovává pouze nepřijatelné znaky a všechny ostatní ponechá. Pokud by byl (například) nepřijatelný znak „č“, pak by slovo „kočka“ bylo zakódováno jako „koczka“. To pro Evropany mimochodem není nic nového – i Jürgen ví, že když nemá na klávesnici znak pro umlaut, napíše své jméno jako Juergen a je mu porozuměno. Helbingovo kódovací schéma (které pojmenoval jako yEnc) se samozřejmě musí vypořádat s různými úskalími, z nichž to, jak se tedy pozná, že slovo původně mělo být kočka a ne koczka, je to nejmenší.

yEnc si dnes veleúspěšně razí cestu Usenetem. Usenet dnes a denně používají statisíce lidí na světovém Internetu nejen pro šíření diskusí, ale i binárních dat – na rovinu řečeno, je to dnes jeden z největších šiřitelů pirátských binárních dat po Internetu, tj. obrázků, softwaru, hudby a videa. Za přístup ke kvalitnímu, kompletnímu Usenetu a zejména jeho skupině „alt.*“, případně ještě častěji „alt.binaries.*“, se dnes platí – kvalitní volný otevřený server již nenajdete (byl by okamžitě zavalen a přetížen), částky jsou zhruba v rozmezí šest až třicet dolarů za měsíc podle objemu dat. Protože Helbingovo schéma nafukuje data jen asi o 2 %, dosahuje se zhruba třetinové úspory v uploadu i downloadu – tedy gigantické. Během několika měsíců si yEnc získal na Usenetu spontánně popularitu a v některých „binárkách“ se používá téměř výhradně. Existuje řada programů pro kódování a dekódování binárních souborů do tohoto formátu a některé čtečky Usenetu už jej mají zabudovány v sobě, jiné ovšem ne.

Bude tedy toto schéma někdy zavedeno i v e-mailu? Kdy i my ušetříme třetinu času a internetové kapacity? Ne tak rychle. yEnc je, jak jsem uvedl, určitá partyzánština: pro kódování dat v e-mailu existuje standard MIME, který není na věčnost vytesán do kamene, ale umožňuje postupný vývoj a doplňování. Samozřejmě jako u všech těchto schválených standardů se jedná o poměrně dlouhý proces, který může trvat léta – není to vinou nepružných byrokratů, ale tím, že je potřeba poskytnout prostor námitkám, zdokonalení a vybroušení navrženého standardu. To je podstatné, neboť standard schválený tímto procesem převezmou vývojáři a začnou jej implementovat do svých produktů. Pokud by byl nedokonalý a následovaly opravy a vylepšení, znamenalo by to, že implementace musí proběhnout znovu, výsledné produkty musí mít své nové verze, a podobně: bohužel přesně to, co se nyní děje s yEncem. Produkt je už v praxi používán, a přitom je upravován a opravován – nekompatibilit je více než dost. Kritikové samozřejmě autorovi yEncu vyčítají, že svůj návrh nedal projít standardizačními komisemi a nesnažil se z něj učinit součást MIME; autor odpovídá, že by to trvalo příliš dlouho, že chtěl poskytnout potřebný užitek uživatelům ihned.

Protože se tento druh kódování v Usenetu rychle ujímá vlády jako dominantní, dá se čekat, že něco podobného přijde i do e-mailu. E-mail je ale daleko citlivější na problémy a nekompatibility než poněkud undergroundový Usenet, kde je poškození přenášených dat na denním pořádku, a tak spíše můžeme čekat, že si buď yEnc nebo podobné řešení prorazí cestu do praxe přes MIME a přes oficiální schválení. Jak tomu v Internetu často bývá, partyzánské řešení neuspěje, ale otevře cestu řešení jinému, oficiálnějšímu; doufejme, že za pár let se budeme moci těšit i ze „štíhlejšího“ e-mailu.

Diskuze (65) Další článek: Google API

Témata článku: Open source, US Open, Německá klávesnice, Kódovací schéma, Dlouhý proces, Znak, Podivný program, Různé znaky, Kočka, Kompletní klávesnice, Cute, Výsledné dílo, Yen, Podobná cesta, ASCII


Určitě si přečtěte

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

** Kam doma natrvalo uložit data? Vyplatí se ještě optická média? ** Jaké kapacity disků a médií má smysl koupit? ** Cenovou výhodnost si ukážeme na příkladech s 2TB úložištěm

Lukáš Václavík | 125

Lukáš Václavík
ZálohováníÚložištěPevné disky
Bankovní identita bude jednotná. K České spořitelně, ČSOB a KB se připojí menší banky
Lukáš Václavík
Portál občanaBankaeGovernment
Týden Živě: On fakt dnes ještě někdo stahuje filmy z Ulož.to?

Týden Živě: On fakt dnes ještě někdo stahuje filmy z Ulož.to?

** Kauza Ulož.to a proč my dva už (moc) newarezíme ** Windows 10X existují, ale nabízí se otázka proč ** Nissan ukázal vizi kanceláře v podobě karavanu

Jakub Čížek, Vladislav Kluska | 152

Jakub ČížekVladislav Kluska
Týden ŽivěVideo
Cableporn: Podívejte se na úžasná díla umělců z podnikových serveroven

Cableporn: Podívejte se na úžasná díla umělců z podnikových serveroven

** Uspořádání kabelů můžete vnímat i jako podivný druh umění ** To nejkrásnější se skrývá v datacentrech a serverovnách ** Podívejte se na skutečné „cableporn“ z optiky i kroucené dvojlinky

Vojtěch Malý | 53

Vojtěch Malý
DatacentraServery
Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

** Chcete se teď hned naučit programovat čipy? ** Nechcete nic instalovat a číst zdlouhavé manuály? ** Naprogramujeme si Micro:bit, který zahraje Tichou noc

Jakub Čížek | 35

Jakub Čížek
Pojďme programovat elektronikuProgramování pro děti