Hello , To experiment with the wonderful brand new dynamic-import-plugin I decided to try implementing this new feature on my generator for 164K first names of people , which you can find here .
The source of the names can be found here : https://github.com/Debdut/names.io
My goal here was to find a “good general solution” with the dynamic-import-plugin that I can implement for more important generators with larger datasets in the future.
The dynamic-import-plugin great improvement ; I can get access to the full list of names without long loading times. But I also have some new problems.
Question 1 (main issue)
I have this issue where the the imported values will occasionally read as ‘undefined’ when I import stuff. You can see it in the image above.
Here is what the sub-generator fusion-t2i-names-12 looks like :
What are the recommendations to solving this?
EDIT: Many names in this dataset contain non-standard letters , e.g different from A-Z. I am starting to suspect that might be the issue. In which case , should I just put [String(“…”)] over every name with non-standard letters or is there a better way?
Question 2 (secondary)
TLDR : “Am I coding this correctly?”
When I request 100 values at once from a loaded generator I initially get the “freeze” mentioned in the Dynamic Import Plugin Guide.
I’d like for an entire 10K dataset to be loaded when the generator opens . How do I do this?
Reading the code , my interpretation is that I am already doing this.
But it feels like I’m missing something here since I still get a significant “freeze” when requesting items after startup, hence the question.
Question 3 (non-essential)
In the fusion-t2i-names-12 I have this textfields where a user can press a button and get some some values for the dataset.
It would be nice to be able to display these values fusion-t2i-names-12 but I have no idea how to do this since the “_data” is placed in the $output field.
I don’t want to copy paste _data as that would mean my 10K sub-set of words is now a 20K subset of words.
I assume that would impact the “main generator” if I did this and cause even more loading times.
But I’m not sure. I’m fine with copy-pasting as long as it won’t affect the main generator. What should I do here?
Question 1: After some investigation, I’m pretty sure this is because some of your names lists like https://perchance.org/fusion-t2i-names-10#edit have this structure:
$output _firstNames _data lauren-rose ...
Whereas the others have:
$output _data lauren-rose ...
Also, I’m curious where you’ve ran into problems that required you to add
[
instead of just ]["blah"]
or even justblah
for an individual list item like in your_firstNameGenerators
list? Asking this just in case it was because you were working around a bug in the perchance engine that could be fixed.Question 2: I think you’d want to use the “preload” feature here - check the
dynamic-import-plugin
page for info on that and let me know if that doesn’t help. Basically it allows you to load a gen’s data in the background by just executing[dynamicImport('animal', 'preload')]
wherever/whenever, so that when it comes to actually using theanimal
gen with e.g.[a = dynamicImport('animal').selectOne]
, you don’t get a freeze. The preloads can run concurrently/in-parallel, whereas when you just do a plain dynamic import, they need to happen one-by-one, which means that the freeze will be 17x longer if you’re dynamically importing 17 (non-preloaded) generators back-to-back, like your gen is doing here.Question 3: I might need you to expand on the problem here or explain it with a simple example, or maybe someone else can chime in. Note that you can use
$output
directly just like you would a normal list. So you can write e.g.[foo = $output._data.selectOne]
Thanks for the help! I followed your advice things work fine now. https://perchance.org/fusion-t2i-names.
The reason why I wrote [String(“…”)] earlier was as an extra precaution , not due to any import issues. I’ve removed them in this version.
The
dynamic-import-plugin
is a really good plugin :)!chimed
edit: tho now reading your full comment i think i just repeated what you said basically except wronger
chime chime chime
time to chime in
for question 3:
wouldn’t it be just
[$output._data]
?i say because i learned in plugins like this to just do
[$output()]
and in your case the $output instead of being a function is an object with a subobject that is a list