Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.
Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.
Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantovou výměnu klíčů.
Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.
Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.
Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů
… více »Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.
Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.
Zrovna tahle Pythonní implementace mi připadá jako zakuklený Singleton, přičemž se na interpreter hodila starost, aby ten stav byl nanejvýš jeden.
Nemohl bys uvést příklad, kde se hodí Borg víc, než Singleton?
Singleton::getinstance()
používáš new Singleton()
. V singletonu by ti new
narazilo na absenci public konstruktoru. Jinak se to chová úplně stejně.
>>> borgA is borgB False >>> id(borgA), id(borgB) 33097776, 33695504Borgove jsou rozdilne instance na ruznych mistech v pameti, zatimco singleton je jedina instance. Napriklad muzu dva borgy pouzit jako dva ruzne klice slovniku (pomijim ted ze pouzivat inherentne promenlivy objekt jako klic je blbost). Muzu vymyslet vyfikundace s borgy kteri budou instance ruznych trid ale sdilet stejny stav. Et cetera, et cetera… Mozna by se dalo i vymyslet rozumny pouziti pro neco takoveho, ale to uz bude asi kapku tezsi
class Borg(object): shared = {} def __new__(cls): self = object.__new__(cls) self.__dict__ = share return self seven, locutus = Borg(), Borg() seven is locutus # False
Mohl bys prosím tuto konstrukci pro nás nepythonisty vysvětlit?
Takže jde jen o to, že __shared_state je proměnná třídy?
A mohl bys prosím vysvětlit, co se děje v tom konstruktoru (?) __init__()?
A vůbec, kde se tam vzala proměnná "pozdrav"?
jednoduse receno, self.__dict__ je slovnik obsahujici vsechny atributy tridy. On ukazatel na ten slovnik atributu nastavil na ukazatel na tu tridni promennou -> vsechny instance maji stejnou sadu atributu.
Promenna pozdrav se tam vzala z
borgA.pozdrav = "My jsme Borg, budete asimilovani"
protoze python, pokud priradis do neexistujiciho atributu, ten atribut automaticky vytvori === prida do self.__dict__ novou dvojici klic-hodnota. A protoze self.__dict__ sdili (diky predchozimu 'hacku') vsichni borgove, muze ho borgB vypsat.
koukam ze sem to vysvetlil slozite jak mlaticku, ale to je tou nocni hodinou :)
Tiskni
Sdílej: