diff options
Diffstat (limited to '')
15 files changed, 810 insertions, 75 deletions
diff --git a/locale/eo/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po b/locale/eo/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po index c1da836..510a47e 100644 --- a/locale/eo/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po +++ b/locale/eo/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po @@ -146,12 +146,23 @@ msgid "" "Then when building the documentation I'll just [generate an HTML file from " "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " -"[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " -"the static website. All that is done on the main branch." +"[publish](https://euandreh.xyz/mediator/TODOs.html) it alongside the static " +"website. All that is done on the main branch." msgstr "" #~ msgid "" #~ "I like to keep a " +#~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org) file at the " +#~ "repository top-level, with two relevant sections: \"tasks\" and \"bugs\". " +#~ "Then when building the documentation I'll just [generate an HTML file from " +#~ "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" +#~ "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " +#~ "[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " +#~ "the static website. All that is done on the main branch." +#~ msgstr "" + +#~ msgid "" +#~ "I like to keep a " #~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org?id=110c0af4ef53faf6e1ebe87905ce16766548607e)" #~ " file at the repository top-level, with two relevant sections: \"tasks\" and" #~ " \"bugs\". Then when building the documentation I'll just [generate an HTML " diff --git a/locale/eo/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po b/locale/eo/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po index c85754b..39b12d5 100644 --- a/locale/eo/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po +++ b/locale/eo/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po @@ -257,13 +257,6 @@ msgstr "" msgid "Patches welcome!" msgstr "" -msgid "" -"Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " -"tool to enhance the interactive usability of menu-like tools, such as " -"[dmenu](https://tools.suckless.org/dmenu/) and " -"[fzf](https://github.com/junegunn/fzf)." -msgstr "" - msgid "the manpages are written in troff directly;" msgstr "" @@ -274,6 +267,20 @@ msgid "" "`[sudo] make install`." msgstr "" +msgid "" +"Today I pushed v0.1.0 of [remembering](https://euandreh.xyz/remembering/), a" +" tool to enhance the interactive usability of menu-like tools, such as " +"[dmenu](https://tools.suckless.org/dmenu/) and " +"[fzf](https://github.com/junegunn/fzf)." +msgstr "" + +#~ msgid "" +#~ "Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " +#~ "tool to enhance the interactive usability of menu-like tools, such as " +#~ "[dmenu](https://tools.suckless.org/dmenu/) and " +#~ "[fzf](https://github.com/junegunn/fzf)." +#~ msgstr "" + #~ msgid "" #~ "For my personal use, I've packaged `remembering` for [GNU " #~ "Guix](https://git.euandreh.xyz/euandreh-guix-channel/) and " diff --git a/locale/eo/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po b/locale/eo/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po index e30c889..d935827 100644 --- a/locale/eo/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po +++ b/locale/eo/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po @@ -21,11 +21,6 @@ msgid "" "scenarios" msgstr "" -msgid "" -"Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " -"miniscule library for fault-injection and stress-testing C programs." -msgstr "" - msgid "Existing solutions" msgstr "" @@ -299,11 +294,6 @@ msgid "" msgstr "" msgid "" -"Compile with `-DFALLIBLE` and run [`fallible-" -"check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" -msgstr "" - -msgid "" "$ c99 -DFALLIBLE -o leaky leaky.c -lfallible\n" "$ fallible-check ./leaky\n" "Valgrind failed when we did not expect it to:\n" @@ -343,6 +333,26 @@ msgid "" " return false;\n" msgstr "" +msgid "" +"Yesterday I pushed v0.1.0 of [fallible](https://euandreh.xyz/fallible/), a " +"miniscule library for fault-injection and stress-testing C programs." +msgstr "" + +msgid "" +"Compile with `-DFALLIBLE` and run [`fallible-" +"check.1`](https://euandreh.xyz/fallible/fallible-check.1.html):" +msgstr "" + +#~ msgid "" +#~ "Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " +#~ "miniscule library for fault-injection and stress-testing C programs." +#~ msgstr "" + +#~ msgid "" +#~ "Compile with `-DFALLIBLE` and run [`fallible-" +#~ "check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" +#~ msgstr "" + #~ msgid "" #~ "--- 3.c\t2021-02-17 00:15:38.019706074 -0300\n" #~ "+++ 4.c\t2021-02-17 00:44:32.306885590 -0300\n" diff --git a/locale/eo/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po b/locale/eo/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po new file mode 100644 index 0000000..6a98ab5 --- /dev/null +++ b/locale/eo/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po @@ -0,0 +1,211 @@ +# +msgid "" +msgstr "" + +msgid "" +"title: A Relational Model of Data for Large Shared Data Banks - article-" +"review" +msgstr "" + +msgid "date: 2021-04-29" +msgstr "" + +msgid "layout: post" +msgstr "" + +msgid "lang: en" +msgstr "" + +msgid "" +"ref: a-relational-model-of-data-for-large-shared-data-banks-article-review" +msgstr "" + +msgid "" +"This is a review of the article \"[A Relational Model of Data for Large " +"Shared Data Banks](https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf)\"," +" by E. F. Codd." +msgstr "" + +msgid "Data Independence" +msgstr "" + +msgid "" +"Codd brings the idea of *data independence* as a better approach to use on " +"databases. This is contrast with the existing approaches, namely " +"hierarquical (tree-based) and network-based." +msgstr "" + +msgid "" +"His main argument is that queries in applications shouldn't depende and be " +"coupled with how the data is represented internally by the database system. " +"This key idea is very powerful, and something that we strive for in many " +"other places: decoupling the interface from the implementation." +msgstr "" + +msgid "" +"If the database system has this separation, it can kep the querying " +"interface stable, while having the freedom to change its internal " +"representation at will, for better performance, less storage, etc." +msgstr "" + +msgid "" +"This is true for most modern database systems. They can change from B-Trees " +"with leafs containing pointers to data, to B-Trees with leafs containing the" +" raw data , to hash tables. All that without changing the query interface, " +"only its performance." +msgstr "" + +msgid "" +"Codd mentions that, from an information representation standpoint, any index" +" is a duplication, but useful for perfomance." +msgstr "" + +msgid "" +"This data independence also impacts ordering (a *relation* doesn't rely on " +"the insertion order)." +msgstr "" + +msgid "Duplicates" +msgstr "" + +msgid "" +"His definition of relational data is a bit differente from most modern " +"database systems, namely **no duplicate rows**." +msgstr "" + +msgid "" +"I couldn't find a reason behind this restriction, though. For practical " +"purposes, I find it useful to have it." +msgstr "" + +msgid "Relational Data" +msgstr "" + +msgid "" +"In the article, Codd doesn't try to define a language, and today's most " +"popular one is SQL." +msgstr "" + +msgid "" +"However, there is no restriction that says that \"SQL database\" and " +"\"relational database\" are synonyms. One could have a relational database " +"without using SQL at all, and it would still be a relational one." +msgstr "" + +msgid "" +"The main one that I have in mind, and the reason that led me to reading this" +" paper in the first place, is Datomic." +msgstr "" + +msgid "" +"Is uses an [edn]-based representation for datalog queries[^edn-queries], and" +" a particular schema used to represent data." +msgstr "" + +msgid "" +"Even though it looks very weird when coming from SQL, I'd argue that it " +"ticks all the boxes (except for \"no duplicates\") that defines a relational" +" database, since building relations and applying operations on them is " +"possible." +msgstr "" + +msgid "" +"Compare and contrast a contrived example of possible representations of SQL " +"and datalog of the same data:" +msgstr "" + +msgid "" +"-- create schema\n" +"CREATE TABLE people (\n" +" id UUID PRIMARY KEY,\n" +" name TEXT NOT NULL,\n" +" manager_id UUID,\n" +" FOREIGN KEY (manager_id) REFERENCES people (id)\n" +");\n" +"\n" +"-- insert data\n" +"INSERT INTO people (id, name, manager_id) VALUES\n" +" (\"d3f29960-ccf0-44e4-be66-1a1544677441\", \"Foo\", \"076356f4-1a0e-451c-b9c6-a6f56feec941\"),\n" +" (\"076356f4-1a0e-451c-b9c6-a6f56feec941\", \"Bar\");\n" +"\n" +"-- query data, make a relation\n" +"\n" +"SELECT employees.name AS 'employee-name',\n" +" managers.name AS 'manager-name'\n" +"FROM people employees\n" +"INNER JOIN people managers ON employees.manager_id = managers.id;\n" +msgstr "" + +msgid "{% raw %}" +msgstr "" + +msgid "" +";; create schema\n" +"#{ {:db/ident :person/id\n" +" :db/valueType :db.type/uuid\n" +" :db/cardinality :db.cardinality/one\n" +" :db/unique :db.unique/value}\n" +" {:db/ident :person/name\n" +" :db/valueType :db.type/string\n" +" :db/cardinality :db.cardinality/one}\n" +" {:db/ident :person/manager\n" +" :db/valueType :db.type/ref\n" +" :db/cardinality :db.cardinality/one}}\n" +"\n" +";; insert data\n" +"#{ {:person/id #uuid \"d3f29960-ccf0-44e4-be66-1a1544677441\"\n" +" :person/name \"Foo\"\n" +" :person/manager [:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"]}\n" +" {:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"\n" +" :person/name \"Bar\"}}\n" +"\n" +";; query data, make a relation\n" +"{:find [?employee-name ?manager-name]\n" +" :where [[?person :person/name ?employee-name]\n" +" [?person :person/manager ?manager]\n" +" [?manager :person/name ?manager-name]]}\n" +msgstr "" + +msgid "{% endraw %}" +msgstr "" + +msgid "" +"(forgive any errors on the above SQL and datalog code, I didn't run them to " +"check. Patches welcome!)" +msgstr "" + +msgid "" +"This employee example comes from the paper, and both SQL and datalog " +"representations match the paper definition of \"relational\"." +msgstr "" + +msgid "" +"Both \"Foo\" and \"Bar\" are employees, and the data is normalized. SQL " +"represents data as tables, and Datomic as datoms, but relations could be " +"derived from both, which we could view as:" +msgstr "" + +msgid "" +"employee_name | manager_name\n" +"----------------------------\n" +"\"Foo\" | \"Bar\"\n" +msgstr "" + +msgid "" +"[^edn-queries]: You can think of it as JSON, but with a Clojure taste. " +"[edn]: https://github.com/edn-format/edn" +msgstr "" + +msgid "Conclusion" +msgstr "" + +msgid "" +"The article also talks about operators, consistency and normalization, which" +" are now so widespread and well-known that it feels a bit weird seeing " +"someone advocating for it." +msgstr "" + +msgid "" +"I also stablish that `relational != SQL`, and other databases such as " +"Datomic are also relational, following Codd's original definition." +msgstr "" diff --git a/locale/eo/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po b/locale/eo/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po index 7c9cbfc..6d72a19 100644 --- a/locale/eo/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po +++ b/locale/eo/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po @@ -40,12 +40,6 @@ msgid "" "the test command." msgstr "" -msgid "" -"After using a similar post-receive hook for a while, I now even generate a " -"simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " -"through the browser." -msgstr "" - msgid "Upsides" msgstr "" @@ -93,6 +87,18 @@ msgstr "" msgid "eu_categories: ci" msgstr "" +msgid "" +"After using a similar post-receive hook for a while, I now even generate a " +"simple HTML file to make the logs available ([example " +"project](https://euandreh.xyz/remembering/)) through the browser." +msgstr "" + +#~ msgid "" +#~ "After using a similar post-receive hook for a while, I now even generate a " +#~ "simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " +#~ "through the browser." +#~ msgstr "" + #~ msgid "" #~ "#!/usr/bin/env bash\n" #~ "set -Eeuo pipefail\n" diff --git a/locale/fr/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po b/locale/fr/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po index c1da836..510a47e 100644 --- a/locale/fr/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po +++ b/locale/fr/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po @@ -146,12 +146,23 @@ msgid "" "Then when building the documentation I'll just [generate an HTML file from " "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " -"[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " -"the static website. All that is done on the main branch." +"[publish](https://euandreh.xyz/mediator/TODOs.html) it alongside the static " +"website. All that is done on the main branch." msgstr "" #~ msgid "" #~ "I like to keep a " +#~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org) file at the " +#~ "repository top-level, with two relevant sections: \"tasks\" and \"bugs\". " +#~ "Then when building the documentation I'll just [generate an HTML file from " +#~ "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" +#~ "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " +#~ "[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " +#~ "the static website. All that is done on the main branch." +#~ msgstr "" + +#~ msgid "" +#~ "I like to keep a " #~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org?id=110c0af4ef53faf6e1ebe87905ce16766548607e)" #~ " file at the repository top-level, with two relevant sections: \"tasks\" and" #~ " \"bugs\". Then when building the documentation I'll just [generate an HTML " diff --git a/locale/fr/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po b/locale/fr/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po index c85754b..39b12d5 100644 --- a/locale/fr/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po +++ b/locale/fr/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po @@ -257,13 +257,6 @@ msgstr "" msgid "Patches welcome!" msgstr "" -msgid "" -"Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " -"tool to enhance the interactive usability of menu-like tools, such as " -"[dmenu](https://tools.suckless.org/dmenu/) and " -"[fzf](https://github.com/junegunn/fzf)." -msgstr "" - msgid "the manpages are written in troff directly;" msgstr "" @@ -274,6 +267,20 @@ msgid "" "`[sudo] make install`." msgstr "" +msgid "" +"Today I pushed v0.1.0 of [remembering](https://euandreh.xyz/remembering/), a" +" tool to enhance the interactive usability of menu-like tools, such as " +"[dmenu](https://tools.suckless.org/dmenu/) and " +"[fzf](https://github.com/junegunn/fzf)." +msgstr "" + +#~ msgid "" +#~ "Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " +#~ "tool to enhance the interactive usability of menu-like tools, such as " +#~ "[dmenu](https://tools.suckless.org/dmenu/) and " +#~ "[fzf](https://github.com/junegunn/fzf)." +#~ msgstr "" + #~ msgid "" #~ "For my personal use, I've packaged `remembering` for [GNU " #~ "Guix](https://git.euandreh.xyz/euandreh-guix-channel/) and " diff --git a/locale/fr/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po b/locale/fr/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po index e30c889..d935827 100644 --- a/locale/fr/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po +++ b/locale/fr/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po @@ -21,11 +21,6 @@ msgid "" "scenarios" msgstr "" -msgid "" -"Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " -"miniscule library for fault-injection and stress-testing C programs." -msgstr "" - msgid "Existing solutions" msgstr "" @@ -299,11 +294,6 @@ msgid "" msgstr "" msgid "" -"Compile with `-DFALLIBLE` and run [`fallible-" -"check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" -msgstr "" - -msgid "" "$ c99 -DFALLIBLE -o leaky leaky.c -lfallible\n" "$ fallible-check ./leaky\n" "Valgrind failed when we did not expect it to:\n" @@ -343,6 +333,26 @@ msgid "" " return false;\n" msgstr "" +msgid "" +"Yesterday I pushed v0.1.0 of [fallible](https://euandreh.xyz/fallible/), a " +"miniscule library for fault-injection and stress-testing C programs." +msgstr "" + +msgid "" +"Compile with `-DFALLIBLE` and run [`fallible-" +"check.1`](https://euandreh.xyz/fallible/fallible-check.1.html):" +msgstr "" + +#~ msgid "" +#~ "Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " +#~ "miniscule library for fault-injection and stress-testing C programs." +#~ msgstr "" + +#~ msgid "" +#~ "Compile with `-DFALLIBLE` and run [`fallible-" +#~ "check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" +#~ msgstr "" + #~ msgid "" #~ "--- 3.c\t2021-02-17 00:15:38.019706074 -0300\n" #~ "+++ 4.c\t2021-02-17 00:44:32.306885590 -0300\n" diff --git a/locale/fr/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po b/locale/fr/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po new file mode 100644 index 0000000..6a98ab5 --- /dev/null +++ b/locale/fr/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po @@ -0,0 +1,211 @@ +# +msgid "" +msgstr "" + +msgid "" +"title: A Relational Model of Data for Large Shared Data Banks - article-" +"review" +msgstr "" + +msgid "date: 2021-04-29" +msgstr "" + +msgid "layout: post" +msgstr "" + +msgid "lang: en" +msgstr "" + +msgid "" +"ref: a-relational-model-of-data-for-large-shared-data-banks-article-review" +msgstr "" + +msgid "" +"This is a review of the article \"[A Relational Model of Data for Large " +"Shared Data Banks](https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf)\"," +" by E. F. Codd." +msgstr "" + +msgid "Data Independence" +msgstr "" + +msgid "" +"Codd brings the idea of *data independence* as a better approach to use on " +"databases. This is contrast with the existing approaches, namely " +"hierarquical (tree-based) and network-based." +msgstr "" + +msgid "" +"His main argument is that queries in applications shouldn't depende and be " +"coupled with how the data is represented internally by the database system. " +"This key idea is very powerful, and something that we strive for in many " +"other places: decoupling the interface from the implementation." +msgstr "" + +msgid "" +"If the database system has this separation, it can kep the querying " +"interface stable, while having the freedom to change its internal " +"representation at will, for better performance, less storage, etc." +msgstr "" + +msgid "" +"This is true for most modern database systems. They can change from B-Trees " +"with leafs containing pointers to data, to B-Trees with leafs containing the" +" raw data , to hash tables. All that without changing the query interface, " +"only its performance." +msgstr "" + +msgid "" +"Codd mentions that, from an information representation standpoint, any index" +" is a duplication, but useful for perfomance." +msgstr "" + +msgid "" +"This data independence also impacts ordering (a *relation* doesn't rely on " +"the insertion order)." +msgstr "" + +msgid "Duplicates" +msgstr "" + +msgid "" +"His definition of relational data is a bit differente from most modern " +"database systems, namely **no duplicate rows**." +msgstr "" + +msgid "" +"I couldn't find a reason behind this restriction, though. For practical " +"purposes, I find it useful to have it." +msgstr "" + +msgid "Relational Data" +msgstr "" + +msgid "" +"In the article, Codd doesn't try to define a language, and today's most " +"popular one is SQL." +msgstr "" + +msgid "" +"However, there is no restriction that says that \"SQL database\" and " +"\"relational database\" are synonyms. One could have a relational database " +"without using SQL at all, and it would still be a relational one." +msgstr "" + +msgid "" +"The main one that I have in mind, and the reason that led me to reading this" +" paper in the first place, is Datomic." +msgstr "" + +msgid "" +"Is uses an [edn]-based representation for datalog queries[^edn-queries], and" +" a particular schema used to represent data." +msgstr "" + +msgid "" +"Even though it looks very weird when coming from SQL, I'd argue that it " +"ticks all the boxes (except for \"no duplicates\") that defines a relational" +" database, since building relations and applying operations on them is " +"possible." +msgstr "" + +msgid "" +"Compare and contrast a contrived example of possible representations of SQL " +"and datalog of the same data:" +msgstr "" + +msgid "" +"-- create schema\n" +"CREATE TABLE people (\n" +" id UUID PRIMARY KEY,\n" +" name TEXT NOT NULL,\n" +" manager_id UUID,\n" +" FOREIGN KEY (manager_id) REFERENCES people (id)\n" +");\n" +"\n" +"-- insert data\n" +"INSERT INTO people (id, name, manager_id) VALUES\n" +" (\"d3f29960-ccf0-44e4-be66-1a1544677441\", \"Foo\", \"076356f4-1a0e-451c-b9c6-a6f56feec941\"),\n" +" (\"076356f4-1a0e-451c-b9c6-a6f56feec941\", \"Bar\");\n" +"\n" +"-- query data, make a relation\n" +"\n" +"SELECT employees.name AS 'employee-name',\n" +" managers.name AS 'manager-name'\n" +"FROM people employees\n" +"INNER JOIN people managers ON employees.manager_id = managers.id;\n" +msgstr "" + +msgid "{% raw %}" +msgstr "" + +msgid "" +";; create schema\n" +"#{ {:db/ident :person/id\n" +" :db/valueType :db.type/uuid\n" +" :db/cardinality :db.cardinality/one\n" +" :db/unique :db.unique/value}\n" +" {:db/ident :person/name\n" +" :db/valueType :db.type/string\n" +" :db/cardinality :db.cardinality/one}\n" +" {:db/ident :person/manager\n" +" :db/valueType :db.type/ref\n" +" :db/cardinality :db.cardinality/one}}\n" +"\n" +";; insert data\n" +"#{ {:person/id #uuid \"d3f29960-ccf0-44e4-be66-1a1544677441\"\n" +" :person/name \"Foo\"\n" +" :person/manager [:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"]}\n" +" {:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"\n" +" :person/name \"Bar\"}}\n" +"\n" +";; query data, make a relation\n" +"{:find [?employee-name ?manager-name]\n" +" :where [[?person :person/name ?employee-name]\n" +" [?person :person/manager ?manager]\n" +" [?manager :person/name ?manager-name]]}\n" +msgstr "" + +msgid "{% endraw %}" +msgstr "" + +msgid "" +"(forgive any errors on the above SQL and datalog code, I didn't run them to " +"check. Patches welcome!)" +msgstr "" + +msgid "" +"This employee example comes from the paper, and both SQL and datalog " +"representations match the paper definition of \"relational\"." +msgstr "" + +msgid "" +"Both \"Foo\" and \"Bar\" are employees, and the data is normalized. SQL " +"represents data as tables, and Datomic as datoms, but relations could be " +"derived from both, which we could view as:" +msgstr "" + +msgid "" +"employee_name | manager_name\n" +"----------------------------\n" +"\"Foo\" | \"Bar\"\n" +msgstr "" + +msgid "" +"[^edn-queries]: You can think of it as JSON, but with a Clojure taste. " +"[edn]: https://github.com/edn-format/edn" +msgstr "" + +msgid "Conclusion" +msgstr "" + +msgid "" +"The article also talks about operators, consistency and normalization, which" +" are now so widespread and well-known that it feels a bit weird seeing " +"someone advocating for it." +msgstr "" + +msgid "" +"I also stablish that `relational != SQL`, and other databases such as " +"Datomic are also relational, following Codd's original definition." +msgstr "" diff --git a/locale/fr/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po b/locale/fr/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po index 7c9cbfc..6d72a19 100644 --- a/locale/fr/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po +++ b/locale/fr/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po @@ -40,12 +40,6 @@ msgid "" "the test command." msgstr "" -msgid "" -"After using a similar post-receive hook for a while, I now even generate a " -"simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " -"through the browser." -msgstr "" - msgid "Upsides" msgstr "" @@ -93,6 +87,18 @@ msgstr "" msgid "eu_categories: ci" msgstr "" +msgid "" +"After using a similar post-receive hook for a while, I now even generate a " +"simple HTML file to make the logs available ([example " +"project](https://euandreh.xyz/remembering/)) through the browser." +msgstr "" + +#~ msgid "" +#~ "After using a similar post-receive hook for a while, I now even generate a " +#~ "simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " +#~ "through the browser." +#~ msgstr "" + #~ msgid "" #~ "#!/usr/bin/env bash\n" #~ "set -Eeuo pipefail\n" diff --git a/locale/pt/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po b/locale/pt/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po index c1da836..510a47e 100644 --- a/locale/pt/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po +++ b/locale/pt/LC_MESSAGES/_articles/2020-11-07-diy-an-offline-bug-tracker-with-text-files-git-and-email.po @@ -146,12 +146,23 @@ msgid "" "Then when building the documentation I'll just [generate an HTML file from " "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " -"[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " -"the static website. All that is done on the main branch." +"[publish](https://euandreh.xyz/mediator/TODOs.html) it alongside the static " +"website. All that is done on the main branch." msgstr "" #~ msgid "" #~ "I like to keep a " +#~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org) file at the " +#~ "repository top-level, with two relevant sections: \"tasks\" and \"bugs\". " +#~ "Then when building the documentation I'll just [generate an HTML file from " +#~ "it](https://git.euandreh.xyz/mediator/tree/scripts/build-" +#~ "site.sh?id=db4a727bc24b54b50158827b34502de21dbf8948#n14), and " +#~ "[publish](https://mediator.euandreh.xyz/tasks-and-bugs.html) it alongside " +#~ "the static website. All that is done on the main branch." +#~ msgstr "" + +#~ msgid "" +#~ "I like to keep a " #~ "[`TODOs.org`](https://git.euandreh.xyz/mediator/tree/TODOs.org?id=110c0af4ef53faf6e1ebe87905ce16766548607e)" #~ " file at the repository top-level, with two relevant sections: \"tasks\" and" #~ " \"bugs\". Then when building the documentation I'll just [generate an HTML " diff --git a/locale/pt/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po b/locale/pt/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po index c85754b..39b12d5 100644 --- a/locale/pt/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po +++ b/locale/pt/LC_MESSAGES/_articles/2021-01-26-ann-remembering-add-memory-to-dmenu-fzf-and-similar-tools.po @@ -257,13 +257,6 @@ msgstr "" msgid "Patches welcome!" msgstr "" -msgid "" -"Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " -"tool to enhance the interactive usability of menu-like tools, such as " -"[dmenu](https://tools.suckless.org/dmenu/) and " -"[fzf](https://github.com/junegunn/fzf)." -msgstr "" - msgid "the manpages are written in troff directly;" msgstr "" @@ -274,6 +267,20 @@ msgid "" "`[sudo] make install`." msgstr "" +msgid "" +"Today I pushed v0.1.0 of [remembering](https://euandreh.xyz/remembering/), a" +" tool to enhance the interactive usability of menu-like tools, such as " +"[dmenu](https://tools.suckless.org/dmenu/) and " +"[fzf](https://github.com/junegunn/fzf)." +msgstr "" + +#~ msgid "" +#~ "Today I pushed v0.1.0 of [remembering](https://remembering.euandreh.xyz), a " +#~ "tool to enhance the interactive usability of menu-like tools, such as " +#~ "[dmenu](https://tools.suckless.org/dmenu/) and " +#~ "[fzf](https://github.com/junegunn/fzf)." +#~ msgstr "" + #~ msgid "" #~ "For my personal use, I've packaged `remembering` for [GNU " #~ "Guix](https://git.euandreh.xyz/euandreh-guix-channel/) and " diff --git a/locale/pt/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po b/locale/pt/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po index e30c889..d935827 100644 --- a/locale/pt/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po +++ b/locale/pt/LC_MESSAGES/_articles/2021-02-17-ann-fallible-fault-injection-library-for-stress-testing-failure-scenarios.po @@ -21,11 +21,6 @@ msgid "" "scenarios" msgstr "" -msgid "" -"Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " -"miniscule library for fault-injection and stress-testing C programs." -msgstr "" - msgid "Existing solutions" msgstr "" @@ -299,11 +294,6 @@ msgid "" msgstr "" msgid "" -"Compile with `-DFALLIBLE` and run [`fallible-" -"check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" -msgstr "" - -msgid "" "$ c99 -DFALLIBLE -o leaky leaky.c -lfallible\n" "$ fallible-check ./leaky\n" "Valgrind failed when we did not expect it to:\n" @@ -343,6 +333,26 @@ msgid "" " return false;\n" msgstr "" +msgid "" +"Yesterday I pushed v0.1.0 of [fallible](https://euandreh.xyz/fallible/), a " +"miniscule library for fault-injection and stress-testing C programs." +msgstr "" + +msgid "" +"Compile with `-DFALLIBLE` and run [`fallible-" +"check.1`](https://euandreh.xyz/fallible/fallible-check.1.html):" +msgstr "" + +#~ msgid "" +#~ "Yesterday I pushed v0.1.0 of [fallible](https://fallible.euandreh.xyz), a " +#~ "miniscule library for fault-injection and stress-testing C programs." +#~ msgstr "" + +#~ msgid "" +#~ "Compile with `-DFALLIBLE` and run [`fallible-" +#~ "check.1`](https:/fallible.euandreh.xyz/fallible-check.1.html):" +#~ msgstr "" + #~ msgid "" #~ "--- 3.c\t2021-02-17 00:15:38.019706074 -0300\n" #~ "+++ 4.c\t2021-02-17 00:44:32.306885590 -0300\n" diff --git a/locale/pt/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po b/locale/pt/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po new file mode 100644 index 0000000..6a98ab5 --- /dev/null +++ b/locale/pt/LC_MESSAGES/_articles/2021-04-29-a-relational-model-of-data-for-large-shared-data-banks-article-review.po @@ -0,0 +1,211 @@ +# +msgid "" +msgstr "" + +msgid "" +"title: A Relational Model of Data for Large Shared Data Banks - article-" +"review" +msgstr "" + +msgid "date: 2021-04-29" +msgstr "" + +msgid "layout: post" +msgstr "" + +msgid "lang: en" +msgstr "" + +msgid "" +"ref: a-relational-model-of-data-for-large-shared-data-banks-article-review" +msgstr "" + +msgid "" +"This is a review of the article \"[A Relational Model of Data for Large " +"Shared Data Banks](https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf)\"," +" by E. F. Codd." +msgstr "" + +msgid "Data Independence" +msgstr "" + +msgid "" +"Codd brings the idea of *data independence* as a better approach to use on " +"databases. This is contrast with the existing approaches, namely " +"hierarquical (tree-based) and network-based." +msgstr "" + +msgid "" +"His main argument is that queries in applications shouldn't depende and be " +"coupled with how the data is represented internally by the database system. " +"This key idea is very powerful, and something that we strive for in many " +"other places: decoupling the interface from the implementation." +msgstr "" + +msgid "" +"If the database system has this separation, it can kep the querying " +"interface stable, while having the freedom to change its internal " +"representation at will, for better performance, less storage, etc." +msgstr "" + +msgid "" +"This is true for most modern database systems. They can change from B-Trees " +"with leafs containing pointers to data, to B-Trees with leafs containing the" +" raw data , to hash tables. All that without changing the query interface, " +"only its performance." +msgstr "" + +msgid "" +"Codd mentions that, from an information representation standpoint, any index" +" is a duplication, but useful for perfomance." +msgstr "" + +msgid "" +"This data independence also impacts ordering (a *relation* doesn't rely on " +"the insertion order)." +msgstr "" + +msgid "Duplicates" +msgstr "" + +msgid "" +"His definition of relational data is a bit differente from most modern " +"database systems, namely **no duplicate rows**." +msgstr "" + +msgid "" +"I couldn't find a reason behind this restriction, though. For practical " +"purposes, I find it useful to have it." +msgstr "" + +msgid "Relational Data" +msgstr "" + +msgid "" +"In the article, Codd doesn't try to define a language, and today's most " +"popular one is SQL." +msgstr "" + +msgid "" +"However, there is no restriction that says that \"SQL database\" and " +"\"relational database\" are synonyms. One could have a relational database " +"without using SQL at all, and it would still be a relational one." +msgstr "" + +msgid "" +"The main one that I have in mind, and the reason that led me to reading this" +" paper in the first place, is Datomic." +msgstr "" + +msgid "" +"Is uses an [edn]-based representation for datalog queries[^edn-queries], and" +" a particular schema used to represent data." +msgstr "" + +msgid "" +"Even though it looks very weird when coming from SQL, I'd argue that it " +"ticks all the boxes (except for \"no duplicates\") that defines a relational" +" database, since building relations and applying operations on them is " +"possible." +msgstr "" + +msgid "" +"Compare and contrast a contrived example of possible representations of SQL " +"and datalog of the same data:" +msgstr "" + +msgid "" +"-- create schema\n" +"CREATE TABLE people (\n" +" id UUID PRIMARY KEY,\n" +" name TEXT NOT NULL,\n" +" manager_id UUID,\n" +" FOREIGN KEY (manager_id) REFERENCES people (id)\n" +");\n" +"\n" +"-- insert data\n" +"INSERT INTO people (id, name, manager_id) VALUES\n" +" (\"d3f29960-ccf0-44e4-be66-1a1544677441\", \"Foo\", \"076356f4-1a0e-451c-b9c6-a6f56feec941\"),\n" +" (\"076356f4-1a0e-451c-b9c6-a6f56feec941\", \"Bar\");\n" +"\n" +"-- query data, make a relation\n" +"\n" +"SELECT employees.name AS 'employee-name',\n" +" managers.name AS 'manager-name'\n" +"FROM people employees\n" +"INNER JOIN people managers ON employees.manager_id = managers.id;\n" +msgstr "" + +msgid "{% raw %}" +msgstr "" + +msgid "" +";; create schema\n" +"#{ {:db/ident :person/id\n" +" :db/valueType :db.type/uuid\n" +" :db/cardinality :db.cardinality/one\n" +" :db/unique :db.unique/value}\n" +" {:db/ident :person/name\n" +" :db/valueType :db.type/string\n" +" :db/cardinality :db.cardinality/one}\n" +" {:db/ident :person/manager\n" +" :db/valueType :db.type/ref\n" +" :db/cardinality :db.cardinality/one}}\n" +"\n" +";; insert data\n" +"#{ {:person/id #uuid \"d3f29960-ccf0-44e4-be66-1a1544677441\"\n" +" :person/name \"Foo\"\n" +" :person/manager [:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"]}\n" +" {:person/id #uuid \"076356f4-1a0e-451c-b9c6-a6f56feec941\"\n" +" :person/name \"Bar\"}}\n" +"\n" +";; query data, make a relation\n" +"{:find [?employee-name ?manager-name]\n" +" :where [[?person :person/name ?employee-name]\n" +" [?person :person/manager ?manager]\n" +" [?manager :person/name ?manager-name]]}\n" +msgstr "" + +msgid "{% endraw %}" +msgstr "" + +msgid "" +"(forgive any errors on the above SQL and datalog code, I didn't run them to " +"check. Patches welcome!)" +msgstr "" + +msgid "" +"This employee example comes from the paper, and both SQL and datalog " +"representations match the paper definition of \"relational\"." +msgstr "" + +msgid "" +"Both \"Foo\" and \"Bar\" are employees, and the data is normalized. SQL " +"represents data as tables, and Datomic as datoms, but relations could be " +"derived from both, which we could view as:" +msgstr "" + +msgid "" +"employee_name | manager_name\n" +"----------------------------\n" +"\"Foo\" | \"Bar\"\n" +msgstr "" + +msgid "" +"[^edn-queries]: You can think of it as JSON, but with a Clojure taste. " +"[edn]: https://github.com/edn-format/edn" +msgstr "" + +msgid "Conclusion" +msgstr "" + +msgid "" +"The article also talks about operators, consistency and normalization, which" +" are now so widespread and well-known that it feels a bit weird seeing " +"someone advocating for it." +msgstr "" + +msgid "" +"I also stablish that `relational != SQL`, and other databases such as " +"Datomic are also relational, following Codd's original definition." +msgstr "" diff --git a/locale/pt/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po b/locale/pt/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po index 7c9cbfc..6d72a19 100644 --- a/locale/pt/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po +++ b/locale/pt/LC_MESSAGES/_tils/2020-11-12-diy-bare-bones-ci-server-with-bash-and-nix.po @@ -40,12 +40,6 @@ msgid "" "the test command." msgstr "" -msgid "" -"After using a similar post-receive hook for a while, I now even generate a " -"simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " -"through the browser." -msgstr "" - msgid "Upsides" msgstr "" @@ -93,6 +87,18 @@ msgstr "" msgid "eu_categories: ci" msgstr "" +msgid "" +"After using a similar post-receive hook for a while, I now even generate a " +"simple HTML file to make the logs available ([example " +"project](https://euandreh.xyz/remembering/)) through the browser." +msgstr "" + +#~ msgid "" +#~ "After using a similar post-receive hook for a while, I now even generate a " +#~ "simple HTML file to make the [logs available](https://ci.euandreh.xyz/) " +#~ "through the browser." +#~ msgstr "" + #~ msgid "" #~ "#!/usr/bin/env bash\n" #~ "set -Eeuo pipefail\n" |