Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.
Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.
Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento
… více »Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se
… více »Někteří zákazníci O2 mohou aktuálně zaznamenat zhoršenou dostupnost internetových služeb. Na odstranění potíží se pracuje [Facebook].
PyPy (Wikipedie), tj. implementace Pythonu v RPythonu, alternativa CPythonu v C, byla vydána v nové major verzi 8.0.0. Podporuje Python 2.7, 3.11 a 3.12.
V jádře Linux byly nalezeny a v upstremu ve verzích 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 a 7.2.4 již opraveny 4 kritické zranitelnosti umožňující eskalaci práv: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) a DiagSpill (CVE-2026-74469).
Německá policie a celníci zneužívají ke čtení zpráv komunikačních aplikacích WhatsApp, Signal, Telegram nebo Threema velice jednoduchý trik, který nevyžaduje prolomení šifrování, spear phishing, odposlech SMS či jinou technicky náročnou metodu. Příslušníkům státního aparátu pouze stačí získat krátký přístup k odemčenému telefonu a prostřednictvím QR kódu propojit účet s oficiální desktopovou nebo webovou aplikací v policejním
… více »Počítačová hra Factorio (Wikipedie) nově běží nativně na ARM64 Linuxu a headsetu Steam Frame.
a celkem mi to jde, ale hodila by se mi rada zkušenějších ohledně jedné záležitosti.
Ve funkci nahraj_kofiguraci načítám ze souboru nějaká data a parsuju si to do lokální struktury, která není jednoduché pole ale je to hash obsahující jako hodnotu klíče vždy pole, tedy dalo by se říci hash polí, respektive buďme přesní hash referencí na pole. Po naplnění této lokální brurus proměnné
bych ji chtěl na konci funkce nějak překlopit do globální proměnné, ale teď jak na to? Musím tu globální pomocí foreach nejdřív vyčistit a pak prvek po prvku opět naplnit? Jak je to s platností lokálních proměnných v tomto případě? Připomínám, že ty reference na pole v hashi jsou anonymní. Neexistuje na to nějaký prima trik?
Děkuji.
Jak už jsem uvedl jde o parsování a aktualizaci nějaké konfigurace, konkrétně běží program který je řízen touto konfiguraci a chci mít možnost mu za běhu podstrčit novou konfiguraci, ovšem nejprve ji chci načíst pro kontrolu do lokální proměnné a teprve v případě že je vše ok najednou přeplácnout do globálu. Toliko pro vysvětlení.
Existuje v perlu nějaké elegantní řešení pro tzv. deep copy složitých datových struktur (třeba když potřebuji kopii lokální proměnné do globální)? nebo se to musí poctivě nakódovat na základě znalosti té struktury?
#deklarace prazdne hash
our %konfigurace;
sub load_konfig() {
# deklaruje lokalni promenne;
my %konfigurace;
# nacte ze souboru data a ulozi postupne do %konfigurace,
# jenz ma strukturu { klic1=>[1,2,3,4],klic2=>[1,2],...}
# jestlize doslo ke korektnimu naplneni lokalnich promennych,
# zkopiruj my %konfigurace do our %konfigurace,
# jinak skonci ale zachovej puvodni globalni konfiguraci.
}
# hlavni program
load_konfig();
# chvili neco dela na zaklade %konfigurace
load_konfig();
# chvili neco dela na zaklade nove %konfigurace
load_konfig();
# chvili neco dela na zaklade dalsi nove %konfigurace
Chci programu menit konfiguraci za behu a chci mit moznost kontroly syntaxe te nove konfigurace aniz bych narusil aktualni beh aplikace.
Sice získám kopii reference, jenže jestli se nepletu, bude se odkazovat na stejný místo v paměti, tedy do lokálních struktur tzn. při opětovném vyvolání té funkce, když budu ukládat nový konfigurák do těch lokálních proměnných, tak si budu zároveň přepisovat ty globální, ne?Tak takhle snad nefungují lokální proměnné ani v Perlu, ne? Resp. je rozdíl mezi
my a local, ale už si nepamatuju jaký, tak daleko jsem se v Perlu naštěstí nedostal
our $konfigurace={} # reference na hash
$konfigurace=load_konfig();
#v load_konfig()
my $ret=$main::konfig # puvodni hodnota
/VSE v poradku s daty/ && $ret=konfig # lokalni v procedure
return $ret;
}
IMO our %config a my %konfig je zbytecnost samoucelna, nesetrici pamet a znesnadnujici citelnost
Povesit load_konfig na signal (HUP, USR1) by byl problem ?
foreach ($key,$value) = $main::konfigurace { # maze globalni strukturu
splice(@$value); # vymaze pole pod klicem v hashi
delete($main::konfigurace{$key}); # vymaze prvek globalniho hashe;
}
foreach ($key,$value) = $konfigurace { # vytvari novou globalni strukturu z lokalni
$main::konfigurace{$key} = [ @$value ] ; # vytvoř kopii pole a její anonymní referenci ulož jako hodnotu klíče globálního hashe
}
Tak za výše uvedené bych asi zasloužil oprátku, ale principiálně by to snad mělo být čisté.
No ale taky je možné, že jsem jenom nepochopil jak je to s platností lokálních proměnných a lokálních referencí po opuštění bloku a princip chování garbage kolektoru v souvislosti s lokálnímy a globálnímy odkazy na anonymní pole vytvořené v rámci lokálního kontextu.
Tiskni
Sdílej: