Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.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.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
#include <cstdio> #include <iostream> int main(int argc, char** argv) { float f = 1.23456f; unsigned int raw_f; char* raw_f_cstr; /* raw_f = *(unsigned int*)&f; <- Starý Cčkový způsob */ /* C++ovější způsob */ raw_f = *reinterpret_cast<unsigned int*>(&f); /* Jako unsigned int */ std::cout << f << " " << raw_f << " " << std::hex << raw_f << std::endl; /* Převod na Cčkový string */ asprintf(&raw_f_cstr, "%x", raw_f); std::cout << raw_f_cstr << std::endl; return 0; }Jen tak mimochodem, převádět hexadecimální řetězec do binárního switchem je trochu dřevorubecké, udělal bych to spíš takhle
#define BITS_IN_INT (sizeof(int) * 8) #define MAX_HEX_NUMS (sizeof(int) * 2) std::string hex_to_bin(const std::string s) { size_t steps; size_t sl; std::string bin_out; sl = s.length(); if (sl == 0) return ""; steps = sl / MAX_HEX_NUMS; if (!(sl % MAX_HEX_NUMS)) steps--; bin_out.reserve((steps + 1) * BITS_IN_INT + 1); for (size_t idx = 0; idx <= steps; idx++) { int num; size_t from_idx = MAX_HEX_NUMS * idx; std::string ss = s.substr(from_idx, MAX_HEX_NUMS); if (sscanf(ss.c_str(), "%x", &num) < 1) { std::cout << "Invalid input" << std::endl; return ""; } for (size_t sidx = 0; sidx < BITS_IN_INT; sidx++) { if (num & (1 << (BITS_IN_INT - sidx - 1))) bin_out.append("1"); else bin_out.append("0"); } } return bin_out; }
mantissa = input & 0x7fffff; exponent = input >> 24; sign = (input >> 23) & 1; result = sign * mantissa * exponent * 2e-23
Zatim mi ale nenapada ta obracena cesta, tedy z cisla ziskat ten hex-string. (a nejaky takovy srozumitelny navod jsem nenasel).A v čem máš problém? Vždyť je to napsaný v tom dokumentu. A proč nemůžeš vzít normální IEEE float a prostě přehodit exponent a sign?
Tiskni Sdílej: