The reason you define a single value tuple in the following manner (value, ) is due to the fact that if you did not finish it off with a comma, it would be considered brackets for the purposes of grouping such as used in BEDMAS for arithmetic. By finishing it off with a comma, you're explicitly telling Python that what you're defining is a tuple.
That's a fantastic response, and something I was really quite curious about. Thanks for clearing that up! I love making videos like this because I am just as susceptible to learning as anyone who is viewing! Thank you, and thanks again for clearing that up for me!
Thank you! Really glad to hear you got it working :) If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page. bit.ly/lp_email
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
Much clearer than the blogs who just displayed the code you showed and expected the reader to infer what a process class was. Thanks for the explanation.
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page. bit.ly/lp_email
Hi Milos. True, but they might not be familiar with the way in which the print statements were updated in Python 3+, so I wanted to mention that just in case. Thanks for the comment!
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
this guy is an excellent teacher, i have not understood anyone who teaches python the way i understood you. please can you also make videos for beginners ? i am a beginner and i want to learn everything from scratch from you I wish
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon! Regarding the content for beginner material, you can feel free to make suggestions on my Patreon page. This would streamline what you want to see and also help to support my channel. www.patreon.com/lucidprogramming
Man, your explanation is clear and amazing. I always wanted to learn about threading and multiprocessing in a more organized manner like this. Clicked subscribe already! I'll keep watching your videos.
3:00 I just wanna say that in python3.7 you can still format like so: "this number %d squares to this number %d" % (number, result) or "this number {0} squares to this number {1}".format(number, result) Thanks for the video. I needed it.
Hey AnteConfig. Great to know that the video helped you, it's always nice to hear that. You can indeed format content in the way you described. Personally, I prefer "f" strings, but if you prefer to use the format function, that's supported as well. Thanks for the comment, and cheers for watching!
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
in Python2 it also supports statements like print("The number is {} and the result is {}".format(number, result)). May be we need to do "from __future__ import print_function". I find this quiet readable. But Fstrings are even more simple and straight forward. Thanks for your videos. You speak at a speed which is neither slow nor too fast and your content is real good. Keep up the good work and all my best for your future.
Yep, that is supported. Personally, I like the functional strings in Python3, but that's a fine way to print the output as well. Cheers, and thanks for the comment!
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
It seems multiprocessing doesn't directly work with Jupyterlab (or IPython, not sure), one workaround is to have the worker function in a separate .py file and imported. Also, I am not sure about the high level concurrent module, but I think it's important to let new multiprocessing learners know about this at the beginning, thanks.
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
Hey wondering if this can be applied to data extractions. For instance take data from a database, do what is needed and load it to a local database. The data is well in the billions and I am being pinched by the fact the machine and network are a bit weak. Can I have all 4 processors extracting the database at the same time and loading it to the same local db or is there some better method?
I watched your video and followed your code in my own application. briefly, I have 38 files that have to be processed. Each file takes one or two minutes to process. It runs on my core i5 laptop with 4 cores. (eventually, I have over 500 files to process which explains the appeal of using all the cores of my pc...) It runs dramatically faster but it doesn't work the way I expected. I thought It would loop through the files starting and completing each file before starting the next (one file per cpu core...) Instead, it seems to start all 38 files and then processes each a few lines at a time. It maxes out my CPU, which runs at 100% until finished. I can process all 38 files in about 15 minutes. But the pc is unusable during that time. The CPU runs at 100% and its uses 65% of the available RAM. Is this normal? Is there a way to make it finish a file before starting a new file to process (using all the available cores)? Have I done something wrong? Is there a better way to use multiprocessing? My thinking is I could code in a pause between files which would give the CPU a chance to catch up on other tasks running.. thank you for reading and responding...
I don't understand your mentioning of GIL and multiprocessing. multiprocessing creates independent processes. I think GIL's scope of function is a single application. so why mix 2 topics which do not have relations? unclear .... In case the python implementation is different please make your comment on that ... thanks
Hi Mohammed. I believe I was setting the stage for the next video in this series. At least, that's what I think I was doing :P. Thanks for the question!
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page. bit.ly/lp_email
Hey! Thank you for your explanation, it is very clear. However, I have a problem. I have exactly the same program than you in 9.33 (I copy it) , but the program continues giving the result as a serial way: number1->number2->number3->number4, no matter of how many times I compile it :( . Do you know what could be the problem with this?. Thank you!
According to Ned Batchelder from StackOverflow: Windows doesn't have fork, so there's no way to make a new process just like the existing one. So the child process has to run your code again, but now you need a way to distinguish between the parent process and the child process, and __main__ is it.
I understood your tutorial, and it makes sense. But when I tried it on my compiler, all I get on the console is blank. I've tried to google online for help but I really can't find the solution to my dilemma. I tried writing your code step by step, I tried just taking it from the link you've provided, but it just keeps giving me the same results. This might be because I'm a complete beginner, but I really want to learn, and I'm just not sure what is wrong. Please do help if you are available.
I have the same problem but after review I notice that write if __name__=='__main___' I had written three '_' instead two I hope it had was your problem also
I'm not positive, but the args style is exactly the same as Pandas series type. So when the series (Tuple) is printed to console that data type from Pandas shows single listed items in this same format.
Hi Angelo. Thanks for the response. I'm not sure that answers my question though. Just because Pandas uses the same convention, I have the same question for why they happened to go with that as well :).
@@LucidProgramming Sorry... It is only required for single-item tuples (lists and dict as well) to disambiguate defining a tuple or an expression surrounded by parentheses. For more than one item, it is no longer necessary since it is perfectly clear it is a tuple. However, the trailing comma is allowed to make defining them using multiple lines easier. You could add to the end or rearrange items without breaking the syntax because you left out a comma on accident. I did enjoy your video though sir.
@@atreyhazelhispanic Ah, gotcha. That makes a bit more sense to me and adds some justification as to why they went with that decision. Thanks for unpacking that, and thanks for your comments about the video as well! Cheers!
when I don't use a list (processes) and just call the start() method straightly, the processes run completely sequentially in a way that I feel it's not doing multi-processing. Can anyone explain why this is happening? Here's my code: from multiprocessing import Process import os def func_to_distribute(num1,num2): print(os.getpid()) print(f"{num1} times {num2} is:", num1*num2) if __name__ == "__main__": for a in range(10): for b in range(10): p = Process(target=func_to_distribute,args=(a,b)) p.start()
I am executing exactly the same code (9:45) , but my pc doesn't print the results, nor can I save the results through return, (main function doesn't identify the results), I would appreciate if you can help. I am using python 3.7.2 64 bit
@@dimitrisbokaris6192 It doesn't only work in terminal, no. However, I assume that the reason you might be not seeing output is because you're running this within the IDLE scripter. You can run a Python file in many ways. I would recommend running from the terminal as I do to ensure you have consistency with what I am doing in this video. Does that make sense?
@@LucidProgramming I am not really that good in programming . didn't know that running the same code somewhere else makes a difference. the way i run codes is by going in idle, then new file, then save and then execute. how can i run it through terminal?
@@dimitrisbokaris6192 The reason comes down to the fact that when you run the program in the terminal, you're executing a process and when you're running in IDLE, you are kind of running within that process. It's a bit hand-wavy, but yes, there are going to be differences. For how to run via terminal, you can just follow what I do in my video.
What do you mean by a "group" of pandas dataframes? I offer consulting and tutoring services for problems like these. I encourage you to reach out to my email listed in the "About" section to set up a remote consulting session. Cheers!
Nice video except please do not digress off into red Herrings like different ways to use the print statement! And also you have explained why you write each line of code so you don't have to waste all that time writing comments into there as well.
Thanks for your video. I do have a question about multiprocessing. Here I asked it on StackOverflow. stackoverflow.com/questions/57529308/solving-a-problem-utilizing-multiprocessing-and-value-in-python I appreciate any help. Solving the same problem using the new approach provided in your video, still, I get no benefits in term of speed.
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support, and if you want to support the channel, I do have a PayPal link (www.paypal.me/VincentRusso1) for donations that go directly to the creation of content on this channel. I hope that the content I provide there will enhance the videos on my RUclips page. bit.ly/lp_email
Hi Vinay. The text editor is Vim, and if you want to see how to use it and how I set it up for Python development, you can check out this playlist on my channel: ruclips.net/p/PL5tcWHG-UPH2HrF5M7-IIXK6JSRG0obYo. Cheers!
The reason you define a single value tuple in the following manner (value, ) is due to the fact that if you did not finish it off with a comma, it would be considered brackets for the purposes of grouping such as used in BEDMAS for arithmetic. By finishing it off with a comma, you're explicitly telling Python that what you're defining is a tuple.
That's a fantastic response, and something I was really quite curious about. Thanks for clearing that up! I love making videos like this because I am just as susceptible to learning as anyone who is viewing! Thank you, and thanks again for clearing that up for me!
That's great!
@@LucidProgramming Cool!
Honestly if you don't know that you define a tuple with one object like this (a, ) you are in no position to talk about processes
LOOOOOOOOOOOOOOOOLLLLLLL
Just wanted to say thanks for this. I managed to get my script working with multiprocessing after watching your video. Cheers.
Thank you! Really glad to hear you got it working :)
If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page.
bit.ly/lp_email
I enjoyed watching this video. Just as your name goes, it is lucid. Thank you!
Much appreciated, thank you for watching!
one of the simplest and best explanation of code online I've ever seen. bless ur soult
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
Much clearer than the blogs who just displayed the code you showed and expected the reader to infer what a process class was. Thanks for the explanation.
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page.
bit.ly/lp_email
@@LucidProgramming I got you
Great video! One remark: I think it is safe to assume that people who look into Mulitihreading and Multiprocessing know how print functions work. ;)
Hi Milos. True, but they might not be familiar with the way in which the print statements were updated in Python 3+, so I wanted to mention that just in case. Thanks for the comment!
LucidProgramming thanks for the video!
Best video ever. Amazing explanation. Thank you so much for this valuable video.
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
this guy is an excellent teacher, i have not understood anyone who teaches python the way i understood you.
please can you also make videos for beginners ?
i am a beginner and i want to learn everything from scratch from you I wish
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
Regarding the content for beginner material, you can feel free to make suggestions on my Patreon page. This would streamline what you want to see and also help to support my channel.
www.patreon.com/lucidprogramming
Almost 4K Subscribers. Before you know it you will be at 400K. Keep up the great work.
Thanks for the support! Onward to 400K :)
Man, your explanation is clear and amazing. I always wanted to learn about threading and multiprocessing in a more organized manner like this. Clicked subscribe already! I'll keep watching your videos.
Thank you for the support! Very much appreciated!
3:00 I just wanna say that in python3.7 you can still format like so:
"this number %d squares to this number %d" % (number, result)
or
"this number {0} squares to this number {1}".format(number, result)
Thanks for the video. I needed it.
Hey AnteConfig. Great to know that the video helped you, it's always nice to hear that. You can indeed format content in the way you described. Personally, I prefer "f" strings, but if you prefer to use the format function, that's supported as well. Thanks for the comment, and cheers for watching!
Perfect example for beginner !! Thank you so much for sharing knowledge. Keep it up !! liked your video & subscribed your channel ..
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
The comma is to differentiate a tuple from an expression.
Nice, thanks for pointing that out!
in Python2 it also supports statements like print("The number is {} and the result is {}".format(number, result)). May be we need to do "from __future__ import print_function". I find this quiet readable. But Fstrings are even more simple and straight forward. Thanks for your videos. You speak at a speed which is neither slow nor too fast and your content is real good. Keep up the good work and all my best for your future.
I subscribed after looking at content in your channel. Appreciate your hard work and commitment.
Thanks, I really appreciate that!
Yep, that is supported. Personally, I like the functional strings in Python3, but that's a fine way to print the output as well. Cheers, and thanks for the comment!
Very nice introduction
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
Pretty straightforward thx a lot
Wonderful Video !! Thank you so much 😊
Really appreciate the kind words and thank you so much for watching! Cheers.
It seems multiprocessing doesn't directly work with Jupyterlab (or IPython, not sure), one workaround is to have the worker function in a separate .py file and imported. Also, I am not sure about the high level concurrent module, but I think it's important to let new multiprocessing learners know about this at the beginning, thanks.
THANK YOU! SO MUCH!
Cheers! If you enjoyed and benefited from my content, please consider liking the video and subscribing to the channel for more content like this. If you would like to support the content creation on this channel please consider unblocking ads when watching my videos as this is how I support my time to make content. I hope to be putting out more similar videos soon!
@@LucidProgramming Thank you sir! I have already liked and subscribed to you a long time ago :D Your tutorials are great!
@@LucidProgramming May I ask hmmmm... is there a way to somehow stop or kill the process and check if it is still doing its job or process? Thank you!
@@GelsYT htop
Hey wondering if this can be applied to data extractions. For instance take data from a database, do what is needed and load it to a local database. The data is well in the billions and I am being pinched by the fact the machine and network are a bit weak. Can I have all 4 processors extracting the database at the same time and loading it to the same local db or is there some better method?
I watched your video and followed your code in my own application. briefly, I have 38 files that have to be processed. Each file takes one or two minutes to process. It runs on my core i5 laptop with 4 cores. (eventually, I have over 500 files to process which explains the appeal of using all the cores of my pc...)
It runs dramatically faster but it doesn't work the way I expected. I thought It would loop through the files starting and completing each file before starting the next (one file per cpu core...) Instead, it seems to start all 38 files and then processes each a few lines at a time. It maxes out my CPU, which runs at 100% until finished. I can process all 38 files in about 15 minutes. But the pc is unusable during that time. The CPU runs at 100% and its uses 65% of the available RAM. Is this normal?
Is there a way to make it finish a file before starting a new file to process (using all the available cores)? Have I done something wrong? Is there a better way to use multiprocessing? My thinking is I could code in a pause between files which would give the CPU a chance to catch up on other tasks running..
thank you for reading and responding...
I don't understand your mentioning of GIL and multiprocessing. multiprocessing creates independent processes. I think GIL's scope of function is a single application.
so why mix 2 topics which do not have relations? unclear .... In case the python implementation is different please make your comment on that ... thanks
The Processes array where you appended the process objects are like unused. May I know why?
Hi Mohammed. I believe I was setting the stage for the next video in this series. At least, that's what I think I was doing :P. Thanks for the question!
really good video
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing! I really appreciate the support. I hope that the content I provide there will enhance the videos on my RUclips page.
bit.ly/lp_email
What is the code editor you are using? I've only used the Python IDLE and Nano so far.
All of that info is in the description. Thanks for watching!
Thank you so much. I looked it up and it looks like a pain in the butt to learn honestly. Ur a freaking champ.
@@zeta0001 Glad to hear. Cheers and thanks for watching!
Hey! Thank you for your explanation, it is very clear. However, I have a problem. I have exactly the same program than you in 9.33 (I copy it) , but the program continues giving the result as a serial way: number1->number2->number3->number4, no matter of how many times I compile it :( . Do you know what could be the problem with this?. Thank you!
by the way, I am using Python 3.8.0, and I tried with two text editors: Mousepad and Visual Studio Code. My PC is an Intel CORE i7. Thank you!
@@bastiandiazsaez7027 Hmm, that is interesting. You might want to try and Google around for an answer here.
Is it mandatory to use this __name__ == "__main__" trick? What if I want to try this for only a couple of tasks in a larger piece of code?
According to Ned Batchelder from StackOverflow:
Windows doesn't have fork, so there's no way to make a new process just like the existing one. So the child process has to run your code again, but now you need a way to distinguish between the parent process and the child process, and __main__ is it.
@@LucidProgramming thanks now i know why it wasn't working.
I understood your tutorial, and it makes sense. But when I tried it on my compiler, all I get on the console is blank. I've tried to google online for help but I really can't find the solution to my dilemma.
I tried writing your code step by step, I tried just taking it from the link you've provided, but it just keeps giving me the same results. This might be because I'm a complete beginner, but I really want to learn, and I'm just not sure what is wrong. Please do help if you are available.
PM me and I can provide you my rates for consulting / tutoring. Cheers!
Hi, I am having the same problem as you. Was your query resolved?
@@ArnavPushkar This is a non-specific problem. You'll need to provide more details.
I have the same problem but after review I notice that write
if __name__=='__main___'
I had written three '_' instead two
I hope it had was your problem also
Is there couchdb support to run two or more process parallel using python
Hi Harshal. There is not, however, using the videos in the multiprocessing video series it would be easy enough to add in that functionality
I'm not positive, but the args style is exactly the same as Pandas series type. So when the series (Tuple) is printed to console that data type from Pandas shows single listed items in this same format.
Hi Angelo. Thanks for the response. I'm not sure that answers my question though. Just because Pandas uses the same convention, I have the same question for why they happened to go with that as well :).
@@LucidProgramming Sorry...
It is only required for single-item tuples (lists and dict as well) to disambiguate defining a tuple or an expression surrounded by parentheses.
For more than one item, it is no longer necessary since it is perfectly clear it is a tuple. However, the trailing comma is allowed to make defining them using multiple lines easier. You could add to the end or rearrange items without breaking the syntax because you left out a comma on accident.
I did enjoy your video though sir.
@@atreyhazelhispanic Ah, gotcha. That makes a bit more sense to me and adds some justification as to why they went with that decision. Thanks for unpacking that, and thanks for your comments about the video as well! Cheers!
is it still valid in 2022?
It should be, yes
What is the purpose of the processes list in this example? You are just appending a process to it but nothing else?
It's a list of processes, so why would we append anything else to it?
LucidProgramming er, I mean in this specific program it seems like you created a list but don’t use it. But I see how you use it in the next video
@@billma8064 Ah okay, I misunderstood your question. In subsequent videos, I use this list.
I can't understand how is this really reducing the real run time? If it is not, then what's the use of it?
It divides the time for the task by the number of processors you are able to farm out to.
when I don't use a list (processes) and just call the start() method straightly, the processes run completely sequentially in a way that I feel it's not doing multi-processing. Can anyone explain why this is happening? Here's my code:
from multiprocessing import Process
import os
def func_to_distribute(num1,num2):
print(os.getpid())
print(f"{num1} times {num2} is:", num1*num2)
if __name__ == "__main__":
for a in range(10):
for b in range(10):
p = Process(target=func_to_distribute,args=(a,b))
p.start()
How many number of process we can use? Can i use 50 process?
If you have 50 processors, then yes, but I sincerely doubt that you do. You can use the cpu_count function to see how many cores your machine has.
@@LucidProgramming I have 12 processor, I tried running with 21 process and every thing went well. How this is possible?
@@talha_anwar It may have automatically capped it so as not to crash your computer?
@@LucidProgramming no, my avg processing time was reduced from 20 min to 11 min
@@talha_anwar No, I'm saying that it capped it at the max processors. Your statement isn't a contradiction of what I said.
I am executing exactly the same code (9:45) , but my pc doesn't print the results, nor can I save the results through return, (main function doesn't identify the results), I would appreciate if you can help. I am using python 3.7.2 64 bit
Are you running the code via terminal or in a IDE like PyCharm?
@@LucidProgramming im running it in idle , it only works in terminal? I open the source code and press f5 to run it
@@dimitrisbokaris6192 It doesn't only work in terminal, no. However, I assume that the reason you might be not seeing output is because you're running this within the IDLE scripter. You can run a Python file in many ways. I would recommend running from the terminal as I do to ensure you have consistency with what I am doing in this video. Does that make sense?
@@LucidProgramming I am not really that good in programming . didn't know that running the same code somewhere else makes a difference. the way i run codes is by going in idle, then new file, then save and then execute. how can i run it through terminal?
@@dimitrisbokaris6192 The reason comes down to the fact that when you run the program in the terminal, you're executing a process and when you're running in IDLE, you are kind of running within that process. It's a bit hand-wavy, but yes, there are going to be differences. For how to run via terminal, you can just follow what I do in my video.
How can i perform an operation in parallel to multiple groups of pandas dataframe?
What do you mean by a "group" of pandas dataframes? I offer consulting and tutoring services for problems like these. I encourage you to reach out to my email listed in the "About" section to set up a remote consulting session. Cheers!
Nice video except please do not digress off into red Herrings like different ways to use the print statement! And also you have explained why you write each line of code so you don't have to waste all that time writing comments into there as well.
Thanks, and noted! I feel like that was a bit tangential as well. Thanks for the feedback!
Thanks for your video. I do have a question about multiprocessing. Here I asked it on StackOverflow.
stackoverflow.com/questions/57529308/solving-a-problem-utilizing-multiprocessing-and-value-in-python
I appreciate any help.
Solving the same problem using the new approach provided in your video, still, I get no benefits in term of speed.
So. Much. Useless. Talking.
If you can suggest a way for me to improve, I'm happy to ear it.
Amazing video, thanks a lot.
Thank you! If you like my content, I've been working on some projects during the past couple of months. If you would like to stay up-to-date, please consider subscribing to my mail list. Also, if you haven't already, please consider subscribing!
I really appreciate the support, and if you want to support the channel, I do have a PayPal link (www.paypal.me/VincentRusso1) for donations that go directly to the creation of content on this channel.
I hope that the content I provide there will enhance the videos on my RUclips page.
bit.ly/lp_email
What is the text editor you are using?
Hi Vinay. The text editor is Vim, and if you want to see how to use it and how I set it up for Python development, you can check out this playlist on my channel: ruclips.net/p/PL5tcWHG-UPH2HrF5M7-IIXK6JSRG0obYo. Cheers!
LucidProgramming thanks a lot
@@VinsysVlogs No problem! :)