Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.
Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u
… více »Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila (𝕏) open-source robota Microduck. Předobjednat jej lze za 340 eur.
Open-source autonomní AI agent OpenClaw (Wikipedie) byl vydán ve verzi 2026.8.1 aneb 2.0. Přehled novinek v poznámkách k vydání.
Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším
… více »Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.
Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.
Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.
Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.
Odkazy
Už je to okrúhlych 10 rokov od kedy python má podporu asynchrónneho programovania. Tento článok z alternatívneho vesmíru nám ukáže ako mohol vyzerať python ak by sa vydal trocha inou cestou.
Už okolo roku 2010 začalo byť jasné, že budúcnosť webových aplikácií patrí dlho bežiacim socketom. Tradičné formy konkurentného behu ako procesy a vlákna boli pre tento účel príliš ťažké a tak sa oprášil starý koncept kooperatívneho multitaskingu používaný v operačných systémoch v minulom tisícročí.
Do úvahy sa brali rôzne alternatívy ako napríklad zavedenie kľúčových slov async a await, čo je inak povedané farbenie funkcií. V praxi by to znamenalo, že každá knižnica, každý kód, ktorý by mal podporovať súčasné blokujúce API a zároveň asynchrónne API by musel implementovať oba. Znamenalo by to duplikáciu kódu skoro celého python ekosystému a to nikto nechcel.
Väčšina sync / async funkcií sa v praxi líši len farbou a jedným volaním. Ak by sa python vydal touto cestou, určite by vznikli rôzne automatizované nástroje ako tento vtip menom unasync.
Určite by veľké frameworky ako Django mali problémy, ktoré by sa preberali v dlhých diskusiách.
Existovali by problémy s async property, pretože by nebolo možné sprístupniť ORM related model ako book.author ktorý by bol synchrónny alebo asynchrónny keď to, či pristupuje k databáze závisí od toho, či bol dotaz volaný so select_related (žiaden prístup), prefetch_related (prístup pri prvom objekte v iterácii), alebo prístup v každom objekte. Jednoducho s async / await by to bol veľký chaos, ktorý by roky trápil a rozdeľoval komunitu.
Každá blokujúca I/O operácia implementovaná v pythone má svoju sync a async variantu. Tá sa volí podľa kontextu, v ktorom je spustená.
Aby program bežal kooperatívne postačuje, aby kooperatívna časť bola spustená ako CooperativeThread. API zostáva kompatibilné so systémovými vláknami, ale spracovanie udalostí CooperativeThread sa uskutočňuje buď v implicitnom event-loope, alebo vo vlastnom loope explicitne poslanom konštruktoru CooperativeThread.
Toto jednoduché rozšírenie pythonu prinieslo kooperatívny multitasking aj do starého kódu bez akejkoľvek nutnosti upraviť kód. Knižnice sa stali automaticky kooperatívnymi v momente keď sa spustili v správnom kontexte. Netreba nič prepisovať, len doplniť malú časť do pythonu. Všetko ostatné je zadarmo.
Ak sa pýtate, či je to v súlade s python Zen tak nie:
Explicit is better than implicit.
Niekedy si radšej zababrem ruky za lepšie riešenie než by som sa striktne držal pravidiel.
Tiskni
Sdílej:
Myšlienka je nehanebne vykradnutá z Java virtual threads. Nerád to priznávam, ale Java predsalen niečo urobila dobre. Alebo som už starý a väčšina mozgových buniek mi už odumrela a preto tajne obdivujem Javu. Videl som snahu o await anywhere, čo by problém do istej miery riešilo - cpython-await-anywhere. No a nakoniec existuje ešte celá veľká diskusia o virtual threads.
Tie farby sú hlavne v Djagngo problém a nadávam na to od rána do večera. Transakcie s tým nefungujú. Všetky async db funkcie sú implementované tak, že sa spúšťajú synchrónne v jednom vlákne s neskutočnou réžiou jedného async volania okolo 1ms. Nie je to rýchlejšie ani o chlp a všetko okolo je proste nepodarený vtip. Stackless, twisted aj gevent poznám. Geventu som tak trocha držal palce, že nektoré myšlienky by mohli byť zapracované (ale nie ako monkey patch).
Tie farby sú hlavne v Djagngo problém a nadávam na to od rána do večera. Transakcie s tým nefungujú. Všetky async db funkcie sú implementované tak, že sa spúšťajú synchrónne v jednom vlákne s neskutočnou réžiou jedného async volania okolo 1ms. Nie je to rýchlejšie ani o chlp a všetko okolo je proste nepodarený vtip.Jo, já vím. Taky mám jeden sync kód kde tohle musím volat pro každý uživatelský požadavek (flask) na grpc service, protože ten tým co píše tu service zveřejňuje jen async balík a je to fakt oser. U nás jedem všechno sync + mutltithreading / multiprocessing, tak nějak to dělá můj život snažším, i když to má pár nevýhod. Co mě zaráží je kolik lídí v mém okolí často přijde s tím že "pojďme to přepsat na async, bude to lepší" a pak nejsou schopni odpovědět jak. Lehce unrelated; nedávno někdo posílal https://github.com/Dicklesworthstone/asupersync, to vypadá docela cool. Ještě mnohem víc unrelated a cool: Tohle doporučuji Computer System Organization: The B5700/B6700 Series, je to docela krátké a překvapivě relevantní i dneska. Čuměl jsem jak moc z toho používáme a byl překvapen jak moc ne, hlavně co se týče paralelizace a synchronizace procesů.
Dik za linky, pozriem si.
Nemám kolegov, s ktorými by som preberal takéto technické veci, ale keď vidím v internetových diskusiách ako všetci nadšene tlieskajú nápadom prepíšme to všetko do async tak len krútim hlavou. Ľudia nechápu tomu, čo je kooperatívny multitasking a ako málo sa z toho dá vyťažiť ak práve nerobia náhodou multi user chat s tisícmi aktívnych websocket spojení, lenže to je niečo dosť špecifické.
V dobe AI aj súhlasím, že Java je dobrá. V dobe pred AI som silne preferoval jazyky, ktoré umožňujú jednoducho špinavým spôsobom implementovať veľa na málo riadkoch kódu. Ľahšie sa to píše a hlavne ľahšie sa to číta. Návrhové vzory? Meh. Singleton? Meh, bac niečo do modulu. Ochrana? Meh. Sme dospelí. Až sa budem hrať so zápalkami viem čo sa stane. Teraz väčšina ľudí mávne rukou nad riadkami. Keď niekedy prepisujem 50-riadkový AI python kód na 20 riadkový pripadám si ako dinosaurus. Na rozdiel od samotného jazyka Java mám Java VM veľmi rád a myslím, že je celkom lightweight. Taktiež memory overhead nie je tak hrozný keď si človek uvedomí, že typické C po mallocu a free fragmentuje.
Dať to agentovi to neviem, lebo neviem, čo je cieľ. Chcem čitateľný krátky nie overengineered kód, ale agent nerozumie. Agent spraví. Ja nerozumiem. Agent ukecaný. Ja nie. Ja priamy. Hack hack done.
Cieľ je aby to vedel zmeniť / opraviť / prečítať človek. Vidím zložitý algoritmus a myslím, že nemusí byť zložitý. Prepíšem ho. Okrem toho väčšinou píšem v pythone takže málo balastu a väčšinou mi ručný zásah zaberie menej času než vysvetľovať čo presne chcem.
s/Java/Python/gTakhle se právě programuje v Pythonu – výkonný kód je v nativních knihovnách, často nepřenositelný a křehký. A kód v Pythonu je jen vrstva lepidla nad tím. V Javě je naopak běžné implementovat knihovny v čisté Javě. Nativní se používají jen pro takové věci jako OpenGL nebo interakci s hardwarem. Ale i třeba kryptografii nebo síťové protokoly a de/kodéry formátů máš čistě v Javě (tzn. přehlednější a mj. bezpečnější než třeba nativní céčko).
Dělá se mi mdlo při představě v tom něco kódovat. Aplikace, která dotahuje jako závislost JRE je pro mě red flag.
Ten patla matla Žako není žádný linuxák. Jenom pták.
select.poll() rulez - stara skola - ziadne farby ani nic, proste to funguje. mam rad jednoduchy jednosluckovy kod nez sa hrabat v asynchronne beziacich funkciach, casto sa v tom clovek dokaze stratit ,-)
epoll() linux, alebo kqueue() bsd - dalsie triestenie ktore snad nikdy nepochopim. + select.select() - na tak zasadnej veci sa sa nedokazali dohodnut, kazdy kopiruje ale tuto dolezitu vec linux skopirovat nevedel. a najhorsie je to, ze tuto zakladnu vec vobec nereimplementovali priamo do klasickeho poll() ale musim riesit platformu na ktorej kompilujem alebo pouzivat kniznice ako selectors
select.poll má lineární složitost, takže už je desítky let lepší se mu vyhnout (např. použít epoll). Neschopnost místních "programátorů" mě nepřestává udivovat
select.poll() rulez - stara skola - ziadne farby ani nic, proste to funguje. mam rad jednoduchy jednosluckovy kod nez sa hrabat v asynchronne beziacich funkciach, casto sa v tom clovek dokaze stratit ,-)
Ale beze srandy, chápu, že už to pro tebe neni, tak prosím nenavrhuj jak se to má dělat teď, jo?
A taky ses tu svého času kasal, jak vyděláváš na WordPressu
Toto jednoduché rozšírenie pythonu prinieslo kooperatívny multitasking aj do starého kódu bez akejkoľvek nutnosti upraviť kód.Tohle mi přijde jako extrémně optimistické tvrzení. IMHO tenhle přístup obecně povede jen ke zvýšení latencí a bude potřeba celý kód přepsat. Pokud jseš ty, kdo rozhoduje o kontext switchi, tak prostě musíš zajistit, že nesedíš na CPU moc dlouho, jinak brzdíš ostatní. V synchronním kódu to za tebe řeší někdo jiný, ale v async kódu je to na tobě. Proto i když je to otravný, tak dává smysl funkce barvit, protože sémantika je jiná.
Tvrdenie nie je optimistické a reálny rozdiel nemusí byť merateľný. Kontrola na úrovni volania nemusí existovať. V momente keď posielam funkciu CooperativeThread môže python urobiť runtime špecializáciu funkcie (1 volania za celý beh programu), ktorý ju špecializuje na stackless / async so sémantikou kódu bez farbenia.
Ja som tu nebol ten, kto písal o latencii a výkone. Plne chápem, že async je pre mňa dobrý ak musím držať tisíce otvorených spojení a nemá to nič spoločné s výkonom. Toto mi vážne netreba vysvetľovať. Teraz píšem aplikáciu v async frameworku (FastAPI) a mám chuť niekoho nakopať za ten návrh. Všetko musím farbiť aj keď nikde reálne nedržím spojenia. Pretože niekto rozhodol, že async je lepší. Java s virtual threads to dokázala implementovať a čuduj sa svete nie nie je to 100x pomalšie než 1 sériové vlákno. Ak sa bavíme o výkone tak sa musíme baviť o implementácii, lebo výkon závisí od implementácie. Ak to bude implementované dobre, nebude to 100x pomalšie než 1 sériové vlákno. Rozdiel bude odhadom v jednotkách % oproti natívnom async.