How to make Voila Dashboard not execute every time it runs - jupyter-notebook

I've a somewhat large .ipynb notebook that I've decided to turn it into a dashboard using Voila.
It works just fine, however, it takes a lot of time to execute (around 20 minutes for 88 cell),
I've found out that even if I deploy it on Binder, it will execute every time someone tries to open it.
Is there anyway I can save the generated file so it won't take this long?

Related

cant acces jupyter notebook variable from previous session

So, im playing around with jupyter notebook, and I have this code, that i wrote yesterday:
BUt the problem is, that when i try to acces my model object the next day. Jupyter does not allow me to do that
For some reason i am not able to acces the variables in cells that i wrote i a previous session. Why is this? and how do I circumvent?
If you shut down the Jupyter Notebook service this is to be expected. Your output and cell numbers are saved in the notebook, but objects actually do not stay in memory. Notice how you have In [4]: in both screenshots. This is because you restarted the service and the second screenshot shows your 4th run of that cell since the restart.
You need to rerun the entire notebook to load everything into memory. You can use Kernel> Restart & Run All from the top menu to do this automatically.

Stop submitted lines of code from running

I'm running a long R script, which takes 2 or 3 days to finish. I accidentally run another script, which, if it works as R usually does, will go in some queue and R will run it as soon as the first script is over. I need to stop that, as it would compromise the results from the first script. Is there a visible queue or any other way to stop R from running some code?
I'm working on an interactive session in R studio, on windows 10.
Thanks a lot for any help!
Assuming you're running in console (or interactive session in R studio, that's undetermined from your question) and that what you did was sourcing a script/pasting code and while it was running pasting another chunck of code:
What is ongoing is that you pushed data into R process input stream, it's a buffered input, so it will run each line once the previous line call has ended and free the process.
There's no easy way to play with an input buffer, that's R internal input/output system and mostly it's the Operating system which have those information in cache for now.
Asking R itself is not possible as it already has this buffer to read, any new command would go after.
Last chance thing: If you can spot your another chunck of code starting in your console, you can try pressing the esc key to stop the code running.
You may try messing with the process buffers with procexp but there's a fair chance to just make your R session segfault anyway.
To avoid that in the future, use scripts and run them on the command line separately with Rscript (present in R bin directory under windows too despite the link pointing to a linux manpage).
This would create one session per script and allow to kill them independently. That said if they both write to the same place (database, a file would create an error if accessed by two process) that won't prevent data corruption.
I am guessing OP has below problem:
# my big code, running for a long time
Sys.sleep(10); print("hello 1")
# other big code I dropped in console while R was still busy with above code
print("hello 2")
If this is the case, I don't think it is possible to stop the 2nd process from running.

How to run R script from command line repeatedly but only load packages the first time

I want to run an R script (in Win 7) from SQL Server 2014 each time a new record is added (to perform some analysis on the data). I saw that this can be done with the xp_cmdshell command which is like running it manually from the command line.
My problems (and questions) are:
I've made out from various websites that probably the best option is to use Rscript. This would have to be used at the command line as:
C:\Program Files\R\R-3.2.3\bin\x64\Rscript "my_file_folder\my_file.r
Can I copy Rscript.exe to the folder where my script is, such that I can run my script independently, even if R is not installed? What other files do I need to copy together with Rscript.exe such that it would work independently?
My script loads some packages that contain functions that it uses. Is there a way to somehow include these in the script such that they don't have to be loaded every time (it takes about 5 sec so far and I need this script to be faster)? Or is there a way to only load these packages the first time that the script runs?
In case the overall approach I've described here is not the best one, I am open to doing it differently. Maybe there is a way to somehow package the R script together with all the required dependencies (libraries and other parts of the R software which the script would need to run independently).
What I ultimately need is a for the script to run silently, and reasonably fast, without any windows or anything else popping up, each time a new record is added to my database, do the analysis and exit.
Thanks in advance for any answers.
UPDATE:
I figured out an elegant solution to running the R script. I'm setting up a job in SQL Server and inside that job I'm using "xp_cmdshell" to run my script as a parameter to Rscript.exe, as detailed at point 1 above. I can start this job from any stored procedure and the beauty of it is that the stored procedure does not wait for the script to finish. It just triggers the job (that runs the script in a separate thread) and then it continues with its business.
But questions from points 1 and 2 still remain.

Where can I deploy R script and schedule to run it in a timely manner?

I have a small R script. Typically, 15-20 lines of code. This script replies to random people on Twitter. Everything is working fine when I run the code. Now, I want to auto-run this after fixed intervals of time. So, I made a .bat the file of the R script and schedule the task in the windows scheduler to run after every 15 mins. This works fine as well and the way I expect it to work. Now, the problem is the scheduler works only when my system is working. Once I shut down my system, the scheduler also stops working and the script does not execute.
I want a server (not sure if this is the right word), where I can host the R file or .bat file and where I can schedule the script to execute after every X mins. I need a server (??) because I want this to be active 24 X 7.
I have tried deploying it on shinyapps.io but somehow it doesn't work. Have gone through this as well, with no help. Any help would be appreciated.

Meteor run performance

Is there anyway to make the 'meteor' command or also known as 'meteor run' command in the console execute faster to run the app when developing? When I do little changes, I have to ctrl + C in the command line and meteor run (I do this because sometimes the hot code push takes time to take effect after I put the code so just ctrl + C and run it again) and it takes up like a min or two to start running again cause the app is getting big. Is there any way to make it fast while on development or there's nothing I can do about it?
One thing that I've seen cause this is files in the /public directory. If you store more than a small number of images or other files in there, it can make the app take a really long time to start up and even crash on hot code pushes.

Resources