Společnosti Ticketmaster byla odcizena databáze s osobními údaji (jméno, adresa, telefonní číslo a část platebních údajů) 560 miliónů zákazníku. Za odcizením stojí skupina ShinyHunters a za nezveřejnění této databáze požaduje 500 tisíc dolarů [BBC].
Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.
Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.
David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …
Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.
Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.
V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.
typedef struct elem { char name[MAX]; struct elem *next; } ELEM; ELEM *insertionsort(ELEM *oldl) { struct elem head; ELEM *newl, *n, *t, *u; newl = &head; newl->next = NULL; if (oldl == NULL) return NULL; for (t = oldl; t != NULL; t = u) { u = t->next; for (n = newl; n->next != NULL; n = n->next) if (strcmp(n->next->name, t->name) > 0) break; t->next = n->next; n->next = t; } return newl->next; }Selection sort - hledá se uzel, jehož ukazatel next ukazuje na největší prvek. Největší prvek je vypuštěn (prev->next = t->next) a následně připojen na začátek nového seznamu. Pokud je ve starém seznamu největší prvek na začátku, je přesunut na konec, přičemž je třeba posunout začátek. Funkce vrací adresu starého seznamu.
typedef struct e { int x; struct e *next; } E; E *selectionsort(E *oldl) { E *newl, *prev, *p, *t; newl = NULL; if (oldl == NULL) return NULL; while (oldl->next != NULL) { t = p = prev = oldl; for (; p->next != NULL; p = p->next) if (p->next->x > prev->next->x) prev = p; if (t->x > prev->next->x) { oldl = oldl->next; prev = p; p->next = t; t->next = NULL; } t = prev->next; prev->next = t->next; t->next = newl; newl = t; } oldl->next = newl; return oldl; }Z hlediska rychlosti jsou obě funkce vhodné maximálně pro deset tisíc prvků. Základ funkcí jsem převzal z knihy Algorithms in C od Roberta Sedgewicka.
Tiskni Sdílej:
typedef struct elem { char name[MAX]; struct elem *next1; struct elem *next2; ... } ELEM;?
struct elem { char name[MAX]; struct elem *next; }; typedef struct elem ELEM;Ve velkých projektech je asi lepší typedef nepoužívat (jak radí Linus), ale já jsem si zkoušel naprogramovat jen takovou kravinku.