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.
Společnost Valve sponzoruje a společnost Collabora portuje RADV (open source Vulkan ovladač pro AMD GPU z projektu Mesa) na Windows.
Starling (GitHub) je desktopové prostředí vytvořeno umělou inteligencí (s dohledem jednoho vývojáře během šesti měsíců).
Dne 30. června 2026 byla završena fyzická realizace projektu Czech National Quantum Communication Infrastructure (CZQCI), tedy České národní kvantové komunikační infrastruktury. Projekt byl realizován od 1. března 2023 a financován z Národního plánu obnovy částkou 121,6 milionu Kč. Cílem podpořeného projektu bylo vybudovat základy národní kvantové komunikační infrastruktury a ověřit možnosti jejího praktického využití. Mezi
… více »Město Šumperk se stalo terčem kybernetického útoku, chod úřadu je omezen. Zjišťuje se, jestli unikla nějaká data. Cílem hackerů byla městská datová síť. První útoky zaznamenali odborníci na informační technologie již v pondělí večer, závady se ale plně projevily až dnes ráno. Město událost nahlásilo Národnímu úřadu pro kybernetickou a informační bezpečnost (NUKIB).
Samba, svobodná implementace síťového protokolu SMB/CIFS, byla vydána ve verzích 4.24.5, 4.23.10 a 4.22.11. Řešeno je 6 zranitelností.
Přední technologické společnosti (Adobe, Cadence, Capital One, Cisco, Cloudera, Cloudflare, Cognition, CrowdStrike, Databricks, Dell Technologies, DoorDash, Elastic, HPE, Hugging Face, IBM, LangChain, Linux Foundation, Microsoft, NAVER, NetApp, Nous Research, NVIDIA, OpenClaw, Palantir, Palo Alto Networks, Red Hat, Reflection AI, Salesforce, SAP, ServiceNow, Siemens, SK Telecom, Snowflake, SpacexAI, Synopsys, Thinking
… více »Krabix.cz je online 3D konfigurátor krabiček pro 3D tisk s exportem do STL. Běží přímo v prohlížeči. Nic se neposílá na server.
Nadace Open Home Foundation spustila veřejnou preview verzi komunitní databáze zařízení pro Home Assistant. Má fungovat jako „Wikipedie pro chytrá zařízení".
V mojom príklade memcache používa skutočne blokujúce sockety (nepoužíl som gevent.monkey.patch_socket).
Pojem non blocking io sa používa hlavne v súvislosti s node.js ale je to prakticky to isté, čo som ukázal v python kóde (to je ekvivalentné s kooperatívnym multitaskingom kde sa pri volaní i/o prepne úloha a obnoví sa znovu až keď budú buffery patrične naplnené). Rozdiel je len v tom, že v pythone sa to isté dá zapísať bez callbackov.
Cieľom blogu bolo ukázať, že to, čo je dnes akože novinka tu bolo dávno pred tým, len sa to volalo trochu inak.
Prepínanie úlohy pri I/O sa dá dosiahnuť rôznymi spôsobmi - systémové vlákna, nejaké pseudovlákna v interpretovanom jazyku, alebo eventmi riadený loop s callbackmi ako v node.js. Rozdiel je len v spôsobe zápisu (ktorý je v prípade node.js podstatne zložitejší).
Samozreme teraz nehovorím, že rýchlo prepíšme všetko do pythonu pretože tam oproti node.js nie sú knižnice na neblokujúce volania pripravené. Príkladom môže byť napr. memcache, ktorý by pri nahradení socketu neblokujúcimi socketmi spôsobil odpojenie od memcached servera. Súčasné riešenie ktoré som ukázal pracuje s memcache korektne tj. požiadavka, odpoveď, požiadavka, odpoveď na tom istom sockete. Ak by som povolil prerušenie dvojíc požiadavka - odpoveď dostal by som na tom istom sockete požiadavka, požiadavka ... chyba. Tu je potrebné teda použiť špeciálnu memcache knižnicu, ktorá obaľuje dvojice do synchronizačných primitív a aby to celé nefungovalo ako úzke hrdlo treba vytvoriť niekoľko spojení a používať connection poll.
Pojem non blocking io sa používa hlavne v súvislosti s node.jsTen pojem se používal v době, kdy o node.js ještě nikdo neslyšel.
Áno, akurát v poslednej dobe sa z toho stal taký buzzword. Ako som písal všetko tu už bolo dávno, neblokujúce IO sa riešili väčšinou vláknami a to že v nodejs funguje tak, že IO operácie okamžite vracajú undefined a vrtátená hodnota IO sa podstrčí callbacku je len obídenie obmedzení nodejs, žiadna zázračná technológia. To isté som ukázal v inom jazyku (konkrétne python, ale kľudne som mohol použiť čokoľvek iné, čo pozná vlákna) ale s jednoduchším a kratším kódom (vďaka tomu, že sa nemusia používať callbacky). Takže podčiarknuté a sčítané - node.js sa oplatí jedine vďaka knižniciam, ale samotný komfort pri písaní a čitateľnosť kódu tu netreba hľadať.
Áno, akurát v poslednej dobe sa z toho stal taký buzzword.Buzzwordy si nech pro personalistky a management.
Ako som písal všetko tu už bolo dávno, neblokujúce IO sa riešili väčšinou vláknamiVzhledem k tomu, že neblokující IO, tak jak je známý z POSIXových a podobných systémů, je v podstatě jedinou možností, jak se vláknům (či procesům) vyhnout, zní mi tato věta dost komicky. Jediné, co ti můžu doporučit je přestat se snažit o vysvětlení a něco si o tom přečíst. Třeba na anglickou wikipedii ta tvoje buzzwordová verze ještě nedošla. Já jsem srozuměn s tím, že za „neblokující“ se dá označit ledacos včetně toho vláknování, ale pod „neblokujícím IO“ si představuju neblokující vstupní a výstupní operace. A to jsou kupodivu IO operace, které neblokují proces (vlákno), které je spustilo. Alternativou k tomu je spuštění blokující operace v samostatném vlákně. Jenže to musí být skutečné vlákno operačního systému, jinak nelze vůbec samostatně ze strany OS zablokovat. Takže pokud se jedná o nějaká kooperativní falešná vlákna na úrovni bajtkódových instrukcí (tak jsem to ze zápisku pochopil), tak za tím bude mezivrstva, která používá právě neblokující IO operace.
V prípade pythonu je to skutočne kooperatívny multitasking a na asynchrónne operácie sa používa knižnica libev (v tomto konkrétnom prípade, neplatí všeobecne).
> [1, 2, 3, 10].sort() [1, 10, 2, 3]Tohle jinde nenajdeš
.
import vibe.d;
import memcache;
shared static this() {
auto memcache = new Memcache("127.0.0.1:11211");
memcache.set("msg_var", "vyrok_2013-07-12");
memcache.set("vyrok_2013-07-12", "vyrok pre dnesok");
auto settings = new HTTPServerSettings;
settings.bindAddresses = ["::1", "127.0.0.1"];
settings.port = 8080;
listenHTTP(settings, (HTTPServerRequest req, HTTPServerResponse res) {
auto msg_var = memcache.get("msg_var");
auto msg = memcache.get(msg_var);
res.writeBody(msg, "text/plain");
});
}
BTW. je to skoro 2x rychlejsi nez node.js
Tiskni
Sdílej: