From brain@artax.karlin.mff.cuni.cz Mon Nov 5 19:51:10 2001 Date: Mon, 5 Nov 2001 20:59:29 +0100 (MET) From: Petr KulhavyTo: Martin Pergel Cc: Mikulas Patocka Subject: Re: Meneni protokolu upcallu > Koukal 'sem na ten tvuj vytvor. Asi bude potreba zmenit protokol pro > predavani argumentu a to proto, ze timer umi predat akorat void* na > data (nebo neco takoveho), navic kdyz Te zavolam upcallem, tak me > musis probudit nastavenim timeru na js_do_code nebo ipret. Zatim s > temi upcally pockej, nebo zkus spis menit protokol pro vyjednavani. > Ja jsem si to uvedomil az vcera. Udela se to, jak jsme porockovali na tom obede: Vyrobi se naka struktura treba struct fax_me_tender, kam se daj ty prislusny argumenty pro ten upcall vcetne trebas ty funkce downcall (jak je v nakym jinym mailu, co Mikulas navrhoval). No a to se preda tomu upcallu, kterej se bude muset volat z timeru. Ostatni upcally (ty, ktery neni potreba volat z timeru) bych nechal, jak jsou - tam se muze narvat argumentu, kolik chce. Protoze pochopitelne budou ruzny upcally a kazdej bude brat jiny argumenty, tak tech struktur budes mit vic (proto ten uchylnej nazev). Takze kdyz budes mit treba upcally: js_upcall_lada js_upcall_pepa js_upcall_marie js_upcall_monitor tak budes mit struktury: fax_me_tender_lado fax_me_tender_pepo fax_me_tender_marie fax_me_tender_monitor :-))) Poznamka pod carou pro neznale: ten uchylnej nazev je z pisnicky Monitor od 3 seger. Ja jsem dlouhou dobu premejslel, co jako znamena ten Monitor, jestli to je obrazovka, nebo synchronizacni primitivum... A pak jsem nahodou prisel na to, ze to je zname hudebni vydavatelstvi ;-) Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 16:45:30 2002 Date: Tue, 6 Nov 2001 20:44:10 +0100 (MET) From: Petr Kulhavy To: Mikulas Patocka Cc: Martin Pergel Subject: Re: Downcally > > Cau. > > > > Budou se muset downcally volat ze select smycky? Nebo to PerMe > > napises, aby nemusely? Bude to Mikulasi zavadny, kdyz se nebudou > > volat ze select smycky? Jak vubec principielne budou fungovat? > > Javascript musi bezet rovnou ze select smycky (na tom jsme se s > permem kdysi dohodli a uz by se to nemelo menit). Takze: bud se > downcally budou volat ze select smycky nebo se downcally budou volat > odkudkoli a downcall pusti javascript pres nulovy timer. No, tak to udela PerM v tom downcallu. Aspon se pri kazdym pouziti downcallu nebude muset vyrabet ten timer, ale bude to zadratovany v tom downcallu. Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 16:49:05 2002 Date: Fri, 9 Nov 2001 18:25:46 +0100 (CET) From: Petr Kulhavy To: mikulas@artax.karlin.mff.cuni.cz Cc: mper7437@artax.karlin.mff.cuni.cz Subject: Identifikace objektu v ramci dokumentu Zdar. Potrebuju nejak identifikovat jednotlive objekty v ramci dokumentu. PerM potrebuje hmatat (to je vochmatik, co?) nejen na objekty ve formelari, ale taky na linky. Proto potrebuju jednoznacne identifikovat vsechny objekty v ramci dokumentu. Jak na to? Mne napadlo v nejakych hodne hornich bitech udrzovat typ toho objektu a v tech spodnich nejake to prislusne poradi. Takze bych pak mel masku na formelare, linky atd. Co si o tom myslis? Mej se Brain From mikulas@artax.karlin.mff.cuni.cz Tue Apr 23 22:23:42 2002 Date: Fri, 26 Oct 2001 16:17:52 +0200 (CEST) From: Mikulas Patocka To: Petr Kulhavy Cc: Martin Pergel Subject: Re: jsint - kodovani objektu > Zdar. > > Tak jsme vcera s PerMem v sede ve fronte na obed schuzovali o > projektu. A dosli jsme k nazoru, ze by nebylo spatny udelat ten > jsint :-) > > Napada te nejaky zpusob, jak identifikovat ty objekty? PerM rikal, > ze bude potrebovat taky zpetne dekodovat podle cisla ten objekt. Tak > v com to tam ukladat atd. > > Jak jsou uvnitr linksu vlastne identifikovany ty objekty tedka? Jako > treba cudliky na strance, ramy, atd. Ja jsem to rikal PerMovi. Doufam, ze kdyz ti to rekne on, tak to nebude moc zkreslene :-) Zakladni idea: javascript nikde nesmi skladovat pointery na ruzny struktury v linksu, protoze ty struktury se muzou menit a pak by to padalo. Kazdy dokument ma id dokumentu. Kazdy objekt ma id objektu. Javascript zna tyhle id. Kdyz ti nekdo v upcallu preda neplatne id, tak proste neudelas nic, ale hlavne nespadnes, jak by se stalo, kdyby ti nekdo predal neplatny pointer. id dokuemntu jsou v struct f_data_c *, polozka id. id objektu v dokumentu je asi nejlepsi brat jako poradi objektu v seznamu polozek formularu (pole for_info v struct view_state, ma delku form_info_len). Muzes to kodovat i jinak, ale takhle to asi bude nejjednodussi. Prijde upcall js_upcall_zmen_polozku_formulare(struct f_data_c *owner, long id_dokuemntu, long id_objektu, char *nova_hodnota) 1. Naleznes dokuemnt z danym id (prohledej hrubou silou vsechny, neni jich moc :-) 2. Zjistis zda z dokuemntu owner muzes hrabat do dokumentu, ktery jsi v bode 1 nasel. To je mozne tehdy, pokud oba dokumenty pochazeji ze stejneho servru. Kdybys to nedelal, tak je v tom SECURITY BUG(tm). Mohlo by se treba stat, ze uzivatel ma otevrene 2 stranky, jedna z nich je http://www.1337cr4X0R.org a druha je http://www.post.cz - pak uzivatel do www.post.cz napise jmeno a heslo a javascript bezici z http://www.1337cr4x0r.org mu to heslo vycucne a nekam posle. 3. Zjistis, zda id_objektu je platne (zda neni mimo rozsah pole). 4. Zmenis hodnotu 5. Prekreslis Mikulas From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 16:41:28 2002 Date: Sun, 4 Nov 2001 23:12:55 +0100 (CET) From: Mikulas Patocka To: Petr Kulhavy Cc: Martin Pergel Subject: Re: Jak udelat upcall confirm > Zdarec. > > Mam takovej problem. Upcall confirm ma vyrobit dialog s nakejma > kecama a s tlacitkama OK/Cancel. To by zatim nebyl takovej problem, > ale vono to jeste ma vratit true/false podle toho zmacknutyho > tlacitka. Tak jak to mam udelat? S tim architektura linkse nepocita, > to by musel quli tomu zatvrdnout celej links, protoze BFU se reklo, > ze chce confirm dialog. Ten javascript se pri tom musi odblokovat. Cili se to musi navrhnout jinak, nez int js_upcall_confirm(....), kde ta funkce vrati vracenou hodnotu. Treba neco jako void js_upcall_confirm(void *f_data_c, char *text, void (*callback)(struct js_context *ctx, int value)); Pricemz, az se na to klikne, zavola se callback. Musis osetrit moznost, ze prislusny kontext nebo cele okno zmizi, driv nez se kliklo. Mikulas From brain@artax.karlin.mff.cuni.cz Mon Apr 22 17:01:41 2002 Date: Fri, 23 Nov 2001 21:10:10 +0100 (MET) From: Petr Kulhavy To: Martin Pergel Subject: Polozky formulare Zdarec. Premejslim, jak ti mam vracet elementy formu. Zase ti naalokuju pole s idckama. Ale nevim, jestli typy tech jednotlivejch elementu maj bejt JS_OBJ_T_FORM_ELEMENT, nebo jestli mam rozlisovat mezi cudlikem, radiem, televizi, textarea, hidden, password, ... Jak ty vlastne zjistis treba id checkboxu, kdyz po mne budes chtit, jestli je ten checkbox zaskrtnutej? Neco si rikal, ze z techhle funkci, ktery budou vracet seznam linku, formularu, elementu, si to nebudes pamatovat. Tak jak to budes zjistovat, pres jakej upcall? Kdyz bych v tom form_elements zvracel typky cudlik, checkbox, ..., tak usetrim (si) tim nejakou praci? (ze by se pak treba nemusel volat upcall zjisti_co_je_tohle_za_form_ementala). Nebo to je jedno a ty ty idcka checkboxu budes zjistovat jinym upcallem a to form_elements tam bude jenom pro dobry vzhled? Mej se Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 16:41:17 2002 Date: Mon, 5 Nov 2001 11:08:27 +0100 (CET) From: Mikulas Patocka To: Petr Kulhavy Cc: mper7437@artax.karlin.mff.cuni.cz Subject: Re: Barvicky > > > Cau. > > > > > > Kde mam popadnout barvicky bgcolor, fgcolor, barvicky linku atd? > > > Potrebuju je v upcallech menit/vypisovat. > > > > Asi nikde. A ja myslim, ze je to jedno. Dovedes si nejakou funkci > > stranky, ktera by na tom zavisela? > > PerM to chce v kravascriptu. Asi tim bude nastavovat barvu pismenek > atd. Tak by to docela i sneslo :-) No a co? Tak proste budou mit pismenka jinou barvu - BFU se z toho nepodela. Funkcnost to nijak neovlivni. Prekopavat kvuli tomu kod na zobrazovani nebudu, protoze pri prekopavani kodu se udela nejvic chyb. Mikulas From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 18:04:40 2002 Date: Sun, 10 Feb 2002 14:22:14 +0100 (CET) From: Mikulas Patocka To: Petr Kulhavy Cc: Martin Pergel Subject: Re: Historie, zmena URL > Cau. > > Bude potreba napsat objekt history do javascriptu. Problem je v tom, > ze history objekt ma umet forward. Jednou dobou v linksech byl > forward v historii (nebo alespon patch), ale tys to pak myslim > vyhodil. > > Takze tedka to tam bude potreba dodelat. Co si o tom myslis? Udelas > chozeni dopredu v historii? Ja bych udelal klasicky jako v > netchcipakovi, ze budes moct jit zpatky a jakmile odbocis, tak se > zacne pocitat nova historie a dopredu uz nepujde. Neboli kdyz pujdes > v historii dozadu a pak zase dopredu, tak to bude OK, ale kdyz > pujdes dozadu a na kliknes na nejakej odkaz, tak uz dopredu nepujde. > Co ty na to? > > Jinak, kde je ulozena historie? Jak se leze zpatky v historii? Jak > se vleze na nejake URL a jak to bude kolidovat s javascriptem (musim > ho nejak killovat, nez zavolam nejaky to goto_url_f?)? Ja bych to radsi nedelal, protoze mam strach, ze v tom budou bugy. Mikulas From mikulas@artax.karlin.mff.cuni.cz Tue Apr 23 22:29:16 2002 Date: Tue, 26 Feb 2002 22:23:52 +0100 (CET) From: Mikulas Patocka To: Petr Kulhavy Cc: Martin Pergel Subject: Re: Susenky > > > > > Tak co s tim? > > > > > > > > Asi to bud ukladat do bufferu, nebo ukladat cely ten retezec > > > > nekam a pak ho vyblit do set_cookie cely, az skonci skript. > > > > > > Kdy se vlastne maj aplikovat ty cookies? To nikde neni > > > definovany. Co kdyby se pred vyzadanim kazdyho dokumentu > > > vyblily ta cache na susenky? Nebo jenom pri goto url nebo ja > > > nevim co. > > Takze navrhuju udelani bufferu a vyprazdnovani bufferu, kdyz se: - > budou cist cookies ve scriptu - bude volat goto_url_f (a podobne > funkce) > > Kde navrhujes, aby se to vsude flushovalo? > > Koukam, ze ty cookies + js je pekna dira, co kdyby se v javascript > options udelalo klikatko na vypinani susenek (respektive vypinani > zapisovani do susenek)? Protoze ten krawascript proflakne co pujde - > treba historii, na jaky si koukal vsechny pornostranky a tak. > Pripadne by se pri pokusu nastavit susenku objevilo okno, jestli to > chces (accept, reject, kill script). No -- ja bych to udelal tak, ze javascript v nejakym okne vidi jen cookies, co jsou prirazeny te domene, ve ktere je ten server, ze kteryho je ta stranka zobrazena. Ne nadarmo mas u set_cookie parametr url, ze kteryho je to nastaveny, a ten zajisti, aby se nenastavovala cookie na nejake jine domeny. > Ted mne napada, ze by se to melo fortelne zparanoizovat, protoze to > ti muze vycintat i pomoci document-write (prida si treba u formulare > nejake hidden polozky) atd. A to teda ne... Cookies ti nikdo nemuze ukradnout ... na dany server se posilaji jen cookies, ktere jsou z dane domeny -- zadny server nedostane zadne jine cookies. Mikulas From brain@artax.karlin.mff.cuni.cz Tue Apr 23 22:29:21 2002 Date: Wed, 27 Feb 2002 00:00:09 +0100 (MET) From: brain@artax.karlin.mff.cuni.cz To: Martin Pergel Cc: Mikulas Patocka Subject: Susenky - jak se to bude delat Zdar. Takze tady je zdviz z toho, jak jsme se s panem Vrxnim dohodli na implantaci susenek: - bude upcall js_upcall_get_cookie a js_upcall_set_cookie, obe budou dostavat kontext javascriptu (quli pravum, aby se nehmatalo do jinejch dokumentu) - js_upcall_get_cookie vrati string se susenkama, ktery patrej tomu dokumentu (takze standardni chovani, jak je popsane na popularni silnici) - problem je s nastavovanim: BFU muze nastavovat cookies po jednotlivejch pismenkach. Takze v kontextu javascriptu bude vezet alokovanej string (treba unsigned char * cookie), kterej vpodstate (z tveho pohledu) bude znamenat document.cookie a ty s nim budes taky tak pracovat: Kdyz nekdo napise document.cookie="bla", tak udelas: mem_free(js->cookie); js->cookie=stracpy("bla"); Kdyz nekdo napise document.cookie+="bla", tak udelas add_to_strn(&(js->cookie),"bla"); Tim pro tebe bude koncit zapisovani do cookie. O ostatni se postaram ja. Ostatni znamena, ze se na tenhle retezec jednou za cas zavola set_cookie. Az se to set_cookie zavola, tak teprve budou tyhle susenky nastaveny. set_cookie budu nastavovat ja, kdyz zavolas get_cookie, nebo az skonci skribt. Snad jsem nic nezapomnel... Muzes zacit implantovat, ja budu implantovat tu svoji cast. Brain
From brain@artax.karlin.mff.cuni.cz Mon Apr 22 16:47:01 2002 Date: Thu, 8 Nov 2001 20:14:43 +0100 (MET) From: Petr KulhavyTo: Martin Pergel , clock@atrey.karlin.mff.cuni.cz, Mikulas Patocka Subject: Bezpecnost kravascriptu, close(), dialogy Zdar. Bude se delat upcall close (zavre vokno)? Co si myslis o bezpecnosti? Serou mi totiz takovy ty stranky, ktery mi zavrou netchcipaka, takze ho pak musim poustet znova. Tak by nemuselo bejt spatny se BFUcka zeptat, jestli to vokno fakt chce zanevrit. Pak mne jeste napadla pekna dira, jak voprudit BFUcko: while(1) alert("Jsi debil!"); A BFUcko bude muset klikat, klikat, klikat, klikat - furt a furt. Nic jinyho neudela. Browser sice bude fungovat dal, timhle se nad nim vlada neprevezme, ale BFUcko bude vodriznuty (kdyz se objevi dialog, tak se chytaj kliky v nem a na zbytek se kasle). To vrchni ideolog kapanek nedomyslel. Proto bych navrhoval u vsech dialogu v kravascriptu udelat cudl "Stop javascript", tim bude mit dotycny zlocinec utrum a smitec. Co si o tom myslite? Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 17:55:54 2002 Date: Mon, 4 Feb 2002 14:21:26 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Subject: Re: Kill_script v js_error On Mon, 4 Feb 2002, Martin Pergel wrote: > Zdar, > > On Mon, 4 Feb 2002, Petr Kulhavy wrote: > > > V js_error/warning jeste musime udelat cudl kill_script, aby se to > > dalo ovladat. Tak to nak vymysli. > > v js_erroru je uplne na prd, akorat by BFUcko mohlo zacyklit > dialog o krachu skriptu, protoze js_error je nad javascriptem > panem a interpretaci pomerne spolehlive ukonci (jiste sis > vsiml, ze jsem hlaseni erroru a warningu pres vikend > zBFUnessnil). Do warningu by to pridelat slo (mozna). Stacilo > by tam dat to samy jako je jinde. A mam ti tam taky volat ten game_over downcall? Prodejchnes to? Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 18:02:29 2002 Date: Fri, 8 Feb 2002 14:38:20 +0100 (CET) From: Mikulas Patocka To: Martin Pergel Cc: Petr Kulhavy , clock@atrey.karlin.mff.cuni.cz Subject: Zmena alokatoru. Zdar. Modifikoval jsem alokator: umi - red zone - jeden byte za koncem. kontroluje ho pri free a realloc. - realloc, free a malloc fill -- plni nove naalokovane nebo uvolnene bloky. aby se nestavalo, ze pouzivate strukturu, ktera uz byla uvolnena, coz se stane, kdyz treba vlezete na xchat, jak jsem to popisoval v jinem mailu. Tyto featury je mozno zapinat a vypinat na zacatku error.c. Mikulas From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 23:43:51 2002 Date: Thu, 14 Mar 2002 23:33:07 +0100 (CET) From: Mikulas Patocka To: brain@artax.karlin.mff.cuni.cz Cc: Martin Pergel Subject: Re: Pristupova prava v javascriptu > Ahoj. > > Zrovna se tu snazim resit pristupova prava v JS. Souhlasite s timto > komentarem? > > /* * Ve vsech upcallech plati, ze pokud dostanu ID nejakeho objektu, > tak * javascript ma k tomu objektu pristupova prava. Jinymi slovy > pristupova prava * se testuji v upcallech jen, aby se neco > neproneslo vratnici ven. Dovnitr se * muze donaset vsechno, co si > javascript donese, na to ma prava. * */ > > Nebo si myslite, ze bych mel testovat prava v kazde funkci typu: > dostane platne id nejakeho objektu a vraci hodnotu toho objektu? > Napriklad dostane ID obrazku a vraci jeho source. Pristupova prava musis testovat VZDY !!! VZDY pri pristupu na objekt se musis podivat, zda je url dokumentu spravne a zda se na to muze pristupovat. Priklad utoku: utocnik otevre dve okna. v jednom okne zobrazi stranku ze sveho servru s formularem. ve druhem okne pobezi skript a ziska id toho formulare. BFU v tom prvnim okne vleze treba na www.post.cz. skript pouzije id toho formulare, co uz ma, pokusi se ziskat hodnotu, co byla v tom formulari s danym id a chytne uzivatelske jmeno a heslo na www.post.cz. Mravni nauceni: pri kazdem pristupu je treba kontrolovat prava. Mikulas From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:40:04 2002 Date: Sun, 17 Mar 2002 21:14:25 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Subject: Testovani pristupovych prav Ahoj. Ja prepisu vsechny upcally --- budu testovat pristupova prava, jak psal Mikulas. Pro tebe se zmeni akorat rozhrani upcallu, ktery nedostavaj pointer na struct f_data_c, a to tak, ze jako 1. argument se tomu upcallu da ten pointer na f_data_c. Jinak to bude uplne stejne. Nevim, jak to mam udelat, aby v CVSce nebyla nekompilovatelna verze a zaroven abych ti mohl dat ty prepsane upcally. Tak bych navrhoval, abys prepsal volani tech upcallu a poslal mi to, ja to pak sleju a commitnu. Brain From mikulas@artax.karlin.mff.cuni.cz Tue Apr 23 21:55:37 2002 Date: Sun, 3 Mar 2002 15:08:00 +0100 (CET) From: Mikulas Patocka To: Martin Pergel Cc: Petr Kulhavy , clock@atrey.karlin.mff.cuni.cz Subject: Regresni testovani v linksu Cau Takze aby se nemusely tridit ty bug-reporty rucne, udelal jsem regresni testovani. Delaji to napriklad pri vyvoji GCC, nebot jeho bugovitost je znacna, a mnohdy se stava, ze oprava jednoho bugu zpusobi bug dalsi (v linksu se to taky uz jednou stalo -- jeden z tech bugu uz perm kdysi opravil a on se objevil znovu). v adresari TEST je skript ./regtest v adresari TEST/pages jsou html stranky s javascriptem skript regtest funguje zcela automaticky - neni treba na nic mackat. Skript pousti links postupne na jesnotlive stranky a ukoncuje ho. Testuje to na: pad pri natazeni stranky, pad pri ukonceni linkse, nekonecny cyklus, memory leaky. vlezte si do adresare TEST a pustte si ./regtest, pockejte az to vsechno otestuje a budete cumet na zpravu :) Az nekdo nalezne nejakou bugu, tak at krome posilani bug-reportu tu stranku stahne, zkusi zda to funguje i na proste strance a pak to da do adresare TEST/pages, a da cvs add soubor a cvs commit. Pokud k reprodukovani bugy je potreba mackat nejake klavesy - vyrobte k tomu soubor se stejnym nazvem, jako ma stranka a s priponou .klik, ve kterem bude napsano, co se ma napsat na stdin. Pozor - znaky se na stdin zapisuji vsecky naraz. Prikladem toho je soubor pages/www.kolej.mff.cuni.cz.seznamka.klik Stranky na kterych to pada je nutne do tohoto testu davat, protoze se uz stalo, ze perm nejakou bugu opravil, a pozdeji se ta buga projevila zas. Takze Martine -- poustej si ./regtest a mas co opravovat - aktualne tam mas 6 bugu. (jeden nebo dva z toho jsou myslim brainovy). Mikulas From brain@artax.karlin.mff.cuni.cz Tue Apr 23 22:27:08 2002 Date: Mon, 18 Feb 2002 17:58:06 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Cc: clock@atrey.karlin.mff.cuni.cz, Mikulas Patocka Subject: Re: Referendum On Mon, 18 Feb 2002, Martin Pergel wrote: > Zdar, > > mam kod, kterej shodi NetChcipaka na u-blafech. Zkusim ho > pridat mezi priklady, ktery Linksy prodejchnou a NetChcip ne. > Je trapne jednoduchej: > > > > Linksy to prezijou proto, ze nejsou tak marnotratne jako NetChcip, > takze se sklapeji pekne zakerne a pomaloucku - uziraji pamet az bud > lehnou, nebo vytuhnou. A k tomu bych mel otazku. Mam tomuhle nejak > zabranit? Treba pocitat, kolikrat se zavolala nejaka funkce > definovana skriptem? Mam dojem, ze funkce definovane mnou by mely > byt imunni vuci rekurzi, u autoru wordovych stranek je rekurze spise > pravidlo nezli vyjimka. Co se tyce zjistovani valueOf nebo toString, > to uz je vuci cykleni zajistene tak, ze jak me nekdo posle po > desatem pointeru dal, tak vytuhnu s dodatkem Too deep structure by > toString in... (nebo necim podobnym). Na toString je uroven 10 > pomerne legitimni pozadavek, lec ne u skriptu. Proto by bylo asi > rozumne to nastavit klikometne. Co o tom myslite? Ja ti klikomet napisu, jak to budes pocitat vevnitr, to nevim, a ani bych to vedet nechtel :-) (jestli u kazde funkce mit citac a kdyz se do ni vleze, tak se zvetsi, a pri opusteni se zmensi a pri vstupu testovat, jestli citac nema tolik a tolik)
Podle mne to je dobrej napad, protoze kdyz si BFUcko bude stezovat, ze mu skribt nedojede, protoze ho killnes na rekurzi, tak si bude moct nastavit vetsi hloubku.
Brain
From clock@atrey.karlin.mff.cuni.cz Tue Apr 23 22:28:44 2002 Date: Tue, 26 Feb 2002 16:47:17 +0100 From: Karel Kulhavy
To: Martin Pergel Subject: Re: Uctovani On Tue, Feb 26, 2002 at 11:58:38AM +0100, Martin Pergel wrote: > Zdar, > > Karel navrhnul, abych pocital kolik pameti naalokoval javascript. Zni > to jako zajimavy napad, zkratka ze bych udelal nekde > #define mem_alloc js_mem_alloc a funkce js_mem_alloc by akorat pripocitala > zaflaknutou pamet, stejne tak js_mem_free by oductovala. Zni to jako dobry > napad, protoze jak kolega Masa poznamenal, browser lze vytuhnout treba > pretecenim delky stringu (a linksy taky), Karel to vylepsil na neco > takovyhohle: > while(1){a[i]='ahoj';i++;} - to by linksy sice trashovalo asi deset minut, > ale taky by to udelalo maler. Zustava problem v tom, ze neco z toho, co > naalokuju ja, odalokuje Brain. Pocitani by se delo budto v ramci contextu > nebo v globalnim meritku s tim, ze kdo pretece, ma smulu, contexty budou > padat, dokud netrefim pozeraka. To by bylo asi nejjednodussi a pomerne
V globalnim meritku. To by se jinak zase pustilo hodne kontextu co zerou primerene pameti. Kdo sahne do hovna prvni pude do kytek.
-- Karel 'Clock' Kulhavy
From pmas7354@artax.karlin.mff.cuni.cz Tue Apr 23 22:29:38 2002 Date: Fri, 22 Feb 2002 20:00:16 +0100 From: Petr Masa
To: mper7437@artax.karlin.mff.cuni.cz Subject: Buffer overflow in IE, co vas Links Ahoj,
jiz pred delsi dobou jsem nasel takovou chybku (brutalni, lec elegantni zpusob) jak slozit IE a potazmo cele Windows. Zajimavosti je, ze slozeni se provede prohlednutim pro IE nesikovne stranky, ktera navic nemusi obsahovat zadny kod! Ovsem s JavaScriptem je to elegantnejsi a brutalnejsi, nebot autor ten kratky sample kod zvrzal a udelal z toho superbrutalni bombu.
Jak jste daleko s funkcnosti JavaScriptu? Chcete take otestovat, co vas links vydrzi? A jak se zachova system pod nim?
Je to opravdu brutalni, co se do funkcnosti tyce, a jsem docela zvedavy, jak by se na to zachoval tucnacek, pokud vam teda pak nezakazou ucet.... Ale ja si myslim, ze to scheduler ci nejake jine udelatko odstavi. Ale tam lze take videt, ze mohou pretekat veci, ktere by normalniho cloveka vubec nenapadly (ze by mela promenna urcujici velikost bufferu problemy s tim, ze neni unsigned? Kdyz pretece? Nestrili se pak po pameti? Jak je to s organizaci pameti v ramci programu? Nezustavaji rozsahla data v pameti? Co na to system? U Win/IE je to jasne, jak to pise autor (priblizne): IE hangs and soon Windows also hangs.
Mej se
Petr }
\subsubchapterfnt Event handlery v javascriptu From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 17:59:43 2002 Date: Fri, 8 Feb 2002 00:03:14 +0100 (CET) From: Mikulas PatockaTo: Petr Kulhavy Cc: Martin Pergel Subject: Re: Event handlery > Ahoj. > > Jak mam udelat eventovy handlery? Jak jsou tam udelany tedka? Uz jsem to na ne pripravil. Mas tam strukturu struct js_event_spec. Ta obsahuje eventy. Manipuluj s ni pomoci create_js_event_spec, copy_js_event_spec a free_js_event_spec. V struct js_event_spec nejsou vsecky on_*** polozky ... jsou tam jen ty, co se davaji k textu. V html.c jsem udelal funkci get_js_events, ktera sama precte atributy a da je do struktury format.js_event. Odtud jsou atributy propagovany k linkam. Do struct link *. Udelej toto: v html.c get_js_events volej u tagu, ktere to chteji. Musi to byt tagy parove. (zatim neni get_js_events volano nikde) Nekde ve view.c se kouknes na js_event_spec u struct link * a podle toho budes volat ty skripty. Mikulas From brain@artax.karlin.mff.cuni.cz Mon Apr 22 17:49:52 2002 Date: Mon, 17 Dec 2001 13:59:09 +0100 (CET) From: Petr Kulhavy To: mikulas@artax.karlin.mff.cuni.cz Cc: Martin Pergel , Karel Kulhavy Subject: Handlery Zdar. Tak jsme se s PerMem domluvili, ze handlery se udelaj tak, ze se u kazdyho vobjektu (kterej muze mit handler) da par pointeru (onclick, onfocus, onsharpen, onblur) a to bude string - argument, se kterym se zavola jsint_execute_code. Ted jde akorat o to, jak resit onfocus, onblur atd. Jak se handluje klikani? Musi se to rozsirit o detekci focusu atd. Mej se Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 18:05:51 2002 Date: Sun, 10 Feb 2002 16:06:26 +0100 (CET) From: Mikulas Patocka To: brain@artax.karlin.mff.cuni.cz Cc: Martin Pergel Subject: Re: onsubmit > Ahoj. > > Mam takovej problem s onSubmit (a onClick na submitu). Kdyz to totiz > zmacknu, tak javascript je podriznut jeste driv, nez se staci pustit > nejaky kod. Co s tim udelame sefe? Udelal jsem tam odlozeny skok. Funkce goto_url_f ma novy parametr, pokud je jedna, tak se skok odlozi, dokud skripty nedobehnou. Ty udelas toto: - v session.c je na jednom miste napsano bezi_nejake_skripty -- tam zavolas nejakou funkci, ktera otestuje, zda v dane session bezi nejaky javascript. (pokud ano ... tak se skok odlozi). - az ti dobehne nejaky skript, tak se podivas, zda dobehly vsecky skripty v dane session a pokud ano, tak skocis pomoci goto_url_f na ses->defered_url, ses->defered_target a ses->derefed_target_base (a nezapomen si ty promenne pred tim skokem nekam zkopirovat, protoze goto_url_f je smaze). - pokud handler onsubmit vrati, ze se submitovat nebude, tak zavolas ses_destroy_defered_jump. (je to v pripade, ze je treba formular a u nej je na onsubmit napsana kontrola vsech polozek a pokud ta kontrola selze, tak to udela 'alert', ale formular to uz nesubmituje). Mikulas From brain@artax.karlin.mff.cuni.cz Mon Apr 22 18:11:09 2002 Date: Thu, 14 Feb 2002 20:58:31 +0100 (CET) From: Petr Kulhavy To: mikulas@artax.karlin.mff.cuni.cz Cc: Martin Pergel Subject: Navratova hodnota v submit handleru Zdar. Prave jsem zkousel v netchcipakovi, jak se chova vraceni ruznych hodnot pri submitu. Zjistil jsem toto: onsubmit handler (u formu) nema zadny vliv onclick u submit tlacitka vliv ma: kdyz vrati false, tak se nesubmituje Takze jak to tedka implantovat? Je potreba vracet z handleru hodnotu true/false. Takze naimplantovat zvraceni hodnot z javascriptu. To teda bude husty. Taky by mne pri te prilezitosti zajimalo, jak se pozna, ze zrovna dobehnuvsi javascript (nekde v jsint_done_execution) byl zrovna onclick handler od submitu a ne nic jineho? Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:40:53 2002 Date: Mon, 18 Mar 2002 11:19:33 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Cc: Mikulas Patocka Subject: Re: Klikaci funkce On Mon, 18 Mar 2002, Martin Pergel wrote: > Zdar, > > On Mon, 18 Mar 2002 brain@artax.karlin.mff.cuni.cz wrote: > > > Potrebuju se domluvit, ktery klikaci funkce mam zapodporovat a co > > maj delat. Klikaci funkce jsou funkce emulujici kliknuti BFUcka > > na neco. Tady je jejich seznam a objekty, u kterych to je (opsano > > z E55): > > > > focus - password, text, textarea blur - password, text, textarea > > click - submit submit - form > > > > Pak taky nevim, jestli se ty funkce musej volat ze selectu (treba > > ten submit). > > > > U techto funkci nevim, jestli je vubec budem podporovat a co maj > > delat. Uz jsou napsany pro window, nevim, jestli je nejakej rozdil > > mezi close u window a u dokumentu. > > > > clear - document close - document > > > > Takze mi reknete, co mam podporovat a co to ma delat, pripadne jak > > to naimplantovat. > > ja bych to videl asi takhle: document.open a document.close delat > nebudeme (upozornuju, ze jsou ruzne od window.close a window.open, > ktere uz jsou udelane, document.open pry otevre nejaky stream, > document.close ho zavre). Kliknuti na objekty bych dal asi > podporovat. Co to udela? Z meho hlediska to same, jako kdyz se na > prislusny objekt klikne krysou, tj. zavolani te funkce, ktera to > handluje. Jak na to koukam ja, tak klikani krysou jde ze select > smycky, takze by ta simulace asi taky mela prijit ze selectu, tj. > instalujes si timer (nebo rekni a instaluju ho ja, jelikoz mam > robustni naradi na registrovani a odregistrovani timeru B-) ). > Podrobnosti kde se co vola, jak a proc neznam, to musi rict Mikulas, > stejne tak jako svuj nazor na tohle. OK, takze se to bude volat ze selectu a ja v tom upcallu vpodstate zavolam prislusnou funkci z view.c (nebo ji opisu do toho upcallu). Souhlasis s tim Mikulasi? Brain \subsubchapterfnt Parser javascriptu From brain@artax.karlin.mff.cuni.cz Mon Apr 22 16:54:30 2002 Date: Sat, 17 Nov 2001 13:13:50 +0100 (MET) From: Petr Kulhavy> > namisto function f(argumenty){ten_zbytek();} > > Navic podle gramatiky uvedene v norme je definice funkce statement (a > nelze jej tudiz prirazovat). > > Proto bych se rad zeptal, jestli mam tuhle zhuverilost implementovat, > nebo jeji nefunkcnost prohlasit za option interpretu.To: Mikulas Patocka , Martin Pergel Subject: Javascript options menu Ahoj. Myslim, ze by se melo vytvorit menu "Javascript options" v Setupu. Tam by se zaklikavaly ruzny optiony zabascriptu, treba: zapinani javascriptu, nejake optiony, ktere PerM bude potrebovat (napriklad jak jsme v patek u Bobulky resili ty prasarny kolem toho praseru) - ruzne optiony parseru atd. Ja to udelam, jo? Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 17:01:07 2002 Date: Fri, 23 Nov 2001 21:10:01 +0100 (MET) From: Petr Kulhavy To: Martin Pergel Subject: Osetrovani chyb v kravascriptu Zdar. Bylo by dobry, kdyby pri nekritickejch chybach v kravascriptu dotycny sebou nesvihl. Treba kdyz BFU zapomene nejakej nevyznamnej treba strednik. Proste chyby, u kterejch ti bude jasny, co tam melo bejt, ale ono to tam nebylo. Pri kritickejch chybach se to samozrejme zarizne. Taky by se mohla nejak kulturnejc napsat ta js_error. Ten internal neni zrovna to pravy :-) Navrhuju, ze udelam klikatko, kterym si nastavis, jestli ti to ma pri chybach kravascriptu prudit s vokynkem "Hele buga!", nebo to ma bejt sticha jak netchcipak. Co ty na to? Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 17:56:37 2002 Date: Mon, 4 Feb 2002 17:38:36 +0100 (CET) From: Mikulas Patocka To: Martin Pergel Subject: Re: -lfl > Zdar, > > On Mon, 4 Feb 2002, Mikulas Patocka wrote: > > > Nesel by ten javascript udelat bez knihovny -lfl? Treba na OS/2 > > takova knihovna neni... At je to co nejmin zavisly na vnejsich > > knihovnach. > > slo by to nechat protahnout lexem a sezvykat kravou, pak by byla > potreba knihovna -ll. Co se da udelat jinak? Napada me treba > sehnat nekde zdrojaky flexi knihovny (ona ma myslim pod tri kila) > a trochu ohackovat. Jinak pokud se nenajde libfl, tak to ohlasi, > ze zabascripty nebudou a nazdar. Myslenka udelat to co nejmene > zavisle na externich knihovnach je pekna, ale zrovna tady mi > prijde pomerne nutna. Jinak je moznost zkusit nejakou vylehcenou > verzi flexi liby pritahnout. Ovsem pokud jde o OS/2, doufam, ze > pro to existuje bison a flex, ev. lex a yacc, kteri to mohou > zodpovedne zastoupit. Pokud tito dva nevyzaduji v OS/2 zadnou > knihovnu, neni z me strany duvodu v OS/2 tuto knihovnu vyzadovat. Ja myslim, ze neni dobre BFU nutit, aby si pred kompilaci muselo stahnout a nainstalovat 2 dalsi baliky ... takze by asi bylo dobre, kdybys nekde stahnul zdrojak libfl a zkusil ho dat ho rovnou do linkse. Problem s tim asi nebudou jen u os/2, ale i u spousty dalsich unixu, kde libfl neni. Mikulas From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:37:38 2002 Date: Tue, 9 Apr 2002 14:06:46 +0200 (CEST) From: Petr Kulhavy To: Martin Pergel Subject: Re: This On Tue, 9 Apr 2002, Martin Pergel wrote: > Zdar, > > On Tue, 9 Apr 2002 brain@artax.karlin.mff.cuni.cz wrote: > > > Jak ses na tom s fungovanim this u objektu? Mam takovej pocit, ze > > to svyho casu z nejakyho duvodu nechodilo... > > this je stale stejny, udelat ho tak, jak se domnivame, ze je > specifikovano, je ted skoro nemozne, protoze ani podle idcka > daneho objektu bych nebyl s to najit spravny domovsky adresny > prostor - trvalo by to desne dlouho, tak Ideolog navrhnul, > jestli kdyby se pred ten javascript vrazilo: > this=document.form[0].cudlomet1 nebo neco takoveho (treba > akorat document.cudlomet1 - proste tak, aby se to resolvovalo), > tak jestli by to nefungovalo. Ja jsem se tim osobne zabyval a > zjistil, ze asi tak po pul hodine prace bych prirazovani do > this byl s to napsat. Nemuselo by se treba ani strkat cele > this=document.form[0]..., ale musel by se na zacatek vrazit ten > retezcik, co mam resolvovat. Ja bych ho pak carboflexem a > carbokrawou nazvykal a zinterpretoval a jelo by to. Co na to > rikas ty? To jsem nejak nepochopil. Prece this je pro kazdej objekt neco jinyho, ne? Pro janevimco to muze bejt dokument, pro neco jinyho formular atd. Co presne ma ten this podle specifikace delat? Ale jestli jses schopnej napsat this, aby se chovalo podle specifikace, tak vzhuru do toho. Brain From brain@artax.karlin.mff.cuni.cz Tue Apr 23 09:36:26 2002 Date: Mon, 18 Feb 2002 17:52:30 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Cc: mikulas@artax.karlin.mff.cuni.cz Subject: Re: md5 On Mon, 18 Feb 2002, Martin Pergel wrote: > Zdar, > > On Mon, 18 Feb 2002, Petr Kulhavy wrote: > > > Na post.cz pri vyrabeni novyho uzivatele pouzivaj v krawascriptu > > md5 (myslim u math). To jsem docela cumel jak puk pred prazdnou > > branou. Nevim, jestli to je ve specifikaci. Kdyz jo, tak to tam > > dodelej. Ja na to mam file md5.c, kterej to dela, tak ti ho > > kdyztak poslu. > > sice jsi poslal bajecnou knihovnu na pocitani md5, ale ja > nevim, kam mam tu md5 zapichnout a jak se ta funkce ma > jmenovat. Jestli je to Math.md5(), nebo > kdovico.nikde.to.je.ale.krawina(), nebo jestli je to snad > vestavena proprieta kazdeho objektu a="nazdar".md5; Jestli to > nekdo vite, tak mi, prosim, napiste. Ta norma, kterou se snazim > dodrzovat nic o zadne MD5 nevi. Na ty strance chteli math.md5, tak to asi bude tam. Kam jinam bys to daval? Brain From brain@artax.karlin.mff.cuni.cz Tue Apr 23 09:39:24 2002 Date: Tue, 19 Feb 2002 22:11:40 +0100 (MET) From: brain@artax.karlin.mff.cuni.cz To: Martin Pergel Cc: Mikulas Patocka Subject: To jsou fakt BFUcka - zastrelit je malo Zdarec/nezdarec. Ted koukam na post.cz, ze oni tam klidanko pouzivaj (nastavujou) location.href - to jsou BFU, ze se to nevidi. To maj urcite nauceny od mirkosoftu. PerMe, muzes pridelavat podporu :) Jo a nezapomen to nekam napsat, at Bednarek vi, ze to sice neni v docce, ale ze to podporujem. Brain From bednarek@ksi.ms.mff.cuni.cz Tue Apr 23 21:42:35 2002 Date: Mon, 25 Feb 2002 15:47:46 +0100 From: David Bednarek To: Martin Pergel Subject: Re: Problemy s gramatikou Martin Pergel wrote: > > Dobry den, > > zjistil jsem pri pokusech o ladeni javascriptu, ze mnozi lide (vcetne > autoru specifikace Javascript 1.1) maji o tom, co to je javascript podivne > predstavy. Zjistil jsem kuprikladu, ze nekteri jedinci maji tendence > definovat funkce takto: > > a=function(argumenty) > { > telo_funkce(); > Na to je tezka odpoved, ze to je zhuverilost, je jasne, jenomze jestli ji pouziva hodne lidi, tak to proste je treba zvladat a prohlasit to treba za Javascript++. Idealni reseni je zvladat to jako volitelnou moznost. Muj zaver je: Pokud to s rozumnymi naklady pujde, tak to udelejte, pokud ne, nic dramatickeho se nedeje.
D.B.
From mikulas@artax.karlin.mff.cuni.cz Tue Apr 23 22:29:28 2002 Date: Wed, 13 Mar 2002 00:30:45 +0100 (CET) From: Mikulas Patocka
To: Martin Pergel Cc: Petr Kulhavy Subject: Re: Invarianty > Zdar, > > vcera jsi mi na obede vycital, ze neprogramuju ten interpret > s invariantama, ale odhadem a od ruky. Tak aby sis nemyslel, ze jsem uplny > prase, tak jsem par invariantu cvicne sepsal (a ono jich je jeste mnohem > vic): > > 1. Funkce si je povinna obstarat vkusne mnozstvi argumentu, ktere > potrebuje. > 2. Funkce si muze odkladat vlastni data na zasobnik argumentu, pokud > jeste hodla pokracovat. > 3. Funkce po svem skonceni musi nechat na bufferu prave jeden paketik > vysledku, vsechno, co si objednala, musi zaplatit, totiz odklidit. > 4. Odalokovava ten, kdo na to posledni vidi, tj. ten, kdo to sunda z > bufferu argumentu a uz to tam nevrati, ev. u promennych ten, kdo vi, ze > je po ni (operator delete, posledni preprirazeny odkaz...). > 5. Pokud chce funkce (uzel stromu) jeste bezet, je povinna pouzit funkci > pushp a pushnout se na zasobnik rodicu a nastavit si spravnou polozku in, > ve ktere si pamatuje, co uz ma hotovo, a co ne. > 6. Po skonceni je funkce povinna obstarat sveho dynamitickeho rodice ze > zasobniku rodicu funkci pullp. > 7. V kontextu jsou dva smetniky - jeden na promenne, druhy na addrspacy, > ktere je jeste potreba znicit, ale invariant 4 je neudrzitelny v tom > smyslu, ze do toho addrspacu uvidi jeste nekdo, koho pochopitelne ani > nenapadne, ze by mel neco nicit. > 8. Na co kdo sahne, to je jeho. B-) > > Jo, kdybych programoval interpret s vic invariantama, tak by jeste > nebyl napsany (presneji musel bych si je sepsat a nebyl bych s to si je > zapamatovat), kdyby jich bylo mene, tak by interpret nebyl napsany, ale > bylo by hotovo, protoze by se v tom bordelu nevyznal uz vubec nikdo.
muzete to vrazit do docky. pred chvili jsem nasel dalsi seg-fault (na www.hotbabes.com), takze je treba v tech invariantech trochu pritvrdit :)
Mikulas }
\subsubchapterfnt Problémy From bednarek@ksi.ms.mff.cuni.cz Mon Apr 22 23:36:02 2002 Date: Tue, 02 Apr 2002 13:26:24 +0200 From: David BednarekTo: Mikulas Patocka Cc: Petr Kulhavy , Martin Pergel , clock@atrey.karlin.mff.cuni.cz Subject: Re: aritmetika v C Mikulas Patocka wrote: > > Dobry den. > > V projektu nam nastal problem -- javascript provadi aritmetiku v > plovouci desetinne carce, a pokud je vysledek moc velky, tak cely > program spadne na preteceni a signal SIGFPE. To by se stat nemelo. > Ignorovani SIGFPE neni dobre reseni, protoze v man 2 signal se pise, > ze po prijeti SIGFPE je chovani procesu nedefinovane podle normy > posix. > > Zajimalo by me, zda nevite, jak podle normy C (aby to bylo > prenositelne) provadet spravne aritmetiku v plovouci desetinne > carce, aniz by hrozilo, ze proces bude odstrelen na preteceni. > > Mikulas Na to je jednoducha odpoved: Nevim. Kdysi jsem v podstate tentyz problem resil skrze odchytavani signalu procedurou, ktera udelala longjmp, a fungovalo to, ale to uz je davno. Tipnul bych si, ze doposavad neexistuje spolehlive a zaroven prenositelne reseni. D.B. From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:45:48 2002 Date: Thu, 14 Mar 2002 13:15:33 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Cc: Mikulas Patocka , clock@atrey.karlin.mff.cuni.cz Subject: Re: Ha! On Thu, 14 Mar 2002, Martin Pergel wrote: > Zdar, > > panove, zjistil jsem, ze na nekterych strankach jsou nahodne > povynechavana mista - patrne to souvisi se style-shity, ale divne > je, ze pod tim prazdnym mistem jsou odkazy. Zkuste: www.cdrail.cz a > pak uz jen mrkejte, jak se nic nebude zobrazovat, ale pri rejdeni > krysou se budou objevovat ve status-lajne odkazy. Prijde mi to jako > kapanek hloupe a detinske chovani linksu. B-) To uz jsem si vsimnul na vice strankach. Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 23:44:24 2002 Date: Thu, 14 Mar 2002 23:43:11 +0100 (CET) From: Mikulas Patocka To: Martin Pergel Cc: Vladimir Soucek Subject: Re: Bugy v gettextu > Zdar, > > prave me kolega Soucek navstivil s dotazem, jak funguje gettext. > Jelikoz si vzpominam, ze jsi gettext z linksu vypraskal (a myslim ze > pro bugovitost), tak bych Te rad pozadal o nejake ocharakterizovani. > Kolegovi se ohrome libi Tvoje metoda lokalizace, protoze to jde > prepinat za letu B-) gettext nefunguje, protoze: -- configure skript ma zjistit, zda je gettext pritomen na cilovem systemu v libc a pokud ne, tak pouzit verzi distribuovanou s programem. Nefunguje to. Pokud na cilovem systemu libc s gettextem neni, tak se ti ten program proste neprelozi -- takze pouzijes gettext -- program jde zkompilovat jen na linuxu s glibc 2 a vyssi. -- make pro gettext ma v sobe natvrdo napsane cesty k /bin/sh, takze nejde pouzit na ne-unixovych systemech. taktez configure skript pro gettext se snazi vytvorit sym-link, coz funguje jen na unixu. -- gettext neumi prekladat ruzna kodovani znakovych sad. takze kdyz napises ceske texty treba v iso-8859-2, tak pak program bude pouzitelny pouze pro uzivatele majici terminal 8895-2. pokud ma uzivatel jinou znakovou sadu na terminalu, tak ma smulu. Mikulas From clock@atrey.karlin.mff.cuni.cz Tue Apr 23 21:53:28 2002 Date: Sat, 2 Mar 2002 22:02:12 +0100 From: Karel Kulhavy To: eric@c3.pla.ca.us Subject: Vagueness in JFIF Hello If I state here something that is not true please mark it visibly and reply it back. I tried to determine what color space are RGB triplets falling out of IJG Libjpeg. I determined IJG Libjpeg performs no nonlinear transformations between Y Cb Cr and R G B so that the question shift toward the JFIF standard. Then I came to your document JPEG File Interchange Format Version 1.02 September 1, 1992 Eric Hamilton C-Cube Microsystems 1778 McCarthy Blvd. Milpitas, CA 95035 +1 408 944-6300 Fax: +1 408 944-6314 E-mail: eric@c3.pla.ca.us and realized it's of no value to me because it contradicts to itself. There are two principal possibilities: a) The Y Cb Cr values and the resulting linear combination called R G B are in 0.45455 gamma (as defined by sRGB standard and as roughly defined by CCIR Recommendation 601) b) The R G B values and Y Cb Cr values are linear to number of photons flying somewhere (gamma=1.0). Usually somewhere means from a monitor under standardized viewing condition as standardized by sRGB standard. There are various reasons for both of them a) citation from your document: "The color space to be used is YCbCr as defined by CCIR 601 (256 levels). The RGB components calculated by linear conversion from YCbCr" CCIR Recommendation 601 says that both YCbCr and R G B are gamma corrected (with 0.45455 plus minus something dependent on actual T. V. system) b) It is not logical to do DCT on nonlinear values. Blur-mixing on human retina is done in photon space and thus an intermodulation distortion would be introduced between various spatial frequencies in the image. For example, compression artifacts around sharp edges would influence DC level in that place, making it brighter or darker. b) citation from your document: "(gamma = 1.0)" the term "shall not be gamma corrected" is utter nonsense. It *SHALL* be gamma corrected, because there are various factors, like various viewing conditions, variations in monitor and display subsystem gamma. I can tell you what I already do with PNG images: I raise them to 1/file_gamma/display_gamma and send them to a display that is under normal viewing conditions as specified by sRGB standard. Could you please clearly define what should I do with R G B triplets generated by equations mentioned in your document from Y Cb Cr values stored in JFIF to render the image absolutely correctly? Regards, -- Karel 'Clock' Kulhavy \subsubchapterfnt Grafika From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:50:09 2002 Date: Mon, 11 Mar 2002 15:20:49 +0100 (CET) From: Petr KulhavyTo: Karel Kulhavy , mikulas@artax.karlin.mff.cuni.cz, Martin Pergel Subject: Obrazky - final verdict Ahoj. Dnes na schuzce projektu na obede se dohodlo nasledujici: Podpora obrazku v javascriptu se bude delat omezene a to tak, ze se bude smet menit pouze source. Javascript bude moct cist source a rozmery. Z drive uvedenych duvodu se po zmene obrazku nemuze preparsovat stranka, proto se obrazek napasuje do puvodnich rozmeru. Pokud bude uvedena width a height (v puvodnim html), tak do nich, jinak do rozmeru puvodniho obrazku. Takze Karle napis funkci change_image, ktera dostane struct g_object_image a url (nebo neco, cim se popisuje source obrazku v insert_image) a zmeni source obrazku. A moc se s tim neflakej, at muzu psat upcally. Ja do struct g_object_image pridam id, mozna jmeno (pry jde napsat ) a pointer na next a prev (bude se s tim pracovat, jak rikal Mikulas). Pak si udelam seznam vsech obrazku a do funkci insert_image a destroy_image dodelam pridavani do tohoto seznamu. Dale napisu upcall na cteni informaci o obrazku a na zmenu source obrazku (budu volat vyse popsane change_image). No a zbytek bude na PerMovi. Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:37:56 2002 Date: Tue, 9 Apr 2002 16:07:54 +0200 (CEST) From: Petr Kulhavy To: Karel Kulhavy Cc: mikulas@artax.karlin.mff.cuni.cz, mper7437@artax.karlin.mff.cuni.cz Subject: Re: JPEG 2000 On Tue, 9 Apr 2002, Karel Kulhavy wrote: > Ahoj > > Jestli nevis co delat naklikej tam podporu formatu JPEG 2000. > Rikal Pelikan ze prej urcite na to existuje nejaka free knihovna pro > C. Je to rok starej format a je standardizovanej ISO. Je to > waveletovy format. Videl jsem na to ukazku na cviceni z grafiky. > Koukal jsem se na nejakej pedofil o waveletove kompresi. Nejakej CB > xicht baby tam byl zkomprimovanej 300x a vypadal skoro stejne :-) > Akorat tam nebyly videt nejmensi detaily. Ten obrazek mel 300 bajtu! > > Viz (prohlizejte acrobatem) > http://cgg.ms.mff.cuni.cz/~pepca/lectures/wavelet1.pdf strana 25 Viz > (prohlizejte acrobatem) > http://cgg.ms.mff.cuni.cz/~pepca/lectures/wavelet3.pdf strana 1,2 Koukal jsem se na web a nasel jsem houbeles. Zrovna jsem tu mluvil s Pelikanem, kterej rikal, ze to jeste neni moc rozsireny. Ze je zatim jenom ta javova implantace, kterou prikladali k tomu standardu, ale ta nejde stahnout, protoze se tam musej vyplnovat osobni udaje. Takze to zadny takovy. Navic prekladat javu do C dopadne strasne, to bude bugovity. A psat wawelety se mi opravdu nechce. Brain From brain@artax.karlin.mff.cuni.cz Mon Apr 22 23:36:37 2002 Date: Sat, 6 Apr 2002 15:16:44 +0200 (MET DST) From: brain@artax.karlin.mff.cuni.cz To: clock@atrey.karlin.mff.cuni.cz, Mikulas Patocka Cc: Martin Pergel Subject: Change_image Zdar. Potrebuju napsat funkci void change_image(struct g_object_image *goi,unsigned char *url) Ktera zajisti nahrazeni grafickych dat v goi daty z obrazku na danem url. Jestlize obrazek je v cachi, tak se vezme z cache, jinak se stahne ze site. Pokud url bude stejne jako url v goi, tak se zahaji stahovani obrazku ze site nehlede na cache (aby se dal menit obsah obrazku). To bude delat Karel. Dusledkem vyse popsaneho bude, ze pokud obrazek na danem url bude mit jine rozmery, tak se zobrazi levy horni roh s rozmery width a height v goi. Mikulasi, od tebe chci zaridit, aby se ten obrazek v prubehu stahovani zobrazoval (volalo se na nej draw_image) a pokud se nic stahovat nebude (treba to uz bude v cachi), tak aby se zobrazil hned (jakmile dobehne ta Karlova funkce). Zobrazovat se to tedy bude uplne stejne jako kdyz nekdo zavola insert_image - tam se to pri zobrazovani taky zobrazuje (nebo bude zobrazovat) a kdyz je obrazek natazen, tak se zobrazi (zavola se na nej draw_image). Jak si to udelate mi je srdecne jedno. Chci pouze, abych zavolal fukci change_image a BFU videlo jinej obrazek. Jo a chci to co nejdriv, tak se neflakejte. Brain From clock@atrey.karlin.mff.cuni.cz Mon Apr 22 23:36:08 2002 Date: Tue, 2 Apr 2002 23:12:55 +0200 From: Karel Kulhavy To: brain@artax.karlin.mff.cuni.cz, mikulas@artax.karlin.mff.cuni.cz, mper7437@artax.karlin.mff.cuni.cz Subject: Zmena rozhrani graphics_driver Meni se rozhrani grafickych driveru. Pridavaji se 2 funkce co pripravi bitmapu na zapis pruhu (zmenu pruhove casti bitmapy uzivatelem) a commitnuti zapisu. Zrychli se tim obrazky. Kdyz se bude ditherovat a vypadne z toho pruh (ditherak je inkrementalni :) ), zapise se do bitmapy pres tohle (zaregistrovana bude pri naplneni pozadovou barvou) cimz se odstrani overhead. Nebude to samozrejme chodit pri zvetsenejch nebo zmensenejch obrazcich (resampler neni inkrementalni a bylo by asi hodne tezky ho tak napsat) ale to je blbost BFU ze si to tim zpomaluje. Muze se to dat jako warning k tomu optionu ze to zpomaluje prohlizec. Svgaliba to bude delat tak, ze vrati pointer primo z data (posunuty) a uzivatel to tam napatchuje a commit nebude delat nic. Xy zase naalokujou extra novou malou bitmapu a daj to do data a vratej to. Luzer to ocmara, commitne, Xy to nakreslej do vzdalene bitmapy. Pak to zase uvolnej (ten data). Takze se nemusi nic pridat do struct bmp. Kdyz se to bude kreslit tak se muze restrictnout area cimz se usetri zbytecne prekreslovani obrazovych dat (je to na mym obrazkovadle - bude to opruz registrovat si rozsah neaktualnich scanlinu a pri prvnim draw to vykreslit a vynulovat ale to je jedno) Vysledek: bude to optimalni a brain-healthy. -- Karel 'Clock' Kulhavy From brain@artax.karlin.mff.cuni.cz Mon Apr 22 18:10:24 2002 Date: Thu, 14 Feb 2002 10:35:31 +0100 (CET) From: Petr Kulhavy To: Martin Pergel Cc: Mikulas Patocka , Karel Kulhavy Subject: Re: Pamatovani si velikosti okna On Thu, 14 Feb 2002, Martin Pergel wrote: > Zdar, > > kdyz jsme tak u toho, nepujde zabascriptem taky nastavovat velikost > a eventualne i polohu okna tak, jak to ukazuje (to druhe) treba > skript Lada jede autobusem? No klidne, ale to se na to bude muset udelat funkce v grafickym driveru. A taky jeste to chce rozmyslet, jestli si to taky chcem nechat potvrzovat od BFUcka, protoze mne by sralo, kdyby mi zaclo behat wokno s linksama po obrazovce. A zase s potvrzovanim by sis moc nezajezdil. Brain From mikulas@artax.karlin.mff.cuni.cz Tue Apr 23 22:05:50 2002 Date: Wed, 6 Mar 2002 18:49:18 +0100 (CET) From: Mikulas Patocka To: Karel Kulhavy Cc: brain@artax.karlin.mff.cuni.cz, mper7437@artax.karlin.mff.cuni.cz Subject: Re: JNG MNG > Zdar > > Zda se, ze Netscape 6.0 (takova ta DoS mozilla co mame na ghostu) > neumi MNG. MNG obrazek nezobrazi. > > MNG je animujici format zalozeny na PNG a JPEG (JPEG v MNG se > jmenuje JNG). > > Nemel bych to tam taky dobastlit? > > Jak se budou delat animujici GIFy a MNG-cka? Z toho se asi Links > zjevi, ne? Ja bych animovane gify nedelal. Reklama me rozciluje. Bylo by to dost kodu, zralo by to spoustu CPU a vysledek by byl jen takovy, ze cloveka budou na kazde strance rozcilovat blikajici bannery. Proste pri animovanych gifech zobraz prvni obrazek a bude to. Mikulas \subsubchapterfnt Ostatní From brain@artax.karlin.mff.cuni.cz Mon Apr 22 18:07:22 2002 Date: Tue, 12 Feb 2002 23:38:58 +0100 (MET) From: brain@artax.karlin.mff.cuni.cz To: Mikulas Patocka, Martin Pergel Cc: clock@atrey.karlin.mff.cuni.cz Subject: Novy akcnejsi fonty Zdar. Tak jsem do linksu pridal akcni hebrejstinu a hiraganu s katakanou. Pak jsem pridal zbejvajici 8859-X kodovani (takze taky 8859-8 pro tu hebrejstinu) a jeste JIS-201 (japonsky kodovani, jediny 8-bitovy, ostatni se do linksu nenarvou). Dejte si http://www.iclnet.org/pub/resources/text/ipb-e/tanach/gen/GEN03.htm a ve view->html_options->charset si nastavte 8859-8. Budete cumet jak pero z gauce na hebrejstinu. Zkusim jeste nekde sehnat unikodovou Kanji, aby to bylo akcnejsi. A jeste napisu jednomu clovekovi o hebrejskej preklad. Brain From mikulas@artax.karlin.mff.cuni.cz Mon Apr 22 18:08:12 2002 Date: Wed, 13 Feb 2002 00:45:30 +0100 (CET) From: Mikulas Patocka To: Petr Kulhavy Cc: Martin Pergel , Karel Kulhavy Subject: Re: Prekodovavani znakovych sad > > > Zdar. > > > > > > Co kdyby se do linksu dalo nejaky kulturnejsi prekodovavani > > > charsetu v podobe nejake kni-hovny? MJ rikal, ze prej dobra je > > > librecode (ftp.gnu.org/gnu/recode), ze v tom jsou vsechny > > > tabulky a tak. Pak by se tam totiz daly naladovat vsechny mozny > > > kodovani a chodilo by i kanji a cinstina. Navic to je od pana > > > GNU, tak by to takovej crock of $hit bejt nemusel. > > > > A pak to zas bude chodit na polovine systemu a bude to nutit BFU > > aby pred kompilaci tahalo dalsi baliky. Zkousel jsem kdysi GNU > > gettext, a mel jsem s nim presne takovehle spatne zkusenosti. > > Nemam rad cizi knihovny. > > Tak by se to mohlo dat do linksu(pripadne ze toho kus vykuchat). > Kdyz je to GNU, tak by to mohlo bejt portabilni. Ale aspon by to > chodilo poradne a sla by tam dat japonstina a cinstina. Me se nejak nechce vrtat do existujiciho programu. V textovem modu ti ta japonstina a cinstina nikdy chodit nebude, protoze tam mam natvrdo zadratovany 1byte~1znak. V grafickem by mozna chodit mohla, ale abych pravdu rekl, moc me to nevzrusuje :) Mikulas From psva8673@artax.karlin.mff.cuni.cz Tue Apr 23 09:25:22 2002 Date: Thu, 3 May 2001 13:18:13 +0200 (CEST) From: Petr Svab To: Martin Pergel Subject: COOOOOOOOOOOOOOOOOOOOOOOL!!!!!!!!!!!!!!!!!!!!!!! Ten Links je super. Udelejte do nej jeste poradnej help a Javu a bude to fakt dobry. Mozna to zacnu pouzivat i misto exploreru :-)). Petr