Vývojáři postmarketOS vydali verzi 24.06 tohoto před sedmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, KDE Plasma a Sxmo. Aktuálně podporovaných zařízení je 50.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Google Blog ČR informuje, že mobilní aplikaci Gemini a NotebookLM lze používat už také v Česku.
Byla vydána nová major verze 8 duálně licencovaného open source frameworku JUCE (Wikipedie, GitHub) pro vývoj multiplatformních audio aplikací.
Od 18. června bude možné předobjednat notebook DC-ROMA RISC-V LAPTOP II od společnosti DeepComputing s osmijádrovým 64-bit RISC-V AI CPU a s předinstalovaným Ubuntu.
Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.
Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.
Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
asyncio.create_task()
? Protože v obou případech je časový výsledek týž (viz kód níže). Jde říct, že pomocí create_task()
lze pracovat s výjimkami tak, že mi nespadne během chyby běh komplet celého seznamu?
Totálně primitivní příklad:
async def fetch_url(url): print(f"Getting {url}...") await asyncio.sleep(0.5) return "Response OK. Done"Verze pouze s prostým listem:
async def main(): start_time = time.time() tasks = [fetch_url(url) for url in URLS] results = await asyncio.gather(*tasks) end_time = time.time() elapsed = end_time - start_time print(f"Fetching took {elapsed:.2f} seconds.") return resultsVerze s asyncio taskem:
async def main(): start_time = time.time() tasks = [asyncio.create_task(fetch_url(url)) for url in URLS] results = await asyncio.gather(*tasks) end_time = time.time() elapsed = end_time - start_time print(f"Fetching took {elapsed:.2f} seconds.") return resultsV obou případech je čas běhu stejný, tj. 0,5 s, na rozdíl od synchronního kódu, kde pro 15 URL to trvá, jak by člověk čekal, 7,5 sekundy.
asyncio.gather()
dělá seznam tasků, takže kombinace s create_task()
je zcela zbytečná.
Tiskni
Sdílej: