Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
Joel Severin v diskusním listu LKML představil svůj projekt linuxového jádra ve WebAssembly (Wasm). Linux tak "nativně" běží ve webovém prohlížeči. Potřebné skripty pro převod jsou k dispozici na GitHubu.
Byla vydána nová verze 25.10.31 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
O víkendu probíhá konference OpenAlt 2025 (Stream). Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.
Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.
Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
#define EVENT_SIZE  ( sizeof (struct inotify_event) )
#define BUF_LEN     ( 1024 * ( EVENT_SIZE + 16 ) )
int main(int argc, char **argv)
{
	int length, i = 0;
	int fd;
	int wd;
	char buffer[BUF_LEN];
	fd = inotify_init();
	if (fd < 0) {
		perror("inotify_init");
	}
	wd = inotify_add_watch(fd, "/home/tomesh/Dropbox/C/sync", IN_ALL_EVENTS);
	if (length < 0) {
		perror("read");
	}
	while (1) {
		length = read(fd, buffer, BUF_LEN);
		struct inotify_event *event = (struct inotify_event *) &buffer[ i ];
		if (event->len) {
			if (event->mask & IN_CREATE) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was created.\n", event->name);
				} else {
					printf("The file %s was created.\n", event->name);
				}
			}
			if (event->mask & IN_DELETE) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was deleted.\n", event->name);
				} else {
					printf("The file %s was deleted.\n", event->name);
				}
			}
			if (event->mask & IN_MODIFY) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was modified.\n", event->name);
				} else {
					printf("The file %s was modified.\n", event->name);
				}
			}
			if (event->mask & IN_MOVED_FROM) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was moved from.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was moved from.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_MOVED_TO) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was moved to.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was moved to.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_MOVE_SELF) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %ds was itself moved.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was itself moved.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_DELETE_SELF) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was itself deleted.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was itself deleted.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_OPEN) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was opened.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was opened.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_ATTRIB) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d attr was changed.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d attr was changed.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_ACCESS) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was accessed.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was accessed.\n", event->name, event->cookie);
				}
			}
		}
	}
	(void) inotify_rm_watch(fd, wd[0]);
	(void) close(fd);
	exit(0);
}
            Řešení dotazu:
  i += EVENT_SIZE + event->len;
            
#define EVENT_SIZE  ( sizeof (struct inotify_event) )
#define BUF_LEN     ( 1024 * ( EVENT_SIZE + 16 ) )
int main(int argc, char **argv)
{
	int length, i;
	int fd;
	int wd;
	char buffer[BUF_LEN];
	struct inotify_event *event;
	fd = inotify_init();
	if (fd < 0)
		perror("inotify_init");
	wd = inotify_add_watch(fd, "/home/tomesh/Dropbox/C/sync", IN_ALL_EVENTS);
	while (1) {
		i = 0;
		length = read(fd, buffer, BUF_LEN);
		if (length < 0)
			perror("read");
		if (length == 0)
			sleep(1);
		
		while (i < length) {
			
			event = (struct inotify_event *) &buffer[i];
			
			if (event->mask & IN_CREATE) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was created.\n", event->name);
				} else {
					printf("The file %s was created.\n", event->name);
				}
			}
			if (event->mask & IN_DELETE) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was deleted.\n", event->name);
				} else {
					printf("The file %s was deleted.\n", event->name);
				}
			}
			if (event->mask & IN_MODIFY) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s was modified.\n", event->name);
				} else {
					printf("The file %s was modified.\n", event->name);
				}
			}
			if (event->mask & IN_MOVED_FROM) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was moved from.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was moved from.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_MOVED_TO) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was moved to.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was moved to.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_MOVE_SELF) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %ds was itself moved.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was itself moved.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_DELETE_SELF) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was itself deleted.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was itself deleted.\n", event->name, event->cookie);
				}
			}
			
			if (event->mask & IN_ATTRIB) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d attr was changed.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d attr was changed.\n", event->name, event->cookie);
				}
			}
			if (event->mask & IN_ACCESS) {
				if (event->mask & IN_ISDIR) {
					printf("The directory %s with cookie %d was accessed.\n", event->name, event->cookie);
				} else {
					printf("The file %s with cookie %d was accessed.\n", event->name, event->cookie);
				}
			}
			i += sizeof(struct inotify_event) +event->len;
		}
	}
	(void) inotify_rm_watch(fd, wd);
	(void) close(fd);
	exit(0);
}
            
        Tiskni
            
                Sdílej: