Byl vydán Mozilla Firefox 142.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 142 je již k dispozici také na Flathubu a Snapcraftu.
Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.
OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.
Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze. Konference OpenAlt 2025 o víkendu 1. a 2. listopadu v Brně. Blíží se konec přihlašování přednášek. Přihlaste svou přednášku (LinuxDays do 31. srpna a OpenAlt do 3. října) nebo doporučte konference známým.
Raspberry Pi Touch Display 2 je nově vedle 7palcové k dispozici také v 5palcové variantě. Rozlišení stejné 720 × 1280 pixelů. Cena 40 dolarů.
Telnet a ssh klient PuTTY postupně přechází na novou doménu putty.software.
Řešení dotazu:
Používá se hlavně poll()
, protože select()
je takový slabý odvar, který na některých systémech nakonec stejně volá poll()
.
Já to ještě trochu zobecním: Co když chce čekat na socketu i na stdin
, ale zároveň ještě asynchronně něco (dalšího) dělat? I to se dá (v jednovláknovém programu) zařídit. Řešení může být například:
man sigaction
) pro SIGIO
(SIGPOLL
), který napřed zkontroluje neblokujícím poll()
(timeout
0), který file descriptor a typ operace to bude, a pak přečte příslušnou zprávu, což bude neblokující (a dá se to pojistit také pomocí F_SETFL
O_NONBLOCK
(man fcntl
)).F_SETOWN
na svůj vlastní proces (getpid()
), aby pak dostával asynchronně signály o změnách na socketu (man socket
, man fcntl
).Samozřejmě tady nezmiňuju corner cases, které se musí rozumně ošetřit. Například když zápis do neblokujícího deskriptoru najednou vrátí EWOULDBLOCK
.
Správným řešením je getaddrinfo()
. To je funkce, která správně vyhodnotí IP adresy všech možných typů i doménová jména a dodá pak všechny potřebné konstanty pro vytvoření toho socketu. Takže pak uživatel nikdy nemusí mít v kódu něco jako AF_INET6
, což může přestat fungovat, až se bude používat AF_INET54
, ale vezme zkrátka konstanty ze struktur vrácených z getaddrinfo()
. Navíc getaddrinfo()
správně vyhodnotí konektivitu, takže se nestane, aby například na IPv6-only stroji nabízelo IPv4 adresy, i když zadaná doména nějaké má.
Tiskni
Sdílej: