Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
TrueNAS (Wikipedie), tj. open source storage platforma postavená na Linuxu, byl vydán ve verzi 25.10 Goldeye. Přináší NVMe over Fabric (NVMe-oF) nebo OpenZFS 2.3.4.
Byla vydána OpenIndiana 2025.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).
České základní a střední školy čelí alarmujícímu stavu kybernetické bezpečnosti. Až 89 % identifikovaných zranitelností v IT infrastruktuře vzdělávacích institucí dosahuje kritické úrovně, což znamená, že útočníci mohou vzdáleně převzít kontrolu nad klíčovými systémy. Školy navíc často provozují zastaralé technologie, i roky nechávají zařízení bez potřebných aktualizací softwaru a používají k nim pouze výchozí, všeobecně známá
… více »Během tradiční ceremonie k oslavě Dne vzniku samostatného československého státu (28. října) byl vyznamenán medailí Za zásluhy (o stát v oblasti hospodářské) vývojář 3D tiskáren Josef Průša. Letos byly uděleny pouze dvě medaile Za zásluhy o stát v oblasti hospodářské, druhou dostal informatik a manažer Ondřej Felix, který se zabývá digitalizací státní správy.
Tor Browser, tj. fork webového prohlížeče Mozilla Firefox s integrovaným klientem sítě Tor přednastavený tak, aby přes tuto síť bezpečně komunikoval, byl vydán ve verzi 15.0. Postaven je na Firefoxu ESR 140.
Bylo oznámeno (cs) vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.
Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.
PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.
Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.
).
Co jsem tak koukal na různé články na toto téma, tak píšou akorát o tom, jak je jedno řešení horší než druhé... Takže vím jak to neudělat, ale nevím jak to udělat
Jako databáze bude použita MySQL, chci aby byly respektovány zvyklosti v řazení u každého jazyka a nebylo to moc slozité (jak pro mě, tak pro server).
Máte nějaké nápady, zkušenosti, odkazy, cokoliv?
Kdysi jsem resil nekolik jazykovych variant webovek, ale skoncilo to u titulni stranky (ta byla staticka), dal se ten projekt nedostal (nikoli mou vinou). Ale i ta titulka byla pochopitelne lokalizovana.
Texty byly rozdeleny do casti, delicim prvkem byly html tagy (odstavce, obrazky, spany a pod.) - tyto tagy ale byly jen ve skriptu, kterym byla vysledna stranka tvorena, v databazi byly jen textove prvky. Kazdy takovyto blok textu mel svoje ID a poradove_cislo, kde ID odpovidalo strance a poradove_cislo udavalo poradi toho bloku v html zdrojaku stranky. Zaznamy se stejnym ID a poradove_cislo predstavovaly pokazde stejny kus textu, jen v jinem jazyce.
Takze jsem udelal neco jako
select txt from texty where ID=id_stranky order by poradia pak do html zdrojaku v patricnych mistech postupne vkladal nactene zaznamy. A lokalizace bylo udelana tak, ze kazda jazykova mutace mela svuj vlastni sloupec v databazi, takze dotaz pro cesky jazyk byl
select txt_cs ...pro anglictinu
select txt_en ...pro nemcinu
select txt_de ...atd. Pridani jazyka znamenalo pridani sloupce do databaze.
Jsem si vedom, ze to urcite neni ten nejlepsi zpusob, ale mi proste v danou chvili pro dany ucel s danymi prostredky vyhovoval... Navic se jednalo o vice-mene staticke stranky, coz asi neni vas pripad.
Takže, jestli máš zájem, můžu trošku odtajnit default's proprietary
CREATE TABLE loc_test (
lt_text NVARCHAR2(64))
/
INSERT INTO loc_test (lt_text) VALUES ('Petr')
/
INSERT INTO loc_test (lt_text) VALUES ('František')
/
INSERT INTO loc_test (lt_text) VALUES ('Áron')
/
INSERT INTO loc_test (lt_text) VALUES ('Antonín')
/
INSERT INTO loc_test (lt_text) VALUES ('Petříček')
/
COMMIT
/
ALTER SESSION SET NLS_SORT = CZECH_AI
/
SELECT
lt_text
FROM
loc_test
ORDER BY
lt_text
/
ALTER SESSION SET NLS_SORT = ASCII7
/
SELECT
lt_text
FROM
loc_test
ORDER BY
lt_text
/
SELECT
lt_text
FROM
loc_test
ORDER BY
NLSSORT(lt_text, 'NLS_SORT = CZECH_AI')
/
DROP TABLE loc_test
/
Použití je velmi jednoduché. Ve výsledku je vidět, že to skutečně funguje tak, jak chceme:
CREATE TABLE succeeded. 1 rows inserted 1 rows inserted 1 rows inserted 1 rows inserted 1 rows inserted COMMIT succeeded. ALTER SESSION SET succeeded. LT_TEXT ---------------------------------------------------------------- Antonín Áron František Petr Petříček 5 rows selected ALTER SESSION SET succeeded. LT_TEXT ---------------------------------------------------------------- Antonín František Petříček Petr Áron 5 rows selected LT_TEXT ---------------------------------------------------------------- Antonín Áron František Petr Petříček 5 rows selected DROP TABLE loc_test succeeded.Tak! A jak něco podobného udělat například v PostgreSQL? PostgreSQL umožňuje nastavit locale při vytváření databáze. Což je docela slabé. Proto jsem došel k následujícímu řešení, které je optimalizované na maximální výkon pro SELECT (to byl požadavek) a jednoduchost volání jako v Oracle.
LOCALES, která funguje jako číselník podporovaných locales. Jednotlivá locale se zadávají v Javí notaci, tedy JAZYK_ZEMĚ_VARIANTA. Pak tam jsou naimplementované funkce, které umějí dohledat locale stejně tak, jak to dělá Java (java.util.ResourceBundle).
Další tabulkou je tabulka TABLES, která ukládá názvy tabulek, které jsou pod lokalizací. Všechny funkce, které nějak mohou afektovat data (například přidání locale, odebrání locale), díky této tabulce automaticky přidávají nové jazyky.
Úplně vespod jsou funkce pro podporu uživatelských proměnných v session, implementace chybějících funkcí PL/PgSQL a tak.
_C, která ukládá nelokalizované atributy, další se suffixem _L, která ukládá lokalizovaná data a poslední se suffixem _D, která drží stav NULL, NOT NULL pro lokalizovaná data.
Příklad:
CREATE TABLE i18n.example_c (
exmp_id bigint DEFAULT nextval('sq_exmp_id') NOT NULL,
exmp_type bigint NOT NULL,
exmp_creation_time timestamp with time zone NOT NULL DEFAULT NOW()
);
ALTER TABLE i18n.example_c ADD CONSTRAINT pk_exmp_id PRIMARY KEY (exmp_id);
CREATE TABLE i18n.example_l (
exmp_entity bigint NOT NULL,
exmp_locale bigint NOT NULL,
exmp_name varchar NULL,
exmp_value varchar NULL,
exmp_value_ord bytea NULL
);
ALTER TABLE i18n.example_l ADD CONSTRAINT pk_exmp_entity_exmp_locale PRIMARY KEY (exmp_entity, exmp_locale);
ALTER TABLE i18n.example_l ADD CONSTRAINT fk_exmp_entity_exmp_id FOREIGN KEY (exmp_entity) REFERENCES i18n.example_c (exmp_id) ON DELETE CASCADE;
ALTER TABLE i18n.example_l ADD CONSTRAINT fk_exmp_locale_locale_id FOREIGN KEY (exmp_locale) REFERENCES i18n.locale (id);
CREATE TABLE i18n.example_d (
column_name varchar NOT NULL,
nullable boolean NOT NULL
);
ALTER TABLE i18n.example_d ADD CONSTRAINT pk_example_d PRIMARY KEY (column_name);
Pak si nadefinuješ pohledy, které celou tuto strukturu zobrazí jako jednu tabulku:
CREATE VIEW i18n.example AS
SELECT
c.exmp_id,
c.exmp_type,
c.exmp_creation_time,
l.exmp_locale,
l.exmp_name,
l.exmp_value,
l.exmp_value_ord
FROM
example_c c INNER JOIN example_l l ON (c.exmp_id = l.exmp_entity)
WHERE
l.exmp_locale = i18n.get_session_locale_id();
CREATE VIEW i18n.example_a AS
SELECT
c.exmp_id,
c.exmp_type,
c.exmp_creation_time,
l.exmp_locale,
l.exmp_name,
l.exmp_value,
l.exmp_value_ord
FROM
example_c c INNER JOIN example_l l ON (c.exmp_id = l.exmp_entity);
Ta view se suffixem _A zobrazují veškeré locales (nejsou omezena na aktuální locale v session). Jak je vidět, pro každý řádek v tabulce EXAMPLE_C je v tabulce EXAMPLE_L vygenerován speciální řádek pro každé locale. Když přidáš další locale, "systém" automaticky do všech těchto kompozitů dogeneruje prázdné řádky.
ALTER SESSION SET NLS_SORT… zavoláš i18n.set_session_locale(…) dál používáš databázi, jak je třeba. Když potřebuješ řadit jinak, buď zavoláš set_session_locale znovu, nebo si napíšeš vlastní ORDER BY klauzuli.
Máš u mě čokoládu (příp. pivo).
Díky, myslím, že jsi mi právě vyřešil i několik dalších problémů, na které jsem se ani neptalJá vím. Jsem za to placenej
Máš u mě čokoládu (příp. pivo).Já radši vodku. Teď tady cucám lahvinku Stolichnayi
Když jsem hledal jak v php vyrobit hodnoty do sloupečku pro řazení, zjistil jsem, že MySQL umí to co Oracle, jen se trochu bojím neefektivního indexování (ale to by se mohlo dohnat kešováním).
Ještě domyslet pár detailů a bude to stačit už jen napsat
Tiskni
Sdílej: