abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:33 | Nová verze

    Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 14:11 | IT novinky

    Řada vestavěných počítačových desek a vývojových platforem NVIDIA Jetson se rozrostla o NVIDIA Jetson Thor. Ve srovnání se svým předchůdcem NVIDIA Jetson Orin nabízí 7,5krát vyšší výpočetní výkon umělé inteligence a 3,5krát vyšší energetickou účinnost. Softwarový stack NVIDIA JetPack 7 je založen na Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 2
    včera 00:44 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) spolu s NSA a dalšími americkými úřady upozorňuje (en) na čínského aktéra Salt Typhoon, který kompromituje sítě po celém světě.

    Ladislav Hagara | Komentářů: 20
    27.8. 16:33 | IT novinky

    Společnost Framework Computer představila (YouTube) nový výkonnější Framework Laptop 16. Rozhodnou se lze například pro procesor Ryzen AI 9 HX 370 a grafickou kartu NVIDIA GeForce RTX 5070.

    Ladislav Hagara | Komentářů: 1
    27.8. 14:22 | IT novinky

    Google oznamuje, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Tato politika bude implementována během roku 2026 ve vybraných zemích (jihovýchodní Asie, Brazílie) a od roku 2027 celosvětově.

    Fluttershy, yay! | Komentářů: 7
    27.8. 13:11 | Nová verze

    Byla vydána nová verze 21.1.0, tj. první stabilní verze z nové řady 21.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools a Libc++.

    Ladislav Hagara | Komentářů: 0
    27.8. 05:11 | Komunita

    Alyssa Anne Rosenzweig v příspěvku na svém blogu oznámila, že opustila Asahi Linux a nastoupila do Intelu. Místo Apple M1 a M2 se bude věnovat architektuře Intel Xe-HPG.

    Ladislav Hagara | Komentářů: 17
    26.8. 12:55 | IT novinky

    EU chce (pořád) skenovat soukromé zprávy a fotografie. Návrh "Chat Control" by nařídil skenování všech soukromých digitálních komunikací, včetně šifrovaných zpráv a fotografií.

    Ladislav Hagara | Komentářů: 66
    26.8. 12:11 | Nová verze

    Byly publikovány fotografie a všechny videozáznamy z Python konference PyCon US 2025 proběhlé v květnu.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (79%)
     (9%)
     (3%)
     (4%)
     (5%)
     (1%)
    Celkem 104 hlasů
     Komentářů: 9, poslední včera 11:53
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    11.2.2010 14:25 Jirka P
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Ten join mi není úplně jasný - tak, jak jsem ten příklad pochopil, mi to spíš připadá jako UNION. Čekal jsem, že po tom, co se použil ten map na generování záznamů s klíči, by se provedl reduce, který zázamy se stejnými klíči dá k sobě (a tak by se došlo ke stejnému výsledku, jako s joinem v relační DB). Je tahle úvaha chybná?
    11.2.2010 14:29 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Join je v uvozovkách, unionu se to taky trochu podobá :-)

    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.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    11.2.2010 14:51 Jirka P
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Ale potom je tedy jakékoli zpracování těch "JOIN/UNIONovaných" dat jen na aplikaci? Jde mi o takové dotazy, jako (pseudo-sql):

    SELECT autor.jmeno FROM autor NATURAL JOIN kniha
    GROUP BY autor.id
    HAVING COUNT(kniha.jazyk) > 2
    11.2.2010 15:19 Jirka P
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Anebo
    SELECT * FROM autor NATURAL JOIN kniha WHERE 1800 < autor.rok_narozeni < 1900
    11.2.2010 15:53 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    V pohledech se dá udělat ledacos, ale jsou situace, kdy skutečně musíte zpracovávat data z pohledu ještě v aplikaci. Klasický příklad by bylo třeba řazení podle agregované hodnoty. V prvním díle byl příklad na počet knih v jednotlivých žánrech – kdybych ty žánry podle počtu chtěl ještě seřadit, tak to už v CouchDB nezvládnu.

    V mailing listu se čas od času objeví dotaz na kaskádové pohledy, které by to řešily, ale přímo těch se zřejmě nedočkáme. Nedávno jsem zaznamenal myšlenku, že by šlo pohledy replikovat jako dokumenty (nad nimi by pak samozřejmě šlo dělat pohledy), což mi přijde jako jeden z těch hacků tak ohavných, až jsou vlastně krásné :-)

    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.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    11.2.2010 16:48 Jirka P
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Pohledy nad pohledy - to nejde?! OMG, to by mě nenapadlo.

    K příkladu: ne, chtěl jsem autory, kteří napsali v aspoň 3 jazycích aspoň jednu knihu (doufám, že jsem to moc nezatemnil tím SQL). Je sice otázka, jestli by tam mohl být autor, jehož knihy byly do těch jazyků přeloženy, ale to bych nechal koňovi.

    Jinak to, co je v tom příkladu v článku bych s klidem označil za disjunktní sjednocení.

    Ale s posledním odstavcem nesouhlasím. Mě se celkem líbí ta myšlenka zavržení 1NF, protože 1NF mi přijde dost nepřirozená (prostě se mi nelíbí, že když mám třeba databázi vlaků, tak tam musím mít záznam na každé kupé nebo sedadlo a s čímkoli to pak musím joinovat). Ale samotné relační operace mi přijdou naopak přirozené - a ať už bychom mu říkali jakkoli, způsob, jakým lze dosáhnout stejného výsledku, by mi chyběl.

    Běžné programovací jazyky, o kterých těžko můžeme říct, že jsou ovlivněny relačními databázemi, přesto relační operace vesměs umožňují.
    11.2.2010 17:05 osvc1
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    nemohl byste uvest priklad, jak C podporuje relacni operace?
    11.2.2010 17:35 Jirka P
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    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);
    }
    11.2.2010 17:07 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    Tak množinu jako součást programovacího jazyka jsem viděl naposledy v Pascalu (OK, nikdy jsem neprogramoval ve Fortranu ani ničem podobném), ale kartézský součin tam rozhodně nebyl :-) 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).
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    okbob avatar 12.2.2010 16:52 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Lehký úvod do CouchDB – 2 (pokročilejší funkce)
    To, co Vam vadi rozhodne neni 1.NF.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.