Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě
… více »Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.
Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.
Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Vtip je v tom, že záznamy lezou z mapovací funkce seřazené, takže už je není potřeba "dávat k sobě". Stačí se vhodně zeptat.
SELECT autor.jmeno FROM autor NATURAL JOIN kniha
GROUP BY autor.id
HAVING COUNT(kniha.jazyk) > 2
SELECT * FROM autor NATURAL JOIN kniha WHERE 1800 < autor.rok_narozeni < 1900
Konkrétně k tomu příkladu: chcete autory knih napsaných ve více jazycích, chápu to správně? Když budete mít jméno autora přímo u knihy ({"type": "book", "name": "Ílion (dvojjazyčné vydání)", "author": "Dan Simmons", "langs": ["čeština", "angličtina"]}), tak je to jednoduché:
// map
function(doc) {
if (doc.type == "book") {
emit(length(doc.langs), doc.author);
}
}
Pro knihy ve dvou a více jazycích se pak zeptáte nějak takhle: http://localhost:5984/pokus/_design/books/_view/author_by_langs_count?startkey=2. To samozřejmě dostanete každého autora tolikrát, kolik takových knih má. Dalo by se to doplnit nějakou redukcí, ale na tu si z hlavy netroufám
Pokud jméno autora u knihy nemáte, pak to lze s drobnou pomocí z aplikace na dva requesty taky snadno: z obdobného pohledu jako výše dostanete ID autorů a pak jedním POSTem na http://localhost:5984/pokus/_all_docs dostanete autory (vizte http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API).
To slovo join jsem asi neměl používat ani v uvozovkách, skutečně to není joinování ani unionování a přemýšlet nad dokumentovou databází v pojmech ze světa SQL nemůže vést k ničemu dobrému. Pokud potřebujete takovéhle dotazy často (a z nějakého jiného důvodu opravdu chcete používat dokumentovou databázi), pak je obvyklé si potřebné hodnoty předpočítávat.
struct word { char* name; /*void* data;*/ }
words []={ {"abracadabra"},
{"hotenpotem"},
{"brekeke"},
{"tamten"}
};
char *substrings[]={
"bra", "bre", "ten", "tam"
};
for(char** fac=substrings; fac<substrings+sizeof(substrings)/sizeof(*substrings);fac++) {
int cnt=0;
for(word* w=words; w<words+sizeof(words)/sizeof(*words);w++)
if(strstr(w->name, *fac))
cnt++;
printf("%s %d", *fac, cnt);
}
Uznávám, že možnosti dotazování jsou v CouchDB chudé (což nemusí být nutně na závadu, a couchdb-lucene spoustu požadavků řeší) – lidem, kterým by chyběly dotazovací možnosti SQL, by se mohlo víc líbit MongoDB (o dotazování třeba tady).
Tiskni
Sdílej: