Read the show notes and download the full episode here.
Michaela Light 0:01
Welcome back to the show. I'm here with Monty Chan, from sea of web tools. And we're going to be talking about an exciting new AI tool for ColdFusion. While and other languages, which is GitHub copilot, welcome, Monty,
Monte Chan 0:16
Both. Thank you. So we are a big fan of this podcast. And it's a great honor to be on this podcast.
Michaela Light 0:25
I am glad we finally got you on. I noticed you were posting on your LinkedIn about the CF summit talk you gave on using copilot ColdFusion. I thought I've got to get this guy on. So cool. So if you don't know Monty, he's been doing cold fusion since cold fusion 4.5 Back in the late 90s. And he's developed applications for all kinds of industry, education, health insurance, church websites, FinTech, many others. He used to be the CO manager of the Alamo. ColdFusion youth group. I guess that's in Texas, right? Yes, San Antonio, Texas. Yeah. But he's joining us today from Hong Kong, where he's visiting is his family. And he was telling me that before they moved the airport there that is grandfather's apartment, there used to be right next to the airport, and they could watch planes, actually below the apartment building coming in, because the planes used to wiggle around the skyscrapers there in Hong Kong. So we're quite excited. Yeah, so I guess we will just start off for people who don't know what copilot is, what is GitHub copilot?
Monte Chan 1:35
It is an AI pair programming tool. So this helps test your programming that basically, there's another person but in this case is a AI tool, if you will, so but you will be doing most of the typing. But then that will also give you some code suggestions, if you will. And to help you with coding. So sometimes can be a short one liner, or could be one whole block of codes. So you can save a lot of typing.
Michaela Light 2:12
Though it actually will type some code for you. Or when you say pair programming, does it also look at the code you've written and make suggestions for improvement? Oh, yes.
Monte Chan 2:25
That will actually take into the tab that you open the file names of your current file that you're currently editing for the for the links to the files that let's say you have some existing codes already. And some may be linking to certain files or some other files linking back to this one to take everything into context to give you a more accurate code. I wouldn't call it a cogeneration. Because technically speaking, GitHub copilot read this, I have no clue what language you're writing in. It's more like an autocomplete on steroids, trying to predict what text you want to have. So with everything into context, then can generate some suggestions that you may like. And usually there are some options, then you can click on the arrow to go to the different options that you may or may not like and pick the one that you like, and then can go from there. So a lot of times you actually don't need to make a whole lot of multiple occasions. Sometimes you do. Because again, keep in mind that it's just that the site have a clue what language you're writing. And so sometimes it's stuff that generates. So for example, the function may not exist, the variable may not exist. So it's just so you do need to pay attention to the actual text. But I will say, based on my experience is 99% accurate.
Michaela Light 4:04
Wow, that sounds incredibly exciting. And what a time saver, just like for those of us who can remember using notepad to write ColdFusion code before the word modern editors with autocomplete, no autocomplete and, you know, being able to look up the syntax while you're coding is such a time saver. This it takes it to a whole other level. So very exciting development. And we'll do a short demo for those following on the video. And we'll talk it through for those listening on the audio later. So you can actually see and hear a game by bet game play of using GitHub auto copilot with confusion. But before we do that, do you have to use my GitHub is now owned by Microsoft? Is that right? Correct. Yeah, so do you have to use the Microsoft editor VS code To use this or
Monte Chan 5:04
A list of IP is that this currently supports VS code as of obviously one of them Visual Studio code. And then there's also a list of JetBrains compatible IDs, and also Neo Vim and them. And so for a list of the IDs that this extension supports, you can just go to a Google search, and like, say, GitHub co pilot, our IDE or something like that. And you should be able to see a display link of that.
Michaela Light 5:47
I'll put a link in to the currently supported ones from GitHub website. But I think you gave a pretty comprehensive list right there. So. So you're using it, just to mention to people listening vs. Code is like the most in our annual State of the ColdFusion. Union survey VS code is used by about 60% of ColdFusion developers at this point, it is really great open source as well, mostly open source editor, it's like a teeny bit of it that still proprietary from Microsoft, unless you use the open source forked version of it. But it's a really great editor has a lot of features a lot of plugins for ColdFusion. So you know, maybe this is a reason to try out VS code if you've been on the fence on it. And I'm, I don't know if this is true, but I'm imagining if you if you're really into another IDE, I'm imagining with some kind of API that lets you hook into an ID copilot. So I got to imagine that's how it works. Some kind of plugin. Yes.
Monte Chan 7:02
So when we installed an extension, and so then go from there, but you do, because that's a skill hub co pilot. So you do need to have a GitHub account in order to activate the it's the extension?
Michaela Light 7:22
Yeah, well, we'll talk a bit more about how to use it and what it costs later in the show. So Oh, sure, yes, but I was trying to make a point that if you're a be a real fan of some other ID, extension, do this assuming you're an extension, writing code? Or maybe someone else will do it, you never know. So a lot of ColdFusion programmers and CIOs listening to this, why should they or their team be using copilot?
Monte Chan 7:59
While it's a big help, as far as writing code is concerned, and like, like I said earlier, sometimes can generate some codes. That's a big block of big, big chunk of codes. And the sense will also help you to write better code because when to help get up copilot generate better code, you sometimes need to make the variable name or function name a little bit more descriptive. So in a sense, is more self documentary. So when other people look at the code, they can see that okay, this block of code is code despise dealing with whatever the cases may whatever the topic may be, maybe this is for customers, this is a customer orders, or this is for items, no payments for different things. So you write the function name a bit more descriptive, so you know which function is doing what. And so that will also in turn help with result generated by GitHub copilot as well.
Michaela Light 9:09
So you need to prompt it with good variable names, or does it come up with good variable names? If you do that,
Monte Chan 9:19
Say something descriptive and stuff saying do stuff for some, what's the person doing? So you will say okay, this is a so let's say if you call a function and the function name would be calculate sum with two integers or something like that. So you look at the function and you know exactly what that does.
Michaela Light 9:46
And then what are there any other benefits you've seen to using copilot or
Monte Chan 9:52
That the big helps are as far as saving time because some lots of times it can generate a one big block of code and so If you're typing line by line, you can just take accept, accept the whole thing, and then just go through that and use that type as a template, if you will. And then so you modify the code from there
Michaela Light 10:19
Sounds exciting. Are there any, you know, reasons someone shouldn't use it?
Monte Chan 10:27
Um, I cannot think of one particular reason any particular reason why one should not using that, unless they are afraid of the API, then they may have a good reason to not use that. But other than that, I really cannot think of a reason why people should not be using that.
Michaela Light 10:46
Well, how is the quality of the code?
Monte Chan 10:50
Oh, as long as you're being descriptive in your save variable name, function name and different things. I will say, like I said, 99%, for at least based on my experience, they are actually quite accurate and quite good.
Michaela Light 11:09
So those are the some risks, the code may not be totally Correct, correct.
Monte Chan 11:13
There are some that there is some risk that the code may not be accurate. But as usual, you just need, you need to make sure you test your code, you cannot just take the generated code as is. And I cannot emphasize that enough that keep in mind that GitHub co pilot, it's that is not the it's not a compiler that is simply trying to predict what text you want. And in that context, but it really does not know what language you're writing. And so sometimes they'd be missing a bracket, maybe like a set of punch, and they may not exist. So you do need to test your code before you you say commit the codes. If you take as everything as it and no testing, a lot of times, you may end up with something breaking.
Michaela Light 12:04
So you might you described it earlier as an AI pay pair programming assistant, but the pair programmer doesn't really fully understand cold fusion, it depends on that, you know, cold fusion code has been trained on how much of your own code is exposed in other tabs, or in that particular tab? And yes, also my own experience of using API's in different contexts is they can be very enthusiastic that their solution is correct, even when it's a complete lie. So like you said, they may make up functions that don't exist, because they really keen to solve the problem and predict the the code you're trying to write. So
Monte Chan 12:45
Exactly. Yeah, exactly. Because GitHub itself, or the code, co pilot, this technology is trained on all the code that are available in the public repo. So because let's say for examples, say Java scripts, or those because there are a lot more public reports available, so the quality would be much better than say ColdFusion. Because I guess relatively speaking, ColdFusion does not a whole lot of public repo codes available. So they can only soak it up copilot can only be trained on what's available.
Michaela Light 13:29
Now that brings up an interesting point, as well as writing cold fusion code glit. Write your JavaScript code as well. Excuse me, as well as writing ColdFusion code. Can it write the JAVA script? Well, yes,
Monte Chan 13:44
it can write with Java, you can do Java, you can do SQL. And it's not only ColdFusion. In fact, you can do PHP and dotnet, and many other languages, too. So it's not only for ColdFusion, it can actually support a whole lot other stuff, CSS as well.
Michaela Light 14:05
So if someone this is where maybe a useful reason for a ColdFusion developer use it. I know some ColdFusion developers, you know, CSS is not their strong point, or SQL is not their strong point. And this can I think a good use case for an AI at this point in time is when someone on the team, you know, is weaker in one area of it can help strengthen them up. If someone is a senior developer, and they already know ColdFusion really well and JavaScript and SQL code and CSS. What have you, yes, it will help you and it will speed things up. But it's not going to have a bigger increase as it does for a more junior developer. Absolutely.
Monte Chan 14:57
Yes. Especially. So like us. that one a lot of times as being the developers, we're not exactly designers so to speak. So when it comes to the CSS portions, we may or may not know a whole lot about how to do certain things. So GitHub copilot definitely will help in those areas.
Michaela Light 15:19
Now, is there any concern about you know, you said it's trained on public, the available code in GitHub? Is there any concern people express over, you know, you're basically copying other people's code here? And there might be a copyright issue? Or?
Monte Chan 15:38
Yes, there are people who have mentioned that. And I honestly, I do not have an answer to that particular question. And as far as I'm concerned, they are not exactly. Let's just say that I don't have an answer to that particular question. Yes. But there are there have been people having some concerns over the public repos codes and some licensing issues. So I mean, something to be it depends on who you're, you know, working, you know, if you're doing your own open source project, maybe it doesn't matter that much. It's probably taking it from open source code, or and cross your fingers. And enforcement isn't copying other code, it's been inspired by other code. Chances are, what you're getting is not an exact copy. It's more like a merge of several different other things. Yeah. And just philosophically, I'd make the point, how the heck that human programmers work, we read other people's code all the time, like, oh, that's how you do code, this API, or this, how you do this kind of function in ColdFusion. And then you write your own version of it. Exactly. You know, I think every programmer regards that as their practice, you know, you, you're inspired by reading books, you're by going to conferences by reading other people's code, by Googling, first, for example, to see how something's done. And then you write your own version of it. And I haven't heard anyone complain about human programmers doing that. So why do we can program complain about AI? Exactly similar thing. However, having said that, if if you're working for, you know, maybe a big corporation or a government office, they may be a bit more concerned about, hey, what's the, where's this code coming from?
Yes. And on that note, maybe we might get to that later. But for the copilot, there are two different licenses for the business licenses, you can actually configure that the generated result would not be coming from anything from the public repo, but you can restrict that to only within the corporate codes, if you will.
Michaela Light 18:09
So you could do with corporations code base.
Monte Chan 18:13
Correct? Yes. That's only available for the business license.
Michaela Light 18:19
Well, that's an interesting feature. So that that totally avoids this issue. Correct? Then you're only using the code that your your organization owns? Yes, correct. The downside to doing that, of course, is that it may not be quite as good code, that if you open it up to.
Monte Chan 18:37
You give some you take some so you kind of think about what you want to do, and then make adjustments according accordingly.
Michaela Light 18:49
And that would be coming from a private GitHub repo in your organization, I assume not. One Yep. Poor Eisley, if you're, you know, a business or a government organization, you may not want all your code out on the internet, correct? Yes, various reasons as
Monte Chan 19:06
Some would be just the report within your organization. So may you be chances are those would be private ones. So you just need to provide some type of authentication, I would assumed to look at those codes and then would be generate the suggested suggested code based on what's in your binder, private repos of the organization.
Michaela Light 19:33
And it also, I guess, backing up a bit. You can even if you don't use GitHub as your own repo for source control, you can still use copilot. But for these more advanced features, you do kind of have to go into the Microsoft ecosystem and use copilot use GitHub as your repo.
Monte Chan 19:53
Yes, but if you don't use GitHub as your repo and you use something else, then the We'll just look at the code based on go local file structure, but not so much getting from the, your GitHub repo, if you will.
Michaela Light 20:12
So do you have any other tips for people get know using this how to get more out of using copilots?
Monte Chan 20:21
Well, other than the key is just to be descriptive in as far as the function names, variable names. And just keep the structures for a certain structure, like, let's say, if you do ColdFusion, an object oriented way, then you do the get and set functions and then keep the function names consistent, then that would help GitHub co pilot quite a bit as far as when it comes to generating code itself, doing things rather, randomly, then is quite hard for GitHub co pilot, because I noticed that critical pile to buy some kind of pattern. So if you keep certain patterns, GitHub co pilot actually would notice those patterns. But if you just do everything in random, then make things a lot more difficult when it comes to get a pilot, because copilot really does not have a clue what exactly you're trying to do.
Michaela Light 21:27
Yes, it's kind of I don't know what a polite way to put this is. But it's kind of an intelligent idiot, you know, very well trained on a lot of code, but it doesn't totally understand what's going on. And I'm reminded the movie, I think it was called rain man that had Tom Cruise, Dustin Hoffman and Dustin Hoffman. Is this autistic? Yes, genius. And, but he doesn't really totally any. For example, He can play blackjack and count every single card in a six card deck. Blackjack. And yet, he doesn't really understand the point of like betting to make money. So he's betting one or $2, where Tom Cruise is betting 10s of 1000s of dollars. Yes. And then at one point, he gets bored and walks away from the table at which point Tom Cruise loses money. But the point I'm trying to make is that we call it an AI, which means artificial intelligence. Maybe intelligence is a bit of a strong term here. It's kind of you've talked about it being predictive text or, you know, like talking about large language learning models. It's more than these things. And it's not. It can behave in intelligent ways. But it isn't always. It doesn't always understand the code is generating. What doesn't never understand the code or anything, right? What's correct, yes, we still need a human in the loop.
Monte Chan 23:00
Absolutely.
Michaela Light 23:03
Now, that doesn't mean these things may not improve over time, right?
Monte Chan 23:06
Yes, for now things. I mean, for now, things might work this way. But given the knock technology and up research, will probably get better over time. Yes.
Michaela Light 23:24
And then, I guess another thought here is, you know, a number of coffee and developers do publish ColdFusion code into GitHub, public repos. Maybe if more of us do that, when we've.
Monte Chan 23:40
Absolutely, since the case of CO pilots is trained on the public, I mean, that they the code in public repos. So the more of us published code in the public repos. And the better just I don't know. And I did actually try to look up how frequently, GitHub co pilots being trained. And I could not find just how frequently they do that. So however, frequently they do that, but the more code that we have available out there, the better it is for community or even for chemical pilot to actually get better quality on our code on the coats.
Michaela Light 24:25
I am I don't know. I mean, just going by analogy on how often Google and other search engines have bots that go through the web and scan websites is material. I've got to imagine Microsoft is, you know, scanning GitHub for new code and given that they own GitHub and they actually can know when new code is committed. It may be the trigger it every time you I mean, on the one on the one level maybe every time you code is committed, it gets pushed into a cube you've sucked into co pilot On the other end of the spectrum, maybe they have a frequency that every month or every six months or whatever the time period is they just scan everything. Yeah, pull it in. So it is an interesting question. And I'll see if I can find anything. On all I can find now is Google tells me it was trained get copilot was trained on billions of lines of code? Yes.
Monte Chan 25:29
They do.
Michaela Light 25:32
if anyone listening knows the answer to that question, please stick it in the comments or drop me an email, and I'll play the show notes. with it. And I'm curious, I'll see if I can find the answer to that question. So maybe it makes sense for us to do a short demo of this, I am aware that some people will listen on iTunes or other audio services. So we'll do a game by game play of what we're seeing on the video for the people on YouTube, obviously, you can see the video, if you can share your screen, it's that little green screen is if you can set the font size on your ID to be super large. What larger than, you know, many developers I've seen have enormous computer screens, and the font is tiny, and it doesn't come out so good on YouTube. So I want to make life easy for the folks at home who are watching this,
Monte Chan 26:34
Please, on this.
Michaela Light 26:39
And while we're getting that apart, I just want to tell you what, this thing isn't that expensive, we'll get fully into the pricing. But you know, a few cups of coffee a month would pay the subscription. And we'll also talk about what's coming in the future for co pilot because Microsoft has just announced a whole bunch of other future improvements. And they're also rolling out co pilot to other Microsoft tools. We may talk about that we have time. And certainly I'd like to talk about other AI tools that are available for cold fusion. Lots of exciting things coming up. Absolutely. So yeah, let's get that demo loaded. And I'll talk it through for people listening on audio. You're welcome to say anything you want about it. Let's share your screen. And you're using VS code. I think. So. And this is some code. So you've got a very exciting function here called Calculate sum of two integers dot CFM.
Monte Chan 27:53
Yes, as a test so.
Michaela Light 27:57
And so you're using a really descriptive name to help copilot here and to help self document the code.
Monte Chan 28:04
Yes, exactly. Exactly. So assuming that you have installed GitHub copilot extension. Once it's installed successfully, you will see this little icon at the bottom right corner.
Michaela Light 28:21
Can you hover over that icon and I'll describe it? Yes. Because I'm not seeing where you're you're.
Monte Chan 28:29
At the bottom right corner you see that show co pilot status menu. Okay. Yep, that little icon this right there. So if you go to give up copilot website that is supposed to be an alien looking thing with the pair of eyeglasses on top of his helmet thing said that this is what is supposed to be okay. Yes, and then there is a I will say about few months ago, GitHub actually announced something called GitHub co pilots x. The x there is not a Roman numeral but it's more like surface A placeholders. Basically GitHub wants to use the co pilot technology in different aspects of doing programming. So you can do that. So you can go to Extensions and search for get up. co pilot and you will see a list of GitHub co pilot relating extensions. So there's the GitHub co pilot chat, give up copilot chat. It's more like a chat GBT type of functionality but because this is within the IDE, so This check actually knows all the tabs that you have open all the files that you have open. So when the generates the responses, the keep the mind with all the stuff that you have open. So will help with providing you with the response, a test at GitHub co pilot Labs, which is basically upon GitHub to have some kind of experimental functionality. So you can play around with and GitHub co pilot voice. For killer co pilot voice rights. Now, you do need to join, wait lists and wait for the approval before you can actually use the extension. But this co pilot voice is supposedly allow you to use the natural languages to write code, so you will speak it. So it helps a lot with more people with mobility issues. So you can speak it but by speaking it, you're not saying that say you don't say for i equals zero, i less than 12, i plus plus not like that, but more like write a loop to go through an array three times to display something and that will actually write the code for you. rights. Now, I have actually joined this weightless for about a month already. And I'm still waiting for the approval. So I cannot do a demo on this one. But for the most part, I can do some a quick little demo for the pipe co pilot itself and a little bit about the chat.
Michaela Light 31:42
The only one you actually need here to get hub copilot extended.
Monte Chan 31:45
Yes, but GitHub co pilot is the base for everything else.
Michaela Light 31:49
And to install that you have to have a GitHub account, either the 30 days count or the paid account.
Monte Chan 31:55
Yes, so without GitHub, with a GitHub account, for the GitHub co pilot itself, this extension, it gives you a one time a 30 day trial. So after the 30 day trial is over, and if you still want to use continue using it, then you will need to pay for that. But then either a an individual license for the business license to individualize this is $10 a month. And for the business license is $19 per month per user. Okay, and so for the business, you do get certain things that the individuals won't let you do. For example, like we said earlier, for business license, you get to configure whether to return the responses for me returns the responses face on the phone with the public repo, or should it be only looking at your organization's repositories. And then you can with the business license, you can also assign seats, either on the team level or on the individual level. And you can also let's say, your corporation has some kind of corporate VPN, you can configure your GitHub co pilot to work within that VPN as well. Oh, okay. So let's say so now I have this file called Calculate sum of two integers. So be descriptive. So basically, I'm trying to write you're gonna come.
Michaela Light 33:40
In here, and you're going to say, slash slash, right?
Monte Chan 33:46
You can start by writing a comment about what you want to do, let's say you say write a function.
Michaela Light 33:58
That already is already auto completing the description of what you want to do. Yes.
Monte Chan 34:07
So you see, these are suggestive text, these are in opaque color. So there are different options. You can go to the arrow to say next. Next, but in this case, we are not taking the strengths so we don't have the freedom like it will keep on typing until the show something that we want, takes in two integers. And please turn the song now.
Michaela Light 34:45
That format you had there with the slash slash that's not a normal ColdFusion comment. escape character, right?
Monte Chan 34:53
Correct.
Michaela Light 34:56
So that's what you use in copilot or is that some other convention on not familiar with?
Monte Chan 35:02
I correct in copilots, I find that this works. But you can certainly try many I by no means am I saying that this is the only way to get things to work, you are more than welcome to try to print things on your own and see which one that works. And so in this case is generator function. And if you'd like that, you can just hit the tap to take that, for
Michaela Light 35:34
Those listening on audio. After writing that description of what the function needs to do copilot gave a suggestion with the function name, add two numbers, which it came up with that parameters number one, number two, and then return number one plus number two looks to my syntactically correct, you've got a better eye for this, Monty?
Monte Chan 36:01
Oh, yes, it's actually correct, exactly like what you said. And the function and also this comment. It's rather forgiving. You can have, let's say, now I delete that function. Okay. And let's say if I write a I have a typo, and then into Word integers instead, chi RSG IRS. So this is technically the wrong word. Okay. But let's say if I were to do that. Okay. And then we'll still right.
Michaela Light 36:47
Click of a button to get it to regenerate the code.
Monte Chan 36:50
Yeah, so sometimes you knew you do need to hit enter or something to know to boss, sometimes you do need to hit enter or do something to prompt the co pilot center, you notice is the end of comment, or this is the end of something or sometimes you even need to start typing the word function. In this case, excuse me, in this case, it's actually generate the functions. But sometimes, co pilot may think that you'd want to keep on writing comments. So instead of generating a function will generate another line of comments. So sometimes you do need to talk so to speak to lens Cove bow copilot know that you actually want to write the function.
Okay, and here when this case picked up that you misspelled the word insurer, and it understood what you meant. And it's very similar to Google search or chat APK that if you miss type things, it often figures out what you really meant. Yes, because the text and you know, in millions of cases where people will miss type a word, that's what they meant. What you wanted? Yes.
And for this comment, you actually don't even have to write that in English, you can write that and then the other less natural language at
Michaela Light 38:05
All. Really.
Monte Chan 38:09
I can write that in Chinese, Chinese.
Michaela Light 38:12
Then you'll end up with predictive Chinese coding solutions.
Monte Chan 38:16
Also, in this case, let's say,
Michaela Light 38:21
You're writing one in Chinese? I am not going to be able to speak to the readers.
Monte Chan 38:25
Okay. So I would say this would be the exactly equivalent to the English text. Yes. And so let's say if I were to hit enter, like I said, sometimes things that you still want to write comments. So for those who may not be able to see the screen right now, what I just want the screenshots is just another line of comments, but an English thing, write a function that takes in two integers, which is exactly the same as the English text. Yes. So but in this case, I want an actual function. So let's be change it back to English. So sometimes, that's disappointment. I actually typed the word function to talk. CO pilots. Well, when you were the one that function.
Michaela Light 39:22
When you were typing out the regular vs. Code, order completion was coming up. I mean, just make this point to people listening. It's not like co pilot is a new tool or a new ID. It's an extension you use in your existing IDE. So you've got all the power of your existing id plus your superpower. large chunks of code being auto completed for you. Yes.
Monte Chan 39:50
I'm going to edit. Yes. So then, and as you can see, are both for those who cannot see on On the right what the January say exactly the same as the function generated when I wrote the comment in English.
Michaela Light 40:10
So you can write your requirements. So I call this the requirements or the comment in any human language and it will figure it out. Correct.
Monte Chan 40:20
And even the comment itself can have mixed languages, you don't have to write them all, everything in Chinese or everything in English, you can have mixed Chinese English mixed with all kinds of different languages within one sentence, and we're still work.
Michaela Light 40:37
Now this is great. Also, you, you know, I have dyslexia, so I tend to write English a bit weird. Very grateful for grammar checkers and spell checkers. But if I'm writing this, and my English isn't grammatically correct, you know, as long as the intention of the function is there, it's gonna figure it out. Yes.
Monte Chan 40:58
So let me delete this. Chinese one that just say that I want to, I'm writing a comment and say, output. Results. function, okay. So then just write output, add two numbers, which is the name of a function, and just put in two numbers of just one and two. Okay, so let's say I save that.
Michaela Light 41:32
So output to the screen, it is nice to use the ColdFusion function, right output all that?
Monte Chan 41:39
Yes. And so I have I, I have a command that started already has, so I call the
Michaela Light 41:51
Leads.
Monte Chan 41:54
To choose one CFM. And it's expected this displaying three because that's the sum of one and two. Okay. And, earlier, I mentioned that GitHub co pilot chat. So if you have actually installed chat, then you will see this little icon here on the left looks like like have two dialog boxes on top of each other, like ones smaller ones and one bigger ones. And you can ask co pilot by typing. But here, it's only designed to return anything that has to do with programming. So if you ask something, say, you know, the way to San Jose. And would tell you kindly think that sorry, but I can only assist with programming related questions. So you can only ask questions that are programming related.
Michaela Light 43:10
Okay, but you could ask it, you know, make some code for us. Alright.
Monte Chan 43:16
Let's say you can say.
Let's just try the same thing here. Instead of doing the comments, I just type do the same, write a function that texts and to take pictures and turns the sun. Okay, so Okay, so this is exactly the same that and also gives a little bit description of what the generated code code did. So from here, you have a few options. You can either copy, or you can have you have an option to insert a cursor, let's say I my cursor is right here. I can just click that. And we'll just put everything in here. Well, at least I should. But I will save the script. So let's say like that, then that will generate I will actually just copy the text directly to your file at the place of your cursor. And sometimes,
Michaela Light 44:47
now leave as a small test examples, but if you're really doing coding, it could be dozens.
Monte Chan 44:53
Inserting, yes. And you can also let's say after writing some code Maybe at the time you understand that, but maybe sometimes after a few months, and then you look at the code and you kind of wanted to see exactly what those codes do. Well, sometimes you come across some code written by another developers that you're not too sure what they are doing, you can actually highlight the code. And to then it on a Mac would be Command i. And so I would assume that on a Windows will be control I was yes. And then a prompt would be would be displaying in within the file where you are at the end of those lines of codes. And then there's also equivalent to the chat here. So what you can do is, Please, explain the lines. Okay.
So
not sure I found that site. So it says these are part of a ColdFusion Markup Language file. I think I knew that. The first line is a comment. I think I knew that as well.
Sometimes you do, I guess, because this function is a bit too simple. So you have something looking at some complicated.
Yes. Sometimes you can even use that. Now for the other one that was working better. But because a lot of the some of these features are still in cafe, like a public beta version. So what you see now may or may not work later on. For example, one feature used to be working, but now it's not working quite well. But it seems like that they have moved that to a different location is fixing bugs. So let's say you have some code here, let's say remove the plus sign here. So obviously, this would be an incorrect function. And so you can highlight again, you can highlight the lines of code that you want to fix, let's say sometimes you come across some codes, you do the best you can, you simply cannot find what the problem might be. So you can highlight the code, lines of code and questions and say fix these lines or something like that.
Section, yes, as you can tell, sometimes this does not work too well. But then GitHub co pilot labs.
Michaela Light 48:07
Labs, it's their little.
Monte Chan 48:09
Icon here. Then there's something called
Within here, there's something called fixed bug. Oh, yes. So if you have a bug in your code, you can highlight it.
Exactly. So you can highlight it then clicks that, but this fix bug feature when we fix some simple bugs? Yes. So you can click that and it should fix the bugs. So as you can see, it added that plus sign right there, which I have previously deleted. So this fix bugs feature is a good thing for fixing some simple but sometimes you can be looking at codes, I guess I can only speak for myself a lot of times I could be staring at that the whole day long only. Somehow my mind works, or certain Oh, I'm gonna say semi COVID Some stupid stuff like that. So this fix, but sometimes it can save you hours and hours of debugging time throughout to be something rather simple.
Michaela Light 49:17
Yes, I'm gonna see the labs for test generation. Yes.
Monte Chan 49:23
This test generation only works for TypeScript and JavaScript at this moment.
Michaela Light 49:27
Jobless, I was hoping it was going to write my textbox
Monte Chan 49:31
No, not at this moment. Maybe in the future. It does. And also for this one that has a language translation. And um, but foul language translation does not have ColdFusion or Lucy on the list yet, but there's a lot of other things. So let's say you have some.
Michaela Light 49:56
Let's say we need to add ColdFusion into this plus, I think.
Monte Chan 50:01
Absolutely we can talk to get up or talk to Microsoft to see whether they can add to that list. But it would be a good place to start. Let's say you have you come across some code, let's say in C Sharp that you're not too sure what the does. You can, you can say, to translate that to say, PHP or something like that. JavaScript.
Michaela Light 50:26
Again, the closest thing to ColdFusion. Yes. Yes. Very similar to JavaScript. Yes.
Monte Chan 50:33
So PHP is on the list, though. This
Michaela Light 50:35
might be some code you found through a Google search with some, yes, or an a, you know, if you're using an API, and maybe they have a sample that is in some other language, and you could use this to translate it to say JavaScript, hopefully, eventually help you. I will get you a lot closer to where you need to be.
Monte Chan 50:55
Exactly. That's a really cool feature. Yes.
Is there anything else you want to show in the demo? Before we get back to the regular?
This? Is it off for now? Yes. Oh, great.
Michaela Light 51:09
Very exciting. Obviously, does some really cool things. Even in a simple example, we could see it was generating code. In a real life example, it could have been generating a lot more. Yeah, absolutely. You're explaining the code better? Yes.
Monte Chan 51:27
And also, because like I said, ticks are your current files, your current file structure everything into consideration. So ideal. So theoretically, as you build your project, more and more, there will be more files and more codes and all that within your file structures. Then as time goes by your the generated code would get better and quality, because there are more files within your file structures for the song training, if you will. So it knows exactly what in what contexts that you are writing the functions for writing the codes for. So, yes, so in time, things could get better.
Michaela Light 52:15
Excellent. Alright, let's unshare your screen. Sure. We'll be back. So we you mentioned briefly the price in there's $10 a month for individuals after your 30 day trial $19 a month per user per month, yes. Which is, you know, pretty similar to what you can pay for chat GPT called a or various other AI tools. Seems pretty reasonable. now has his copilot changed the way you code.
Monte Chan 53:00
Because I want to use that. So I try to make things more keeping to the same standard of keeping to the same pattern. And that will help in for the GitHub co pilot to generate something that I can actually use. And so be descriptive. So not only that is better for co pilot but also for me in the future or for other fellow developers later on when they look at the code they know it's kind of self explanatory and so sometimes you do need to look at the code but at least looking at the function looking at the variable names they will have a better idea of what that section of the code is about. Yes.
Michaela Light 53:49
Is there a risk there that if everyone on the team is using copilot all the code ends up being the same or looking with Simon.
Monte Chan 53:57
I don't think so. I mean because this is a I wouldn't necessarily say the same per se but at the same time it's also keep the same standard if you will. But if you actually.
Michaela Light 54:15
Your coding standards on capitalization or spacing or other things, or does it pick.
Monte Chan 54:20
Out also mind you when because in this quick simple demo, I couldn't quite show that but in my experience is actually let's say if I have the table name is Nick cases and keep in mind this not only work for coefficient work for sequels as well. So when January is the code sometimes it will let's say if I have the table name in snake cases or camel cases when generate the code will also keep those in mind in generating the code as well.
Michaela Light 54:57
And you know, a lot of people use it and CF lent to To achieve a similar standardization there, so this takes it to.
Monte Chan 55:05
A different Yes, it takes all those into account when the generates the are the codes. If
Michaela Light 55:11
There's someone listening with the development team who's may be new to AI assisted coding, you know, I'm assuming that there was a learning curve for you in picking this up. You know, would you give any advice to someone new to this, on how to go about learning it and how much time it might take? Before you see the benefit?
Monte Chan 55:33
Can say that I start using case a co pilot, the first version ever that was released was back in October 2021, if I remember correctly, and I actually started using that at first, that takes a little bit of getting used to have those old pay tags and all that. But as far as that part is concerned, it takes a little bit took me maybe about a week, roughly, for me to get used to the How It Works has been tapped and all that. But once you I will say the learning curve would not be too long, or this based on my experience.
Michaela Light 56:16
All right, it seems to me you can learn what to do, you know, within an hour, maybe, but getting used to it may take longer.
Monte Chan 56:26
That may take longer. Yes. Yes. Yes.
Michaela Light 56:33
Now you what's coming in the future for copilot? You mentioned some new things exciting new things coming out.
Monte Chan 56:41
Yes, are they announced are something called GitHub co pilot X. And you can actually go to get up next.com. And so to get a list of different things that are currently available, and the stuff that are still working, so to speak. And so you will difficult to get up next.com There's a list of projects. And they will tell you the status of different projects. Let's me go to github next.com.
So if you go down the projects, some tests one core code Atlas, which says this napkin sketch to at this moment, that's just a general idea does not have anything for you to do to actually sign up yet. But you can click on that, to get a get an idea of what it does. And usually for all these different projects coming up, we'll have a little demo if you will just show in general how things work. And not everything is has to do with co pilot. But for those that have COPD have to deal with co pilot, the word co pilots is actually in the name. For example, there's a co pilot for Docs. And that is currently has a waitlist. So basically, you just need to sign up on the waitlist, the actual wait time berries, so you just need to wait for that to be approved. And then you can start using that particular technology. So for copilot for tasks that would using co pilot technologies to write documentations, you can do co pilot for pull requests. And there's co pilots for CLI and there's copilot voice. And then there's what they call the GitHub co pilot radar, you can just go on and on. There's a long list, you can go there and click on any of those and to get a better understanding on what that does. So I just click on say, GitHub co pilot radar. And then you can go down and then they have some description of what it does. And so you can explore that yourself to see what each of those functionalities does.
Michaela Light 59:21
Now, I noticed that when I went to the GitHub copilot X website, I put the link for that in the show notes. So Tara tag.com, and it also has support for pull requests coming and uses some a chat GPT for features because of course Microsoft has a big stake. I think it's 30% stake in open AI open AI who on track GBT so in other words, they're improving it with a better language model and on the pull requests It says it will suggest descriptions of the pull requests and explain what the code change is actually doing is great because sometimes I noticed people don't always write the best descriptions in their pull request. Yes. So has some exciting things in there. I think I read somewhere, maybe I'm confused. But I thought I read that Microsoft was extending out pile Copilot to their other you know, tools like Microsoft Word and Excel, yes.
Monte Chan 1:00:33
Yes, they actually using the copilot technology within all, to my understanding based on the reason Microsoft conference, they are using co pilot in airport, Microsoft product that is available. And that was actually just that update, and Windows was released sometime last week or two. And so I believe it's been, in essence is the same type of technology, but use that same Microsoft Word out low and different things, or even being.
Michaela Light 1:01:16
So there it might be helping you code macros in Excel.
Monte Chan 1:01:22
I will say so, yes.
Michaela Light 1:01:24
Or maybe doing other cool things. I'll put a link to that for folks interested in that aspect of it. Sure. You know, clearly, clearly Microsoft didn't spend billions of dollars to buy a minority stake in open AI. They will want this. Yeah, they want to use this to pep up all their tools to keep them competitive. And integrate AI into you know, I don't know if it'll be into every single Microsoft offering, but obviously into a significant number of them. Maybe even SQL Server will get copilot AI thing in sequel Service Studio at some point.
Monte Chan 1:02:09
Yes, yes. That would be nice. Yes.
Michaela Light 1:02:12
It would be nice. I was thinking. So hey, you know, we talked about the future with Copal X, how do you see copilot or other AI tools? Changing how ColdFusion developers work? You know, do you think they'll become enjoyable to call fusions? Evolution? Or will it just be, you know, an add on that some device.
Monte Chan 1:02:38
Was actually I think that would be good. In fact, for those who actually attended the CF summit in Vegas, earlier this month, Mark Takata actually did a quick demo in the keynote of an AI version of Spark doing GitHub copilot chat. And using essentially doing the same thing that I just did. But he did that with a font like writing a function to find hope and the prime numbers or something like that. So that will help a lot. Since writing codes instead of waiting line by line by line, we can just use GitHub co pilot that was saved a lot of times in terms of writing ColdFusion code or just programming in general.
Michaela Light 1:03:32
So that was a great presentation that Mark did, yes. All right. I mean, I think in the short term, you know, not everyone's going to use these tools, just because the adoption curve on any tool, you know, the early adopters jump in. But you know, late adopters may take years to pick up tools. I just see that I mean, you know, as you know, I do the the whole CF live revolution movement, and I've been pushing for five years for people to use modern ColdFusion tools, yes, upgraded version version ColdFusion. You know, just make ColdFusion, the modern programming language and ecosystem it can be with all the tools available. You know, I saw you were using command box earlier in that demo. I didn't call it out then. But congrats to you for using command box. Thank you. And I recommend everyone use command box. But I just know from talking to people, not everyone does use command box even though it's getting out for years. It saves so much time and makes your life easier and it's free. Yeah, exactly. Not everyone use it and I understand everyone's busy. They've got urgent you know program requests or bugs to fix. They may not be all we have time to sharpen the sore and improve their tooling but I think it's important these days the changes are coming quicker and quicker. pace of change is increasing, we can definitely see that this year, AI stuff only started this year. We're recording this episode at the end of October, where we're nearly 10 months into the year. And yet so much has changed in that time. And I think the epoch where you could not improve your, your ColdFusion programming skills and tooling is over guys. You need to allocate some time every week to learn new stuff. You know, in the case of this copilot, it could, you know, really speed up your development process. Oh, absolutely. Yeah. Other tools. I'll get off my soapbox now. Monty.
Monte Chan 1:05:55
That's okay. That's okay. I was actually rather surprised when I was at at Summit when I did the presentation, right. Before I actually start the presentation, I just five show of hands, I asked people to raise their hands. If they were already using GitHub co pilot. There were I would, I would say about 80 people showing up. But only maybe four or five people actually raise their hands. I was actually rather surprised by that, considering that the first release of copilot was actually back in 2021. And now we'll talk about what it's what the three sword was two years already. I would I was actually expecting a lot a lot more people raising their hands. So I was actually rather surprised by only like four or five people raising their hands.
Michaela Light 1:06:43
You know, I looked into this topic for another reason, the adoption curve and the pace of change. And you know, if you look back at previous technologies, like for example, the automobile was invented in the 1890s, it really only became ubiquitous in the 1950s as a 60 year adoption curve between the early adopters. And the people who like change the people who pick up things in the middle, and then the late adopters finally pick up and if you look at other technology, like, you know, the television, the telephone, the smartphone, the internet. You know, copilot? I guess there's a more recent example, or, you know, chat GPT that even now, even though the pace of change has sped up, it easily can be a five to 10 year adoption curve before everyone is using something. Exactly. Yes. So, you know, there's often an echo chamber in technology, you know, what's the latest cool technology? And we think everyone's using it, but isn't true. There's a lot of people who are you know, they just have, you and I are both passionate about new programming improvements and programming technology, attend conferences, read articles and spend time outside of work, just because we're interested. Oh, yeah. But there are also people who just have a job. And you know, maybe they have kids or other responsibilities. And it's hard for them to make time. But what I'm saying to you guys, hopefully, some of them are listening to podcasts, we make time to listen to a podcast. Because this is the catch 22, right. The people who make time to listen to podcasts, listen to this, and not the people who need to hear not the only people who need to hear the message. And if anyone listening has suggestions on how we can reach ColdFusion developers who are maybe a bit behind the times. Love to hear them. Because otherwise, they're just going to, you know, get left further and further behind. And also, to be honest, when I've talked to people who are working on legacy apps who are using, you know, ColdFusion, nine or ColdFusion 10 Yes, I know, that's really old version. But people still use them. It gets depressing. You know? Yes. Learning a new technology helps invigorate programming, work, practice. So, yes, I step back on the soapbox.
Monte Chan 1:09:23
Well, that's okay. You can keep going. I enjoy all your
Michaela Light 1:09:26
Insights when you were your inspiringly Monty, because you Oh, thank
Monte Chan 1:09:30
you. That's a great thing that you are inspiring me to with all the podcasts and all the different episodes big fan.
Michaela Light 1:09:40
Now, there are some other AI coding tools out there. You know, fusion reactor came out with an AI add on to their performance monitoring tool for ColdFusion that can help diagnose performance bugs quicker chakli PT a lot of developers use that there. But as you mentioned earlier, you have to cut and paste into it. Whereas compiler, it reads the code in your IDE, even other tabs that you have open that are related. And then Googlebot also helps out with it. So there's a lot of AI and probably a whole bunch of ones I'm not mentioning.
Monte Chan 1:10:13
to my understanding AWS has one just coming out recently is called closed whisper. And that is free.
Michaela Light 1:10:23
Okay. Yes.
Monte Chan 1:10:24
But that out of out of at least right now, it does not support ColdFusion or Lucy. But to that point, though, when GitHub copilot was first released, they actually did not support ColdFusion, or the Lucy either. Now as things are getting better, so hopefully, maybe AWS would be a better alternative for spring, not sure, at least free for now. Maybe Lincoln a charge? I don't know.
Michaela Light 1:10:55
Well, yes, they may charge, I'm always slightly cautious about free tools that don't charge because then, you know, our data is the price. That's how Gmail is, for example, we suck in we're emails and serve up ads based on what you've written in private emails. There you go. Yes.
Monte Chan 1:11:16
Now let's,
Michaela Light 1:11:16
let's wrap up the episode. Tell it tell me why you know, it's 2023. When we're recording this, why are you proud to be using ColdFusion? You've been using it for over 20 years now?
Monte Chan 1:11:28
Yes, I'm actually I am rather touched by the general generosity of the coefficient community, especially when I was doing when I was a co manager of the user group, there are lots of people. Let's say Charlie, already camped in the jet by himself or Ben, Adele and a lot of different people. They were so eagerly to share their knowledge with us. And a lot of times when, especially when I was looking when I was a co manager, sometimes I was looking for different people to do some different presentations. And they were so eagerly stepped up and so readily to help us and actually gave them all in their presentation. I was actually I was quite pressed, quite impressed by all that. Or even one time, that was even before I did the before I was involved in the user group thing. At that time, there was there was still something called source for words, I believe, that is way before the Forge box or anything like that. There used to be a site that we could upload our ColdFusion component that works with different things. At that time. I remember, I believe Ray, Camden was doing something with a Yahoo geo coder. And he created some, like the first version of some confusion function that could extract the information based on what's being returned from that from the Yahoo, geo coder. For some reason I had to do at that time to geocode or have a version two or something like that. But the function itself was what was sent off. That's for source forge sites did not have the updated version yet. So I asked Mr. Campton. Hey, do you, uh, you can to update stat. And then he said, No, actually, if you want to update that, you can do that yourself as Okay, poor. And so I did some updates, I put an update on that website. And interestingly enough, there happened to be another gentleman who reached out to Mr. Campton, because somehow that gentleman wanted to do a video demo of how to use that fun cold fusion function or something like that. And Mr. Campton referred that gentleman to me. And so he actually did at that time, he actually made a YouTube video on how to use that ColdFusion components or confusion functions that I did. I was actually rather impressed by all that. There were actually people nice people out there that are so eagerly to help the whole community to make things better. And so with all these different people, even when I go to the conferences, and talk to different people, they are so eagerly to help you. Or even like on the Facebook, there's that confusion programmers. A lot of whenever people ask questions, a lot of us will chime in with constructive and helpful information. I mean, what's the steps we can play? I mean, to me, I'm just grateful that I'm even a part of this community. I'm just trying to do the part that little that I can do to make ColdFusion or the community better.
Michaela Light 1:15:13
Well, I think you're doing a great job on both.
Monte Chan 1:15:16
Thank you for sharing your knowledge. Thank you.
Michaela Light 1:15:21
What would it take to make ColdFusion even more alive this year.
Monte Chan 1:15:28
Hopefully more people getting involved more people sharing the knowledge. A lot of us who actually might have worked in cold fusion for many years, we definitely have accumulated different knowledges. And by no means is, there's no way for me to know everything there is to know about cold fusion or any other different technologies that can work with ColdFusion. So all of us, as a community as a whole can help each other that would actually make, make the school stronger together. And that's how I feel that we can make CF more alive by more people contributing.
Michaela Light 1:16:15
I think that's a great suggestion. I also want to add my own experiences. Whenever I teach a topic, I suddenly learn more subtleties and nuances about that topic by teaching it, it's a great way to master a topic by teaching it or sharing experience. Yes, absolutely. There is a selfish motive motive in doing that, as well as an altruistic motive. And I understand I used to be terrified of public speaking. And, or, and or, you know, writing a blog or sharing stuff. And I understand a lot of people are nervous to share, I just encourage you to, you know, maybe share in smaller communities to start with the if there is a local user group, a, that's a great place to start, or start a user group. If you're in a big metro area, or start an online user group. I know this guy out in Hawaii, there weren't many people there around him. But he'd start he just said, I'm going to start a user group and do some online ones. So you know, there's many ways to do this. And you can take a small step in sharing and the more you do it, the more confident you'll get. But you don't have to be confident in order to share as the point I'm trying to make, you just need to start out with some small Sharon's, except you'll get better as you're doing. So sounds like you had a great time at CF summit this year. What are you looking forward to at the next CF Summit? You're going to there's three of them this year, there's one in Washington DC, one in Las Vegas and one in Bengaluru, India?
Monte Chan 1:17:56
I don't think I would be able to go to the one in India. But I was hoping when you were flying.
Michaela Light 1:18:00
Back from Hong Kong to the United States, you could set up off.
Monte Chan 1:18:04
Yet that would be nice, but not.
Michaela Light 1:18:08
Quite right. No.
Monte Chan 1:18:10
Not not. Unfortunately, can't do that. But I will see hopefully, maybe maybe the one in DC or even the one in Vegas next year looking forward to what else they Adobe has been planned for. For ColdFusion. Yes. And hopefully, there'll be more.
Michaela Light 1:18:39
Released Adobe ColdFusion 2024 by them and there'll be planning Adobe ColdFusion 2025.
Monte Chan 1:18:45
At that point. Yes. Yes. So hopefully there will be more with AI. I mean, based on market, the Carters demo at the CF summit, I would assume that there will be more coming with the AI relating technologies. And yeah, that's exciting. So good time to be alive is an even better time to be a cold fusion developer right now. Absolutely.
Michaela Light 1:19:17
Well, if people want to find you online, what are the best ways for people to connect with you?
Monte Chan 1:19:25
Are typically I'm on Facebook, you can go to facebook.com/monti tax Chan and you're more than welcome to add me but please be sure to let give me a quick message as far as like where you how you find that? Because I do get a lot of different friend requests from people that I don't necessarily know and a lot of times those tend to be scammers. Yes, or or something like that you're a ColdFusion.
Michaela Light 1:19:55
Developer mentioned.
Monte Chan 1:19:57
That your ColdFusion developer or some Bring lipids that will help. And, and you can once you join Facebook then you can actually send me a message within the messenger. That will be of the bed by the way to reach out to me if you want a quick quick response from me. And your email me at Monty at Monty and gents chant.com.
Michaela Light 1:20:26
But I'm going to talk to that email and your Facebook in the show notes because your name is quite.
Monte Chan 1:20:32
Long. Yes, I understand. Yes, thank you.
Michaela Light 1:20:39
And you have a YouTube channel, I think, right? Yes.
Monte Chan 1:20:42
I do have a YouTube channel is called Geek Talk 2004. The 2004 It just a number that somehow YouTube generated just to make the channel name. That does not mean that somehow was created back in 2004.
Michaela Light 1:21:01
I'll put the link to that in the show notes on the Terra Tech site along with your link. Jim. Thank you. So great. Well, I really appreciate you coming on the show today during your family.
Monte Chan 1:21:14
Always a great honor. Thank you.
Michaela Light 1:21:18
Look forward to seeing you on the podcast in the future and your Medici you talk at CF summit or into the box or one of those our ColdFusion conferences that one in Europe whose name is eluding me.
Monte Chan 1:21:33
CF camp def camp.
Michaela Light 1:21:35
That's right. How could I forget that name? We just wrote an article on that. Great. All right. Well, thanks so much. Monty.
Monte Chan 1:21:45
Thank you very much, and always a wonderful experience being on your podcast. Thank you.