Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
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
#!/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: