Hlavní navigace

Předpověď počasí v terminálu a Relační roury

Sdílet

Franta Kučera 14. 8. 2021
Terminál

Článek Předpověď počasí v terminálu & Relační roury na jednoduchém příkladu ukazuje, jak si načíst strukturovaná data v XML, udělat nad nimi pár transformací a zobrazit si je včetně sloupcového grafu v textovém terminálu.

Článek se dále věnuje některým myšlenkám, které jsou za projektem Relational pipes (složitost M×N×O vs. M+N+O, volitelná komplexita, rozdělení rolí) a ukazuje i výhody Makefile oproti klasickým shellovým skriptům.

Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 16. 8. 2021 9:37

    Malec

    Alebo pouzijem BaFi: https://mmalcek.github.io/bafi/
    (aj pre Linux, vlastna tvorba, napsane v GO :) )

    cmd:
    curl.exe -s https://www.yr.no/place/Czech_Republic/Prague/Prague/forecast.xml | .\bafi.exe -t template.tmpl

    template.tmpl:
    {{- range .weatherdata.fo­recast}}{{ran­ge .time}}
    From: {{ dateFormat (index . "-from") "2006-01-02T15:04:05" "02.01-15:04"}},To: {{ dateFormat (index . "-to") "2006-01-02T15:04:05" "02.01-15:04"}},tempe­rature: {{index .temperature "-value"}}C
    {{- end}}{{end}}

    vystup:
    From: 21.08-14:00,To: 21.08-20:00,temperature: 25C
    From: 21.08-20:00,To: 22.08-02:00,temperature: 21C
    From: 22.08-02:00,To: 22.08-08:00,temperature: 16C
    ...

  • 16. 8. 2021 17:54

    nil nil (neregistrovaný) 217.138.220.---

    Tam podle mě šlo o to zřetězení použitím existujících nástrojů v příkazové řádce a to tak, aby bylo možno rozmlátit a vypsat doslova cokoliv. Jednoduché xml bylo jistě použito pro větší přehlednost a čtivější článek. PHP nebo Python by taky uměly jistě vymlátit z jednoduchého xmlka cokoliv na pár řádcích, načíst, jedna dvě smyčky a nějaký print ...

  • 17. 8. 2021 9:33

    Malec

    Relational pipes su taktiez len doplnkovy nastroj (relpipe-in-xmltable) , podobne ako moze byt brane bafi. Suhlasim, ze relpipes mozu poskytovat vacsiu flexibilitu no bafi taktiez umoznuje:
    1. STDIN/STDOUT
    2. Volitelny vstup (aktualne json,bson,yam­l,xml,csv a pracujem na dalsich)
    3. Velku flexibilitu spracovania dat (GO templates + funkce + integrace Lua jazyka)
    4. Volitelny vystup toJSON, toXML, ... alebo cokolvek sformatovane v template
    5. Moznost sucasne spracovat viacero vstupnych suborov v roznych formatoch do jedneho vystupu ( https://mmalcek.github.io/bafi/examples/#multiple-input-files )

    V ziadnom pripade nic proti relpipes, bafi je spis jednoduche riesenie postacujuce vo velkej skupine pripadov

  • 17. 8. 2021 10:04

    nil nil (neregistrovaný) ---.as13285.net

    Jo kdyby Bafi v Go uměl volat a řetězit systémové nástroje jako cut, cat, awk etc., pak by to byla alternativa. To je podle mě podstata toho rozdílu.

    Já osobně vidím v real pipes spíš krásu počinu, než něco jako více praktického. Vzít např.Python (nebo Bafi) a vymlátit nějaký složitý vstup do posledního zrna bude podle mě vždy tak nějak jako nednodušší a pohodlněší ... asi věc názoru.

    17. 8. 2021, 10:07 editováno autorem komentáře