Byl vydán Debian 13.6, tj. šestá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.15, tj. poslední patnáctá opravná verze Debianu 12 s kódovým názvem Bookworm, k dispozici je LTS. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.
Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží
… více »Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.
Europarlament podpořil pozměněnou verzi výjimky známé jako „chat control 1.0“ umožňující firmám skenovat soukromou komunikaci na internetu kvůli ochraně dětí před zneužitím. Pozměňovací návrhy přijaté europoslanci však počítají s tím, že z výjimky bude vyřazena šifrovaná komunikace. Výjimka přestala platit začátkem dubna poté, co se Evropský parlament a Rada EU nedokázaly shodnout na jejím prodloužení. Rada následně přijala
… více »Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala téměř 16 let (od srpna 2010 do června 2026).
Víte že můžete odebírat mé blogy pomocí RSS? (Co je to RSS?)
Od určité doby jsou všechny texty které zde publikuji verzované na Githubu.
Jestliže najdete chybu, nepište mi do diskuze a rovnou jí opravte. Github má online editor, není to skoro žádná práce a podstatně mi tím usnadníte život. Taky vás čeká věčná sláva v commit logu :)
Narazil jsem na velmi zajímavě vypadající knihu o umělé inteligenci, plným názvem Artificial Intelligence - foundations of computational agents. Kniha je na webu dostupná pod Creative commons licencí, ale jen jako HTML. Na webu se sice s trochou snahy dá najít i jako .pdf, ale to mi moc nepasuje do čtečky, proto jsem se jí rozhodl převést na epub.
Na začátku jsem o epubu nevěděl skoro nic, kromě toho že to jsou XML v ZIPu. Postupně jsem zjistil, že epub je docela fajn formát, i když má pár svých podivností. Stránka na anglické wikipedii se v tomhle ohledu ukázala jako víc než užitečná, v podstatě se dá použít jako návod.
Co se mi na něm líbí je struktura, kde jednotlivé kapitoly v podstatě odpovídají HTML stránkám, tak jak jsou na webu. To celé se obalí dvěma XML, přidá se trocha omáčky v podobě dvou zbytečných souborů, které tam vůbec být nemusely, zabalí do zipu a je z toho skoro epub.
mimetype META-INF/ container.xml OEBPS/ content.opf toc.ncx ...
První tři řádky obsahují soubory, které jsou jasně dané a není na nich co řešit. mimetype je jen textový soubor obsahující string "application/epub+zip".
container.xml je základní informační soubor, který musí být ve složce META-INF a skoro nic neobsahuje:
<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
Podstatný je jen full-path argument tagu <rootfile>, který obsahuje cestu k souboru kde jsou v podstatě všechna ostatní metadata. Z nějakého divného důvodu je ve většině souborů do kterých jsem koukal konvence používat složku pojmenovanou OEBPS/, ale našel jsem i takové, které jí neobsahují a všechno ostatní je rovnou v rootu e-knihy.
Ve složce OEBPS/ už není nijak definovaná struktura a tak jsem jí použil jako hlavní úložiště na všechny .xhtml soubory z webu. V případě Artificial inteligence jich je přes 350. Kniha používá docela velkou granularitu a tak v podstatě co pár stránek je nová podkapitolka ve vlastním souboru.
Do složky OEBPS/images jsem pak nacpal všechny obrázky, na které se HTML soubory odkazují.
Původně jsem psal jednoduché stahovátko, které mělo poukládat všechny odkazy z indexu, poměrně záhy jsem ale zjistil, že index obsahuje jen dvě úrovně nadpisů. Stránky, kde kapitoly začínají třetí úrovní nebyly staženy a než jsem přišel na to co se vlastně děje, celé se to zkomplikovalo víc, než bylo nezbytně nutné.
Zpětně docela lituji, že jsem tu stahovací část psal v pythonu, protože je do velké míry zbytečně složitá a na stejnou věc by bohatě stačil wget. Takhle mi pod rukou vykvasily čtyři třídy, které se rekurzivně volají a celá ta architektura je dost divná. Zpětně nemám tušení, proč jsem to takhle napsal, prostě mi to nějak organicky vyrostlo pod rukama, ani nevím jak. Moc dobře jsem se nevyspal a tohle byl prostě jeden z těch dní, kdy je jednodušší upravovat zdroják a nabalovat další věci, než se zastavit, rozmyslet si co vlastně dělám a pak to udělat pořádně.
Script v podstatě rekurzivně prochází web, vyřezává ze stránek patřičný <div> s odkazem, aby tam nebyly různé blbosti kolem jako menu a tak a ukládá si je do paměti jako objekty. Když narazí na obrázek, tak ho stáhne do paměti, zkonvertuje cesty na lokální složku images/ a upraví odkazy v HTML, aby ukazovaly správně.
Původně jsem si říkal, že by bylo dobré soubory průběžně ukládat na disk, ale pak mi došlo, že u těhle objemů je to stejně jedno. Co jsem tak koukal, vezme si to něco okolo ~40MB paměti a tak je to stejně buřta. Nemá smysl předčasně optimalizovat.
Speciálním souborem je XML soubor s titulním obrázkem. To je to co většina čteček zobrazuje jako ikonu a v metadatech to má své speciální místo.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Cover</title> <meta content="urn:uuid:c02e8919-1dc2-4489-a5ce-979dc262dd1e" name="Adept.expected.resource"/> </head> <body> <a id="cover"/> <img alt="cover" src="images/182_9780521519007.jpg" style="height: 100%;"/> </body> </html>
Osobně moc nechápu, proč je soubor s obrázkem XML, kde je obrázek vložený stejně jako do HTML stránky. Asi je fajn mít možnost tam přidat nějaké texty, ale naprostá většina ebooků stejně použije rastrový obrázek, když už pro nic jiného, tak aspoň jako pozadí. Optimalizovat se s tím, aby se přes CSS všechny HTML nadpisy a jména autorů zobrazila správně na všech čtečkách a ještě i jako miniatury, to může asi jen masochista.
Edit: Při závěrečných kontrolách článku jsem si všiml <meta> značky. Ta tam být pravděpodobně nemusí, vzal jsem to někde z nějakého příkladu a teď jsem moc líný to všude odstraňovat.
Nyní se konečně dostávám k tomu, co mi na celém procesu zabralo nejvíc času. Vytvoření validních metadat se ukázalo jako poměrně složité, protože mi stačilo na tom všem zabít celé odpoledne a nechtělo se mi trávit další čas studiem kompletní specifikace.
Tenhle soubor je jedna z prvních zbytečností. Měl by to být obsah knihy, celé to má ale dva problémy - jednak je to samé v podstatě znova duplikováno v content.opf a druhak skoro každá kniha, na kterou jsem koukal používá separátní HTML soubor, kde je obsah nastylovaný tak jak ho tam chtějí autoři.
XML je docela jednoduché:
<?xml version="1.0"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <head> <meta name="Artificial Intelligence - foundations of computational agents" content=""/> </head> <docTitle> <text>Artificial Intelligence - foundations of computational agents</text> </docTitle> <navMap> <navPoint id="navpoint-0" playOrder="0"> <navLabel> <text>Cover</text> </navLabel> <content src="book_cover.xhtml"/> </navPoint> </navMap> </ncx>
V <meta> tagu a v <text> je název knihy. V kontejneru <navMap> se potom pro každou kapitolu opakuje tag <navPoint>.
V <navPoint> jsou atributy id a playOrder, které prostě inkrementuju výš a výš, s každým dalším <navPoint> tagem. Podelement <navLabel> obsahuje tag <text> s názvem kapitoly, na kterou se odkazuje. Tag <content> pak má v atributu src odkaz na soubor s kapitolou.
Hlavním souborem se všemi podstatnými metadaty je content.opf. Pojmenovaný a umístěný může být v podstatě jakkoliv, kde ho najít ukazuje META-INF/container.xml, o kterém jsem už psal.
V souboru jsou v kontejneru <manifest> uloženy odkazy na všechny ostatní soubory kromě sebe sama, zmiňovaného container.xml a mimetype.
<?xml version="1.0"?> <package version="2.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId"> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf"> <dc:title>Artificial Intelligence</dc:title> <dc:title>foundations of computational agents</dc:title> <dc:creator opf:role="aut">David Poole</dc:creator> <dc:creator opf:role="aut">Alan Mackworth</dc:creator> <dc:format/> <dc:date>2010-06-07</dc:date> <dc:subject/> <dc:description/> <dc:rights/> <dc:language>en</dc:language> <dc:identifier id="BookId" opf:scheme="ISBN">9780521519007</dc:identifier> <meta content="cover" name="cover"/> </metadata> <manifest> <item href="toc.ncx" id="ncx" media-type="application/x-dtbncx+xml"/> <item href="images/ch04_GradientDescent.png" id="ch04_GradientDescent_png" media-type="image/png"/> ... </manifest> <spine toc="ncx"> <itemref idref="book_cover_xhtml" linear="yes"/> <itemref idref="ArtInt_html" linear="yes"/> ... </spine> <guide> <reference href="book_cover.xhtml" title="Cover" type="cover"/> <reference href="ArtInt.html" title="Table of Contents" type="toc"/> </guide> </package>
Kontejner <spine> je potom jeden z důvodů, proč se mi zdá předchozí soubor toc.ncx jako blbost, protože obsahuje v podstatě to samé - všechny kapitoly tak jak mají jít za sebou, s tím že se na ně odkazuje přes parametr id tak, jak byl definovaný v kontejneru <manifest>. Na pořadí zde záleží.
Na konci je pak kontejner <guide> obsahující <reference> tagy na věci jako je vlastní HTML index knihy a stránka obsahující obálku.
Výsledkem celého uvedeného souboru je skoro epub. Tváří se to jako epub, calibre to otevře jako epub, plugin do firefoxu to otevře jako epub, ale moje čtečka si z toho pšíkne, zakoulí očima a vysvětlí, že to teda ne.
Jak udělat ze skoro epubu epub jak se patří? Zkonvertovat ho z epubu do epubu přece!
Použít se k tomu dá program ebook-convert, který je součástí balíku calibre:
ebook-convert skoro.epub uplny.epub
Chvíli si povídá pro sebe, vypisuje co všechno vyházel, opravil a udělal správně a pak vyplivne krásný, více/méně validní epub, se kterým nemělo problémy žádné zařízení, kde jsem to zkoušel.
Pokud by měl někdo o knihu zájem, stačí si naklonovat příslušný repozitář a spustit script create_book.sh:
To by bylo na téma "jak jsem zabil středeční odpoledne a večer" za mě. Co vy?
Za tip ohledně knihy děkuji FEE1DE4Dovi.
Tiskni
Sdílej:
Kiež by som ten svoj niekedy stihol prečítať :D Už je tak dlhý, že tie najstaršie kúsky pamätajú ešte distribúciu softvéru na disketách 
40 minut v metruTo jako fakt?
Mercy Lynchová pracuje ve vojenské nemocnici. Po smrti manžela v zajateckém táboře ji už ve Virginii nic nedrží, a proto se vydává najít svého zraněného otce, který se s ní touží setkat. Cesta napříč kontinentem se mění v dobrodružné putování. Mercy postupně vystřídá vzducholoď, vlak i říční parník. Když dorazí do St. Louis, zjišťuje, že jediný vlak, který pokračuje dál, potáhne děsivá unionistická parní lokomotiva jménem Bitevník . Původně rychlá a klidná cesta se mění v boj o život poté, co je vlak přepaden hordou lupičů a později jižanskými vojáky. Mercy by ráda viděla svého otce dřív, než zemře. Pokud však chce z vlaku vystoupit živá, musí překonat intriky Unie a útoky Konfederace.




Nic tak neodhaluje charakter lidí jako to, čemu se vysmívají.-- Johann Wolfgang Goethe
Prostě si registruj účet, založ blog a tam to můžeš posílat pořád dokola a možná se i někdo chytí do diskuze.to je lež, kdyby si založil blog, zase bys mu spílal, že se sem nehodí, ale že se někdo chytí, to je pravda - bystroushaak převlečený za zlatohřbítka
Ja kvuli tomuto tematu poradne nespim.
Nedostatek spánku vede k poškození mozku. Tím by se vysvětlovala ta zeď textu nad citovaným úryvkem.