Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.
Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].
Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
pack_start = time.time()
pack = Popen(['tar', '-cJf', account_archive,'-T'+account_filelist ])
pack.wait()
pack_end = time.time()
řešení to není špatné (rozumějte - funguje ) , ale tar asi používá maximální kompresi. Pokoušel jsem se do volání Popen propašovat XZ_OPT=3, ale tudy asi cesta nevede ( nebo nevím jak na to ).
je nějaká jiná možnost jak vyladit kompresi a mít možnost získat čas potřebný k zabalení ?
prý přes shell to není bezpečné, psali někde na SOwerflow, ale zas takový kabrňák nejsem, abych to posoudil.
Jinak komprese trvá skoro 19 hodin a když to stáhnu na 10 bude to stačit ( 140GB pošty )
Nevadilo by mi ani volání taru v nějaké funkci, která by ten čas komprese hlídala, ale zároveň umožnila skriptu pokračovat v přípravě dalšího seznamu, ( komprimuju poštu po účtech( 1 účet = 1 složka = 1 archiv + csv s obsahem ( kdy predmet, kdo ) ne vše najednou ) případně spuštění dalšího vlákna s tarem ( čtyřjádro - asi bych to hlídal na max 3 tar-vlákna ( jak ?? ) )
Mám nástín, ale zatím nevyzkoušeno - pakování do funkce a tu volat subprocess.popen, ve funkci zase subprocess.popen tar a čekat na něj. jak ohlídat jen 3 spuštěné tary zatím nevím. Snad nějaký counter (globální proměnná ), který by to hlídal ... funguje to ale ve vláknech ? aby se nepoprali o tu proměnnou ?
Předem děkuji i za částečné nakopnutí správným směrem.
1, vyladit kompresi taru / použít jiný postup pro kompresi
2. popsat nějaké schéma, jak komprimovat ve více vláknech ( jasně, čas komprese budou mít jednotlivá vlákna asi pěkně natažený, ale snad to celkový čas zmenší )
Milan
Řešení dotazu:
)
prý přes shell to není bezpečné, psali někde na SOwerflowPokud tam nebudeš předávat argumenty, které ti dal uživatel, tak je to v pohodě.
Nevadilo by mi ani volání taru v nějaké funkci, která by ten čas komprese hlídala, ale zároveň umožnila skriptu pokračovat v přípravě dalšího seznamuJá na tohle vždycky pouštěl thread… Řekne se prostě
threading.Thread(target=funkce, args=(a,b,c)); t.start()
je nějaká jiná možnost jak vyladit kompresi
tar c | xz -3 > foo ?
Pokud tam nebudeš předávat argumenty, které ti dal uživatel, tak je to v pohoděne, skript běží pod rootem
tar c | xz -3 > footak ono to jde i ( v shellu ) XZ_OPT=3 tar -cJf "$bkfile" -T$usersez čili podobně subprocess.popen( "cely prikaz" shell=true ) ... ale ten shell .. jak jsem psal - na SO jednomu tazateli rozmlouvali. každopádně díky za navedení. Dá se u threadu sledovat, zda ještě "žije" ?
ne, skript běží pod rootemA? Ten problém se shellem je prostě v tom, že když tam dáváš argumenty od uživatele, je složité to korektně escapovat tak, aby když ti uživatel zadá
";rm -rf /*;, tak to shell nevyhodnotil jako další příkaz. Ty tam ale argumenty od uživatele, jestli to chápu dobře, nemáš (předáváš tam jen jméno souboru, které si sám generuješ).
os.putenv("XZ_OPTS", "3")
Ak používaš Python3, môžeš pri tej funkcii wait použiť aj argument timeout a ak sa program v tom čase neskončí, vyhodí tá funkcia výnimku subprocess.TimeoutExpired. Takže nie je problém pospúšťať viac programov pomocou Popen a potom si na počkať volaním wait v nejakom cykle.
Prípadne môže byť vhodnejšie použiť funkciu poll (a sleep). Wait sa potom použije len ak poll nevráti None (a teda program sa ukončil).
souborů celkem lidsky čas komprese lidsky archív kompr. poměr 29676 20569932136 20.0GB 10,797.59 02:59:57.592 13261289712 0,64 17021 17133312262 17.0GB 4900,4 01:21:40.3 9398976354 0,55čili i na tomto vzorku je vidět, že 7z zabodoval.
from concurrent.futures import ThreadPoolExecutor as Executor
import subprocess
def run_command(cmd):
p = subprocess.Popen(cmd)
p.wait()
return p.pid
def execute(commands):
with Executor(max_workers=3) as executor:
for pid in executor.map(run_command, commands):
print(pid)
Jsou lepší vlákna nebo event loop?
Tiskni
Sdílej: