O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.
Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.
Adam Rice předvedl, že pomocí DNS lze distribuovat a spustit kompletní hru DOOM. Rozdělil WAD soubory a binárky do téměř 2000 DNS záznamů v Cloudflare zóně (jeden TXT záznam v DNS může nést okolo 2000 znaků textu). Ty pak stáhl PowerShellem, dekomprimoval a spustil přímo v paměti počítače bez nutnosti zápisu na disk, což prakticky dokazuje, že DNS může sloužit jako distribuované úložiště dat a možný kanál pro načítání kódu. Repozitář projektu je na GitHubu.
Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.
Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.
Byla vydána aktualizována Příručka pro začínající wikipedisty a wikipedistky (pdf).
Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.
Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.
Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.
Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a
… více »$arr['a'] = array('1');
$arr['b'] = array('2');
$arr['c'] = array('3');
$arr['d'] = array('4');
$arr['b']['a'] = array('1');
$arr['b']['b'] = array('2');
$arr['b']['b']['a'] = array('1');
$arr['b']['b']['b'] = array('1');
a když bude
$dis = array('b');
tak potřebuji získat hodnotu z
$arr['b']
a když bude
$dis = array('b', 'b');
tak potřebuji získat hodnotu z
$arr['b']['b']
a když bude
$dis = array('b', 'b', 'b');
tak potřebuji získat hodnotu z
$arr['b']['b']['b']
atd.. Vždy znám jen hloubku toho vnoření, což je počet klíčů v poli $dis. Děkuji za případnou pomoc
$arr = array('a' => array('b' => array('c' => 'Hello')));
$path = array('a', 'b', 'c');
function walkPath($arr, $path) {
$p = & $arr;
foreach ($path as $n) {
if (array_key_exists($n, $p)) {
$p = & $p[$n];
} else {
throw new \InvalidArgumentException('Invalid path.');
}
}
return $p;
}
// Toto by melo vypsat 'Hello'
echo walkPath($arr, $path), "\n";
Potřebuji vypsat vždy všechny, ne jen ten poslední, čili
a ab abcDěkuji
$arr = array('a' => array('b' => array('c' => 'Hello')));
není totžné s tím co potřebuji
$arr = array();
$arr['a'] = array('a');
$arr['a']['b'] = array('ab');
$arr['a']['b']['c'] = array('abc');
$arr['a'] buď může obsahovat array('a') (2. řádek) nebo může obsahovat array('b' => array('ab')) (3. řádek).
$arr = array('a' => array('b' => array('c' => 'Hello')));
je totéž jako:
$arr = array(); $arr['a']['b']['c'] = 'Hello';Pokud chceš mít v tom stromu hodnoty i jinde než na listech, tak musíš buď zdvojnásobit vrstvy, nebo určit speciální klíč pro hodnoty:
$arr = array(); $arr['a']['#'] = 'a'; $arr['a']['b']['#'] = 'ab'; $arr['a']['b']['c']['#'] = 'abc';Pak v kterémkoliv vrcholu budeš mít k dispozici hodnotu pod klíčem '#'. Tedy celý strom bude vypadat takto -- viz příloha. Ale je to takové ošklivé, i když vcelku efektivní.
$arr = array();
$arr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$arr['a']['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$arr['a']['b']['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
$dis = array('a', 'b', 'c');
a potřebuji nadefinovat takové nové pole pro další práci...
$newarr = array();
$newarr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$newarr['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$newarr['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
a ještě výsledky
echo $newarr['a']['FOO']; //a echo $newarr['a']['BAR']; //a2 echo $newarr['b']['FOO']; //ab echo $newarr['b']['BAR']; //ab2 echo $newarr['c']['FOO']; //abc echo $newarr['c']['BAR']; //abc2Je to lepší ? Díky
$dis = array('a', 'b', 'c');
V systému je mimo jiné takový kousek pole
$arr = array();
$arr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$arr['a']['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$arr['a']['b']['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
Takze vlastne mate pole:
Array ( [a] => Array ( [FOO] => a [BAR] => a2 [b] => Array ( [FOO] => ab [BAR] => ab2 [c] => Array ( [FOO] => abc [BAR] => abc2 ) ) ) )Sice nevidim dovod takeho pouzitia, ale potom nieco taketo by to mohlo generovat:
$dis = array('a', 'b', 'c');
$newarr = array(); $tmp = $arr;
foreach($dis as $k) {
$newarr[$k] = array_intersect_key($tmp[$k], array('FOO' => 0, 'BAR' => 0));
// $newarr[$k] = array('FOO' => $tmp[$k]['FOO'], 'BAR' => $tmp[$k]['BAR']); //alebo takto
$tmp = $tmp[$k];
}
print_r($newarr);
Tiskni
Sdílej: