Portál AbcLinuxu, 9. května 2025 20:36

Relational pipes v0.11

Byla vydána nová vývojová verze datového formátu a souvisejících nástrojů Relational pipes. Novinkou verze v0.11 je podpora vstupu i výstupu ve formátu recfile používaném programem GNU Recutils a dále pak základní podpora výstupu ve formátu ASN.1 BER.

8.4.2019 16:00 | xkucf03 | Nová verze


Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

8.4.2019 17:54 debian+
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Odpovědět | Sbalit | Link | Blokovat | Admin
Cesky projekt.

https://relational-pipes.globalcode.info/v_0/download.xhtml Dam prve hg clone a naklonuje mi cely adresar.
8.4.2019 18:05 debian+
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Aha. Tak vytvorilo repozitar a stiahlo iba 1 subor.
xkucf03 avatar 8.4.2019 18:10 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Relational pipes v0.11

Záměrně má každý nástroj vlastní mercurial, důvody jsou popsané tady: Small code footprint and modular design / Optional complexity.

poznámkách k vydání je návod / skript, jak to všechno postahovat a zkompilovat. Distribuční balíčky zatím nejsou.

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
8.4.2019 18:31 debian+
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Preco nepouzivas main-stream git?
xkucf03 avatar 8.4.2019 18:40 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Relational pipes v0.11

Protože jsem s Mercurialem začal před více než deseti lety (tehdy byl main-stream Subversion) a od té doby jsem s ním spokojený, nemám důvod od něj odcházet. Nicméně s Gitem taky dělám (záleží, co který projekt používá, někde mají dodnes SVN).

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
8.4.2019 18:32 debian+
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Preco nevytvoris skript before_install.sh a priecinok debian a v nom zavistlosti?
Heron avatar 9.4.2019 15:29 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Odpovědět | Sbalit | Link | Blokovat | Admin
GNU Recutils
To mě docela zaujalo. Takovej punkovej přístup. "Data si klidně editujte ručně, ale je lepší používat nástroje. Nejsou žádné povinné fieldy, pokud si je nenadefinujete. A to klidně až po insertu dat. Stejně jako zakázané fíeldy si přidejte kdykoliv." Takové schémové neschémové, oblečená neoblečená, přijela nepřijela.

Je to použitelné na něco seriózního? Předpokládám, že výkon půjde hodně rychle dolů v případě častějších update, jsou to všechno textové soubory, neupdatuje se po blocích, takže při každém update nebo delete se ten soubor defacto musí zapsat znovu. Insert může psát jen na konec, ten rychlej asi bude.
Heron
xkucf03 avatar 9.4.2019 15:57 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Relational pipes v0.11 a GNU Recutils

Osobně to nepoužívám, ale jako textový formát pro serializaci těchto strukturovaných dat mi to přijde celkem dobré. Co jsem četl nějaké články, tak to lidi používají pro různé osobní organizační úkoly, agendy – často se tím asi dá nahradit tabulkový kalkulátor. U malých databází (na které se to používá) na problémy s výkonem nenarazíš.

Nemůžeš to srovnávat s PostgreSQL nebo jinými velkými databázemi. Spíš by se dalo uvažovat o srovnání se sqlite. A oproti ní je to přeci jen jednodušší:

$ cloc-relpipe.sh gnu.org/recutils/
počty_řádků_kódu:
 ╭────────────────┬───────────────────┬─────────────────────┬─────────────────────┬────────────────┬──────────────────╮
 │ jazyk (string) │ souborů (integer) │ prázdných (integer) │ komentářů (integer) │ kódu (integer) │ celkem (integer) │
 ├────────────────┼───────────────────┼─────────────────────┼─────────────────────┼────────────────┼──────────────────┤
 │ C              │               139 │                4501 │                6468 │          19376 │            30345 │
 │ Bourne Shell   │                16 │                1568 │                 711 │           5603 │             7882 │
 │ TeX            │                 1 │                 719 │                2878 │           5556 │             9153 │
 │ Lisp           │                 2 │                 243 │                 199 │           1847 │             2289 │
 │ C/C++ Header   │                 7 │                 833 │                1326 │            902 │             3061 │
 │ CSS            │                 1 │                  77 │                  34 │            357 │              468 │
 │ make           │                12 │                 113 │                 179 │            322 │              614 │
 │ lex            │                 1 │                  49 │                  43 │            175 │              267 │
 │ m4             │                 1 │                  53 │                  36 │            173 │              262 │
 │ yacc           │                 1 │                  23 │                  26 │            127 │              176 │
 │ Python         │                 1 │                   5 │                  14 │             25 │               44 │
 │ sed            │                 2 │                   0 │                   0 │             16 │               16 │
 │ celkem         │               184 │                8184 │               11914 │          34479 │            54577 │
 ╰────────────────┴───────────────────┴─────────────────────┴─────────────────────┴────────────────┴──────────────────╯
Record count: 13

alespoň co do počtu řádků, cca 10×:

$ cloc-relpipe.sh sqlite/sqlite
počty_řádků_kódu:
 ╭───────────────────────┬───────────────────┬─────────────────────┬─────────────────────┬────────────────┬──────────────────╮
 │ jazyk        (string) │ souborů (integer) │ prázdných (integer) │ komentářů (integer) │ kódu (integer) │ celkem (integer) │
 ├───────────────────────┼───────────────────┼─────────────────────┼─────────────────────┼────────────────┼──────────────────┤
 │ C                     │               322 │               26851 │               89879 │         229524 │           346254 │
 │ Bourne Shell          │                19 │                3122 │                3479 │          20459 │            27060 │
 │ Tcl/Tk                │                77 │                2185 │                3558 │          17140 │            22883 │
 │ m4                    │                 6 │                1266 │                  87 │          11989 │            13342 │
 │ C/C++ Header          │                55 │                1460 │                8976 │           8575 │            19011 │
 │ yacc                  │                 3 │                 199 │                 370 │           1424 │             1993 │
 │ make                  │                 5 │                 186 │                 234 │            920 │             1340 │
 │ HTML                  │                 1 │                 149 │                   0 │            915 │             1064 │
 │ DOS Batch             │                 2 │                 154 │                 406 │            598 │             1158 │
 │ Markdown              │                 8 │                 143 │                   0 │            503 │              646 │
 │ C++                   │                 4 │                  87 │                  52 │            410 │              549 │
 │ C#                    │                 2 │                  88 │                 286 │            299 │              673 │
 │ Windows Resource File │                 1 │                  10 │                  23 │             50 │               83 │
 │ XAML                  │                 2 │                   3 │                   0 │             18 │               21 │
 │ celkem                │               507 │               35903 │              107350 │         292824 │           436077 │
 ╰───────────────────────┴───────────────────┴─────────────────────┴─────────────────────┴────────────────┴──────────────────╯
Record count: 15

Na druhou stranu i sqlite je oproti tomu vyspělá relační databáze se vším všudy, akorát je souborová (což je ale pro ty menší úkoly spíš výhoda).

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
Heron avatar 9.4.2019 16:07 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Relational pipes v0.11 a GNU Recutils
ale jako textový formát pro serializaci těchto strukturovaných dat mi to přijde celkem dobré
Jo, proč ne.
Nemůžeš to srovnávat s PostgreSQL nebo jinými velkými databázemi.
To jsem ani moc nechtěl, jen mi přišel zvláštní ten přístup "edituje si to klidně ručně". Jasně, má to nástroje na kontroly apod., ale většina podobných projektů důrazně nedoporučuje do datových adr. vůbec chodit a tady píšou, že to dokonce lze editovat. Ale dovedu si představit integraci do editoru (Emacs ;-)), který během uložení zkontroluje správnost a referenční integritu.
xkucf03 avatar 9.4.2019 16:08 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Relational pipes v0.11 a Guix SD

BTW: tenhle formát používá i balíčkovací systém v Guix SD, takže jeho výstup jde pak strojově zpracovávat. To byl jeden z důvodů, proč jsem v těch Relačních rourách implementoval jeho parser. Data si pak můžeš hodit do tabulky nebo převést na jiný formát.

$ guix package -s malloc | recsel -p name,version,relevance | relpipe-in-recfile | relpipe-out-tabular

recfile:
 ╭───────────────┬──────────────────┬────────────────────╮
 │ name (string) │ version (string) │ relevance (string) │
 ├───────────────┼──────────────────┼────────────────────┤
 │ jemalloc      │ 4.5.0            │ 6                  │
 │ glibc         │ 2.25             │ 1                  │
 │ libgc         │ 7.6.0            │ 1                  │
 ╰───────────────┴──────────────────┴────────────────────╯
Record count: 3
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
xkucf03 avatar 9.4.2019 16:36 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Relational pipes v0.11 a Guix SD

P.S. Totéž můžeš udělat v Ubuntu nebo Debianu:

$ apt show emacs* | sed 's/^ /+/g' | relpipe-in-recfile | relpipe-tr-cut '.*' 'Package|Version|Section|Installed-Size|Homepage|Supported' | relpipe-out-tabular

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

recfile:
 ╭─────────────────────────┬──────────────────────┬────────────────────┬─────────────────────────┬─────────────────────────────────────────────────┬────────────────────╮
 │ Package        (string) │ Version     (string) │ Section   (string) │ Installed-Size (string) │ Homepage                               (string) │ Supported (string) │
 ├─────────────────────────┼──────────────────────┼────────────────────┼─────────────────────────┼─────────────────────────────────────────────────┼────────────────────┤
 │ emacs25                 │ 25.2+1-6             │ editors            │ 19,7 MB                 │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacsen-common          │ 2.0.8                │ editors            │ 139 kB                  │                                                 │ 5y                 │
 │ emacspeak               │ 47.0+dfsg-1          │ universe/editors   │ 21,8 MB                 │ http://emacspeak.sf.net                         │                    │
 │ emacs                   │ 47.0                 │ editors            │ 8 192 B                 │                                                 │ 5y                 │
 │ emacs25-lucid           │ 25.2+1-6             │ universe/editors   │ 19,7 MB                 │ http://www.gnu.org/software/emacs/              │                    │
 │ emacs25-nox             │ 25.2+1-6             │ editors            │ 17,9 MB                 │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs-goodies-el        │ 36.3ubuntu1          │ editors            │ 3 433 kB                │                                                 │ 5y                 │
 │ emacs25-bin-common      │ 25.2+1-6             │ editors            │ 473 kB                  │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs25-common-non-dfsg │ 25.2+1-1             │ multiverse/editors │ 4 685 kB                │                                                 │                    │
 │ emacs25-common          │ 25.2+1-6             │ editors            │ 66,9 MB                 │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs25-el              │ 25.2+1-6             │ editors            │ 16,3 MB                 │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs25-dbg             │ 25.2+1-6             │ debug              │ 5 604 kB                │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs25-lucid-dbg       │ 25.2+1-6             │ debug              │ 5 703 kB                │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs25-nox-dbg         │ 25.2+1-6             │ debug              │ 3 996 kB                │ http://www.gnu.org/software/emacs/              │ 5y                 │
 │ emacs-nox               │ 47.0                 │ universe/editors   │ 8 192 B                 │                                                 │                    │
 │ emacs-window-layout     │ 1.4-1                │ universe/lisp      │ 65,5 kB                 │ https://github.com/kiwanami/emacs-window-layout │                    │
 │ emacs-calfw             │ 1.6+git20170704-1    │ universe/lisp      │ 193 kB                  │ https://github.com/kiwanami/emacs-calfw/        │                    │
 │ emacs-calfw-howm        │ 1.6+git20170704-1    │ universe/lisp      │ 37,9 kB                 │ https://github.com/kiwanami/emacs-calfw/        │                    │
 │ emacs-intl-fonts        │ 1.2.1-10             │ universe/x11       │ 11,2 MB                 │                                                 │                    │
 │ emacs-jabber            │ 0.8.92+git98dc8e-2   │ universe/net       │ 10,2 kB                 │ http://emacs-jabber.sourceforge.net/            │                    │
 │ emacs-mozc              │ 2.20.2673.102+dfsg-2 │ universe/utils     │ 125 kB                  │ https://github.com/google/mozc.git              │                    │
 │ emacs-mozc-bin          │ 2.20.2673.102+dfsg-2 │ universe/utils     │ 837 kB                  │ https://github.com/google/mozc.git              │                    │
 │ emacspeak-espeak-server │ 47.0+dfsg-1          │ universe/editors   │ 58,4 kB                 │ http://emacspeak.sf.net                         │                    │
 │ emacspeak-ss            │ 1.12.1-7             │ universe/editors   │ 270 kB                  │                                                 │                    │
 │ emacs24                 │                      │                    │                         │                                                 │                    │
 ╰─────────────────────────┴──────────────────────┴────────────────────┴─────────────────────────┴─────────────────────────────────────────────────┴────────────────────╯
Record count: 25

Akorát apt varuje, že to není stabilní API. A chtělo by to trochu poladit formátování, aby to byly víc strojově čitelné údaje (např. velikosti).

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
26.2.2022 12:10 upozorneni
Rozbalit Rozbalit vše Re: Relational pipes v0.11
Odpovědět | Sbalit | Link | Blokovat | Admin
UPOZORNÉNÍ --- Autor tohoto softwaru je ruský kolaborant, podobruje šíření ruských desinformací ve válce o Ukrajinu.

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.