Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že již v úterý 7. dubna od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout meteorit
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Dobry den, zacinam s mysql a tvorim si novou tabulku pres phpmyadmin. Zde pro kazdy sloupec vybiram "collation". Pochopil jsem, ze to bude asi kodovani textu v tabulce. Chci tam dat utf8, ale tech je tam vice typu, tak by me zajimalo jaky je rozdil mezi temito:
utf8_czech_ci utf8_general_ci utf8_unicode_ci
A ktery tedy vybrat.
Rozdil by mel byt v razeni podle textovych polozek (ORDER BY), pokud tabulka obsahuje stringy v cestine tak bych asi dal utf8_czech_ci, jinak to je asi jedno.
Předem informace: není není třeba collation uvádět u každého sloupce, stačí uvést collation u databáze či u vytváření tabulky.
U sloupce to pak stačí uvést jen u odlišného zvoleného třídění, například pro sloupce s ruštinou.
Collation se při vytváření tabulky dědí z datbáze přes tabulku na sloupec.
Pro pochopení rozdílů mezi 2. a 3. viz zde
... (máme nejsložitější pravidla třídění v evropských jazycích).
Dalo by se tohle nejak dolozit? Nesnazim se tvrzeni napadat, jen by me zajimali nejake podrobnosti. Diky.
Anebo testem v MySql :):
Setřídění český měst ve sloupci utf8_bin s indexem a výsledný čas
S použitím clausule COLLATION v ORDER BY.
utf8_czech_ci 0.0350 utf8_turkish_ci 0.0330 utf8_hungarian_ci 0.0330 utf8_unicode_ci 0.0329 utf8_swedish_ci 0.0329 utf8_spanish_ci 0.0329 utf8_spanish_ci 0.0329 utf8_general_ci 0.0187 (není průkazné protože sloupec má index utf8_bin)
Zde pro kazdy sloupec vybiram "collation". Pochopil jsem, ze to bude asi kodovani textu v tabulce.
Ostatní už to naznačili, ale spíš předpokládali, že víte, co to je. Collation není kódování, ale označení pro soubor pravidel, jak porovnávat řetězce. Protože stejné kódování může používat více jazyků (iso-8859-1 celá západní Evropa, iso-8859-2 celá střední a východní Evropa píšící latinkou, UTF-8 všichni), ale pro každý jazyk mohou být pravidla porovnávání řetězců jiná; někdy je i víc variant pro stejný jazyk (typicky používá-li se v různých zemích).
Nejčastěji odlišnosti vznikají tak, že některé kombinace znaků se při porovnávání chovají jako "slitek", tj. nedělitelný objekt, kterému se přiřadí určitá pozice v abecedě. Příkladem je třeba "ch" v češtině (pokud byste chtěl řadit úplně podle normy, tak to ani s ním nebude tak jednoduché, ale v praxi se to ignoruje) nebo "ck" či "ss" v němčině. Odtud pochází termín collation, stejně jako LC_COLLATE v locales.
Takže u řetězcových datových typů definujete (na úrovni databáze, tabulky nebo konkrétního sloupce) jednak kódování (z historických důvodů se většinou nepřesně používá termín charset), jednak collation. Pro každé kódování máte ale k dispozici jen z těch collation, které jsou pro něj určena.
Správná připomínka.
utf8_xxxx_xx jsou předpokládány znaky v kódování utf8 a to xxxx_xx jen říká jak se budou řadit.
ad. „ale v praxi se to ignoruje“ = špatná praxe, a právě collation utf8_czech_ci to zatřídí správně včetně 'CH'.
PS:
Nezapomínat pak v každém dotazu (kde je to třeba) uvést: ORDER BY sloupec, protože bez této clausule je řazení NEdefinované.
U MySQL a typu tabulek MyISAM jakmile mažete a vkládáte, tak vám to bez ORDER BY sloupec bude sypat záznamy, tak jak jsou fyzicky uloženy v souboru, NE podle primárního indexu !!!
Ta poznámka "ale v praxi se to ignoruje" se týkala něčeho trochu jiného. V normě se totiž píše, že s kombinací znaků "ch" se nakládá jako se slitkem pouze v případě, že opravdu reprezentuje hlásku "ch". Pokud by se ale např. jednalo o složené slovo, kde první část končí "c" a druhá začíná "h", pak se to má brát jako dvě samostatná písmena i při porovnávání. Jak to má chudák program poznat, to už nám ale autoři normy neříkají. Naštěstí je tam jakási poznámka, že tam, kde by to bylo technicky obtížně realizovatelné, je možné některé špeky (jsou tam i horší vylomeniny) ignorovat. V praxi se tedy u českých collation kombinace "ch" bere jako slitek vždy.
U MySQL a typu tabulek MyISAM jakmile mažete a vkládáte, tak vám to bez ORDER BY sloupec bude sypat záznamy, tak jak jsou fyzicky uloženy v souboru, NE podle primárního indexu !!!
To je celkem logické a není to specialita MySQL. Pokud nepoužijete klauzuli order by, je pořadí záznamů nedefinované a bylo by krajně nepraktické, pokud by se databáze v takovém případě zdržovala řazením. Výjimkou jsou samozřejmě situace, kdy je z nějakých důvodů vhodnější řadit tak jako tak, typicky třeba při použití klauzule group by.
ad. Ignoruje … - sorry nepochopil jsem
ad. ORDER BY, ano specifikace SQL přímo říká že to není definováno. Nemyslel jsem, že je to specialita MySQL, chtěl jsem jen upozornit na tuto skutečnost a kde se na ni zaručeně narazí, protože například MySql + InnoDB se toto neprojeví (jestli se nepletu) díky internímu způsobu zapisování záznamů, a M$SQL 2005 (opět jestli se nepletu), má někde napsáno, že se řadí, v takovém případě, podle primárního indexu.
Je to častá chyba a neprojeví se často hned - tak jsem to jen chtěl někomu říct :)
Tiskni
Sdílej: