Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.
Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.
Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).
Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.
Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou
… více »Pro testování byl vydán 4. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.
TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.
Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.
Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.
Máme v plánu umožnit filtrování poradny pomocí štítků, což by mělo fungovat jako náhrada za původní strukturu poraden (bug #1091).
Naše snahy mají ovšem vadu na kráse. Chceme umožnit, aby uživatel mohl zadat podobný filtr:
(nvidia OR ati) AND ubuntu AND NOT fglrx
Filtrování může takto fungovat díky štítkům. Potýkáme se ovšem s tím, že vyhledávání trvá příliš dlouho (typicky 5 sekund) a je to velká zátěž na databázi. Našli by se mezi vámi odborníci, kteří by dokázali poradit, jak věc zefektivnit?
Zde najdete dump databáze (3,2 MB), kde jsou dvě tabulky - relace a stitkovani. U relace je důležité cislo (identifikuje "stránku" v systému, se kterou kód může dále pracovat), potomek nesoucí číslo datové položky v systému, typ_potomka, kde nás zajímají jen relace s hodnotou 'P', a predchozi, pomocí kterého se můžeme omezit na Linuxovou poradnu (číslo 49490).
V tabulce stitkovani jsou sloupečky typ (opět nás zajímá vždy hodnota 'P'), cislo (které se musí provázat se sloupcem relace.potomek - pozor, ne s relace.cislo!) a stitek obsahující označení samotného štítku.
Jeden z našich pokusů o vyhledání relací, které splňují podmínku (nvidia OR ati) AND ubuntu, vypadá takto:
select count(R.cislo) from relace R where R.typ_potomka='P' and R.predchozi=49490 and exists (select S.cislo from stitkovani S where S.typ = 'P' and S.cislo = R.potomek and (S.stitek='nvidia' or S.stitek='ati')) and exists (select S.cislo from stitkovani S where S.typ = 'P' and S.cislo = R.potomek and S.stitek='ubuntu');
Vrátí celkem 380 relací za cca 5 sekund, resp. o něco méně při opakování.
Tiskni
Sdílej:
$ time mysql -u ab ab < orig.sql
count(R.cislo)
380
real 0m1.936s
user 0m0.011s
sys 0m0.007s
$ time mysql -u ab ab < new.sql
count(R.cislo)
380
real 0m0.273s
user 0m0.012s
sys 0m0.004s
SQL prikaz:
select
count(R.cislo)
from
relace R
LEFT JOIN stitkovani nvidia ON (nvidia.cislo = R.potomek AND nvidia.stitek='nvidia' AND nvidia.typ = 'P')
LEFT JOIN stitkovani ati ON (ati.cislo = R.potomek AND ati.stitek='ati' AND ati.typ = 'P')
LEFT JOIN stitkovani ubuntu ON (ubuntu.cislo = R.potomek AND ubuntu.stitek='ubuntu' AND ubuntu.typ = 'P')
LEFT JOIN stitkovani fglrx ON (fglrx.cislo = R.potomek AND fglrx.stitek='fglrx' AND fglrx.typ = 'P')
WHERE
R.typ_potomka = 'P' AND R.predchozi=49490 AND
((nvidia.cislo IS NOT NULL OR ati.cislo IS NOT NULL) AND ubuntu.cislo IS NOT NULL AND NOT fglrx.cislo IS NOT NULL)
A pokud si chceme trochu zaprasit...
$ time mysql abc_test < new.sql
count(R.cislo)
380
real 0m0.558s
user 0m0.016s
sys 0m0.004s
$ time mysql abc_test < q.sql
count(r.cislo)
380
real 0m0.187s
user 0m0.008s
sys 0m0.004s
$ cat q.sql
select
count(r.cislo)
from
(
select
s.cislo
from
stitkovani s
where
s.typ = 'P'
and s.stitek in ('nvidia', 'ati', 'ubuntu', 'fglrx')
group by
s.cislo
having
bit_or(s.stitek = 'nvidia' or s.stitek = 'ati') = 1
and bit_or(s.stitek = 'ubuntu') = 1
and bit_or(s.stitek = 'fglrx') = 0
) s
join relace r on (s.cislo = r.potomek)
where
r.typ_potomka = 'P'
and r.predchozi = 49490
;
SELECT R.cislo, COUNT(s.stitek)
FROM
relace R
LEFT JOIN stitkovani s ON (s.cislo = R.potomek AND s.typ = 'P')
WHERE
R.typ_potomka = 'P' AND R.predchozi=49490 AND
s.stitek IN ('ati', 'nvidia', 'ubuntu', 'fglrx')
GROUP BY R.cislo
HAVING count(s.stitek) = 4
Nezkoušel jsem to, jen mě to tak napadlo. Ale nenapadá mě, jak do toho zakomponovat ty ostatní operace (or, not).