Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
Ve zdojácích xinetd jsem v souboru xinetd/int.c narazil na řádek, který nechápu:
socklen_t size = AF_UNIX ;
Proč do proměnné „velikost“ někdo přiřazuje hodnotu z číselníku AF_*? Vždyť AF_UNIX = 1 a to přece není žádná velikost, ne?
V Gitu jsem k tomu našel zprávu:
24.5.2012 int.c: fix possible uninitialized value call when socket family detection fails
Ano, inicializovat proměnnou je fajn – ale proč zrovna hodnotou AF_UNIX?
Řešení dotazu:
socket.h je:
/* Address families. */ #define AF_UNSPEC PF_UNSPEC #define AF_LOCAL PF_LOCAL #define AF_UNIX PF_UNIX #define AF_FILE PF_FILE #define AF_INET PF_INET #define AF_AX25 PF_AX25 #define AF_IPX PF_IPX …
/* Protocol families. */ #define PF_UNSPEC 0 /* Unspecified. */ #define PF_LOCAL 1 /* Local to host (pipes and file-domain). */ #define PF_UNIX PF_LOCAL /* POSIX name for PF_LOCAL. */ #define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */ #define PF_INET 2 /* IP protocol family. */ #define PF_AX25 3 /* Amateur Radio AX.25. */ #define PF_IPX 4 /* Novell Internet Protocol. */ …Nepřijde mi, že by ta čísla měla znamenat nějakou velikost.
AF_UNIX je samozřejmě nesmysl, ta proměnná (aspoň na začátku) obsahuje délku příslušné sockaddr struktury, takže když už tam autor chtěl dát nějakou zdánlivě smysluplnou hodnotu, měl použít např. "sizeof(struct sockaddr)".
Ve skutečnosti je ale úplně jedno, jak se to inicializuje, protože pokud ten kód má mít nějaký smysl, funkce int_fail() se nebude vracet, nejspíš volá exit() nebo něco podobného. V okamžiku použití tak size vždy inicializovaná bude a ten warning je false positive.
Problém bude pravděpodobně v tom, že je int_fail() definovaná v jiném souboru a kompilátor tak neví, že se nemůže vrátit, pokud to není explicitně uvedeno v deklaraci (gcc na to má "__attribute__ ((__noreturn__))"). Nebo to řádně označeno je (případně je ta funkce inline) a jde o úlitbu starším kompilátorům, které nedokážou vyhodnotit, že proměnná bude vždy včas inicializovaná.
socklen_t size;a v pohode. Mozno to dava warningy pri pedantnejsej kontrole kodu. A samozrejme. Bud nic alebo nula. Napis autorovi.
Tiskni
Sdílej: