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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 13:37 | Nová verze

Byla vydána verze 16.7 open source firewallové a routovací platformy, forku pfSense, OPNsense. Nejnovější verze OPNsense s kódovým názvem Dancing Dolphin je postavena na FreeBSD 10.3 a přináší například Suricatu 3.1.1, řízení provozu pomocí CoDel / FQ-CoDel nebo dvoufaktorovou autentizaci založenou na RFC 6238 (TOTP).

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Bezpečnostní upozornění

V únoru představili výzkumníci ze společnosti Bastille Networks zranitelnost s názvem MouseJack (zprávička), kdy útočník využívá toho, že u řady výrobců není komunikace mezi donglem zasunutým v počítači a bezdrátovou myší šifrována. Stejný tým teď představil zranitelnost, kterou pojmenoval KeySniffer. Někteří výrobci nešifrují ani komunikaci mezi donglem a bezdrátovou klávesnicí. Útočníkovi tak stačí například zařízení

… více »
Ladislav Hagara | Komentářů: 2
dnes 05:55 | Zajímavý článek

Mozilla.cz představuje L20n – nový a flexibilní formát pro lokalizaci Firefoxu. L20n je poměrně nový framework pro lokalizaci, který vyvinul lokalizačním tým Mozilly. Vznikl díky zkušenostem i zkoumání silných a slabých stránek dosud používaných řešení a formátů. Jeho cílem je dát do rukou překladatelů co největší možnosti překládat tak, aby text zněl v jejich jazyce přirozeně a nebylo potřeba se nijak přizpůsobovat technickým omezením.

Ladislav Hagara | Komentářů: 0
včera 18:03 | IT novinky

Finská Jolla společně s indickým Intex Technologies představili (pdf) první licencovaný mobilní telefon Intex Aqua Fish s operačním systémem Sailfish OS 2.0. Telefon je dostupný na indickém eBay za 5 499 INR (2 000 Kč).

Ladislav Hagara | Komentářů: 19
včera 11:55 | Zajímavý projekt

Otevřená certifikační autorita Let's Encrypt oznámila, že již plně podporuje IPv6. Dosud byl problém s infrastrukturou (GitHub). Současně byl na stránce pro sponzory aktualizován počet webů využívajících Let’s Encrypt (GitHub). Aktuálně je to více než 8 milionů webů.

Ladislav Hagara | Komentářů: 0
včera 11:22 | Komunita

MojeFedora.cz informuje, že webový prohlížeč Chromium je oficiálně ve Fedoře. Vývojář Tom "spot" Callaway dotáhl do cíle několikaleté úsilí o zabalíčkování tohoto prohlížeče. Chromium je webový prohlížeč, na kterém staví populární Google Chrome, akorát v Chromiu nejsou "nesvobodné" části.

Ladislav Hagara | Komentářů: 11
26.7. 15:30 | Bezpečnostní upozornění

