Jsongrep je open-source nástroj, který efektivně prohledává JSON dokumenty (editovat je neumí). Kompiluje regulérní jazyk dotazu do podoby deterministického konečného automatu (DFA), díky čemuž prochází strom JSON dokumentu pouze jednou a je v tom tedy rychlejší než jiné nástroje jako jsou například jq, JMESPath nebo jql. Jsongrep je napsaný v programovacím jazyce Rust, zdrojový kód je dostupný na GitHubu.
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.
select, ktera mi funguje, avsak pokud chci mit "vnorena" menu pod jednotlivymi volbami, skript se nespusti kvuli chybe parsovani a predpokladam, ze delam neco blbe, resp. ze mam konstrukci blbe zapsanou. Nicmene nemuzu ani za boha prijit na to proc. Potrebuji docilit toho aby napriklad pod volbou cislo 2, bylo dalsi menu s nekolika dalsimi polozkami.
Skript konci s nasledujici chybou:
./menutest.sh: line 14: syntax error near unexpected token `opts'
./menutest.sh: line 14: ` select opts in "${sub[@]}"'
Pokud me nekdo dokazete navest co je spatne, moc mi tim pomuzete
Konstrukce skriptu je neco takoveho (vzor jsem prevzal z clanku, kde jsem hledal informace):
#!/bin/bash
PS3="Vyberte cislo: "
items=("Item 1" "Item 2" "Item 3")
sub=("TEST 1" "TEST 2" "TEST 3")
while true; do
select item in "${items[@]}" Quit
do
case $REPLY in
1) echo "Vybrano cislo #$REPLY odpovidajici volbe $item"; break;;
2) echo "Vybrano cislo #$REPLY odpovidajici volbe $item"; break;;
select opts in "${sub[@]}"
do
case $REPLY in
1) echo "TEST OK"; break;;
esac
done
3) echo "Vybrano cislo #$REPLY odpovidajici volbe $item"; break;;
$((${#items[@]}+1))) echo "Konec!"; break 2;;
*) echo "Neznama volba $REPLY"; break;
esac
done
done
Řešení dotazu:
#!/bin/bash
PS3="Vyberte cislo: "
items=("Item 1" "Item 2" "Item 3")
sub=("TEST 1" "TEST 2" "TEST 3")
while true; do
select item in "${items[@]}" Quit
do
case $REPLY in
1) echo "Vybrano cislo #$REPLY odpovidajici volbe $item"; break;;
2) echo "Vybrano cislo #$REPLY odpovidajici volbe $item";
select opts in "${sub[@]}"
do
case $REPLY in
1) echo "TEST OK"; break;;
esac
done
break;;
3) echo "Vybrano cislo #$REPLY odpovidajici volbe $item"; break;;
$((${#items[@]}+1))) echo "Konec!"; break 2;;
*) echo "Neznama volba $REPLY"; break;
esac
done
done
shellcheck vyhazoval chybu na radku 13, ale asi jsem u toho sedel dlouho a nemohl prijit na to co tam mam spatne. Nyni to funguje.
echo "Item 1\nItem 2\nItem 3" | fzf
Tiskni
Sdílej: