Standard Matter (Wikipedie, GitHub), původně Project Connected Home over IP (CHIP), pro propojení IoT a domácí automatizaci byl vydán ve verzi 1.4.
Fedora Linux je aktuálně k dispozici v 5 edicích: Workstation, Server, IoT, Cloud a CoreOS. Pro desktopové nasazení je určena edice Workstation, což je prostředí GNOME. Vývojářům a uživatelům KDE Plasma se dlouhodobě nelíbí, že jejich prostředí je schováno mezi spiny, tj. alternativními desktopy. Prosadili si, že s následující verzí Fedora Linuxu KDE Plasma povýší ze spinu na edici a bude tak na úrovni Workstation.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch OTA-6 Focal, tj. šesté stabilní vydání založené na Ubuntu 20.04 Focal Fossa.
Byla vydána nová verze 8.0 (𝕏) frameworku pro vývoj webových aplikací Ruby on Rails (Wikipedie). Přehled novinek v příspěvku na blogu, v poznámkách k vydání a na GitHubu.
Byla vydána verze R14.1.3 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Dnes v 17:00 má na YouTube online premiéru krátký film Project Gold od Blender Studia představující možnosti rozšíření Blenderu pro "malířský vzhled".
Byl představen oficiální Raspberry Pi USB 3 Hub. Cena je 12 dolarů.
Na YouTube byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu. Dostupné jsou také přímo z programu po kliknutí na přednášku.
Co přesně se děje, když se pomocí curlu připojujeme ke google.com? Proč to psát do terminálu, když si to můžeme pustit jako videoklip curl -v https://google.com na YouTube. 😂
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.11.
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: