HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.
Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.
Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.
Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.
Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.
pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.
Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.
… více »Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)
Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.
Řešení dotazu:
) - to už teď trvá cca 17 sekund, což je neúměrně hodně.
Vlastní spojení: 0.001 s Vyhledávání (WHERE t1.sloupec = 'neco' AND t2.sloupec = 'necojine' za použití indexů tzn. dotazy typu =, <, > ...: 0.05 s Řazení podle sloupce výchozí tabulky: 0.001 s Řazení podle sloupce druhé tabulky (left join druha_tabulka): 5 s Kombinace řazení: 4 sTaké jsem vyzkoušel, že InnoDB je cca 2x rychlejší než MyISAM na hledání a ROW FORMAT InnoDB COMPACT je o trochu rychlejší než InnoDB REDUNDANT. Otázka je jasná: jak urychlit to řazení? RIGHT JOIN apod. řešení nepřipadají v úvahu, protože těch tabulek se bude spojovat více. Také by asi bylo dobré aplikovat podmínky WHERE do join podmínek (ON (t1.a = t2.a AND t1.sloupec = 'neco' ...)), nicméně to asi nepůjde zrealizovat, protože by to zachovalo všechny řádky a nevěděl bych, které existují a u kterých je NULL z důvodu nesplnění přidaných podmínek a INNER JOIN na druhé straně omezuje jinak - nicméně tohle mě tolik netrápí, protože je to na rozdíl od řazení velice rychlé i se standardním WHERE.
Také by asi bylo dobré aplikovat podmínky WHERE do join podmínek (ON (t1.a = t2.a AND t1.sloupec = 'neco' ...)), nicméně to asi nepůjde zrealizovat, protože by to zachovalo všechny řádky a nevěděl bych, které existují ...A nemá se to náhodou psát takto?
... ON t1.a = t2.a WHERE t1.sloupec = 'neco' ...
(pokud teda není součást té podmínky OR/AND IS NULL)Právě že je, proto se bez where neobejdu.
Explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ppp index NULL name 767 NULL 309090 Using index; Using temporary; Using filesort 1 SIMPLE t eq_ref PRIMARY PRIMARY 767 ppp.prvni.name 1
select name from ppp left join tabulka t on (ppp.name = t.name) order by t.sloupec1 limit 30
SELECT name FROM
(
SELECT name, sloupec1 as razeni FROM tabulka ORDER BY sloupec1 LIMIT 30
UNION
SELECT name, NULL razeni FROM ppp WHERE name NOT EXIST IN (SELECT name FROM tabulka) LIMIT 30
)
ORDER BY razeni LIMIT 30
CREATE TABLE `tabulka` ( `lid` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL, `sloupec1` tinyint(1) DEFAULT NULL, PRIMARY KEY (`lid`), KEY `sloupec1` (`sloupec1`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin select .... left join tabulka ... order by tabulka.sloupec1 desc - podtržená část způsobí zpomalení na více než 30 s. explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ppp ALL NULL NULL NULL NULL 306409 Using temporary; Using filesort 1 SIMPLE tabulka ref id id 4 ppp.ppp.id 1A je jedno jestli je id unikátní nebo ne (tady není, protože mi to umožní do budoucna spojení 1:N).
SELECT name FROM ( SELECT name, sloupec1 as razeni FROM tabulka tab LIMIT 30 UNION SELECT name, NULL razeni FROM ppp pp WHERE name NOT IN (SELECT name FROM tabulka) LIMIT 30 ) t ORDER BY razeni LIMIT 30Toto je bleskové, ale nebude to funkční - mysql mi nedovolí order by u selectu v unionu. Také by to bylo nefunkční pro řazení podle více sloupců.
SELECT name, FROM
(
(SELECT name, sloupec1 as razeni, NULL FROM tabulka LIMIT 30)
UNION
(SELECT name, NULL, sloupec1 as razeni2 FROM nevimco LIMIT 30)
UNION
(SELECT name, NULL, NULL FROM ppp pp WHERE name NOT IN (SELECT name FROM tabulka) LIMIT 30)
) t
ORDER BY razeni, razeni2 LIMIT 30
jak by to mělo fungovat: name sloupec1 sloupec2 a 1 1 b 2 1 c 3 1 d 4 1 e 5 1 f 6 2 g 6 3 h 6 4 i 7 5 j 8 5 k 9 5 l 10 5 m 11 6 n 12 7 o 13 8 p 14 9 jenže ono to nejprve seřadí sloupec1, pak sloupec2 - tzn. pokud budou ve sloupci1 někde stejné hodnoty, pak ty sloupec2 nemusí vůbec ovlivnit a jen přidá další.Nicméně tento typ dotazu určitě použiju při řazení podle jednoho sloupce (kde je zrychlení ze 4.5 na 0.001s). Díky.
(SELECT id, f1, f2, f4 NULL FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id, f1, f2, NULL NULL NULL FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id, NULL, NULL, f4 FROM t1 INNER JOIN t2 USING (id) ORDER BY f1, f2,3 LIMIT 30)
UNION
(SELECT id FROM mastertable WHERE id NOT IN (select id from t1) AND id NOT IN (select id from t2) ORDER BY f1, f2,3 LIMIT 30)
Nejlepší v tomdle případě by bylo vytvořit temporary table a do ní to postupně sypat a skončit v okamžiku,
kdy je v ní dostatek záznamů.
from t1 inner join t2
from t1 not in t2
from t2 not in t1
from t not in t1 and not in t2
S víc tabulkama to už začne bejt mazec, ale dá se to poskládat automaticky. Hlavně bych pak místo
unionu použil temporary table, protože v ní můžeš počítat počet vložených záznamů a až jich bude dost,
tak nepokračovat ve vkládání dalších subdotazů.
Tiskni
Sdílej: