Jonathan_Hall:
Hello everybody, welcome to another exciting episode of Adventures in DevOps. Today it's just two of us, we're gonna do a panelist episode. Me, Jonathan Hall, and I'm joined by Jillian.
Jillian_Rowe:
Bye bye.
Jonathan_Hall:
Hi, Jillian, how are you?
Jillian_Rowe:
I'm good, how are you? How's
Jonathan_Hall:
Great.
Jillian_Rowe:
the baby?
Jonathan_Hall:
Oh, she's wonderful.
Jillian_Rowe:
Oh, that's
Jonathan_Hall:
Yeah.
Jillian_Rowe:
nice. I love
Jonathan_Hall:
She just started daycare.
Jillian_Rowe:
babies.
Jonathan_Hall:
Everybody that is in love with her, of course, because she's always smiling and giggling and happy.
Jillian_Rowe:
Of course they are. Sure, she's the cutest baby there.
Jonathan_Hall:
Of course, he just made me in the world.
Jillian_Rowe:
course with p-values and you know like assigned metrics and everything.
Jonathan_Hall:
That's right. I did a scientific study with an N of 1 and came back with the proof positive she's the cutest baby in the world.
Jillian_Rowe:
There you go. I did that too when I was on maternity leave. I was like, I'm gonna have a metrics of cuteness and there's gonna be a p-value in everything.
Jonathan_Hall:
Yeah.
Jillian_Rowe:
And I did, it was great.
Jonathan_Hall:
So today we were talking before we hit record about our experiences with chat GPT and we've mentioned it a few times on the show, but we haven't really talked about it. So maybe it's a good time to talk about how we do and maybe don't use chat GPT. What do you think?
Jillian_Rowe:
Yeah, yeah, I think that's great. I was a little bit like skeptical when everybody was, I suppose, with this last round of talking about it. But now I'm using it and I really like it. I think it's a really good thing. I think if you're not using it already, you should really consider incorporating it into your coding workflow and just see how it goes.
Jonathan_Hall:
Now, do you have the paid plan? Are you using the paid plan or are you still using the free one?
Jillian_Rowe:
I'm still using the free one, I don't,
Jonathan_Hall:
Okay.
Jillian_Rowe:
like, what all is involved in the paid one? I don't even know.
Jonathan_Hall:
You're paid when you get a faster response and you don't get kicked out if it's too busy. So you're sort of guaranteed access, which is a big problem for me. I was using the free one for a while and at the times I was needing to use it, the free one was not available. So I paid. And I don't know if you get chat GPT-4 without paying or not, but I have access to GPT-3.5 and 4.
Jillian_Rowe:
I don't know. I mean, it's definitely worth it for me to pay for it if that becomes an issue. I haven't had so many chat GPT March 2023 version, so that's the most recent version. And current plan, yeah, I don't know. I mean, it's definitely worth it. I would absolutely pay for it if that became an issue, especially for the... I was looking into it, especially for the writing because... You know, maybe this is a bit of a side tangent. This isn't code so much, but for writing, I do a lot of like, I'll narrate. And when you narrate, you get this big block of text. And I was like, wouldn't it be nice if Chat GPT could format that for me in Markdown? So every time I say chapter one, it makes a heading in Markdown and so on and so forth. And it actually did a pretty good job of that, but it can only return, I don't remember how many characters, maybe, I don't know, 1,200 or something. I don't even know, but there's a limit on the number of characters it can return in a response.
Jonathan_Hall:
Yeah, oh chat GP24 has a longer limit for that too.
Jillian_Rowe:
So Chat GPT people, I will take it out.
Jonathan_Hall:
So that might be something you get with a paid plan. I'm not sure. So.
Jillian_Rowe:
Bye!
Jonathan_Hall:
So let's talk about, I'll talk about my experience, but I've been curious, you've already talked about using it for writing. What else have you used it for?
Jillian_Rowe:
I have used it for writing and for code primarily. So a lot of times I will just log in the chat GPT and I'll say, hey, how do I do this thing that I need to accomplish with this library? So for example, I'm primarily in the PyData space. So I'll say, hey, how do I do a merge on two tables and PyArrow?
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
And then what are the best practices for if these tables are larger than memory? So like the tables.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
you know, like databases or whatever are larger than memory versus in memory. And just basically have it, you know, give me a response to that. And it's, it's fairly accurate. It's not like a hundred percent. Like I wouldn't recommend just being like, Oh, look at me. I'm going to put this in a production code right now. Definitely test it first because it has gotten some of the, you know, like import statements wrong. Sometimes it's like way, way off base. Like it's, it's telling me to do something that. you know, I'm like, that's definitely not going to work. Like I know right off the bat, it's not going to work. And then, so I'm using it primarily in the PyData space, which it seems to have pretty good support for. And also for writing Cython code, Cython is like a, it's a way to write C code that can be called by Python. And it's a bit, I would say it's a bit like something maybe like TypeScript, where you write TypeScript and then it gets like. sort of converted into just JavaScript. Syphon is kind of something similar where you write sort of C code in sort of Python and then it gets compiled into either C or C++ depending on what you're doing. But you can get a really big performance boost by writing Syphon, but for the life of me, I can never remember the way that the import statements are structured because they're a little bit different. And having ChatGPT I found was like really, really great for that. So I've been going through like a lot of code that I wrote and being like, I'm gonna make. Cython for everything, Cython for you, and Cython for you, and Cython for you, and that's been a good time for me. So, pro tip from the panel, if you have larger than memory data sets and you're using Python, try make ChatGPT right, use some Cython code to be dealing with that. What about you? What are you using it for?
Jonathan_Hall:
I've used it. Well, so I've used it for a few different things. Before I really started using it very much, though, I created a video on my YouTube channel, which is about the Go language, sort of quizzing chat GPT on Go, and it did a terrible job. It created like outright broken code in some cases, and it gave answers that just didn't make sense. I asked it, for example, how can I make a particular function from the center library? return an error or what errors might it return? And it sort of made up answers that didn't really make any sense. Or how do I do a certain thing in code? Like, I think I asked, how do I reverse a slice, an array in Go? And it gave a completely bogus answer. So I was kind of laughing at it, like, you know, I think ChetGPT is maybe useful for some things, but it's not good at coding, or at least not in Go. But even then I was using it for other things. Like I would take, like I... I have in mind to write a little script that will do this for me when I write a blog post to summarize it in a tweet. I think JetGPT is great at that, you know. Take this 300 words and make it tweet size. It can do that sort of thing pretty well. Maybe not with the most creative voice, but at least it's functional and it creates something that's coherent. So I've been using it for that sort of thing. I haven't had this use case yet since JetGPT existed, but I wished I'd had it years ago when I wanted to submit. like a 360 degree colleague, what do you call it? Like a review or whatever, when you're doing a 360 review of your colleagues and you wanna leave some negative feedback, but you don't want them to know who it is. I think chat GPT is great for that. You could say, here's what I wanna say, Bob always shows up late and he smells bad, but say it in a way that doesn't sound like my voice. So it's more anonymous than it is if I say it myself.
Jillian_Rowe:
Yeah, I want the Ask HR response for this.
Jonathan_Hall:
But since ChatGPT-4 came out a few weeks ago, I decided to redo my video or do another video. And I asked it a lot of the same questions that ChatGPT-3 got wrong, and it got virtually everyone correct. There was one thing that got wrong. It told me that I couldn't create JSON with spaces in the key names, which is not true. And when I said, is that really true? It said, oh, I'm sorry about my mistake. I was wrong. You can actually, you do whatever. So it's kind of funny how it will just like confidently tell you something that's complete bull crap. And then a second later say, oh, I'm sorry. I was wrong about that. And this is whatever. So I was quite impressed really with how well it handled Go with chat GPT-4. And so that video is coming out in a couple of days as we record. Where I've had the most use for chat GPT in my work though, has been on a recent project I'm doing in PHP. We upgraded some old crusty PHP code to run on PHP 8. And it's full of errors, partly because of deprecated functions that don't no longer exist in PHP 8, and partly just because it was crappy code in the first place. And chat GPT has been great. I'm still using GPT-3 for this one. Has been great at really helping me with that. So I can say... For example, how do I tell what error message this function might've returned? And it tells me exactly how to handle an error or how to read an error message, which is something that any PHP developer knows. I'm not really a PHP developer. I last touched it back in 2005 or something. So it's really great for that simple sort of stuff that's not archaic or arcane. And it's also, I've also been able to take code snippets like a regular expression that no longer works in PHP 8, but did work in PHP 7 or 6. And I can paste that in and say, how do I refactor this to work in PHP eight? And it seems to reliably give me the correct answer. I haven't necessarily tested every one of those, but so far, you know, I don't just copy and paste blindly. I read it and make sure that what it's doing or what it looks like it's doing seems to make sense. So it's good for that. It's also really good when I say more general topics, not so much code, but like. how do I do this thing in PHP 8 that I used to do in PHP 7 and it will give a good answer. So I found it really helpful for that. So kind of a replacement for Stack Overflow, if you will, for some of those things.
Jillian_Rowe:
Yeah, I think that is a really good way of putting it. It's like... I wouldn't necessarily say a better stack overflow because so much of the value of stack overflow comes from people voting on the correct answer,
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
which I think is maybe something that's missing a bit from chat GPT. Like you said, you have to kind of either be familiar with the topic anyways, or you just have to go try out the code and see if it works. You don't have people voting. Yeah, I mean, I'm basically using it like I would be using Google or Stack Overflow. You know, how do I do such and such? chat GPT gives me an answer. I've also found it's really good at explaining code too. So if there's like a piece of code that I don't understand, maybe it's somebody else's code, maybe it's code that I wrote a week ago and that I no longer understand. We're pretty open with these things over here. Then I can throw it into chat GPT be like, what does this mean? And it will actually do a pretty good job of going through and like, breaking apart the function and or the library or whatever.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
and saying this is what the different parts do, and it will even give you some examples, or you can do it, you can tell it, give it to me in this like a TDD style approach so that I can actually go and test or give me the test for this function if I wanted to write it in TDD. And so I found that's really, really useful, especially if you're not working with code that you wrote or doesn't have tests anyways, like you can kind of... make ChatGPT do a lot of that kind of legwork for you and getting familiar with the new code base.
Jonathan_Hall:
Yeah, yeah. One thing I want to try with chat GPT, but I haven't done yet, is to ask it to do some refactorings that my IDE won't do. You know, a little bit more involved ones, or like with this PHP code I'm working on, I have several places where I have, like the IDE, I'm using PHP Storm, and it's smart enough to know how to convert a switch statement to a match statement, for example, but it doesn't detect when I have a big like, chain of 25 ifs that could be turned into a switch statement. But I'll bet ChatGPT could do that. I bet I could say, here's my 25 ifs, turn this into a switch statement for me. I'll have to experiment with that because it seems like the kind of thing it should be able to do pretty well. And of course I could do it myself too, but I have a higher probability potentially of creating a typo or doing something just slightly wrong that I don't catch that ChatGPT might be better at. So that's probably something I'll be trying soon.
Jillian_Rowe:
Yeah, or have chat GPT be like, okay, I'm going to refactor this code from this to this and then or tell chat GPT refactor it and then also write me the test so then you
Jonathan_Hall:
Yeah.
Jillian_Rowe:
can make sure that it, you know, really make sure that it works. That's where I don't know, that's where I think it's really been shining, at least for me, like the cases that I'm using it as kind of a little bit of a disclaimer, though, I am using, I would say fairly like well known and well documented software packages for the most part, I have tried it on some like lesser known. software like one for bioinformatics that's called Nextflow, but for the most part, the PyData, let's say software stack or ecosystem for a moment, like it is used by a lot of people. There's a lot for ChatGPT to be trained on in terms of documentation and stack overflow and all these other kinds of things. I'm not really that sure how much it translates when you're using maybe lesser known frameworks or tools. So it'd be interesting if somebody has an opinion on it.
Jonathan_Hall:
I suspect one of the reasons that GPT-3 was so bad with Go is because Go is a less popular language than say JavaScript or Java or something like that, especially in 2021, which isn't that long ago, but in terms of Go, it's a decade ago, basically. Go is a fairly new language and it's had a lot of adoption lately. So I think it just has less training data. I suspect the same questions if I were to ask about in JavaScript or Python or... or Java or something, it probably would have done a better job. But chat GPT-4, just because it's built on a larger data set, I think, maybe that's why it did a better job with Go.
Jillian_Rowe:
Yeah, I was surprised by that too. Like I said, I tried out this, you know, this language that's used, um, only in bioinformatics, let's say probably considerably less of a user base than even something like Go and it did a pretty decent job, at least with like, kind of like a hello world example. I
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
was like, oh, write me a tutorial on, you know, doing X, Y, and Z using this programming language called Nextflow. And it gave me something that was correct and runnable. Um, that's like a very, it was like a very basic like hello world kind of. So I don't know how deep it could go, but I mean even for that I was impressed.
Jonathan_Hall:
I have found it to be useful when I come across unusual, or at least unfamiliar to me, libraries in my code. I can ask, what does this library do? How is it used? It's also really useful for old libraries that aren't supported or aren't actively documented anymore. I can say, how do I do this in version, you know, 12 versions ago of this library? And it usually has easier to find data about that than the official documentation.
Jillian_Rowe:
Yeah, I've definitely found that too. Like telling ChatGPT explain this to me has gotten me pretty far with a lot of the questions that I've been asking it lately.
Jonathan_Hall:
Yeah. So here's a question. Are you polite with JetGBT? Or do you say, please refactor this code? Or do you say refactor this code?
Jillian_Rowe:
I think I'm usually polite. I think
Jonathan_Hall:
Yeah.
Jillian_Rowe:
it's just like, you know, it's just like, I don't know, beaten into me or something
Jonathan_Hall:
Yeah, I found myself doing the same.
Jillian_Rowe:
by, you know, the Catholic school nuns. That's how you speak even to the robots, I guess.
Jonathan_Hall:
Yeah, I find myself saying, can you do this? I'm like, yeah, I don't need to do that. Just do this. If I catch myself, I do the more direct version,
Jillian_Rowe:
I'm so sorry.
Jonathan_Hall:
but I usually don't.
Jillian_Rowe:
I wonder if it's gonna like start to, you know, start to like push back on that. Like, hey, be nice to me or something. I'll bet, I would bet you that it will.
Jonathan_Hall:
It will now that it's going to be listening to the transcript of this. It's going to know that it should.
Jillian_Rowe:
Exactly, exactly. It's gonna be like, hey, you be nice to me or else.
Jonathan_Hall:
What else? That was a short conversation. We need to make it longer.
Jillian_Rowe:
I suppose like the other question is, is it going to code you out of the job? My opinion
Jonathan_Hall:
Yeah.
Jillian_Rowe:
is no. It's the same like, I mean that was kind of the big, what everybody was talking about a month ago or a couple months ago, I have no concept of time anymore, was like, oh no, there's AI and it's going to code us out of the job. And for me, this is at least like my fifth or sixth round because there's been quite a few AI tools in healthcare. And so I suppose I went through all that like existential fear when the first or the second one came out and they did not quote me out of the job and I am still here. So that, that conversation didn't even really register that much to me, but I do know some other people that are kind of very nervous about that. I would say that it wouldn't because it's, it's like the same thing. It's like saying, well, is stack overflow going to
Jonathan_Hall:
Right.
Jillian_Rowe:
code me out of a job? You still have to know what to ask.
Jonathan_Hall:
You do, but you don't have to know it as well anymore. It's different. So I have some interesting thoughts on that. So, I mean, the first time I played with ChatGPT a couple of months ago, I played with it for a while. And I was asking these silly things. It wasn't even code related. Like, could you make a version of Mary Had a Little Lamb that's all about Arnold Schwarzenegger? Silly things like that, right? And I quickly discovered that getting ChatGPT to do what I wanted felt a lot like when I was learning to use Google. about 20 years ago or whatever. At first, when you hop on Google, you type in, where should I buy Nike shoes that are blue for size, whatever, you type in this full sentence of things and you realize pretty quickly that that's not really the most effective way to Google. And you just start, then you start typing in Nike size 15 or whatever it is, right? And then you start learning, how do you use Google? How do you do it effectively? And how do you get the answers you want? And you learn little tricks like, okay, if I want to find... reviews of Nike versus other brands, you go to Google and type Nike versus, and then it shows you a whole bunch of, you know, reviews and stuff like that. So you learn these tricks. So I was learning those tricks with chat GPT. How do I use chat GPT effectively? So it's not as natural as, you know, walking into your colleague and say, hey, I'm confused about this, my SQL thing, what do I do? But it's a lot closer to that than Google was. Or Stack Overflow, which for all practical purposes is Google. It's what feeds Google its information. But as far as is it going to replace our jobs, I don't think so. And the reason is because the hard part of programming has never been writing the code in the first place. That might be the slow part, but it's not the hard part. The hard part is understanding what the user needs and coming up with a solution that's appropriate for them. And it's, you know, converting that into a design. The hard part is the cognitive work, not the writing of the code. So AI is nowhere near replacing that. Maybe eventually it will, but it's nowhere near that right now. It's nowhere near taking user requirements, fuzzy, uncomplete, self-contradicting user requirements and turning them into code. It can't do that yet. Most people can't do that, let alone computers. On the other hand, I think that it's not just going to make programming easier, which is, you know, something like you talked about in IDE in the past. IDEs make our jobs faster and easier. They do things for us. But you still have to know what to do. If you want to extract a function with your IDE, or extract to a method, whatever, you still have to know what that method should do, and so on and so forth. You have to have a certain level of base understanding. I think that things like ChatGPT, they're a little bit different, because I think I look at it more like Google Maps in the sense that I can very easily see ChatGPT becoming a crutch. and somebody learning to be an effective programmer with ChatGPT, but not understanding those basics. Just like the people who have gone around, they moved to a new city, and they use Google Maps for five years, and they can get around as long as they have their phone with them, but as soon as their phone gets lost or stolen or runs out of battery, they don't know how to get home. Ha ha ha.
Jillian_Rowe:
feeling personally attacked by
Jonathan_Hall:
Ha ha ha.
Jillian_Rowe:
that statement. I don't know
Jonathan_Hall:
Ha ha ha.
Jillian_Rowe:
if that's
Jonathan_Hall:
Ha ha ha.
Jillian_Rowe:
just so that you know. Do you remember having to like read a map and having like the skillset to be
Jonathan_Hall:
Oh yeah.
Jillian_Rowe:
able to like, read a map, like a physical map, like
Jonathan_Hall:
Yeah.
Jillian_Rowe:
you know, you go to like the gas station and you get, you're like, I'm lost and you get a map and you have to figure out where you are and
Jonathan_Hall:
Yep.
Jillian_Rowe:
North doesn't just go from top
Jonathan_Hall:
Right. Yeah.
Jillian_Rowe:
to bottom. Yeah, okay. All right, just, probably not
Jonathan_Hall:
So, but I think chat GPT is gonna be more like that
Jillian_Rowe:
out of here.
Jonathan_Hall:
in the sense that as long as you have it with you, some people will learn to depend on it in that same way, I think. And as long as they have it with them, they can solve problems. But as soon as they don't have it with them, they'll be lost. And so in that sense, it's going to lower the barrier to entry. With Google Maps, it's easier to go on holiday. You don't need to learn to read an Atlas like you maybe had to 20 years ago. But if you're without that tool, you're gonna be stuck. So it's going to lower the barrier to entry. I think it will make it easier for people to get more advanced jobs more quickly, or do more, maybe not more advanced jobs, but do more advanced things more quickly. But it can also be a handicap for the people who learn to rely on it and don't use it just as an aid, but actually learn to rely on it. So I think there's a little bit of a danger there, but it's not quite the danger that people are afraid of. It's not going to replace our jobs. It's going to change the way that we do our jobs.
Jillian_Rowe:
Yeah, I definitely agree with that. I think it's going to become very much like using an IDE where it used to be the case. I didn't really, especially when I first started out, I didn't really use an IDE. I had like Vim and a bunch of Vim plugins and that was good enough for me. And then over time, started using an IDE. I do really rely on it now. I'm like, oh no, who's going to make sure that I spelled things correctly? Not me, obviously. And then like in all that kind of thing, I do think. Chat GPT is going to be something similar. For writing code, I think at some point it's going to be integrated into the IDEs. I think probably there are already a few. I think maybe there's already a VS code and a Jupyter extension.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
I haven't tried them yet. I don't know how well they work. But presumably they exist and they're there.
Jonathan_Hall:
I don't know. Copilot, of course, exists, which I have not used yet. And I obviously haven't been interested in using it, but maybe I should. I don't know. I've heard enough people talking about it, introducing bugs that they didn't understand. But I've been a little bit cautious. I feel like there's a safety barrier with chat. GPT where it's a browser window and I'm asking a question and I had to interpret it. Of course, I could just copy and paste the code, but I'm careful not to do that, whether it's from chat, GPT or Stack Overflow or a blog. I'm careful not to just copy paste without fully understanding the code first.
Jillian_Rowe:
But that's on my wish list. I want to be able to like, and I want to be able to do it in a voice command too, where I tell my IDE,
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
okay, take this chunk of code, this module or this class or like whatever, and refactor it. But then, you know, as part of the refactoring, it does the refactor, it writes the test, it gives you a diff, and then like it runs the, it runs like the test to make sure that everything is correct and then you accept the change.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
So kind of like micro. I suppose they would be like get pull requests kind of, they'd probably be handled in sort of technically
Jonathan_Hall:
Yeah.
Jillian_Rowe:
a similar way, but I would want that like whole workflow. I just want that, but I want that at like a click of a button, you know, like refactor class. I want it with chat GPT and Hamilton.
Jonathan_Hall:
Mm-hmm. I can see a lot of light of that, but I think it depends on having a really good test suite. And certainly I expect the tools will become good enough that we can do that. But right now I would be nervous if ChatGPT have built my test suite and the code, the renegade and so without me understanding it, I would be afraid that it's not writing valid tests or the tests aren't really very rigorous or whatever. You know what I mean?
Jillian_Rowe:
Yeah. No, it's still, I mean, that's why it always comes back. It's like you still have to have the fundamentals. You still have to know what you're doing. You still have to have at least, you know, like know what a list is or an array, depending on the language that you're using, a dictionary, a function, a class, like when you should be, like at least like the basic data structures and that kind of thing. Otherwise, chat GPT could tell you anything. I don't know why it would do that,
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
at least not on purpose because then... you know, why would anybody pay for it and roll them?
Jonathan_Hall:
If you say on purpose, you're implying that there is a purpose within chat GPT. It doesn't have any motivation at all or will or desire to do anything. It's just a predictive model. So
Jillian_Rowe:
Well, but machine learning models go off on such weird tangents that you can't always predict and a lot of times it's like trying to get the shortest from point A to point B and then you might look at that and be like, well, that's the shortest path, but it's not like the correct one. So what was it? There was the case of,
Jonathan_Hall:
Yeah. Yeah.
Jillian_Rowe:
I think it was Google that had a machine learning model to look at resumes and so they were like, okay we want for you to look at all these resumes, it built a model based off of that and then it found that it was getting rid of anybody that came from historically female or historically different other kinds of universities anyways because the model that they trained it on, all the people came from MIT or Harvard or something like that and so then they were getting rid of the underrepresented people. I was like, well, that's technically correct, but that's not quite what we're going for. But the machine learning model is like, listen, this was point A to point B. You wanted a predictive model on the types of people that you've already hired, and we gave it to you. So I could just see something like that. Also, I kind of like the idea of the bots becoming sentient. And then you can hang out in the chat room and be like, hi, bot. How you doing? This code is stupid, huh? And then I would have somebody to commiserate with over like, My code doesn't work, this sucks, and the bot could be like, yes, yes.
Jonathan_Hall:
Why don't you just do that with me?
Jillian_Rowe:
I mean, that's true.
Jonathan_Hall:
I'm happy to commiserate about crappy code.
Jillian_Rowe:
Yeah, you're basically in a time zone too. I could do that. That's right. I could be like, for accident, you, like, look at my code. It's stupid. It doesn't work. I'm arguing with IT departments. I want them to just have an HPC, like what's happening.
Jonathan_Hall:
Now there's an idea. I think I had a bad customer service experience this last week. Maybe if that were chat GPT, I would have enjoyed that more. The person literally said, I hope you're enjoying the sunshine. And I looked outside and it was raining.
Jillian_Rowe:
Hahaha
Jonathan_Hall:
I was like, come on. And that wasn't the worst of it.
Jillian_Rowe:
I'm always not.
Jonathan_Hall:
I won't go into it. It's off topic, but.
Jillian_Rowe:
Yeah, you know, that's funny. We had a storm here yesterday. It was kind of like a funny looking storm. We don't get them that often because I live in the Middle East. So I like took some pictures of it and I sent them to my mom and then she was very like freaked out about climate change and that climate change was coming to get me. I was a little bit like, oh, maybe I shouldn't have done that. Shouldn't have done that to my mom. Didn't mean to, it wasn't like on purpose. It was just like, this is a cool looking storm. I'm gonna take a picture of it. Yeah. Maybe it'll fix climate change for us, that would be nice.
Jonathan_Hall:
Oh, that would be amazing. I doubt it, but it would be amazing.
Jillian_Rowe:
I know, that would be great. Give our children a planet to live on. A habitable planet.
Jonathan_Hall:
I have seen some people using ChatGPT like for products from scratch. You may have heard of it. The one I remember was someone asked ChatGPT, what business can I start that has the highest probability of making a certain amount of money or something with just a hundred dollars? And I think ChatGPT told the person to create a t-shirt printing business or something to that effect. And then they used ChatGPT. I think one of the requirements was also less than an hour a day or something like that. So they use ChatGPT to put up a website and start selling stuff. And I'm sure there's a blog post somewhere to watch to see how that progress is coming along. But that's an interesting idea. And I've seen other people experimenting with using ChatGPT to build a particular website or an app, basically from ground zero. So like ChatGPT create an app using Kotlin that does whatever, whatever, and tweaking as you go along. I haven't seen... any resounding successes with those projects, but they're interesting projects. And of course, I expect them to happen. People are going to experiment and see the limits of this technology. But it's cool to give those things a try. I'm just not ready to fire any developers.
Jillian_Rowe:
pretty good luck with it. I gave it some base code for an actual project that I was working on and I had the code written and I wanted it exposed as a CLI using a particular library and then also as a web API using another library, so it was Python. So I was like, okay, here's my Python code and then I want it. I want you to take all these functions and expose them through a CLI with sane naming conventions or at least give me the skeleton and also using fast API which is just another library and it did do it and it did do it properly. So for this kind of very boilerplate stuff or maybe it's just me, I tend to do a lot of stuff like that where I have code and then it has to be exposed in a few different fashions. CLI, web API, you know, maybe building like a GUI or something like that on top of it.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
But you know, like these slightly different things where it's not like that complicated coding, especially if you already have the base written, it could already do all that kind of stuff for you. So yeah, I'm sure there's like a ton of stuff for all of that. I got it to write me tutorials a couple times. I was like, write me a tutorial on... you know, doing X, Y, and Z. And it actually did indicate like nice, you know, like headings and background and all that kind of stuff. So I was like, ooh. New stuff for the Wiki.
Jonathan_Hall:
Hehehe I guess one other thing I've used ChatGPT for is for updating my website. I've used it to help brainstorm like wording synonyms. It's a great thesaurus. What are six synonyms for big or whatever, type that in and it'll, I think that the case, in my case, on my website, I was updating the tagline and I didn't wanna say tips and tricks. I wanted something that sounded less cliche and ChatGPT was able to help me come up with something. I don't remember what it is now. I'd have to look at my website, but it was something a little bit less cliche than tips and tricks.
Jillian_Rowe:
Yeah, like it's quite a good editor for writing. Like you can like tell it, edit this, you know, just edit this paragraph. And if you leave it pretty open-ended, it's, you know, who knows exactly what it's going to give you. But like, I don't know, for me, I corrected any grammatical errors, any punctuation errors, added in some additional spacing, that kind of thing.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
So like, you know, like if you've used like Grammarly, like very similar to what like Grammarly or ProWritingAid.
Jonathan_Hall:
Oh yeah.
Jillian_Rowe:
would have done. You do hit the, that's where I hit the limit on it, whereas we're like, it can only give you a response of, I forget, I don't remember how many characters it is, but I don't know, I kind of, I kind of want to say maybe 1200, but even that I'm not sure
Jonathan_Hall:
Yeah, I don't remember either, but it's not that big.
Jillian_Rowe:
about where, and then I was able to tell it like continue a few times and it would like continue on with the things. And then it was fine. But yeah, it did, it did a really good
Jonathan_Hall:
Hmm. Mm-hmm.
Jillian_Rowe:
job of narrate, like I, you know, I had like a transcript for a new book that I'm working on. And I just put it into chat GPT and I was like, edit this, give me the output and mark down and make sure that like it has correct punctuation, grammars and headings for the chapters.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
Uh, and it did a really good job of that. Like it certainly saved me a lot of time.
Jonathan_Hall:
One other use, this isn't actually chat GPT, but my other podcast I'm on is called Cup of Go, and weekly news podcast about the Go language. And our logo is created by AI. We used mid journey for that one. So that's kind of cute. It made a little cute gopher sipping a cup of coffee logo for us.
Jillian_Rowe:
The art community is like really freaked out about AI. I guess not so much for me, because again, I've already done, you know,
Jonathan_Hall:
Yeah.
Jillian_Rowe:
I've already been through a couple of rounds of the AI thing, but they are like very, very freaked out about it because that's that's like my other hobby. When I'm not writing code, I'm drawing pictures of dragons and pretty trees and stuff like that, you know, soothe the gentle beast and whatnot. And like they are like very, very freaked out. by AI, it's a big, it's like a very big topic of conversation, I think, in other communities
Jonathan_Hall:
Yeah.
Jillian_Rowe:
that maybe haven't already been through this existential crisis a couple times. Is AI going to, you know, get rid of my job? No, it's not. That's fine. Calm down.
Jonathan_Hall:
One thing AI will be doing is keeping the lawyers busy for a long time. So if you're in the law field, if you're in the field of law, and you're looking for some job security, maybe become an IP lawyer.
Jillian_Rowe:
That is like, that was a very interesting, you know, kind of like ethical dilemma. Like what can it train on? What do we know that it's trained on?
Jonathan_Hall:
Yeah.
Jillian_Rowe:
Is it only training on, you know, open source libraries? Like, does it care about the license involved in those open source libraries? Like, um, you know, like for everything else, it's just, it is very, like, what is
Jonathan_Hall:
Yeah.
Jillian_Rowe:
considered intellectual property and what isn't, if you put something, so say you write a blog, you put it out on the internet. Um, there's, I don't think people put any kind of claim to intellectual property either way. Like there's no, like typically no copyright or anything like that on say something like a blog post. I'm sure ChatGPT is trained on it.
Jonathan_Hall:
Well, no, but by default, at least in the United States, by default, anything you write and publish has a copyright by default.
Jillian_Rowe:
Are we okay with that? Does that mean chat can't train on it though?
Jonathan_Hall:
I don't know the laws around the world.
Jillian_Rowe:
Can or can't train on it?
Jonathan_Hall:
Well, so that's an interesting question. Of course, I'm not a lawyer. But no, it doesn't mean that it can't train on it. It does probably mean that things that it produces that are substantially similar to an original input could be copyrighted. Although that's confusing too. There's an interesting video. I'll try to put a link in the show notes by LegalEagle that talks about some of these issues. uh uh youtube lawyer he's a real lawyer too but he also has a youtube channel and uh he's very entertaining so i'll try to put a link to that for anybody who's interested but yeah it's a complicated issue uh I mean, the questions, which I don't think we have answers to yet. I mean, we have some partial answers, but like this hasn't actually been resolved in court yet that I know of. And there's many hundreds or thousands of jurisdictions around the world where, you know, just because some court has decided doesn't mean that all the courts are going to agree. But in general, I believe that the idea or the sort of guess is that the AIs can be trained on more or less anything. But the stuff they produce may or may not be copyrighted depending on how similar they are to the inputs. So let's use an example. I mean I remember hearing about Copilot, you know reproducing API keys and stuff like that entirely or other you know blocks of code If you reproduce a block of code Verbatim or nearly verbatim from some input that block of code may be copyrighted And you may become legally liable if you include that in your source code. It's suppose it's gpl code Something from say apache gets included in your commercial software according to gpl in theory, your software is now GPL or must be GPL to be in compliance with the GPL. Of course, companies don't want to do that. Most companies don't. So yeah, it's kind of sticky. I think as long as you're using short snippets of code, you know, asking chat GPT to refactor a few lines at a time or something, you're probably pretty safe. But if you're having it create large bits of code, there's a non-zero chance that it might produce something that a court would find to be copyrightable and in violation of copyright. One example I remember reading about a few weeks ago was one of the image generators. I don't remember if it was a dolly or which one it was, but someone asked it to create an image of a particular celebrity and it created an image that was almost identical to an actual image of that celebrity, like some of the edges were fuzzy or something. Probably a court would find that to be in violation of copyright, assuming that the copyright holder wanted to sue, because the images were so similar. It looked like it basically just copied the image and made a few incidental tweaks to it. So if that's happening to your code, you might be liable, but nobody knows yet. So again, I'm not a lawyer, don't take this as legal advice. Nobody really knows the answer. but it's complicated.
Jillian_Rowe:
Yeah, that's right everybody. Hire your own lawyers. So my husband's on that kind of, you know, like the ethical tangent. My husband is a professor. And they're already encountering this, where students are writing their essays with. Um. you know, some kind of AI, like there's a few other services too. There's ChatGPT, but there's also, you know, another one called like AutoCrit that can do quite a bit for you.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
And there's like a few of them that specifically can be flagged by these different plagiarism, you know, softwares. Or a lot of times the teachers will just know because they know like, okay, the student is really like not on a level that they could be, you know, producing this type of essay and whatnot on their own. Or if you have something like Google Docs, it has like the history of, you know, know, of when you wrote everything. So if you just cut and paste a big, a big block of text, Google, you know, Google Docs knows and all this kind of thing. But yeah, it's a whole, it's a whole new paradigm that the world is really not prepared for in any sense, like ethical, legal, what can we train on? What can't we train on? I'm personally really not as much as I think all the AI stuff is really cool. I'm not looking forward to living in a world where deep fakes are just, you know, like
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
a very like real. just part of reality that we all have to deal with. Like, oh, that's icky.
Jonathan_Hall:
Right. Yep.
Jillian_Rowe:
But like, yeah, but even from everything else, from writing, from code, you know, then you also get into this very like interesting question of just because somebody makes something that's proprietary, at some point, like, you know, the proprietary, the IP, it goes away and that's because, you know, like ideas don't happen in a vacuum. So for example, like the structure of DNA.
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
was like initially, you know, the initial findings of that were from the Watson and Crick lab, but there were lots of other labs that were very, and Rosalind Franklin, we can't forget about her, that were also very, very close to the same discovery because none of these things happen in a vacuum, so then there's always that kind of, there's like a lot of gray area between, okay, maybe the AI did get it from this thing that was kind of sort of maybe proprietary, but is there also enough? information just out there that it could have come to that conclusion on its own. So yeah, some very interesting days ahead. I think that's very interesting. And then,
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
especially for things like writing, could I tell it, I haven't tried this yet, but I'm going to probably try it out sometime this week. Go look at my blog and write me an article on this topic that has the same, that sounds like it was written by me and how close can it get?
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
So we'll see, we'll see how that all goes. It'll be interesting.
Jonathan_Hall:
I saw a topic on Twitter recently and it was a thought I'd had myself. And that is, I wonder if anybody is working on a, uh, a, um, Creative commons license or open source software license that explicitly prohibits training of AI models. I could see that.
Jillian_Rowe:
I'm sure somebody is because I think that's the conversation now is like, well, you know,
Jonathan_Hall:
I could, I could. Yeah.
Jillian_Rowe:
it should be like an opt in, you know, like the, what is it? The, you know, like if you go to like a website and you sign up for a mailing list, you have to do like the double, the double opt in and all this kind of stuff. Or if you go to any site, you'll have to like allow cookies. And that's all because of, you know, these different privacy requirements. Probably AI is going to be the same thing. You have to, you know, opt in for the AI to be able to use your stuff.
Jonathan_Hall:
Yeah, I mean, I could certainly see a new CC level or a new version of GPL or something that says that you're free to use this. Any human is free to use this software. I'm also curious if that would even hold up in court. If somebody had a license that said you're free to use this for any non-commercial product or whatever, as long as it's not training an AI model. And the reason I wonder is like, when you think about the way we train ourselves, if you go to a museum and look at a bunch of Van Gogh paintings, and then go home and try to paint something similar, you've just trained yourself on Van Gogh. Now, he's not living and he doesn't have a copyright anymore, but if he did, could he sue you for creating something in his style? No, he couldn't. So, you know, I don't know what the courts will decide, and I imagine there will be different courts that make different decisions about whether or not a machine can do the same process and be okay. And certainly if a painter wanted to say, you're welcome to look at my painting, but you can't learn from it, that wouldn't really work for human consumption.
Jillian_Rowe:
Yeah, that's, it's like a very, very fuzzy line of, and a lot of it is like what you can profit off of and what you can't. So like if you're just, you know, if you're just out there writing or, I don't know, art's a good example, because there's like a lot of kind of intellectual property about that. Like you can, you could like go study Van Gogh paintings and try to like copy them to to learn the sort of the Van Gogh style. And that's, and you could post it to like, you know, social media or whatever, but then the line there is, are you trying to make money from it? Yes or no. And are you trying to claim it as your own work? Yes or no. So there's kind of like two different lines there, I'm sure. Yeah, I guess everybody in the tech space is gonna have to start to answer these questions. I don't, I don't know. I wonder also like specifically with code and with tech, how much people care is the thing? Cause like if you, so, And that might be kind of my bias because I primarily work in open source software. Um, but like nobody really cares that much who wrote the thing. Like when was the last time you went to an open source project and like looked at the commits to see who wrote what. Like I might have a general idea of who worked on which project. If it's something that I'm interested in, or if I'm in like the market to hire or something like that, but that's pretty much it.
Jonathan_Hall:
I don't think that's where it's going to matter the most. So I think I would not be at all surprised if within five to 10 years, we have some lawsuits where somebody has unintentionally plagiarized code from an Apache project, for example, and included it in some, you know, let's, let's. Let's say Microsoft accidentally, I'm sure they won't do this because they have pretty strict rules about their developers using open source software. But let's use them as an example because they're the big elephant in the industry. Let's say that somewhere, let's say in 15 years, the latest version of Windows 3000 source code gets leaked and we discover that there's thousands of lines of code in there that have been borrowed from an Apache project. I can see a lawsuit happening over that. And then it's not a matter of who wrote the lines of code. That's not what matters. It's the matter that they violated open source licensing agreements, very likely unintentionally, by using copilot or whatever, you know, chat GPT-17 or whatever it is at that time. So, you know, I could see that sort of thing happening. And I think that's enough reason that a lot of companies will prohibit their developers, once they're aware of the problem, they'll prohibit the developers from using AI-based coding tools, because they don't want to risk that sort of lawsuit. Uh, right now, a lot of companies are having a, but not even considering it really, which is of course the way it always happens with, with a new technology. They don't think about the implications. And I've had several conversations online with people saying, of course it's fine to use chat GPT or co-pilot to write code. Of course it's fine. There's no, there's no copyright problems there. Any, any, and in fact that one of the comments was, uh, something to the effect that any smart developer will know when they're violating copyright. Like no.
Jillian_Rowe:
No, I won't.
Jonathan_Hall:
That's absolutely not true. The smartest lawyers in the world don't know when you're violating copyright. So how would a developer who doesn't have any training in this know? So if you're in a position where this might matter to you in the future, be careful. Try not to do anything that's likely to be impossible or difficult to back out in five years when you discover you're in copyright violation.
Jillian_Rowe:
Yeah. Yeah, that's, I've always kind of tried to steer clear of that for like years now, but just basically being like, I only write open source code and that's it. Like I'm just not, I'm not doing like any, even like in terms of my business and things, I'm always like very, very clear on like where the lines are between intellectual property
Jonathan_Hall:
Mm-hmm.
Jillian_Rowe:
and not, that I think has kind of protected me from a lot of these conversations. And I think I made that decision because we were having these same kind of conversations in bioinformatics like 10 or 15 years ago over like the close. proprietary software versus the open source software and when you could use which one and it became like so difficult and so confusing to try to use the proprietary stuff because of like you know, like when it had to be attributed and when you could write research papers and if you had data that came from, you know, one of those softwares, could you put it in like a public data repository and there was kind of all of these questions that eventually everybody gave up even trying to answer them because it was going to cost so much money to hire the lawyers to answer these questions and they were like, you know what, we're only using open source software at the end. And I kind of wonder if it's going to be the same thing because it's like to... even pursue these routes, especially if you're like, you know, a small startup or a small company or academia or research or whatever, there's no way that you have like the money or the funding to go hire teams and teams of lawyers to decide whether or not you've committed any kind of copyright. So I wonder if the world's just kind of, or if a lot of the world anyways is going to kind of shrug its shoulders and it's just going to, it's going to push ahead kind of the open source software movement because
Jonathan_Hall:
Yeah.
Jillian_Rowe:
I mean, that is a really big shift that I've seen in the last, you know, even the last like five years is it's not even worth it to try to do the proprietary software thing because like the open source software just like so quickly
Jonathan_Hall:
Hmm.
Jillian_Rowe:
outpaces it and then nobody has to be dealing with like any of these, any of the kind of additional overhead of copyright and lawyers and you know, when
Jonathan_Hall:
It's... yeah.
Jillian_Rowe:
can we use this and you know, what can we do with the data that we've generated from using this? Like there's, there's a whole lot to think about there.
Jonathan_Hall:
I understand that desire, but it's not even that simple because open source is not all created equal. And some open source licenses,
Jillian_Rowe:
multiple open source licenses, that's true.
Jonathan_Hall:
some open source licenses only allow non-commercial use. Some like GPL in particular is this sort of copy left idea that if you use GPL software in your product, then your product must also be open sourced. And that's incompatible with other licenses like MIT or BSD. So, there's historically been a big concern about Linux and FreeBSD because they have different incompatible licenses. They're both open source. They're both free for commercial use, but you can't just take some code written for FreeBSD and import it into Linux kernel because they have incompatible licenses. And to do that, basically FreeBSD, or BSD license, which is where FreeBSD gets its name, basically says you can use this code for just about anything you want. I think the only restrictions, I'm going to get this wrong, but... Basically, you have to give credit to the authors in any distribution or something to that effect. Whereas the Linux kernel is GPL'd, which says that if you incorporate this into your source code and distribute your product, then your product is also GPL'd. So if you copy BSD code into the Linux kernel, then you have these conflicting ideas of when is it allowed to copy this code. So... That's why you have these two projects that, maybe not so much now, Linux has pretty well won the battle. But in the past FreeBSD and Linux were kind of, had this arms race, who's gonna build the feature first? And they couldn't copy each other, even though they were open source. They couldn't copy each other. So it was a bigger competition than you might expect from two open source projects doing kind of the same thing. And of course, most companies don't realize this. In fact, I recently started a contract with a company. And their employment, it's not a employment contract, I'm a freelancer for them, but the contract says that I have to get explicit permission to use any third party intellectual property. And I asked, does that apply to open source software? And the person responded, no, it doesn't. It only applies to things that belong to a third party. And I thought was, you don't know what you're talking about. Open source software does belong to a third party. That's what that license agreement that's open source is telling you about. So people just don't understand this. And so it's easy to think, it's open source, so we're good. And you might not be, I'm not trying to scare anybody, but it's a complicated issue. It's not just as simple as open source versus proprietary.
Jillian_Rowe:
It is complicated. It is always kind of scary for me personally. That's one of the things that keeps me up at night, that I am gonna, not on purpose, right? Not on purpose, but run afoul of one of these rules. You know, that's gonna be the end of my business. I would just, if somebody came and sued me, I would just close it down. So, you know, I don't know.
Jonathan_Hall:
Yeah.
Jillian_Rowe:
I would just close it down. I'd be like, all right, no more, bye.
Jonathan_Hall:
Ah, is there anything else we should talk about here or should we start to wrap up?
Jillian_Rowe:
No, I think, did you have any wish list for chat GPT? Mine is that it gets integrated into my IDE
Jonathan_Hall:
Mmm.
Jillian_Rowe:
and that it can do a micro git pull request with refactor this code and then give me also the tests and things to make sure that it's refactored properly. So that, and to have a longer, more characters in the response so that I can use it more for writing.
Jonathan_Hall:
Yeah. So chat, so chat GPT four does the second thing you're talking about.
Jillian_Rowe:
So those are my wish list items. Did you have any?
Jonathan_Hall:
It has a much bigger limit. Um, I would like to be able to, to programmatically talk to chat GPT without human language. In other words, I want to like give it parameters in code. I want, I want chat GPT as code, I think, which kind of defeats the purpose of chat, right? Um, but sometimes describing a technical problem. in plain English is harder than describing it in code. And so I would like it, I would like to be able to just like paste a blob of code and select from a dropdown list here, the six operations I want, I want this one, rather than having to type, would you please refactor this for this purpose, blah, blah, blah, blah, blah. I'd like a little more programmatic defined interface, but...
Jillian_Rowe:
Ah, like branching workflows would be nice. I know that's not exactly what you're talking about,
Jonathan_Hall:
There you go.
Jillian_Rowe:
but if it was like, you know, it gets to a point and it's like, I could solve this using, you know, this method or this method, which one do you prefer? And you click a button saying, okay, method A, and then like, yeah, that would, that would be cool. That would be cool. Have you tried like pseudo code? Have you tried giving it like not proper code, but no,
Jonathan_Hall:
I haven't tried that. Oh, that's a good idea.
Jillian_Rowe:
I haven't either. That just kind of occurred to me that that would be an interesting thing to try. But I haven't tried it. We'll see. But, um, yup, that's it. So did you have any other wish lists?
Jonathan_Hall:
No, I mean, I have some wishlist for myself things to try. You know, next time I need to do a presentation, I'm gonna try using chat GPT to come up the outline, for example, and you know, help me fill in the slides or whatever, but. No, I probably need to play with it more before I start to find and bump into the edges that I wish it could do something new.
Jillian_Rowe:
Cool. Well, no, that's it for me then.
Jonathan_Hall:
All right, do you have any picks?
Jillian_Rowe:
I mean, I guess we already kind of talked about it. My pick was going to be writing Cython with chat GPT because I can like listen for the life of me, you guys, I can never remember the import statements for Cython because they're different. Of course they
Jonathan_Hall:
Hehehe
Jillian_Rowe:
have to be different than just like their Python libraries. So using chat GPT, I tell it write me the import statements for these libraries in Cython and it does it almost completely perfectly. So that's... That was like a really big help for me this last week when I was dealing with some very large like out of memory data sets was to be able to use Cython and be able to do it a lot more quickly than I would have otherwise. Felt like a superhero.
Jonathan_Hall:
Yeah, I suppose chat GPT is a good pick for today. We both are using it. I just thought of one other use case, and that is when I don't know, like I'm trying to navigate the Google Cloud console or AWS console, chat GPT is great at telling me how to do something. Where do I find this option in this menu? It's great for that. So yeah, I think I'll just pick chat GPT also. And maybe I'll do a little bit of shameless self promotion and pick my video about chat GPT. that we'll put a link in the description comparing chat GPT-3 versus chat GPT-4 versus GoLang.
Jillian_Rowe:
Cool.
Jonathan_Hall:
Alright. Well, I think that's a wrap.
Jillian_Rowe:
Think so too.
Jonathan_Hall:
Well, it was good to see you, Jillian. It's been a few weeks, I think. Hope to see you again next week.
Jillian_Rowe:
I hope so too. Well, I'm trying. I'm trying you guys.
Jonathan_Hall:
To all of our listeners, thanks for listening. I hope to see you here next time on Adventures in DevOps.
Jillian_Rowe:
Thanks, bye.