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.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
#include <iostream>
int main(int argc, char **argv) {
unsigned long int c = 0;
float t = 0;
while (t < 3000) {
if (c % 1000000 == 0) {
std::cout << t << "\n";
}
c++;
t += 0.0001;
}
return 0;
}
Kompilace g++ -ansi -Wall -pedantic test.cpp -o test
Cyklus by mel pridavat k float promenne t konstantu 1e-4 dokud t nedosahne hodnoty 3000. To se vsak nestane, protoze hodnota t se zastavi na cisle 2048 a dal nejde (i kdyz je inkrementovana, zustava konstantni). Tato limitni hodnota roste s krokem, napr. pro krok 1e-3 se inkrementace zastavi az na 32768, pro 1e-2 to je 262144.
What gives?
nebo lépe vlastnost IEEE754. Nechce se mi to počítat, nicméně jde o to, že pro hodnotu 1E-4 máš exponent -14 a pro hodnotu 2048 máš exponent 11. Když sečítáš floaty, tak je nejdřív převedeš na ten větší exponent (v tomhle případě 11) a mantisu menšího posuneš doprava. Pro 1E-4 tu mantisu posuneš o 25 míst do prava. Problém je v tom, že mantisa má 24 bitů (nepočítám implicitní 1) a tudíž bude pro hodnotu 1E-4 nulová => přičítáš nulu.
No a nebude to tým, že číslo 2048.0001 nie je možné reprezentovať dátovým typom float?
Pohraj sa na http://www.h-schmidt.net/FloatApplet/IEEE754.html
binárne 01000101000000000000000000000000 je float 2048.0
binárne 01000101000000000000000000000001 je float 2048.0002
a+b==a pokud b<epsilon/2*a je docela normální. Spíš mě překvapuje, že to neví někdo, kdo o IEEE754 evidentně ví.
float - 7 platných číslic (jestli se nepletu je zaručeno 6) + exponent(desetinná čárka cca. ± 38míst)double - 15 platných číslic + exponent(desetinná čárka cca. ± 300míst)long double - 19 platných číslic + exponent (Pozor: v případě M$ je to jako double) g++ -o inforeal inforeal.cpp
) a spustíte dostanete základní informace:
#include <iostream>
#include <float.h>
int main(int argc, char **argv) {
std::cout.precision(FLT_DIG);
std::cout.flags(std::ios::scientific);
std::cout << "float:" << std::endl;
std::cout << " min: " << FLT_MIN << std::endl;
std::cout << " max: " << FLT_MAX << std::endl;
std::cout << " 10 exponent min: " << FLT_MIN_10_EXP << std::endl;
std::cout << " 10 exponent max: " << FLT_MAX_10_EXP << std::endl;
std::cout << " digits: " << FLT_DIG << std::endl;
std::cout << " Epsilon: " << FLT_EPSILON << std::endl;
std::cout.precision(DBL_DIG);
std::cout << "double:" << std::endl;
std::cout << " min: " << DBL_MIN << std::endl;
std::cout << " max: " << DBL_MAX << std::endl;
std::cout << " 10 exponent min: " << DBL_MIN_10_EXP << std::endl;
std::cout << " 10 exponent max: " << DBL_MAX_10_EXP << std::endl;
std::cout << " digits: " << DBL_DIG << std::endl;
std::cout << " Epsilon: " << DBL_EPSILON << std::endl;
std::cout.precision(LDBL_DIG);
std::cout << "long double:" << std::endl;
std::cout << " min: " << LDBL_MIN << std::endl;
std::cout << " max: " << LDBL_MAX << std::endl;
std::cout << " 10 exponent min: " << LDBL_MIN_10_EXP << std::endl;
std::cout << " 10 exponent max: " << LDBL_MAX_10_EXP << std::endl;
std::cout << " digits: " << LDBL_DIG << std::endl;
std::cout << " Epsilon: " << LDBL_EPSILON << std::endl;
#if defined FLT_ROUNDS
std::cout << std::endl;
std::cout << "Type of rounding floating numbers: ";
switch(FLT_ROUNDS){
case -1 : std::cout << "indeterminable"; break;
case 0 : std::cout << "towards zero"; break;
case 1 : std::cout << "to the nearest number"; break;
case 2 : std::cout << "towards positive infinity"; break;
case 3 : std::cout << "towards negative infinity"; break;
default : std::cout << "? - no standard definition"; break;
}
std::cout << std::endl;
#endif
return 0;
}
Tiskni
Sdílej: