Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od
… více »Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.
Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.
Odkazy
Webový framework django obsahuje vlastný testovací web server s automatickým reloadom pri zmene súborov. Implementovaný je pollingom, pri ktorom sa raz za sekundu skenuje každý zdrojový kód (vrátane knižníc). Preto som sa rozhodol implementovať malý skript, ktorý bude používať inotify a webovú aplikáciu automaticky reloadne pri uložení súboru.
Zdrojové kódy som ako zvyčajne hodil na github. Skript run-django využíva knižnicu watchdog na detekciu zmien medzi zdrojovými kódmi projektu. Po zmene súboru skript počká zvolený časový interval, následne ak nebol zmenený žiaden ďalší súbor pošle SIGHUP signál uwsgi procesu. Zaujímavé časti kódu sú:
class ReloaderEventHandler(events.PatternMatchingEventHandler):
RELOAD_ON_EVENTS = {
events.EVENT_TYPE_MOVED,
events.EVENT_TYPE_DELETED,
events.EVENT_TYPE_CREATED,
events.EVENT_TYPE_MODIFIED,
}
def __init__(self, *args, **kwargs):
self.proc = kwargs.pop('proc')
self.reload_wait_time = kwargs.pop('reload_wait_time')
self.timer = None
super(ReloaderEventHandler, self).__init__(*args, **kwargs)
def _run(self):
if self.timer is not None:
self.timer.cancel()
pid = self.proc.pid
def reload_uwsgi():
print("Reloading uwsgi ...")
os.kill(pid, signal.SIGHUP)
self.timer = None
self.timer = threading.Timer(self.reload_wait_time, reload_uwsgi)
self.timer.start()
def on_any_event(self, event):
if event.event_type in self.RELOAD_ON_EVENTS:
self._run()
def main():
event_handler = ReloaderEventHandler(patterns=['*.py'], proc=proc)
observer = Observer()
observer.schedule(event_handler, path=os.path.abspath("."), recursive=True)
observer.start()
Zvyšok kódu sú viac-menej nechutnosti ako načítavanie konfigurácie (~/.config/run_django.cfg), parsovanie argumentov či ofarbenie logov.
sudo install run-django /usr/local/bin/
Kto chce domáce cvičenie z bashu nech si to prepíše na mkdir a cp ;)
Doteraz som pri práci spúšťal django príkazom python manage.py runserver_plus z balíka django-extensions, ktorý zobrazil pri výnimke namiesto štandardného stack trace werkzeug debugger. Do repozitára som pridal wsgi skript s podporou werkzeug - wsgi_werkzeug.py, ktorý stačí skopírovať do vlastného projektu, prepísať DJANGO_SETTINGS_MODULE a spustiť run-django --module wsgi_werkzeug.
Tiskni
Sdílej:
Po zmene súboru reaguje čakaním 0.1s (neviem ako iné editory, ale vim ukladá najskôr do dočasného súboru a následne premenuje súbor, takže je to taký hack aby nedošlo k race condition)To je pořád race condition, jen s o 0.1 s menší citlivostí
Lepším řešením by bylo (pokud to watchdog API umožňuje) dočasné soubory filtrovat (např. ignorovat basename ".goutputstream-*" pro GIO-based editory jako Gedit nebo Geany).
Myslím, že väčšina editorov ukladá s dočasnou príponou a ja kontrolujem .py súbory, takže toto problém robiť nebude aj keď dám čas 0. Ošetrenie je skôr pre prípady keď sa uloží viacej súborov naraz, alebo sa vygeneruje adresár s novou app (django-admin.py startapp vytvára asi 4 súbory "naraz").
Vďaka za pripomienky. Upravil som skript aby fungoval rovnako + pridal som parameter reload_wait_time (dá sa vložiť do konfiguračného súboru, alebo pri každom spustení príkazu), ktorým sa nastavuje príslušný interval.
O reloade vo werkzeugu viem, len akosi s djangom to nefunguje moc dobre. Používal som django_extensions, doinštaloval som watchdog, pri štarte to vypísalo pekne, že využíva inotify reloader, ale aj tak to žralo cca 5% CPU permanentne, čo pri práci vonku na baterke neakceptujem 
Poznám, len neviem, či je to bug alebo funkcia, ale s runserver_plus síce vypíše, že používa inotify reloader, ale pritom stále kontroluje súbory každú sekundu. Tiež sa mi nezdá práve najšťastnejšie registrovať inotify pre všetky použité knižnice. Momentálne používam na virtualenv squashfs pripájaný cez squashfuse a registrácia inotify tam trvá okolo 10s.