Mxrcon / BioNameGenerator

A small project to generate random repository/release/project names based on Biological names and related topics
MIT License
6 stars 0 forks source link

[Suggestion] Consider the use of an embedded database #1

Closed abhi18av closed 2 years ago

abhi18av commented 2 years ago

Hi @Mxrcon ,

Great initiative with the project, looking forward to using it!

I was going through the commit history and the latest changes indicate the majority of changed-lines to be because of the static lists of various resources.

I was wondering whether it might be useful - in future - to rely upon embeddable databases and instead of iterating over the arrays while invoking the Get-* functions then perhaps the overall performance would be optimised.

There are two embeddable databases which come to my mind

Mxrcon commented 2 years ago

Hey @abhi18av, Thank you for stepping by!

I'm really interested on adding a database, as this might add the possibility of customizing the string as output (ie.: customize the query for a random Aminoacid - only Aminoacids starting with A).

I have one main worry: Using Binaries might create a dependence issue, and my main objective is to make it as simpler as possible, because this won't make the maintenance so hard. Perhaps, PSSQlite came to my mind as a possibility. Creating a database with different tables for each dictionary is a very interesting development path.

Also, do you think that using embedded databases will be an issue when building the module? Will I be able to keep it working and add it to powershell gallery? This is my last goal with this project.

Mxrcon commented 2 years ago

Tried to implement this pattern here: https://github.com/Mxrcon/name_generator/commit/2fb3a786512aadce2ae86c173e2b69e4dcb7e769

I'm worried with the addition of Nextflow Keywords as Apache license(Nextflow's license) require Noticing about the modifications and those modifications will be in a Binary file (Dictionaries.db)

abhi18av commented 2 years ago

Hmm, good point.

But as far as I understand the licensing terms are applicable, only if we use the code from the main source code 🤔

In this case, we are not using anything in Groovy/Nextflow code so it should (probably - but need to confirm) be okay.

Mxrcon commented 2 years ago

Closing this as I decided to use a embed database and the module is already published.

Thank you @abhi18av for your attention, time and consideration. Your considerations were very useful onto the development of this module.

abhi18av commented 2 years ago

Happy to be of any help Davi - great work with this module!