Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Jen pár základních pojmů pro nováčky. Unicode je norma, který každému znaku (abstraktní minimální jednotka textu) přiřazuje jedno číslo (code-point). Tato čísla potřebujeme obvykle nějak nacpat do počítačů, k tomu slouží různá kódování, která mají různé výhody a nevýhody (paměťová úspornos versus jednoduchost zpracování).
Název | Počet bajtů na znak | Výhoda | Nevýhoda |
utf-8 | 1 - 4(6) | Zpětně kompatibilní s ASCII. | Netriviální práce s řetězci |
utf-16 | 2 - 4 | Netriviální práce s řetězci | |
ucs-2 | 2 | Jednoduchá práce s řetězci. | Nepokrývá všechny znaku Unicode. |
utf-32, ucs-4 | 4 | Jednoduchá práce s řetězci. | Paměťově žřavé. |
Další informace na wikipedii.
Norma Unicode 1.0 byla navržena jako šestnáctibitová. 64k znaků se zdálo hodně a svět vypadal růžově. Proto v novějších programovacích jazycích (jako je Java) má datový typ pro znak (char
) 16 bitů. A řetězce používaly kódování ucs-2. Takže každý znak zabíral únosné 2 bajty a práce s řetězci byla stejně efektivní jako za 8bitových časů. Stejně tak je šestnáctibitový typ wchar_t
v C++.
Jenže pak přišlo Unicode 2.0 s codepointy za hranicí šestnácti bitů. Současná norma verze 4.1 definuje přes 90 tisíc znaků. Za hranicí šestnácti bitů jsou většinou mrtvé jazyky jako gótština. Ale taky jsou tam různé vlastní jména z čínštiny a japonštiny, takže třeba software pro tamější státní správy musí umět s takovými znaky korektně pracovat. (Představa, že jsem číňan a nějak se jmenuju (a mám svůj znak) a že mé jméno dostane svůj codepoint, je velmi zábavná.)
Zavedení znaků za hranicí 16ti bitů je pro šestnáctibitový char z Javy pohroma. Řetězce kódované ucs-2 nepokrývají celé unicode a neumožňují mimo jiné tvorbu softu pro čínskou Stranu (cenzurování internetu, evidence politických vězňů a další výnosné džoby).
Vyřešilo se to hackem. Řetězce se prohlásily jako kódované utf-16. To ale znamená, že je Java rozbitá. Můžu dostat řetězec, který správně nerozeberu na samostatné znaky - prostě proto, že jeden znak může zabírat více javovských charů. Tedy lépe řečeno je rozbitá jistá třída javovských programů, které bláhově spoléhají, že jeden char
se rovná jeden znak.
V Javě 5 se do tříd Character a String zahrnula podpora pro codepointy - což jsou 32bitové integery (více zde). Stejnému problému čelí i .net - tam zavedli třídu StringInfo.
Nutno podotknout, že v klasických prostředích vystavěných nad plain C (například Gnome) se kvůli zpětné kompatibilitě prosadilo kódování utf-8. Nikdy si tam nehráli na to, že všechny znaky jsou stejně dlouhé a proto to nikdy rozbité neměli.
Dovolím si tvrdit, že 16bitový char byl velký omyl. Správný char má mít 32 bitů a zvládat celé Unicode. Samozřejmě řetězce nemusí být kódovány v ucs-4. Vnitřně to může být klidně utf-8 nebo utf-16 (pro asijské jazyky), ale navenek se pořádný řetězec musí tvářit jako pole 32bitových charů.
Tiskni
Sdílej:
Jinak k čemu Unicode, když máme cs_CZ.ISO8859-2?protoze mame taky bohuzel jeste cp1250 :/
Jinak k čemu Unicode, když máme cs_CZ.ISO8859-2?třeba protože ISO-8859-2 (nikoliv "cs_CZ.ISO8859-2") neobsahuje české uvozovky (a spoustu jiných užitečných znaků)?
l
" a "O
"; a místo kulatých závorek budeme psát lomítka, vždyť to dříve tak pěkně šlo…
Jako prasárna mi spíše připadá výmysl jazykovědců, že se máme tvářit, jako by to jedno písmeno bylo.Je "ů" jedno pismeno? (uo > ů), je "ť" jedno písmeno? (tj > ť) atd. CH je v cestine "jedno pismeno", (viz zvlastni poradi v abecede), tak se to zkratka vyvinulo. Spis me prekvapuje, ze "ch" tak vybocuje z rady ostatnich ceskych "sprezek", taky by se to mohlo psat treba jako Ĥ nebo jako Ħ
zajímavé, že například německy mluvící takhle neblbnou, tedy aspoň ještě jsem neviděl psát třeba "SCHindlerův seznam"Myslim ze se bavime o tom, ze pro cestinu je CH (Ch, ch) jedno pismeno napr. v tom smyslu, ze ma sve vlastni misto v abecede apod. tj. se chova jako jeden nedilny znak, nikoliv jako sprezka dvou pismen, ktere jsou jinak v cestine nahrazeny extra znaky: hacky, krouzkem. Dulezite je to v IT prave pro automaticka razeni podle abecedy. V nemcine nebo anglictine se naopak "sch" radi abecedne jako tri za sebou nasledujici pismena "s-c-h", to ale souvisi s tim, ze jejich pravopis tak tesne nenasleduje fonemy extra znackami. Jestli je to prakticke nebo neni, o tom nema moc cenu spekulovat, protoze to tak zkratka je. Totez byly diskuse na tema, proc psat "č", kdyz bysme mohli psat "cz" a zbavit se tak potizi s diakritikou (kdyz computery zacinaly). No, taky se to neujalo :P Co se tyce psani, ono se snad ani v cestine nepise: CHleba, ale Chleba, protoze velke "ch" ma podobu "Ch", takze tady ten priklad s nemcinou moc nechapu ;)
Myslim ze se bavime o tom, ze pro cestinu je CH (Ch, ch) jedno pismeno napr. v tom smyslu, ze ma sve vlastni misto v abecede apod. tj. se chova jako jeden nedilny znak,o čem se bavíme - no, začlo to s těma uvozovkama ... "ch" se nechová jako jeden znak, nýbrž jako pevně svázaná (nedílná) dvojice znaků; podívej se na to z hlediska sazby, "ch" resp. "Ch" se nijak neliší od za sebou jdoucích "c" a "h" resp. "C" a "h", kdežto ty dolní uvozovky se od dvou čárek liší značně
Co se tyce psani, ono se snad ani v cestine nepise: CHleba, ale Chleba, protoze velke "ch" ma podobu "Ch", takze tady ten priklad s nemcinou moc nechapu ;)ale právěže píše - přinejmenším to tak ("CHleba") píšou ti méně samostaně uvažující absolventi kursu psaní na stroji na jednom nejmenovaném gymnasiu ...
třeba protože ISO-8859-2 (nikoliv "cs_CZ.ISO8859-2") neobsahuje české uvozovky (a spoustu jiných užitečných znaků)?Tak treba ja mam v CMS implementovany prekladac, ktery ceske uvozovky a spoustu dalsich uzitecnych znaku automaticky prevadi na HTML entity... No jinak ale jsem coby polyglot vsemi deseti pro UTF-8, zvlast kdyz jsem se ted presvedcil, ze to funguje i pro lidi s Win98 (jak tu lidi tvrdi). Clovek nikdy nevi, kdy bude muset zaradit "cinskou" stranku :)))
Stejně tak je šestnáctibitový typ wchar_t v C++.
Ne nutně. Já ho mám 32-bitový.
Zavedení znaků za hranicí 16ti bitů je pro šestnáctibytový char z Javy pohroma.
Má být "šestnáctibitový".
Samozřejmě řetězce nemusí být kódovány v ucs-4. Vnitřně to může být klidně utf-8 nebo utf-16 (pro asijské jazyky), ale navenek se pořádný řetězec musí tvářit jako pole 32bitových charů.
Tady by to asi chtělo vymezit, co přesně myslíte termíny vnitřně a navenek. Praxe (aspoň v případě C/C++) je totiž spíš taková, že interně program pracuje s widechary a widestringy, ale s okolím komunikuje v multibyte kódováních (obvykle UTF-8).
int main() { cout << sizeof(wchar_t) << endl; }A vrací to 4. Čili máte pravdu. Ono ty typy v C++ jsou takové pružné. Ad vnitřně a navenek. Já mluvím jen optimalizaci na místo v paměti. Pokud C++ program pracuje s poli wchar_t, pak je to naprosto v pohodě, ale žere to dost paměti. Utf-16 pak dost uspoří. Ale navenek (v programu) z toho musí pořád lézt ty wchar_t. Jinak "navenek" - jako výměna dat mezi programy, ukládání na disk atd, tam je asi dobré používat utf-8. Alespoň myslím, že takový je dnešní zvyk.
v čem tkví výhody a nevýhody použití kódování UTF-8 oproti ISO8859-2?Z mych zkusenosti, pokud tam nebudou exoticke znaky (azbuka, hebrejstina apod.) anebo to neni zrovna web o Linuxu, tak nejmene problemu bohuzel zatim dela asi kodovani win1250 - z toho duvodu, ze tohle ma vetsina surfaru nastaveno defaultne v prestarlem kramu IE a normalni browsery si s tim poradi bez potizi. Take spousta primarnich nastaveni databazi, aplikaci (napr. pocesteni cms apod.) s tim de facto pocita jako s vychozim stavem :/ Tak napr. mam problemy s jednim tematem, ktere navzdory hlavicce s ISO (vsechny ostatni browsery zadne problemy nemaji) zcela nahodne generuje v IE spatne kodovani (sem tam ISO...-1, sem tam win1250... a to v ruzne dny u tech samych stranek!!!) a nemuzu zaboha prijit na to, proc. Dost drsne, kdyz porad vetsina webaru drti IE... Nekde jsem cetl, ze Win98 nepodporuje zobrazovani v UTF-8 (ted ale nevim, jestli se to tyka i novejsich browseru v tomto systemu), a kupodivu spousta "obycejnych" lidi porad ma Win98. Takze dat UTF-8 kodovani na web, kde pocitas s takovymi navstevniky, je mozna risk. Kdyz mi tohle nekdo vyvrati, budu jen rad :)
jakmile budeš používat utf8, tak dobudoucna můžeš být naprosto v kliduDo budoucna ano, ale co dnesek s Win98?
znakĹŻ
), odpovídajících vícebytové sekvenci v uhodnutém kódování.
Co jsem zatím četl, tak web s UTF-8 má větší velikost stránek.- to je teda fakt podstatná vada
LOWER('škoda') mi na mysql-server-5.0 jak z testingu (Debian), tak z unstable 5.0.17 (nebo 18) vraci pri pouziti UTF8 vzdy prazdny string. Nezavisle na character setu databaze nebo tabulky. Nedokazal jsem to nijak obejit.hmm ... co na to vývojáři?
S UTF8 maji problem nektere browsery pri pouziti XMLHTTPRequest (Konqueror i Safari spatne pocitaji pri pouziti metody POST delku UTF8 stringu, takze se Vam posle jen 'pulka' postu).jedu na UTF8, používám téměř výhradně Konqueror, a nic takového jsem nepozoroval - tedy ovšem nevím, jestli jsem někdy použil "XMLHTTPRequest" (co to?) ... byl by testcase, je nahlášený bug?
takový kraviny jako čínská jménadej si bacha, aby si to nekdo nezapsal a za 30 let te pak nenapraskal na Vrchni velitelstvi evropskeho poloostrova - uradovna provincie Tschen-skou (byvala Ceska republika) :P
Máte-li znaků více než 65536, se dvěma byty nevystačíte, tomu se říká Dirichletův princip…
fajn, nepochopili sme se.... netvrdim, ze kodovani, kde muze mit znak 3 byte neexistuje. co sem se tim snazil rict je, ze pouzivat pro zakladni entyty (at uz se jedna o cisla nebo znaky) velikost, ktera neni mocnina 2 je kacirstvi !!
takze to zopakuju jeste jednou:
1, 2, 4, 8, 16, ... a nic jinyho NEEXISTUJE
chapes uz jak to myslim ???? samozrejme ze existuje i petka, ale pokud ju nekdo pouzije, tak ho patri povesit za koule na pruvan....
long double
| tail -1
sem programator, takze nejaky symboly potrebuju.dobře, tak ... jsem matematik (ehm), takže nějaký symboly potřebuju jsem muzikant, takže nějaký symboly potřebuju žiju v ČR, takže brzo budu potřebovat symbol pro novou měnu naštěstí nejsem slepý, takže Braillovo písmo nepotřebuju …
... tak to proste zapisu jako kombinaci nejakejch pismen. Bude urcite mnohem citelnejsi ...no tak buď si z nás střílíš, na což nemám náladu a což zřejmě zůstalo i ostatními diskutujícími nepochopeno, nebo to myslíš vážně a pak nemá smysl pokoušet se jakkoliv argumentovat (no ale přece to zkusím: proč myslíš, že si matematici - a fyzici, když elektromagnetický tok - tisknou výstup z TeXu a ne zdroják, který je povětšinou v čistém ASCII a tedy "určitě mnohem čitelnější"?)
Ani ne.
Stejně nemám žádný důkaz, že ty programy jsi napsal ty, ale dejme tomu, že ti věřím.
Jen by mě zajímalo, kolik máš let. Možná, že programovat umíš, ale co rozhodně neumíš je slušně se vyjadřovat. Z této diskuse mám pocit, že si o sobě myslíš, jako bys měl všechnu moudrost světa (hodně informatiků k tomuto stavu inklinuje). Možná by to chtělo trochu pochopení, že u PC nejsou jen programátoři. Věty o unicode klávesnici s 90e3 tlačítky svědčí o tvé (předstírané?) debilitě.
Na závěr si půjčím odstavec od kavola:
no tak buď si z nás střílíš, na což nemám náladu a což zřejmě zůstalo i ostatními diskutujícími nepochopeno, nebo to myslíš vážně a pak nemá smysl pokoušet se jakkoliv argumentovat
ps: proč tu nemáš vyplněný profil?Věty o unicode klávesnici s 90e3 tlačítky svědčí o tvé (předstírané?) debilitě.OT: to mi připomnělo, chtěl bych si pořídit unicode klávesnici, jak bude velká? Noo, asi jako křídlo z raketoplánu
k cemu me je kupa symbolu,myslímže to je problém celé této diskuse ... jsou na světě i jiní lidé, kterým se ty symboly zatraceně hodí - a to, že zrovna ty jsi tak nevzdělaný (skoro by se chtělo říct hloupý), že spoustu symbolů neznáš, ještě nijak neznamená, že mají menší "právo na život" než ty, které znáš
kdyz je nemuzu napsat ???nikdo netvrdí, že by jeden člověk měl být schopen napsat vše ... jestliže ovládáš 200 znaků, stačí ti mít na klávesnici 200 znaků, což není velký problém
myslim, ze mysto vymejsleni nesmyslu by bylo lepsi reseni PRINUTIT cinu, japonce, a konec koncu i CECHY, aby pouzivali 7-BITOVY ASCII !!!!
Jak se 7-BIT ASCII shoduje s těmito dvěma příspěvky? 7 přece nepatří mezi čísla, která existují . A nebo, že by to bylo trochu jinak?
- Qt/KDE pouziva 16 bit kodovani, UTF-16 - Gtk/Gnome pouziva UTF-8 - Fltk 2.0 pouziva UTF-8 - Nevim jaky dalsi priklad...