Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.
Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.
Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.
Programátori sa často hrajkajú s GUI. Viem to, lebo aj ja som to robil, kým som robil pod X-i. To je však zlý prístup - GUI netreba navrhovať. Užívateľ si ho neskôr može jednoducho a rýchlo navrhnúť sám.
Základom všetkých GUI toolkitov a builderov, ktore som videl je presný návrh rozloženia. Zadefinujeme si okno, do neho správcov rozloženia a rôzne kontaineri a potom tlačidla a ...
Teraz mám iný návrh. Postup tvorby frontend vrstvy bude rovanaký. Definujeme pre vstupy akcie, ktore narabajú so vstupnymi dátami. Stalačenie tlačidla -> doClickedOK(), písanie do inputboxu -> regenerateTitle(char*)
Tu sa treba zastaviť. Naša aplikacia vie robiť všetko čo treba, len užívateľ nevie akcie vyvojať. My však pre užívateľa nenamodelujeme GUI, ale definujeme vlastnosti, ktoré musia ovládacie prvky mať, aby ich vedel užívateľ použiť.
Takze povieme [prvok, ktory vie explicitne vyvolať doClicked()], [prvok, ktorý vie primať ľubovoľný text a pri zmene textu volá regenerateTitle()].
Ďalej však treba definovať skupiny prvkov, dôležitosť prvkov v skupine, priradzovať popisy, atď. Nás proste nezaujíma, ako bude aplikačné GUI vyzerať. To nech rozhodne GUI engine podľa nejakých desktop-enviromentálnych šablôn. Hlavne aby vedel volať naše akcie so správnymi dátami.
Mňa teraz nezaujíma, či by popis bol v externom súbore v špecialnom formáte, alebo by sa narábalo s funkciami, objektami, atď.
Plynie z toho jedna významná výhoda. Užívateľ by dostal možnosť meniť, cele rozloženie GUI a GUI ako také. Niektoré prvky by fungovali rovnako dobre ako combobox, aj ako radio-button, ako na jednom okne, tak na inom okne, ak sa užívateľovi nepáči, zmení. Dôležitá je však úspora casu.
UPDATE: Oprava tagu <code> na </code>, pardon.
Tiskni
Sdílej:
) odvolavky na pomenovane prvky gui. Tie glade subory moze uzivatel pokojne editovat pomocou glade-2.
Neviem ale o tom, ze by sa o to niekto pokusil, asi o tom ani skoro nikto spomedzi tych par sto uzivatelov nevie...
Lenže stále povieš 'Tlačidlo', nie 'Niečo, čo pošle jeden signál'. niekomu vadí rozloženie tlačidial v Gnome, niekomu rodielnosť GUI toolkitov a ich stále zmeny (ext. link).
Preto ja chcem vytvoriť len popis prianí na GUI. Ten sa dá prehnať nejakým AI (rule engine, fuzzy logik). (Napríklad!)
)
Je tu filozoficky problem - spolupraca s GUI (alebo niecim inym) nie je jednoducha.
- Bud ju spravis tak aby vedela "vsetko" a bude tym padom zlozita a bude obsahovat podobne konstrukcie ako volania nejakeho GUI API
- Alebo spravis nejaku uroven abstrakcie - bude to prehladnejsie, jednoduchsie, ale nutne obmedzene co do funkcnosti.
Dobrý postreh! Ale nechcel som hneď rozmýšlať 'ako to imlementovať', alebo 'ako to bude fungovať', chcem len _rozmýšlať_...
Takto by mohol vyzerať externy format:
[recommended] 'Gnome dialog template';
[komponents] 'but' {
[send-signal] 'OK';
[send-signal] 'Cancel';
[send-signal] 'Wait';
}
[komponents] {
[store-text][on-change-signal] 'message';
[return-index][dynamic] 'category combo';
}
[group][linear please] {
[safe] 'but'.'Wait';
[unsafe][default] 'but'.'OK';
[unsafe] 'but'.'Cancel';
}
[group] {
'category combo' [note] 'Vyberte si kategoriu';
[default] 'message' [note] 'Sem zapíšte text';
}
[signals] {
'but'.'OK'.[send-signal] = 'doOK()';
'but'.'Cancel'.[send-signel] = 'doCancel()';
'but'.'Wait'.[send-signal] = 'doWait()';
'message'.[on-change-signal] = 'updateTitle()';
}
Takto kod v C:
GUI_dialog* d;
void initGUI(char** loaded_kategories) {
d = GUI_load("gui.conf");
GUI_dynamicData(d, "category combo", loaded_kategories);
GUI_makeActual(d);
}
void doOK() {
server_send(GUI_get(d, "message"));
}
void updateTitle() {
if(is_well_formed(GUI_get(d, "message"))) {
printf("recipient will be happy!\n");
} else {
printf("recipient will be unhappy!\n");
}
}
Vsimnite si, ze v externom formate o rozlozeni nehovorim, len odporucam, skupinky a sablonu. V kode sa z inicializaciou a obsluhou GUI nehram.
Ale to nieje dolezite!
Teda - nie ze by som vsetkemu rozumel...
Skusim napisat, ako som to pochopil:
[recommend] doporucuje vseobecny mechanizmus, ktorym sa ma vyrobyt GUI z doporuceni [komponents] definuju casti GUI - formulare a dialogy, [group] urcuje layout [signals] signal bindingPovedal by som, ze by bolo uzitocne oddelit tieto veci: - definiciu interface aplikacie - (na to sa bezne pouziva IDL) - rozlozenie gui (analogia k html alebo xml) a jeho napojenie na aplikaciu - styl/tema/skin (analogia k css) GUI prostredie potrebuje vsetky tri veci, zatial co napr. tie AI skripty len tu prvu. Taketo rozdelenie je obvykle. Mozno blizsie k tomu co navrhujes by bolo nedefinovat rozlozenie gui, ale len pomenovat prvky gui a ich prepojenie na aplikaciu a potom nadefinovat samotne gui, ktore by sa odvolavalo na tieto pomenovane prvky. Priklad:
- mam funkciu "doOK()": void doOK();
- Na jej obsluhu potrebujem button, pomenujem ho "OKbutton":
Button OKbutton
bind OKbutton.clicked -> doOK()
- Mam formular 1 obsahujuci OKbutton
<form name="formular_1">
<button name="OKbutton" label="OK"/>
<button name="Cancelbutton"/>
</form>
- Mam styl pripadne obsahujuci lokalizovane retazce:
button.OKbutton {color:red;}
button.Cancelbutton {label:"Zrus";}
Dobre, postupujes logicky! Lenze definujes vzhlad. Ja chcem len funkcnost. Zabudni na moje 1-urovnove [vsetko]. Ponechaj v popise len obsahy oboch [komponents] a zostane:
[send-signal] 'ok'; [send-signal] 'cancel'; [send-signal] 'wait'; [store-text][on-change-signal] 'text' [note] 'Vyberte si kategoriu'; [return-index][dynamic] 'category' [note] 'Sem zapíšte text';
send-signal vysle signal, ked si ho uzivatel vyberie. engine vzycajne vyberie tlacidlo.
store-text drzi text od uzivatela zvycajne inputbox.
return-index vrati index vyberu radio-buttony, combobox
dynamic obsah urci app. (definovane polozky, alebo rozsahy...)
...
Nikdy nepoviem [button], alebo farba, tento v lavo, tento v pravo. Ja chcem totiz usporit cas a sekundarne definovat dost abstraktny model na to, zby sa dal pouzit v GTK, QT, NCurses, ale aj konzole!
Nechcem hovorit o farbe, velkosti, polohe. Len o tom ako som ja schopny prijmat signaly a data, nech sa user, ako to chce. Podme na to __abstraktne.
Mozno by sme sa mohli o tom viacej pobavit, ak by s chcel... a mozno rozsirit nejaky uz funkcny projekt/vlastny projekt...
Teda na konzolu (ak mas na mysli nieco na sposob "Proceed ? [Y/n] :", tak na to by som sa uz asi fakt vykaslal... Zmysel to ale mozno predsa len ma - pre postihnutych (napr. nevidiacich). SWING v jave by vraj mal byt schopny nejak tymto stylom komunikovat (pomocou hlasoveho rozhrania), ale nikdy som to nevidel.
To co si napisal hore je v podstate deklaracia signalov s nenapadnymi doplnkami (napr. [note]), ktore na jednej strane pomahaju vyrobit gui, ale na strane druhej na skutocne zobrazenie gui nestacia (a to je predpokladam pointa).
Ako to gui teda vlastne vznikne ?
Vytvori ho na zaklade hintov nejaky genialny algoritmus ?
Alebo bude definovane v dalsom subore ?
V praxi asi oboje - pocas vyvoja aplikacie sa vykasles na GUI a nechas automatiku, nech nejake vyrobi. A ked uz ides odovzdat program zakaznikovi, tak este narychlo zlepis nejake krajsie GUI, vyfarbis ho na ruzovo a mame to!
Mam dalsie napady, ale nechcem to tu prilis zahltit.
Je to zaujimava debata, rad v nej budem pokracovat.
Co sa tyka nejakeho projektu, mozme to zvazit, ale teraz mam tri nekonecne projekty (na ktorych robim len vo volnom case) a nestiham.
Ak to myslis vazne, mal by si pozistovat co a ako robia ostatni.
Ked som chcel ziskat prehlad v tom co sa deje, jednoducho som presiel vsetky projekty (v jednej kategorii) na freshmeate. Je to sice typicky niekolko sto, ale ide to pomerne rychlo a nakoniec najdes mozno 5 naozaj zaujimavych.
Uz som spominal glade a mozillu. Z mozilly by si mohol zobrat XPCOM.
To je ta komponentova architektura, interface sa opisuje pomocou IDL.
Alternativy su Orbit v gnome, nieco dalsie velmi podobne je v OpenOffice. Mozno ti to bude pripadat prilis zlozite (mne to tak pripada), ale stoji to za uvahu.
Mozilla ma tiez celkom prepracovane GUI definovane v XML a poprepajane s komponentami pomocou javascriptu. Zas tak velmi do toho nevidim, ale myslim ze je to dobre vidiet aspon pre inspiraciu.
Inac - nebolo by zle najprv si overit koncepciu. Dajmetomu napisat nejaky skript (ja pouzivam python), ktory by vyparsoval tu definiciu signalov a vygeneroval by rozhranie. Ako format doporucujem XML
a parsovat pomocou DOM - usetris vela casu pri vyrobe parsera.
Tiez nie je zle zoznamit sa s API viacerych GUI a ich moznostami. Na povrchu vyzeraju podobne, ale koncepcne riesia mnohe veci rozdielne.
SourceForge je dzungla, hlavne ta ich dokumentacia.
Ale nie je to nakoniec take zlozite - aj ked mohli to spravit aj jednoduchsie. Najprv sa musis prihlasit, napisat im popis projektu, jeho nazov a licenciu. Oni to odsuhlasia - pomerne rychlo - tak do troch dni, ale mozes to cakat uz na druhy den. Detaily si uz nepametam, prihlasoval som sa tam niekedy pred dvoma rokmi...
IMHO dost cudne je uploadnovanie - posielas to tam cez FTP do spolocneho adresara a potom to cez webove rozhranie zaregistrujes a presunie sa to tam kde to ma byt.
Radšej pobím v Perle, ale to je nepodstatné, aj tak, by som rád vyrobil niečo takéto:
parser modul: XML ASCII Binary
| | |
štrukturálny model
|
layout modul: múdri aloritmus
| | |
GUI backend: QT KDE ...
To je však hudba budúcnosti a možno absoltne zlý návrh...
sourceforge.net: zaujíma ma mailing-listu a tiež,či nepodporujú niečo iné ako CVS... ja by som radšej Darcs...