DataTopics Unplugged
Welcome to the cozy corner of the tech world where ones and zeros mingle with casual chit-chat. Datatopics Unplugged is your go-to spot for relaxed discussions around tech, news, data, and society.
Dive into conversations that should flow as smoothly as your morning coffee (but don't), where industry insights meet laid-back banter. Whether you're a data aficionado or just someone curious about the digital age, pull up a chair, relax, and let's get into the heart of data, unplugged style!
DataTopics Unplugged
#38 Open Source AI, SQL Dialects, and New Terminals
Welcome to the cozy corner of the tech world where ones and zeros mingle with casual chit-chat. Datatopics Unplugged is your go-to spot for relaxed discussions around tech, news, data, and society.
Dive into conversations that should flow as smoothly as your morning coffee (but don't), where industry insights meet laid-back banter. Whether you're a data aficionado or just someone curious about the digital age, pull up a chair, relax, and let's get into the heart of data, unplugged style!
In episode #38, "Open Source AI, SQL Dialects, and New Terminals," we've taken a slight detour from our usual live format to bring you an exceptionally pre-recorded session, packed with the same insightful discussions and a touch of geeky humor.
- Tested Midjourney Alpha UI: A first look at the new user interface. Midjourney Alpha UI
- When should you give up on a project that doesn't work?: Exploring the fine line between persistence and practicality. When to give up
- The Open Source AI Definition – draft v. 0.0.5: Navigating the evolving landscape of open-source AI. Open Source AI Definition
- Ghostty: Delving into the latest development logs. Ghostty Devlog
- SQL standards are like toothbrushes: Discussing the universal challenge of SQL dialects adoption. SQL standards
- Mojo vs. Rust: Comparing performance, Pythonic syntax, and the learning curve. Mojo vs. Rust
Remember, this episode was not broadcasted live but was exceptionally pre-recorded to maintain our tradition of bringing you the most engaging and relevant tech discussions.
Intro music courtesy of fesliyanstudios.com
Hello, hello and welcome to Data Topics Unplugged, your casual corner of the web where we discuss what's new in data, from UIs to giving up anything goes. We're not live on LinkedIn today, nor YouTube, and today is Wednesday, which deviates a bit from our regular schedule, and I must say it's my fault.
Speaker 2:But this recording will be released on Friday, the Monday. No, we should not have this discussion. The video recording will be released Friday, the 23rd. Yes, the audio recording on podcast platforms of your choice will be released on the afternoon, because Merillo is not available next week.
Speaker 1:That is true, I'm not available. I will be in the slopes of Romania skiing, and also a friend of my partner's wedding.
Speaker 2:Cool. Yes, is skiing a thing in Romania?
Speaker 1:Yeah, yeah, they have nice slopes as well. It's very cheap as well, Okay. So yeah, looking forward to it as a when I'm on the snow. I'm very Brazilian, you know what does it mean? It means that I'm.
Speaker 2:I don't know what I'm doing, but I'm there you know, I'm vibing, you know you get down and back up again.
Speaker 1:Yes, yes, that's it. That's life. You know, we never give up. That's it, that's it. So, yeah, it's going to be fun, but we didn't want to leave the people waiting. You know people want more, they can't get enough or thousands of followers, thousands, millions, you know, trillions. So we decided to record this one here. We're also going to have our regular livestream on Friday, but yeah, so maybe we don't have guests today as well, so this is a bit of a impromptu kind of thing. So it's just me and Bart, yay, and today's Valentine's Day.
Speaker 2:Oh, I actually prepared something for this For the next hour. We do this with with to the soundtrack of this.
Speaker 1:Okay.
Speaker 2:Okay, how was your week?
Speaker 1:It was good, bart. How was yours? It's better now. All right, Any plans? No, maybe sensitive topic.
Speaker 2:No, I don't really have any plans. No, nothing, nothing specific. Played a bit around with yesterday, yesterday with yesterday evening. Played a bit around with the hobby project I'm doing.
Speaker 1:What hobby project?
Speaker 2:It has to do a combination of. It's basically a p five j s based thing, interactive visualization based thing that at some point I would like to create. And had a few hours last yesterday evening and I started looking into it. Problem that I have with these things is when I do these things for for a funnel hobby, things that I try to be to search a bit for more, let's say smaller, languages to play around on these type of things like, smaller like, but more exotic packages to try out, a bit more niche yeah.
Speaker 2:And the problem is that, even though I think for the whole projects I needed three hours, and I spent two hours of that in searching for something that I could use, and with Nim, which is actually quite a nice language. But the problem then also, like you see you see also is a nice language name. I think it's hyped a few years ago actually not anymore but when you get into these more small of things like, you also see that the ecosystems much less maintained. So I used, for example, I need a minor back end for whatever I'm doing, that's, who doesn't name easy to make them like. A web back end is easy to make in every language.
Speaker 2:Okay, yeah, and so I used the biggest web framework for Nim, which I think is called HTTB, and I don't know anything about the name community. So I go by, go get the stars right and I set everything up, got my NIMM and pharma going, my VS code extensions, and then I got this weird memory error when I run my web server. And then you start looking into it and this is the biggest web framework. Yeah, and then you see, oh, this is a book. Indeed, this is a known book. It's been open for X amount of months, the.
Speaker 2:It's been noticed by other people that's used as well, but the original creator is not really doing anything else Nice, and then you immediately see like a lot about the challenge of a small community is.
Speaker 1:Yeah, indeed, but I think, yeah, I know what you're saying and what is the? So it's P5,. You said it's P5?.
Speaker 2:P5.js is not NIMM based. It's JS based, javascript based, it's frontend and it's basically a framework to allow you to do interactive stuff on a canvas.
Speaker 1:Yes, I think I've seen there's a YouTuber actually really nice the coding train that uses quite a lot of that. Yeah, it's really cool.
Speaker 2:It's really cool for instructive purposes. But I'd like to insert to explain concepts, but also you can go very far with cool visualizations, and what are you trying to do in terms of visualization?
Speaker 1:Or is it a secret? How are you going to avail it later?
Speaker 2:No, it's not a secret, but I have to do it. If I say this now, there's also creation. That I the expectation that it creates is at some point, that's true, but come back next week, and then we'll see. But what I would like to do is a bit what Reddit actually does. Okay, reddit has a yearly thing where you can basically leave your pixel.
Speaker 1:Yes, you know what.
Speaker 2:I mean, yeah, not sure how it's called, I know what you're saying. So you can basically say, like you can go to a website and you can choose color, and you can. You can see, you see a huge grid and you select the color and the cell within the grid that you want to give that color and potentially the cell already has given got a color from another user and more or less I'm going to make an alternative version of that and it's actually why I'm thinking is interesting is because you have this aspect where you have a very huge playing field and you still want to render this in an efficient way, but it's also actually when you think about the implementation.
Speaker 2:you can do this in a very simple, elegant way. That's also what I like. It's a bit thinking about, like how to do this in a like it's big but it's very elegant and easy to implement. Okay.
Speaker 1:And you said three hours. You can probably wrap it all up. I think so.
Speaker 2:For this like well, if you would do it in languages that you're used to.
Speaker 1:Okay, Okay Cool. So you're here. If you heard it first, you know in two weeks will be a topic for sure. How do you come up with these projects?
Speaker 2:actually like you just uh, typically is when my wife and kids are not at home, which was the case yesterday evening, and I think, oh, I have what I'm going to do and this is something that has been in my back of my mind, one of the things that has been in the back of my mind for a long time.
Speaker 1:Okay, let's do this Cool.
Speaker 2:Okay, nice, nice Should not have gone number out, but there, we have it, you know you have it.
Speaker 1:Yeah, it has to be fun as well. Right Another thing I know you've been trying is a mid journey.
Speaker 2:Oh yeah, yeah, that's true, right, what is mid journey? Mid journey is one of the big players, I think I think it's fair to say in the gen AI image generation.
Speaker 1:Yes, I agree. Actually, I think it's arguably it's better than what said. What open AI has right the Dolly.
Speaker 2:Dolly tree. I mean, I think it was not a discussion point when there was a Dolly to mid journey, because it's a clear way better.
Speaker 1:Me journey was a.
Speaker 2:V five then, was it? Yeah, I think it's also V five. Then it's now at V six. Maybe I'm messing up and I think it's at V six now. Dolly tree was a big improvement over Dolly to, so I think you can find people that will say today that Dolly tree is better than mid journey.
Speaker 1:You're not one of those people.
Speaker 2:No, those people are wrong, but you can find them these days.
Speaker 1:You can find crazy people everywhere. So, yeah, we're all free to do so. Okay, cool. So what about it? What did you show? You've been using me journey for some time. You even mentioned the versions, right. So what we're trying these days. What is new about mid journey?
Speaker 2:What is new about my journey? What is new You're, you're, you're okay. I'm already there. I was thinking about what is new on V six, but you're hinting towards the UI, right? Yes, yeah, yeah, I got.
Speaker 1:I'll set you up there.
Speaker 2:But there's actually something new in V six, and V six doesn't hasn't existed for so long I think I want to say beginning of December, something like that when V six is much more natural language based. So you just type out what you would like to see versus before. You really had to think about like this is these are the type of words that I use to to optimize the outcome. But what is also new is that there is mid journey now has a UI, which is weird to say that mid journey now has a UI, because you would expect it to have a UI but it doesn't have. Mid journey is discord based Discord for the people that don't know. It is a platform, the conversation is platform and mid journey is a bot on there.
Speaker 1:So you can kind of think of slack Microsoft teams you familiar with that.
Speaker 2:It's like you can see the cool kids. Yeah, yeah, I think it's fair to say it. And well, you can use the mid-journey bot error by saying, for example, slash, imagine, and then you write your prompt. And then it gives you back an image like these type of things and now it has a UI. It actually had an UI, since this also, I think, want to say beginning of December.
Speaker 1:Yeah, V6 was released December 21st. Ok, later on.
Speaker 2:The alpha More recent. Wait, you're talking about V6 or the alpha UI, v6. Ok, alpha.
Speaker 1:UI.
Speaker 2:I don't know. I want to say December as well, but only to the Cool Kids Club.
Speaker 1:Ah, ok, and you're one of those.
Speaker 2:No, no, I was not. So the Cool Kids. I think at that point the definition was more than 10k images generated.
Speaker 1:OK, I was not Now.
Speaker 2:I have kids in fact, sometimes yeah, but now two weeks ago they gave access to the almost-as-cool kids and that's the 1k club People that generate the more than 1k.
Speaker 1:Yeah, that's me. Oh, you're almost-cool kid.
Speaker 2:I'm almost-cool kid. Ok, what's your name actually for that? Um, so I got access to the UI and I've been using it a lot for the last week. Ok, and it works really nicely.
Speaker 1:You want to put the announcement on the video.
Speaker 2:Yeah, I'm going to do this. I'm going to do this. Voila, there it is.
Speaker 1:Thank you yeah. So maybe do you feel like, do you feel like there was a need for UI?
Speaker 2:There was, yeah, it was. There was, yeah. So workflow-wise, the UI is really an improvement of the Discord bot.
Speaker 1:OK.
Speaker 2:Just.
Speaker 1:But it's like what do you get from the UI? Because I see here some tabs.
Speaker 2:I mean just a cut picture right, like with the, so it almost does everything you can do in the Discord bot Not everything, or maybe I haven't looked. So in Discord you also have a command that is slash describe, so you can then drop in an existing image and it will give you a prompt for that existing image to reproduce that which is very handy to reproduce a certain style.
Speaker 1:What if you give an image that is not AI generated?
Speaker 2:No, you can, it would just give you a prompt to create it. Maybe we can drop in an image of Marillo later I would be like Asian-Brazilian.
Speaker 2:So that is not an UI yet, but all the rest seems to be there. So you can drop in your prompt, like you see in the bar that says Imagine. You can drop in your prompt Because generated you can click on one of the generated variations, you can do an upscale, you can do variations on that. So it really works nicely. And so what I, for example, typically do is that I generate something and then I slightly tweak my prompt and that is much easier to do like just copy paste text in the UI, than having also to add the Imagine command before and to do this type of thing?
Speaker 1:Do you have a private channel with the bot or is it with other people?
Speaker 2:Well, you can choose, but I only do a direct conversation with the bot.
Speaker 1:Yeah, yeah, I think when I try the first time, it's like I get social anxiety, because I think when you got it it's like oh yeah, you get this amount of images for free, but you have to go in this channel and then you see everyone putting images and I don't know what I wanted to do, but I was like man. These descriptions sound so weird and I feel like people are going to judge me for like.
Speaker 2:I'm not wondering what kind of images.
Speaker 1:I don't even know. I think I was trying to get a logo for a project and it's like robots know this, this, this. And I was like cute, well, you know. And it's like ah man.
Speaker 2:Immediately go for the cute robots.
Speaker 1:Exactly, and I was like, oh man, people are going to be judging me, but like People were going to be like.
Speaker 2:I'm not one of those.
Speaker 1:Yeah, yeah, I was like oh man, look at this guy.
Speaker 2:So all three of you are happy with it, wondering how it will evolve. Cool to see, cool. And I think it will be more accessible to a bigger audience.
Speaker 1:Yeah, I think so too.
Speaker 2:And I think what has to do with it, that where they potentially I'm not sure that they actually would potentially spend this up, is that I think at some point they need to get away from this court. So today, this court is also their file storage, so all images are actually being generated on this score, the discord so, which is a huge amount and discord used to, and still you can drop in whatever files you want and it's for free. They don't charge you for it.
Speaker 1:Oh really.
Speaker 2:So it's free storage for them and what this court actually I think they still do it, but they announce a stop date. So they give you a link to that image that is stored on discord, a fixed link that will work for always. So people can basically use discord as a sort of S3. For free, which is really nice. But I want to say, four to six-ish months ago, discord announced that they will stop doing that. So what you will get when you get, if you want a link to something stored on discord, you will get a temporary link that will expire.
Speaker 2:So I think, at some point the journey will need to move away from discord. So, maybe this is also a conscious attempt to start doing that first by the UI.
Speaker 1:Yeah, I see here the indeed public service announcement on Reddit. This course at the end links will become temporary by end of year. Huh, interesting, Three months ago. Three months ago, but end of 2024, I guess.
Speaker 2:I don't know exactly, because it's three months ago.
Speaker 1:But in any case, in discord it's not open source. You don't host your own, then it's just like.
Speaker 2:No, you don't host your own.
Speaker 1:You just create the bots and stuff.
Speaker 2:Create a server which is basically homework space.
Speaker 1:OK, ok, cool, Cool, cool, cool. Interesting as well, indeed, for the back end, I guess, like it makes an impact for them and is mid-journey open source.
Speaker 2:I don't think so no.
Speaker 1:No right.
Speaker 2:No, quite sure, actually. No, it's not open source.
Speaker 1:But they don't make a. Well, yeah, I guess they make noise, but not as much noise as open AI. Right, Maybe for us, I don't know how much to ever? Joe.
Speaker 2:Well, I think mid-journey is very much on this visual part of Gen AI.
Speaker 1:But do you think it's, as known as chat GPT, or maybe just because there's not as many use cases, you think?
Speaker 2:It's probably no, I think it's less known. Like it needs to be a little bit more technical, I think.
Speaker 1:Because I'm also wondering, like I'm thinking of training data, right, and usually when you think of lawsuits and like, oh, someone, because they train on public data or this and this, usually you think of open AI, right, you don't hear mid-journey, but they could right.
Speaker 2:Well, mid-journey is actually actually with v6, it seems that they are. So they use copyrighted data. That's very clear, and it seems that they over train on it. So I can ask for give me a landscape of where there is Bart Simpson on our skateboard, and there will be exactly Bart Simpson. I see Like it's very hard to say in that case like yeah, but they don't get as much heat right for like using copyrighted images. I'd say not yet.
Speaker 1:Not yet True. And this open source AI, is it a big deal, Bart?
Speaker 2:Well, the question, I think, is what is open source AI?
Speaker 1:Indeed, it is. So, maybe, what is open source in general? Right? What would you? Because there is a definition of open source, right? There's like different licenses and I know, if you get a bit closer to it, there are nuances to it.
Speaker 2:That's a good question.
Speaker 1:What is open source in general?
Speaker 2:And we should probably have a look at the exact definitions then. But let's maybe focus on why we're discussing this here. So there is a discussion going on at the open source initiative, opensourceorg, which is an organization that more or less, I want to say, set some standards on what is open source. How does open source, can open source, be governed? On these type of things? There's a lot of working groups on this as well, and they are trying to come up with a definition of open source.
Speaker 2:AI which is, I think, very much, or to very least in part, triggers by things like Lama Lama by Meta, is something that is where the source is available, the weights are available, basically condoned model, but you can't just use it. There are limitations to the usage. Something very similar, I think, is Falcon, which is from the UAE, somewhere which has similar usage constraints, Like it's a bit positioned by both of them as we have open sourced our large language model which is clearly what Meta is trying to do in terms of positioning.
Speaker 2:I think with the Falcon model they're doing the same, but it's a bit contradictory with what open sources typically viewed Like. There are specific scenarios where you cannot use it, even if you would align to the terms.
Speaker 1:Yeah, because I think even the I know that some of the discussion is like you can use this as long as you're not a competitor of Meta. But it's like what does it mean to be a competitor If you're doing something that, like, if you're building a tool that is paid, that is meant to help you use Lama, it doesn't mean you're a competitor. Now, like, it gets a bit. And I think the added challenge of AI is that you don't have just the software, right, you also have the weights, which you can only create and reproduce based on the data that it was used, right, so there's another dimension to it.
Speaker 2:Yeah, and I think if we look at traditional open source licenses, this aspect was never really taken into account that you have your source code, but you also have these tangible assets, which is a trained model which takes a huge amount of resources in terms of compute but also takes a huge amount of data, and both are not freely available. And the compute is not freely available and the data is typically not freely available, not always there.
Speaker 2:We see some examples coming up now, and what the open source initiative did is that they have a number of working groups and they're basically working on a guideline on what is open source AI.
Speaker 1:OK, and what is open source AI?
Speaker 2:So there is no definition yet, right? This is a draft. It's currently at v0.0.5.
Speaker 1:Is this following Semvr I think so.
Speaker 2:yeah, so it's still very early days, but they do have a roadmap but it's interesting to look at. We'll link it in the show notes.
Speaker 1:And if it's Semvr usually, well, I'm getting very geeky here, I feel, but like the 0.1, that's when you can expect not breaking changes or at least like from the one point something right.
Speaker 2:No.
Speaker 1:It's like not official. I guess I feel like that's the vibe I get If it's something 0.0.0, whatever, it's not like official. That's the feeling I have as well. Yeah, Again, something we should maybe think Maybe we should have brought it up. But there we go, yeah, but like the current version 0.0.5,.
Speaker 2:I'm like this to me, not knowing anything about the working groups, etc. It's like, yeah, there were a few people, there were a few free hours.
Speaker 1:Yeah, they did something. Some people were like, yeah, we should put something on the website.
Speaker 2:Yeah, it's kind of didn't 0.1, at least. Yeah, there's a concrete idea about it.
Speaker 1:We had a meeting, we're all OK, yeah yeah 0.1,.
Speaker 2:OK, but they do have a very high level definition and also what is out of scope and it's also interesting, I think. So what is out of scope for them? They don't want to say how to develop or deploy an AI system that's ethical, trustworthy or responsible.
Speaker 1:OK.
Speaker 2:So that's really something that they say like. That is not the scope of what we're trying to do. We're trying to define what is open source and not what is ethical or not.
Speaker 1:Yeah, that's actually a very good distinction. Yeah, Because usually I think people discuss both things together.
Speaker 2:Yeah, yeah, it's hard to entangle them and they have some very high level definition of what is open source AI. So it says that an AI system needs to be available under legal terms. They grant the freedoms to use it, to study it, to modify it and to share it.
Speaker 1:So there's like a blanket four pillars, high level.
Speaker 2:And of course those are limited to how you can do it and what shape and form by the actual license, but those four pillars using, studying, modifying and sharing are defined as key.
Speaker 1:And is this different from regular software?
Speaker 2:I don't think, from regular open source licenses. No, I don't think so.
Speaker 1:OK, so there's just, in a way, is an extension of like kind of saying these four things that we expect on regular open source, we also expect on this, regardless if you have training data, if you have weights, if you have anything, ok, that's good.
Speaker 2:And so just for the first one. So use the system for any purpose and without having to ask for permission. Today you only can get Lama if you. It's very simple. It's very simple procedure. But you have to ask, you have to send in a form and then you can download it.
Speaker 1:So that's already not open source, but this is the definition.
Speaker 2:Which, without having to ask for permission. In this case you need to ask for permission and you can debate like is this asking for permission or is it just a procedure?
Speaker 1:But like these type of things. Yeah, indeed indeed.
Speaker 2:So interesting to see how this will evolve.
Speaker 1:And maybe one last question why should anyone really be looking out for this? You know me as a machine learning engineer. Why do I care if someone comes up to the definition, and what should it look like? Why should I follow this up once it's in version 1.0.0?
Speaker 2:That's very in-depth discussion. Why should we care about open source? That's a difficult one, so I think, why should we? I'm not going to go into that. Why should we care about open source? I think open source is important. Why we should maybe care about this specifically, what is open source? Ai is because we are in a technical community where today, for a lot of reasons, you can debate about the goods and the best. Open source is valued a lot, right, and what we see is that open source as such because it's being valued a lot and embraced is also being used as a marketing tool. Yeah, and not always for things that are actually open source, because that definition is today very vague. Yeah, especially when it comes to these AI-based source code artifacts, these type of things. And I think, in that sense, we need to care, because there needs to be transparency, like is this actually open source and, if not, what are the limiting factors?
Speaker 1:Yeah, no, I completely agree. I think this is a bit of a free-for-all. For the AI part, I feel like there's not a lot of, I mean for traditional code and code software. There has been more stuff, so I think it's more strict. Let's say, before AI is like yeah, it's open source, but the wait's not available. And then OK, but then it is a really open source.
Speaker 2:Exactly.
Speaker 1:So yeah, indeed, and, like you said, a lot of people can see stuff as open source. I know there's some people that say this is source open, meaning that it's available, but you cannot contribute to it, right?
Speaker 2:You cannot open source.
Speaker 1:That's not source open. Yeah, I did right. Source available, source available, indeed. And then now, lately, with the open tofu stuff, there's the business license and there's this Like it's way more tricky, right, I feel like, and that's, to me, is an example of when you have an ideal but then in practice it gets muddier. You know it's like is this it, is this not? Is this considered? Should it be OK to be let it? But yeah, and I also think it's something that has a big impact, but, realistically, developers don't follow. I mean, how many licenses do you check all the license of your projects? Like always, always, everything, even the dependencies.
Speaker 2:Of the dependencies.
Speaker 1:No, because I'm thinking like NPM packages and all these things. Right, there's so many and even if you were to check the ones that you have, the dependencies of the dependencies, you know are they accounted for. You know if you have one dependency way down the line, you know like I feel like it's, it can get tricky, like if someone forgot to put a license on the project.
Speaker 2:Sure yeah. You know, but I still, because today a lot is open source. I think we don't. We typically also don't think about the huge amount of higher creates, like take the example that I was in the beginning of the show. I was talking about NIM, http, each HTTP beast library that if the feeling is not being well maintained, there is a fork of that, httpx, which is well, which is much more maintained.
Speaker 2:I'm saying things now, my limited experience, just but, this is only possible because they are able to inspect it, to modify it, to share it. That is the only reason why there is a fork that is now maintained and we all think, yeah, this is open source, let's just use it. But this is only there because it's open source, like this if, tomorrow, lama is not being maintained anymore, no one is allowed to just take a change it or not even capable, because the data is not shared.
Speaker 1:Right yeah.
Speaker 2:So I think it's because open source is so big and so abundant, we take it for granted a bit.
Speaker 1:Yeah, I do think so. I think I had. Well, I talked to Tangolo, the Sebastian Ramirez, the guy from Fast API, and I talked to him about how people sometimes expect him to do things super fast, like to merge all these things, a lot of the. I remember saw something on Reddit that someone was complaining that the guy from Fast API he doesn't put an organization, he wants to kind of gatekeep everything. There's so many open pool requests and he was really complaining and that's the first thing to talk to him and he's a super nice guy. He was like, yeah, sometimes he's not nice and this and this A lot of the pool requests are actually translations of the documentation and he doesn't speak the language right, so he's just waiting for people to confirm really community based right.
Speaker 1:But yeah, I do think that sometimes people take it for granted, they assume it's there. They also like it's an assumption that needs to be met, right, so they start demanding it, which I think it's a bit counterproductive as well for the whole ecosystem, right, and sometimes you just give up art, you know, trying, trying, trying. He's like you do.
Speaker 1:I don't, because I'm Brazilian and there is that we have a saying it's like so I'm Brazilian, I never give up. But sometimes you should give up, I feel. Have you ever given up on a project? Maybe this NIM experience? I don't know what's the For now it's been given up on. Yeah, for now it's been given up on. But sometimes I wonder about this myself. I mean, usually when I start something, I really make a point to finish it, to deliver something right.
Speaker 1:But sometimes it doesn't happen and I've granted an article that says when should you give up on a project that doesn't work, and it caught my attention. So just to go very quickly through the article, right, he basically it's a developer like he's doing this for fun, just like you and me. He's a.
Speaker 2:This is important, so it's fun projects.
Speaker 1:Yes, fun projects, yes, yes, yes. So I think the project itself. It's not super relevant for the discussion here, but I think he wanted something to link to Wikipedia articles that you could kind of see locations Like. So basically, based on the location, you can see the Wikipedia articles related to it, and it'll be a fun way to discover new articles or stuff about your neighborhood. That's kind of how I feel. So the idea is to use OpenStreamApps and the Wikipedia API to kind of do these things. So he was passionate about it. He started to make progress, which was great, and then he started changing the UI, which was also nice. You know, he started to feel like there's some progress. There were some issues, like with the actual functionalities of the app, right, like with the like some things wouldn't work or sometimes things would be too slow, and then, according to him, he started having excuses, right. So he started having issues and he started to travel around, and then he said that at the time he said, oh, I just won't be too hard on myself because I'm busy.
Speaker 2:And it's a hobby project. Yeah, exactly.
Speaker 1:But then he was also saying that in hindsight, this is where the lack of motivation started kicking. And he was also saying like was I subconsciously afraid that it wasn't going to work out the way that I thought it would? So it's like kind of kicking. Actually, do you ever I didn't relate to this much? I never like I don't know. I mean I have excuses that kick in. I have an excuse, yeah, but it's never like I'm afraid that it won't work. But in any case, no, maybe I'm.
Speaker 2:Maybe I should sometimes think about it.
Speaker 1:But I think then he started talks about fake productivity, which I think that is something that can very relate a lot, which, according to him, is like making changes that makes you look like you're making progress oh yeah, but you're not really making progress. So, for example, he has a UI, so changing the colors of the UI, picking the right fonts I noticed that very much and I think the idea is like and I've been there for sure it's like I don't know.
Speaker 2:Project 40, 40 percent for me is like switching fonts.
Speaker 1:It's fake productivity according to him, not me.
Speaker 2:I think it's crucial.
Speaker 1:Everything else right, like reading, you read way faster, you type way faster when you have the right type of. That's the thing, this thing. But I had that for sure. Like when I started, I don't know, I was trying to build the simple website or whatever, and then I started to have issues with the framework and then I started I switched to changing the CSS colors. So no, this doesn't work. Yeah, so I definitely relate to that. Not sure I have a guard, real, for this. I feel like sometimes it still happens. I guess now I just try to be mindful of it. I feel, actually, you're pretty good at not letting those small stuff hinder your progress.
Speaker 2:Depends, depends, but fake productivity actually have a tip. Oh, you have a tip I have a tip If you want to look productive. So that's passing by. So apparently a hit lab they upload their Zoom conference calls.
Speaker 1:Get a lab upgrade. There's Zoom conference calls.
Speaker 2:No, they upload their Zoom conference calls to YouTube.
Speaker 1:Okay.
Speaker 2:Which is cool. So if in the morning you think, let me just wake up quietly, you can stay at home and you're working at home, right, you work at home quite a bit.
Speaker 1:Yeah.
Speaker 2:And you think let me wake up quietly and I need my coffee and you're just going to go behind your laptop, put on your headset, go to YouTube, google, get lab conference call. Put on the conference call full screen. And you just like drink your coffee for an hour.
Speaker 1:Ah, but it looks like you're in a meeting or something, but then is it just people, or is?
Speaker 2:it like the team from GitHub that was discussing a topic but just mute the music, right.
Speaker 1:Just mute. The sounds like just really cool, but it's not like there's no code on the screen or nothing. So this is a fake productivity tip for anyone, in any field.
Speaker 2:Like literally, if you're at home and you're a partner, I was like no, it's important meeting. I'm sorry, sir. It's important meeting, really cool now Taking one hour.
Speaker 1:Okay, cool, thanks, yeah, yeah.
Speaker 2:But the fake productivity in hobby projects, like I agree. Yeah, the thing is the problem with hobby projects, because we're discussing hobby projects here. I have too many hobby projects and I always think, shit, I need this. This is something I've put a lot of time and need to finish it.
Speaker 1:Yeah.
Speaker 2:And then I think that's already late. I'm a bit tired. I'm just going to open up the editor, I'm going to change a little bit. Going to change a little bit here, yeah, and it's just typically like maybe a bit of documentation or there's like a different font or like just an attribute somewhere, and a little bit of refactoring, and then at least if the feeling I worked a bit on it, and is this a problem though?
Speaker 1:Like do you? Because maybe, like, if you feel better about yourself, maybe that's like you know. I'm fine, pat on the back, go to bed.
Speaker 2:Well, but I never thought about it as fake productivity, so maybe it was okay in the past. No, that I had no illusion, yeah.
Speaker 1:So, yeah, okay, my bad about that. I'll be more mindful next time on the articles. But no, but I also, I also have that, but I think it's like the more fake productivity you have, the bigger, the bigger the pressure I put on myself to finish it, because it's like oh, now, I spent so much time on this, you know true, and it's like a lot of times I'm just changing the things that are easy to change instead of solving the things that I needed to solve, which is also what he mentions here. That that is true. I should be looking to like what's the latency? What is this, what is that?
Speaker 1:It should do that Like, but now you're spending so much effort into small stuff that really did make a you know, even talking about in the beginning how the MVP right to see if, to validate the idea, he should have stopped at one point and just go for it, go, gone forward. But he was just really kind of going around. Oh, maybe we change the volume, maybe we change this color, maybe we should do this, maybe we should do that. In the end, he has something that does look nicer, right? So this is a. You have the. If you're in the video, you can see some screenshots. So there are some color coding, there is this, there is that there is mobile support and whatnot. But he was saying, like if you had a video, you would see that it's way laggier, it's way worse to experience, right? So it's clearly focusing on the wrong stuff. So to me it was a bit yeah it was very relatable.
Speaker 2:Yeah, it is also very relatable to me.
Speaker 1:Yeah, and he also he says like, well, the part of giving up right. So he was debating on this, he was feeling really bad about himself and he said the biggest takeaway I take from this is that if something is worth building, you know right away. So I guess it's like if you're debating whether you should drop something because it's not giving you much, you should probably drop it. Which actually I have this thing, but not with side projects. I have this thing more with books. Like if I'm reading a book and I feel like, yeah, I'm forcing myself to read it, then it's not worth it and I'll just put it aside. With projects, I still feel like I need to get the return on my investment.
Speaker 2:Yeah, yeah, yeah, I recently gave something up.
Speaker 1:What did you give up?
Speaker 2:So another hobby project. I'm working on a small fun e-commerce thing, not really to go into detail, but I started, as one does, to say all the managed things out there are not good enough. We need a new standard. So if you think e-commerce, shop, online shop, you think shop of fire, right, yes, and these days, separating back and the front end is very sexy, so you can build your own storefront in whatever technology you like, whatever. And guys, of course I'm going to do Bill Mayone Right, clearly, all the time in the world. The thing is the problem is the problem is you get these starter templates.
Speaker 1:You do the starter templates.
Speaker 2:You think oh, everything works, yeah right. Yeah right, and then you can do the tricky shit and I think, okay, I want to my users to have like a custom profile. Okay, yeah, it's not in the starter. Then, okay, need to build some scratch. Okay, then need to have an external database as well, and I want to have also automatic translations into all languages. Okay, okay, okay, yeah, gonna do that. Gonna do this. Put it on the list, put it on the backlog.
Speaker 2:Yeah, yeah, putting it on the backlogs, because I'm just switching type fonts, right, putting it on the backlog.
Speaker 1:You have to say dude, you're right down, Like go back to the font and then at some point, like all of these things add up, right, yeah.
Speaker 2:Like it's not okay. On the products, I only also want to show these and these icons and this and these cases, like all these things. Like it starts to add up All right, starts to add up, and then forget the mobile. And then you take the backend and you think, okay, starter templates doesn't really look nice, I'm gonna do something on the visuals as well, okay, but the starter template is not built in tailwind. I'm gonna migrate to tailwind and so you're all doing all these things. And then at some point it's like this is gonna take me another year Because like this is literally like I have 15 minutes that evening and maybe half an hour that evening, and so it's literally that pace. And then I think, okay, I'm gonna look back at Shopify managed storefront. It has like 95% of the things that I need.
Speaker 1:Maybe I should just go with that. It's like the stages of grief, right? Yeah, Like. Then it was like yeah, I'll accept it.
Speaker 2:Yeah, yeah, but for the moment that you switched, I switched. That's fine, but it's like taking that decision. It's painful.
Speaker 1:Yeah, I wonder if maybe we simplify things, Like how hard can it be to do that? And then you start doing this like well, it's actually harder than I thought. Like just go back to what's there already.
Speaker 2:Yeah, but what has taught me a lot and I've talked about this publicly before is the Gotier factor. Aha, the Gotier factor. So Gotier very good engineer Did the previous tour tools podcast with yes Famously when he was still a very young engineer underestimated the work by 2.5 times. The 2.5 has become the famous Gotier factor, the Gotier coefficient, and I think it's a very fair one. So from the moment that you say, okay, this is gonna cost me roughly one month, apply the Gotier factor 2.5, it's gonna actually be two and a half months.
Speaker 1:So what you're saying is that the Gotier factor is really evolving Gotier. What We've all been Gotier. We are all Gotier.
Speaker 2:There is a little bit of Gotier in every one of us.
Speaker 1:Well, I believe that. Amen to that, amen, amen. Yeah, I also do try to. I do try to be mindful of these things as well. But maybe at the end of this experience, do you feel like it was all thrown to trash, do you feel like you regret even getting into it.
Speaker 2:For the specific example. Yeah, not really. I think I learned.
Speaker 1:That's the thing. Right Like, even if you do something you don't deliver anything, you do get a return because you learn stuff. Right Like, you dug into, like even the NIM stuff that you're saying. Right Like, even if it's a different language, like there is always something, yeah. So maybe the important thing is just to do something, and even if you give up, maybe you could be let down, but it's okay. True, it's okay.
Speaker 2:You were talking about yeah, and to me, last point, because you have it all on screen, the initial passion is for me. Typically, most of the cases is the loss of passion. The reason why I stop projects.
Speaker 1:But why do you lose passion?
Speaker 2:It really depends, but it's typically. I want to see if this is possible for a moment. As you know, it's possible, okay, or maybe not possible. Like, can I do this?
Speaker 1:So as soon as you see the path, you're like hmm.
Speaker 2:That's, or I built something that I really use day to day and my day to day job changes so I don't use it anymore. So I'm like, yeah, okay, yeah, it's for someone else, it's like these type of things. But, like, to me, the initial passion is an important like passion in general is an important driver in things that I do on hobby projects.
Speaker 1:Yeah, yeah, yeah, yeah. I agree. I also think that for me, passion kind of goes. I'm passionate about things that are useful and I think if you're building just like something open source, you don't have a user base, you don't have people asking for it. So I think a lot of times I'm the user, so I was like, would I use this? Yeah, oh yeah, this would be cool. Oh yeah, I would like to do that. But indeed, like, sometimes job changes, that changes, and then you lost your entire user base.
Speaker 2:Which was true.
Speaker 1:True, yeah, true, true, true, true, true. So you were, you gave up on creating new standard for Shopify. No, no Shopping.
Speaker 2:Storefront.
Speaker 1:Storefront yes, okay, and I want to talk about standards.
Speaker 2:Okay, try to segue them.
Speaker 1:I tried. Yeah, standards, you hit some, you lose some. You know Specifically SQL standards.
Speaker 2:Yeah.
Speaker 1:This is something that came up. I thought about it, Given an article that people are migrating DBT called from Snowflake to Trino, and they're basically illustrating a lot of the pain points that they had, even though it's SQL, even though they're using DBT as well Differences in the SQL dialect.
Speaker 2:Exactly yeah.
Speaker 1:And SQL dialect and also the NC compatible standards. Right, because just because it's NC compatible, you have two SQL dialects that are NC compatible, doesn't mean that they are actually compatible.
Speaker 2:Okay.
Speaker 1:So maybe just do the straight. A few things. There's some functions sometimes that are named bit differently in one or the other, or sometimes there are functions that are available in one that are not another, like pivot, or if Type question, implicit type question, right? So if you have one to three equals to string one to three, depending where you are, it may be true, maybe not. So these are just a few examples that they came into. And also, if you're comparing things, sometimes it's fine, sometimes it's not. So all these things are issues that kind of pop up. Also, in terms of depending on how the, the, the floating points are formatted, you may have different results. So if you want to have the, the daytime with year, month, day and you want to put it into a string, you may have different things. Also, like ordering stuff, right? So if you want to order, do the nulls go before, after? Also depends, even though those things are NC compatible and whatnot. So quite a lot of stuff, right?
Speaker 2:You mentioned NC compatible. What does it mean?
Speaker 1:If I understand, from what I understanding maybe you know this better than I do is like a. It's a standard for SQL. So if they say NC compatible, you can expect a certain functions, certain things to be available in that SQL dialect. Is that a good answer?
Speaker 2:I think so, more or less. I'm not definitely an expert in this either, so I'm looking this up. So NC stands for the American National Standards Institute, which sounds like a relevant institute in this case, and they defined since 86, good year, by the way, good year Randomly, in 86, they were inspired to define a standard Wow In August, or Could very well be but which indeed is a framework that says the SQL language should look like this In just context, part was born in 86.
Speaker 1:Maybe dating you as well, but true, true, true.
Speaker 2:But, like you know, butterfly effect, we might not have this If I wasn't born in 86. Maybe who knows, right, who knows butterfly effect? But so they define how the SQL language should look like the structured query language, also in terms of what type of commands that we have available. The last one was published in 2016. But in practice, that's what Marie-Louis is explaining here is that all most things that use SQL have their own dialect.
Speaker 1:Exactly, maybe. And again, dialect is like an analogy with languages, right? Natural languages usually have Portuguese and you may have different dialects. I think here in Belgium they also talk about Dutch dialects, right? So dialects of programming languages again something that kind of looks like. But there are some nuances, some differences, right? Just because, in this case, in SQL, just because something runs in Snowflake doesn't mean that it will run in Trino, and that's actually the point of the article.
Speaker 2:Yeah, and it's not always clear up front. It's like you need to understand the dialect a bit. Sometimes even the exact same commands words is being used, but the logic that is behind that in the execution is different. Yeah, yeah, yeah yeah, indeed, if we make a parallel with natural language, a bat, something that I can hit you around the head with, but it's also a flying mammal, right?
Speaker 1:Indeed.
Speaker 2:You need to understand a bit like I mean this context. What will do that?
Speaker 1:True, yeah, that's actually very true. Very good parallel there. Take a job, Bart.
Speaker 2:Thank you. Thank you 86.
Speaker 1:Many years of. So maybe SQL dialects is something normal, but you don't hear that about Python. There are some. You could talk about some Python dialects right. For example, if you talk about Scython, it's actually a super set of Python.
Speaker 2:You want to talk module again? Huh.
Speaker 1:In a bit. But we don't hear that much about Python, right? So maybe why do you think that that's such a topic in SQL? But is it.
Speaker 2:I want to argue whether or not it is a topic.
Speaker 1:I feel like it is more than another language, like in object-oriented languages or something like that, and I have a theory.
Speaker 2:Yeah.
Speaker 1:So yeah, you don't go that good. I think that the SQL, the dialects they come usually with, like a structure, right, they have a Postgres database, Like there is infrastructure there's tied to it, like typically, an underlying database right. Exactly Right, but like you cannot have a snowflake dialect on a Postgres database, no.
Speaker 1:I said that with a lot of confidence, but I was like sure, I don't actually, but I think that's probably, I mean that's one of my guesses, you know. And then people say, oh, I'd like to have this here on my database, and they create a function that's something that optimizes on the hardware there, right, but then you kind of start creating these different runtimes kind of, in this different infrastructure.
Speaker 2:Yeah, but I fully agree, and that's so. The language gets optimized for using their quote-unquote runtime right, their RDBMS, yeah, and the question is, is that a bad thing? That is reality. I think it is reality. You're making a database, typically, or database management system, with a certain set of features and you need which. In most cases, I dare to say the full set of features in the database is, if you map it to the SQL language, it would be a superset of the ANSI language. It should be. It probably is right.
Speaker 1:Yeah, like, which basically requires your specific dialect From the moment you add something or you have a dialect, and then the that's also why I think that we talked a bit two weeks ago Like the one-way doors to a doors and how choosing a database is kind of a one-way door, because I do feel like once you have that technology and you have this dialect, you kind of build some stuff that is specific to that. Maybe, right, maybe you're not even aware, right, but there may be some functions and things that are optimized that you leverage on heavily, that you don't even know that that was the case and I think that's why I'm making the argument.
Speaker 2:Maybe it's not a bad thing, because I think normally you don't really encounter this Like you have a, you have your text stack and part of that is, for example, a Snowflake database and you need to build up knowledge around your Snowflake.
Speaker 1:SQL dialect.
Speaker 2:The very specific cases where you do encounter this is where you either have ten types of different database systems, which is very unlikely, or they are spread across different teams, where you build up the knowledge locally, or you're migrating which is the premise of your article, which is very specific, of course, where you say I'm going to try to migrate this set of SQL statements from this target database to something else, which indeed, like you, run into a lot of oddities.
Speaker 1:But even if you have a big team that has different databases, even that I don't usually see issues pop up because the SQL statements that you're running on one is like you're not repurposing it on another database. So I feel like the issue only comes when you're migrating from one to another.
Speaker 2:And maybe in two years just GPT will just do that for you. That's true.
Speaker 1:Actually there is a SQL glott, like a polyglott SQL kind of thing, that it does some of it for you. Yeah, I can imagine that, so that will translate, so like if the function names a bit different, but it doesn't do everything.
Speaker 2:No, no, okay, Of course.
Speaker 1:Right, but yeah, and also there's shaggy pt that's like a b1 solution. But there's also dimension dbt on this article. So that's kind of the point that even with dbt which is another layer right, Because in dbt you can create macros you can create, so it's like macros is kind of like a copy paste, you know, like function here, there for people that not like the horrible job explaining it. Hopefully they get it. But even then it's still a bit painful, right? I think that's the takeaway, right, Like there are tools that are trying to create another layer of abstraction there. But is that enough? And based on the evidence here, it looks like it's not.
Speaker 2:But it's a very specific case Like this is migration. Yeah, the question is, do you need to build such a high level of abstraction for this very specific case? Because you're not migrating every day, like if you're doing, you're doing something wrong.
Speaker 1:And do you think it's yeah, if you're migrating, I guess you have to have a very good reason to migrate.
Speaker 2:And I'd wait maybe to say that, especially with LLAM technology, it becomes possible to very much prepare on this as well, and this is what you mean. You know the type of SQL statements, scripts, schemes, whatever that you have. You can maybe even find you a model for this. You can find you a model for your targets, just thinking out loud here.
Speaker 2:Like but this is something completely new that wasn't there before. Five years ago the full migration would have been manual. Like doing this in an automatic way would have been like it was put in some support by replacing a high FF bit. Yeah, but it's not. I think there we are in a completely different era.
Speaker 1:Yeah, and maybe that is enough.
Speaker 2:Maybe we should not and see SQL should not be have to be adopted as D anyway, yeah, honestly.
Speaker 1:But the NC SQL stuff. For me, every time I hear NC SQL, for me it's just like SQL, like that's the like. If one says, oh, we have a NC SQL compatible database, you have to. If you're not, that I was like something's really wrong. You know, like it. To me it should be a given, but I feel like it's really advertised as like this is a big plus. Oh yeah, have you ever like migrated stuff? Have you ever had any big issues like this that you're like man, we shouldn't have even started this, or.
Speaker 2:Not so we shouldn't have even started. But migrating is all like to me. If you built a new architecture for an application platform, whatever data platform, like the biggest choice to make this will be, in whatever case, extremely hard to migrate away from is the storage layer, the database. Like you make a, like you create legacy from the moment you make a choice.
Speaker 1:Yeah, you know you're on my doors. Yeah, All right. And last but not least, you wanted to. You wanted to talk about Mojo.
Speaker 2:No, no, no, no, no, it's you, it's you.
Speaker 1:You ain't got no Mojo, I was actually, but.
Speaker 2:I didn't. When I was looking at my project as the evening, I was thinking maybe, maybe we should try Mojo, but it didn't. But you didn't, I didn't for some reason, but I should I should actually because we've been a lit. I did the feeling that last episode with the money we were bashing it a little bit, maybe a bit prematurely.
Speaker 1:I think I did. Yeah, maybe I think so. Maybe context right. We covered an article that it was outperforming Rust in a sequence sequence parsing benchmarks by 50% with Mojo, and actually that article was very popular. There were people that reviewed it on YouTube and all these things. So Mojo, the modular team, so there are the people that built the creative Mojo. They released another one, mojo versus Rust. Is Mojo faster than Rust? So very, very like poking. You know there's communities very. So I read this as well.
Speaker 1:I think I had some reactions. Maybe we did, maybe we were very quick to to quote, unquote bash Mojo last time. But I think for me it's not about the module language itself. It's just that the advertising around it to me was very misleading, right, which is something that I do feel like it was addressed here somewhat. So just to go over a few things here on the article, there's a there's like benchmarks to talk about benchmarks here and like how you know Rust versus X, mojo versus X, and basically what I said, that the previous article made a lot of noise and some very prominent people in the Rust community were kind of giving Mojo, saying like yeah, if Mojo is legitimate, I think Mojo will win, just hands down. For the reason that if the Mojo will win, if you don't change a paradigm, I can make it Basically saying Mojo meets people where they are more than Rust. So if Mojo delivers on the promise of speed, rust will not win. I fully agree, yeah.
Speaker 2:So if you meet people where they are, if those people are machine learning engineers, I fully agree Like if you are today a machine learning engineer that for some nitty gritty, feature optimization, whatever feature generation, you're sidestapping to Rust because it's not performing in base Python. Like doing everything in Mojo is way easier than sidestapping to Rust, because Rust is a completely different language. Mojo is promised to be a super set of Python, which means that, like, you're already very familiar with it from the moment that you use it. So I fully agree on that.
Speaker 1:Yeah, I agree with that too, but I think it's a big, if I think it's not a, because I feel like they they're saying this like oh yeah, so like kind of like hinting that they're going to win, but I think that it's not a easy task, right I think the question is what about this will win right?
Speaker 2:I don't think it's really truly competing with Rust in this case. Like, even if if Rust would be an acceleration of 100 X and Mojo is 90 X, I think for the typical machine learning engineer, mojo will still win right. Like the biggest question of Mojo is like promising a language that is feature on par with Python and even a super set of. At that performance it's like a big statement, Like it's a huge thing that to me is the biggest question, like how far will we see this evolve?
Speaker 1:Yeah, yeah, indeed, I think the well we'll get to it more. But like Mojo also, they want to be the language for AI, right? So Rust has a bit more general purpose, even though some people have argued that Rust is a language for AI as well. Maybe one thing also that they mentioned is if Mojo compiles fast, which is also something I heard. I never experienced this. I'm not really a Rust developer. I'm curious about it, but like the compiling times of Rust is, actually, it can get pretty bad. So this is also something they mentioned.
Speaker 1:Like people that are developing Python, they want the fast feedback, right. So you don't want to wait a long time to compile. So that's another caveat that they put. And indeed, same thing. Also, there was someone else that reacted, some people that are big in the Rust community. They reacted the same way. So again then they go to reiterate the goal of Mojo and again here, like they already start framing it a bit different. Like the Mojo aims to be intuitive, to learn for Python developers, which to me is a different statement than saying Python is a superset.
Speaker 2:It's a Python superset because you need to learn it right.
Speaker 1:And that was one of the big quote unquote beefs that I had with it that they were really advertising as a superset of Python, like you don't need to learn at all, almost like it's a different interpreter, but it wasn't when I tried it, right? So I think this is already more matches, more my experience, so I have less of a problem with it. They also say we're having focus on AI, where three language problems exist CPU, gpu. So there are some interesting specificities here, right, like they're trying to get the most out of the hardware. They want the GPU and the CPU available. You know all these things. That goes to the lower level, to the hardware level of things. Yeah, so let's not forget, the real goal of Mojo is lifting the world's most popular AI language in Python and empowering developers everywhere with incredible performance, high reportability and programmability. So that's the goal AI language of AI. Then they talk about is Mojo faster than X language, which again is a very benchmarks are always wrong because it always depends on the use case, right? So you probably see what is this, what is that? And then they start comparing a bit more Rust with Mojo.
Speaker 1:Mojo in Rust there's the borrow checker, right? So I think it's the memcpy. So memcopy, so that's a C++ thing. From what I googled quickly, the borrow checker in Rust basically means that if you have scopes, so in Python would be the indentation right, that's the scope kind of, that objects are owned by the scope, so when something falls out of scope that is gone. That's the borrow checker kind of in a way. So in Rust if you have a function that takes a variable, once that function is over the variable is gone unless you return that variable in the function. Right, in Mojo actually you have that as well, but they do more stuff in Mojo. So for example, first thing is that in Rust if you pass in a variable in a function, by default you're moving the ownership to the function. So if you don't wanna do this, you have to pass a reference which is like a pointer. So don't wanna get too specific here. In Mojo is the opposite you pass a reference by default. I wanna say right, which they argued that. So Mojo arguments are borrowed by default.
Speaker 1:So they argue that this is more gentle, et cetera, et cetera. But it's also more efficient. So if you want to really replicate what Rust is doing, you can actually pass. You have to specify more things you have to basically default should look more like Python in a way, and if you wanna get the Rust behavior, you have to first specify that this function is owned. So you see that this here already wouldn't compile in Python. This is not something that Python would say it would be happy with and it still works because you'll copy things behind the scenes for you, right? So if you really don't want to, you have to use the carrot operator, which, again, is moving further and further away from Python. But when you look at this it kinda looks like a mix of Python in Rust in my opinion. Or you have FN and all these things.
Speaker 1:They talk about pins, which is something for async, which I'm not gonna go too much into it, and they also talk about the compiler technology, how there's LLVM, ir, and then Mojo uses the MLIR. So basically the background stories that one of the CO's, chris Ladner, also created Swift and he was also really into these things. So the compiler technology that Mojo uses is the newest, is the first language to use this. So they're also arguing that it's gonna be faster, which maybe, maybe, maybe.
Speaker 1:Yes, they also talk about the simple instruction, multiple data. So basically, if you have a race you can pass. You can manipulate a chunk of data at once and eager destruction. So another thing that Mojo will do is to in Rust, it waits for something to fall out of Autoscope to delete it, and Mojo will actually delete it before it goes Autoscope. If he knows that you're not gonna use it anymore, he will delete it for you. So in this thing, like if you have GPU, ram or something that you need that thing available, you will get it out for you before, which I think is cool. Yeah, I think it's cool.
Speaker 2:So, and again, there are more things like the Very relevant yeah, Before the type of workloads that you typically run.
Speaker 1:Indeed, I think for AI stuff, you know like it is very relevant, but to me it's like they're doing a lot of magic in the back to make it feel more Pythonic to you, but it's not really Python right, like it's way more complicated, and I think if they can pull everything off, then indeed I think they have a leg up on Rust.
Speaker 2:Would be cool if we can do a like a live program accession in Mojo, build a minimal project someday.
Speaker 1:We can try, we could try.
Speaker 2:But I tried to do something. It was tricky, no, but I will cheer you on. You're like go Maybe. Maybe a good, interesting thing to think about.
Speaker 1:Maybe we can try, maybe we can think about it.
Speaker 1:But so all in all, like also some higher level, like taking a step back, some reactions for me is like I agree with. Most of the stuff is there. Did you talk about the lower level stuff? Did you talk about being something optimized for AI? Right, I also agreed that if Mojo can do all this, the magic behind the scenes, and still deliver, I do think that they have a leg up on Rust as well.
Speaker 1:And I also feel like they're already framing it a bit differently, because before they were saying, if you know Python, you know Mojo, or you will know Mojo because it's a super set, so you don't need to learn anything. And now they're saying, well, mojo is a good second language to learn after Python. Python is friendly for Mojo is friendly for Python developers, it has a Pythonic syntax. So they kind of moved a bit away from that narrative of oh yeah, it's Python with steroids, which to me is more appropriate, so it's a different program language still Maybe.
Speaker 1:I'm also saying this because last year I was doing a talk on how to improve the computation of speed of Python script and then there's PyPI, the JIT and all these things and I tried Mojo because it was very recent and in that talk basically there were two things.
Speaker 1:Like speeding up a Python script is either you have C or another language in the back and you just have a layer of Python, or you have a different interpreter that takes the Python code and then you kind of have a Python dialect. So like PyPI, which is a JIT compiler, or Scython is kind of one of those cases. Scython is a bit different and then when I tried Mojo, it was with the premise that it was a different interpreter, like it would just work. I had the same code, I just run Mojo, run this and it would work fine because they promised a super set of Python. But that was not the case at all. So in the end the Mojo comparison seemed really off because it's like saying, oh, I'm comparing this backend, this, this, this, this library, this library, this library and Rust.
Speaker 2:And C++.
Speaker 1:You know, like you're comparing something different, like a different language, that kind of looks like Python so, and I think they kind of they made this more clear in this article as well, so I have less of a problem with it. I think that's the TLDR.
Speaker 2:Looking forward to your life coding session.
Speaker 1:When you deliver the Reddit replacement of the Pixel stuff you know deal. Deal. She never done that. Ok, all right. I think that's all the topics we have today.
Speaker 2:One, maybe One more.
Speaker 1:One more.
Speaker 2:Ghosty.
Speaker 1:I just see you just added here.
Speaker 2:So ghosty I'm looking forward to ghosty being released. So ghosty is an alternative terminal that you can use, like warp, which is very hyped these days, which Marilla uses. Ghosty is something that you can download yet which is not open source yet, which is being built by Mitchell Hashimoto.
Speaker 1:You're going to put it on the screen.
Speaker 2:One of the. I'm going to send you the. Do you have it? I'm going to put it up, Built by Mitchell Hashimoto, which is one of the guys behind Terraform Hashikorp. Ah His name is in there. True, he's no longer at Hashikorp, but he's building ghosty.
Speaker 1:So ghosty is like a terminal.
Speaker 2:It's a terminal. You frequently gives updates on his block here, but also on socials as a small testing group. Very good In your part of it. No, Personally not actually. Maybe you should try to wiggle myself into it, but no. But you do hear a lot of very positive echoes, but on performance, usability, these type of things. So I'm looking forward to this.
Speaker 1:And are you so? You haven't never used it.
Speaker 2:No, but I've seen some talks on screenshots, these type of things. So this excites you terminals. This excites me and because I have a problem with warp, I'm actually excited about the features of warp, the usability of warp, but I don't like that. I need to sign in for something. I don't want to send what I have, what I type into my terminal, to whoever. Thank you, that is really like a red flag to me. It comes about terminal commands.
Speaker 1:OK Terminal environments.
Speaker 2:Yeah, Like to me it's really a bit of a security risk.
Speaker 1:Yeah, yeah, yeah, I see what you're saying.
Speaker 2:Next to that also, I was googling the other day. I don't even know what I was googling, but I got warp as a sponsored search result. So even putting Google ads into it get people to describe.
Speaker 2:Yeah, but I think it feels like a bit of conflict of interest, right, like he's like yeah it feels like, yeah, yeah, I don't know, I don't need this commercial aspect to my terminal, but they would do want something cool. And then Ghosty also has features. Maybe I don't even if the issue around the commercial part I have the issue with what I write into my terminal, that it goes somewhere else, because to me that is very sensitive. Yeah, yeah.
Speaker 1:But I feel like that is. I did check the privacy because we also had a question on this before and I remember reading the personal user information is not shared Like the personal stuff Not shared OK, but it's still on the server somewhere, right?
Speaker 2:How often do you have some secrets in your terminal because you need to run some code locally?
Speaker 1:Yeah, actually I should probably look into it again, but I remember like you should. Yeah, I'm doing that. All right, thanks everyone. Bye, no, and Ghosty. Like you said, there are features that you like about WRP. Are those implemented in Ghosty as well, or is it just you just wanted to mention Ghosty?
Speaker 2:I mainly wanted to mention Ghosty. There is a lot of hype building and there are stuff that is super cool. Is written in what Like random features as well that are super cool in terms of performance. Like I have sometimes had the problem that I did a cut. Whatever big lock cat is, what does it?
Speaker 1:stand for.
Speaker 2:Basically output the content of a file to your terminal, right, and if you do this on accident on a very large file like, it will keep scrolling on your terminal, and WRP is for these type of specific use cases. It's very, very edge case. It's extremely, extremely fast, though it will dump everything in the terminal and in like a fraction of the time. But this is, of course, very, very niche. But like, these things are cool, these things are cool. That's the only thing I wanted to say.
Speaker 1:It's written in module so fast it's like I'll see rust, I think it's written in ZIG actually if I'm not mistaken, but I could be mistaken here. Zig actually should be on par with C++ Rust faster no.
Speaker 2:I think it should be on par more or less with Rust OK.
Speaker 1:Cool, Cool. Looking at maybe another question Raycast. So it's not a. I'm also thinking of Mac tools. Raycast is not for the terminal, Raycast is to replace spotlight. So when you hit command spacebar, when you can search stuff. Raycast is a replacement of that. Ok, would you have a problem because but the model is kind of similar. They have like a freemium thing. You know we can have things you can pay for it. You know, like you think it would bother to have Raycast.
Speaker 2:From a sending them my data. Point of view.
Speaker 1:Well, yeah, I mean the same thing as warp. Right, like, even if warp says, oh, we don't send your data anywhere, you can stay as local, do you trust them, you know?
Speaker 2:if it's like, uh, Um, those were stated as explicitly as I think they actually do need to send, because they do like smart completions and stuff that the users serve. Your question is like no, the problem I have is with the type of data. I'm just sending it to you. There is much more sensitive data in my terminal than I type into the. What is it called the spotlight search? Yeah, spotlight search. I typically only use it either to open an application or to have a quick calculator.
Speaker 1:You know, but I would. That's the thing. So I feel like it's a bit of a side topic. But I downloaded it because I was like, let's give it a try. And I feel like now I use it for more things than that, like what?
Speaker 1:So, for example, what a raycast? That's the how you get in. But like, if you want to reorder windows, instead of having another app, you can use it on raycast so they can put like shortcuts and all these things. So like the window manager stuff, even the calculator. I think it's nicer because this is personal as well. But whenever I want to calculate something, I put the two numbers and then I hit enter and then that already goes on my clipboard. And then when I open it again and I want to add another number of multiplier, divider, whatever, I can just copy, paste it and then put the other numbers and enter, you know. So they're different things.
Speaker 1:They are also extensions in raycast. So, for example, if you put your calendar your Mac calendar is your official calendar you can already go in the meeting. It will open the meeting thing, so you can already go there. What else? There's some stuff. I like it, I quite like it, actually so much that I for a client. I got a Mac as well and I installed it on my client's Mac because I missed it. So for, like, going full screen, every app does a bit differently but you can say, okay, with raycast, every like, and it's basically like an alternative to Alfred, right, I think Alfred is maybe more wrong.
Speaker 1:I think so. I think I never tried Alfred, but I think.
Speaker 2:I think, yes, maybe I'm dating myself a bit.
Speaker 1:Okay, no, I'll, maybe check it out, maybe, you know, maybe check it out. We can do some like Mac tools Tour the Mac tools.
Speaker 2:We'll do it after the after the live code access in a module.
Speaker 1:Yes.
Speaker 2:Okay, all right.
Speaker 1:Do we have something fun?
Speaker 2:We are trying to right.
Speaker 1:Well, I guess that is the question Is it fun? We have something, but is it fun? Is it fun?
Speaker 2:This is very much a try, and we're trying to come up with a bit of a fun game at the end of the show. Previous one reached the end of its viability.
Speaker 1:Yes, but you know, let us know. If you like just to bring back the OGs, you know we can revive it.
Speaker 2:So we now have a gen AI generated joke, okay, and the question is is it fun?
Speaker 1:Let's see. Let's see what you got. We should have a drumroll button.
Speaker 2:Yeah, do we have something in there? I don't think so. The thing is, I was preparing for this. It is very hard to generate something that is actually fun, but I have to kill a one now. So, with a bit of setting the scene a bit, Set the emphasis. Here it goes. Why did Murillo take a cup of corn to the movies? Because he heard it was amazing.
Speaker 1:That was actually hold on, we have the. That was actually quite. That was good. That was better than I thought, okay.
Speaker 2:Okay, happy to have the response.
Speaker 1:Yeah, I think it was. I mean, it's like ha ha fun. It's not like. It's like you know it's funny. What did you put?
Speaker 2:there. What do you think I put? Can you reverse engineer this? How good of a prompt engineer are you.
Speaker 1:A reverse prompt engineer. Yeah, I would say probably put something like make a joke about Murillo with some puns or something. I feel like the movie is too specific.
Speaker 2:The first part of the hinder.
Speaker 1:First part is in there.
Speaker 2:Make a joke about Murillo. Yes, so you would. It would be weird if you would not be in the prompt. Right, right.
Speaker 1:It's like make a joke, murillo, but I think, yeah, maybe you just ask for a pun or something.
Speaker 2:No, shall I make a? It's actually super simple. So this is, by the way, this is just GPT-4. And the prompt was give me a joke about Murillo and a cup of corn.
Speaker 1:Ah, really, so you actually specify the cup of corn? Yeah, that's very specific. I thought, did I think it wasn't my mind, but I think I don't know if I want to have some follow-up questions to that. But actually, given the prompt, I think it did pretty good.
Speaker 2:It did pretty good, yeah, so next time you come up on a joke.
Speaker 1:I'll do my best, but I feel like you need to Maybe the secret for these things. You have to have the setup. Then a lot I don't want to get to. I don't want to be canceled, but there's always these jokes like a blonde woman, a Jewish guy and someone else goes in the bar, finish the joke and I was like there's gonna be something super.
Speaker 2:I don't see.
Speaker 1:Next time is your turn. I get a bit anxious already about this.
Speaker 2:Maybe the last topic, so we were discussing mid-journey.
Speaker 1:Yes.
Speaker 2:Beginning of the show there's a describe functionality so you can insert an image and it will generate a prompt that comes close to that, and I did in the meantime. So I'll just give an image of Marilla and I'll just tell you now how mid-journey describes Marilla.
Speaker 1:You're gonna put some romantic music in it oh yeah, oh yeah.
Speaker 2:What are you thinking about it?
Speaker 1:It's Valentine's Day, part Nice.
Speaker 2:I'll give two. Gives four options. I'll give two. A hairy young person wearing a black t-shirt in the style of light and gray and teal. Made core. Innovating techniques, smile core, hispanic core. Meticulous linework, precision photo taken with Provia. So if you would enter that in mid-journey, you come out.
Speaker 1:Wow, okay.
Speaker 2:Yeah, give the other one, which is actually very Well. It's very much, but it's a core. I don't know where it comes from.
Speaker 1:But a core is in the core, like five cores in your CPU or something.
Speaker 2:I don't know, it's maybe a style of photography or something like hardcore Smile core, I don't know. Made core, made core, made core. I'll do the other one right. Yes, maybe Change the scene a little bit Almost two hours of this. A business analyst wearing a business t-shirt in the style of dark turquoise Undark emerald Emotive portrait Smile core Neo dadaste. Intricate woodwork Clean and streamlined Intricate woodwork Hispanic core Hispanic core.
Speaker 1:It always comes back.
Speaker 2:It always comes back. So yeah, there's that Okay.
Speaker 1:So I guess the two different pictures you put in there.
Speaker 2:No, the same picture. It actually gives you four different variations of descriptions, but now you know how you can generate yourself.
Speaker 1:But it's a black shirt as well. I'm wondering what picture you put this one? Ah, okay, okay, I was. I was hairy that day, you were hairy that day, so yeah. So I guess a Hispanic, a hairy Hispanic, hispanic core, okay, that's not far off.
Speaker 2:That's not far off.
Speaker 1:That's not far off. Okay, thanks, bart, maybe I'll. You're welcome, I'll be doing it with you next time as well. I don't think you'll get like. You'll get Dutch, though, for you. I don't think so. No, I don't think so.
Speaker 2:What do you think would describe me Not as a I?
Speaker 1:guess we'll see.
Speaker 2:Tall Dutch guy? I don't think so.
Speaker 1:I feel like the stereotypical Dutch guys like Blond, that's true, right and no beard. So by there you're in Blond.
Speaker 2:I'm 20 centimeters taller than me.
Speaker 1:Yeah, like super tall. I was in Amsterdam airport one time I went in the elevator I disappeared Like just yeah.
Speaker 2:Huge beard, but I do as well, yeah man Alright. Thanks everybody for having the patience to listen to us, watch us and see you all next week. Yes, sir. Marillo is back from his ski trip in Romania. Yes sir, ciao, ciao, ciao, bye.