Byla vydána nová verze 10.4 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Opraveny jsou zranitelnosti Copy Fail a Dirty Frag. Přibyl nový obraz pro Orange Pi 5B.
Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).
Odborníci z Penn State University zkoumají způsob ukládání informací na lepicí pásku. Principiálně by podle nich bylo možné kombinací odlepení a zpětného přilepení dosáhnout uložení informace, kterou opětovným odlepením dokážou přečíst. Výhodou je, že způsob uložení i přečtení je čistě mechanický. Zde o tom referují ve volně dostupném článku. Zajímavé bude sledovat zda se jim v rámci výzkumu podaří prokázat použitelnost i v jiné než
… více »Na GitHubu byl publikován reprodukovatelný návod, jak rozchodit Adobe Lightroom CC na Linuxu a Wine. Návod byl vytvořený pomocí AI Claude Code.
Pokud by někdo potřeboval Wayland kompozitor uvnitř počítačové hry Minecraft, aby mohl zobrazovat okna desktopových aplikací přímo v herním prostředí, může sáhnout po Waylandcraftu. Ukázka na YouTube.
Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.
Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
|- id1 -|- id2 -|- min -|- max -|- pos -|-- set ---| | 0 | 0 | 10 | 20 | 0 | 0 | | 0 | 0 | 5 | 10 | 1 | 0 | Group1 |--------------------------------------------------| | 0 | 0 | 15 | 25 | 0 | 1 | Group 2 |--------------------------------------------------| | 0 | 0 | 5 | 15 | 0 | 2 | Group 3 |-------|-------|-------|-------|-------|----------| | 0 | 1 | 5 | 10 | 0 | 0 | | 0 | 1 | 6 | 10 | 1 | 0 | Group4 |-------|-------|-------|-------|-------|----------| | 1 | 0 | 5 | 10 | 0 | 0 | | 1 | 0 | 5 | 15 | 1 | 0 | Group5 | 1 | 0 | 10 | 20 | 2 | 0 |Každá unikátní kombinace
set, id1, id2 by měla představovat jednu skupinu.
Ze skupiny potřebuji vybrat řádek, který má největší rozdíl min - max, zároveň nejmenší hodnotu pos.
Nějak jsem napsal poddotaz. Píšu to teď z hlavy a asi to nebude funkční, něco takového:
SELECT * FROM `tbl` `A` INNER JOIN ( SELECT `id1`, `id2`, `set`, MAX(`max` - `min`) as `delta` FROM `tbl` GROUP BY `id1`, `id2`, `set` ) `B` ON `A.id1` = `B.id1` AND `A.id2` = `B.id2` AND `A.set` = `B.set` AND (`A.max` - `A.min`) = `B.delta`Tento dotaz mi správně vrátí záznamy z každé skupiny s nejvyšším rozdílem max, min, tj:
|- id1 -|- id2 -|- min -|- max -|- pos -|-- set ---| | 0 | 0 | 10 | 20 | 0 | 0 | | 0 | 0 | 5 | 10 | 1 | 0 | Group1 |--------------------------------------------------| | 0 | 0 | 15 | 25 | 0 | 1 | Group 2 |--------------------------------------------------| | 0 | 0 | 5 | 15 | 0 | 2 | Group 3 |-------|-------|-------|-------|-------|----------| | 0 | 1 | 5 | 10 | 0 | 0 | Group4 |-------|-------|-------|-------|-------|----------| | 1 | 0 | 5 | 15 | 1 | 0 | Group5 | 1 | 0 | 10 | 20 | 2 | 0 |Z tohoto výsledku ještě potřebuji dostat řádky s nejnižší hodnotou pos v dané skupině. Tj. chci záznamy:
|- id1 -|- id2 -|- min -|- max -|- pos -|-- set ---| | 0 | 0 | 10 | 20 | 0 | 0 | Group1 |--------------------------------------------------| | 0 | 0 | 15 | 25 | 0 | 1 | Group 2 |--------------------------------------------------| | 0 | 0 | 5 | 15 | 0 | 2 | Group 3 |-------|-------|-------|-------|-------|----------| | 0 | 1 | 5 | 10 | 0 | 0 | Group4 |-------|-------|-------|-------|-------|----------| | 1 | 0 | 5 | 15 | 1 | 0 | Group5Napadlo mě zduplikovat poddotaz, na jeden udělat poddotaz s agregační funkci MIN(pos) a provést další inner join na původní poddotaz na id1, id2, pos, ale nějak se mi to nezdá, nejde to udělat lépe?
|- id1 -|- id2 -|- min -|- max -|- pos -|-- set ---| | 0 | 0 | 10 | 20 | 0 | 0 | Group1 |--------------------------------------------------| | 0 | 0 | 15 | 25 | 0 | 1 | Group 2 |--------------------------------------------------| | 0 | 0 | 5 | 15 | 0 | 2 | Group 3 |-------|-------|-------|-------|-------|----------| | 0 | 1 | 5 | 10 | 0 | 0 | Group4 |-------|-------|-------|-------|-------|----------| | 1 | 0 | 5 | 15 | 1 | 0 | Group5 | 1 | 0 | 10 | 20 | 2 | 0 |
with grupovane as (
SELECT A.id1. A.id2, A.set, A.min, A.max, A.set
FROM `tbl`
`A`
INNER JOIN
( SELECT `id1`, `id2`, `set`, MAX(`max` - `min`) as `delta`
FROM `tbl`
GROUP BY `id1`, `id2`, `set`
) `B`
ON `A.id1` = `B.id1` AND `A.id2` = `B.id2` AND `A.set` = `B.set` AND (`A.max` - `A.min`) = `B.delta`
(
select * from grupovane C
inner join
(select id1, id2, set, min(pos) as minpos
from grupovane group bz id1, id2, set) d on C.id1 = D.id1 and `C.id2` = `D.id2` AND `C.set` = `D.set`
and C.pos = D.minpos
takhle ale připojíš původní tabulku 4x. Navíc pokud budou nějaké záznamy, kde bude stejný rozdíl a stejný pos, tak ti to pro skupinu vrátí dva záznamy.
Možná by to šlo řešit celkem elegantně aplikačně.
select * from tbl order by id1, id2, set, max - min desc, posa pak pro kombinaci id1, id2, set vzít vždy jen první řádek (pamatovat si hodnoty z minulého fetche a pokud se id1, id2 nebo set změní, tak je to řádek, co mě zajímá.
select * from tbl a
where not exists (
select 0 from tbl b
where a.id1 = b.id1 and a.id2 = b.id2 and a.set = b.set
and a.max - a.min < b.max - b.min and a.set > b.set
and a.max <> b.max and a.min <> b.min
)
ale počítá to s tím, že neexistují úplně duplicitní řádky - ty to nevyselectí.
pos, tedy aby při stejném MAX(max-min) se vybralo menší pos, tak zkus rozdíl max-min a pos sloučit do jedné hodnoty a tím říct přesné pořadí – něco jako MAX((max - min) + (1 - pos/(SELECT MAX(pos) FROM tbl))) (předpokládám jen celočíselné sloupce). Pro lepší výkon by se mohlo hodit tuhle hodnotu předpočítávat do pomocného sloupečku a dát nad to index.
Tiskni
Sdílej: