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í
×

19.1. 18:55 | Komunita

NHSbuntu (Joinup, prezentace) měla být z Ubuntu vycházející linuxová distribuce přizpůsobená pro potřeby britské Národní zdravotní služby (NHS). NHS se název nelíbil, nejednalo se o oficiální projekt NHS, a proto bylo NHSbuntu v září loňského roku přejmenováno na NHoS. Vývojáři NHoS tento týden oznámili, že NHS se nelíbí ani název NHoS a už nemají sílu na další přejmenování a pokračování v projektu. Dodávají, že několik jednání s vedením

… více »
Ladislav Hagara | Komentářů: 2
19.1. 18:44 | Pozvánky

Koncem ledna, 29. 1. 2018 od 17 do 20 hodin se v Akademii CZ.NIC uskuteční večer s Turrisem.

Co bude na programu?… více »
Miška | Komentářů: 4
19.1. 18:33 | Pozvánky

Na tri dni sa hlavné mesto Slovenska po tretíkrát zmení na miesto s najväčšou koncentráciou profesionálnych programátorov, systémových administrátorov, učiteľov informatiky aj technologických nadšencov. Hlavným lákadlom bude konferencia PyCon SK 2018, určená záujemcom o Python, jeden z najpopulárnejších programovacích jazykov na svete.

… více »
RicCo386 | Komentářů: 1
19.1. 18:22 | Pozvánky

Letošní ročník konference Prague PostgreSQL Developer Day se koná ve dnech 14. 2. a 15. 2. 2018. Zveřejněn byl program s přednáškami a školeními. Otevřena byla také registrace na konferenci.

TomasVondra | Komentářů: 0
19.1. 11:33 | Komunita

Společnost Canonical stojící za linuxovou distribucí Ubuntu oznámila dostupnost nástroje pro týmovou spolupráci Slack (Wikipedie) ve formátu snap. Instalovat jej lze ze Snapcraftu. Slack pro Linux je dostupný také ve formátu klasických balíčků pro Ubuntu a Fedoru.

Ladislav Hagara | Komentářů: 10
18.1. 17:33 | Nová verze

Po roce vývoje od vydání verze 2.0 a 6 000 změnách byla vydána nová stabilní verze 3.0 softwaru, který vytváří aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem, Wine (Wikipedie). Z novinek lze zdůraznit například podporu Direct3D 10 a 11. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 14
18.1. 13:44 | Zajímavý projekt

V říjnu loňského roku úspěšně skončila kampaň na podporu chytrého telefonu Librem 5, jenž by měl respektovat bezpečnost, svobodu a soukromí uživatelů. Společnost Purism informuje o aktuálním vývoji tohoto telefonu. Místo plánovaného SoC i.MX6 by měl být použit úspornější i.MX8.

Ladislav Hagara | Komentářů: 4
18.1. 12:33 | Zajímavý projekt

V květnu loňského roku měl na YouTube premiéru krátký animovaný film Agent 327: Operation Barbershop. Blender Animation Studio včera zveřejnilo alternativní konec tohoto filmu.

Ladislav Hagara | Komentářů: 0
18.1. 05:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 237 bezpečnostních chyb. V Oracle Java SE je například opraveno 21 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 18 z nich. V Oracle MySQL je opraveno 25 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 6 z nich.

Ladislav Hagara | Komentářů: 0
17.1. 20:55 | Komunita

Linux ve VirtualBoxu nebude potřebovat Přídavky pro hosta (Guest Additions). Budou součástí linuxového jádra. Ovladač vboxguest by se měl dostat do Linuxu 4.16. Ovladač vboxsf by měl následovat.

Ladislav Hagara | Komentářů: 27
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (7%)
 (1%)
 (1%)
 (1%)
 (77%)
 (13%)
Celkem 1350 hlasů
 Komentářů: 53, poslední 17.1. 16:55
    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.