Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.
Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.
AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.
Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).
Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.
Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.
Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.
Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.
O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).
Tiskni Sdílej:
...skvělý jazyk XSL."Skvělý jazyk" je jazyk nadrbaný samičky na mejch koulích, né XSL
K tomu jsem opět použil skvělý jazyk XSL. I když je trochu ukecanější, práce jde pěkně od ruky a dá se v tom dobře vyznat.Tomu se za našich mladých let říkalo vyšší dívčí sebeklamu.
<!DOCTYPE html>
Ale on psal o tom, že by podle DOCTYPE určoval, co tam přesně smí a nesmí být.Já tam tedy DOCTYPE nikde nevidím. Pochopil jsem ho tak, že by ten editor měl jako parametr cestu k DTD a podle něj nabízel uživateli značky (nebo aspoň zakazoval napsat ty nepovolené).
Tak mě zajímá, kolik toho určí podle tohoto DOCTYPPodle toho, který jsi napsal ty, asi nijak, což mi přijde jako nevýhoda (té deklarace, ne toho editoru).
Vždyť tam není ani odkaz na DTDCož je podle mého krok zpátky.
a navíc nebude ustálené v čase!Zrovna svačím a ty mi píšeš takové věci, ze kterých se mi dělá špatně. Fuj! Fakt mi přijde jako dost důležitá a užitečná věc, vědět, v jaké verzi formátu je nějaký dokument vytvořený – i kdybych to nakonec riskl a pokusil se ho nějak zpracovat, přestože jde o novější formát, než můj software podporuje. Minimálně můžu aspoň uživatele varovat, že může dojít k chybám a jestli chce pokračovat. Na světě se může současně používat různě starý software – ne všichni musí mít nejnovější verzi a podporovat nejnovější formát. A teď si představ, že na tom dokumentu pracuje třeba víc lidí a každý má jiný editor. Když bude verze uvedená přímo v dokumentu, dá se snadno předejít situaci, že někdo v dokumentu použije nové vlastnosti a ostatním to přestane fungovat. Když tam ta verze není, tak musíš např. všem napsat e-mail, které funkce/značky mohou používat a které ne. Ale přijde mi zbytečné a hloupé tu informaci o použité verzi šířit takhle bokem a nespolehlivě, když může být přímo v tom dokumentu. Naštěstí snad každý slušný formát takhle verzovaný je.
Mně to přijde jako výhoda té deklarace, že se podle ní lidi nebudou snažit odvodit víc než jen že je to nějaké html.Že jde o HTML/XHTML zjistím podle MIME typu nebo třeba podle přípony – tedy ještě vně dokumentu. Uvnitř toho dokumentu bych pak ale čekal, že se někde dozvím, která verze formátu to je (jakýmkoli rozumným způsobem, nemusí to být DOCTYPE deklarace).
nehledě na to, že celý smysl XML je v rozšiřitelnosti a skládání různých typů značek, a DTD tuto rozšiřitelnost moc nezvládají.Můžeš vkládat SVG, MathML, RDF… přímo do XHTML dokumentu a oddělené je to jmennými prostory. Řekl bych, že to tedy celkem zvládá (a DTDčka jsou modulární). Ale stejně bych místo DTD používal spíš XSD případně jiný novější jazyk pro popis dokumentů.
a doprovodné jazyky jako XSL apod taky nejsou kdejaké zázrakyNo vidíš a mně ty šablony
<xsl:template match="…"/>
přijdou docela šikovné. Např. u toho převodníku, co jsem teď psal, si to moc nedovedu představit v něčem jiném tak, aby to bylo přehlednější a lépe se to psalo. A i ty další „doprovodné jazyky“ jako XPath nebo XQuery jsou dost dobré – skoro tak dobré jako SQL, možná v něčem i lepší
Takže když identifikátor verze, tak třeba namespace, protože některé typy dokumentů můžou obsahovat kontejnery s libovolnými jinými vloženými dokumenty.To můžou, ale přijde mi lepší dát tu verzi např. do atributu kořenového elementu, než pro každou verzi formátu zavádět nový jmenný prostor. Takže můžu mít třeba XHTML dokument a v něm dva SVG obrázky, každý v jiné verzi SVG, ale ve stejném jmenném prostoru – nevidím v tom problém.
Ono vůbec celé XML bojuje s tím, že se do něj dávají jak strukturovaná data, tak strukturované dokumenty (tzn. včetně whitespace a mixed content), což jsou dva diametrálně odlišné účely, které vyžadují diametrálně odlišné postupy (zvlášť ohledně ubírání/přidávání whitespace), že fakt nevím, co komu muselo spadnout na hlavu.Ten „mixed content“ není až taková věda. Máme třeba dokument:
<kořen> nějaký text <značka>…</značka> zase nějaký text </kořen>Kde
kořen
má tři uzly a z toho první a třetí jsou textové uzly. Nesmíš to prostě vnímat jako text, do kterého je vložená nějaká značka, ale jako tři uzly různých typů. A v XSL si pak můžeš udělat šablonu pro značka
a šablonu pro text()
– že je jedno obalené v ostrých závorkách a druhé je tam jen tak, je celkem jedno – na téhle úrovni se s tím pracuje stejně.
BTW: co ti konkrétně nešlo s tím „whitespace“?
radši si napíšu konvertor z wiki-like jazykaProsím, jen to ne! Těch už je až až. A každý si vymýšlí trochu jinou syntaxi, takže když člověk chce udělat třeba nadpis nebo odkaz, musí přemýšlet, jak se to zrovna v téhle syntaxi píše. Docela peklo, když píšeš na různá místa – třeba Wiki, Trac, nějaký web s Markdownem, jiný web s Texy atd. Standardizované a intuitivní jsou snad leda odrážky a číslování, to se dá jakž takž trefit od boku (i když i tam se to trochu různí – třeba jestli odražený řádek musí začínat mezerou nebo je - hned na začátku, nebo jestli je tam * místo - atd.)
než abych to musel psát přímo.Pro hodně jednoduché věci budiž. Uznávám, že je jednodušší tam naflákat:
- první - druhá - třetínež se psát s
<ul/>
a <li/>
. To je daň za univerzálnost – zase ale nemusím řešit, jestli se odkaz píše jako "Nějaký odkaz":[http://example.com/]
nebo [http://example.com/ Nějaký odkaz]
či [Nějaký odkaz](http://example.com/ "Taky tu může být titulek")
a místo toho zadám nejrozšířenější <a href="http://example.com/" title="Titulek">Nějaký odkaz</a>
a nemusím vědět, že se URL píše do takových a takových závorek, text do jiných a titulek se dává do uvozovek do druhé závorky – a teď ještě nepoplést, jestli první byly hranaté a druhé kulaté nebo obráceně. Prostě stačí vědět, že to jsou atributy a jak se jmenují – ale zapisují se vždy stejně.
Někdy se ty odlehčené syntaxe hodí, ale vidím tam dva problémy: 1) spousta různých syntaxí, naučíš se jeden jazyk, přijdeš k jinému systému a musíš se učit trochu jinou syntaxi. Nebyla by od věci nějaká standardizace, aby se sjednotily třeba ty zápisy odkazů, nadpisů a dalších základních věcí – ale nevím, jestli by na to ti autoři jazyků/konvertorů přistoupili – vzdát se části svého díla a přizpůsobit se ostatním. Často se různí i syntaxe v rámci jednoho „wiki“ jazyka – např. některé značky můžeš „parametrizovat“ a jednou to děláš v takové závorce, jindy v jiné, nebo v uvozovkách, apostrofech… v XHTML/XML jsou maximálně dvě možnosti: atribut nebo vnořený element, většinou to jsou atributy a zápis je vždy stejný: klíč="hodnota"
2) Dříve či později narazíš na nějakou nejednoznačnost, něco ti nepůjde vložit nebo to formátovač pochopí jinak, než jsi to myslel. V XML máš jasně dané řídící znaky a jednotný způsob jejich escapování – a všechny ostatní můžeš v dokumentu volně používat, nemusíš váhat, jestli nějakou posloupnost znaků náhodou nepochopí program jako značku nebo příkaz.
Ten „mixed content“ není až taková věda. Máme třeba dokument:… které začínají a končí znakem konce řádku. Fujtajbl. Takový uzel<kořen> nějaký text <značka>…</značka> zase nějaký text </kořen>Kdekořen
má tři uzly a z toho první a třetí jsou textové uzly
<uzel> </uzel>má taky jednoho textového potomka. A co teprv když do toho narvu komentář!
Nesmíš to prostě vnímat jako text, do kterého je vložená nějaká značka, ale jako tři uzly různých typů.Jasněěě, uzlyyy. Hele, tímhle ale končí veškeré zbytky použitelnosti XML pro lidský zápis. Tohle je prostě pakárna.
má taky jednoho textového potomka. A co teprv když do toho narvu komentář!Co, komentář. Entitu!
které začínají a končí znakem konce řádkuKdyž je tam uděláš, tak tam jsou. Jak jinak by se to mělo chovat? Jestli je tam nechceš (přestože ve zdrojovém dokumentu jsou), tak si dej
normalize-space()
nebo ořízni počáteční a koncové \s*
Ale někdo naopak tu informaci (že je na začátku \n\n
) potřebuje – např. já, když jsem dělal to dělení na odstavce (oddělené prázdnou řádkou).
má taky jednoho textového potomkaNo však – třeba je to značka, kterou se zadává nějaký oddělovač – někdo odděluje mezerou, někdo středníkem a někdo koncem řádku. Pokud chceš bílá místa (
\s*
) považovat za prázdnou hodnotu, stačí ti jedno zavolání matches()
– naopak ten, kdo to považuje za platnou hodnotu to může pomocí XML zapisovat a číst.
A teď zalomení na určitém sloupci. A hezky v XSLT 1.1. Ne že by to nešlo, ale zrovna tady je vidět, že zpracovávat něco jiného než XML strom je v XSLT/XPath opravdu ohavné.
Až to budeš mít, tak to nabídni redakci do redakčního systému. Ten současný vůbec neumí preformátovaný text.
A hezky v XSLT 1.1.O to jsem se zpočátku snažil, protože jsem chtěl co největší přenositelnost, asi dva dny jsem s tím bojoval a pak to vzdal a přešel na 2.0. Trochu pomáhá EXSLT, ale např. funkce tokenize (split) tam jako oddělovač má jen znaky, ne regulární výraz (který je možné použít v XSLT 2.0).
A teď zalomení na určitém sloupci.O tom uvažuji, ale zatím to pro moje potřeby není nutné – např. v e-mailu se o to potřebné zalomení převodník do quoted-printable, takže např. u citací nemusím řešit přidávání > na každý řádek po zalomení.
Ten současný vůbec neumí preformátovaný text.Jak ho neumí? Občas sem kusy kódu v <pre/> vkládám a přijde mi, že to funguje.
lynx -dump
nebo links -dump
?