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 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    Byla vydána nová verze 259 správce systému a služeb systemd (Wikipedie, GitHub).

    Ladislav Hagara | Komentářů: 0
    dnes 02:55 | Zajímavý článek

    Cloudflare Radar poskytuje aktuální informace o globálním internetovém provozu, útocích nebo trendech. Publikován byl celkový přehled za rok 2025. Globální internetový provoz vzrostl v roce 2025 o 19 %.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Správní rada americké mediální skupiny Warner Bros. Discovery (WBD) podle očekávání odmítla nepřátelskou nabídku na převzetí od firmy Paramount Skydance za 108,4 miliardy dolarů (2,25 bilionu Kč). Paramount podle ní neposkytl dostatečné finanční záruky. Akcionářům proto doporučuje nabídku od Netflixu.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Bezpečnostní upozornění

    Na WhatsAppu se šíří nový podvod, který ovšem vůbec nevypadá jako hackerský útok. Žádná krádež hesla. Žádné narušení zabezpečení. Žádné zjevné varovné signály. Místo toho jsou lidé trikem donuceni, aby útočníkům sami poskytli přístup, a to pouhým provedením toho, co vypadá jako běžný ověřovací krok. Bezpečnostní experti Avastu tento nový typ útoku nazývají ghostpairing, protože útočníci si při něm tiše vytvářejí „zařízení duchů“, které žije uvnitř vašeho účtu.

    Ladislav Hagara | Komentářů: 4
    včera 12:33 | Nová verze

    Český LibreOffice tým vydává aktualizaci překladu příručky LibreOffice Draw 25.8. Tato kniha se zabývá hlavními funkcemi programu Draw, vektorové grafické komponenty systému LibreOffice. Pomocí Draw lze vytvářet širokou škálu grafických obrázků. Příručka je ke stažení na stránce dokumentace a tým hledá dobrovolníky pro další překlady.

    ZCR | Komentářů: 0
    včera 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ářů: 8
    16.12. 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
    16.12. 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
    16.12. 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ářů: 3
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (20%)
     (17%)
     (23%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 480 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.