WEBVTT
00:00:02.185 --> 00:00:09.009
Welcome everyone to another episode of Dynamics Corner, the podcast where we dive deep into all things Microsoft Dynamics.
00:00:09.009 --> 00:00:18.887
Whether you're a seasoned expert or just starting your journey into the world of Dynamics 365, this is your place to gain insights, learn new tricks and fact-checking.
00:00:18.887 --> 00:00:20.792
Co-pilot in AL for review.
00:00:20.792 --> 00:00:22.385
I'm your co-host, Chris.
00:00:23.080 --> 00:00:23.742
This is Brad.
00:00:23.742 --> 00:00:27.533
This episode was recorded on October 2nd 2024.
00:00:27.533 --> 00:00:31.187
Chris, chris, chris, welcome to October.
00:00:31.187 --> 00:00:33.347
Welcome to another great episode.
00:00:33.347 --> 00:00:40.273
This episode is a follow-up to a conversation we had with two well-known Business Central community members.
00:00:40.273 --> 00:00:53.331
Back in August, we had the opportunity to start talking with them about code reviews and clean code, and today we had the opportunity to talk with them a little bit more about that topic and also how they utilize Copilot within their daily workflow With us.
00:00:53.331 --> 00:00:55.726
Today we had the opportunity to speak with Natalie Carioca.
00:00:55.726 --> 00:00:57.973
Carioca Niddy, I call her.
00:00:57.973 --> 00:01:01.847
I'm bad with the bad last names Natalie Carioca and Stefan Moran.
00:01:01.847 --> 00:01:13.125
Good afternoon.
00:01:13.144 --> 00:01:13.906
How are you doing?
00:01:13.927 --> 00:01:15.790
Morning, oh morning, good morning.
00:01:15.850 --> 00:01:20.766
Good night I don't know.
00:01:20.766 --> 00:01:21.748
Really.
00:01:21.748 --> 00:01:24.572
No, it's still early, very early, but it's all good.
00:01:27.159 --> 00:01:27.441
No, it's okay.
00:01:27.441 --> 00:01:28.668
See, we need to do that with the backgrounds.
00:01:28.668 --> 00:01:31.341
We should just have a consistent background, so that way you can't tell the time of day.
00:01:31.341 --> 00:01:35.170
Yeah, so that way it could be, we could pretend it's one.
00:01:35.691 --> 00:01:48.986
I'll close my blinds I could have like what stefan has just you know, white background I like that though you could do a lot with a white background.
00:01:49.560 --> 00:01:53.665
Yeah, I intentionally turned my desk so for the streams I do.
00:01:53.665 --> 00:01:55.490
I have a neutral background.
00:01:55.490 --> 00:02:02.605
Normally I have my camera also cut off, so the mess on my desk is not visible.
00:02:02.605 --> 00:02:04.971
Let me know.
00:02:04.971 --> 00:02:08.049
I'm not sure how the podcast will turn out.
00:02:08.049 --> 00:02:10.990
Otherwise I will just quickly remove some of those things.
00:02:13.381 --> 00:02:14.727
No, the neutral background is good.
00:02:14.727 --> 00:02:17.407
I was thinking of putting a green screen.
00:02:17.407 --> 00:02:18.651
I have a green screen.
00:02:18.651 --> 00:02:22.830
I was thinking of putting it behind me and just putting something behind me.
00:02:22.830 --> 00:02:42.044
One time I had a meeting I used the green screen and I took a video of a coffee shop that I found online and with OBS it filtered the chroma key for the green screen and worked well, and everyone thought I don't know, chris, if you recall that, everyone thought I was in a coffee shop Because there were people walking.
00:02:42.044 --> 00:02:47.862
I mean, it was a loop so it didn't jump, so it looked like I was in a coffee shop, but I was really.
00:02:49.883 --> 00:02:51.647
That's pretty clever man no.
00:02:51.687 --> 00:02:52.310
I have to do that again.
00:02:52.310 --> 00:02:52.751
Well, that was.
00:02:52.751 --> 00:02:56.506
I wanted to put myself in an X-Wing from.
00:02:56.526 --> 00:02:57.669
Star Wars and have space.
00:02:58.262 --> 00:02:59.546
It was back in May 4th.
00:02:59.546 --> 00:03:03.167
I wanted to pretend I was in an X-Wing and have the stars, but I couldn't find the video.
00:03:03.167 --> 00:03:11.044
Jeez, Natalie and Stefan are like what are these guys talking about?
00:03:11.044 --> 00:03:11.866
It's fine, go on.
00:03:11.866 --> 00:03:17.768
I remember when we talked last time.
00:03:19.044 --> 00:03:27.290
Several times I heard you say wow, we could continue talking about that much longer, though I don't remember the details anymore.
00:03:32.721 --> 00:03:33.424
That's even better.
00:03:33.424 --> 00:03:34.828
So we'll pick it up.
00:03:34.828 --> 00:03:39.229
No, thank you both for taking the time to speak with us again.
00:03:39.229 --> 00:03:56.325
It was back in August when we spoke, if you recall, a few short months ago we were talking about code reviews and clean code and during that conversation we did say and even afterwards we talked about how we could talk about this forever or for several more hours.
00:03:56.325 --> 00:04:07.348
Forever is a long time and we wanted to follow up with that in talking about code review and clean code and other uh points.
00:04:07.348 --> 00:04:10.060
So that's uh where we are.
00:04:10.360 --> 00:04:11.522
Do you remember the conversation now?
00:04:13.066 --> 00:04:16.192
no, the conversation is is clear, just not like.
00:04:16.192 --> 00:04:22.476
I had some topics in mind, what I wanted to elaborate further on and those specific points.
00:04:22.476 --> 00:04:34.745
They're gone, so I don't know if I will repeat stuff I said before, because I wanted to go back and listen to the episode, at least in fast forward, so I could just continue, but I did not find the time.
00:04:35.367 --> 00:04:35.978
No, it's okay.
00:04:35.978 --> 00:04:42.427
I listened to the episode so I'll try to, and if we repeat ourselves, it's okay.
00:04:42.427 --> 00:04:52.432
It's the important point of the code review, one thing that I was thinking about talking about which we didn't talk about last time.
00:04:52.432 --> 00:04:57.271
We could talk about the code review, clean code and some of the follow-up points that you wanted to talk about.
00:04:57.271 --> 00:04:58.826
I'm sure they'll come back or even additional points.
00:04:59.439 --> 00:05:24.286
But one thing I was thinking about with the world of automation today and I hate to say AI, because everybody talks about AI, but I also know that there are some tools to do, like AZL tools has like a code cleanup and there's other tools available how much of a code review or code clean code right, it depends on what the definition you're talking about is.
00:05:24.286 --> 00:05:24.867
Clean code is which I'd like to go back and actually define what each of you think clean code?
00:05:24.867 --> 00:05:25.494
Right, it depends on what the definition you're talking about is.
00:05:25.494 --> 00:05:29.908
Clean code is which I'd like to go back and actually define what each of you think clean code means.
00:05:29.908 --> 00:05:33.870
But how much of this do you think could be done automated?
00:05:33.870 --> 00:05:41.129
You know, during the pipelines, we can have tests run against code to ensure that the functionality is sound.
00:05:41.129 --> 00:05:47.526
There's other things that we can do with automation during the pipeline process.
00:05:47.526 --> 00:05:50.992
How much of this do you think could be done in that fashion?
00:05:51.839 --> 00:05:55.446
Do you want to go first or should I?
00:05:55.766 --> 00:06:14.142
Okay, I've done quite a bit amount of code cleaning up operations in the last weeks and days and weeks, so especially the tools that Andre wrote, the extension, the ASE tools library.
00:06:14.163 --> 00:06:28.365
It's pretty good to do some of those tasks to just be quicker, but especially those I would not automate and I do not like to have them run through the entire project automate and I do not like to have them run through the entire project.
00:06:28.386 --> 00:06:35.949
Um, when I do those cleanup tasks for for a project or an app or something, then I like to go through the files individually to also pick up the contents and to read through everything once.
00:06:35.949 --> 00:06:46.029
But I'm always a little bit afraid of those with those tasks like there could just be one back in there and it messes everything up and then I need to revert everything that I did.
00:06:46.029 --> 00:06:52.968
So I need to do really granular commits to prevent that and just the hassle seems to be too much.
00:06:52.968 --> 00:07:20.509
So I use those tools but I run them individually on the current file as I go through, just to do some of those like remove duplicate lines or those commands, remove the redundant app areas those kinds of commands I use and I run them frequently, but I'm not through the entire thing and not just on an automated base, more like a developer tool to be quicker, I feel better about that because I'm sorry, natalie.
00:07:22.982 --> 00:07:47.728
I feel better about that because I do it the same way, because I do like to see the changes as a result, because I have come across with some tools not necessarily that tool I love the AZL dev tools but I like to see the differences afterwards just to make sure that what I had intended to be done, because I do a lot of the you know the parentheses, the case, the remove unused variables, the sorting and such.
00:07:47.728 --> 00:07:53.673
So I prefer to see them individually to make sure that it's sound.
00:07:54.701 --> 00:08:03.511
Well, the sorting actually that I have automated on safe in my settings, so I sort properties and variables automatically on safe.
00:08:03.511 --> 00:08:15.509
That is something I like to do because afterwards you have, like in the git, differences when you compare with git or in general you look at commits and see the differences, then you can better align.
00:08:15.509 --> 00:08:18.339
You do not see them moving afterwards anymore.
00:08:18.339 --> 00:08:21.189
So I make sure to have them always sorted in the same order.
00:08:21.189 --> 00:08:24.449
So that's automated, but just in VS code for me.
00:08:24.819 --> 00:08:29.232
Finally, this is one of the few rules that I have disabled for myself.
00:08:29.232 --> 00:08:39.567
My process is currently similar maybe, as yours now, so while I code directly, I already tried to stick to all the rules and remember everything.
00:08:39.567 --> 00:08:49.019
However, before I release, I run the code cleanup on everything on the whole project, and I really I run the code cleanup on everything on the whole project and I really, really must check the results.
00:08:49.019 --> 00:09:00.211
I could not rely on it doing it all automatically in the background, because not only for some new rules.
00:09:00.211 --> 00:09:06.849
There can always be some bugs, or because the IA language has been extended again and suddenly something doesn't work anymore as it used to be.
00:09:06.849 --> 00:09:22.168
There's no guarantee that the tool that worked yesterday works today, so I really need to check the output each and every time, but it doesn't take that much time, so I don't see a problem in that.
00:09:22.168 --> 00:09:27.292
So the question, rather, is Brad, why would you like to automate this?
00:09:28.039 --> 00:09:29.807
Why would I like to automate it?
00:09:29.807 --> 00:09:48.261
I think anything that you can do to save time or to leave time to do other tasks I would like to take advantage of, take advantage of.
00:09:48.261 --> 00:09:55.284
I don't want to reduce quality of any reviews, but it goes with the same type of notion of if somebody spends a lot of time entering data into a system, they may not have as much time to analyze that data.
00:09:55.284 --> 00:10:01.344
So if you're entering financial information or other types of information anytime you're spent doing one task.
00:10:01.344 --> 00:10:03.005
You're not doing another task.
00:10:03.005 --> 00:10:17.480
So if there's some things we can do to save time through this process without losing the quality, right, the key here is I'm not saying you know save time and you know hope that everything works okay.
00:10:17.480 --> 00:10:29.388
I'm saying save time and have something at least similar or near or even 80% of the way which you can do the last 20% of a review or a cleanup.
00:10:31.374 --> 00:10:42.567
I mean, the majority of time does the truth for us already within seconds, and my manual check afterwards takes, I don't know, a few seconds up to half a minute, maybe.
00:10:42.567 --> 00:10:47.388
That's all, if there are no issues, of course, but this is the exception of the rule.
00:10:47.388 --> 00:10:56.285
So I would not see a reason to automate just that, because it is actually automated, and just a little bit of post-processing after it.
00:10:58.250 --> 00:10:58.471
Okay.
00:10:58.471 --> 00:11:01.269
So if there isn't a gain there, I understand.
00:11:01.269 --> 00:11:05.268
So go back to the we talked about before, about clean code and code reviews.
00:11:05.268 --> 00:11:07.606
What is clean code?
00:11:07.606 --> 00:11:15.908
Again we get these words, I see these terms, I see people write them and say I want you know it's again.
00:11:15.908 --> 00:11:28.434
It's a continuation and we'll maybe repeat some of this or not, but I wanted to dive deeper into code reviews and clean code as a definition.
00:11:29.500 --> 00:11:31.104
Well, first of all, clean code.
00:11:31.104 --> 00:11:40.080
For me, it's an ideal I will never reach, but I'm doing my best to come closer and closer, just in general.
00:11:40.080 --> 00:11:53.395
And when we leave this level, then it's of course about rules, about patterns and all that stuff we all also talked about earlier.
00:11:54.740 --> 00:11:56.163
Stefan, what is your take?
00:11:56.163 --> 00:12:11.124
We'll go back into the clean code area well I I definitely agree with natalie here.
00:12:11.144 --> 00:12:23.455
it's um, yeah, I I would say impossible to reach the ultimate clean code um, but the goal I'm following is to make the code as readable as possible and as um reliable as possible in terms of execution as well.
00:12:23.455 --> 00:12:41.965
So when talking about clean code, I also think about approaches to reduce errors, to make it more resilient against users, because if the developer tests code, it obviously always works because he knows how it was written and how it's intended to work.
00:12:41.965 --> 00:12:56.650
But, yeah, catching errors and stuff that's also, for me, a part of clean coding to really write good code not only clean, but also good code no, it is important I mean clean code that I follow the same suit.
00:12:56.691 --> 00:13:02.134
Clean code to me is more readability as well, and the ability to follow through.
00:13:02.134 --> 00:13:18.471
I know some will have conversations about I know many early on in some other languages where you know how much could I fit on one line of code versus having multiple lines of code and versus what do you save but ask that same person to go back and remember what they were trying to do.
00:13:18.471 --> 00:13:20.948
Sometimes it gets a little bit challenging.
00:13:20.948 --> 00:13:31.067
Or if somebody has to pick up that code afterwards and follow it, they can't, so it's a bit challenging to do so.
00:13:31.067 --> 00:13:37.104
With that, with the code review we talked about, I wanted to talk a little bit deeper.
00:13:37.124 --> 00:13:38.899
We talked about some of the things you had mentioned, Natalie.
00:13:38.899 --> 00:13:48.405
You said it takes a few seconds or a few minutes for you to do some of this code review, and someone even asked me the other day when we were talking about code reviews.
00:13:48.405 --> 00:13:53.071
They asked me should I download and execute this and run this?
00:13:53.071 --> 00:13:56.628
It's outside of the tests.
00:13:56.628 --> 00:14:13.011
Is there a point where you think, from doing a code review, someone should package the code and run it and go through it if they have a question about the logic or how it processes I would say that depends a little bit.
00:14:13.692 --> 00:14:15.000
Um has everything.
00:14:15.000 --> 00:14:19.706
Um, I'm trying to remember.
00:14:19.706 --> 00:14:29.082
If I ever did that, though I feel like a code review is more for me a tool of getting to know what has changed for me personally.
00:14:29.082 --> 00:14:37.371
So I'm aware of what this change is intended to do and also to see if there are any flaws I can just pick up by reading through the code.
00:14:37.371 --> 00:14:42.886
I may download the code in order to have the code cops and the assistance in my editor.
00:14:42.886 --> 00:14:52.373
Um, if it's a little bit more, if it's a really big feature pull request, I might decide to run the code and just to see if it works.
00:14:52.373 --> 00:14:59.301
But it's always also a little bit challenging, depending on on the change itself, to get it set up correctly and just it's.
00:14:59.301 --> 00:15:02.306
It's an overhead to really get there to run and test the code.
00:15:02.306 --> 00:15:07.595
But I mean, I could imagine the situation.
00:15:07.634 --> 00:15:33.275
Yes, Well, code review is the name states is just a review of the code and not of the actual functionality, when, when I get a pull request to check, I rely on the writer of it that he has checked the functionality and I'm taking care of the rest and maybe for some little I don't know typos or other small kinds of errors that happen when you write down something quickly.
00:15:33.275 --> 00:15:40.586
So far I would not have ever tested more than that.
00:15:41.307 --> 00:16:01.844
I do have a question around just how you are utilizing this particular tool, and I just got back from a conference and I believe in the past year or this year alone, everyone talks about AI and Copilot.
00:16:01.844 --> 00:16:18.528
I am curious from the both of you if you've utilized Copilot in any form of your day-to-day development, whether that's reaching the clean code or building a solution.
00:16:18.528 --> 00:16:21.240
Have you utilized Copilot and to what degree?
00:16:21.821 --> 00:16:22.503
I may start.
00:16:22.503 --> 00:16:45.427
So I use it mainly and only as the GitHub copilot directly in VS Code to suggest me mainly text and sometimes even lines of code, because sometimes the suggestions are really good or at least near enough to take them over and then slightly change them again.
00:16:45.427 --> 00:16:52.630
But anyway, the copilot is really great if you have some pattern.
00:16:52.630 --> 00:17:02.121
Sometimes you need to write I don't know thousands of codes that look almost the same, except one number that always increases or something like that.
00:17:02.121 --> 00:17:17.032
So something very mathematical yeah, mathematical, let's say and for that case Copilot is really great because it really detects patterns and then suggests the future lines predicted on that, and this is really great.
00:17:17.032 --> 00:17:22.892
However, I rarely rely on more than that.
00:17:23.420 --> 00:17:35.461
Recently I've played around with the GitHub Copilot chat because I needed some regular expressions that I absolutely don't master at all, but well, copilot does so.
00:17:35.461 --> 00:17:39.824
I asked them to return me the regex strings and this really helps me a lot.
00:17:39.824 --> 00:17:46.709
Wow, but for sure we all could use Copilot much more than this.
00:17:46.709 --> 00:17:49.192
But this really ends here for me.
00:17:49.192 --> 00:18:11.576
Inside our organization we also have AIilot to create the descriptions and all the textual stuff and edit to tasks, user stories and so on to write that for us.
00:18:11.576 --> 00:18:20.750
To be honest, I'm not that much working with it though I should, but I know that my colleagues are and the results look really great.
00:18:20.750 --> 00:18:29.587
So it's just a matter of getting used to it, and I didn't start as much you're gonna be forced to adopt to it.
00:18:29.887 --> 00:18:36.207
Uh, eventually I feel like it's been sort of thrown at us and said, hey, you gotta use this at some point.
00:18:36.969 --> 00:18:51.132
So I just want to go a day where I don't hear the word co-pilot or ai, and just see if I could go a single day without it I guess you could if you went and sat on the beach or went and sat in the woods somewhere and didn't turn on anything at all, but it seems to be all over.
00:18:51.132 --> 00:19:00.013
That is interesting because I've used Copilot with code just similar to what you had mentioned.
00:19:00.013 --> 00:19:10.287
I really haven't used the chat portion of it and asked it questions within Visual Studio Code but with GitHub to suggest.
00:19:10.287 --> 00:19:18.227
I guess you could say I always use the tele, but it's like snippets on steroids in a sense, but you can get a little bit more out of it and I've had some fun playing with it.
00:19:19.701 --> 00:19:21.788
Yeah, you really should look at the chat.
00:19:21.788 --> 00:19:30.327
I've used the Copilot in GitHub for a number of things and I feel like it's a better intelligence.
00:19:30.327 --> 00:19:42.008
As you said snippets and steroids so yeah, when I use it for like, for example, I type out code and use variables that do not exist yet.
00:19:42.008 --> 00:19:50.268
Then I go to the variables section and it automatically suggests me to create those, so I don't need to type them twice.
00:19:50.268 --> 00:19:56.685
I just used before this call, literally, and then I've also on stream.
00:19:56.685 --> 00:20:01.354
I've made a prototype for the JSON wrapper.
00:20:01.354 --> 00:20:04.846
So it's somewhere on YouTube where I've defined a complete wrapper code unit for the JSON wrapper.
00:20:04.846 --> 00:20:09.420
So it's somewhere on YouTube where I've defined a complete wrapper code unit for the JSON functions.
00:20:09.420 --> 00:20:28.730
So there I could, just after I created, I think, the first few of them, I just went and let Copilot create all the functions, like 20 or 30 functions or whatever, because it was, as Natalie described, a pattern which would just continue, and it picked up on the pattern and really helped that.
00:20:30.222 --> 00:20:40.530
And for the chat, I once needed to write a recursive function to do number matching on dictionaries.
00:20:40.660 --> 00:20:46.843
So I had like two dictionaries where I would want to like it was for invoices versus payments, where I have.
00:20:46.843 --> 00:20:57.217
I have an invoice, uh amount and I want to see if my payment amounts, like any combinations of the payment amounts I have, would match up 100 to that invoice amount.
00:20:57.217 --> 00:21:14.065
So I needed to go through the first dictionary and then pick up like all combinations and and try and find the combinations that match and I really used like it took me probably an hour with the Copilot chat to really write out that function and it worked really great.
00:21:14.065 --> 00:21:24.083
So I had adjustments made and then I just described the adjustments I wanted to do or I wanted to have in that algorithm and it picked up on that.
00:21:24.083 --> 00:21:40.627
And sometimes there are issues where the copilot tries to do or use commands that do not exist in the AI language and then you just need to bring it up to attention and say that this doesn't exist or recommend something else, and then it just changes everything and adjusts.
00:21:41.721 --> 00:21:42.444
So, it learned.
00:21:44.401 --> 00:21:46.327
Did you use the chat portion for that?
00:21:46.327 --> 00:21:51.267
Yes, to type out in natural language what you were looking to do, and it created the AL code for you.
00:21:52.701 --> 00:21:58.924
I even created example dictionaries just in text, in pseudocode.
00:21:58.924 --> 00:21:59.446
Basically.
00:21:59.646 --> 00:22:00.369
As a reference.
00:22:00.760 --> 00:22:16.132
I pasted them in there and explained what I wanted to reach, what my expected results are, and then I just started to yeah, like a colleague, basically a co-pilot it's a pretty fitting word for that to just do pair development basically.
00:22:17.121 --> 00:22:18.946
See that I'm going to do that.
00:22:18.946 --> 00:22:21.602
I'll try that later, so it saved you a lot of time.
00:22:21.863 --> 00:22:23.125
It sounds like versus right Well, this was.
00:22:23.125 --> 00:22:24.508
Yeah, it was an a lot of time.
00:22:24.508 --> 00:22:25.548
It sounds like versus right Well, this was.
00:22:26.210 --> 00:22:34.319
yeah, it was an example with high complexity and it would have taken me longer to wrap my head really around how to achieve the result.
00:22:34.319 --> 00:22:46.828
And in those scenarios, I think, where you're really looking at a high complex problem, it's helpful to get to a solution problem.
00:22:46.888 --> 00:22:47.932
It's helpful to get to a solution.
00:22:54.125 --> 00:22:54.988
It's like having another co-worker.
00:22:54.988 --> 00:22:58.453
I listened to several podcasts and I was listening to a podcast and they were talking about this.
00:22:58.453 --> 00:23:04.628
I definitely want to go back to this topic of the co-pilot chat because I have to.
00:23:04.628 --> 00:23:07.073
I'm going to start using it today to try some examples.
00:23:07.073 --> 00:23:15.539
But you mentioned, you know co-pilot is fitting because it is a co-pilot right If you're flying a plane, it's something that helps you.
00:23:15.539 --> 00:23:42.336
But you mentioned, it's almost like a colleague and I was listening to an entrepreneurial podcast and they were talking about software development and then also ai and software development and they were talking how the number of you know it increases the bar or raises the level of senior development and also this leaves space for a junior development.
00:23:42.336 --> 00:23:56.226
But there's that middle piece where you can reduce the number of developers you need because of something similar to what you just had mentioned is you could talk with Copilot, have Copilot, generate the code and then you do a code review.
00:23:56.820 --> 00:24:16.737
So it takes out a lot of that smaller, you know, time-consuming tasks and then you just have to do a review in essence, and I think you're doing a code review for Copilot, yeah, yeah, that, that, yeah so it's so it reduces the number of developers needed.
00:24:17.665 --> 00:24:18.367
And this wasn't.
00:24:18.367 --> 00:24:21.537
It wasn't related to AL in any way or Business Central.
00:24:21.537 --> 00:24:33.530
It was just they were talking about, you know, other standalone software applications you know that are available in the market and someone who started several software companies that's what he had said is said is it used to be.
00:24:33.530 --> 00:24:46.528
You know he would have a team of 10 and now he needed a team of three because ai was able to reduce the number of developers needed, because it could create a lot of the code for them yeah, it also.
00:24:46.729 --> 00:24:48.051
Uh, just another example.
00:24:48.051 --> 00:24:57.430
I just I just remembered, um, it's great if, uh, you have maybe code snippets from another language, just algorithms in Java or some JavaScript.
00:24:57.430 --> 00:25:06.674
That's really common that you see, you find some libraries or just take overflow stuff that's JavaScript and you want to have it translated into AL.
00:25:06.674 --> 00:25:14.096
I did that for a binary to hexadecimal conversion in AL native AL.
00:25:14.096 --> 00:25:15.317
That worked.
00:25:15.317 --> 00:25:17.191
I got that working.
00:25:17.191 --> 00:25:24.273
I would have never been able to write that on my own without days probably of learning how that works.
00:25:24.273 --> 00:25:31.654
Maybe not days now that I know how it works, but yeah, my copilot really reduced the time.
00:25:32.125 --> 00:25:50.061
That's a game changer for you know, stefan you mentioned, you know, as an independent consultant or independent developer, you know to have a co-pilot that allows you to provide more output of work with co-pilot.
00:25:50.061 --> 00:26:00.098
With Copilot, and it's like you hiring another person to help you without paying any benefits of some sort.
00:26:00.098 --> 00:26:11.112
And remember, I think last time we talked about how do you test each other's code or validate each other's code.
00:26:11.112 --> 00:26:17.329
I mean, you could potentially use copilot to test your code and vice versa as well.
00:26:17.770 --> 00:26:21.419
I think there are predefined questions in the copilot chat.
00:26:21.419 --> 00:26:25.191
That asks the chat to review your own code.
00:26:25.191 --> 00:26:27.355
I think that would be something possible.
00:26:27.375 --> 00:26:40.934
I need to try that actually that was one of the questions that I was going to bring up is is how can Copilot maybe help with that too, as far as going with the automation portion of it?
00:26:40.934 --> 00:26:43.272
But I have to do this Copilot chat.
00:26:43.272 --> 00:26:46.984
I'm excited now to try it, and it must be getting better and better with AL.
00:26:46.984 --> 00:26:53.439
I know, with what I see, with just the suggestions, with typing AL code, how good it's getting.
00:26:54.184 --> 00:26:56.493
Sometimes I wonder if it's reading my mind.
00:26:56.493 --> 00:27:00.133
I think it's already on GPT-4.0, if.
00:27:00.133 --> 00:27:04.053
I saw that correctly last time, so yeah, it's getting better.
00:27:04.424 --> 00:27:07.335
Yeah, but has it already been actually trained on AL?
00:27:07.335 --> 00:27:14.311
I think not, but that also got better.
00:27:14.311 --> 00:27:38.375
Yeah, of course it gets better over time and I'm seeing this myself, but it's not comparable to other old languages that the ALM has been trained on, and I'm really waiting for us to have this feature available as well that the co-pilot actually had learned, or has read, more AL lines than we have.
00:27:40.326 --> 00:27:40.487
Yeah.
00:27:40.487 --> 00:27:42.534
I think as more and more becomes available.
00:27:42.534 --> 00:27:43.951
I guess it has to learn.
00:27:43.951 --> 00:27:56.459
I don't even understand how it could learn it, because again you could type some procedures and some code, and how something can understand what it's doing is still.
00:27:56.459 --> 00:28:14.192
I'm not even going to try to understand how it understands to write code, because if you do you know a colon equals customer dot, get you know 1000 dot name or something like how does it know what you're doing or what you're trying to do?
00:28:16.029 --> 00:28:16.411
no idea.
00:28:16.411 --> 00:28:20.682
I think it's pattern recognition at a large scale, but uh, I I don't know.
00:28:20.682 --> 00:28:21.525
But I what?
00:28:21.525 --> 00:28:22.346
What I want to say?
00:28:22.346 --> 00:28:25.996
I I recently noticed that the co-pilot also picks up like it's.
00:28:25.996 --> 00:28:30.911
It's has something like to some degree in awareness of the of the entire project.
00:28:30.911 --> 00:28:39.891
So I'm getting recommendations for like for code that is present in other files I had opened recently.
00:28:39.891 --> 00:28:45.772
So when I switch files it somehow picks up what I was looking at before and adapts.
00:28:45.772 --> 00:28:47.599
So that was something I did.
00:28:47.599 --> 00:28:51.288
I noticed that it wasn't there before and it got introduced at like.