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 18:55 | Humor

    Jak na webu co nejšíleněji zadávat datum? Jak to uživatelům co nejvíce znepříjemnit? V Bad UX World Cup 2025 (YouTube) se vybíraly ty nejšílenější UX návrhy. Vítězným návrhem se stal Perfect Date.

    Ladislav Hagara | Komentářů: 3
    včera 12:44 | Zajímavý software

    Společnost Collabora vydala (YouTube) na LibreOffice založený desktopový kancelářský balík Collabora Office. Pro Windows, macOS a Linux. Se stejným uživatelským rozhraním jako Collabora Online. Svůj desktopový kancelářský balík s rozhraním LibreOffice pojmenovala Collabora Office Classic.

    Ladislav Hagara | Komentářů: 5
    včera 12:00 | Nová verze

    Glen MacArthur vydal AV Linux (AVL) a MX Moksha (MXM) 25. S linuxovým jádrem Liquorix. AV Linux (Wikipedie) je linuxová distribuce optimalizována pro tvůrce audio a video obsahu. Nejnovější AV Linux vychází z MX Linuxu 25 a Debianu 13 Trixie. AV Linux přichází s desktopovým prostředím Enlightenment 0.27.1 a MX Moksha s prostředím Moksha 0.4.1 (fork Enlightenmentu).

    Ladislav Hagara | Komentářů: 0
    27.11. 17:55 | Nová verze

    Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).

    Ladislav Hagara | Komentářů: 0
    27.11. 14:33 | IT novinky

    Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech

    … více »
    Ladislav Hagara | Komentářů: 12
    27.11. 12:22 | Zajímavý software

    Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.

    Ladislav Hagara | Komentářů: 1
    27.11. 04:55 | Komunita

    Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.

    Ladislav Hagara | Komentářů: 6
    27.11. 04:44 | Komunita

    Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 3
    26.11. 14:55 | IT novinky

    Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »

    Ladislav Hagara | Komentářů: 52
    26.11. 14:11 | Humor

    Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (16%)
     (24%)
     (16%)
     (18%)
    Celkem 417 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: Proudové zpracování dat – nejlepší praktiky

    xkucf03 avatar 5.7.2013 12:06 xkucf03 | skóre: 49 | blog: xkucf03
    Proudové zpracování dat – nejlepší praktiky
    Přečteno: 817×

    Dnešní software se většinou skládá z mnoha komponent a vrstev a ty si mezi sebou předávají objekty. Např. načtu data z databáze nebo souboru (sítě atd.) a předám kolekci záznamů někam dál, tam se data nějak transformují, zpracují, předají další komponentě (opět jako kolekce nebo objekt) a po několika takových fázích vyplivnou na výstup.

    Výhoda je v abstrakci a v tom, že komponenty jsou celkem samostatné, dají se samostatně vyvíjet, testovat, znovupoužívat, není to jeden monolitický bastl. Na druhou stranu nevýhoda je v tom, že první záznam na výstupu vypadne nejdříve ve chvíli, kdy se načte poslední záznam na vstupu. A taky v tom, že v jednu chvíli musím mít celou množinu načtenou v paměti.

    Rád bych v programu měl něco jako unixové roury a zpracovával data průběžně – tzn. vstup může být teoreticky nekonečný, spotřeba paměti je konstantní (jeden řádek/záznam nebo stanovená velikost bufferu) doba zpracování lineárně závislá na velikosti vstupu.

    Řešením může být předávání iterátorů (některé jazyky mají generátory/yield), kurzorů v SQL, vstupně/výstupních proudů… Vím, jak dosáhnout požadovaného výsledku. Ale jak ho dosáhnout co nejelegantněji a nejčistší cestou? Jaké jsou nejlepší praktiky, aby to bylo efektivní a zároveň to nebyl zprasený neudržovatelný monolit? Víte o nějakém jazyku/frameworku, který by umožňoval poskládat (pokud možno deklarativně) jednotlivé komponenty systému a nechat jimi proudit data? Nemáte příklad softwaru, který se s tímhle problémem vyrovnává nějak elegantně a poučně?

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Odpovědi

    5.7.2013 12:16 Kit
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    Možná do bude znít divně, ale co třeba Bash?
    xkucf03 avatar 5.7.2013 12:56 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky

    Jde mi spíš o řešení v rámci jednoho programu a programovacího jazyka. Pouštět pro každou komponentu zvláštní proces není ideální (i když to nevylučuji) a hlavně jsem tu omezený na proudy bajtů – což se někdy taky hodí, ale když budu zpracovávat nějaké záznamy/objekty, musím je na výstupu z jedné komponenty serializovat a na vstupu druhé zase deserializovat.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    5.7.2013 13:06 Kit
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    V tom případě bych asi zvolil Javu, ta je na to vybavena.
    5.7.2013 13:00 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    Muzes posilat z client side subrequesty a zpracovavat je nezavisle na aplikaci. Avsak hlavni nevyhoda tohoto modelu je ta, ze kdyz dojde k nejake chybe v nejakem subrequestu, aplikace to nezjisti. Proto se kolikrat stava u vyvojaru webovych aplikaci, kteri nepouzivaji nejaky output buffering, ze jim to zvesela vypisuje chybove hlasky do nactene aplikace, protoze takto neudelaji zadne presmerovani na code 500/404/aj., pokud si to neporesi na strane klienta, coz je ovsem spatne...

    Kazdopadne dnesni hw poskytuje dostatecny vypocetni vykon za malo penez, resp. za mnohem mene penez pri srovnani platu a casu programatora, takze se nadtimto nevyplati moc premyslet. Navic tento model zase vytezuje procesor vytvarenim dalsich vlakej pro subprocesy, takze je otazka, co je vetsi overhead :)
    5.7.2013 13:54 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    Řešením může být předávání iterátorů (některé jazyky mají generátory/yield), kurzorů v SQL, vstupně/výstupních proudů… Vím, jak dosáhnout požadovaného výsledku. Ale jak ho dosáhnout co nejelegantněji a nejčistší cestou?
    Nevím, zda to je elegantní, ale Haskell má koinduktivní typy a jinou redukční strategii, takže se tam mnoho věcí chová "líně", aniž by programátor musel něco speciálního dělat. Nevýhodou je, že programátor ztrácí přehled, kdy se jaká věc vlastně počítá.
    Jaké jsou nejlepší praktiky, aby to bylo efektivní a zároveň to nebyl zprasený neudržovatelný monolit?
    Oboje zvládá Haskell docela dobře. Kompilátor GHC provádí fúzi, čímž dosahuje docela dobré efektivity (a stávající fúze se možná dočká dalšího vylepšení).
    pavlix avatar 5.7.2013 14:02 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    Vytvářet a předávat různé iterátory/handles můžeš předávat v libovolném programovacím jazyce. Nevím, co na tom chceš vymýšlet elegantního, prostě potřebuješ být schopný udržovat nějaký iterátorový objekt a zpřístupnit ho pomocí nějakého API, toť vše.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    5.7.2013 20:28 potato
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    To samozřejmě můžeš, ovšem otázka zněla, jak to dělat efektivně. Když budeš posílat každý jednotlivý párbajtový kousek dat (což naivní použití iterátorů/handles klidně způsobí), nebudou všechna jádra procesoru dělat nic jiného, než zběsile managovat fronty. Na druhé straně bufferbloat vede k tomu, že na sebe věci čekají a stejně to sežere dost paměti.
    pavlix avatar 6.7.2013 09:20 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    K tomu ale potřebuješ předvídat, jak bude komunikace vypadat a podle toho to naprogramovat.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    5.7.2013 17:50 rnd
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    http://www.playframework.com/documentation/2.0.2/Iteratees

    http://mandubian.com/2012/08/27/understanding-play2-iteratees-for-normal-humans/
    5.7.2013 18:10 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    Slajdy s přehledem podobných technik.
    6.7.2013 13:59 Ivan
    Rozbalit Rozbalit vše Re: Proudové zpracování dat – nejlepší praktiky
    A co tohle? Map&Reduce

    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.