Portál AbcLinuxu, 21. května 2025 20:14
Zazvonil budík. 06:45. Vstávam ako každé pondelkové ráno tak, aby som bol približne o 07:30 pri počítači a mohol začať pracovať.
Som majiteľom obyčajného pomerne odolného notebooku obľúbenej firmy. Je vybavený pár štandardizovanými rozhraniami, ktoré pred istým časom navrhli odborníci tak, aby štandardy postačovali na čo najdlhšiu dobu. V dobe uvedenia boli značne predimenzované. Vďaka ním je možné vymeniť v notebooku takmer akýkoľvek komponent.
Na začiatku dňa si zvyčajne prečítam na webe najdôležitejšie správy dňa. Súčasný web je celkom príjemnou kombináciou technológií ako XML a JavaScript. Každý web aby bol zobraziteľný v internetovom prehliadači musí spĺňať štandard inak ho prehliadač odmietne. I na strane štýlov musia byť dodržiavané určité nepísané "štandardy". Ak by si nejaký webdesignér dovolil použiť pevne dané písmo, alebo nastavil štandardnú veľkosť písma na 90% okamžite by prišiel o návštevníkov. Štandardne prednastavené písmo v internetovom prehliadači bolo prispôsobené zobrazovaciemu zariadeniu. V prípade, že si užívateľ praje iné môže prirodzene bez problémov zmeniť.
XML používané na webe je plné sémantických značiek a pre vizuálnu reprezentáciu sa používa xsl štýl. Dynamické prvky ako chat v reálnom čase, alebo rôzne fóra zvyčajne podporujú aj alternatívny spôsob komunikácie s prehliadačom - XMPP protokol. V prípade, že prehliadač podporuje priamo dané XMPP rozšírenie dovolí s webom pracovať podobne ako s lokálnou aplikáciou. Existujú aj špeciálne aplikácie priamo na komunikáciu pomocou štandardu XMPP. Na chat je tak možné pripojiť sa z ľubovoľného IM podporujúceho XMPP rozšírenie muc.
Ani prehliadače bez podpory XMPP nie sú odkázané na statické weby. Stačí aby administrátor použil na svojom webe JavaScript. Ten ovládajú prakticky všetky prehliadače na veľmi vysokej úrovni. Okrem samotného jazyka prehliadač má aj rozsiahlu dobre navrhnutú štandardnú JavaScript-ovú knižnicu, takže nikto nemá potrebu programovať vlastný framework. Prirodzene máloktorý administrátor webu programuje vlastnú implementáciu XMPP rozšírení. Hotové knižnice s pekne navrhnutým rozhraním zverejňuje priamo organizácia, ktorá sa stará o štandardy. Pre použitie nie je ani potrebné daný kus kódu kopírovať na vlastný server. Prehliadač dokáže použiť skript zo vzdialeného serveru prirodzene po povinnej kontrole pravosti certifikátu. V týchto skriptoch sa nenachádza žiaden kód špecifický pre ktorýkoľvek prehliadač. Je nepísanou povinnosťou tvorcov prehliadačov, aby dodržiavali štandardy. Veď kto by používal prehliadač, ktorý nepodporuje poriadne štandard.
Zazvonil budík. 06:45:02. Vstávam ako každé pondelkové ráno tak, aby som bol približne o 08:00 pri počítači a mohol začať pracovať.
Zapnem svoj starý dobrý notebook. Ako každé ráno si idem prečítať nové správy aby som bol v obraze. Zadám do prehliadača adresu svojho obľúbeného spravodajského portálu. Je to jeden z mála tých portálov, kde nemusím čakať 5s na spracovanie JavaScript-u, ale len približne 2s (ak nezamrzne, alebo nepadne prehliadač). Nejaký webdesignér si asi pomyslel, že každý užívateľ má v prehliadači nastavené písmo ako slepý (17px) a tak to poistil nastavením štandardnej veľkosti na 70% a pre bočné texty 50%. Ešte, že existuje nastavenie minimálnej veľkosti.
V tejto rannej pohode zrazu čítam mail od šéfa. Nebol to nejaký dlhý mail. Vlastne ak nepozerám na veľkosť bol celkom krátky. Obsahoval 2 mp3 súbory a opis toho, že moje tagočítadlo (ako hovorím mojej časti softvéru starajúcej sa o čítanie tagov zo súborov) má problémy s diakritikou u jedného zo súborov. V podstate to bola celkom pozitívna správa, aspoň som nemusel hľadať čo dnes budem robiť.
Prvá vec, ktorú som si musel oťuknúť bol samozrejme štandard podľa ktorého sa riadia id3 tagy. Informácie, ktoré som našiel boli celkom zrozumiteľné. V podstate platí fakt, že ID3v1 sú poriadne obmedzené a nemôžu obsahovať diakritiku a ID3v2 už podporujú Unicode. Naštartoval som teda svoj obľúbený hex editor a pozrel sa na zúbok obom mp3 súborom. Asi by ste nepotrebovali veľa pokusov na to aké kódovanie sa niekto snažil použiť v ID3v1. Takže pravdepodobného vinníka (Windows-1250 v ID3v1 dátach) som našiel. Stál som teda pred morálnou dilemou ... vykašlať sa na zákazníka a urobiť to správne, alebo škaredý hack na detekciu. Asi viete čo z toho som musel urobiť, aby som o tento job neprišiel.
S trochou úsilia som prišiel na spôsob automatickej detekcie. Narazil som na taký pekný programík enca s knižnicou libenca. Výsledky pri detekcii boli celkom dobré (i keď nie 100%-né). Už stačilo len integrovať do môjho softvéru, čo nevyzeralo ako ťažká úloha. Taglib ná podporu pre vlastný string handler ID3v1 takže som ho jednoducho implementoval s pocitom zlej, ale aspoň vykonanej práce.
Spustím teda a bum - zlé kódovanie. Po pár minútach hrabania sa v kóde som zistil, že u mňa detekcia funguje korektne a teda chyba musí byť niekde v knižnici. Nasledujúce 3h som so zväčšujúcim sa hnevom postupne overoval časti taglib-u pridával vlastné kontrolné výpisy až som zistil, že aj taglib ide tiež korektne.
Štartujem druhý krát hex editor. Oba súbory obsahujú rovnako blbo nastavené ID3v1. Nevšimol som si ale, že obsahujú aj ID3v2. Špecifikom ID3v2 je, že každému jeho rámcu je možné nastaviť kódovanie. Zatiaľ čo jeden súbor mal kódovanie dát UTF-16 a rámce mali nastavené kódovanie UTF-16 ten druhý mal nastavené kódovanie Latin1 a kódovanie dát, že neuhádnete - Windows-1250.
Prvá morálna dilema typu obídeme zle navrhnutý štandard mi až tak nevadila. V druhom prípade už ale ide o štandard rešpektujúci Unicode. Pošliapať aj tento štandard len preto, že nejaký softvér na editáciu tagov nebol navrhnutý pre iné znaky než ASCII? Viem, že na platforme Windows je to celkom normálne, hlavne keď zvážim fakt, že majú najväčšiu koncentráciu ultra cool bastličov. Na druhej strane robím komerčný softvér. Má nejakú šancu na úspech, keď pôjde podľa štandardov?
Tiskni
Sdílej:
a keď sa trh (ľudia) rozhodol že štandardom nebude napr. ODF, ale docx tak to musíme rešpektovať či sa nám to páči alebo nie.Trh jsme ale i my :D.
Nejako sa mi slovo normalizácia nepáči ;) V podstate je to tak, že ja mám rád slobodu. Dodržiavanie určitých štandardov môže slobodu výberu značne rozšíriť. Nehovorím teraz o takých blbostiach aby sme teraz začali nosiť štandardizované uniformy a tak. Ale také technické veci ako konektor pre docking station, alebo niečo ako ultrabay u lenova by mohli byť uznávané rôznymi výrobcami čím by sa značne rozšírili možnosti výberu.
Najradšej by som bol keby o štandardoch rozhodoval trh. Ak by užívatelia používali hardvér, ktorý im dáva možnosti pretože používa nejaký štandard (nemusí ho schváliť ani žiadna organizácia, stačí, že to výrobcovia to dodržiavajú) tak sa to jednoducho automaticky musí presadiť. Ak by tvorcovia softvéru robili softvér podľa štandardov a nie tak, aby bol čo najviac kompatibilný na internet explorer by si už asi nikto nespomenul. V tomto má inak open source obrovskú výhodu - pri nájdení chyby netreba nič obchádzať, stačí ju opraviť, poslať patch a benefit z toho majú všetci používatelia.
Inak včera som bol asi trochu naštvaný, že som zase zabil deň kvôli tomu, že niekto nie je schopný dodržať štandard. Okrem toho písal som to na mobile (príšerný to stroj na ktorom leakuje pamäť stále, takže pár krát som musel softvér na písanie poznámok reštartovať) počas cesty na / z daňového úradu a počas čakania na daňovom úrade. Mám taký blbý pocit, že vzorom pre nich sú vogoni. Na všetko tona blbých žiadostí, ktoré ručne prepisujú do počítača, tona pečiatok a potom sa to aj tak len hodí do skrine ... Verím tomu, že počet úradnikov sa tam dá zredukovať na 1/10.
Nejako sa mi slovo normalizácia nepáči ;) V podstate je to tak, že ja mám rád slobodu.Ta slabá reference na československé období normalizace byla úmyslná :), stejně jako reference na představu nesvobodného světa svázaného vyššími normami. Jsem rád, že to někdo vnímá podobně jako já :). Jinak já jsem za to, aby státní aparát byl pevně svázán veřejně známými a použitelnými normami. Ony mu totiž brání aby naopak svévolně určoval věci, do kterých zasahovat nemá. Ale to už jsme moc do politiky, což není můj obor :).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.