Hey Kalle, Artem from Quokka team here. Nice work on lowpy and thanks for mentioning our tool! Just wanted to point out that in your Outro part side by side comparison you are not actually running Quokka at all. Quokka prints out results differently (and instantly), what you are seeing there looks like results (guesses) from Copilot (or some other AI completion extension that you may have installed in VS Code).
Hey Kalle, just here to say a big thanks. Few years back you were one of the reasons I started to learn how to code. Your python automation projects were just so fascinating to me. Glad to see you back on! All the best.
10:45 what if instead of running function with arguments you run the function when its called with the argument and print the output beside the function call, sounds about right
Very cool projects! Few points from me, just based on the video since I haven't used it: - it would probably feel a lot nicer if it wasn't running in real-time but on a very short delay after you stopped typing, something along the lines of 0.1-0.2s. - one thing I dislike about Quokka is how you sometimes can't tell if it's working, it actually shows it perfectly in your side-by-side comparison where it won't show anything until it's got the final result. If it ever takes too long to evaluate it's probably worth showing some kind of status text/effect to let you know it's actually doing something but you have to wait. - for the problem with evaluating functions, I'd probably start somewhere around reading the type annotations if they exist - the extension could maybe rely on them to give a better result or default to something else if there are no types. - all of the above could be a toggleable setting, too 😉
Nice man! These are some really good points👌🏼 I didn’t show it in the video but I did implement a delay, ideally somehow it should run only when the user has finished typing I think. But not sure how
Hey, Artem from Quokka team here. Just wanted to point out that in the Outro part side by side comparison Quokka is not running at all. Quokka prints out results differently (and typically instantly), what you are seeing there looks like results (guesses) from Copilot (or some other AI completion extension installed in VS Code). We are working on Quokka v2 at the moment (going to be released very soon), and will try to address the intermediate progress issue better for long running code.
Hej Kalle. Regarding your struggles with how to handle a function (9:45), you need to add some (initial) dummy function call to the "top" of the call-stack). In your case calculate(1, 2)" or calculate(1.2, 3.4)". This so your program can understand the context of your Executing code (the variables values and types) and thereby give you what you're looking for. Ex: function calculate (a, b) { return a + b; # 3.6 } calculate(1.2, 3.4)
my solution is I'm assuming that this extension would process code when the cursor is at print statement create a data structure which holds all the variables above the cursor line, and all the function calls that has been made, the idea is either you are making a function call directly from print or you're printing a variable create a tree like view of dependencies (like a function can make calls to other functions so it's depends upon those functions and it's parameters are it's dependency on variables, then mark those nodes and write them into a temp file by traversing through nodes in postorder fashion (not sure about traversal), and run it if during function call, operations like file i/o, socket i/o has been made then you can rip the associated variables and function calls from the processed tree, and if during this, the final tree divided into more than 1 tree then that means running the code is not safe unless you know how to handle these operations, this is just a rough idea so don't know if it would work
Bro is cooking. Actually yesterday I checked your UA-cam channel and I saw your last video was 4 month ago I was kinda worried that you quit UA-cam. But all good bro 👌
i don't know how debuggers work, but they can show the state of a code at a certain point, maybe explore that? like run the code in a debuggable mode and look at the code state
The "what type is the variable?" question seems pretty hard to solve, but it might be deducible from context in various settings, and you could make it easier for the program by always including type hints (x: int) and return type annotations ( -> int) in your functions. Neat idea, though I suspect the more fundamental issue is that good code is abstracted and therefore includes few constants and hard-coded strings. As a result you're just dealing with variables defined in terms of other variables running all the way back to a value in your database or one provided by the user. So unless you assigned some random values to "a" and "b", the best you could do would be to say a + b = int... not v helpful..
Surely for the functions you just print when the function is called, otherwise you'd have to infer types and guess args which doesn't feel correct. Would def leave this out
Another approach would be to work out what variables the output depends on, then use the quick input boxes in the VSC API or annotations in the code to let the user specify test inputs - either for an individual evaluation, or at the function level. I don't even think this is a problem with statically or dynamically typed languages, functions can have many call sites, so knowing what types the parameters are doesn't help if you don't even know what arguments are being passed in. I honestly think this is a good place to leave the project though, it does broadly what you set out to do and you got your feet wet with the VSC API. I don't think you'll get as much value out of putting in extra effort at this point as you would to working on something different.
Reading which type of data type is feed into function is an assembly problem you have to check register at assembly level I don't know how to check register for specific data type
For your A+B example What if there was a Class with typings called lowpy for each py file and had all the definitions of dummy data? Then when running, you see if there is a value in there to use? Or somehow able to read test data from a .json file or something I don’t know if it’s the right solution / but man this would save me sooo much time!
@@Hallden_ I’ve been working on a very large computational fintech software for a client - and rerunning each time to test SUCKS. So if you add this in I’m soooo keen to use your tool!
I have watch your last video just yesterday 😊 What a nice timing, also glad to see you again! PS: Your videos and your personality is very inspirational to me 😊 keep up the good work 💪
Thats quite cool. If I understand it correctly it is little bit like a live running debugger. Quite useful to see the different results of different functions to understand what is going on
Hey Kalle, Artem from Quokka team here. Nice work on lowpy and thanks for mentioning our tool! Just wanted to point out that in your Outro part side by side comparison you are not actually running Quokka at all. Quokka prints out results differently (and instantly), what you are seeing there looks like results (guesses) from Copilot (or some other AI completion extension that you may have installed in VS Code).
Reading docs on a Kindle is actually crazy!
Haha I agree
WHAT Lewis didn't know you would be here
bro finally remembered he got a youtube channel
fr lol i was wondering when he'd return
Hey Kalle, just here to say a big thanks. Few years back you were one of the reasons I started to learn how to code. Your python automation projects were just so fascinating to me. Glad to see you back on! All the best.
Glad to see you back 😊
Glad to see tou back with computer science stuffs
Yo! was looking forward to seeing the vid after seeing something on your Instagram. Hope you had a good summer :)
Happy to hear that! Yes O did, hope you did too :)
10:45 what if instead of running function with arguments you run the function when its called with the argument and print the output beside the function call, sounds about right
Hello Kalle, perhaps in the future you can make a video about Python for Quantum computing
It's good to see you back after a long time Kalle!
Very cool projects! Few points from me, just based on the video since I haven't used it:
- it would probably feel a lot nicer if it wasn't running in real-time but on a very short delay after you stopped typing, something along the lines of 0.1-0.2s.
- one thing I dislike about Quokka is how you sometimes can't tell if it's working, it actually shows it perfectly in your side-by-side comparison where it won't show anything until it's got the final result. If it ever takes too long to evaluate it's probably worth showing some kind of status text/effect to let you know it's actually doing something but you have to wait.
- for the problem with evaluating functions, I'd probably start somewhere around reading the type annotations if they exist - the extension could maybe rely on them to give a better result or default to something else if there are no types.
- all of the above could be a toggleable setting, too 😉
Nice man! These are some really good points👌🏼
I didn’t show it in the video but I did implement a delay, ideally somehow it should run only when the user has finished typing I think. But not sure how
Hey, Artem from Quokka team here. Just wanted to point out that in the Outro part side by side comparison Quokka is not running at all. Quokka prints out results differently (and typically instantly), what you are seeing there looks like results (guesses) from Copilot (or some other AI completion extension installed in VS Code). We are working on Quokka v2 at the moment (going to be released very soon), and will try to address the intermediate progress issue better for long running code.
Kalle is back! great to see a new video pop up
The most comfortable person on the yt. Thank you for the new video :)
write this for neovim next plsss
I can see you are once again fully in coding! So great.
you can add optional type def in function header
def f(a : int, b : int ) and then make your extension work
Hej Kalle.
Regarding your struggles with how to handle a function (9:45), you need to add some (initial) dummy function call to the "top" of the call-stack). In your case calculate(1, 2)" or calculate(1.2, 3.4)". This so your program can understand the context of your Executing code (the variables values and types) and thereby give you what you're looking for.
Ex:
function calculate (a, b) {
return a + b; # 3.6
}
calculate(1.2, 3.4)
Ps. I haven't gone through all comments ... :o) so this might have been brought up before. Ds
my solution is
I'm assuming that this extension would process code when the cursor is at print statement
create a data structure which holds all the variables above the cursor line, and all the function calls that has been made,
the idea is either you are making a function call directly from print or you're printing a variable
create a tree like view of dependencies (like a function can make calls to other functions so it's depends upon those functions and it's parameters are it's dependency on variables, then mark those nodes and write them into a temp file by traversing through nodes in postorder fashion (not sure about traversal), and run it
if during function call, operations like file i/o, socket i/o has been made then you can rip the associated variables and function calls from the processed tree, and if during this, the final tree divided into more than 1 tree then that means running the code is not safe unless you know how to handle these operations,
this is just a rough idea so don't know if it would work
Bro is cooking. Actually yesterday I checked your UA-cam channel and I saw your last video was 4 month ago I was kinda worried that you quit UA-cam. But all good bro 👌
Glad to have you back
Hi Halldén I hope your having an amazing day
Was waiting for a new video, i am your old subscriber and i enjoy your every video. More power to you🎉
Hey, happy to see you. What theme do you use in VS Code?
The standard one I believe, haven’t changed anything
i don't know how debuggers work, but they can show the state of a code at a certain point, maybe explore that? like run the code in a debuggable mode and look at the code state
please make more videos. Miss your content!
Nice video, but what is the usecase for this? What problem are you solving?
Bro remembered the password for his youtube channel
the king is back
The "what type is the variable?" question seems pretty hard to solve, but it might be deducible from context in various settings, and you could make it easier for the program by always including type hints (x: int) and return type annotations ( -> int) in your functions.
Neat idea, though I suspect the more fundamental issue is that good code is abstracted and therefore includes few constants and hard-coded strings. As a result you're just dealing with variables defined in terms of other variables running all the way back to a value in your database or one provided by the user. So unless you assigned some random values to "a" and "b", the best you could do would be to say a + b = int... not v helpful..
Surely for the functions you just print when the function is called, otherwise you'd have to infer types and guess args which doesn't feel correct. Would def leave this out
Yeah I think the best option is to leave it out
Another approach would be to work out what variables the output depends on, then use the quick input boxes in the VSC API or annotations in the code to let the user specify test inputs - either for an individual evaluation, or at the function level.
I don't even think this is a problem with statically or dynamically typed languages, functions can have many call sites, so knowing what types the parameters are doesn't help if you don't even know what arguments are being passed in.
I honestly think this is a good place to leave the project though, it does broadly what you set out to do and you got your feet wet with the VSC API. I don't think you'll get as much value out of putting in extra effort at this point as you would to working on something different.
Theres also another one, AREPL
Great video! How do you test this kind of extension during development? Do you have to publish it or do something else? Thank you for your answer!
Hotkey to cycle through different input datatypes for “determining” what datatypes to use?
Welcome back ❤❤❤❤❤
You forget to clean the lens front element?
I actually sprayed it on purpose with hairspray to get a misty look, what did you think?
@@Hallden_ :-) I know it was a purpose, but i didnt like it. But its just my opinion. Anyways I enjoy your content ;-)
Interesting, really cool
finally, new video man
Reading which type of data type is feed into function is an assembly problem you have to check register at assembly level
I don't know how to check register for specific data type
Missed u bro
which mac are you using currently for development?
The 2020 m1 13”
@@Hallden_air or pro which one you recommend
Welcome back bro
You said your project is published as open source, but the license file is missing. You might want to fix that.
nice kindle ad now where they released new versions 😂
Nice tutorial ❤ help and good. Can you tell me what font do you use for your terminal
Thanks! Just the basic theme for apple, I haven’t set the theme :)
The font is called 'Menlo'. Its the default monospace font on apple devices.
Think of it the other way your trying to show the debug console live as you code
This is sick! How would this work with data coming from an API?
Edit: Updated idea in comments
For your A+B example
What if there was a Class with typings called lowpy for each py file and had all the definitions of dummy data? Then when running, you see if there is a value in there to use?
Or somehow able to read test data from a .json file or something
I don’t know if it’s the right solution / but man this would save me sooo much time!
That’s probably a good idea!
@@Hallden_ I’ve been working on a very large computational fintech software for a client - and rerunning each time to test SUCKS. So if you add this in I’m soooo keen to use your tool!
Missed you bro
For function just make the user put input values in a comment
YOOOOOO, missed you bro!!!
Please make more tuts and videos
I have watch your last video just yesterday 😊 What a nice timing, also glad to see you again!
PS: Your videos and your personality is very inspirational to me 😊 keep up the good work 💪
Nice! Thanks for watching!
well it was weeks ago i installed it
but dont know how to use it lol
Welcome back
this my guy is a pirate
🔥cool
Nice!
Tackar tackar!
Im a huge fan broo
Thats quite cool. If I understand it correctly it is little bit like a live running debugger. Quite useful to see the different results of different functions to understand what is going on
Thank you! And Yeah that’s the idea :)
I just wrapped up the development for an extension, will share the details soon once I launch it.
Nice!!
Ahhaha amazing you basically proved that documentation is useless. Brilliant
Bro try a new hairstyle
you are very handsome .... will you marry
man your apartment is so dark and moody....how do you cope
Glad to see you back 😊