Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2026.
Německý startup Aleph Alpha k příležitosti výročí sjednocení Německa zveřejnil open-weight jazykový model Kolibri, vyvíjený s ohledem na unijní pojetí autorského práva, ochranu osobních údajů GDPR a nařízení EU o umělé inteligenci, jehož 'Kodexu správné praxe' je Aleph Alpha signatářem. Výsledkem tohoto přístupu je transparentnější technologie, kterou například budou moci využívat evropské veřejné instituce, ovšem za cenu
… více »Nvidia zveřejnila návrh nové bezpečnostní platformy pro nasazování AI agentů. Jedná se o nasazení AI za použití OpenShell a Sentry, dvou oddělených bezpečnostních vrstev, v nichž může Sentry monitorovat a vyhodnocovat chování AI v OpenShellu tak, že ho v krajním případě až vypne. Mělo by to zabránit dalším únikům AI ze sandboxu.
Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.
Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.
Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.
… více »Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.
Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.
haveData(QString), ten vyvolam ve chvili, kdy mam pro potomka nejaka data. V potomkovi mam pak slot který má daný signál zachytit a zpracovat.
connect(parent, SIGNAL(haveData(QString)), this, SLOT(insertInput(QString)));
Jenže ten na signál nereaguje. V konstruktoru dítěte mám na předka odkaz:
explicit mcmd(QMainWindow *parent);
Nenapadá mne už co dělám špatně
, nicméně je divné, že QTCreator všechny signály při zápisu předbízí/doplňujě, ale v tomto případě ne.
Zběžně to vypadá, že parent je QMainWindow, který nezná signál haveData(QString) - QMainWindow nahradit třídou, která obsahuje ten signál (a dědí z QMainWindow)
Signál je vyslán, ale cmd jej nezachytí...
zkusím uvést příklad...
//*********************
(MainWindow.cpp)
//*********************
...
//Konstruktor
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
mycommandline(0)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(startCommandline()));
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(executeCommand()));
}
...
void MainWindow::startCommandline()
{
myiface = new minterface();
mycommandline = new mcmd(myiface);
mycommandline->start(); // spustíme vlákno
}
void MainWindow::executeCommand()
{
myiface->emitSignal("ping 192.168.1.1"); //nefunguje - vola funkci emit v myiface
emit myiface->haveData("ping 192.168.1.1"); //taky ne
}
//*********************
(mcmd.cpp)
//*********************
...
mcmd::mcmd(minterface *parent)
{
commandline = new QProcess();
connect(parent, SIGNAL(haveData(QString)), this, SLOT(insertInput(QString)));
}
...
void mcmd::run()
{
commandline->start("cmd");
commandline->waitForReadyRead();
}
void mcmd::insertInput(QString m_input) //sem signal nikdy nedorazi
{
input = m_input.toLatin1();
commandline->write(input);
commandline->write("\n");
commandline->waitForReadyRead();
}
void mcmd::getOutput() //odeslani odtud do predka funguje bez problemu...
{
result = commandline->readAll();
emit sendingData(QString(result));
}
insertInput(QString m_input) jsem zapoměl definovat jako slot
. Už to něco dělá
. Akorát mi teď zamrzává GUI, což znamená, že ještě něco dělám špatně. Ale s tím už se snad nějak porvu...
Pokud je aplikace jednovláknová, tak pravděpodobně GUI čeká na zbytek aplikace. Sloty/signály samy nezaručí to, že když se vyšlou, tak program běží paralelně na dvou místech. Pokud je vyhozen signál, tak aplikace hledá kde se má přijmout - spustí se kód slotu a až po jeho doběhnutí se zase vrátí na místo odkud byl signál vyslán.
.
.
Pokud by jste k tomu měli ještě nějaké rady či nápady určitě za ně budu rád. Ty odkazy ještě určitě nastuduju.
Zmatené není v podstatě nic, jen dokumentace na několika místech.Souhlas
Prakticky NIKDY se QThread nemusí dědit...Souhlas
...a nemá děditPověra
worker řešení se naopak má použít skoro vždyPověra Abych nebyl tak úsečný - worker-like řešení s děděním QThread může fungovat stejně dobře a mít některé jiné výhody, například to, že inicializace a start vlákna se přesune z hlavního vlákna, kde "zavazí", někam jinam, kde lépe ctí princip zapouzdřenosti objektu. Shrnul bych to spíš do jiné věty: Přetěžovat QThread::run() je hloupost.
qDebug() << QThread::currentThread(); . To může vést k hodně velikému zmatení. Řešením je posílat signál přes frontu zpráv, například:
connect(this, SIGNAL(sig1()), vlakno, SLOT(slot1()), Qt::QueuedConnection);
Vede to občas k trochu pracnějšímu zápisu: z GUI volám slot ve vlákně a až tam vyvolám signál přes frontu propojený s jiným slotem ve vlákně. Pokud to takhle nefunguje, budu muset svůj přístup přehodnotit a přepsat nějaké aplikace
S vlákny v Qt není moc problémů při vytváření a používání. Ovšem na hotové peklo můžete narazit, až budete chtít vlákno ukončit. Potíž může být i v tom, že u spousty Qt objektů ani netušíte, že si startují vlastní vlákna (QNetworkAccessManager).
Tiskni
Sdílej: