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.
Kdysi jsem si udělal takovou blbost na konfiguraci monitorů (tu). No už se nelíbí, je tam minimum ošetřovaných chyb a navíc je konfigurace hardcodovaná.
Začal jsem vylepšovat. První věcí bylo použít XCB místo Xlib, protože ošetřování chyb s Xlib je shit. Oproti minulému prográmku to bude mít profily (asi v XML konfiguráku), kdy bude možné pro různé kombinace zapojených výstupů mít extra profil.
Jsem strašně línej programátor a proto mám zatím v podstatě jen část, kde načítám aktuální konfiguraci, ale narazil jsem na nějaké problémy a potřeboval bych poradit a možná i kdyby někdo zkompiloval, spustil a hodil sem výstup z programu (bude přiložen v komentářích jako příloha).
O co jde? Tu je specifikace pro randr. Ta říká, že když zavolám RRGetCrtcInfo či RRGetOutputInfo s jiným timestampem, než dostanu v RRGetScreenResources, tak bych měl v odpovědi dostat "status" s InvalidConfigTime, jinak mám dostat Success. Bohužel u mě se to z nějakého důvodu chová tak, že když schválně nastavím timestamp na menší hodnotu, tak pro RRGetCrtcInfo mi to VŽDY ve statusu vrátí Success (0). Pro RRGetOutputInfo se mi ve statusu vrátí vždy NÁHODNÉ číslo - to se liší po každém startu programu, ale zůstává stejné po dobu, co program běží, nezávisle na správném/špatném timestampu. A to mě opravdu zaráží, protože jsem hlavně tohle potřeboval pro ošetřování chyb, abych mohl restartovat načítání prostředků (protože se konfigurace monitorů může změnit mezi RRGetScreenResources() a RRGetOutputInfo() a já nechcu žádný race conditions). V kódu jsem k těm místům napsal nějaký FIXME.
Kdyby se našel nějaký dobrý človíček, co by program zkompiloval (cmake . && make) a spustil (./monitorwatcher) a vypsal jsem výstup. Potřebuje to ke kompilaci xcb, xcb-randr a při spuštění samozřejmě zapnutou podporu randr v ovladači. Mnou popisované chování se děje s intel ovladačem, rád bych i výstupi s nouveau, ati driverem či nejnovějším nvidia ovladačem s podporou randr. Moc budu vděčný ^^.
A proč se tím vůbec zabývám? Jedině gnome 3 (které je pro mě totálně nepoužitelné) se zdá umí jakési profily a tak trochu inteligentně přepínat výstupy podle toho, co je zapojeno. Konfigurátko v KDE je totální nepoužitelná sranda, obzvláště když zapnu externí monitor a přístě nabootuju, když je odpojený, nebo ho jen stačí vytáhnout - KDE dementně aktivuje externí výstup, aniž by něco bylo připojeno a interní display neaktivue - šup do konzole, strašná legrace. Pak jsem hledal něco použitelného, ale nic ...
# spustím druhý X server na tty8 X :1 & # přepnu se zpět do tty7 a spustím xrandr pro druhý server DISPLAY=:1 xrandr
Následuje zásek, zaseknutá xka samozřejmě vlastní klávesnici a myš a mně zbývá hard reset. Sranda. Alespoň mě to donutilo nastavit kernel.sysrq = 1 v /etc/sysctl.conf. Zkouším ještě jednou se svým prográmkem - opět zásek. Xka jsou bastl, který nefunguje a už mě to deptá. Ještě že Alt+SysRq+K tentokrát fungovalo :D
Jinak po patchnutí xserveru mi už RRGetOutputInfo ve statusu vrací 0 a ve svém programu ho BUDU kontrolovat a nefunkční xservery se můžou klouzat. Patch jsem poslal, ale není hold můj problém, když v některých distribucích nebudou schopni opravit nefunkční věc.
Tak já děkuji všem za výstupy. Momentálně je RRGetOutputInfo rozbité v Ubuntu 12.04, Mint, ArchLinuxu, zdá se být ok ve Fedoře 13 a asi Gentoo. Na program asi kašlu, dokud to nebude opraveno, částečně i kvůli mému druhému problému.
Zdá se, že randr je prostě v xorg rozbitý, nebo rozbitý v intel ovladači, já fakt nevím. Při jakékoliv změně se mi rozjebe nastavení DPMS. Né jen xrandr udělátkem, ale i když změním výstup nějakým tím randr voláním. Prostě mi z toho brzo asi jebne a přemýšlím, jestli má smysl vůbec ztrácet čas, nebo se na to vysrat a prostě na notebook nainstalovat stoletou vistu. Protože já jsem zjistil, že na počítači fakt nic nedělám (resp. dělám blbosti) a jen z nudy čumim na filmy a brouzdám po netu. V linuxu se pak z nudy snažím programovat/opravovat kraviny a pak zjistím, že je to k hovnu. Pro vistu má intel alespoň funkční ovladač s podporou profilů rozložení monitorů, jejich automatickým přepínáním po vytažení displeje, kdy se mi nestane, že ani jeden není zaplý, jako v (ne)milovaném kde či gnome a navíc se nemusím patlat s udělátkem.
No ještě kdyby měl někdo náladu a chtěl zkusit, jestli se mu taky jebe nastavení dpms s externím displejem.
# vypnout dpms
xset -dpms
# info, včetně info, jestli je DPMS zapnuto
xset q
# vypnu extení, zapnu interní
xrandr -s 1280x800 --output HDMI1 --off --output LVDS1 --auto --primary
# několikrát zkusím vypsat dpms
(for I in {1..10}; do sleep 2; xset q; done) | grep DPMS
# pokud se vypíše enabled, tak je to rozbitý
# zapnu zase externí
xrandr -s 1280x1024 --output HDMI1 --auto --primary --output LVDS1 --off
# několikrát zkusím vypsat dpms
(for I in {1..10}; do sleep 2; xset q; done) | grep DPMS
# pokud se vypíše enabled, tak je to rozbitý
Tiskni
Sdílej:
RandR info:
first_event = 101
first_error = 167
major_opcode = 150
major_version = 1
minor_version = 3
CRTC status = 0
CRTC status = 0
OUTPUT status = 7
OUTPUT status = 7
OUTPUT status = 7
CRTC 0:
id: 64
position: 0x0
size: 1366x768
mode: 68
rotation: 1
rotations: 63
num_outputs: 1
possible_outputs: 3
CRTC 1:
id: 63
position: 0x0
size: 0x0
mode: 0
rotation: 1
rotations: 63
num_outputs: 0
possible_outputs: 2
OUTPUT 0:
id: 65
crtc: 64
mm_width: 353
mm_height: 198
connection: 0
name: LVDS1
OUTPUT 1:
id: 66
crtc: 0
mm_width: 0
mm_height: 0
connection: 1
name: VGA1
OUTPUT 2:
id: 67
crtc: 0
mm_width: 0
mm_height: 0
connection: 1
name: DP1
). Ale pak už zůstává stejný, musel bych asi restartovat nebo nevim...
Možná má Arch Linux nějakej problém v intel ovladači.
[lukas@orochi build]$ ./monitorwatcher RandR info: first_event = 123 first_error = 178 major_opcode = 153 major_version = 1 minor_version = 3 CRTC status = 0 CRTC status = 0 OUTPUT status = 63 OUTPUT status = 63 OUTPUT status = 63 OUTPUT status = 63 CRTC 0: id: 582 position: 0x0 size: 1680x1050 mode: 587 rotation: 1 rotations: 63 num_outputs: 1 possible_outputs: 4 CRTC 1: id: 583 position: 0x0 size: 0x0 mode: 0 rotation: 0 rotations: 63 num_outputs: 0 possible_outputs: 4 OUTPUT 0: id: 584 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DVI-I-0 OUTPUT 1: id: 585 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: VGA-0 OUTPUT 2: id: 586 crtc: 582 mm_width: 434 mm_height: 271 connection: 0 name: DVI-I-1 OUTPUT 3: id: 593 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI-0 [lukas@orochi build]$ ./monitorwatcher RandR info: first_event = 123 first_error = 178 major_opcode = 153 major_version = 1 minor_version = 3 CRTC status = 0 CRTC status = 0 OUTPUT status = 63 OUTPUT status = 63 OUTPUT status = 63 OUTPUT status = 63 CRTC 0: id: 582 position: 0x0 size: 1680x1050 mode: 587 rotation: 1 rotations: 63 num_outputs: 1 possible_outputs: 4 CRTC 1: id: 583 position: 0x0 size: 0x0 mode: 0 rotation: 0 rotations: 63 num_outputs: 0 possible_outputs: 4 OUTPUT 0: id: 584 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DVI-I-0 OUTPUT 1: id: 585 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: VGA-0 OUTPUT 2: id: 586 crtc: 582 mm_width: 434 mm_height: 271 connection: 0 name: DVI-I-1 OUTPUT 3: id: 593 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI-0
RandR info: first_event = 100 first_error = 165 major_opcode = 149 major_version = 1 minor_version = 3 CRTC status = 0 CRTC status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 CRTC 0: id: 63 position: 0x0 size: 1280x1024 mode: 72 rotation: 1 rotations: 63 num_outputs: 1 possible_outputs: 7 CRTC 1: id: 64 position: 0x0 size: 0x0 mode: 0 rotation: 1 rotations: 63 num_outputs: 0 possible_outputs: 7 OUTPUT 0: id: 65 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: VGA1 OUTPUT 1: id: 66 crtc: 63 mm_width: 376 mm_height: 301 connection: 0 name: HDMI1 OUTPUT 2: id: 67 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DP1 OUTPUT 3: id: 68 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI2 OUTPUT 4: id: 69 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI3 OUTPUT 5: id: 70 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DP2 OUTPUT 6: id: 71 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DP3
RandR info: first_event = 100 first_error = 165 major_opcode = 149 major_version = 1 minor_version = 3 CRTC status = 0 CRTC status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 CRTC 0: id: 63 position: 0x0 size: 1366x768 mode: 69 rotation: 1 rotations: 63 num_outputs: 1 possible_outputs: 4 CRTC 1: id: 64 position: 0x0 size: 0x0 mode: 0 rotation: 1 rotations: 63 num_outputs: 0 possible_outputs: 4 OUTPUT 0: id: 65 crtc: 63 mm_width: 344 mm_height: 194 connection: 0 name: LVDS1 OUTPUT 1: id: 66 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: VGA1 OUTPUT 2: id: 67 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI1 OUTPUT 3: id: 68 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DP1 druhé spuštění: RandR info: first_event = 100 first_error = 165 major_opcode = 149 major_version = 1 minor_version = 3 CRTC status = 0 CRTC status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 OUTPUT status = 0 CRTC 0: id: 63 position: 0x0 size: 1366x768 mode: 69 rotation: 1 rotations: 63 num_outputs: 1 possible_outputs: 4 CRTC 1: id: 64 position: 0x0 size: 0x0 mode: 0 rotation: 1 rotations: 63 num_outputs: 0 possible_outputs: 4 OUTPUT 0: id: 65 crtc: 63 mm_width: 344 mm_height: 194 connection: 0 name: LVDS1 OUTPUT 1: id: 66 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: VGA1 OUTPUT 2: id: 67 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: HDMI1 OUTPUT 3: id: 68 crtc: 0 mm_width: 0 mm_height: 0 connection: 1 name: DP1
RandR info:
first_event = 101
first_error = 164
major_opcode = 149
major_version = 1
minor_version = 3
CRTC status = 0
CRTC status = 0
OUTPUT status = 31
CRTC 0:
id: 63
position: 0x0
size: 1280x1024
mode: 66
rotation: 1
rotations: 63
num_outputs: 1
possible_outputs: 1
CRTC 1:
id: 64
position: 0x0
size: 0x0
mode: 0
rotation: 1
rotations: 63
num_outputs: 0
possible_outputs: 1
OUTPUT 0:
id: 65
crtc: 63
mm_width: 338
mm_height: 270
connection: 0
name: VGA1
RandR info:
first_event = 101
first_error = 164
major_opcode = 149
major_version = 1
minor_version = 3
CRTC status = 0
CRTC status = 0
OUTPUT status = 31
CRTC 0:
id: 63
position: 0x0
size: 1280x1024
mode: 66
rotation: 1
rotations: 63
num_outputs: 1
possible_outputs: 1
CRTC 1:
id: 64
position: 0x0
size: 0x0
mode: 0
rotation: 1
rotations: 63
num_outputs: 0
possible_outputs: 1
OUTPUT 0:
id: 65
crtc: 63
mm_width: 338
mm_height: 270
connection: 0
name: VGA1
Linux myhost 3.4.3-1-ARCH #1 SMP PREEMPT Mon Jun 18 08:07:54 UTC 2012 i686 GNU/Linux