Vývojáři KDE oznámili vydání KDE Gear 21.04. Ne, nejedná se o novou aplikaci. Bylo rozhodnuto, že KDE Gear bude nový název pro KDE Applications, tedy pro aplikace, související knihovny a pluginy. Na počátku bylo KDE aneb K(ool) Desktop Environment, následně jenom K Desktop Environment. Později se mluvilo o KDE SC neboli KDE Software Compilation. To byl společný název pro grafické prostředí Plasma, platformu a aplikace. Dále proběhlo
… více »Moxie Marlinspike, vývojář komunikační aplikace Signal, se dostal ke kitu firmy Cellebrite pro forenzní analýzu smartphonů, dodávanému represivním složkám různých států včetně autoritářských režimů. V zápisku ho popisuje včetně zranitelností a možných porušení licencí. Jedna z chyb v Cellebrite vede při načtení zvláštního souboru k narušení integrity veškerých reportů. Budoucí verze Signalu mají obsahovat zvláštní soubory.
… více »Bylo vydáno Ubuntu 21.04 s kódovým názvem Hirsute Hippo. Přehled novinek v poznámkách k vydání. Zdůrazněna je možnost integrace s Microsoft Active Directory, Wayland ve výchozím stavu a vývoj aplikací pomocí Flutteru.
Prohlášení (Twitter) Minnesotské univerzity k výzkumu proveditelnosti nenápadného začlenění bezpečnostních chyb do Linuxu: Situaci bereme vážně. Výzkum jsme pozastavili. Prozkoumáme výzkumnou metodu a její schválení. Stanovíme opatření…
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 16.0.0 (Current) otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). Přehled novinek v článku na Medium.
Na MFF UK pokračuje série on-line přednášek o architektuře a implementaci operačních systémů. Dnes je na programu Live kernel patching, příští týden ladění kernelu a kdump, další přednášky jsou naplánovány až do 3. června.
… více »Byla vydána nová verze 3.3 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy a videi v oficiálním oznámení.
Mozilla.cz informuje, že Mozilla z Firefoxu pro Android i iOS odstraní integraci „sledovacího“ systému Leanplum. Leanplum sbírá informace, jak moc uživatelé používají záložky, panely, integraci Pocketu apod. Českých uživatelů se to prý příliš netýká.
Microsoft v příspěvku na svém blogu představil WSLg (Windows Subsystem for Linux GUI) aneb rozšíření WSL přinášející možnost spouštění grafických linuxových aplikací. V dalším příspěvku je rozebrána architekturu WSLg. Videoukázka práce s WSLg na YouTube.
HostnameLookups
jste měli nakonec pravdu nakonec vy. Původní příčina byla zapnutém firewallu ve Fedoře 15, u něhož se mi nepodařilo jeho zakázání obvyklým příkazem chkconfig, díky novém systemd. Za druhé se chci ale zamyslet na výše uvedeným příkazem v MySQL.
Na první pohled se totiž jedná o velice užitečný příkaz, který zřetězí pomocí zadaného oddělovače záznamy zesumarizované pomocí GROUP BY
. Hodit se může např. v případě, že GROUP
ujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované, takže si pomocí GROUP CONCAT(user_id) AS uid
vypíšeme např.:
user1 | 14,21,35 filbar | 22,675 . . . atd.Jenomže to má jeden dooooost podstatný háček, velikost vráceného řetězce je ve výchozím stavu omezena na POUHÝCH 1024 znaků (přenastavit se dá v konfigu). Nechápu k čemu vůbec toto omezení existuje :-O. To má sloužit jako nějaká optimalizace, nebo proč? V každém případě nechápu proč vývojaři MySQL takto užitečnou funkci tak zbytečně pokazili. BTW. Než jsem to dneska odpoledne odhalil, tak jsem ztratil dobré 2 hodiny času.
Tiskni
Sdílej:
Hodit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované
To můžete zjistit snáz třeba pomocí
select NAME,count(ID) as CNT from TT group by NAME having COUNT(ID)>1
nebo (lépe) rovnou ten sloupec deklarovat jako unique.
Jenomže to má jeden dooooost podstatný háček, velikost vráceného řetězce je ve výchozím stavu omezena na POUHÝCH 1024 znaků (přenastavit se dá v konfigu). Nechápu k čemu vůbec toto omezení existuje :-O. To má sloužit jako nějaká optimalizace, nebo proč?
Zřejmě to bude souviset s implementací té agregační funkce a její návratové hodnoty. Na druhou stranu, pokud vám taková délka nestačí, je více než pravděpodobné, že to, o co se snažíte, bude vhodnější dělat úplně jinak. Tahle agregační funkce slouží k usnadnění práce při generování jednoduchých výpisů, ne k tomu, abyste pomocí ní lámal něco, co pravděpodobně půjde daleko lépe vyřešit nějakým joinem.
SET SESSION group_concat_max_len = xx;
odit se může např. v případě, že GROUPujeme např. podle uživatelského jména a chceme zjistit jestli v DB není jméno duplikované, takže si pomocí GROUP CONCAT(user_id) AS uid vypíšeme např.:No nevím, nějaký index, nebo něco podobného by asi bylo mnohem rozumnější, než to řešit na aplikační úrovni...
You can set a maximum allowed length with the group_concat_max_len system variable. (The default value is 1024.)Osobne bych duplicity taky radsi hledal spis pomoci
having
.
Co se tyce MySQL, muj osobni pocit je ze blysti se tam toho hodne, ale zlata je tam asi jak v Ankh-Morporskem tolaru :)
Za posledni 1/2 rok sem stravil neuveritelne mnozstvi casu prochazenim manualu MySQL ve snaze vyresit ruzne veci. Vetsina featur MySQL se nese v tomto duchu: "MySQL ve verzi X ma novou skvelou featuru Y. .... nasleduje popis featury .... prosim prectete si omezeni tedle featury tady ..." a link na trikrat delsi popis omezeni featury.
Priklad co sem resil: mam tabulku a protoze bude mit moc radku (v radech milionu) chci udelat partitioning. Tabulka "t", primarni klic "id" auto increment, cizi klic "y_id", foreign key constraint nad y_id, par dalsich sloupcu.
Ja: create table... partition by list(y_id)
MySQL: partition tabulka nemuze mit foreign key constraint
Ja: ok, cert vem integritu, znovu bez foreign key
MySQL: kazdy sloupec z partition key musi byt soucast primary key.
Ja: WTF ? co je todle za .... ? no nic tak udelam slozeny primary key (y_id, id)
MySQL: Nemuzete mit auto_increment nad jednim sloupcem slozeneho primary key
Ja: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
... Kdyz nechcete prijit o nervy, vyhnete se MySQL obloukem.
Kdybys v druhém kroku vyhodil místo foreign key onu partition část, tak bys měl po problému.Podstata cviceni byla zavest partitioning. Zkouseli ste nekdy vymazat 5M radku z tabulky co jich ma 25M ? Kdyz je mate v partitionech, dropnuti jedne partition je prakticky okamzite.
A nebo jsi to prostě jen dělal blběNemyslim. AFAIK vsechno na co sem narazil jsou dokumentovane omezeni, neboli gotcha
SELECT
em, když ho napíšu špatně.