V aktuálním přehledu vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) bylo oznámeno vydání nové verze 0.4.0. Výrazně se zlepšilo vykreslování stránek jako lichess.org, Zulip nebo Speedtest.
Vládní CERT upozorňuje (𝕏) na kritické zranitelnosti v produktech VMware: CVE-2026-59309, CVE-2026-59310 a CVE-2026-47876. Zranitelnosti v VMware vCenter umožňují vzdálenému útočníkovi se síťovým přístupem obejít autentizaci a získat neoprávněný přístup k vCenter, případně zneužít directory traversal ke spuštění libovolného kódu na vCenter.
Společnost Coinkite upozorňuje na bezpečnostní chybu svých hardwarových kryptopeněženek Coldcard. Jedná se o kritickou chybu v generování náhodných čísel (RNG). Místo hardwarového generátoru náhodných čísel (TRNG) byl omylem používán softwarový fallback (PRNG).
Představena byla nová linuxová distribuce Shadowfetch Linux. Na rozdíl od mnoha nováčků, které nabízejí převážně jiné téma a výběr softwaru, tato distribuce založená na Debianu Testing s desktopovým prostředím KDE Plasma 6.6, klade lokálně běžící umělou inteligenci do centra svého desktopového zážitku.
Max Leiter v roce 2019 zkusil zprovoznit X server na iPadu (iOS). Nyní se k tématu vrátil a s pomocí LLM a balíčkovacích nástrojů Procursus rozběhl desktop s X11 i Waylandem. Jeho balíčky jsou dostupné v repozitáři xiOS.
Společnost Google Cloud dnes oznámila, že její infrastruktura a služby byly oficiálně zařazeny do Katalogu cloud computingu vedeného Digitální a informační agenturou (DIA). Tato certifikace potvrzuje, že infrastruktura a služby Google Cloud splňují přísné bezpečnostní a regulační požadavky České republiky pro provoz cloudových služeb ve veřejném sektoru.
Vůbec poprvé v historii se stát při testování digitálních služeb obrací na širokou veřejnost. Digitální a informační agentura (DIA) a Ministerstvo vnitra zvou občany k zapojení do zátěžového testu eDokladů, které od loňského podzimu prošly optimalizací aplikace a posílením infrastruktury. Test proběhne 13. srpna ve 13:00 a pro jeho úspěch bude potřeba zapojení několika desítek tisíc občanů. Zapojení do testu je zcela dobrovolné a úkol
… více »FireDragon je webový prohlížeč, doposud založený na Floorpu, jednom z forků Firefoxu s větším důrazem na ochranu soukromí a přizpůsobení uživatelského rozhraní. Spravuje ho člen komunity distribuce Garuda Linux. Nové vydání verze 13 opouští Floorp a přechází přímo na Firefox s patchi z LibreWolfu a vlastními úpravami. Dostupný je také na Flathubu.
picogame (GitHub) je malý 2D herní engine pro mikrokontroléry jako RP2040, čip uvnitř kapesní konzole Picopad. Hru napíšeš v Pythonu a vyzkoušíš ji v prohlížeči nebo desktopovém simulátoru. Až bude hotová, zkopíruješ ji na podporovanou desku. Na začátku nepotřebuješ C, sestavení firmwaru ani hardware.
Multiplatformní prohlížeč elektronických knih KOReader byl vydán ve verzi 2026.07 "Sailing Walrus". U PDF souborů s SMask lze vyčistit pozadí. Přibyla podpora Kobo v5 nebo základní podpora OPDS 2.0.
Tohle je moje odpověď na mail kamarádovi ohledně možností Pythonu na webu, třeba bude někoho zajímat taky, třeba někdo něco doplní.
CGI je pro web vcelku použitelné. Nevím, co to udělá s výkonem serveru, pokud bys měl hodně přístupů na ten web. Malé weby jako http://fotosoutez.cestovatel.cz/, http://promitani.cestovatel.cz/, http://www.koren.cz/kaplanovi běží jako CGI aplikace.
Výhoda CGI je v tom, že nemusím nasazovat žádnou sofistikovaný udělátor. Prostě rychle udělám skript, nastavím v Apachi ExecCGI, případně nějaký Rewrite či ScriptAlias a běží to. CGI v Pythonu (a obecně jakémkoliv skriptovacím jazyce) má nevýhodu, že se pro každý požadavek musí vytvořit nový proces a interpreter, zkompilovat skript do bytekódu a začít ho provádět. To může občas chvíli trvat. 
mod_python se to snaží vylepšit tím, že zapouzdří interpreter Pythonu do Apache. Pro jednoduché věci je to výhodné - vypadne režie nutná ke spuštění interpreteru, skript se kompiluje jenom jednou a pak se vždy vykonává. Navíc máš dokonce přístup k vnitřním proměnným Apache (což se taky občas může hodit). Největší nevýhodou mod_python vidím v tom, že aplikace běží pod oprávněním Apache, což není na produkčním serveru úplně ideální.
Pro mod_python existují různé zajímavé rozšíření (třeba publisher, který mapuje části cesty z URI na volání funkční z modulů, PythonServerPages handler - které umožňuje zapisovat do stránky kód v Pythonu podobně jako PHP a asi i spousta dalších.)
Myslím, že mod_python je vhodný zejména na drobné věci, na které neexistuje v Apachi modul - vhodné využití je třeba naprogramování autentizace proti SQL databázi, složitější přepisovací pravidla, na která mod_rewrite nestačí, nebo interakce s aplikačním serverem.
Pro reálné nasazení nám to v práci dělalo divné věci, všechno to běží uvnitř apache, různě se tam recyklovaly interpretery, takže se to hůř ladilo. Můj názor je, že mod_python je vhodný, pokud se kód vejde do cca 2 stránek na obrazovce. Tam je ještě možné uhlídat případné chyby a nenadělám moc velké škody.
FastCGI je IMHO slepá větev. (asi není!, viz diskuse níže) Místo obyčejného CGI skriptu se spáchá FastCGI skript, který běží dlouho a obsluhuje větší množství požadavků, které postupné dostává. Ušetří se opakované vytváření procesu, zavádění interpreteru a kompilace kódu. Výhodou je možnost použití s původním kódem pro CGI.
Nejvíce se mi teď líbí aplikační servery (možná existuje i lepší název, ale nevím o něm). Nejstarší je asi můj oblíbený Webware for Python, teď zrovna letí Django, TurboGears a CherryPy. (Můj oblíbený Cestovatel je postaven právě na W4PY.)
Co to je? Aplikační server je proces, který běží trvale (tedy měl by běžet
), přijímá požadavky a odpovídá na ně. Kde je rozdíl mezi aplikačním server a webovým serverem? Aplikační server nemusí umět a často ani neumí HTTP, ale má zase jiné přednosti.
).Existuje spousta dalších přístupů pro řešení webu v Pythonu, třeba Zope, Maki, WSGI a spousta dalších. S těmi jsem ale nepřišel do styku na dost dlouhou dobu.
Pro jednoduché aplikace, kdy se nezpracovávají velké objemy dat z databáze používám CGI skripty, pro aplikace, kde se stránka sestavuje z mnoha tabulek z databáze používám W4PY a důsledně cachuju (v době, když jsem začínal programovat nic jiného nebylo). Pro generování stránek používám Cheetah, ať už v CGI, tak i W4PY.
Líbí se mi Django, ale ještě jsem nenašel dost času ho prozkoumat, přecejen mne weby neživí.
Tiskni
Sdílej:
...pravda, apl. servery jsem jeste neprozkoumaval, ale na druhou stranu mi reseni webserver+fcgi vzdy stacilo...
u portálu s větší návštěvností (pěkně to popsané v starším Leošově článku) je výhodné držet si v cache věci, které jsem už načetl z databáze - ušetřím tím čas, který normálně strávím balením řádků z databáze (např.článků) do objektů. Do objektů je balím proto, že se s nimi potom dobře pracuje - třeba v šablonovacím systému. Při případné změně řádku v DB (editace článku) potom elegantně vysypu tu část cache, která je dotčená a běžím dál.Chápu, že pokud mám aplikaci v jednom procesu, který se dělí na více vláken, můžu cache jednoduše vysypat na jednom místě. Oproti tomu, pokud mám více procesů, musím všem procesům dát na vědomí, že se vysypat cache, což je velmi netriviální na implementaci (blbě se to programuje, blbě se to ladí, nevím kolik těch procesů je a tak). Více paralelních požadavků potřebuju, protože od určité návštěvnosti už jedna fronta požadavky obsluhovat stíhat nebude. --- Uvítám i myšlenky na efektivnější řešení
Memcached jsem zkoumal, ale nevěřím tomu, že picklovat a unpicklovat složité Pythonové objekty bude stejně rychlé jako držet je v paměti.
Vím, že od další určité hranice stejně budu potřebovat stejně více procesů - GIL je docela potvora, a synchronizaci mezi více procesy, ne-li počítači se nevyhnu. (POSH je zajímavá věc a nakonec i ten memcached pro synchronizaci mezi více počítači jsem ochoten vzít na milost).
Chápu, že pokud mám aplikaci v jednom procesu, který se dělí na více vláken, můžu cache jednoduše vysypat na jednom místě. Oproti tomu, pokud mám více procesů, musím všem procesům dát na vědomí, že se vysypat cache, což je velmi netriviální na implementaci (blbě se to programuje, blbě se to ladí, nevím kolik těch procesů je a tak).Opravdu si myslíš, že vysypat cache sdílenou více vlákny je bez synchronizace košér? To je ovšem velmi naivní představa.
Více paralelních požadavků potřebuju, protože od určité návštěvnosti už jedna fronta požadavky obsluhovat stíhat nebude.Jedná blokující fronta ti nebude stačit velmi brzy. Od určité návštěvnosti budeš potřebovat více web serverů. Vertikálně škálovat nelze donekonečna.
Memcached jsem zkoumal, ale nevěřím tomu, že picklovat a unpicklovat složité Pythonové objekty bude stejně rychlé jako držet je v paměti.Memcached určitě nebude nic picklovat. To bude dělat Python a pokud myslíš, že pomalu, pak zkus jiný jazyk, nebo ukládej objekty jiným (lepším) způsobem
.
Opravdu si myslíš, že vysypat cache sdílenou více vlákny je bez synchronizace košér? To je ovšem velmi naivní představa.Když cache má GET, PUT i FLUSH implementované atomicky, tak by neměl být problém. Pletu se? Oproti tomu udělat synchronizaci v cache mezi více procesy je IMHO řádově složitější. Memcached by to teoreticky řešil.
Memcached určitě nebude nic picklovat. To bude dělat Python a pokud myslíš, že pomalu, pak zkus jiný jazyk, nebo ukládej objekty jiným (lepším) způsobem.Picklovat bude Python, ale nedokážu si představit, jestli režie picklování nebude větší než natahování z databáze. Objekty, které teď držím v cache jsou poměrně složité. Jediný způsob, jak to zjistit je to vyzkoušet. (zkusím a napíšu). Jestli existuje něco pohodlnějšího, tak se rád nechám poučit. Nenašel jsem zatím jazyk, který by mně osobně vyhovoval více než Python. A že jsem se snažil. (no flame please
).
Od určité návštěvnosti budeš potřebovat více web serverů. Vertikálně škálovat nelze donekonečna.Že časem budu potřebovat víc webserverů je mi už teď naprosto jasný, zatím naštěstí mám dost času, myslím, že ještě rok mi ještě bude stačit posilovat hardware
IMHO, lepšie ako zdielaná cache je prekopanie aplikácie, človek sa môže dostať do situácie, keď mu na CRUD jednotlivých entít bude postačovať jeden subdaemon a výsledok bude skladať druhým(tretím, ..) stupňom.
Ale jinak hezky.