Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.
Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.
Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.
Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.
OpenAI spolupracuje s konkurenty Anthropic a Google DeepMind ze skupiny Alphabet na bezpečnosti umělé inteligence (AI). Globální obavy ohledně existenčních rizik umělé inteligence vzrostly poté, co se o víkendu sešli vedoucí předních amerických firem z odvětví AI a vyzvali k pozastavení vývoje technologie.
Evropská unie navrhne zákaz sociálních sítí, online her a chatbotů pro děti mladší 13 let a možnost účtu pro děti do 15 let jen se souhlasem rodičů, oznámila šéfka Evropské komise Ursula von der Leyenová v dnešním projevu ve Štrasburku. Návrh předpisu nazvaného EU Kids Act představí Evropská komise ve čtvrtek. Von der Leyenová zdůraznila, že chce, aby se rovněž změnilo základní pravidlo: platformy budou muset dokázat, že jsou bezpečné.
… více »Byla vydána Java 27 / JDK 27. Nových vlastností (JEP - JDK Enhancement Proposal) je 9.
Byl vydán Mozilla Firefox 156.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vestavěný prohlížeč PDF se nyní spouští o 45 % rychleji. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 156 bude brzy k dispozici také na Flathubu a Snapcraftu.
Článek na Raspberry Pi představuje nový vzhled desktopu operačního systému Raspberry Pi OS v aktuálním vydání 2026-09-15.
Nové verze Roundcube Webmailu 1.6.19 a 1.7.4 řeší několik zranitelností.
V Unixových operačních systémech si můžeme pro každou netriviální, a opakující se činnost napsat skript. Pokud je určen pouze pro naši potřebu, není problém. Když ho mají používat odborníci (správci, programátoři, ...), stačí napsat dokumentaci, nebo manuálové stránky. Jenže pokud má sloužit i běžným uživatelům, nastává problém, protože mají ti obvykle strach z příkazové řádky a dokumentaci nikdy nečtou.
A vývojáři KDE přišli s řešením. Kommander je přímo určen pro psaní jednoduchých GUI aplikací. Díky technologii DCOP (viz KDE: tipy a triky - III (DCOP a KDialog)), kterou Kommander vnitřně používá, je možné ze skriptu ovládat grafické prvky - widgety. Také nám odpadají problémy s binární kompatibilitou knihoven, od toho nás odstiňuje Kommander. Celý projekt je uložen v jednom SGML souboru, takže jeho instalace je velmi jednoduchá. Týká se to i binárních souborů, například obrázků, které jsou uloženy v souboru v textové podobě. Parser Kommanderu funguje jako makrojazyk a bohužel má i spoustu velmi nepříjemných omezení.
Od Kommanderu verze 1.2, který je součástí KDE od verze 3.4 je k dispozici nový parser, který se velmi liší od toho starého. V dalším textu budu mluvit o tom starém. Nový parser je relativní novinka a většina aplikací na kde-apps.org používá ten starší, nemluvě o tom, že je použitelný až od KDE verze 3.4. Nový parser bude tématem dalších dílů.
Dost už bylo textu, je na čase uvést nějaký obrázek. Kommander se
sestává ze svou programů. Kommander Executor (kmdr-executor),
který provádí skripty uložené v souborech kmdr. Druhým je
Kommander Editor (kmdr-editor), vývojový nástroj, v němž se
navrhují dialogy a píše kód.

Při spuštění se můžeme podívat na obrázek kočky, ale moc dlouho ji
neuvidíte, protože Editor startuje velmi rychle. Pokud jste někdy psali
projekt pro KDE, nebo Qt, bude vám jeho prostředí připadat velmi známé. Je
to totiž upravený (a zjednodušený) Qt Designer od Trolltechu. Soubor se
skriptem je prakticky totožný, s ui souborem, který generuje
Designer.
Přeskočme teorii a přejdeme rovnou k praxi. Od dob K&R je tradicí, že prvním příkladem je aplikace, která vypisuje Hello, world!. Já se rozhodl tuto tradici porušit a to ze dvou důvodů. Jednak je tento příklad nevhodný pro předvedení Kommanderu. Za druhé považuji čtenáře abclinuxu.cz za tak inteligentní, aby pochopili i složitější příklad: aplikaci pro snímání oken z obrazovky - kommander-1-snap.kmdr.

Všichni jistě znáte způsob, jak vyfotit v X Window okno (viz Snímání
obrazovky aneb vyfoťte si okno). Jenže příkaz xwd ukládá
do stejnojmenného formátu. Pokud chceme rozumný, všeobecně používaný formát
PNG, celý proces se nám roztáhne na takovou kolonu příkazů:
xwd | xwdtopnm | pnmtopng > foo.png
Geekové žasnou, ale běžného uživatele tím asi moc nepřesvědčíte. Proto tento kód přiřadíme tlačítku Shot!. V kontextovém menu tlačítka zvolíme Edit Kommander Text a do okna tu kolonu napíšeme.

Jak prosté! Teď máme jednoduchou grafickou aplikaci, která vyfotí
aktuální okno a uloží do souboru ~/foo.png. Akce je přiřazena
tlačitku jménem BtnShot, typu ExecButton. Tohle
řešení není moc dobré, uživatel by měl mít možnost si vybrat jméno souboru
a jeho umístění. Kód je nutné trochu modifikovat
@setGlobal(IMG,@exec(tempfile))
xwd | xwdtopnm | pnmtopng > @global(IMG)
@BtnSave.setEnabled(true)
Co jsme teď udělali? Za prvé neukládáme obrázek do domácího adresáře,
ale do souboru, který vytvoří příkaz tempfile v adresáři
/tmp. Jméno nově vytvořeného souboru je důležité, a protože s
ním budeme pracovat i v dalších částích kódu, uložíme si jej příkazem
@SetGlobal() do globální proměnné IMG. Ve druhém
řádku již přesměrováváme výstup do proměnné IMG, jejíž hodnotu
vrací @global(). No a v posledním příkazu povolíme tlačítko
BtnSave, protože už máme obrázek, takže můžeme ukládat.
@.
Stejným znakem začínají nejen příkazy, ale i jména grafických objektů a
dokonce i klíčová slova. Alespoň ve starém parseru to tak je.
Tlačítku BtnSave potom přiřadíme tento kód.
cp @global(IMG) @Input.savefile(~, *.png,"Uložit screenshot")
Ten zkopíruje soubor img na to místo, které vrátí dialog
@Input.savefile(), Prvním parametrem je výchozí adresář,
druhým filtr souborů a posledním je titulek dialogu.
Kód tlačítka BtnExit, které je typu
CloseButton už uvedu jen pro pořádek.
rm -f @global(IMG)
Tím jsme získali jednoduchou aplikaci na tvorbu screenshotů obrazovky.
Její největší nevýhodou je špatná správa souborů v /tmp, které
se ne vždy smažou. Každý obslužný událostní skript běží nezávisle na
ostatních, takže příkaz trap nám zde nepomůže. Ale ilustrační
aplikaci to můžeme odpustit.
Není nic smutnějšího, než když widgety nedokáží reagovat na změnu velikosti okna a aplikace potom dopadne nějak takto:

Snap se pochopitelně chová správně:

Kdysi dávno jsem měl tu čest vidět aplikaci ve Visual Basicu, kde se o rozložení widgetů v okně staral přímo programátor. Ještě dnes si vzpomínám na ta kvanta kódu, která musela být napsána a taky na to, že žádosti o změny uživatelského rozhraní byly předem odmítnuty. Nevím, zda dotyčný jenom nevěděl, anebo to skutečně nešlo. Každý lepší toolkit obsahuje svého správce rozložení, který se o rozložení widgetů stará automaticky.
Kommander používá stejný toolkit jako KDE, a proto i správce rozložení jsou ty, které používá Qt.
V našem příkladě vidíme, že jsou všechna tlačítka pod sebou, takže je můžeme libovolně naskládat na formulář, označit, dát vertikální rozložení a ony se srovnají, jak potřebujeme (jenom změníme jejich velikost na požadovanou). Nakonec ještě vybereme layout pro celý formulář (v tomto případě je to úplně jedno, který vybereme) a máme pěkně fungující formulář, který reaguje na změny velikosti okna a bez jakéhokoliv řádku kódu.
![]() |
![]() |
![]() |
![]() |
Chování widgetů se dá ještě detailněji nastavit pomocí vlastnosti Size Policy.

V mnoha případech nechceme, aby byl jeden prvek těsně u druhého. Proto potřebujete nějakým způsobem správci rozložení říci, jak se má chovat. Toto zabezpečují spacers (překládám jako rozpěrky). Může se stát, že budeme chtít, aby byla mezi tlačítkem Konec a zbytkem mezera. Takže přidáme rozpěrku mezi Konec a Uložit a mezera mezi nimi je na světě.


Podobně jako mají widgety Size Policy, jsou všechny rozpěrky nastavitelné.

V tomto díle jste se seznámili s Kommanderem. Dozvěděli jste se, že má nový a starý parser, který je pouze makrojazykem. Umíte napsat primitivní aplikaci a víte, jak pracuje správce rozložení. V dalším díle si rozebereme složitější aplikaci, na které si ukážeme více rysů jazyka Kommanderu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
@Input.savefile(~, *, foo)Funguje tak, jak má. KDE je taky 3.4.