PGSimCity (GitHub) je webová 3D vizualizace vnitřního fungování databázového systému PostgreSQL v podobě města. Vytvořena pomocí umělé inteligence.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-2.0 a 24.04-1.4. Nová verze 24.04-2.0 již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
Byly zveřejněny informace o kritické zranitelnosti CVE-2026-64600 pojmenované RefluXFS (technické detaily) v XFS. Je tam již od verze Linuxu 4.11, tj. rok 2017. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel může editovat libovolný soubor, například klidně zrušit rootovské heslo v /etc/passwd. Videoukázka na Vimeo. V upstreamu je zranitelnost opravena.
OpenAI / ChatGPT má dnes výpadky (OpenAI Status, DownDetector).
Poskytovatel hostingu svobodných/open-source projektů Codeberg po hlasování na valné hromadě vydal stanovisko k využívání LLM. Kvůli vytěžování infrastruktury a rostoucím cenám hardwaru, ale také hrozbám pro spolupráci v komunitě se k LLM staví kriticky. Nebude poskytovat hosting projektů vytvářených LLM agenty.
Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.
Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.
AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).
Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.
… více »Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.
no me to neripada ze by to postradalo smysl protoze prirazuju TCP spojeni k soketu a ne naopak
První sice v programu vytváříte socket, ale ze síťového hlediska socket jednoznačně určuje dané spojení, tedy socket je vytvořen pro dané spojení, ne naopak.
Co se týče požadavku na "znovupoužití" socketu tak mi to stejně jako ostatním zde přijde jako nesmysl (a stejně jako je by mě zajímalo, k čemu je to údajně potřeba...). Při práci se souborem se taky po provedení I/O operací nad souborem nesnažíte pro soubor aktuálně používaný filedescriptor znovu použít, aniž byste soubor předem zavřel. A zcela stejně se pracuje se sockety.
fd = open(...); dup2(fd, STDOUT_FILENO); close(fd);Stejně je tomu i se sockety, zavřete-li je pomocí
close(), uvolní se tím handle (číslo) a případně se i ukončí spojení (byl-li ten handle poslední). Pokud byste ale mermomocí trval na tom, že po ukončení spojení chcete znovu použít stejný handle (stejné číslo) pro nové spojení, není nic jednoduššího (tedy nejde-li o multithreadovou aplikaci, která těch souborů nebo spojení otevírá průběžně spousty, pak by vám ho mohl mezitím jiný thread obsadit):
close(sd);
int tsd = socket();
if (tsd != sd) {
dup2(tsd, sd);
close(tsd);
}
connect(sd, ...);
netcat -l -p 9999'):
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netdb.h>
#include <iostream>
int main()
{
struct addrinfo* info;
struct addrinfo hint
= { 0, PF_INET, SOCK_STREAM, SOL_TCP, 0, NULL, NULL, NULL };
getaddrinfo("localhost", "9999", &hint, &info);
int sd = socket(info->ai_family, info->ai_socktype, info->ai_protocol);
dup2(sd, STDERR_FILENO);
close(sd);
connect(STDERR_FILENO, info->ai_addr, info->ai_addrlen);
std::cerr << "ahoj" << std::endl;
return 0;
}
Důležité upozornění: milé děti, výše uvedená ukázka je odstrašující příklad toho, jak se programovat nemá. Nechcete-li se smažit v pekle, důkladně ošetřete všechny návratové hodnoty a chybové stavy…
Tiskni
Sdílej: