Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
#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 %konfiguraceChci 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: