Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Vyšel Firefox OS Simulator 4.0. Jedná se o doplněk webového prohlížeče Firefox, jež umožňuje spouštět Firefox OS v okně prohlížeče. I bez telefonu si tak uživatelé mohou Firefox OS vyzkoušet a vývojáři mohou pro něj vyvíjet aplikace. Nejnovější verze simulátoru přináší například podporu testování plateb u placených aplikací.
Tiskni
Sdílej:
Ostatne i jeho averze vuci GC mluvi sama za sebeJistě, kdo by nechtěl mrhat cykly, když to zvládne sám a ušetří prostředky? Jedině terorista a fanatik. /s
Modularitě? Víš vůbec, co to slovo znamená?Můžete mi to prosím vysvětlit.
Modularitě?Vysvětluje to třeba Uniprocessor Garbage Collection Techniques, část 1.1 – motivace:
Garbage collection is necessary for fully modular programming, to avoid introducing unnecessary inter-module dependencies. A software routine operating on a data structure should not have to depend what other routines may be operating on the same structure, unless there is some good reason to coordinate their activities. If objects must be deallocated explicitly, some module must be responsible for knowing when other modules are not interested in a particular object. Since liveness is a global property, this introduces nonlocal bookkeeping into routines that might otherwise be locally understandable and flexibly composable. This bookkeeping inhibits abstraction and reduces extensibility, because when new functionality is implemented, the bookkeeping code must be updated. The runtime cost of the bookkeeping itself may be significant, and in some cases it may introduce the need for additional synchronization in concurrent applications.
Určitě je pomalejší mít jeden objekt s reference counting než nechávat GC prohledávat celý heap?To máte v programu jen jeden objekt? Jinak moderní GC typicky neprohledává celý heap najednou. Podobnou diskuzi jsem již vedl.
To máte v programu jen jeden objekt?Ne, ale obvykle člověk nepotřebuje mít reference counting na vše. Ze zkušenosti bych řekl, že je to spíš rarita.
Jinak moderní GC typicky neprohledává celý heap najednou.To je sice pěkné, ale na mobilu, kde za každý zbytečný cyklus platím menší výdrží je to stejně nanic.
To je sice pěkné, ale na mobilu, kde za každý zbytečný cyklus platím menší výdrží je to stejně nanic.Uživatel chce i spolehlivost. A pro výrobce programu hrají roli náklady na vývoj a rozvoj aplikace.
ve výsledku to znamená, že se zaplatí bastlič, který program udělá v Javě i za cenu toho, že ten program nebude efektivně pracovat se zdroji.Nebo to znamená, že programátor bude mít více času na důležitější optimalizace. Např. kompilátor Haskellu GHC může během kompilace přepisovat kód pomocí programátorem daných pravidel a tím zlepšit výkon. Paradoxně programy s GC občas spotřebují méně paměti než ty bez GC. Dalším příkladem je XQuery knihovna HXQ v Haskellu, která na některých dotazech využije 300 krát méně paměti než knihovna XQilla, jenž je napsaná v C++.
Pokud by šlo jen o GC, tak u desktopu to nijak nevadí, výkonu je hodně, pár dalších cyklů není problém, a hlavně je hodně paměti a tudíž se GC často ani nemusí spouštět. Ale na mobilu podle mě nemá co dělat, protože tam je paměti málo a GC musí pořád něco uklízet.Pokud aplikace alokuje převážně malé objekty s krátkou životností, tak to pro GC nebude problém (např. 5% času programu spotřebuje GC).
Nebo to znamená, že programátor bude mít více času na důležitější optimalizace.Pokud opomenu to, že ruční správa paměti tolik času nezabere, efektivní využití zdrojů u mobilů je hodně důležité.
Paradoxně programy s GC občas spotřebují méně paměti než ty bez GC.Občas ano. Ale zrovna v odkazovaném příkladě OCaml spotřebuje méně paměti než C++ ve dvou z deseti případů, v jednom stejně a v ostatních 2x až 9x tolik (o čase ani nemluvě). Krom toho benchmark game neběží na malém systému s ARMem jako je tomu u mobilů, ale na x86.
Pokud opomenu to, že ruční správa paměti tolik času nezabere,Reseni souvisejicich bugu ano. Znovu, to ze se u kritickych projektu zakazuje v C/C++ rucni sprava pameti ma sve koreny v horke zkusenosti.
efektivní využití zdrojů u mobilů je hodně důležité.A stabilita a mala chybovost aplikaci napsanych prumernym programatorem je dulezita jeste vice. Plno zajimavych aplikaci je napsano lidmi, kteri az tolik programovat neumi, zato maji dobre napady a znalost veci. Soucasne mobily nejsou platformou, kde je treba vydojit z HW maximum, ostatne uspech Androidu o tom svedci.
Reseni souvisejicich bugu ano. Znovu, to ze se u kritickych projektu zakazuje v C/C++ rucni sprava pameti ma sve koreny v horke zkusenosti.Však u kritických projektů proti GC nic nemám, ale takových je minimum. Krom toho, mobily nejsou zrovna vhodná platforma pro běh nějakého kritického projektu i kdyby jenom kvůli risku vybití baterie v nejnevhodnější dobu.
A stabilita a mala chybovost aplikaci napsanych prumernym programatorem je dulezita jeste vice. Plno zajimavych aplikaci je napsano lidmi, kteri az tolik programovat neumi, zato maji dobre napady a znalost veci. Soucasne mobily nejsou platformou, kde je treba vydojit z HW maximum, ostatne uspech Androidu o tom svedci.A proto se mi taky Android příliš nelíbí. Když vidím, že to nic nedělá ale stejně to má spotřebováno 200MB RAM, chce se mi brečet…
Krom toho, mobily nejsou zrovna vhodná platforma pro běh nějakého kritického projektuStejne tak nejsou platformou, kde je treba vydupat maximalni vykon a kde overhead GC je problem.
Když vidím, že to nic nedělá ale stejně to má spotřebováno 200MB RAM, chce se mi brečet…Muj sluzebni mobil ma 2GB RAM a nejvice pameti mi zabiraji nativni aplikace, Dalvik based prekvapive nejsou problem.
Stejne tak nejsou platformou, kde je treba vydupat maximalni vykon a kde overhead GC je problem.Problém to je, protože výkonu zas tolik není a ty cykly navíc se projeví v horší výdrži na baterku.
Lidi co si chteji chrochtat, ze jim staci nabijet jednou tydne se musi poohlednou jinde.Bohužel ten výběr zas takový není.
a byly by i cisla standardu?MISRA C nedoporučuje používat ukazatelovou aritmetiku, zakazuje nekonstantní ukazatele na funkce a zakazuje používat dynamickou alokaci paměti:
Rule 20.4 (required): Dynamic heap memory allocation shall not be used. This precludes the use of the functions calloc, malloc, realloc, and free. There is a whole range of unspecified, undefined and implementation-defined behaviour associated with dynamic memory allocation, as well as a number of other potential pitfalls. Dynamic heap memory allocation may lead to memory leaks, data inconsistency, memory exhaustion, non-deterministic behaviour.Zdroj citace.
Takze misto OOM jenom dojdou / pretecou / podtecou indexy do statickeho predalokovaneho poolu. A to se vyplati.To se nestane, nebot aplikace musi byt designovana tak aby mela garantovanou pametovou narocnost a odpovidajici pamet byla na HW k dispozici. Memory pooly se mohou pouzivat napriklad pro sdileni pameti mezi algoritmy, pricemz algoritmy sdilejici pool pak *nesmi* nikdy bezet paralelne; tento pristup neni casto akceptovan a pak se prida dalsich pamet.
Standard "pro standard". Stejne ve finale musi byt ta aplikace spolehliva a odladena bez ohledu na pouzite techniky, jinak by nefungovala jak se ocekava a to rovnez bez ohledu na pouzite techniky.Jenze nektere techniky a praktiky jsou vice nachylnejsi k chybam nez jine.
To je super, hlavně, že na mobilech je každá aplikace obrovský moloch se spoustou modulů.Proč moloch? Modulární návrh, kdy se program poskládá z různých komponent, je celkem přirozená věc i u malých programů. Automatická správa paměti pak umožní omezit závislosti mezi komponentami – podobně jako neměnné datové struktury.
A co se týče problémů s ruční správou paměti, tak ty jsou z 99% způsobeny blbostí programátora.Ano, ale problém to nijak neřeší.
Proč moloch? Modulární návrh, kdy se program poskládá z různých komponent, je celkem přirozená věc i u malých programů. Automatická správa paměti pak umožní omezit závislosti mezi komponentami – podobně jako neměnné datové struktury.Jasně, jsou případy kdy nějaká automatická správa paměti může pomoct, ale jde to docela dobře i bez toho.
Ano, ale problém to nijak neřeší.Pustit k programovaní bandu bastlilů, kteří neví nic o paměti, mi zrovna jako šťastné řešení nepřijde.
Pustit k programovaní bandu bastlilů, kteří neví nic o paměti, mi zrovna jako šťastné řešení nepřijde.A není to problém jazyka? Např. v C/C++ mohu napsat
SendMoreMoney* m = new SendMoreMoney; DFS<SendMoreMoney> e(m); delete m;i
SendMoreMoney* m = new SendMoreMoney; DFS<SendMoreMoney> e(m);
Jasně, jsou případy kdy nějaká automatická správa paměti může pomoct, ale jde to docela dobře i bez toho.IMO "bez toho" znamená buď velmi striktně omezit aliasing nebo, pokud chci (divoký) aliasing, zavést nějaký "registr", který aliasované hodnoty po jejich použití uvolní. Avšak v případě C/C++ je problém v tom, že obě možnosti stojí na kázni programátora.
To bych jako problém nebral. Je to vlastnost jazyka, a s tou programátoři musí počítat.Ale je to vlastnost, jenž komplikuje psaní a správu větších programů. Koneckonců proto vznikají různé jazyky, jenž umí kontrolovat aliasing a vynutit použití/spotřebování každé hodnoty. Za zmínku stojí Rust – vyvíjí ho Mozilla pro experimentální jádro prohlížeče Servo.
I sebelepší GC si nějaké cykly navíc sebere.No a co?
a je s podivem, ze firma odmita zaplatit jednu licenci programatorovi, ktery po code freezu projde vysledky staticke analyzy a opravi zbyvajici chybyNic takového neexistuje. Výsledky statické analýzy jsou obecně jen aproximace chování programu. Uvažte následující kód:
p = NULL if (složitá podmínka) { p = alokuj paměť } if (jiná složitá podmínka) { dealokuj p }Dokázat korektnost znamená ověřit ekvivalenci podmínek.
kdyz uzivatelska zakladna aplikace poroste linearne, tak naklady na provoz linearne skalovane aplikace porostou rychleji diky skrytemu exponencialnimu skalovani GC rovnez exponencialne.Proč si to myslíte?
Nic takového neexistuje. Výsledky statické analýzy jsou obecně jen aproximace chování programu.Tak tak. Statická analýza je dobrý pomocník, ale odhalí jen jednoduché chyby.
Uvažte následující kód:No, zrovna tohle je ukázka, jak by se dealokace neměla dělat. Pokud už při psaní člověk v takovém případě nedovede zaručit ekvivalenci podmínek (pak nemá smysl mít ty podmínky rozdílné a by bylo lepší použít nějaký boolean flag) tak by měl testovat na NULL.
…
null
, dědičnost (fragile base class), uzavřené třídy (k typu nejde doimplementovat rozhraní), složitost (bridge metody + overloading, podtypový polymorfismus), anti-paralelní.
Časová značka: 14.7.2013 11:38:55 Chyba: r2d2b2g: ###!!! ABORT: X_GLXCreatePixmap: BadMatch (invalid parameter attributes); 3 requests ago: file /home/myk/Mozilla/central/toolkit/xre/nsX11ErrorHandler.cpp, line 157 ###!!! ABORT: X_GLXCreatePixmap: BadMatch (invalid parameter attributes); 3 requests ago: file /home/myk/Mozilla/central/toolkit/xre/nsX11ErrorHandler.cpp, line 157No ani se to nepodařilo nastartovat ... asi to je nějaký nemocný, nebo to mají nějaký rozbitý .... myslel jsem, že je chyba někde v GL, aktualizoval jsem i mesu a nic (po aktualizaci se objevilo sice okno B2G, ale po pár vteřinách to šlo pryč). Aktuální FF-22, NVIDIA.