Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …
Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a
… více »Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 4.0.
Chybí vám někdo, s kým byste si popovídali o bastlení, technice, počítačích a vědě? Nechcete riskovat debatu o sportu u piva v hospodě? Pak doražte na virtuální pokec u virtuálního piva v rámci Virtuální Bastlírny organizované strahovským MacGyverem již tento čtvrtek. Možná se ptáte, co se tak může probírat? Dají se probrat slavná výročí - kromě 55 let obvodu 555 (což je mimochodem prý andělské číslo) a vzpomínky na firmu Signetics -
… více »GTK2-NG je komunitní fork GTK 2.24 (aktuální verze je 4.22). Oznámení a diskuse v diskusním fóru Devuanu, forku Debianu bez systemd. Není to jediný fork GTK 2. Ardour je například postaven na vlastním forku GTK 2 s názvem YTK.
V neděli 17. května 2026 proběhne v Českých Budějovicích první MobileLinux Hackday zaměřený na Linux v mobilech, embedded platformy a open source hardware. Po sedmi úspěšných měsíčních setkáních v Praze se akce přesouvá také do jižních Čech, aby se komunita mobilního Linuxu mohla potkat i mimo hlavní město. Akce se uskuteční v konferenčním sále Vajgar v Clarion Congress Hotelu (Pražská tř. 2306/14) se zahájením mezi 14:00 až 15:00 a … více »
Vývojáři Debianu zhruba v polovině vývojového cyklu Debianu 14 s kódovým názvem Forky rozhodli, že Debian musí dodávat reprodukovatelné balíčky, tj. kdokoli si může nezávisle ověřit, že daný binární balíček vznikl překladem a sestavením z konkrétních zdrojových kódů. Aktuálně je reprodukovatelných 98,29 % balíčků.
Německý e-shop Škoda Auto byl hacknut. Útočníci získali přístup k uživatelským údajům (jméno, adresa, e-mail, heslo, telefon, …).
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.