Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
"user1";"1";"7" "user2";"2";"6" "user3";"3";"5" "user4";"3";"4" "user5";"4";"3" "user6";"4";"2" "user7";"4";"1"Pokud chci 3 záznamy řazené podle 2. sloupce a potom 3. sloupce, tak to musí vrátit user1, user2, user4. Nepřišel jsem na optimální algoritmus jak dostat 3 záznamy aniž bych musel přečíst celý 1. soubor, celý 2. soubor a pak to limitovat až ve výsledku, což je ale velice datově a výpočetně náročné pro větší množství dat. Určitě už někdo podobný problém řešil. Prosím o pomoc/popis algoritmu pro toto řazení.
sloupec1+sloupec2 = soubor1, řazený vzestupně podle 2. sloupce sloupec1+sloupec3 = soubor2, řazený vzestupně podle 3. sloupce "user1";"1";"7" "user2";"2";"6" "user3";"3";"5" "user4";"3";"4" "user5";"4";"3" "user6";"4";"2" "user7";"4";"1" 1. z prvního souboru vyberu první 3 => user1, user2, user3 2. z druhého souboru vyberu první 3 => user7, user6, user5 3. spojím a zobrazím všechna data "user1";"1";"7" "user2";"2";"6" "user3";"3";"5" "user7";"4";"1" "user6";"4";"2" "user5";"4";"3" 4. omezím na první 3 => user1, user2, user3 = CHYBANeboť primárně řadím podle 2. sloupce, tak user3 a user4 jsou nerozhodně (oba = 3), pomocí druhého sloupce ale zjistím, že user4 je před user3, což se ale při tomto algoritmu neprojeví.
n plus všechny, co mají stejný druhý sloupec jak n-tý
což je ale velice datově a výpočetně náročné pro větší množství datProto je dobré mít ta data v dobře zpracovatelném formátu a udržovat další informace pro jejich rychlé prohledávání a propojování. A tak vznikly databáze.
Nicméně nakonec asi budu řadit tímto algoritmem:1. vyberu n řádků ze zdroje 1 .. - zjistím že m z n řádků nemají jednoznačné pořadí, tak prohledám zdroj 1 znovu a vyberu z n řádky které nemají jednoznačné pořadí + řádky s tímto "indexem", ale za limitem dotazu a postoupím dalšímu zdroji 2. to samé .......
sloupec1+sloupec2 = soubor1, řazený vzestupně podle 2. sloupcetzn. ze vuci sobe nejsou serazeny vubec (teda ano 1. sloupcem) -> to musis imho projit vsechny zaznamy ...
sloupec1+sloupec3 = soubor2, řazený vzestupně podle 3. sloupce
jmeno; cislo; cislo2
-----------------------
"user1";"1";"7"
"user2";"2";"6"
"user3";"3";"5"
"user4";"3";"4"
"user5";"4";"3"
"user6";"4";"2"
"user7";"4";"1"
order by cislo, cislo2 limit 3 = user1, user2, user4
teď ten algoritmus:
- select cislo ... order by cislo limit 3
1 2 3
- select jmeno ... where cislo in (1,2,3) => user1, user2, user3, user4
- pak zjistim ze sporne cislo je u user3 a user4
- select jmeno ... where jmeno in ("user3", "user4") order by cislo2 limit3 => user4, user3 => prerovnam puvodni vyber "user1, user2, user3, user4" na "user1, user2, user4, user3" a omezim na 3 => "user1, user2, user4"
Zásadní vada na kráse je ale ta že tento algoritmus je docela složitý.
Většinou se bude jednat o různé typy relačních databází.Tak pri dotaze z kazdej databazy treba prvych n riadkov utriedenych podla vyslednych ziadanych stlpcov. A nasledne utriedit vsetky takto ziskane riadky (pri 3 databazach teda 3*n riadkov). To je algoritmus uvedeny uz v otazke (a takisto posledny sposob uvedeny v 1. komentari). Ale to utriedenie musi byt vsade rovnake ako vysledne ziadane.
Tiskni
Sdílej: