Google spustil konverzační AI Bard. Vyzkoušet lze zatím pouze ve Spojených státech a Spojeném království. Více v Bard FAQ.
David Buchanan na svém blogu rozebírá zranitelnost acropalypse (CVE-2023-21036) telefonů Google Pixel. Z výřezu (crop) snímku obrazovky vytvořeného integrovanou aplikací Markup může být možné částečné obnovení původního snímku obrazovky. Viz tweet Simona Aaronse. Vyzkoušet lze webovou aplikaci acropalypse.app. Opraveno v březnové aktualizaci.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.19.0. Přehled novinek i s náhledy v příspěvku na blogu. Kvůli "převzetí Gitei" společností Gitea Limited byl v prosinci loňského roku představen fork Gitei s názvem Forgejo (Codeberg).
Byla vydána nová verze 5.11 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Nově je používán zram. Tor Browser byl aktualizován na verzi 12.0.4. Thunderbird na verzi 102.9.0.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Lorelai (ProtonDB).
Curl, řádkový nástroj a knihovna pro přenos dat po různých protokolech, slaví 25 let. Vydána byla nová verze 8.0.0. Mimo jiné řeší 6 zranitelností.
V sobotu 25. března proběhne Arduino Day 2023. Od 14:00 lze sledovat oficiální stream. Zúčastnit se lze i lokálních akcí. V Česku jsou aktuálně registrovány dvě: v Praze na Matfyzu a v Poličce v městské knihovně.
Fabrice Bellard, tvůrce FFmpeg nebo QEMU, představil TextSynth Server. Jedná se o webový server nabízející REST API k velkým AI jazykovým modelům. CPU verze je k dispozici zdarma jako binárka pod licencí MIT. GPU verze je komerční. Vyzkoušet lze na stránkách TextSynth.
Na konferenci LibrePlanet 2023 byly vyhlášeny ceny Free Software Foundation. Oceněni byli Eli Zaretskii za dlouhodobé příspěvky (správce Emacsu), Tad „SkewedZeppelin“ za nové příspěvky (správce DivestOS, distribuce Androidu) a projekt GNU Jami za společenský přínos.
Projekt Libreboot (Wikipedie) vydal novou verzi 20230319 svého svobodného firmwaru nahrazujícího proprietární BIOSy. Přibyla například podpora Lenovo ThinkPadů W530 a T530. Libreboot je distribucí Corebootu bez proprietárních blobů.
#include <iostream> using namespace std; class widget { public: virtual void set_text(){}; }; class button : public widget { public: void set_text(){cout << "settext button" < endl;}; }; class label : public widget { public: void set_text(){cout < "settext label" < endl;}; }; int main(int argc,char *argv[]) { widget *arr[2]; arr[0] = (widget *) new button(); arr[1] = (widget *) new label(); arr[0]->set_text(); arr[1]->set_text(); return 0; }
class A { public: virtual void f() { cout << "A" << endl; } }; class A1 : public A { public: virtual void f() { cout << "A1" << endl; } }; class A2 : public A { public: virtual void f() { cout << "A2" << endl; } }; A* p1 = new A1; A* p2 = new A2; p1->f(); p2->f();vypíše 'A1' a 'A2'. Kdyby ale ty metody nebyly virtuální, vypíše dvakrát 'A'.
class A { public: virtual void f(); }; void A::f() { cout << "A" << endl; }a analogicky i pro ty dvě dceřinné třídy.
2) Kontakt na mna je v linke na moje meno, ale a) nepovazujem sa za experta na c++, a b) nerucim za to ze odpoviem v rozumnej dobe
3) Tento server asi navstevuje vela programatorov, takze mozno dostanes odpovede aj tu, ale nie je to primarnym zameranim tohoto serveru. Mozno by bolo lepsie obratit sa na nejake usenet grupy (napr. comp.lang.c++)
class AbstractObject { public: virtual setText(QString *text) = 0; }A pak udělat specializace pro skutečné widgety:
class QButtonWrapper { QLabel *m_button; public: virtual setText(QString *text) { m_button->setText(text) }; }(konstruktor a destruktor je zřejmý) Tak vlastně doděláš to, na co se v návrhu toolkitu zapomnělo. Pozn. Ty třídy nejdou ani sloučit pomocí vícenásobné dědičnosti, protože mají společného předka. To se dá sice obejít virtuální dědičností, ale opět pokud to neudělal autor toolkitu, ty už s tím nic nenaděláš.
#include <iostream> using namespace std; class Otazka { public: virtual void ask() { cout << "Obecna Otazka" << endl; } }; class LinuxovaOtazka: public Otazka { public: virtual void ask() { cout << "Tato otazka patri na ABCLinuxu" << endl; } }; class JinaOtazka: public Otazka { public: virtual void ask() { cout << "Tato otazka sem nepatri" << endl; } }; int main() { Otazka* ot = new JinaOtazka; ot->ask(); return 0; }
Tiskni
Sdílej: