abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    17.6. 19:11 | Zajímavý projekt

    Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.

    Ladislav Hagara | Komentářů: 2
    17.6. 18:33 | Zajímavý software

    Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    17.6. 15:33 | IT novinky

    Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.

    Ladislav Hagara | Komentářů: 0
    17.6. 12:22 | IT novinky

    Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.

    Ladislav Hagara | Komentářů: 6
    17.6. 08:22 | Bezpečnostní upozornění

    V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.

    Max | Komentářů: 6
    17.6. 05:22 | Zajímavý článek

    Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být

    … více »
    Ladislav Hagara | Komentářů: 21
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1937 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Python deterministický

    23.7.2009 13:37 | Přečteno: 1292× | Dev/Tech/Gnu

    Python jakožto virtuální mašina není deterministický. Obvyklým zdrojem nahodilosti je plánování vláken, v Pythonu ale můžete mít korektní jednovláknový program, který vám dá pro jeden vstup pokaždé jiné výsledky. Může za to hashování, hash objektu může být odvozen od jeho adresy v paměti, což je (stejně jako rozvrhování vláken) neuchopitelná záležitost o kterou se stará operační systém.

    Já jsem na tuhle vlastnost narazil v momentě, kdy jsem před sebou měl program, který jako klíč k hashovací tabulce používal objekt funkce. Na jiném místě program tabulku sekvenčně procházel, jenže pořadí položek se mezi jednotlivými běhy měnilo.

    Existují implementace hash-tabulek, které tímto problémem netrpí. Bohužel, zmiňovaný program je tak velká a složitá bestie, že jsem musel zvolit alternativní přístup: upravit samotný interpret Pythonu.

    Patch je to jednoduchý, brutální, ale funkční:

    --- Python-2.4.4/Objects/object.c	2006-04-12 19:06:58.000000000 +0200
    +++ /home/paskma/B/src/Python-2.4.4/Objects/object.c	2009-03-20 10:01:29.000000000 +0100
    @@ -984,6 +984,8 @@
     long
     _Py_HashPointer(void *p)
     {
    +	return 1;
    +
     #if SIZEOF_LONG >= SIZEOF_VOID_P
     	return (long)p;
     #else

    Pochopitelně tenhle hack může sabotovat výkon, v mém případě to ale program příliš nezpomalilo, tahle funkce se používá až když není zbytí.

           

    Hodnocení: 80 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    23.7.2009 13:45 CEST
    Rozbalit Rozbalit vše Re: Python deterministický
    Tak a ted uz jenom zajistit, aby tenhle python nepouzivalo nic jinyho, a aby pripadneho budouciho programatora toho programu vzdycky nekdo zaskolil, ze ma pred sebou pozmenenou verzi pythonu a tudiz se tohle nechova tak, jako original.

    Tim samozrejme chci rict, ze se mi tohle nezda jako dobry reseni.
    23.7.2009 14:15 paskma | skóre: 13 | blog: Paskmův blog
    Rozbalit Rozbalit vše Re: Python deterministický
    V případě, že by s tím měl pracovat ještě někdo jiný než já, by to už dobré řešení nebylo.

    Ono ty výstupy jsou korektní v každém případě, jenom trochu jiné (liší se očíslování nějakých interních polí). Determiničnost jsem potřeboval jenom kvůli ladění.
    23.7.2009 14:20 Tomáš
    Rozbalit Rozbalit vše Re: Python deterministický
    To není dobrý nápad. Ohýbat kód interpretru kvůli ladění je fakt blbý nápad. Jak si můžeš být jistý, že to bude fungovat správně na jiné mašině se standardním Pythonem? Projdou Ti tam vůbec unittesty? Pokud potřebuješ deterministický výstup, tak si ty položky setřiď.
    23.7.2009 21:20 paskma | skóre: 13 | blog: Paskmův blog
    Rozbalit Rozbalit vše Re: Python deterministický
    Máš špatný úhel pohledu:-). Byl to dobrý nápad, protože mi ušetřil spoustu práce. Prostě hack. Já neřeším udržovatelnost té obludy, používám ji jenom ke svým vlastním experimentům. Btw ano, funguje to i se standardním Pythonem, protože ta nedeterminističnost (to je slovo) se projeví jenom interním očíslováním nějakých položek.

    Unittesty jsem nezkoušel (dobrý nápad), ale jelikož jsem neudělal nic jiného než že jsem "mírně" zhoršil vlastnost hashovací funkce, projít by to mělo.
    23.7.2009 14:55 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Python deterministický
    Není jednodušší použít nějaký slovník s pořadím? Třeba Recipe 107747, nebo se podívat na stav PEP 0372? Případně si seznam klíčů před iterací, ve které na pořadí záleží, seřadit?
    When your hammer is C++, everything begins to look like a thumb.
    23.7.2009 15:22 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Python deterministický
    presne tak, kdyz to potrebuju prochazet v urcitym poradi tak si to predem seradim. Menit kvuli tomu interpreter je pekna zvrhlost...
    23.7.2009 21:04 paskma | skóre: 13 | blog: Paskmův blog
    Rozbalit Rozbalit vše Re: Python deterministický
    Já myslel, že to bude z mého postu patrné. Pochopitelně existuje X čistších způsobů, jak dosáhnout cíle. Ale všechny jsou mnohem pracnější. Ten program má 90k řádek (v C by to bylo půl mega:-) a je složitý jak cukrovar, než bych přišel na to, kde všude ten slovník vyměnit/kde všude seřadit, tak bych zešedivěl (na pár místech jsem to zkoušel, ale s nevalným úspěchem).

    Je to hack, proto se zde tím chlubím:-)
    28.7.2009 11:55 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Python deterministický
    A nebylo by lepší zvětšit PyObject o jeden const long inicializovný counterem, a ten pak použít jako hash value? Nebyl by to jednořádkový patch ale 3-řádkový, ale aspoň by nebyl problém s výkonem. To tvoje řešení mě bolí už když se na něj podívám.
    Táto, ty de byl? V práci, já debil.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.