V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
def getdirsize(base):
size = 0
for root, dirs, files in os.walk(base):
for file in files:
filepath = os.path.join(root, file)
if os.path.islink(filepath): continue
size = size + os.path.getsize(filepath)
return size
Ale je to jen jednoduchá varianta, která za adresáře a linky nic nepřipočítává.
def human_readable(x, suffix = '', binary = True):
prefixes_dec = ['', 'k', 'M', 'G', 'T', 'P']
prefixes_bi = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi']
if binary:
base = 1024
prefixes = prefixes_bi
else:
base = 1000
prefixes = prefixes_dec
mul = base/999.5
mag = int(math.log(x * mul, base))
prefix = prefixes[mag]
not_rounded = float(x) / base**mag
r_order = 10**(2 - int(math.log(not_rounded, 10)))
rounded = math.ceil(not_rounded * r_order - 0.5) / r_order
return '%g %s%s' %(rounded, prefix, suffix)
Parametrem "binary" (který je True nebo False) rozlišuje decimální a binární předpony. Ty jsou sice na můj vkus trochu nezvyklé, ale co se dá dělat - viz:
http://physics.nist.gov/cuu/Units/binary.html
print human_readable(648218, 'Hz', binary=False)
print human_readable(187, 'bit/s', binary=True)
A teď mi někdo řekněte, jak by měla vypadat "human readable" 1001 bitů. Je to už čtyřmístné, ale když se to převede na Ki bity, tak se to scvrkne na 0.98. Blbé, co?
Tiskni
Sdílej: