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 »
<?//------------------------------------------------------------------------------------------------------------------
$menu = array
(
array(1,0),
array(2,1),
array(3,1),
array(4,3),
array(5,3),
array(6,5),
array(7,1),
array(8,1),
array(9,8),
array(10,9),
array(11,1),
array(12,11),
array(13,12),
array(14,1),
array(15,14),
array(16,14),
array(17,16),
array(18,14),
array(19,18),
array(20,19),
array(21,20),
array(22,21),
array(23,1)
);
##===========================================
$nodes = array();
foreach ($menu as $n) {
if (!array_key_exists($n[1], $nodes)) {
$nodes[$n[1]] = array();
}
array_push($nodes[$n[1]],$n[0]);
}
function dict_value($nodes,$hledana){ # vrati parrenta hledane hodnoty 22 -> 21, atd.
$keys = (array_keys($nodes));
#$values = (array_values($nodes));
$a = array();
$pocitadlo = 0;
foreach ($keys as $key) {
foreach ($nodes[$key] as $k) {
if ($hledana == $k) {
#var_dump($key);
return $key;
}
}
}
}
#=========================================== rekurzivni vyhledani cesty
function cesta($nodes,$hledany_klic,$a=array()) {
$lastval = dict_value($nodes,$hledany_klic);
var_dump($lastval);
echo "<br>";
array_push($a,$lastval);
var_dump($a); # TADY JE: array(7) { [0]=> int(21) [1]=> int(20) [2]=> int(19) [3]=> int(18) [4]=> int(14) [5]=> int(1) [6]=> int(0) }
echo "<br>";
if ($lastval != 0) {
cesta($nodes,$lastval,$a);
}
return $a;
}
$hledany_klic = 22;
$walk = array();
$walk = cesta($nodes,$hledany_klic);
echo "<br>";
var_dump($walk); # TADY SE VRATI: array(1) { [0]=> int(21) }
# OCEKAVAL BYCH: array(7) { [0]=> int(21) [1]=> int(20) [2]=> int(19) [3]=> int(18) [4]=> int(14) [5]=> int(1) [6]=> int(0) }
?>
Řešení dotazu:
import pdb
pdb.set_trace()
Popř. pokud máš instalovanej balíček ipython (daleko lepší debugger), tak
def debug(frame, frames_back):
if IPython.__version__ >= '0.11':
from IPython.core.debugger import Pdb
try:
ip = get_ipython()
except NameError:
from IPython.frontend.terminal.embed \
import InteractiveShellEmbed
ip = InteractiveShellEmbed()
colors = ip.colors
else:
from IPython.Debugger import Pdb
from IPython.Shell import IPShell
from IPython import ipapi
ip = ipapi.get()
if ip is None:
IPShell(argv=[''])
ip = ipapi.get()
colors = ip.options.colors
sys.excepthook = old_excepthook
if frame is None:
frame = sys._getframe(frames_back)
Pdb(colors).set_trace(frame)
debug()
Ta druhá fce je složitá (výňatek z kódu Sfepy http://sfepy.org/doc-devel/index.html), protože řeší různý verze,
IPythonu nicméně doporučuju si nějakou takovoudle funkci napsat/zkopčit a pak používat kde jen to jde...
Tiskni
Sdílej: