Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 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.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Mám uloženo hodně html souborů, ale v kódování, které mi moc nevyhovuje. Zobrazuje se mi to v prohlížeči sice dobře, ale přesto bych to raději předělal do jiné znakové sady. Je to ve iso-8859-2 a já bych to chtěl předělat do kódování UTF-8. To by nebyl problém upravit. Udělal bych to tak, že bych soubor otevřel v KWrite, nastavil KWrite, ať je text čitelný, potom bych ještě přepsal tag meta ze iso-8859-2 na UTF-8 a potom dal soubor uložit a zvolil uložit ve UTF-8. Postup funguje, už jsem to zkoušel. Problém je ale v tom, že těch html souborů je několik set a upravovat všechny pojednom je práce pro vraha. Takže bych raději použil nějaký příkaz nebo skript, který zadám jednou a už se mi to všechno upraví hromadně. Příkaz pro hromadný převod kódování html (textových) souborů a příkaz pro přepsání určitého řetězce znaků ve více html (textových) souborech hromadně. Existuje něco takového? A názvy souborů a adresářů aby zůstaly zachované. Komplikované to mám ještě tím, že v te složce, ve které mám ty html soubory, mám taky několik různých podadresářů a taky v nich jsou html soubory. Takže celou tu hromadu souborů bych potřeboval předělat.
Kde jsem vlastně k těm souborům přišel. Na http://www.jakpsatweb.cz/download.html jsem si stáhnul celý web Jak psát web.
iconv
, hlavičku v souboru pak pomocí sed
u.
Musím to převést do UTF-8, a to ikdyž ty soubory, které mám ve iso-8859-2, jsou označené správně tágem na iso-8859-2. Protože když mám soubory v jiném kódování, než je UTF-8, tak ikdyž mám správný tág, tak v dokumentu otevřeném v Konqueroru mi všechny URLy (na obrázky, na kaskádové styly, a hrefy a podobně) fungují správně, jenom pokud v názvu některáho nadřazeného adresáře nejsou mezery, háčky a podobně. A to ikdyž jde o nadřazený adresář, který není obsažený v URLech dokumentu. O tomto problému jsem už psal v blogu v článku HTML a kódování.
K sedu jsem se ještě nedostal, ale už jsem zkoušel skript na převod te znakové sady, ale má to ještě chybu: Původní soubor má původní název a překódovaný soubor má změněný název (za názvem připsanou jedničku) a já bych to chtěl spíš obráceně (původní název pro překódovaný soubor), aby mi nepřestalo fungovat to, že jednotlivé dokumenty navzájem odkazují. Nebo by dokonce nevadilo přepsat soubory úplně bez vzniku nového souboru. Původní soubory mám stejně pro jistotu někde okopírované.
Tady je ten skript.
for F in $(find $1 -iname "*.html") do if [ -f $F ]; then iconv -f iso-8859-2 -t utf-8 $F > ${F}1 mv ${F}1 $F fi done
open()
, execve()
, stat()
, unlink()
atd.? Jméno souboru je identifikátorem, kterým se na něj odkazujete, takže je potřeba, aby bylo jednoznačné.
To je blbost sama o sobě, je zřejmé, že název je atribut patřící někam do metadat!Ano, tato věta je blbost sama o sobě. Název souboru je identifikátor. Titulek wordovského dokumentu jsou náhodná metadata, která většina souborů nemá a která nemá smysl jakkoli korelovat s názvem souboru.
Ostatně unixové systémy umožňují v názvu souboru používat jakýkoli bajt kromě lomítka odjakživa.
… a nulového …
Samozřejmě, že je pravda, že by se v URL html dokumentu neměly používat mezery, háčky a podobné blbosti. Proto, když si vytvářím vlastní html dokument, tak se takovým znakům v těch URLech vyhýbám. Ale mám vyzkoušené, že pokud mám ten html dokument v jiném kódování, než UTF-8, tak stačí, abych kterýkoliv nadřazený adresář pojmenoval názvem, obsahující mezery, háčky, dlouhé písmena a podobně, už je problém, a to ikdyž se jedná o adresář, který se v URL dokumentu neuvádí, ale o některý nadřazený adresář. Přesto se může způsobit, že ty url přestanou v některých prohlížečích fungovat (v mém případě v Konqueroru, zatímco v Mozille Firefoxu to nevadí). Příklad: Je stránka, která se jmenuje jmeno-1 a vedle ni složka, která se jmenuje jmeno1_soubory a v te složce je obrázek, které se jmenuje obraz.png. Ta stránka jmeno1, i ta složka jmeno1_soubory jsou umístěné ve společném adresáři nova-slozka. V te stránce je relativní odkaz na ten obrázek <img src="jmeno1/obraz.png">
. Tento odkaz funguje správně. Pokud ale tu stránku mám v jiném kódování, než UTF-8, tak ikdyž tag meta skutečnému kódování odpovídá, už je problém, pokud složku nova-slozka přejmenuji například na nová složka nebo jinak s nevhodnými znaky, nebo kterýkoliv ještě nadřazenější adresář přejmenuji s těmi nevhodnými znaky. To potom Konqueror neumí zobrazit ten html soubor tak, aby se načetl i ten obrázek. A to ikdyž s nevhodnými znaky pojmenuji složku, která se v URL dokumentu neuvádí. A problém se netýká jenom obrázků.
Přestože by v těch stažených stránkách neměly být URL s nevhodnými znaky, chtěl jsem ty stránky předělat do UTF-8, abych předešel problému, který jsem popsal.
detox
a nabodeníčka jsou fuč :)
Prace (což je vesnice na moravě) vs. Práce)Mechanismus na řešení homonym už wikipedia dávno má, takže by se jen vztáhnul i na toto. Ale moc elegantní by to nebylo.
cstocs
který provádí jakékoliv převody mezi českými kódováními jaké jsem kdykoliv potřeboval. Neudělá vyměnu tagu meta. To by šlo udělat v awk
nebo v sed
nebo myslím že něco takového by se dalo napsat i perlu
perl -pi -w -e 's/search/replace/g;' *.html
ls /cesta/ke/stazenym/souborum > vypis.txt
a potom zjistit, v jaké znakové sadě se mi vytvořil ten textový soubor s výpisem.) Názvy stažených souborů a složek jsem musel opravit, protože jinak vypadaly nepřehledně, blbě se vypalovaly, nešly kopírovat na flashku a podobné problémy.
sed -i 's/stare/nove/g' soubor
nahradí všechny slova staré slovy nové. Vyzkoušel jsem to zatím u jednoho souboru a funguje to. Ale co když budu chtít nahradit slova, které obsahuje i lomítka a podobně? To by se potom mohlo mydlit s lomítkama, které jsou součásti původního příkazu. Například budu chtít všechny slova stary/papir nahradit slovy nove/papiry. Co potom? Půjde to vůbec? Třeba takto to půjde asi těžko: sed -i 's/stary/papir/nove/papiry/g' soubor
sed -i 's/start\/papir/nove\/papiry/g' soubor sed -i 's,start/papir,nove/papiry,g' soubor sed -i 's#start/papir#nove/papiry#g' soubor
sed -e 's/stary\/papir/novy\/papir/g' subor
Mozno by bola vhodna prirucka k sed-u. ;)
Ospravedlnujem sa, ash to tu vysvetlil a najma pre polhodinou. Nedal som refresh stranky. :)
Takže zrovna v případě vypálení je problém s názvy souborů minimální, protože tam je způsob kódování znaků jasný.Teoreticky, ovšem v praxi když někdo něco vypaluje, šance že vypalovací program z lokální místní znakové sady (dnes obvykle UTF-8, ale dříve tam mohlo být leccos) to do toho UCS-2 převede dobře (t.j. ne jako paznaky) se ani zdaleka neblíží 100% (byť je to lepší než kdysi, kdy správně vypálená diakritika byla spíše vyjímka)
Nechápu lidi co mají v dnešní době problém s diakritikou, to musí být v hlavě.Běžné linuxové FS nemají definované kódování názvů souborů. Lze se maximálně tvářit, že mají (UTF-8 je přece už všude, ne?). NTFS má definované kódování názvů souborů. Jakákoli souvislost s 9660 je čistě náhodná.
dají se v něm uložit všechny znaky Unicode
A to je také prakticky jediná jeho výhoda. Jinak UTF-16 téměř unikátním způsobem sdružuje téměř všechny nevýhody ostatních kódování.
Kódování v linuxových souborových systémech je také dané: bere se z locales.Tak to je v praxi, ale je to špatně – chceme „kódování souborového systému“, ale máme „kódování aktuálně spuštěného programu“. Můžete na jednom systému spustit programy s různými locale, názvy souborů jsou ale na disku typicky uloženy v jednom kódování. Druhá možnost by byla ukládat kódování názvu souboru do rozšířených atributů, to mi ale připadá zbytečné – nenapadá mne reálný případ, kdy by bylo vhodné mít v jednom souborovém systému různá kódování názvů souborů.
open("jméno v ISO", "r") -> iconv "jméno v ISO" "jméno v UTF" -> syscall(open) -> kódování souborového systému = ISO -> iconv "jméno v UTF" "jméno v ISO"A máte tu dva překlady, které jsou ale úplně zbytečné. Btw. dneska stejně všechny distribuce používají UTF-8, takže se ukazuje, že je to zbytečné.
Kódování v linuxových souborových systémech je také dané: bere se z locales.Protiřečíš si.
mount -o codepage=852,iocharset=utf8 /dev/flaška /mnt/flaška
.
novyroot
recode
nebo iconv
(podle toho co máte po ruce)
find novyroot -type f -exec recode iso-8859-2..utf-8 {} \; nebo find novyroot -type f -exec iconv -f iso8859-2 -t utf-8 {} \;
find
v kombinaci se sed
em
find novyroot *.html -exec sed -i -e "s/starytag/novytag/" {} \;
recode
, u iconv
byste asi musel vytvářet nový soubor (v novém kódování) čili to je v mém "manuálu" špatně. recode
překódovává in place takže pro vás bude jednodušší.
Tiskni
Sdílej: