Svobodná historická realtimová strategie 0 A.D. (Wikipedie) byla vydána ve verzi 28 (0.28.0). Její kódový název je Boiorix. Představení novinek v poznámkách k vydání. Ke stažení také na Flathubu a Snapcraftu.
Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.2 a 20.04 OTA-12.
Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.0 otevřeného operačního systému pro chytré hodinky AsteroidOS (Wikipedie). Přehled novinek v oznámení o vydání a na YouTube.
WoWee je open-source klient pro MMORPG hru World of Warcraft, kompatibilní se základní verzí a rozšířeními The Burning Crusade a Wrath of the Lich King. Klient je napsaný v C++ a využívá vlastní OpenGL renderer, pro provoz vyžaduje modely, grafiku, hudbu, zvuky a další assety z originální kopie hry od Blizzardu. Zdrojový kód je na GitHubu, dostupný pod licencí MIT.
Byl představen ICT Supply Chain Security Toolbox, společný nezávazný rámec EU pro posuzování a snižování kybernetických bezpečnostních rizik v ICT dodavatelských řetězcích. Toolbox identifikuje možné rizikové scénáře ovlivňující ICT dodavatelské řetězce a na jejich podkladě nabízí koordinovaná doporučení k hodnocení a mitigaci rizik. Doporučení se dotýkají mj. podpory multi-vendor strategií a snižování závislostí na vysoce
… více »Nizozemský ministr obrany Gijs Tuinman prohlásil, že je možné stíhací letouny F-35 'jailbreaknout stejně jako iPhony', tedy upravit jejich software bez souhlasu USA nebo spolupráce s výrobcem Lockheed Martin. Tento výrok zazněl v rozhovoru na BNR Nieuwsradio, kde Tuinman naznačil, že evropské země by mohly potřebovat větší nezávislost na americké technologii. Jak by bylo jailbreak možné technicky provést pan ministr nijak nespecifikoval, nicméně je známé, že izraelské letectvo ve svých modifikovaných stíhačkách F-35 používá vlastní software.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).
Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně
… více »Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
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.