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.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
time caller: messageA dale vytvorit knihovnu s funkcí pro zápis do této roury. dalším parametrem daemona je interval, ve kterém daemon zapisuje vlastní statistiku (počet obdržených zpráv) do syslogu. Daemon jsem napsal pomoci fce select(), ale nemuzu odstranit chybu, ktera spociva v ukonceni programu pote, co si precte prvni zpravu z roury a korektne ji zapise do zadaneho logu. V nasledujicim prubehu WHILE funkce select vrati hodnotu vetsi nez nula, jakoby dosla dalsi zprava, ale funkce read vrati nulu. Zajimalo by me, kde je chyba. Je to nekde v souboru s rourou, nebo v samotnem spatnem pouziti select ? Kod daemona:
/* #define DEFAULT_INTERVAL 2 #define SIZE 256 char* get_current_time() { time_t current_time; char* c_time_string; int j; current_time = time(NULL); /* Obtain current time as seconds elapsed since the Epoch. */ if (current_time == ((time_t)-1)) { (void) fprintf(stderr, "Failure to compute the current time."); exit(EXIT_FAILURE); } c_time_string = ctime(¤t_time); /* Convert to local time format. */ for ( j = 0; c_time_string[j] != '\n'; j++) /*Get rid EOL*/ ; c_time_string[j] = '\0'; if (c_time_string == NULL) { (void) fprintf(stderr, "Failure to convert the current time."); exit(EXIT_FAILURE); } return c_time_string; } void print_help() { printf("Programme must be run with with 2 arguments:\n" "argv[1] is a name of the file which the daemon wil be writting in\n" "argv[2] is an interval the daemon will be sending logs into syslog\n"); } int main(int argc, char *argv[]) { if (argc != 3) { print_help(); exit(1); } int c; while((c = getopt(argc, argv, "h")) != -1) { switch (c) { case 'h': print_help(); break; case '?': printf("try -h for help"); break; default: break; } } FILE *fw; int fp; char buf[SIZE]; char *linesep; int line, i, count; buf[0] = '\0'; // in case there is nothing to read buf[SIZE] = '\0'; // guarentee a end-of-line fd_set readfds; struct timeval timeout; int r; int interval = atoi(argv[2]); openlog ("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); fprintf(stderr, "Daemonizing...\n"); //daemon(0,0); unlink("/tmp/pb173_syslog"); mkfifo("/tmp/pb173_syslog", S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH); fp = open("/tmp/pb173_syslog", O_RDONLY | O_NONBLOCK); if(fp == -1) { syslog (LOG_CRIT, "Could not open the pipe: %s\n", strerror(errno)); exit(1); } fw = fopen(argv[1], "a+"); if(fw == NULL) { openlog ("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); syslog (LOG_CRIT, "Error openning logfile : %s\n", strerror(errno)); exit(1); } timeout.tv_sec = interval; timeout.tv_usec = 0; count = 0; line = 0; r = 0; while(1) { FD_ZERO(&readfds); FD_SET(fp,&readfds); r = select(fp+1, &readfds, NULL, NULL, &timeout); if (r == -1) { openlog ("daemon", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); syslog (LOG_CRIT, "Error openning logfile : %s\n", strerror(errno)); close(fp); fclose(fw); exit(1); } if (r == 0) { timeout.tv_sec = interval; timeout.tv_usec = 0; setlogmask (LOG_UPTO (LOG_NOTICE)); openlog ("daemon", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); syslog (LOG_NOTICE, "Number of received messages: %d\n", count ); closelog (); } else { line += (r = read(fp, buf+line, SIZE-line-1)); if (r == 0) { close(fp); fclose(fw); exit(EXIT_SUCCESS); } buf[line] = '\0'; if (line && (linesep = strstr(buf, "\n"))) { *linesep = '\0'; char *caller; int callerLength; char *message; caller = strtok(buf, "^"); callerLength = strlen(caller); message = caller + callerLength + 1; fprintf(fw, "%s %s: %s\n", get_current_time(), caller, message); fflush(fw); memmove(buf, linesep + 1, (line = strlen(linesep + 1)) + 1); count++; } } } close(fp); fclose(fw); exit(EXIT_SUCCESS); }A kod funkce, ktera zapisuje do roury:
int sl_log(const char *caller, const char* message) { int fp; fp = open("/tmp/pb173_syslog", O_WRONLY); char *msg; if (fp == -1) { perror("Could not open the pipe\n"); exit(1); } asprintf(&msg, "%s^%s\n", caller, message); write(fp, msg, strlen(msg)); free(msg); close(fp); return 0; }
Řešení dotazu:
Tiskni
Sdílej: