Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Snažím se v C napsat program, kde jsou 2 procesy propojený rourou, přičemž bych potřeboval dosáhnout takovýho chování, aby když od "zdroje" nepřicházejí žádná data, příjemce usnul a když nějaká data dorazí, tak aby se vzbudil. Snažim se to řešit pomocí select()
, ale nějak mi to nefunguje...
sesmolil jsem toto:
#include <stdio.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i, fd[2]; pid_t pid; fd_set rfds; struct timeval tv; int retval; pipe(fd); pid = fork(); if (pid > 0) { /* parent */ close(fd[0]); while(1) { i = random()%10; write(fd[1], &i, sizeof(int)); sleep(1); } } else { /* child */ close(fd[1]); FD_ZERO(&rfds); FD_SET(fd[0], &rfds); tv.tv_sec = 0; tv.tv_usec = 500; while(1) { retval = select(1, &rfds, NULL, NULL, &tv); if (retval == -1) perror("select()"); else if (retval) { printf("Data\n"); read(fd[0], &i, sizeof(int)); } else printf("No data\n"); } } return(0); }
Problém je ale ten, že to na data v rouře vůbec nereaguje (výsledkem je neustále se opakující výpis "No data"). Může mi někdo poradit, co dělám špatně, nebo jak tenhle problém případně řešit jinak? Díky
retval = select(1, &rfds, NULL, NULL, &tv);musí tam být něco jako
retval = select(fd[0]+1, &rfds, NULL, NULL, &tv);
Super, to je ono, díky moc. (Můžu se ještě s dovolením zeptat PROČ to tak musí být?).
Jelikož read() blokuje, může být nejjednodušší řešení vůbec to neřešit. Zavoláš-li read() a nejsou k disposici data, proces se tím dobrovolně vzdá svého timeslice.
Dá se to považovat za uspání, nebo se to nějak liší od toho, když v procesu pustim sleep()
. Jde o to, že to musí vyhovovat tomuto zadání:
...Proces S třídí tyto čísla. rychlostí u komparací za jednotku času a zasílá nejnižší dostupná čísla procesu C (pokud nejsou k dispozici, je proces C uspán)...
Respektivě, můžu se na tebe odkazovat při obhajově své práce?
Pokud ti někdo napíše, že máš proces uspat, tak možná chce, abys ho uspal...No já bych se určitě s nějakým select() ne**** a argumentoval bych, že spí v read() takže jsem splnil zadání
Tiskni
Sdílej: