Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána (𝕏, Bluesky) nová verze 2026.1 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 8 nových nástrojů v oficiálním oznámení na blogu.
Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce
… více »Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland
… více »Byla vydána nová verze 10.2 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky Immich, Immich Machine Learning, uv a RustDesk Client.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.
Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.
Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).
Byla vydána nová stabilní verze 6.11 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Záviset na rozšíření konkrétního kompilátoru mi přijde jako kravina.Není to rozšíření konkrétního kompilátoru a nemám zjištěno, zda na nějakých rozšířeních nezávisíme už teď, nebo zda na nich tak jako tak nezávisí některá z našich závislostí :).
Krom toho nejsem fanda snah dělat z C něco, co není (aka C++).My spíš řešíme, jestli nám to jako vývojářům a projektu pomůže nebo uškodí. Mně osobně z mnoha důvodů C++ nevyhovuje, zatímco tahle funkcionalita by mohla. A nezapomeň, že se bavíš o projektu postaveném nad knihovnou Glib s vlastním objektovým modelem.
Tady je především dobré si rozmyslet, kolik práce použití takového rozšíření ušetří. Teprve pokud se ukaže, že hodně, stojí to za případné problémy s kompatibilitou.Asi dost záleží na stylu práce. My používáme jako utility knihovnu Glib. Hodně věcí se za běhu programu kontroluje na chyby, ale obvykle nejde použít assert, protože je to systémový démon. Spousta chyb přitom vyloženě vyžaduje jen nějaký ladící výstup a ukončení funkce s jasně daným výsledkem (g_return_val_if_fail, g_return_val_if_reached apod). A nebo prosté return. Něco se dá uklízet pozpátku volanými GOTO, ale v tom se zase dělají chyby.
zrovna u cleanupů si tím ale vůbec nejsem jistý.NetworkManager je trochu specifický v tom, že většina jeho práce spočívá v komunikaci s dalšími knihovnami či procesy, případně udržuje informace datových stukturách, které si předávají signály. Takže velká část kódu spočívá v tom, že vyzískám třeba přes libnl od kernelu nějaké objekty, zkontroluju je, a na jejich základě předám další komponentě nějaké další informace. Colin tvrdí, že jenom na základě alokací může z NM vykopnout 1500 řádků kódu. Mně to v celkovém množství kódu až tak neoslňuje a zda nám to skutečně pomůže, to netuším. Ale zatím to vypadá, že když to umí i LLVM a když to bude muset umět každý kompilátor s ambicemi kompilovat běžné linuxové služby, tak by se s tím dalo smířit.
Hodně věcí se za běhu programu kontroluje na chyby, ale obvykle nejde použít assert, protože je to systémový démon.Opravdu nejde použít? Někdy je nejjednodušší všechen úklid při fatálních chybách zařídit tak, že se příslušná část programu spustí jako samostatný proces a až doběhne, vše se samo uvolní.
Něco se dá uklízet pozpátku volanými GOTO, ale v tom se zase dělají chyby.Myslíš? Mně naopak konstrukce typu
bool ok = 0;
if (!(x = malloc(sizeof(*x)))
goto failed_malloc;
if ((fd = open(...)) < 0)
goto failed_open;
ok = 1;
close(fd);
failed_open:
free(x);
failed_malloc:
return ok;
přijde jako jedna z nejpřehlednějších možných. Hlavně proto, že je v ní naprosto jasné, kudy program chodí a co kdy alokuje a uvolňuje. Cleanupovací atribut někdy až příliš zamlžuje, v jakém pořadí se věci dějí.
Opravdu nejde použít? Někdy je nejjednodušší všechen úklid při fatálních chybách zařídit tak, že se příslušná část programu spustí jako samostatný proces a až doběhne, vše se samo uvolní.Jde o volbu granularity. Abych aplikaci rozdělil tak, aby změna chyb z nefatálních na fatální udělala co nejméně škody, tak by těch procesů mohlo být docela hodně a jejich správa a komunikace s nimi by byla zbytečně náročná.
přijde jako jedna z nejpřehlednějších možných. Hlavně proto, že je v ní naprosto jasné, kudy program chodí a co kdy alokuje a uvolňuje. Cleanupovací atribut někdy až příliš zamlžuje, v jakém pořadí se věci dějí.Ale jo, já ti rozumím, že chceš všechno vidět jako by to bylo v assembleru :). Ale asi je ti jasné, že nám je pořadí nezávislých dealokací či třeba uvolnění file deskriptorů putna.
Ale asi je ti jasné, že nám je pořadí nezávislých dealokací či třeba uvolnění file deskriptorů putna.Jenže ono na tom pořadí tu a tam záleží a když ho popletu, dějí se věci... Proto mi přijde praktičtější pořadí dodržovat vždy a nepřemýšlet nad tím, kdy je to potřeba a kdy ne. Zkrátka alokace a dealokace jsou jako závorky a program by měl být správně uzávorkovaný.
Jenže ono na tom pořadí tu a tam záleží a když ho popletu, dějí se věci...Bavíme se stále ještě o pořadí uvolnění několika nezávislých alokací?
Zkrátka alokace a dealokace jsou jako závorkyTady se asi neshodneme.
Bavíme se stále ještě o pořadí uvolnění několika nezávislých alokací?Nikoliv. Bavíme se o uvolňování alokací, aniž by bylo potřeba přemýšlet o tom, zda zrovna jsou nezávislé nebo ne. V prakticky jakémkoliv větším programu dřív nebo později potkáš alokace, které nezávislé nejsou. Pokud si to o nich neuvědomíš, objeví se dost těžko debugovatelné chyby. Takže alternativy jsou dvě: buďto pokaždé přemýšlet, zda jsou nezávislé (nejen při psaní, ale i při každé budoucí úpravě kódu), nebo si zvyknout dodržovat pořadí všude. Mně se daleko víc osvědčilo dodržovat pořadí všude, protože je to zjevně správně a myšlenkovou kapacitu si mohu šetřit na ty části programu, které ji skutečně potřebují. Tohle je nejspíš největší problém programátorů v Céčku: stráví příliš mnoho úsilí ošetřováním všelijakých technických detailů a nezbude jim sil na to hlavní. Dobrý céčkař věnuje úsilí především na to, aby se těmi technickými detaily nemusel zabývat (třeba zavedením nějakých memory poolů, automatického resource trackingu, či třeba transakčního systému, nebo prostě jenom šikovnými konvencemi) a pak už od technikálií má klid na důležité věci.
Nikoliv. Bavíme se o uvolňování alokací, aniž by bylo potřeba přemýšlet o tom, zda zrovna jsou nezávislé nebo ne.To pak ano. Ale na to nenarážím, protože uvolňuju objekty a ne kusy paměti, tudíž v případě závislosti už v tuto chvíli, tedy i bez 'cleanup' nevolám free, ale specifickou uvolňovací funkci. Pokud bych to tak nedělal, což je možná tvůj případ, tak by to opravdu stálo za úvahu.
V prakticky jakémkoliv větším programu dřív nebo později potkáš alokace, které nezávislé nejsou. Pokud si to o nich neuvědomíš, objeví se dost těžko debugovatelné chyby. Takže alternativy jsou dvě: buďto pokaždé přemýšlet, zda jsou nezávislé (nejen při psaní, ale i při každé budoucí úpravě kódu), nebo si zvyknout dodržovat pořadí všude.V tuto chvíli opravdu pokaždé závislosti řešíme. To by se mělo týkat jak kódu NetworkManageru, tak nejspíš i většiny dalších projektů psaných nad Glib. A přemýšlím nad tím ne ve chvíli, kdy řeším dealokaci, ale už ve chvíli, kdy řeším alokaci.
Mně se daleko víc osvědčilo dodržovat pořadí všude, protože je to zjevně správně a myšlenkovou kapacitu si mohu šetřit na ty části programu, které ji skutečně potřebují.Chápu. Nicméně nám by to asi nic neušetřilo.
Tohle je nejspíš největší problém programátorů v Céčku: stráví příliš mnoho úsilí ošetřováním všelijakých technických detailů a nezbude jim sil na to hlavní. Dobrý céčkař věnuje úsilí především na to, aby se těmi technickými detaily nemusel zabývat (třeba zavedením nějakých memory poolů, automatického resource trackingu, či třeba transakčního systému, nebo prostě jenom šikovnými konvencemi) a pak už od technikálií má klid na důležité věci.Tak u nás se z toho důvodu na část věcí používají hotové prostředky z Glib a na většinu ostatních se používají alespoň stejné nebo podobné konvence. Tohle je věc, která přišla rovněž ze světa Glib, ale kvůli nepodpoře na MSVC nebyla zařazena přímo do Glib.
primarne jej pouziva Gnome a to si drzi striktni C89 kompatibilituNo jo, není od věci se občas podívat na kalendář a zkontrolovat, jaké se píše století
for, mimo jiné proto, že je pak evidentní, že na proměnnou nesahám někde mimo cyklus, kde už nemá její hodnota smysl.
Sice NetworkManager je freedesktop.org projekt, ale primarne jej pouziva GnomeGnome je jen jedním z projektů, které komunikují s NetworkManagerem.
a to si drzi striktni C89 kompatibilitu.NetworkManager prý striktní C89 kompatibilitu nedrží, podle toho, co říkal Dan. Možná mi dával i nějaký konkrétní příklad, ale nevzpomínám si.
Je to predevsim z historickych duvodu a dnes mozna jiz tyto duvody pominuly, predpokladajic, ze Solaris, OpenBSD a dalsi uz presli na gcc ci clang.A jak je to s tím Gnome a případnou závislostí na systemd?
A jak je to s tím Gnome a případnou závislostí na systemd?Zatim se o tom dohadujou, neni to jen vec systemd, ale obecne tvrdych zavislosti. Vypada to tak, ze pro zakladni funkcionalitu bude relativne minimum zavislosti a pro tu rozsirenou uz bude potreba systemd. Takze zkompilovat to pujde, ale nebude se jednat o full feature set (coz ja to tak v podstate pouzivam v Gentoo, bez nekterych zbytecnych veci). Diskuze ale stale probiha.
Zatim se o tom dohadujou, neni to jen vec systemd, ale obecne tvrdych zavislosti. Vypada to tak, ze pro zakladni funkcionalitu bude relativne minimum zavislosti a pro tu rozsirenou uz bude potreba systemd.To by mě zajímalo, jaké volitelné funkce můžu těžit ze systemd.
systemd-logind nahrazuje ConsoleKit, čili drobnosti jako zamykání session, uspávání, zakázání logind, aby obsluhoval některé speciální klávesy a podobně.
Stejně tak pro DM je logind nezbytný, takže minimálně gdm, tak i kdm jej používají namísto ConsoleKitu.
No a systemd byl od počátku psán jako univerzální správce "sezení", takže do budoucna i gnome-systemd-session, nebo tak něco, ale to by nejspíše nešlo o volitelnou závislost
Jednak systemd-logind nahrazuje ConsoleKit, čili drobnosti jako zamykání session, uspávání, zakázání logind, aby obsluhoval některé speciální klávesy a podobně.Ok, takže z toho máš pak takové XFCE…
Stejně tak pro DM je logind nezbytný, takže minimálně gdm, tak i kdm jej používají namísto ConsoleKitu.Co si tak pamatuju, tak gdm by mělo predatovat jak systemd, tak consolekit.
No a systemd byl od počátku psán jako univerzální správce "sezení"Až na to, že ne každý si pod slovem univerzální představuje Linux-only.
Další projekty, které na tomto rozšíření závisí jsou upstart a systemd, a pravděpodobně se přidají další. To naznačuje, že kompilátor pro linuxový svět tento atribut bude muset tak jako tak implementovat.Upstart neznam, ale vsadim se ze jako spravna canonicalovina nereflektuje nic za hranicemi LTS ubuntu. Systemd je, bez urazky, ditko stejnych rukou jako pulse audio. To bych nepovazoval za reprezentativni vzorek linuxoveho sveta. To spis samotnej network manager by se za nej dal povazovat.
To spis samotnej network manager by se za nej dal povazovat.To mě zajímá :).
tak je to spis tim ze ho nechce nebo nepotrebuje nez ze by delal bordel a zral maly deti.
Tak nejak mi pripada ze NM uspesne pronika ruznyma distrama bez toho aby vzbuzoval kontroverze jako vytvory canonicalu nebo poetteringa.Takhle… NetworkManager způsobuje problémy spíše chybami nebo chybějícími funkcemi, než vědomě vtisknutými vlastnostmi. A případné problémy se snažíme řešit. Ale v některých ohledech je jeho použití jako reprezentativního vzorku dosti nelichotivé.
Tiskni
Sdílej: