Portál AbcLinuxu, 16. června 2025 19:16
Kde zustala jednoduchost a lehkost puvodniho html?Asi tam kde zůstalo VRML samotné.
zkouseli jste posledni dobou (co je maji idnes) blbe jizdni rady z neceho prenosneho? nez se dostanete k zadani odkud/kam, potaha Vam to pres megabajt(!) humusu. Kde zustala jednoduchost a lehkost puvodniho html?Tady - idos.cz/blind.
A čo je to tá prezentácia? Nie je to tiež druh informácie?Možná druh metainformace
čo je bohužiaľ presne to, kam tieto skvelé technológie vedú3D technologie například zatím vedou k procházkám historickým Římem, Second Lifu a podobně. Že se to někdo (potisící) snaží dostat na web není překvapivé. Ale v poslední větě máš asi velký kus pravdy
Ale aj metainformácia je samozrejme informácia v starom dobrom smalltalkovskom duchu
Hm, je to celé viac než trochu komplikované, to sa musí nechať. Ale aj tak si myslím, že informácie majú určitú povahu, napríklad textovú a zvuk a obraz reprezentujúci ten text je určený len na komunikáciu a inak nie je dôležitý. Aj keď kto vie. Ja keď niečo čítam, tak mi v hlave znie môj vlastný hlas, takže možno primárna reprezentácia textu je zvuková
Húmpf, ja som mal na mysli 3D v prehliadačoch. Ono je totiž strašne populárne tlačiť všetko cez HTTP, ktoré na to vôbec nebolo určené Niekto by sa mal zamyslieť, že čo sa chce vlastne dosiahnuť (zrejme multiplatformnosť a dostupnosť bez inštalácie) a vymyslieť trochu lepší spôsob, ktorý nebude zneužívať 30 rokov starý protokol na zobrazovanie textu
HTTP skvelo škáluje? Hahahaha, ďakujem za pobavenie 99% moderných webových aplikácií sa snaží HTTP nejak ohackovať, aby sa to podobalo na klasickú aplikáciu s GUI a TCP socketom a v 99% prípadov sa to zúfalo nedarí
Sme silne in topic, vzhľadom k tomu, že správička sa práve hackovania HTTP dosť týka, ale budiž, nechajme to tak.
To, že ho někteří používají k věcem, ke kterým není určen, neznamená, že to je neschopný protokol – je to skvělý protokol pro přenos hypertextových dokumentů.
Pokud ale člověk potřebuje posílat data oboustranně, inicializovat komunikaci* i ze serveru, ne jen z klienta, není to vůbec vhodný protokol. V takových případech se mnohem víc hodí např. protokol XMPP nebo protokol, který si člověk napíše na míru (i když to je vštšinou zbytečné, protože se dá vystačit s existujícími protokoly, které umožňují oboustrannou komunikaci).
*) nemyslím inicializaci jako navázání nového síťového spojení, ale odeslání zprávy (volání metody, poslání dat…) v rámci již navázaného spojení.
To, že ho někteří používají k věcem, ke kterým není určen, neznamená, že to je neschopný protokol – je to skvělý protokol pro přenos hypertextových dokumentů.Dobrá, s tou neschopností jsem to asi přehnal, protože ano, HTTP je určen k něčemu jiného, zato svůj úkol plní na 100% a jen se ho někteří snaží využít/hackovat ve svůj prospěch a k tomu k čemu nikdy nebyl zamýšlen.
Pokud ale člověk potřebuje posílat data oboustranněAno, a proto neexistují metody PUT ani POST.
inicializovat komunikaci* i ze serveruAno, a proto nemáme persistentní spojení a HTTP server push ("Comet"). Já to vzdávám, zase dělám ďáblovi advokáta v off-topic flamu.
Klient je v tomhle smyslu nedůvěryhodný vždy – bez ohledu na to, zda je přihlášený či nepřihlášený a bez ohledu na komunikační protokol.
Kód klientského programu totiž běží na uživatelově počítači a uživatel může tenhle program pozměnit nebo ho úplně obejít a posílat pakety nebo příkazy ručně.
Jenže ten „nevýznamový token“ není u jiných protokolů potřeba kvůli tomu, že se drží jedno TCP spojení – spárování požadavků klienta pak funguje na základě toho, že všechny přišly stejným spojením.
Když spojení spadne, tak prostě nevíme, že to je tentýž uživatel, což u anonymních služeb nevadí* a u těch neanonymních se uživatel znovu prokáže jménem a heslem. Ve výjimečných případech, kdy chceme „indentitu“ konkrétního anonymního uživatele udržovat i v dalších síťových spojeních, tak prostě nějaký ten token použijeme – jenže u HTTP ho musíme použít vždy.
*) např. SMTP pro příchozí poštu, odesílající servery se nijak neprokazují, prostě pošlou maily pro naši doménu a my už si to nějak přebereme.
Vážně?
Asynchronní nad synchronním:
void
), ukončím metodu.void
).Synchronní nad asynchronním:
Oboje vypadá stejně jednoduše, ale jen za jedné podínky: musí fungovat oboustranná komunikace – pokud totiž nefunguje, je druhá možnost (synchronní nad asynchronním) dost problematická – je potřeba v cyklu kontrolovat, jestli už přichází odpověď nebo zavolat metodu pro vyžádání odpovědi a metoda vrátí hodnotu až za dlouhou dobu (až je k dispozici odpověď), jenže tenhle přístup nám zase přidělává práci na „serveru“.
Zajímavý by mohl být snad leda ten „HTTP server push“, ale pokud nefunguje v MSIE, tak je v praxi nepoužitelný. A tady se dostáváme k další výhodě oddělení dokumentů a aplikací – pokud by vznikla nová platforma, vznikla by implementace nad jedním jádrem a nikdo by se nehádal, že chce používat třeba MSIE nebo Gecko – prostě by tu byla nejdřív specifikace a až potom implementace (časem by mohly vzniknout i implementace nad jinými jádry, ale musely by fungovat podle specifikace).
Přijde mi, že každý pod pojmem „synchronní“ rozumíme něco jiného.
takže moc nechápu, proč do toho mícháš nějaké tokeny – ty souvisí spíš se stavovostí protokolu, než s a/synchronním přístupem.
A udělat ze stavového bezestavový je nějaký problém? IMHO ne, sice se drží stejné síťové spojené, ale požadavky se zpracovávají bez ohledu na předchozí – prostě se ten stav zapomene (resp. se ani neukládá), což je skutečně bezpracné.
U HTTP by bylo fajn, kdyby se stačilo přihlásit jednou a dál fungovat v rámci jednoho „keep-alive“ spojení a žádný token by se nemusel posílat, protože by se vědělo, že je to pořád tentýž klient. Někdy se samozřejmě může hodit spojení přerušit a opět ho navázat, až když je potřeba (abychom neměli zbytečně moc otevřených spojení), ovšem tohle by chtělo implementovat na úrovni protokolu, ne až na úrovni aplikace. A ideálně to nevázat na konkrétní protokol (HTTP) ale vymyslet standard, který by vytvářel jakýsi abstraktní „socket“, který by se spojil, když je to potřeba a až nad ním by fungovalo HTTP, IMAP a další protokoly. (i když tohle přerušování spojení dost brání oboustranné komunikaci – push ze serveru).
A pak přidat (standardní) možnost oboustranné komunikace – sice je tu HTTP server push, ale MS o něm říká, že je to ošklivá proprietární technologie a že ji nebude podporovat.
Pak by byl HTTP celkem použitelný i pro jiné věci než prohlížení webů, ale i tam mi nepřijde vhodné cpát všechno do jednoho protokolu a provozovat na jednom portu. Např. při prohlížení webu vyžaduješ okamžitou odezvu, je to interaktivní práce, zatímco při stahování/odesílání souborů je ti celkem jedno, jak dlouho to trvá, nebo jestli se přenos na chvíli pozastaví, aby se udělalo místo něčemu interaktivnějšímu – jenže když se na všechno používá jeden protokol, je složitější tyhle priority řešit.
HTTP se používá hlavně proto, že spousta blbů (administrátorů) na firewallech zakazuje cokoli jiného než TCP porty 80 a 443. A proto, že spousta jiných blbů (uživatelů) si pod pojmem Internet představuje jen web. Autoři aplikací se pak snaží vyhnout situaci, kdy uživatel má pocit, že mu „jde Internet" (dostane se na Seznam.cz) ale naše aplikace „nejde a proto je tedy blbá“.
Nainstalovat si program není žádná tragédie – tu z toho udělaly až Windows a uzavřený software.
Multiplatformní aplikace se dají psát třeba v Javě – a není potřeba je ani instalovat, stačí kliknout na jeden odkaz na webu, aplikace se sama stáhne a spustí – webstart. Bezpečnost je zajištěna pomocí SSL certifikátů a pomocí omezení aplikace (např. přístup jen k souborům, které vybral uživatel v souborovém dialogu, nebo jen z určité složky atd., i nesouborová omezení)
Ten webstart je dobrý príklad ako sa to dá robiť a IMHO presne tak budú webové aplikácie o 10/20 rokov vyzerať.Jen doufám, že aspoň bude aspoň z důvodu zpětné kompatibility i možnost přepnout si na dokumentovou reprezentaci.
dokument != aplikace
je potřeba rozlišovat mezi dokumentem (převážně text + obrázky + možná nějaký multimediální část, třeba 3D animace zobrazovaná pluginem) a aplikací, kterou jde těžko prezentovat jako text (jak převést třeba takový Gimp nebo chatovací aplikaci na text?).
Dneska v tom má dost lidí (i vývojářů) bordel – oboje se totiž zobrazuje ve webovém prohlížeči – ale jsou to dva diametrálně odlišné světy – mělo by zůstat klasické HTTP/HTML (pro dokumenty a prezentace) a vedle toho platforma pro „webové“ aplikace.
K tomu by mohla existovat možnost, jak vložit takovou aplikaci do webové stránky (jako se vkládají třeba obrázky nebo Flash) a s minimálními oprávněními by se ta aplikace mohla spouštět okamžitě – pokud by potřebovala oprávnění např. pro zápis na lokální disk, uživatel by byl dotázán, zda ji chce spustit.
Ono by šlo vytvořit podobnou, ale o dost lepší platformu, než jsou dnešní webové aplikace: na straně klinta by stále bylo nějaké jádro renderující XHTML + interpret JavaScript. Klient se serverem by komunikoval pomocí XMPP nebo jiného vhodného protokolu, místo HTTP. Aplikace by se šířila jako XML popis toho, co se má odkud stáhnout (XHTML, obrázky…) nebo jako ZIP obsahující tento XML popis + další soubory soubory – taková aplikace by mohla fungovat i offline. Programátor by mohl používat i nestandardní JavaScriptové funkce – např. pro přístup k místním souborům, práci s obrázky, kompresní a šifrovací algoritmy, práce s e-mailem atd. Aplikace by měla deklarativně nastavená oprávnění (např. že smí zapisovat pouze do ~/.aplikace1 atd.)
S tím by se daly psát mnohem lepší multiplatformní aplikace a hlavně by to bylo mnohem menší utrpení
Pořád to jede nad nevhodným protokolem (HTTP), autoři nebyli schopni se povznést a oprostit se od dogmatu, že aby něco bylo přenositelné a snadno nasaditelné, musí to fungovat nad HTTP.
Jsou aplikace a „aplikace“ – zatímco HTML 5 budou leda takové hračky, s tím mým návrhem by šly dělat plnohodnotné desktopové aplikace, které by ale měly podobné výhody jako webové. Taková aplikace by měla srovnatelné možnosti jako desktopová aplikace v Javě, akorát by se používal jiný jazyk a místo Swingu by bylo XHTML. A celé by to bylo „lehčí“ a přenositelnější (portovat někam jádro prohlížeče a interpret JS je snazší, než tam portovat celé JRE).
Ty nestandardní JavaScriptové funkce (např. pro přístup k místním souborům, práci s obrázky, kompresní a šifrovací algoritmy, práce s e-mailem atd.) by byly rozdělené do modulů a v XML popisu aplikace by bylo, jaké moduly vyžaduje – interpret na určité platformě by nemusel implementovat všechny moduly, takže některá aplikace by třeba fungovala na PC a nefungovala na starším PDA, ale věděl bys předem, jestli bude nebo nebude fungovat (podle požadovaných a poskytovaných modulů).
Další funkce by mohly být třeba přístup do osobních kontaktů, ke kalendáři atd. A díky deklarativním oprávněním by aplikace mohla jen to, co bys jí dovolil. Mohla by pracovat normálně se souborovým systémem a ne jen nějakým jedním souborem, který jí přidělí prohlížeč.
Teda, jsou… jsou na papíře
To je snad jediná výhoda HTML 5 – snad se stihne implementovat něco lepšího, než někdo procpe tenhle mizerný a omezený návrh
A hlavně bychom konečně odřízli (webové) aplikace od dokumentů – protože každé je něco úplně jiného
Ale vždyť HTML formuláře tu byly už dávno před AJAXem, na ty není potřeba žádná nová technologie, stačí pasivní HTML stránka + skript na straně serveru, který přijde GET/POST odpověď. Sice to není dokument, ale je to natolik triviální záležitost, že se dá bezbolestně implementovat nad HTTP.
To je snad jediná výhoda HTML 5 – snad se stihne implementovat něco lepšího, než někdo procpe tenhle mizerný a omezený návrhNebojte se, taková snaha už tu byla s XHTML 2, že se prostě vytvoří "nový web", který s tím starým nebude mít nic společného. Jak to dopadlo, všichni víme. A jak jsou na tom technologie typu JavaFX, Silverlight nebo Flex/AIR? No mizerně. Renesance appletů se nekoná a webstart se taky neuchytil. Jako nejpravděpodobnější směr v budoucnosti vidím GWT a příbuzné. (Dyklamer: nesnažím se obhajovat špatné technologie, ale být realista.)
Vtip je v tom, že by to nebyl „nový web“, ale platforma pro aplikace. Nejblíž k té mé představě má asi ten XUL… až v HTML 5 půjde napsat něco jako Songbird, tak dej vědět
Nemám nic proti multimédiím (videu, 3D grafice, zvuku…) na webu, ale myslím, že by prohlížečům a vůbec webu prospěla větší modularita – většina věcí by se řešila přes pluginy (přičemž ty základní, to co se cpe dneska do jádra prohlížeče, by bylo v základní instalaci prohlížeče). Bylo by tak snadné např. vyměnit implementaci vykreslovače obrázků*, různé přehrávače videa, Flashe nebo 3D. Plugin by se vybíral na základě MIME Typu v HTML, nebo by si ho uživatel mohl definovat podle domény/stránky a typu. A chtělo by to nějaký registr pluginů a kompatibilitu pluginů mezi prohlížeči (aspoň v rámci jedné platformy).
*) neumí tvůj plugin průhledné PNG? nevadí, prostě ho vyměníš za jiný, který to umí a nemusíš měnit prohlížeč.
neumí tvůj plugin průhledné PNG? nevadí, prostě ho vyměníš za jiný, který to umí a nemusíš měnit prohlížečOno by bohatě stačilo kdyby i základní implementace obsahovali vše co standard nařizuje a doporučuje a pak by žádné plug-iny ani nebyly potřeba.
Na tom nevidím nic špatného. Prostě ta implementace vznikne jako plugin a až se časem ukáže, že je to dobré a že to lidi potřebují, dá se tenhle plugin do výchozí instalace prohlížeče.
Bylo by fajn, kdyby sis při stahování prohlížeče mohl naklikat, jaké pluginy v něm chceš mít (v Linuxu by to řešil balíčkovací systém) + by byla podobně snadná možnost instalace pluginů (ve Firefoxu: Správce doplňků / Zásuvné moduly).
V případě, že používáte prohlížeč Firefox, prosím nainstalujte si tento plug-in. V případě, že používáte jiný prohlížeč máte smůlu. Co kdyby tak tomu bylo u JPEG samotného nebo třeba u PNG? To by byl oheň na střeše. Proti volbám samozřejmě nic, ale proti základním věcem, které mají být už implementovány v programu samotném jako plug-in ve Firefoxovském stylu už všechno.
v Linuxu by to řešil balíčkovací systémNa co? Už několik dekád tady máme konfigurační volby ./configure skriptu.
Musí se nejdřív nainstalovat k něčemu k čemu je potřeba. … ale proti základním věcem, které mají být už implementovány v programu samotném
Psal jsem, že ty základní pluginy by byly už ve výchozí instalaci prohlížeče. Jak se to liší od situace, kdy tahle funkcionalita bude natvrdo zadrátovaná v prohlížeči?
Navíc nepotřebné pluginy můžeš vyházet, takže snížíš paměťové nároky nebo dobu spouštění – a každý za potřebné/nepotřebné považuje něco jiného.
A to mám jako někde vystavovat JPEG2000 a u toho nadpis: V případě, že používáte prohlížeč Firefox, prosím nainstalujte si tento plug-in.
Prohlížeč by instalaci daného pluginu měl nabídnout sám, na základě MIME typu uvedeného na stránce a na 1-2 kliknutí by ten plugin měl jít nainstalovat.
Psal jsem, že ty základní pluginy by byly už ve výchozí instalaci prohlížeče. Jak se to liší od situace, kdy tahle funkcionalita bude natvrdo zadrátovaná v prohlížeči? Navíc nepotřebné pluginy můžeš vyházet, takže snížíš paměťové nároky nebo dobu spouštění – a každý za potřebné/nepotřebné považuje něco jiného.Tato nosná myšlenka mi poněkud unikla.
Prohlížeč by instalaci daného pluginu měl nabídnout sám, na základě MIME typu uvedeného na stránce a na 1-2 kliknutí by ten plugin měl jít nainstalovat.To souhlas. Ovšem nemění to nic na tom, že by se prvně standard musel implementovat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.