Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.
OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.
Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Ř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.
Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.
Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.
Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).
Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou
… více »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.