Ve virtualizačním softwaru Xen byly nalezeny 2 závažné zranitelnosti XSA-182 a XSA-183. XSA-182 (CVE-2016-6258) umožňuje eskalaci privilegií a ovládnutí celého systému, tj. správce hostovaného systému se může stát správcem hostitelského systému. Zranitelný je i Qubes OS, operační systém postavený nad Xenem (QSB #24).

Ladislav Hagara | Komentářů: 5
26.7. 13:51 | Zajímavý projekt

Vývojáři projektu ArchStrike, repozitáře pro Arch Linux se spoustou zajímavých nástrojů, vydali své první oficiální Live ISO. Stejně jako repozitář je i živý obraz systému zaměřen na uživatele věnující se počítačové bezpečnosti. Výchozím správcem oken je OpenBox [reddit].

Ladislav Hagara | Komentářů: 0
26.7. 00:55 | Nová verze

Po dvou měsících vývoje od vydání verze 230 (zprávička) oznámil Lennart Poettering vydání verze 231 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 23
26.7. 00:33 | Nová verze

Byla vydána verze 7.0 kontejnerové virtualizace OpenVZ (Wikipedie). OpenVZ je svobodný software uvolněný pod licencí GNU GPLv2. Společnost Virtuozzo nad OpenVZ základem vytváří své virtualizační řešení Virtuozzo a nabízí na něj komerční podporu.

Ladislav Hagara | Komentářů: 0
Který shell primárně používáte v (emulátoru) terminálu?
 (76%)
 (0%)
 (14%)
 (2%)
 (1%)
 (6%)
 (1%)
 (1%)
Celkem 168 hlasů
 Komentářů: 8, poslední včera 21:41
Rozcestník
Reklama

Mám python ještě radši než dřív.

30.5.2008 17:58 | Přečteno: 1116× | poslední úprava: 30.5.2008 18:04

Dalsí kousek pythoního kódu, na který jsem pyšný.

Nejsem pyšný na sebe, nejde o nic složitého ani objevného. Jsem pyšný na python, protože jsem zase jednou zjistil že jsem neudělal chybu, když jsem se vybodnul na Javu.

O co jde ? Potřebuji předem neznámou datovou strukturu serializovat do ekvivalentního pythoního kódu. Není to žádná raketová věda, ale čekal jsem spoustu otravování s tím, aby byl výsledek syntakticky košer, aby to pobralo vnořené struktury, aby se to dalo snadno rozšiřovat o nové datové typy. Když jsem se konečně přinutil přestat "psát Céčko v pythonu" a začal "přemýšlet v pythonu", vyplynulo to samo, s jednoduchostí a samozřejmostí, která mi ještě ted bere dech.

# convert data to code
import types

data2code = {
    types.DictType: lambda x: "{" + ", ".join(["%s: %s" % (textualize(k), textualize(v)) for k,v in x.items()]) + "}",
    types.TupleType: lambda x: "(" + ("".join([ textualize(i)+", " for i in x ])) + ")",
    types.ListType: lambda x: "[" + (", ".join([ textualize(i) for i in x ])) + "]",
    types.StringType: lambda x: '"%s"' % x,
    types.UnicodeType: lambda x: '"%s"' % x,
    types.IntType: lambda x: str(x),
    types.BooleanType: lambda x: str(x),
    types.NoneType: lambda x: "None",
}

# shorthand for converting of given val
def textualize(val):
    return data2code[type(val)](val)
       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Vložit další komentář

30.5.2008 18:51 spang
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Ehhh, znáš funkci repr() ?
repr(object)

Return a string containing a printable representation of an object. This is the same value yielded by conversions (reverse quotes). It is sometimes useful to be able to access this operation as an ordinary function. For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to eval().

rADOn avatar 30.5.2008 19:08 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Znám, bohužel háček je v tom For many types. Součástí jsou i nestandartní data, jmenovitě xmlrpc/fastrpc typy a ty mají s implementací __repr__() vážný problém. Z kódu který jsem postnul jsem je pro jednoduchost vynechal.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Nikola Ciprich avatar 30.5.2008 19:45 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Bohumín
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
ty lambdy jsou tam trosku zbytecne, co takhle:

types.BooleanType: str

;)
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
30.5.2008 23:38 CEST
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
Chapu to dobre, ze tahle funkce dela to same jako v perlu Data::Dumper nebo v PHP serialize? BTW: mas u toho retezce osetreny, kdyz bude obsahovat uvozovky?
1.6.2008 17:21 vlasta neubauer
Rozbalit Rozbalit vše Re: Mám python ještě radši než dřív.
nevím co dělá Perlovský Data::Dumper, ale v PHP jde s píše o ekvivalent funkce var_export(). serializace je trošku něco jiného. tady jde o konverzi na validní kód, ne o konverzi na 'prostý' text.

Založit nové vláknoNahoru

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