Rok 1999 – … mladej, je tu nějaký HTML…

Uplynulo pár měsíců a evidentně jsem se v práci osvědčil, protože jsem dostal trošku větší a samostatnější úkol. V té naší aplikaci se generovaly dopisy koncovým zákazníkům, kam se doplňovaly data z databáze. Nebylo to nijak komfortní ani elegantní, a tak se tohle chtělo nahradit exportem do HTML a tiskem z prohlížeče. No a HTML, to je nějakej moderní výmysl, to je pro vás, pro mladý, tak na to mrkněte, rozhodl šéf. Navíc tisk dopisů byla taková lehce podřadná práce, protože opravdový programátoři provolávali účetnictví a provisioning, i když nikdo z nich nevěděl, co to vlastně je. Jenže pro toho (koncového) zákazníka byly dopisy naprosto klíčové, protože jinak se neměl jak dozvědět, co se děje s jeho službami.

No, takže k tomu HTML stačí v pondělí nějaký demo … (byl pátek po obědě). On tam borec, kterého jsem nahradil ale nikdy se s ním nepotkal, vytvořil nějaký proof-of-concept. Nikdo ale nerozuměl tomu, co vlastně udělal, tak to hodili na mě. Já tak nějak tušil, protože jsem si s tím už chvíli hrál, takže jsem s tím až takový problém neměl. HTML jsem znal ještě z výšky a už jsem jednu nebo dvě statický stránky měl za sebou. Dopisy jsou něco trošku odlišnýho, ale to je jedno, HTML je HTML. Na disketu (raději dvě, kdo někdy vozil diskety šalinou nebo trolejbusem tak chápe) jsem si vzal nějaký vzory, v knihkupectví nakoupil knihy o HTML, CSS a podobných tématech a přes víkend něco zklohnil. Tu literaturu jsem koupil za svoje a pak teprve zpětně řešil, jestli to firma proplatí. I kdyby neproplatila, tak jsem to bral jako investici pro mě, protože mi bylo jasný, že HTML je budoucnost.

Ukázka zákazníka asi přesvědčila, že tudy vede cesta a tak jsem se nadšeně vrhnul do vývoje. V podstatě šlo o to vytvořit template engine, celkem primitivní, kde je v šabloně v hranatých závorkách název parametru a ten se nahrazuje skutečnou hodnotou. A to celý v PL/SQL, což je procedurální nadstavba nad SQL. Pro práci se stringama tam byly tuším tři funkce – získání indexu znaku v řetězci, substring a zřetězení. Myslím, že tam původně nebyly žádný regexy ani pokročilejší funkce, ale i s těmi třemi primitivními jsem to zvládl. Ono to není zase tak složitý. Ale otestovat to, odladit to na všech edge-casech, bez junit testů a podobných věcí – nic z toho tehdy ještě neexistovalo a pokud ano, tak rozhodně ne pro Oracle DB.

HTML

Koncept byl tedy hotov, a teď to plošně zavést. Některé dopisy byly v Oracle Reports, některé v HTML a tak jsem vše postupně předělával, využil jsem i znalosti typografie atd. Ono těch dopisů bylo typově několik set, takže to nebylo tak easy. A horší bylo, že se takhle tiskly i formuláře pro zřízení a konfiguraci nových služeb. Byly to čtyřstránkové formuláře plné tabulek, složitější než daňové přiznání a vypadalo to spíš jako piškvorky. Formuláře totiž obsahovaly například konfiguraci ISDN a tam bylo pro 16 kanálů několik desítek služeb a pro každou tam byl zašktrlý nebo odškrtlý čekbox, tedy obrázek. Takže na stránce bylo několik set malých obrázků, což narazilo na limit Internet Exploreru verze 5, který měl limit 256 obrázků na stránku, nebo tak něco. Jo, i takový věci jsem řešil.

A samozřejmě, že zákazník měl mnoho různých tiskáren a na všech se to muselo vytisknout plus mínus stejně. HTML není jazyk určený pro tisk a sazbu, byť v původní specifikaci CSS bylo něco jako media-type print. A specifikace podporovala i takovou pěknou (a potřebnou) věc jako záhlaví a zápatí, které se opakuje na každé stránce. Jenže tato podpora byla bohužel jen ve specifikaci, ale žádný prohlížeč to neimplementoval (a dodnes myslím neimplementuje). Mozilla, tehdy ještě opravdu Mozilla, žádný Firefox, to trošku podporovala, ale MSIE 5 nebo 6 vůbec. Jo, tehdy jsem s údivem zjistil, že každý prohlížeč se chová jinak a že zákazníka nepřesvědčím, aby plošně instaloval Mozzilu. No, ty hlavičky jsem musel zlomit jinak, takovej pankáč abych tam narval nějaký JavaScript jsem nebyl.

Adresy

Ale i u těch „blbejch dopisů“ byly opravdové programátorské výzvy a patřila mezi ně konstrukce adres. Zdánlivě triviální problém. Jenže, zákazník míval až tři adresy – korespondenční, fakturační a umístění služby. No a zejména neplatiči odmítali přijímat korespondenci, kde byla jakákoliv chybka – jiná adresa, prohozený číslo orientační a popisné, pan Ing. Králík odmítal převzít dopis pro pana KRALIKA, protože to není on. Praha měla/má jinou konstrukci PSČ a městských částí než zbytek republiky. Prohození čísla orientačního a popisného vypadá jako banální problém, dokud vám nevolá rozezlaný uživatel, že pošťák objížděl půl dne jakýsi valašský samoty a marně hledal daný barák… A tak jsem vyfasoval od České pošty čtyřiceti stránkovou brožuru pravidel pro tvorbu adres a tu implementoval, včetně vazby na nějaký centrální registr ulic atd. V danou chvíli jsem byl jeden z největších odborníků na adresy v ČR 🙂 A k tomu jsem připravoval nějaký selecty na data quality, abych našel ty největší krpy v zadaných adresách… No jak říkám, v začátcích své kariéry jsem řešil jen blbý dopisy, nic důležitého ani zásadního 🙂    

PS1: Je to skoro třicet let a tak si vše možná idealizuji. A některá terminologie je dnešní, ne tehdejší…

PS2: Možná to působí strašně amatérsky ale taková byla doba, a to ve všech firmách. A občas mám pocit, že některé firmy zůstaly v té době…

Absolvent pracuje

Rok 1999 – První teambuilding Rok 2001 – Udělejte z těch šablon produkt
This entry is část 7 z 10 in the series Absolvent pracuje
Štítky , , .Záložka pro permanentní odkaz.

Komentáře jsou uzavřeny.