Dodatek Projektová korespondence

\subchapterfnt Projektová korespondence

\subsubchapterfnt Rozhraní upcallů


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 Kulhavy 
To: 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

\subsubchapterfnt Bezpečnost a stabilita

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 Kulhavy 
To: 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 Patocka 
To: 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 
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();
> 
> > 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.

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 Bednarek 
To: 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 Kulhavy 
To: 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

From Pavel.Titov@mtu-net.ru Tue Apr 23 22:29:45 2002 Date: Tue, 11 Dec 2001 19:57:11 +0300 From: Pavel Titov To: bugtraq@securityfocus.com Subject: Browsers fails on big image count

Code

Browser reaction

IE 6 (build 2600) @ Win2K - after long time with  50 and very high disk utilization asks about stopping script. Small memory leak (few Mb per minute). IE 6 (build 2600) @ Win98 - freezes, other IE windows renders very long, terminating task causes computer lockup. Mozilla 0.9.6 (build 2001112009) @ Win2K - freezes,  98 and big memory leak (bigger than 1Mb per second). Opera 5.11 (build 094d) @ Win2K - not freezes, responds, but not very fast. Big CPU utilization and very small memory leak (few hundreth kilobytes per minute).

-- Pavel Titov Homepage: http://www.titov.pp.ru/ Home gopherspace: gopher://paveltitov.virtualave.net:7070/