Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na
… více »Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Článek na stránkách Fedora Magazinu informuje o vydání Fedora Asahi Remixu 43, tj. linuxové distribuce pro Apple Silicon vycházející z Fedora Linuxu 43.
Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.
Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.
Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »class image_create( QtGui.QDialog ):
def __init__( self, Parent ):
super( image_create, self ).__init__()
self.ui=uic.loadUi('UI/create_image_progress.ui')
self.ui.label_progress.setText("%i z %i" % ( 0, 0 ))
self.connect(self.ui.buttonBox_abort.button( QtGui.QDialogButtonBox.Cancel ), SIGNAL("clicked()"), self.get_cancel)
def get_cancel(self, event=False):
self.image_break = True
# it určí, jak se zobrazuje prováděná úloha, zda v IT MiB, nebo dakadických
def create(self, path, name, size, it=False ) :
self.ui.show()
self.image_break = False
if (size < 1024**3):
part_size = 128*1024 # 128k bloky
else:
part_size = 1024**2 # 1M bloky
parts=int(size/part_size)
frag=size-parts*part_size
allpath = os.path.join(path, name)
newfile=open(allpath, 'w')
oldperc=0
perc=0
part=chr(0)*part_size
for seq in range (1, parts+1):
newfile.write(part)
if ( self.image_break == True ) :
newfile.close()
os.remove(allpath)
break
total_done = part_size*seq
perc = int(float(total_done*100 / size))
#print "%i %i %i %f" % (seq, total_done, perc, float(total_done*100 / size))
if (oldperc < perc):
self.ui.progressBar.setValue(perc)
oldperc=perc
self.ui.label_progress.setText("%s z %s" % ( hr_value( total_done, 3 , it ), hr_value( size, 1, it ) ) )
if ( self.image_break == True ):
return 1
newfile.write(chr(0)*frag)
total_done = part_size*seq + frag
perc = int(float(total_done *100 / size))
#print "%i %i %i %f" % (seq+1, total_done, perc, float(total_done*100 / size))
self.ui.progressBar.setValue(perc)
self.ui.label_progress.setText("%i z %i" % ( total_done, size))
newfile.close()
return 0
# time.sleep( 5 )
Řešení dotazu:
import spam spam.ham = "dirt"Uvnitr modulu uvidis promenou
ham, spam je odkaz na jeho jmenny prostor. Ale takhle to nedelej, pacz je to neskutecna prasarna a prvni pythonista ktery to uvidi ti pracky urazi a necha te to za trest prepsat do php.
Porad prasacky ale aspon pouzitelny je udelat si v modulu inicializacni funkci ktera bude fungovat jako konstruktor. Ne ze by v tom byl technicky rozdil, ale je prehlednejsi mit veskerou logiku modulu uvnitr toho modulu a nespolehat se ze nekdo "zvenku" vi co a kam ma strcit aby to zacalo fungovat.
Uplne nejcistsi zpusob je udelat proste objekt a strkat veci konstruktoru. Vsechno je reference, takze muzes zonglovat s relativne velkym mnozstvim dat bez kopirovani a je veskrze jedno jestli mas v hlanim programu referenci na modul nebo referenci na nejakou instanci – vsechno je objekt. Jestli vis ze nebudes potrebovat vic jednu instanci tak je to zbytecne, naopak je jednodussi trochu opevnit modul s inicializacni funkci (hlavne zajistit aby nesel inicializovat vicekrat) a interpret z nej udela perfketni singleton bez prace.
Tiskni
Sdílej: