Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).
Na základě národního atribučního procesu vláda České republiky označila Čínskou lidovou republiku za zodpovědnou za škodlivou kybernetickou kampaň proti jedné z neutajovaných komunikačních sítí Ministerstva zahraničních věcí ČR. Tato škodlivá aktivita, která trvala od roku 2022 a zasáhla instituci zařazenou na seznam české kritické infrastruktury, byla provedena kyberšpionážní skupinou APT31, veřejně spojovanou se zpravodajskou službou Ministerstvo státní bezpečnosti (MSS).
Google Chrome 137 byl prohlášen za stabilní. Nejnovější stabilní verze 137.0.7151.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 11 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byl vydán AlmaLinux OS 10 s kódovým názvem Purple Lion. Podrobnosti v poznámkách k vydání. Na rozdíl od Red Hat Enterprise Linuxu 10 nadále podporuje x86-64-v2.
Byl vydán Mozilla Firefox 139.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 139 je již k dispozici také na Flathubu a Snapcraftu.
Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu 2024. Zúčastnilo se více než 7000 uživatelů. Téměř 93 % z nich například používá uživatelské rozhraní v angličtině.
Lukáš Růžička v článku RamaLama aneb vyháníme lamy na vlastní louku na MojeFedora.cz představuje open source nástroj RamaLama umožňující spouštět jazykové modely v izolovaných OCI kontejnerech, a to bezpečně, bez potřeby mít root přístup k počítači, s podporou GPU či CPU a bez zbytečných obtížností kolem.
Byl vydán Sublime Text 4 Build 4200. Sublime Text (Wikipedie) je proprietární multiplatformní editor textových souborů a zdrojových kódů. Ke stažení a k vyzkoušení je zdarma. Pro další používání je nutná licence v ceně 99 dolarů. Spolu se Sublime Merge je cena 168 dolarů.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.12.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.5. Přehled novinek v Changelogu.
Odkazy
Nedávno som začal viac-menej z donútenia (škola) robiť nejaký program ako semestrálku v pythonovi. Konkrétne som si povedal, že urobím gui k boinc_client-ovi. Prekvapilo ma ale, že aplikácia zaberá stále viac RAM.
Takže po dlhom skúmaní som došiel k záveru, že problém je niekde okolo riadku s data = QVariant.fromList(...). Tak som urobil malý programík v pythonovi na ktorom by som si vyskúšal ako sa dá uvoľniť táto pamäť. Takže obsah toho malého programíku:
from PyQt4.QtCore import QVariant while True: zoznam = QVariant.fromList([QVariant('text1'), QVariant('text2')]) zoznam.clear() del(zoznam)
Predpokladám, že tento kód v pythonovi by mal byť ekvivalentný s nasledujúcim programom v C++:
#include <QVariant> #include <QList> int main(int argc, char *argv[]) { while (1) { QList<QVariant> zoznam; zoznam.append(QVariant("text1")); zoznam.append(QVariant("text2")); QVariant variant = QVariant(zoznam); } }
Napriek tomu po spustení programu v pythonovi sa obsadená RAM stále zväčšuje zatiaľ čo v C++ nie. Robím niečo zle alebo je chyba skutočne niekde mimo môjho kódu? Robí to problémy aj ostatným užívateľom alebo len mne (napríklad preto, že PyQt4 zle skompiloval)?
Pre tých ktorí chcú vidieť čo to vlastne robím som prihodil aj screenshoty, prípadne môžete pozrieť video, zdrojové kódy nedám, hambím sa za ne.
Tiskni
Sdílej:
QVariant variant = QVariant(zoznam);Ten řádek je k ničemu...
noo, medzi tymi testami je viacero rozdielov... najzasadnejsi ale asi v tom, ze v c++ kode sa ti tie objekty naozaj uvolnia z RAM, kym v pythone je garbage collector.. skus tam este ked tak pridat import gc; gc.collect() za ten kod 'del'
gc.set_debug(gc.DEBUG_LEAK)
. V gc.garbage
bys pak měl mít seznam objektů, které se nedají uvolnit.
gc.collect()
program spíše jenom zpomalí, takže se zdá, že to něco řeší, ale vždy vrátí 0 uvolněných objektů. Co narůstá je počet objektů (gc.get_objects()
), přičemž garbage collector se zdá pracuje, protože počet objektů v jednotlivých generací gc.get_count()
roste, ale taky klesá.
Při nastaveném gc.DEBUG_STATS to naopak vypadá, že collector nepracuje, protože počet objektů roste. Ale ony si údaje gc.get_count()
a to, co vypisuje gc samotný, moc neodpovídají.
gc: done. gc: collecting generation 0... gc: objects in each generation: 703 6300 58705 gc: done. gc: collecting generation 0... gc: objects in each generation: 703 7000 58705 gc: done. gc: collecting generation 1... gc: objects in each generation: 703 7700 58705 gc: done. gc: collecting generation 0... gc: objects in each generation: 703 0 67105Podle mě je to bug a mělo by to být oznámeno autorům PyQt4.