Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
Byla publikována Výroční zpráva Blender Foundation za rok 2024 (pdf).
Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.
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: