Byly publikovány informace o 4 kritických bezpečnostních chybách v CUPS (Common UNIX Printing System): CVE-2024-47176, CVE-2024-47076, CVE-2024-47175 a CVE-2024-47177. Vzdálený neověřený útočník může tiše nahradit adresy IPP stávajících tiskáren (nebo nainstalovat nové) za zlovolné, což může mít za následek spuštění libovolného příkazu (RCE) při spuštění tiskové úlohy.
Tcl/Tk, tj. programovací jazyk Tcl (Tool Command Language) a související GUI toolkit Tk, bylo vydáno v nové major verzi 9.0.0. Po 27 letech od vydání 8.0.0.
Mastodon CZ Sraz 2024, tj. druhý ročník srazu uživatelů Mastodonu a Fediverse proběhne 11. října 2024 v Praze.
Projekty Tor a Tails se spojují. Tails bude začleněn do struktury projektu Tor pro snazší spolupráci, lepší udržitelnost, snížení režie, rozšiřování povědomí o větším počtu digitálních hrozeb a lepší ochranu před sledováním a cenzurováním.
Společnost System76 vydala druhou alfa verzi desktopového prostředí COSMIC Epoch 1 společně s alfa verzí Pop!_OS 24.04 LTS.
Byl vydán PostgreSQL 17. Přehled novinek v poznámkách k vydání.
Společnost Meta Platforms na své dvoudenní konferenci Meta Connect 2024 představuje novinky: brýle Orion (původně Project Nazare) pro rozšířenou realitu (AR, Augmented Reality), nový VR headset Meta Quest 3S, vylepšené chytré brýle Ray-Ban Meta nebo Llama 3.2, tj. nejnovější verzi svého velkého jazykového modelu.
Počítačová hra XBill (Wikipedie) oslavila v létě 30 let. V devadesátkách Linuxáci poctivě bránili Billovi v instalaci Windows. Bohužel hry XSteve a XSatya nevznikly. A nemáme ani hru XTim. Proto není Linux na desktopu tak rozšířený ☺. Mimochodem, po 25 letech byl aktualizován XBill pro PalmOS.
Počítačová hra Elite (Wikipedie), 3D vesmírní simulátor, byla vydána před 40 lety, 20. září 1984. Při té příležitosti byly zveřejněny další zdrojové kódy Elite pro platformy Apple, Atari, C64, NES a SNES a nedokončené Elite II pro BBC Micro.
V květnu bylo oznámeno, že dnes budou zveřejněny zdrojové kódy přehrávače Winamp. Stalo se tak (𝕏). Zdrojové kódy jsou k dispozici na GitHubu. Nejedná se ale o svobodný a otevřený software (licence).
tail -f
). Zkoušel jsem to přes fork a semafor, ale dostal jsem tip, že by se to mělo nějak dát udělat přes MainLoop() - to je koneckonců smyčka, která by měla zavolat určitou funkci kontrolující soubor.
Ale zatím jsem nenašel "obecný" postup, jak toho dosáhnout. Programátor nejsem, netuším, po čem vlastně pátrám.
Používám wxPython (ale postup asi bude obecný pro jaký koliv toolkit), část kódu:
class Monitor(wx.App): def OnInit(self): init GUI [....] def watcher(self): if zmena_v_souboru: zmena_v_gui def main(): pymonitor = Monitor(0) pymonitor.MainLoop() main()Jak na to? Díky
tail -f
ve wxPythonu jsem potřeboval ve Wammu, třeba se tam můžeš inspirovat .
#!/usr/bin/env python import sys, os, select, fcntl, signal SEEK_SET, SEEK_CUR, SEEK_END = 0, 1, 2 bufsize = 4096 def handler_SIGIO(a, b): pass def dump_to_end(fd): while True: chunk = os.read(fd, bufsize) if not chunk: break sys.stdout.write(chunk) fd = os.open(sys.argv[1], os.O_RDONLY) signal.signal(signal.SIGIO, handler_SIGIO) filepos = 0 while True: os.lseek(fd, filepos, SEEK_SET) dump_to_end(fd) filepos = os.lseek(fd, 0, SEEK_CUR) print filepos fcntl.fcntl(fd, fcntl.F_SETLEASE, fcntl.F_RDLCK) signal.pause()Dá se to udělat i jinak? Nevýhodou je to šaškování se signálem a volání pause()
#!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk, gobject, stat, os, sys class WatchFile: def __init__(self, filename): self.filename = filename self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect('delete_event', self.delete_event) self.window.connect('destroy', self.quit) self.checkbut = gtk.CheckButton('File "%s" has changed' %filename) self.checkbut.show() self.times = (None, None, None) self.has_changed() gobject.timeout_add(1000, self.periodic_check, None) self.window.add(self.checkbut) self.window.show() def periodic_check(self, object): if self.has_changed(): self.checkbut.set_active(1) return True def has_changed(self): sr = os.lstat(self.filename) t = (sr.st_atime, sr.st_mtime, sr.st_ctime) if t != self.times: self.times = t return True else: return False def delete_event(self, widget, data): return False def quit(self, widget, data = None): gtk.main_quit() def main(self): gtk.main() if __name__ == '__main__': wtch = WatchFile(sys.argv[1]) wtch.main()Tohle ukáže checkbox, který se automaticky zaškrtne při každé změně souboru. Odšktrnutí jsem ponechal na uživateli, ať si klikne myší. Každou sekundu to kontroluje všechny tři časy u souboru. Jádrem pudla je timeout_add, o kterém psal Petr Mach.
self.timer = wx.wxPyTimer(self.watcher) self.timer.Start(1000) self.watcher() # to je ta funkce, která to celé děláčerpal jsem z roota (cirkus s okny) dík za nasměrování správným směrem.
Tiskni Sdílej: