Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Red Hat představil nový nástroj Digital Sovereignty Readiness Assessment (GitHub), který organizacím umožní vyhodnotit jejich aktuální schopnosti v oblasti digitální suverenity a nastavit strategii pro nezávislé a bezpečné řízení IT prostředí.
BarraCUDA je neoficiální open-source CUDA kompilátor, ale pro grafické karty AMD (CUDA je proprietární technologie společnosti NVIDIA). BarraCUDA dokáže přeložit zdrojové *.cu soubory (prakticky C/C++) přímo do strojového kódu mikroarchitektury GFX11 a vytvořit tak ELF *.hsaco binární soubory, spustitelné na grafické kartě AMD. Zdrojový kód (převážně C99) je k dispozici na GitHubu, pod licencí Apache-2.0.
Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.
Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.
… více »Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
Zdravím všechny ..
nedávno jsem se tady dotazoval, jak oddělím zrno od plév (soubory a /*teď už vím, že se to jmenuje */ nody ). Dalším googlením jsem se dostal až ke knihovně pylibparted (stará, neudržovaná, ale dobře se s tím pracuje, no, a hlavně, je v opensuse repu.
Nicméně ... knihovna má problém ( spíše to bude vlastnost ) s CDROMkou, některé funkce na tom padají, a pro mnou zamýšlený program stejně o práci s CDROMkou neuvažuju.
Ok, takže zase odděluji zrno od plév. Otázka zní, jak poznám, že nod patří CDROMce ?.
Jedna možnost se nabízí načíst si /proc/partitions a pylibparted se dotázat na path (pylibparted.PedDevice.getPath() ) k zařízení a tuto cestu najít v partitions, kde máme major minor, podle http://lxr.free-electrons.com/source/include/uapi/linux/major.h?v=3.14 tohoto nějak určit, že dané zařízení je CD, a loopnout se na další zařízení v pořadí (tj, nepokračovat dalším očucháváním CDčka ).
Tato konstrukce může fungovat, ale pak jsem si uvědomil, že mc a dokonce i ls -l mi prásknou major minor u nodu, tak proč to takto zdaleka obcházet?
Hm, ale teď nemůžu přijít na to, jak se k major minor v pythonu dostanu.
os.stat sice vrací st_dev, ale u těch nodů je to míněno asi jako device, kde leží (možná ani to ne, protože to, co se mi vrací, není stejné číslo jako v partitions ... moc o tom nevím).
Prolézal jsem další možnosti, zkusil jsem googlit, ale rozmanitost ( a nepoužitelnost ) nalezených výsledků mne opět zahnala tam "kde mi rozumějí "
) tak snad jste to pochopili,
předem díky za nápovědu.
Milan
Řešení dotazu:
CDROM_GET_CAPABILITY). Pokud to CD-ROM není, tak řekne, že to neumí.
To druhé je ještě jednodušší. Při pokusu to zařízení otevřít dostanete chybu “No medium found” (ENOMEDIUM).
import pylibparted, os (a možná ještě něco)
def collect_disks( ):
result = { }
devs = pylibparted.probeAllDevices()
for p in devs :
# Device
d = pylibparted.PedDevice(p)
devpath = d.getPath()
devpath_stat = os.stat(devpath)
d_mode = devpath_stat.st_mode
if ( d_mode & 24576 <> 24576 ) :
#print 'Device:', devpath, ' is not block'
continue
d_major = devpath_stat.st_rdev >> 8
#print d_major
if ( not d_major in (8, 3, 22 ) ):
#print "Device ", devpath, ' is not a disk'
continue
result[ devpath ] = {}
model = d.getModel()
#print 'Model: ', model
result[ devpath ][ 'model' ] = model
result[ devpath ][ 'type' ] = 'D'
#print 'Device type :', d.getType()
size = d.getLength()
#print 'Size:', size
result[ devpath ][ 'size' ] = size
ssize = d.getSectorSize()
#print 'Sector size: ', ssize
result[ devpath ][ 'ssize' ] = ssize
disktype = d.diskProbe()
subtype = disktype.getName()
#print'Name: ', subtype
result[ devpath ][ 'subtype' ] = subtype
c,h,s = d.getBiosCHS()
chs = str(c) + '/' + str(h) + '/' + str(s)
#print 'BIOS CHS:', chs
c,h,s = d.getHwCHS()
chs = str(c) + '/' + str(h) + '/' + str(s)
#print 'HW CHS:', chs
# Partition table
pt = d.diskNew()
parts = pt.getPartitions()
for part in parts :
if part.isActive() :
part_path = part.getPath()
#print ' Partition:', part_path
result[ part_path ] = {}
result[ part_path ]['type'] = 'P'
parttype = part.getTypeName()
#print ' Type Name:', parttype
#print ' ID:', part.getId()
result[ part_path ][ 'model' ] = parttype
geom = part.getGeometry()
#print ' Start:', geom.getStart()
#print ' End:', geom.getEnd()
size = geom.getLength()
#print ' Length:', size
result[ part_path ][ 'ssize' ] = ssize
result[ part_path ][ 'size' ] = size
fs = part.getFsType()
if fs :
#print ' FS:', fs.getName()
result[ part_path ]['subtype'] = fs.getName()
# parts
# devs
return result
Tiskni
Sdílej: