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.
modul = dict()
modul["prvni"] = dict()
modul["prvni"]["soubory"] = dict()
modul["prvni"]["metody"] = dict()
modul["prvni"]["testy"] = dict()
modul["prvni"]["cmd"] = dict()
...
modul["prvni"]["cmd"]["filter"] = dict()
modul["prvni"]["cmd"]["filter"]["cesta"] = ['/aaa/bbb','/ccc/ddd']
modul["prvni"]["cmd"]["filter"]["typ"] = "sh"
modul["prvni"]["cmd"]["filter"]["bin"] = "/abc/text_filter"
Ve funkci či objektu si pak jednoduše zístám potřebné informace viz:
text_procesor = modul["prvni"]["cmd"]["filter"]["bin"]
Napadá vás jak lépe konfig zapsat?
Vím ,že položeb a zanoření slovníků bude dramaticky přibývat...
Dík
modul = { 'prvni' : { 'soubory' : {}, 'metody' : {}, 'testy' : {}, 'cmd' : { 'filter' : { 'cesta' : [ '/aaa/bbb', '/ccc/ddd', ], 'typ' : 'sh', 'bin' : '/abc/text_filter', }, }, }, }
collections.defaultdict
[modul_prvni] cmd_filter_cesta = /aaa/bbb,/ccc/ddd cmd_filter_typ = sh cmd_filter_bin = /abc/text_filterK volbám a jejich hodnotám z konfigurace se pak přistupuje takto.
config = configparser.RawConfigParser() config.read('config') print(config.get('modul_prvni', 'cmd_filter_cesta').split(','))Pro získání cest jako objektu pole.
....
modul = {}
modul[("prvni","cmd","filter","bin")] = "/abc/text_filter"
....
jojo, furt se mám co učit..
Dik
modul = { "prvni": { "soubory": {…}, "metody": {…}, "testy": {…}, "cmd": { "filter" = { "cesta": ['/aaa/bbb','/ccc/ddd'], "typ": "sh", "bin": "/abc/text_filter" } } } }Kdyby to byl jinej jazyk tak by se dal uvazovat json nebo nedejboze xml, ale zrovna u pythonu si tim moc nepomuzes. Druha vec je jestli je nutny tak hluboke strukturovani. Neni problem napsat pajtni kod tak aby co nejvic hodnot bylo defaultnich.
Tiskni
Sdílej: