Máirín Duffy a Brian Smith v článku pro Fedora Magazine ukazují použití LLM pro diagnostiku systému (Fedora Linuxu) přes Model Context Protocol od firmy Anthropic. I ukázkové výstupy v samotném článku obsahují AI vygenerované nesmysly, např. doporučení přeinstalovat balíček pomocí správce balíčků APT z Debianu místo DNF nativního na Fedoře.
Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost System76 vydala Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC. Videoukázky na YouTube.
Byla vydána verze 1.92.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.
Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2024. Oceněni byli Andy Wingo, jeden ze správců GNU Guile, Alx Sa za příspěvky do Gimpu a Govdirectory jako společensky prospěšný projekt.
Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.
Řešení dotazu:
Asi nejčastěji narazíš na Singleton, což je jen objektový obal na globální proměnnou (= zlo, vyhni se tomu).To je zase kec. Singleton je objektový obal na věc, která je globální a unikátní, i kdybys nechtěl. Například program sám: můžeš se stavět na hlavu, ale program bude mít jeden pid, jeden argv, etc.
... která je globální a unikátní ...Jo ... globální proměnná. Prostě jen jiný název pro totéž. Sám to píšeš
Na jednu stranu se tomu nevyhneš úplně a ten jeden tam bude vždy. Ale na druhou, můžeš to postavit tak, že pid, argv a další věci (třeba i ten singleton samotný) si jen posbíráš na začátku a pak vyrobíš instanci třídy Application. Vše jí předáš a ta už pak nemusí singleton ani zahlédnout (ten předaný singleton už pro ni nebude singleton, ale obyčejný parametr).
class Application {
Application(argv) {
// nějaká ta inicializace, zpracování parametrů
}
int execute() {
// tady je aplikace (mimo konstruktor, aby bylo
// možné nastavit další parametry)
}
}
// Zavaděč aplikace
int main (argv) {
Application a = new Application(argv);
return a.execute();
}
Jak vidíš, není tam žádný singleton. Funkce ::main() by ho mohla trošku připomínat, ale je to jen jednoduchý zavaděč, aby jádro mohlo někde začít se spuštěním.
Třída Application také není singleton, neboť není nijak zaručeno, že nemůže existovat více než jedna instance, ani není jak takovou instanci získat.
Application asi není příliš vhodný název, možná by se hodilo spíš něco jako MainWindow, ale to záleží na tom, k čemu Application je.
Také nám nic nebrání spustit více instancí, třeba otevřít více dokumentů najednou nebo provést paralelně několik výpočtů:
int main(arg) {
ThreadPool tp;
foreach (i in arg) {
Application a = new Application(arg[i]);
tp.executeInNewThread(a); // tp zavolá a.execute()
}
return tp.waitForAllThreads();
}
Tiskni
Sdílej: