author | František Kučera <franta-hg@frantovo.cz> |
Mon, 21 Feb 2022 00:43:11 +0100 | |
branch | v_0 |
changeset 329 | 5bc2bb8b7946 |
parent 299 | dd7aeff5ef0c |
permissions | -rw-r--r-- |
23
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
1 |
<stránka |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
2 |
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
3 |
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"> |
0d2729ed16ed
zkouška interního odkazu
František Kučera <franta-hg@frantovo.cz>
parents:
18
diff
changeset
|
4 |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
5 |
<nadpis>Release v0.16</nadpis> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
6 |
<perex>new public release of Relational pipes</perex> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
7 |
<m:release>v0.16</m:release> |
4
1bb39595a51c
genrování hlavní nabídky #1
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
8 |
|
2
ab9099ff88fa
vkládání zápatí, jmenné prostory, saxon
František Kučera <franta-hg@frantovo.cz>
parents:
1
diff
changeset
|
9 |
<text xmlns="http://www.w3.org/1999/xhtml"> |
ab9099ff88fa
vkládání zápatí, jmenné prostory, saxon
František Kučera <franta-hg@frantovo.cz>
parents:
1
diff
changeset
|
10 |
<p> |
256 | 11 |
We are pleased to introduce you the new development version of <m:name/>. |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
12 |
This release brings an abstraction layer (ODBC) in the SQL transformation + several smaller improvements. |
241 | 13 |
</p> |
14 |
||
15 |
<ul> |
|
16 |
<li> |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
17 |
<strong>ODBC in the <code>relpipe-tr-sql</code> module</strong>: see details below</li> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
18 |
<li> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
19 |
<strong>new input <code>relpipe-in-jack</code> module</strong>: see details below</li> |
250 | 20 |
<li> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
21 |
<strong>keyboard shortcuts in the <code>relpipe-out-gui</code> module</strong>: use Ctrl+PgUp and Ctrl+PgDown to switch panels (relations) and Ctrl+Q to quit</li> |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
22 |
<li> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
23 |
<strong>record count in the <code>relpipe-out-xhtml</code> command</strong>: number of records is printed under the table (this command part of <code>relpipe-out-xml</code>, not a standalone module)</li> |
241 | 24 |
</ul> |
256 | 25 |
|
241 | 26 |
<p> |
256 | 27 |
See the <m:a href="examples">examples</m:a> and <m:a href="screenshots">screenshots</m:a> pages for details. |
151 | 28 |
</p> |
256 | 29 |
|
30 |
<p> |
|
299
dd7aeff5ef0c
fix typo: relasease → release
František Kučera <franta-hg@frantovo.cz>
parents:
297
diff
changeset
|
31 |
Please note that this is still a development release and thus the API (libraries, CLI arguments, formats) might and will change. |
329 | 32 |
Any suggestions, ideas and bug reports are welcome in our <m:a href="contact">mail box</m:a>. |
256 | 33 |
</p> |
151 | 34 |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
35 |
<h2>ODBC in the SQL transformation module</h2> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
36 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
37 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
38 |
Former versions of <code>relpipe-tr-sql</code> were tied to <a href="https://sqlite.org/">SQLite</a> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
39 |
and user had no option to change the <i>SQL engine</i>. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
40 |
However great SQLite is (and we are very thankful for it), having some particular DBMS (database management system) hard-coded in our program is too constraining. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
41 |
So we added an abstraction layer (ODBC) and get rid of the direct dependency on SQLite. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
42 |
Now any DBMS can be used with <m:name/>. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
43 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
44 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
45 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
46 |
ODBC (Open Database Connectivity) is an industry standard and provides API for accessing a DBMS. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
47 |
In late 80s several vendors (mostly from the Unix and database communities) established the SQL Access Group (SAG) |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
48 |
and then specified the Call Level Interface (CLI). ODBC, which is based on CLI, was published in early 90s. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
49 |
ODBC is available on many operating systems and there are at least two free software implementations: |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
50 |
<a href="http://www.unixodbc.org/">unixODBC</a> and <a href="http://www.iodbc.org/">iODBC</a>. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
51 |
We use unixODBC for development and testing. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
52 |
Future releases of <m:name/> should be tested also with other implementations and various database drivers. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
53 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
54 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
55 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
56 |
SQLite remains the default option |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
57 |
(in the C++ implementation, while Java or other implementations may have different default and may use different abstraction layer like JDBC). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
58 |
We count on SQLite for future releases. It is the simplest way to get full SQL power in your relational pipeline. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
59 |
However, <code>relpipe-tr-sql</code> do not depend on SQLite and can be installed without it (and then used e.g. with PostgreSQL driver). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
60 |
Using different DBMS makes sense for two main reasons: |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
61 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
62 |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
63 |
<ul> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
64 |
<li> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
65 |
We need specific features provided by the DBMS. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
66 |
It might be e.g. some functions for XML processing or some advanced SQL language constructs. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
67 |
Or maybe we have some business logic already implemented as SQL functions in e.g. PostgreSQL |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
68 |
– now we can access this logic from our pipelines or seamlessly integrate it in our shell: |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
69 |
<m:pre jazyk="bash"><![CDATA[cat source-data.csv | relpipe-in-csv \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
70 |
| relpipe-tr-sql \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
71 |
--data-source-name "MyDatabaseServer" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
72 |
--relation "transformed_data" " |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
73 |
SELECT |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
74 |
some_csv_field AS id, |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
75 |
our_special_function(some_other, third_one) AS result |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
76 |
FROM csv" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
77 |
| relpipe-out-xml \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
78 |
| xsltproc template.xsl - > some-fancy-report.xhtml |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
79 |
# or just: | relpipe-out-xhtml > some-generic-report.xhtml]]></m:pre> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
80 |
</li> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
81 |
<li> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
82 |
We need access to data in an existing database. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
83 |
The <code>relpipe-tr-sql</code> and <code>relpipe-in-sql</code> can be used as a generic database clients |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
84 |
and are able to load relational data to and from any DBMS. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
85 |
We can also write a pipeline to transfer data between two different DBMS, do some ETL (extract, transform, load) tasks |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
86 |
or just cache some result sets from a remote database in our local SQLite file. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
87 |
We can cache e.g. some codelist tables or other data for offline use: |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
88 |
<m:pre jazyk="bash"><![CDATA[relpipe-in-sql \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
89 |
--data-source-name "MyCompanyDatabase" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
90 |
--relation "country" "SELECT * FROM country" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
91 |
--relation "currency" "SELECT * FROM currency" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
92 |
--relation "exchange_rate" "SELECT * FROM exchange_rate WHERE …" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
93 |
--relation "phonebook" "SELECT * FROM phonebook" \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
94 |
| relpipe-tr-sql \ |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
95 |
--data-source-string 'Driver=SQLite3;Database=file:MyCachedCompanyData.sqlite']]></m:pre> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
96 |
In previous versions, we needed <a href="https://sql-dk.globalcode.info/">SQL-DK</a> for this scenario, |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
97 |
now it is possible solely in <m:name/> without any other tools. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
98 |
But SQL-DK is still useful – especially if we have a JDBC driver but do not have an ODBC one |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
99 |
(JDBC drivers and Java are also much more portable). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
100 |
</li> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
101 |
</ul> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
102 |
|
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
103 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
104 |
n.b. However it still looks like executing a local command, we should be aware that while using a remote data source, |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
105 |
our data travel to given remote server – this impacts performance and our privacy. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
106 |
Never use untrustworthy remote server for processing sensitive data (even if using just a temporary schema or tables). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
107 |
If SQLite is „too small“ then PostgreSQL installed on <i>localhost</i> is usually a good option. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
108 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
109 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
110 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
111 |
There are ODBC drivers for any conceivable database system. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
112 |
We can also write a custom driver for any other resource and just plug it in <m:name/> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
113 |
without recompiling (a driver is a shared library – simply an <code>.so</code> file). |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
114 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
115 |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
116 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
117 |
This release also comes with better diagnostics. This feature is not specific to ODBC, but was implemented during the rewrite of the database layer. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
118 |
So if we make a mistake in our query or try to create a table with the same name as already exists in the DB, we will get a useful message with detailed description of the problem |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
119 |
(instead of a pointless failure notice in the previous version). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
120 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
121 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
122 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
123 |
The new implementation of <code>relpipe-tr-sql</code> is still a bit <i>raw</i> and will be tuned in the upcoming versions, |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
124 |
but it seems working quite well (with SQLite, PostgreSQL and MySQL on GNU/Linux). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
125 |
As always, testers are welcomed. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
126 |
</p> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
127 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
128 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
129 |
More details in the example: <m:a href="examples-tr-sql-odbc">Accessing SQLite, PostgreSQL and MySQL through ODBC</m:a>. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
130 |
</p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
131 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
132 |
<h2>JACK (MIDI) input module</h2> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
133 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
134 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
135 |
A powerful audio system called <a href="https://jackaudio.org/">JACK</a> allows us to |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
136 |
build pipelines consisting of audio interfaces, players, recorders, filters and effects… |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
137 |
and route sound streams (both PCM and MIDI) through them. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
138 |
MIDI messages can come from keyboards or other hardware MIDI controllers or from MIDI players and other software. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
139 |
Sometimes it is useful to check what is happening under the hood and examine particular MIDI messages |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
140 |
instead of just playing them on a sound module or synthesizer. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
141 |
Now we can bridge two seemingly unrelated worlds: real-time audio and relational pipes. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
142 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
143 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
144 |
<m:img src="img/jack-connections-1.png"/> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
145 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
146 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
147 |
We can join the JACK graph with <code>relpipe-in-jack</code> command. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
148 |
It does not consume STDIN, it gets events from JACK instead, so no other input data are needed. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
149 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
150 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
151 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
152 |
More details in the example: <m:a href="examples-jack-midi-monitoring">Monitoring MIDI messages using JACK</m:a>. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
153 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
154 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
155 |
<h2>Feature overview</h2> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
156 |
|
151 | 157 |
<h3>Data types</h3> |
158 |
<ul> |
|
241 | 159 |
<li m:since="v0.8">boolean</li> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
160 |
<li m:since="v0.15">variable-length signed integer (SLEB128)</li> |
241 | 161 |
<li m:since="v0.8">string in UTF-8</li> |
151 | 162 |
</ul> |
163 |
<h3>Inputs</h3> |
|
164 |
<ul> |
|
256 | 165 |
<li m:since="v0.11">Recfile</li> |
241 | 166 |
<li m:since="v0.9">XML</li> |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
167 |
<li m:since="v0.13">XMLTable</li> |
241 | 168 |
<li m:since="v0.9">CSV</li> |
169 |
<li m:since="v0.9">file system</li> |
|
170 |
<li m:since="v0.8">CLI</li> |
|
171 |
<li m:since="v0.8">fstab</li> |
|
282
ec02133045a3
Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents:
276
diff
changeset
|
172 |
<li m:since="v0.14">SQL script</li> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
173 |
<li m:since="v0.16">JACK</li> |
151 | 174 |
</ul> |
175 |
<h3>Transformations</h3> |
|
176 |
<ul> |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
177 |
<li m:since="v0.13">sql: filtering and transformations using the SQL language</li> |
258
2868d772c27e
Release v0.12 – AWK
František Kučera <franta-hg@frantovo.cz>
parents:
256
diff
changeset
|
178 |
<li m:since="v0.12">awk: filtering and transformations using the classic AWK tool and language</li> |
250 | 179 |
<li m:since="v0.10">guile: filtering and transformations defined in the Scheme language using GNU Guile</li> |
241 | 180 |
<li m:since="v0.8">grep: regular expression filter, removes unwanted records from the relation</li> |
181 |
<li m:since="v0.8">cut: regular expression attribute cutter (removes or duplicates attributes and can also DROP whole relation)</li> |
|
182 |
<li m:since="v0.8">sed: regular expression replacer</li> |
|
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
183 |
<li m:since="v0.8">validator: just a pass-through filter that crashes on invalid data</li> |
241 | 184 |
<li m:since="v0.8">python: highly experimental</li> |
151 | 185 |
</ul> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
186 |
<h3>Streamlets</h3> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
187 |
<ul> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
188 |
<li m:since="v0.15">xpath (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
189 |
<li m:since="v0.15">hash (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
190 |
<li m:since="v0.15">jar_info (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
191 |
<li m:since="v0.15">mime_type (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
192 |
<li m:since="v0.15">exiftool (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
193 |
<li m:since="v0.15">pid (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
194 |
<li m:since="v0.15">cloc (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
195 |
<li m:since="v0.15">exiv2 (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
196 |
<li m:since="v0.15">inode (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
197 |
<li m:since="v0.15">lines_count (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
198 |
<li m:since="v0.15">pdftotext (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
199 |
<li m:since="v0.15">pdfinfo (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
200 |
<li m:since="v0.15">tesseract (example, unstable)</li> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
201 |
</ul> |
151 | 202 |
<h3>Outputs</h3> |
203 |
<ul> |
|
256 | 204 |
<li m:since="v0.11">ASN.1 BER</li> |
205 |
<li m:since="v0.11">Recfile</li> |
|
241 | 206 |
<li m:since="v0.9">CSV</li> |
207 |
<li m:since="v0.8">tabular</li> |
|
208 |
<li m:since="v0.8">XML</li> |
|
209 |
<li m:since="v0.8">nullbyte</li> |
|
210 |
<li m:since="v0.8">GUI in Qt</li> |
|
211 |
<li m:since="v0.8">ODS (LibreOffice)</li> |
|
151 | 212 |
</ul> |
213 |
||
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
214 |
<h2>New examples</h2> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
215 |
<ul> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
216 |
<li><m:a href="examples-tr-sql-odbc">Accessing SQLite, PostgreSQL and MySQL through ODBC</m:a></li> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
217 |
<li><m:a href="examples-jack-midi-monitoring">Monitoring MIDI messages using JACK</m:a></li> |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
218 |
</ul> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
219 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
220 |
<h2>Backward incompatible changes</h2> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
221 |
|
151 | 222 |
<p> |
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
223 |
The options <code>--file</code> and <code>--file-keep</code> in <code>relpipe-tr-sql</code> (and <code>relpipe-in-sql</code>, which is an alias for the same binary) |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
224 |
have been dropped. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
225 |
These options were specific to SQLite and make no sense now, when we do not depend on particular DBMS and can use any <i>engine</i> for SQL processing |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
226 |
(even a remote one somewhere on the network that could not reach our local files). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
227 |
However SQLite is still the default option and the: |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
228 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
229 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
230 |
<m:pre jazyk="bash">relpipe-tr-sql --file 'myDatabase.sqlite'</m:pre> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
231 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
232 |
<p>can be simply replaced by:</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
233 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
234 |
<m:pre jazyk="bash">relpipe-tr-sql --data-source-string 'Driver=SQLite3;Database=file:myDatabase.sqlite'</m:pre> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
235 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
236 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
237 |
Bash-completion works and will suggest even the <code>Driver=SQLite3;Database=file:</code> part, so it is not necessary to memorize the connection string. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
238 |
Frequently used databases can be configured in the <code>~/.odbc.ini</code> file and then referenced just by their names using <code>--data-source-name</code> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
239 |
(the data source names – DSN – are also suggested by Bash-completion). |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
240 |
</p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
241 |
|
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
242 |
<p> |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
243 |
There is no built-in replacement for the <code>--file-keep</code> option. |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
244 |
But if the user wants to create a temporary file and delete it at the end of the transformation, |
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
245 |
he can simply add <code>rm -f myDatabase.sqlite</code> to his script. |
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
246 |
</p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
247 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
248 |
<h2>Installation</h2> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
249 |
|
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
250 |
<p> |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
251 |
Instalation was tested on Debian GNU/Linux 10.2. |
219 | 252 |
The process should be similar on other distributions. |
253 |
</p> |
|
151 | 254 |
|
297
192b0059a6c4
Release v0.16 – ODBC in SQL + JACK MIDI
František Kučera <franta-hg@frantovo.cz>
parents:
294
diff
changeset
|
255 |
<m:pre src="examples/release-v0.16.sh" jazyk="bash" odkaz="ano"/> |
151 | 256 |
|
219 | 257 |
<p> |
258 |
<m:name/> are modular thus you can download and install only parts you need (the libraries are needed always). |
|
259 |
Tools <code>out-gui.qt</code> and <code>tr-python</code> require additional libraries and are not built by default. |
|
260 |
</p> |
|
151 | 261 |
|
87
25dec6931f18
Lepší odsazení, tabulátory.
František Kučera <franta-hg@frantovo.cz>
parents:
23
diff
changeset
|
262 |
</text> |
4
1bb39595a51c
genrování hlavní nabídky #1
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
263 |
|
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
264 |
</stránka> |