Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.
Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
su -c "./vlastni_skript | ./binarka -argument hodnota jiná &>> výstup" $1 &V $1 je UID. A když je shell uživatele /bin/bash, je potom ve výstupu ps tohle:
user 6711 0.0 0.0 35860 1276 pts/0 S 09:25 0:00 su -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup user user 6713 0.0 0.0 9564 1296 pts/0 S 09:25 0:00 \_ bash -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup user 6714 0.0 0.0 9580 892 pts/0 S 09:25 0:00 \_ bash -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup user 6743 0.0 0.0 4340 576 pts/0 S 09:25 0:00 | \_ sleep 10 user 6715 126 3.5 1365364 143920 pts/0 Sl 09:25 0:17 \_ /X/Y/Z/aaa -a b cNa tom se mi nelíbí, že je tam nějak moc procesů. Jinak to funguje správně, skript každých 10 sekund zkontroluje, jestli existuje soubor, a když ano, vypíše ho na stdout a smaže. Jeho stdout je pajpnutý do té binárky, která to přijímá jako příkazy. A její stdout a stderr jsou přesměrované do souboru. (Mimochodem, neznáte nějakou shellovou verzi select()? Abych nemusel mít v tom skriptu nekonečnou smyčku, ale jen spustit něco, co se mi ukončí tehdy, kdy ten soubor začne existovat nebo přestane být prázdný? Díky) (Jo, ještě po ukončení té binárky tam všechny ostatní procesy zůstanou běžet, ale s tím se umím vyrovnat, zabiju je spolu s ukončením binárky.) No, a když jsem změnil shell uživatele na /bin/sh, je po spuštění v ps tohle:
user 6818 0.0 0.0 3956 584 pts/0 S 09:34 0:00 /bin/sh ./XXX.sh user 6820 0.0 0.0 4340 576 pts/0 S 09:34 0:00 \_ sleep 10 user 6819 196 3.2 1358692 130612 pts/0 Sl 09:34 0:15 /X/Y/Z/aaa -a b cTo se mi líbí, jelikož je to už podstatně méně zbytečných procesů. Ale tohle nefunguje tak, jak má. Výstup té binárky jde na terminál, ze kterého jsem spustil skript, ve kterém je ten řádek se su na začátku. A když je uživatelův shell /bin/false (jak často vidím u některých démonů), nespustí se vůbec nic. Příčinu hádám na nedostatek vědomostí u mě. Prosím vás, neměli byste teda nějaké řešení, jak to udělat celé jinak, případně nějak, aby mi to s /bin/sh korektně přesměrovalo výstup? Díky
su -c spouští příkaz v uživatelově shellu. Což, jak jsi už zjistil, může být kdeco. Je zapotřebí vzít celou tu konstrukci, kterou cpeš su -c, dát ji do skriptu (jehož interpreter je pak dán shbangem) a spouštět ten skript.
Jinak &>> je bashismus (posixová konstrukce je >>out 2>&1), tudíž není divu, že to v jiném shellu nefunguje.
#/bin/sh while true; do test -e soubor && (cat soubor; rm soubor); sleep 10; doneAle jestli ono nebude spíš jednodušší napsat Céčkového démona... Nějak takového?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int fd = open("soubor", O_RDONLY);
// nějaký dup nebo dup2
pid_t forkpid = fork();
if(forkpid == 0)
{
// nějaký dup nebo dup2, abych dosáhl toho, že tenhle potomek bude mít na vstupu to, co rodič vyplivne na výstup
exec();
}
else
{
// ještě nějaký dup/2?
for(;;)
{
select();
printf();
if (access("/proc/forkpid", F_OK) == -1) exit(0);
// něco dalšího na práci s tím souborem/rourou, kam budou chodit příkazy
}
}
return 0;
}
Ale mám problém s těmi dupy a selectem. Mohl by mi s tím někdo pomoct, prosím?
Na ty dupy určitě něco najdu, ale tím selectem si nejsem jistý. Zkoušel jsem to už párkrát a nikdy mi ten select() nefungoval. Fungoval tak, jak jsem chtěl, vždycky jenom na stdin. Když jsem po něm chtěl vědět, jestli jsou nějaká data v externím souboru, nikdy mi to neřekl. Ale to je asi chyba na mojí straně, v nedostatečně pozorném přečtení dokumentace. Mohl byste mi někdo dát příklad, jak to s tím select()em udělat, prosím? Díky
Tiskni
Sdílej: