Počítačová hra Factorio (Wikipedie) nově běží nativně na ARM64 Linuxu a headsetu Steam Frame.
Fugleramme, v překladu 'ptačí rámeček', je open-source projekt postavený na Raspberry Pi, který pomocí lokální umělé inteligence BirdNET-Go rozpoznává ptačí druhy podle jejich zpěvu a na displeji následně zobrazuje koláž tvořenou odpovídajícími ilustracemi. Databáze obsahuje přes 800 ručně vybraných historických přírodovědných ilustrací více než 400 druhů ptáků.
… více »Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 18.0. Přidáno bylo 13 007 nových znaků. Celkově jich je 172 808. Přibylo 9 nových Emoji.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 169 (pdf).
Byla vydána nová verze 6.4 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.
Německý kancléř Friedrich Merz (CDU) se během debaty s finalisty studentské vědecké soutěže Jugend forscht vyjádřil pro konec anonymity na internetu a vyslovil názor, že pro uživatele Internetu by měla platit podobná právní odpovědnost jako pro novináře tradičních médií. Na dotaz studenta, jak by se tedy povinnost uvádět pravé jméno slučovala s prací investigativních novinářů nebo ochranou jejich zdrojů, Merz neodpověděl, ve své
… více »Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.
Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.
Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.
Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.
const char *dev = "/dev/input/by-id/usb-Gaming_KB_Gaming_KB-event-kbd";
fd = open(dev, O_RDONLY);
while (1) {
n = read(fd, &ev, sizeof ev);
if (ev.type == EV_KEY) {
// nějaké zpracování
}
}
Chtěl bych něco takovéhoto (pro libovolný, při spuštění daný, počet klávesnic, čili místo dev1, dev2 by byl nějaký seznam, nebo Vector, nebo tak něco, ale to už taky zvládnu)
const char *dev = "/dev/input/by-id/usb-Gaming_KB_Gaming_KB-event-kbd";
const char *dev2 = "/dev/input/by-id/usb-neco-jineho-event-kbd";
fd = open(dev, O_RDONLY);
fd2 = open(dev2, O_RDONLY);
while (1) {
n = read(fd, &ev, sizeof ev);
n2 = read(fd2, &ev2, sizeof ev2);
if (n1) {
if (ev.type == EV_KEY) {
// nějaké zpracování
}
}
if (n2) {
if (ev2.type == EV_KEY) {
// nějaké podobné zpracování
}
}
}
ale dělat to naráz (neblokující), nečekat zablokovaný na jedné z klávesnic ....
nebo ještě lépe blokovat, dokud nebude aspoň jedna stisknutá, abych se zbytečně nemotal ve smyčce a nepožíral planě výkon
Asi bych to zvládnul nějak přez vlákna, ale to mi přijde s kanonem na vrabce
Řešení dotazu:
poll() nebo select()? Zdá se mi, že obě dokážou číst z více file descriptorů naráz, ale už jsem je dlouho nepoužil.
Druhá možnost je std::thread pro každou klávesnici. (Ale pro use case shift na jedné a písmeno na druhé je mnohem lepší poll().)
Tiskni
Sdílej: