WEBVTT
00:00:00.542 --> 00:00:03.770
Welcome everyone to another episode of Dynamics Corner.
00:00:03.770 --> 00:00:06.607
Can cop analyze things?
00:00:06.607 --> 00:00:08.865
I'm your co-host, chris.
00:00:09.840 --> 00:00:10.542
And this is Brad.
00:00:10.542 --> 00:00:14.112
This episode is recorded on March 6, 2025.
00:00:14.112 --> 00:00:15.804
Chris, chris, chris.
00:00:15.804 --> 00:00:24.865
Another day, another great episode, another great discussion about rules and code analyzers.
00:00:24.865 --> 00:00:26.528
Source code cops.
00:00:26.528 --> 00:00:33.140
Do we have custom cops and beer With us today?
00:00:33.140 --> 00:00:48.009
We had the opportunity to speak with Arthur.
00:00:48.348 --> 00:00:58.634
Good morning Good afternoon.
00:01:01.296 --> 00:01:02.258
Good afternoon Hi.
00:01:02.817 --> 00:01:03.357
How are you doing?
00:01:04.359 --> 00:01:04.884
I'm doing great, excellent.
00:01:04.884 --> 00:01:05.367
I'll be here in Belgium.
00:01:05.367 --> 00:01:06.296
It's Thursday afternoon, hi, how are you doing?
00:01:06.296 --> 00:01:06.840
I'm doing great, excellent.
00:01:06.840 --> 00:01:13.272
I'll be here in Belgium Thursday afternoon, so looking forward for heading into the weekend almost.
00:01:14.481 --> 00:01:14.864
Excellent.
00:01:15.465 --> 00:01:15.746
Excellent.
00:01:16.159 --> 00:01:25.012
I'm envious when we talk with individuals that are ahead of us in time, because you're going to get into your weekend or to your evening before we do.
00:01:25.012 --> 00:01:36.108
I'm a little bit ahead of Chris so I can get into my evening and weekend and I let him know that regularly how I'm starting my weekend or I'm already into my evening while he's still working.
00:01:36.108 --> 00:01:37.825
So I feel like just a little bit.
00:01:38.060 --> 00:01:44.411
But you go back to work before me, so I get to savor my weekend at least.
00:01:48.120 --> 00:01:49.081
Oh, I go back to work way before you.
00:01:49.081 --> 00:01:51.144
Yeah, for many reasons, for many reasons.
00:01:51.144 --> 00:01:54.831
So, uh, I've never been to belgium.
00:01:54.831 --> 00:01:58.903
I would like to go to belgium oh, you should absolutely do that.
00:01:59.082 --> 00:02:00.344
it's a fantastic year.
00:02:00.344 --> 00:02:06.155
Um, I'm originally from the Netherlands and then I moved over here to Belgium.
00:02:06.155 --> 00:02:07.865
I think it's a great country.
00:02:07.865 --> 00:02:16.528
It has some complexity on structures and everything, but I like the mentality and hospitality that's here in Belgium.
00:02:16.528 --> 00:02:22.747
So every year we have also BC Tech Days, of course, so you're more than welcome.
00:02:23.469 --> 00:02:24.091
Yes, yes.
00:02:27.680 --> 00:02:28.481
But no, I really like it here.
00:02:28.481 --> 00:02:44.784
It's more smooth going and I'm living in the green area of Belgium and it's called the Kempen, so there's a lot of green around us, of nature, so that's a really lovely place here to live in.
00:02:46.502 --> 00:02:56.347
I like the green areas that's interesting that they call it the green area and all the conferences in Europe I would love to get to and I try to get to every year.
00:02:56.347 --> 00:02:57.746
It's just a challenge.
00:02:57.746 --> 00:03:02.724
I'm certain if you've ever come to the United States it's not so close.
00:03:02.724 --> 00:03:12.008
We're so close with each other from communication and talking, but sometimes there's quite a bit of logistics that need to go into it and sometimes we just got to get on a plane and do it.
00:03:12.008 --> 00:03:18.091
I'm hopeful that you know SpaceX or something will be able to just make a rocket to fly us over the pond.
00:03:19.280 --> 00:03:20.623
They're trying to bring back that.
00:03:20.623 --> 00:03:25.383
Supersonic flights Was the Concorde.
00:03:25.383 --> 00:03:27.921
Yeah, yeah, they're trying to bring about concord.
00:03:27.921 --> 00:03:30.227
That'd be amazing to be able to get on that.
00:03:30.227 --> 00:03:33.533
Just get to europe quickly and uh.
00:03:33.533 --> 00:03:38.087
Then, yeah, I'll definitely fly, I'll definitely go there much easy.
00:03:39.270 --> 00:03:48.641
Uh, he has something to do with some safety stuff, I think, and many other factors, and that's why they stopped the noise.
00:03:48.641 --> 00:03:54.052
The environmental factor, I think, was one of the reasons why they stopped.
00:03:54.052 --> 00:04:11.954
And so they're trying to build a technology on those where it'll minimize the noise that sonic boom it makes, I guess apparently, minimize the noise that sonic boom it makes, I guess apparently, and once they figure that out we'll be back on bringing those flights across intercontinental.
00:04:11.954 --> 00:04:12.713
That would be amazing.
00:04:12.993 --> 00:04:13.615
That would be great.
00:04:13.615 --> 00:04:24.355
I did have a lot I'd like to speak with you about, but speaking about Belgium, is that where the Belgian waffle started?
00:04:24.375 --> 00:04:25.959
That's a good question.
00:04:25.959 --> 00:04:30.682
I'm not sure, to be honest.
00:04:30.682 --> 00:04:31.244
That's a very good question.
00:04:31.244 --> 00:04:33.430
I do think it's really a thing you have to try if you're here in Belgium.
00:04:33.430 --> 00:04:42.312
If I did some holidays here in Europe and stuff, nothing beats a Belgian waffle In other parts of Europe.
00:04:42.312 --> 00:04:43.302
It's still different.
00:04:43.302 --> 00:04:50.490
There are a few things here in Belgium that I just have to taste here to get a great experience on it.
00:04:50.490 --> 00:05:01.343
It's strange because the recipe is known and it's not hard to make a waffle if you look at the recipe, but if you then taste it in another country it's still different.
00:05:01.343 --> 00:05:05.629
So that's a funny thing from here.
00:05:05.629 --> 00:05:07.026
But we have more delicious things.
00:05:07.026 --> 00:05:07.461
Of course.
00:05:07.461 --> 00:05:09.788
We can talk hours of all kinds of beer.
00:05:11.884 --> 00:05:12.747
Oh, Belgian beer.
00:05:14.682 --> 00:05:16.067
It's a luxury beer.
00:05:16.067 --> 00:05:25.483
That's how you get quite easy used to it Because, coming from the Netherlands, we had a few beers on there and then moved over to Belgium.
00:05:25.483 --> 00:05:30.014
Then I really experienced what beers could do and what tastes and flavors there are.
00:05:30.014 --> 00:05:42.196
But then again, if you go across Europe and also maybe in other parts, it's not quite common to find a real good Belgian beer.
00:05:44.541 --> 00:05:46.048
I wish we had something like that here.
00:05:46.048 --> 00:05:47.225
I don't know what people think of.
00:05:47.225 --> 00:05:50.065
When you think of the United States, what do you think of for food?
00:05:50.065 --> 00:05:53.110
Because I hear Italy, I think of pizza and wine.
00:05:53.110 --> 00:05:55.327
I hear France, I think of pastries.
00:05:55.327 --> 00:05:57.769
I hear Belgium, I think of waffles and beer.
00:05:57.769 --> 00:06:01.790
I think of Ireland, I think of whiskey.
00:06:02.800 --> 00:06:03.704
And I'm not saying, this is the.
00:06:04.579 --> 00:06:05.533
Yes, and Guinness whiskey, right, and I'm not saying this is the.
00:06:05.533 --> 00:06:07.911
I'm not saying yes, and Guinness beer, but I primarily think of whiskey and Guinness.
00:06:07.911 --> 00:06:14.649
But you have some countries and I'm not saying that's the only thing, that's there, I'm just saying from a food product point of view.
00:06:14.649 --> 00:06:27.892
That's what comes to my mind, based on what I hear, because I've only been to countries on this side of the world, so I haven't been to any European countries.
00:06:27.892 --> 00:06:32.112
But what do you think of food-wise when you hear the United States?
00:06:33.721 --> 00:06:34.646
It's funny that you say so.
00:06:34.646 --> 00:06:36.326
We share that little bit in common.
00:06:36.326 --> 00:06:38.447
I only have on this side of the ocean.
00:06:38.447 --> 00:06:44.970
I've never been across the other side, to be honest, so only from a European guy perspective.
00:06:44.970 --> 00:06:54.341
If I think America, the first thing for me is a little bit thinking of burgers, the first part burgers good yeah, but it has it to be.
00:06:54.682 --> 00:06:55.865
Uh, that has to be a bad thing.
00:06:55.865 --> 00:07:04.507
Um, of course you have your mcdonald's kind of area, but a good quality burger I can also really appreciate that, so it's not really bad.
00:07:04.507 --> 00:07:06.432
But that's something that pops in my head.
00:07:06.432 --> 00:07:07.514
I can't explain why.
00:07:10.346 --> 00:07:10.887
That's good.
00:07:10.887 --> 00:07:21.425
That's exactly what I was looking for Because, as I had mentioned, I hear countries and I think of I must say a lot about me, but I immediately think of food products that I think of from those countries.
00:07:21.425 --> 00:07:23.754
So I've been curious to know what others from Europe, such as yourself, think of for food countries.
00:07:23.754 --> 00:07:28.367
So I've been curious to know what others from Europe, such as yourself, think of for food when they hear the United States.
00:07:29.290 --> 00:07:41.290
A quick question when you talk about beer, are beers typically served room temperature in Belgium, Not like ice cold beer?
00:07:43.401 --> 00:07:44.326
Not room temperature.
00:07:44.326 --> 00:07:45.766
That's not going to be okay.
00:07:45.766 --> 00:07:55.507
It's cold, but it doesn't have to be freezing cold, but it has to be chilled from a refrigerator part, otherwise it's now.
00:07:55.507 --> 00:08:01.867
Maybe there are some that are better if they're going to room temperature, but it's not common to do that.
00:08:01.867 --> 00:08:03.947
I don't think I can have a warm beer.
00:08:04.862 --> 00:08:05.745
How about sour beer?
00:08:05.745 --> 00:08:08.509
Do you guys have sour beer in Belgium?
00:08:11.261 --> 00:08:12.526
What do you mean by sour beer?
00:08:12.660 --> 00:08:12.901
Can you?
00:08:12.920 --> 00:08:13.846
help me a little bit on that.
00:08:14.740 --> 00:08:28.841
I guess it's a certain thing that maybe Germany has some sour beer and it's kind of a sour beer is is trying to pick up here, at least where I'm at in washington state.
00:08:28.841 --> 00:08:59.967
But you know, washington state is, I think, one of the biggest producers of hops in the us and so they're starting to bring in uh, sour beer and so they're typically served as kind of like room temperature and it's it's really a little bit of sour and it's sometimes a different taste or different flavors, like there was one time I drank a key lime pie sour beer and it's beer, but I can taste key lime pie, which is amazing, so it's pretty interesting.
00:09:01.322 --> 00:09:02.580
Key lime pie is really good.
00:09:02.580 --> 00:09:08.884
I don't know if I'd have a key lime pie flavored beer and sour beer and hops.
00:09:08.884 --> 00:09:09.125
I'm.
00:09:09.125 --> 00:09:10.448
I've gotten to the point now, chris.
00:09:10.448 --> 00:09:11.731
Everything you say I'm grokking.
00:09:11.731 --> 00:09:16.450
So you, you gave me oh you were correct, washington's is.
00:09:16.770 --> 00:09:21.687
According to grok, again, washington is the state in the us that produces the most hops.
00:09:21.687 --> 00:09:26.375
In 2023, it accounted for approximately 76.6 million pounds of hops.
00:09:26.375 --> 00:09:36.424
You were supposed to be the Chris GPT, but now, just on the Grog, grog, bad Grog I hear some of these things and now I'm going to have to.
00:09:36.424 --> 00:09:41.368
I'm redoing my setup after this to have Grog on speed typing.
00:09:41.368 --> 00:09:44.850
I'll move my setup around so I can type all this stuff up.
00:09:44.850 --> 00:09:48.885
I enjoy the beer conversation.
00:09:48.885 --> 00:09:55.107
I enjoy the food conversation even more, but that's not the reason why we're all here today.
00:09:55.107 --> 00:09:59.067
But before we jump into the conversation, would you mind telling everybody a little bit about yourself, please?
00:10:00.340 --> 00:10:03.583
Yeah, absolutely, my name is Arthur van de Vondelvoort.
00:10:03.583 --> 00:10:28.753
I work as a solution architect at Verrui here in Belgium, where most of the days I spend on Business Central as part of the product, but also I like the areas around it, like, of course, the Power Platform, but also DevOps is also an area of interest of me, so I'm moving around in that area a little bit of the product in our community.
00:10:29.902 --> 00:10:44.013
Excellent, excellent, and I've been talking with Chris and others a lot about development standards and how individuals create code and put together their code and structure their code.
00:10:44.013 --> 00:10:59.571
And one of the things that's available within VS Code or for the AL language excuse me, when you're using VS Code now, others are using other environments as well is source code analyzers, and word on the street is there are many.
00:10:59.571 --> 00:11:04.870
There are a few, but you're one of the source code analyzer guys to go to if you have any questions.
00:11:04.870 --> 00:11:09.428
So, if you would, can you tell us a little bit about source code analysis and what it is?
00:11:10.731 --> 00:11:11.573
Yeah, absolutely.
00:11:11.573 --> 00:11:16.947
The source code analysis is from the product.
00:11:16.947 --> 00:11:18.952
Microsoft also includes three of them.
00:11:18.952 --> 00:11:25.870
You have the UI cop, the code cop and then an extension cop and also for AppSource one.
00:11:25.870 --> 00:11:31.083
So four of them in total and what they will help you is well doing development.
00:11:31.083 --> 00:11:56.988
So your NVS code, your app writing code, and it will then immediately analyze every line of rule that you write to see if there are maybe code smells or some things that could go wrong, and it will then help you do the development already to see are there things I need to change or things that maybe can go wrong, or are there some problems in your code.
00:11:56.988 --> 00:12:00.047
That's really doing that without even running the code.
00:12:00.047 --> 00:12:18.691
So there inside your VS Code, it's already like more of an assistant that looks over your shoulder and then if you do a wrong syntax or something, it will gently say to you oh, look over there, maybe you should try something else or that's not going to work.
00:12:18.691 --> 00:12:21.970
So more like maybe, an assistant role.
00:12:21.970 --> 00:12:24.347
You can look at it a little bit like that.
00:12:25.320 --> 00:12:27.125
So source code analysis.
00:12:27.125 --> 00:12:28.309
Would you classify it?
00:12:28.309 --> 00:12:31.886
You had mentioned that within VS Code we have four analyzers.
00:12:31.886 --> 00:12:44.428
Would you mention it to be more of a syntactical, cosmetic-type analysis, or a functional-type analysis, or both?
00:12:46.586 --> 00:12:49.200
I believe my opinion is that it will do both type analysis or a functional type analysis, or both.
00:12:49.200 --> 00:12:52.149
I believe my opinion is that it will do both.
00:12:52.149 --> 00:12:55.285
It will mostly, indeed, run on the syntax.
00:12:55.285 --> 00:12:56.453
That is the most easy part to analyze.
00:12:56.453 --> 00:13:07.407
It will also look on the structure of your code or how the codes interact with other parts from other parts of code or maybe other extensions we have a dependency on.
00:13:07.407 --> 00:13:10.706
So it'll try to figure out as much as possible.
00:13:10.706 --> 00:13:18.850
So it's not only the syntax but it's more of an whole package that it can cover to analyze on.
00:13:20.360 --> 00:13:28.629
I'm a big fan of source code analysis, just for many reasons, but I often wonder how does it work, right?
00:13:28.629 --> 00:13:35.214
So it's how does it work and how does it really analyze the code?
00:13:35.214 --> 00:13:47.368
And then also word on the street, as I say, is you also participate in another source code analyzer, so you may be able to tell us a little bit of how the analysis works?
00:13:47.368 --> 00:13:56.466
Because, just like with many things, the concept is great, I understand it, but the practical application of it is challenging.
00:13:56.586 --> 00:14:03.789
Okay, I think we have to get a little bit back in time.
00:14:03.789 --> 00:14:11.774
If we go back to the Nevision timeframe, we had the good old seaside development.
00:14:11.774 --> 00:14:21.990
We had our own development environment within the application itself and you can write the code in there, and that was okay-ish.
00:14:23.052 --> 00:14:25.687
Well, okay-ish, we called it the Wild Wild West.
00:14:25.687 --> 00:14:28.745
Back in the early days.
00:14:28.745 --> 00:14:31.000
It was the Wild Wild West, I think.
00:14:31.000 --> 00:14:35.250
Now, eventually, when they gave you the breaks for the functions, you know where they had the bar.
00:14:35.250 --> 00:14:43.628
Early in the days, back when I started, it was just basically a text file within the development environment and you couldn't do anything.
00:14:43.628 --> 00:14:49.052
So I really need to get my hands on version 1.2.
00:14:49.052 --> 00:14:52.888
I don't know if you could get a license for it, but I started with version 1.1.
00:14:52.888 --> 00:14:58.687
I would love to go back in time and install that and take a look at it or even all of the subsequent versions.
00:14:58.860 --> 00:15:00.767
But I don't mean to interrupt.
00:15:00.767 --> 00:15:01.609
Go back to the OK-ish.
00:15:03.760 --> 00:15:09.808
No, no, it's good to know, because I think that's a great example to start on, because it felt a little bit like programming in Notepad.
00:15:09.808 --> 00:15:23.966
That was kind of thinking what you're doing right, so if you make a syntax error or everything, you would get punished if you rolled it out to a test environment, or if you're unlucky, you'll notice it when it's in production.
00:15:23.966 --> 00:15:32.466
That was the era we were used to, maybe as an Envision developer and I also had those days.
00:15:32.466 --> 00:15:36.571
I started really on development in NAV 2017 something-ish.
00:15:36.571 --> 00:15:55.028
So I know the hurdle of exporting FOP files or exporting to TXT files, and now, with some tools, merging some of your code with your colleague codes and all that fun stuff notepad-wise to develop on, and with Business Central.
00:15:55.028 --> 00:16:06.024
I think it was a huge opportunity and I really think it was awesome that we then moved over to a modern development toolset maybe the right word on it.
00:16:06.024 --> 00:16:10.860
So we received VS Code where we can develop them we have.
00:16:10.880 --> 00:16:24.250
The AL language was then brought on and also other kind of stuff like, for example, git was just a normal factor, and all those things that were new for us were, in other programming languages, quite common to use.
00:16:24.250 --> 00:16:32.172
If you look, for example, if you are a C-sharp developer, it's quite normal to have your VS Code or Visual Studio.
00:16:32.172 --> 00:16:35.970
You have Git all the stuff that was new for us back in those days.
00:16:35.970 --> 00:16:50.832
They were already using it and quite good at it, and the great part is that when we moved over to the AL language, the code analyzer was also a part that's already in there for C-sharp developers already there.
00:16:50.832 --> 00:16:54.405
Microsoft has provided a platform on that.
00:16:54.405 --> 00:16:57.452
It's under the hood, it's called the Roslyn Analyzer.
00:16:57.452 --> 00:17:02.548
That's a framework that can analyze your code for you in development.
00:17:02.548 --> 00:17:12.188
So if you, for example, would do a C-sharp project, you'll also get maybe warnings or errors or info messages right there in Visual Studio.
00:17:13.180 --> 00:17:24.984
So Roslyn is another architecture or language or application that's within the AL language, to help with the source code analysis or the source code structure.
00:17:26.169 --> 00:17:26.450
Correct.
00:17:26.450 --> 00:17:30.788
The AL language is depending on Roslyn, as I think it's a framework.
00:17:30.788 --> 00:17:43.131
If I'm not mistaking, the AL language is depending on that to help to analyze the code on it and the benefit of it is that it's not only specific for the AL language.
00:17:43.131 --> 00:17:47.810
More languages can use the Roslyn analyzer, so that's a great benefit of that.
00:17:47.810 --> 00:17:56.326
Of course, it has some adaptions on it for the specific syntaxes of the AL language, like a code unit or that kind of stuff.
00:17:58.612 --> 00:18:02.690
Okay, and with the source code analysis, just to go back.
00:18:02.690 --> 00:18:04.227
So Microsoft has four.
00:18:04.227 --> 00:18:09.251
You have the UI, which I think will help with some UI structure.
00:18:09.251 --> 00:18:19.807
You have the AppSource analyzer, which has specific rule sets, for when you submit an app to AppSource, there are certain rules that need to be applied.
00:18:19.807 --> 00:18:22.567
You have two other ones you had mentioned.
00:18:23.701 --> 00:18:26.891
You have the general CodeCop analysis.
00:18:26.891 --> 00:18:28.746
That will be more of a generic approach.
00:18:28.746 --> 00:18:34.531
We'll look at if there are some syntaxes that maybe aren't right.
00:18:34.531 --> 00:18:41.270
That's not specific targeting, that's more looking at the syntax of the code itself.
00:18:41.270 --> 00:18:44.046
And you mentioned the UICop.
00:18:44.046 --> 00:18:46.877
For example, tooltips are there, maybe an option?
00:18:46.877 --> 00:18:49.515
Are there or set visibility of fields?
00:18:49.515 --> 00:18:55.710
And then you also have, of course, depending on if you go to AppSource or a per-tenant extension.
00:18:55.710 --> 00:19:02.339
Both of them have their own AppSource cop and for a per-tenant extension it will, for example, look at the object numbers.
00:19:02.339 --> 00:19:06.339
That has to be in the 50,000 to 100,000 range, for example.
00:19:06.339 --> 00:19:13.894
That kind of stuff will help one of those code analyzers help you with to make those mistakes during your development.
00:19:14.339 --> 00:19:15.153
Excellent, excellent.
00:19:15.153 --> 00:19:16.368
You with to make those mistakes during your development, Excellent, Excellent.
00:19:16.368 --> 00:19:22.905
You know I always end up putting the per-tenant extension and the app source extension excuse me analyzer.
00:19:22.905 --> 00:19:26.104
It's been one of those mornings.
00:19:26.104 --> 00:19:28.088
I'm lost.
00:19:28.088 --> 00:19:36.634
I often put the per-tenant extension analyzer and the app source extension analyzer together in a project.
00:19:36.634 --> 00:19:44.173
I always just use all of them and I always have to put in a suppression of warnings for the ID.
00:19:44.173 --> 00:19:46.305
It's interesting enough.
00:19:47.101 --> 00:19:47.522
That's funny.
00:19:47.522 --> 00:19:51.289
You mentioned that there are more colleagues also there, I know of them.
00:19:51.289 --> 00:19:53.468
They also said I'm not going to use one or the other.
00:19:53.468 --> 00:19:55.309
I'm going to use both of them because both of them have.
00:19:55.309 --> 00:19:55.715
They also said I'm not going to use one or the other.
00:19:55.715 --> 00:20:11.749
I'm going to use both of them because both of them have interesting rules for, depending on what I say One step back, let's go to sentence that again you can use both of them because there are some rules in the EpsosCOP that are also valid for a patented extension.
00:20:12.500 --> 00:20:17.144
For example, we still need to have prefixes or suffixes on our objects.
00:20:17.144 --> 00:20:22.346
The namespacing is getting less and less depending, but as of today we still need them.
00:20:22.346 --> 00:20:28.345
A rule for that is in the AppSource pop code analyzer, not in a patented extension.
00:20:28.345 --> 00:20:40.746
But it is a good practice to also have that for your PTs Patented extension also, to have that rule active that you don't forget to set a suffix or a prefix on your objects.
00:20:40.746 --> 00:20:44.252
So you can also have all four of them active.
00:20:44.252 --> 00:20:51.662
But then you have to suppress some specific rules that don't apply for the target you're targeting on your extension.
00:20:52.544 --> 00:20:54.488
I'm happy to hear that I'm not alone in that.
00:20:54.488 --> 00:20:57.981
That makes me feel good, absolutely so.
00:20:57.981 --> 00:21:10.450
With those four extensions, and as I started to get into a few moments ago, there's another code analyzer that is quite popular among AL development and that's Linterkop.
00:21:10.450 --> 00:21:17.105
So it's a fifth code analyzer, correct, and can you tell us a little bit about Linterkop?
00:21:18.190 --> 00:21:18.671
Absolutely.
00:21:18.671 --> 00:21:23.890
Linterkop is a community-driven code analyzer.
00:21:23.890 --> 00:21:37.207
I have to do a shout-out to Stefan Moran on that, and I think it was September 21 that he paved the road a little bit to create a fifth one.
00:21:37.207 --> 00:21:41.069
He called it Lintocop as an open source code analyzer.
00:21:41.069 --> 00:21:48.450
So that's free available on GitHub so you can use it and see how it's built and worked.
00:21:48.450 --> 00:21:54.932
And he started that Lintocop back in 2021.
00:21:54.932 --> 00:21:57.645
And I've got it on my radar.
00:21:57.645 --> 00:22:02.625
I think like a half year later, something is beginning on 2022.
00:22:03.720 --> 00:22:05.184
And I was quite enthusiastic about it.
00:22:05.184 --> 00:22:09.785
There are some great rules already in there in the beginning that I said.