Byl vydán Mozilla Firefox 152.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 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze 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.
V Praze probíhá Flock 2026, tj. konference pro přispěvatele a příznivce Fedory. Přednášky lze sledovat také na YouTube.
Node-RED (Wikipedie, GitHub), webová aplikace postavená na Node.js pro vizuální programování a propojování hardwarových zařízení, API a online služeb, byl vydán ve verzi 5.0. Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 3.27.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 5 zranitelností.
Řídící výbor GCC schválil záměr do GCC začlenit backend WebAssembly.
Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.
Dnešní software se většinou skládá z mnoha komponent a vrstev a ty si mezi sebou předávají objekty. Např. načtu data z databáze nebo souboru (sítě atd.) a předám kolekci záznamů někam dál, tam se data nějak transformují, zpracují, předají další komponentě (opět jako kolekce nebo objekt) a po několika takových fázích vyplivnou na výstup.
Výhoda je v abstrakci a v tom, že komponenty jsou celkem samostatné, dají se samostatně vyvíjet, testovat, znovupoužívat, není to jeden monolitický bastl. Na druhou stranu nevýhoda je v tom, že první záznam na výstupu vypadne nejdříve ve chvíli, kdy se načte poslední záznam na vstupu. A taky v tom, že v jednu chvíli musím mít celou množinu načtenou v paměti.
Rád bych v programu měl něco jako unixové roury a zpracovával data průběžně – tzn. vstup může být teoreticky nekonečný, spotřeba paměti je konstantní (jeden řádek/záznam nebo stanovená velikost bufferu) doba zpracování lineárně závislá na velikosti vstupu.
Řešením může být předávání iterátorů (některé jazyky mají generátory/yield), kurzorů v SQL, vstupně/výstupních proudů… Vím, jak dosáhnout požadovaného výsledku. Ale jak ho dosáhnout co nejelegantněji a nejčistší cestou? Jaké jsou nejlepší praktiky, aby to bylo efektivní a zároveň to nebyl zprasený neudržovatelný monolit? Víte o nějakém jazyku/frameworku, který by umožňoval poskládat (pokud možno deklarativně) jednotlivé komponenty systému a nechat jimi proudit data? Nemáte příklad softwaru, který se s tímhle problémem vyrovnává nějak elegantně a poučně?
Jde mi spíš o řešení v rámci jednoho programu a programovacího jazyka. Pouštět pro každou komponentu zvláštní proces není ideální (i když to nevylučuji) a hlavně jsem tu omezený na proudy bajtů – což se někdy taky hodí, ale když budu zpracovávat nějaké záznamy/objekty, musím je na výstupu z jedné komponenty serializovat a na vstupu druhé zase deserializovat.
Řešením může být předávání iterátorů (některé jazyky mají generátory/yield), kurzorů v SQL, vstupně/výstupních proudů… Vím, jak dosáhnout požadovaného výsledku. Ale jak ho dosáhnout co nejelegantněji a nejčistší cestou?Nevím, zda to je elegantní, ale Haskell má koinduktivní typy a jinou redukční strategii, takže se tam mnoho věcí chová "líně", aniž by programátor musel něco speciálního dělat. Nevýhodou je, že programátor ztrácí přehled, kdy se jaká věc vlastně počítá.
Jaké jsou nejlepší praktiky, aby to bylo efektivní a zároveň to nebyl zprasený neudržovatelný monolit?Oboje zvládá Haskell docela dobře. Kompilátor GHC provádí fúzi, čímž dosahuje docela dobré efektivity (a stávající fúze se možná dočká dalšího vylepšení).
Tiskni
Sdílej: