Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na
… více »Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Článek na stránkách Fedora Magazinu informuje o vydání Fedora Asahi Remixu 43, tj. linuxové distribuce pro Apple Silicon vycházející z Fedora Linuxu 43.
Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.
Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.
Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »
class Hrac
{
private:
QString * jmeno;
QColor * barva;
int * znak;
int * body;
public:
Hrac();
Hrac(const Hrac &other);
~Hrac();
void nastavVlastnosti(QString jmeno, QColor barva, int znak, int body);
int * zjistiZnak();
int * zjistiBody();
QColor * zjistiBarvu();
QString * zjistiJmeno();
TypHrace * zjistiTyp();
bool checkForVictory();
friend QDataStream &operator<<(QDataStream &out, Hrac &hrac);
void serialize(QDataStream& ost);
static Hrac unserialize(QDataStream& istr);
};
Řešení dotazu:
serialize a unserialize, definice třídy se zdá v pořádku
QDataStream& operator <<(QDataStream &out, Hrac &hrac) nemusí být friend, protože použije (měl by použít ) veřejnou metodu serialize
unserialize by mělo vracet Hrac*, jinak se tam bude volat (zbytečně) copy konstruktor. Lepší by ale bylo vytvořit deserializační konstruktor explicit Hrac(QDataStream &str)
Btw. proč jsou tam ty dva inty (znak a body) dynamicky alokované?
QDataStream &operator<<(QDataStream &out, Hrac &hrac)
{
return(out << hrac.jmeno->length()<< " " << hrac.jmeno->toAscii() << " " << hrac.barva << " " << hrac.znak << " " << hrac.body);
}
void Hrac::serialize(QDataStream &ost)
{
ost << this;
}
Hrac Hrac::unserialize(QDataStream &istr)
{
Hrac tmp;
int delkajmena;
QString jmeno;
QColor barva;
int znak;
int body;
istr >> delkajmena;
//istr.readBytes() //?
tmp.nastavVlastnosti(jmeno,barva,znak,body);
return tmp;
}
Tu deserializaci udělám pomocí toho kontruktoru, takové řešení mě nenapadlo, díky.
Dynamickou alokaci tam používám pro všechny objekty uvnitř tříd, neměl by v tom být žádný rozdíl ne?
Kdyby vás zajímal ještě nějaký kus kódu, tak to celé mám na SVN pod
http://code.google.com/p/pisqorky/source/browse/trunk#trunk/src .
Dynamickou alokaci tam používám pro všechny objekty uvnitř tříd, neměl by v tom být žádný rozdíl ne?I kdyby to byla pravda, tak proč se v takovym případě namáhat?
void Hrac::serialize(QDataStream &str)
{
str << *this->jmeno << *this->barva << *this->znak << *this->body;
}
void Hrac::unserialize(QDataStream &str)
{
str >> *this->jmeno >> *this->barva >> *this->znak >> *this->body;
}
resp. s konstruktorem:
Hrac::Hrac(QDataStream &str)
: jmeno(new QString())
, barva (new QColor())
, znak (new int(0))
, body (new int(0))
{
this->unserialize(str);
}
a pokud budou potřeba, tak přidat operátory
QDataStream& operator <<(QDataStream &str, Hrac &hrac)
{
hrac.serialize(str);
return str;
}
QDataStream& operator >>(QDataStream &str, Hrac &hrac)
{
hrac.unserialize(str);
return str;
}
Tiskni
Sdílej: