Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.
Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.
Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.
… více »Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.
Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.
Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 2 GB varianty o 12,50 dolarů. Nově 2 GB Raspberry Pi 4 stojí 67,50 dolarů a 2 GB Raspberry Pi 5 stojí 77,50 dolarů.
OpenMandriva ROME, tj. průběžně aktualizovaná (rolling) edice linuxové distribuce OpenMandriva, byla vydána ve verzi 26.09. Vedle Flatpaku také s podporou Snapu.
Edison Design Group po více než 30 letech zveřejnil zdrojový kód svého EDG C/C++ front-endu. Ten proslul širokou podporou standardů C++ a kompatibilitou s dialekty kompilátorů od Microsoftu, GNU, Clangu, Sunu a dokonce i s prehistorickým cfrontem. EDG byl použit například v kompilátoru Intel C++ Classic, kompilátoru NVCC od firmy NVIDIA pro platformu CUDA nebo v našeptávači kódu IntelliSense v produktech společnosti Microsoft. Projekt nyní spravuje organizace The C++ Alliance a kód je dostupný pod licencí Apache 2.0, doplněnou o výjimky projektu LLVM.
Může mi někdo vysvětlit, proč jsou operace provedené na souborech otevřených pomocí open() mnohem pomalejší než operace prováděné se soubory otevřenými pomocí fopen()? (Oboje dvoje na obyčejných souborech)
Případně pokuď existuje, tak bych uvítal nějaký "trik" jak dosáhnout stejné rychlosti.
Hmm, takže s tím očividně neumím zacházet... Proč může být druhý kód mnohonásobně pomalejší než první?
kód 1 - fopen
/* Hlavicka */ if(!fwrite(&header, sizeof(header), 1, fp)) return 0; /* Data */ if((fr = fopen(file_name, "r")) == NULL) return 0; while(c = getc(fr), !feof(fr)) putc(c, fp); if(fclose(fr) == EOF) return 0;
kód 2 - open
/* Hlavicka */ if(write(fp, &header, sizeof(header)) != sizeof(header)) return 0; /* Data */ if((fr = open(file_name, O_RDONLY)) == -1) return 0; while(read(fr, &c, 1) > 0) write(fp, &c, 1) if(close(fr) == -1) return 0;
fp je deskriptor normálního otevřeného souboru, v prvnim případě FILE *, ve druhém int.
Program ve kterém to potřebuju použít by měl bejt obdobou tar -cvvzf. Potřeboval bych proto vytvořený archiv po znaku rovnou posílat pomocí roury komprimátoru, ale pomocí write() a read() je to strašně pomalý - tak, že mnohem rychlejší je nejdříve vytvořit archiv a pak ho znova načítat a komprimovat...
Co zkusit ve druhem pripade misto jednoho znaku treba 1000?:
char pole[1000];
while(read(fr,pole,1000))
write(fp,pole,1000);
Duvod je ten, ze kdyz jedes znak po znaku, tak pro kazdou operaci pouzijes jedno preruseni a to bez ohledu na to, kolik mas dat, takze procesor se musi porad starat o preruseni misto toho aby dal prikaz pameti/disku, ze ma neco udelat.
To mě taky napadlo, ale pro LZW kompresy potřebuju ty znaky pak dostávat stejně po znaku (šlo by si ale udělat nějakej buffer). Nicméně proč je to pomocí fputs() "normálně" rychlý a pomocí write() tak pomalý?
Tiskni
Sdílej: