Společnost Google před nedávnem oznámila, že z bezpečnostních důvodů omezí možnost stahování projektů ze služby Google Code. Projekty, které zatím nenabídly nic ke stažení, a zároveň všechny nové projekty, nebudou mít možnost nabídnout uživatelům stahování aplikací. Stávající projekty, které už něco nabídly, tuto funkci ztratí až v roce 2014.
… více »Vyšla veřejná beta verze hudebního software Tracktion. Jedná se o první verzi, která kromě Windows a MacOSX podporuje i Linux. Po registraci můžete stahovat ze stránek projektu.
… více »Moře se ustálilo a strategie implementující upravenou verzi hry "Lodě" vystřelily poslední projektil. Celkem se účastnilo 26 týmů, které odevzdaly 24599 řádků kódu v C/C++, Javě, Pythonu, Delphi a Haskellu (Linusův kernel ve verzi 0.01 měl 8413 řádků :-)).
… více »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)
Tiskni
Sdílej:
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().