Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »Společnost Valve zveřejnila (GitLab) nákresy ovladače Steam Controller a puku. Pro všechny, kdo by jej chtěli hacknout nebo modifikovat, případně pro ně navrhnout nějaké příslušenství. Pod licencí Creative Commons (CC BY-NC-SA 4.0).
PHP bylo dlouho distribuováno pod vlastní licencí – s výjimkou částí spadajících pod licenci Zend Engine. Po několikaleté práci se povedlo PHP přelicencovat na 3bodovou licenci BSD.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube). Na Linuxu je vedle Qt frontendu nově k dispozici také GTK4 / libadwaita frontend.
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.
Homebridge pro integraci chytrých domácích zařízení byl vydán ve verzi 2.0.0. Nově vedle protokolu HomeKit Accessory Protocol (HAP) podporuje standard chytré domácnosti Matter.
Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 3.7.0 - The Gaming Edition. Z novinek lze vypíchnout příkaz omarchy a celou řadu herních možností.
CyberChef byl vydán v nové major verzi 11. Přehled novinek v Changelogu. CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag).
Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.
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: