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í
×
    dnes 04:00 | IT novinky

    Anthony Enzor-DeMeo je novým CEO Mozilla Corporation. Mozillu převzal po dočasné CEO Lauře Chambers. Vybudovat chce nejdůvěryhodnější softwarovou společnost na světě. Firefox by se měl vyvinout v moderní AI prohlížeč.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Nová verze

    Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.

    Ladislav Hagara | Komentářů: 2
    včera 01:33 | Komunita

    Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.

    Ladislav Hagara | Komentářů: 10
    včera 00:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.12. 15:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).

    Ladislav Hagara | Komentářů: 0
    15.12. 14:11 | IT novinky

    Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.

    Ladislav Hagara | Komentářů: 33
    15.12. 14:00 | IT novinky

    Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným

    … více »
    Ladislav Hagara | Komentářů: 9
    15.12. 12:22 | Pozvánky

    Byl oznámen program a spuštěna registrace na konferenci Prague PostgreSQL Developer Day 2026. Konference se koná 27. a 28. ledna a bude mít tři tracky s 18 přednáškami a jeden den workshopů.

    TomasVondra | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (20%)
     (17%)
     (23%)
     (15%)
     (24%)
     (15%)
     (18%)
    Celkem 471 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    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.