PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.
Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Tiskni
Sdílej:
std::fstream má jak RAII konstruktor, tak ale i non-RAII funkce.
Co si myslíte o použití RAII?
Šifrovací klíč by měl jít do konstruktoru. Asi by bylo lepší pro něj vytvořit vlastní třídu (která bude dělat samotné šifrování), obzvlášť pokud vyžaduje více než jeden parametr.Jj, budu to asi muset celý rozdělit do více objektů, minimálně vnitřně...
Pokud opravdu potřebujete vědět délku celého souboru (proboha, jaký algoritmus to je?)Steganografický
Tam prostě potřebuju dopředu vědět, kolik dat ukládám.
No, dík za tipy, zkusim si s tim nějak poradit...
bool foo(Something ** ret) {
try {
ret = barThrowsSomething();
return true;
} catch(...) {
return false;
}
}
Dalsi pikantni veci pri je pouzivani vyjimek v multithreaded aplikacich. Muze se vam stat, ze vyhozena vyjimka bude odchycena v kontextu uplne jineho vlakna.Takhle fungují v multithreaded aplikacích signály (tedy minimálně v Linuxu) a i když je možné, že se kdysi vyjímky mohly implemenotovat pomocí nich, žádný moderní runtime nic takového, pokud vím, nedělá.
Ale mezi námi, myslíte si, že pouhé předání struktury v C je binárně kompatibilní s jinými jazyky? Není. I to se může rychle zhroutit.Samozřejmé to není (padding,...), nicméně dá se to zajistit.
Výjimky nejsou binárně kompatibilní, ale stejně tak nejsou binárně kompatibilní ani struktury, ani řada věcí z C.A to je co za argument? Vy zas bijete černochy?
Že něco taky nefunguje v C je sice možné, ale to nijak neovlivňuje fakt, že binární nekompatibilita C++ exceptions je dost problém.
Omlouvám se za svou drzost, že jsem si dovolil napsat jak to je.Já proti tomu nic nenamítal, ono to tak opravdu je (ano, pane Ponkrác, máte pravdu!), já jen namítal, že to je irelevantní.
Problém je programátor, který si myslí, že jediná nekompatibilita mezi binárními součástmi modulu jsou C++ exceptions.Ale vždyť to tady přece nikdo netvrdil.
Ve skutečnosti kdo umí, tak nekompatibility vyřešíOk, chceš použít knihovnu, od který máš k dispozici binárku zkompilovanou kompilátorem Y a ty používáš kompilátor X. Máš jinou možnost než přejít na kompilátor Y, přestože z různých důvodů nechceš?
Fakt se stydím, že jsem měl dokonce drzost napsat ještě tento příspěvek po Vaší káravé výtce.O tom silně pochybuju
IAnyIfc *anyobj=new AnyObj<Potomek>(foo);
try {
anyobj->throwAsPtr();
} catch (Predek *bar) {
//převedeno z potomka na předka
} catch (...) {
//není kompatibilní
}
Pokud by někdo věděl, jak udělat dynamic_cast podle typeinfo, byl bych mu vděčný. V MSVC jsem našel jednu neveřejnou funkci, která to dělá, ale pak to není platformovně nezávislé. Má prototyp zhruba tento:
void *dynamicCastFn(void *src, const typeinfo &from, const typeinfo &to);
void* __dynamic_cast(void *what, // objekt, který chcete castovat
const __cxxabi1::__class_type_info *from, // třída, pod kterou ten objekt vystupuje teď
const __cxxabi1::__class_type_info *to, // třída, pod kterou chcete, aby ten objekt vystupoval
int hint); // nápověda, pro full scan použijte -1
Tahle funkce vrátí buď pointer na objekt vystupující pod požadovanou třídou (může, ale nemusí být stejný s what) nebo nullptr, pokud to nejde převést. Trochu problém může být dostat se k class type info (nezkoumal jsem to, ale je to skryté někde ve vtable).
Pokud vám stačí konverze od potomka na předka, můžete rovnou použít virtuální metodu std::typeinfo pro castování výjimek
bool std::typeinfo::__do_catch(const std::typeinfo *target, // typeinfo třídy, pod kterou chcete, aby ten objekt vystupoval
void **what, // pointer na pointer na objekt, který chcete castovat (může se změnit)
unisgned outer) const; // Indikuje počet vnějších ukazatelů a jejich kvalifikace, podle zdrojáků by tam zřejmě měla být 1 nebo 3