Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »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.