DataTopics: All Things Data, AI & Tech
Welcome to the cozy corner of the tech world where ones and zeros mingle with casual chit-chat. Datatopics 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: All Things Data, AI & Tech
#38 Open Source AI, SQL Dialects, and New Terminals
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
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 2But 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 1That 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 2Cool. Yes, is skiing a thing in Romania?
Speaker 1Yeah, 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 2I 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 1Yes, 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 2Oh, I actually prepared something for this For the next hour. We do this with with to the soundtrack of this.
Speaker 1Okay.
Speaker 2Okay, how was your week?
Speaker 1It was good, bart. How was yours? It's better now. All right, Any plans? No, maybe sensitive topic.
Speaker 2No, 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 1What hobby project?
Speaker 2It 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 2And 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 2Okay, 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 2It'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 1Yeah, 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 2P5.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 1Yes, 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 2It'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 1Or is it a secret? How are you going to avail it later?
Speaker 2No, 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 1Yes, you know what.
Speaker 2I 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 2you 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 1And you said three hours. You can probably wrap it all up. I think so.
Speaker 2For this like well, if you would do it in languages that you're used to.
Speaker 1Okay, 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 2actually 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 1Okay, let's do this Cool.
Speaker 2Okay, nice, nice Should not have gone number out, but there, we have it, you know you have it.
Speaker 1Yeah, it has to be fun as well. Right Another thing I know you've been trying is a mid journey.
Speaker 2Oh 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 1Yes, I agree. Actually, I think it's arguably it's better than what said. What open AI has right the Dolly.
Speaker 2Dolly 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 1Me journey was a.
Speaker 2V 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 1You're not one of those people.
Speaker 2No, those people are wrong, but you can find them these days.
Speaker 1You 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 2What 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 1I'll set you up there.
Speaker 2But 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 1So you can kind of think of slack Microsoft teams you familiar with that.
Speaker 2It'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 1Yeah, V6 was released December 21st. Ok, later on.
Speaker 2The alpha More recent. Wait, you're talking about V6 or the alpha UI, v6. Ok, alpha.
Speaker 1UI.
Speaker 2I don't know. I want to say December as well, but only to the Cool Kids Club.
Speaker 1Ah, ok, and you're one of those.
Speaker 2No, no, I was not. So the Cool Kids. I think at that point the definition was more than 10k images generated.
Speaker 1OK, I was not Now.
Speaker 2I 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 1Yeah, that's me. Oh, you're almost-cool kid.
Speaker 2I'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 1You want to put the announcement on the video.
Speaker 2Yeah, I'm going to do this. I'm going to do this. Voila, there it is.
Speaker 1Thank you yeah. So maybe do you feel like, do you feel like there was a need for UI?
Speaker 2There was, yeah, it was. There was, yeah. So workflow-wise, the UI is really an improvement of the Discord bot.
Speaker 1OK.
Speaker 2Just.
Speaker 1But it's like what do you get from the UI? Because I see here some tabs.
Speaker 2I 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 1What if you give an image that is not AI generated?
Speaker 2No, 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 2So 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 1Do you have a private channel with the bot or is it with other people?
Speaker 2Well, you can choose, but I only do a direct conversation with the bot.
Speaker 1Yeah, 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 2I'm not wondering what kind of images.
Speaker 1I 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 2Immediately go for the cute robots.
Speaker 1Exactly, and I was like, oh man, people are going to be judging me, but like People were going to be like.
Speaker 2I'm not one of those.
Speaker 1Yeah, yeah, I was like oh man, look at this guy.
Speaker 2So 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 1Yeah, I think so too.
Speaker 2And 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 1Oh really.
Speaker 2So 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 2So 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 1Yeah, 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 2I don't know exactly, because it's three months ago.
Speaker 1But in any case, in discord it's not open source. You don't host your own, then it's just like.
Speaker 2No, you don't host your own.
Speaker 1You just create the bots and stuff.
Speaker 2Create a server which is basically homework space.
Speaker 1OK, 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 2I don't think so no.
Speaker 1No right.
Speaker 2No, quite sure, actually. No, it's not open source.
Speaker 1But 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 2Well, I think mid-journey is very much on this visual part of Gen AI.
Speaker 1But do you think it's, as known as chat GPT, or maybe just because there's not as many use cases, you think?
Speaker 2It's probably no, I think it's less known. Like it needs to be a little bit more technical, I think.
Speaker 1Because 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 2Well, 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 1Not yet True. And this open source AI, is it a big deal, Bart?
Speaker 2Well, the question, I think, is what is open source AI?
Speaker 1Indeed, 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 2That's a good question.
Speaker 1What is open source in general?
Speaker 2And 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 2AI 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 2I 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 1Yeah, 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 2Yeah, 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 2We 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 1OK, and what is open source AI?
Speaker 2So there is no definition yet, right? This is a draft. It's currently at v0.0.5.
Speaker 1Is this following Semvr I think so.
Speaker 2yeah, 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 1And 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 2No.
Speaker 1It'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 2I'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 1Yeah, they did something. Some people were like, yeah, we should put something on the website.
Speaker 2Yeah, it's kind of didn't 0.1, at least. Yeah, there's a concrete idea about it.
Speaker 1We had a meeting, we're all OK, yeah yeah 0.1,.
Speaker 2OK, 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 1OK.
Speaker 2So 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 1Yeah, that's actually a very good distinction. Yeah, Because usually I think people discuss both things together.
Speaker 2Yeah, 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 1So there's like a blanket four pillars, high level.
Speaker 2And 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 1And is this different from regular software?
Speaker 2I don't think, from regular open source licenses. No, I don't think so.
Speaker 1OK, 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 2And 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 1So that's already not open source, but this is the definition.
Speaker 2Which, 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 1But like these type of things. Yeah, indeed indeed.
Speaker 2So interesting to see how this will evolve.
Speaker 1And 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 2That'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 1Yeah, 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 2Exactly.
Speaker 1So 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 2You cannot open source.
Speaker 1That'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 2Of the dependencies.
Speaker 1No, 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 2Sure 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 2I'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 1Right yeah.
Speaker 2So I think it's because open source is so big and so abundant, we take it for granted a bit.
Speaker 1Yeah, 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 1But 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 1I 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.
Fake Productivity in Hobby Projects
Speaker 1But 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 2This is important, so it's fun projects.
Speaker 1Yes, 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 2And it's a hobby project. Yeah, exactly.
Speaker 1But 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 2Maybe I should sometimes think about it.
Speaker 1But 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 2Project 40, 40 percent for me is like switching fonts.
Speaker 1It's fake productivity according to him, not me.
Speaker 2I think it's crucial.
Speaker 1Everything 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 2Depends, 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 1Get a lab upgrade. There's Zoom conference calls.
Speaker 2No, they upload their Zoom conference calls to YouTube.
Speaker 1Okay.
Speaker 2Which 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 1Yeah.
Speaker 2And 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 1Ah, but it looks like you're in a meeting or something, but then is it just people, or is?
Speaker 2it like the team from GitHub that was discussing a topic but just mute the music, right.
Speaker 1Just 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 2Like 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 1Okay, cool, thanks, yeah, yeah.
Speaker 2But 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 1Yeah.
Speaker 2And 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 1Like 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 2Well, 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 1So, 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 1It 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 2Yeah, it is also very relatable to me.
Speaker 1Yeah, 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 2Yeah, yeah, yeah, I recently gave something up.
Speaker 1What did you give up?
Speaker 2So 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 1You do the starter templates.
Speaker 2You 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 2Yeah, yeah, putting it on the backlogs, because I'm just switching type fonts, right, putting it on the backlog.
Speaker 1You 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 2Like 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 1Maybe 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 2Yeah, yeah, but for the moment that you switched, I switched. That's fine, but it's like taking that decision. It's painful.
Speaker 1Yeah, 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 2Yeah, 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 1So what you're saying is that the Gotier factor is really evolving Gotier. What We've all been Gotier. We are all Gotier.
Speaker 2There is a little bit of Gotier in every one of us.
Speaker 1Well, 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 2For the specific example. Yeah, not really. I think I learned.
Speaker 1That'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 2You 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 1But why do you lose passion?
Speaker 2It 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 1So as soon as you see the path, you're like hmm.
Speaker 2That'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 1Yeah, 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 2Which was true.
Speaker 1True, yeah, true, true, true, true, true. So you were, you gave up on creating new standard for Shopify. No, no Shopping.
Speaker 2Storefront.
Speaker 1Storefront yes, okay, and I want to talk about standards.
Speaker 2Okay, try to segue them.
Speaker 1I tried. Yeah, standards, you hit some, you lose some. You know Specifically SQL standards.
Speaker 2Yeah.
Speaker 1This 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 2Exactly yeah.
Speaker 1And 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 2Okay.
Speaker 1So 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 2You mentioned NC compatible. What does it mean?
Speaker 1If 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 2I 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 1Maybe dating you as well, but true, true, true.
Speaker 2But, 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 1Exactly, 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 2Yeah, 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 1Indeed.
Speaker 2You need to understand a bit like I mean this context. What will do that?
Speaker 1True, yeah, that's actually very true. Very good parallel there. Take a job, Bart.
Speaker 2Thank you. Thank you 86.
Speaker 1Many 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 2You want to talk module again? Huh.
Speaker 1In 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 2I want to argue whether or not it is a topic.
Speaker 1I feel like it is more than another language, like in object-oriented languages or something like that, and I have a theory.
Speaker 2Yeah.
Speaker 1So 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 1I 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 2Yeah, 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 1Yeah, 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 2Maybe 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 1SQL dialect.
Speaker 2The 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 1But 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 2And maybe in two years just GPT will just do that for you. That's true.
Speaker 1Actually 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 2No, no, okay, Of course.
Speaker 1Right, 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 2But 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 1And do you think it's yeah, if you're migrating, I guess you have to have a very good reason to migrate.
Speaker 2And 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 2Like 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 1Yeah, and maybe that is enough.
Speaker 2Maybe we should not and see SQL should not be have to be adopted as D anyway, yeah, honestly.
Speaker 1But 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 2Not 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 1Yeah, 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 2No, no, no, no, no, it's you, it's you.
Speaker 1You ain't got no Mojo, I was actually, but.
Speaker 2I 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.
Mojo vs. Rust
Speaker 1I 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 1I 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 2So 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 1Yeah, 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 2I 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 1Yeah, 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 1Like 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 2It's a Python superset because you need to learn it right.
Speaker 1And 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 1Mojo 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 1So 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 1They 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 1Yes, 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 2So, and again, there are more things like the Very relevant yeah, Before the type of workloads that you typically run.
Speaker 1Indeed, 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 2Would be cool if we can do a like a live program accession in Mojo, build a minimal project someday.
Speaker 1We can try, we could try.
Speaker 2But 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 1Maybe we can try, maybe we can think about it.
Comparison of Mojo and Ghosty
Speaker 1But 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 1And 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 1I'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 1Like 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 2And C++.
Speaker 1You 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 2Looking forward to your life coding session.
Speaker 1When 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 2One, maybe One more.
Speaker 1One more.
Speaker 2Ghosty.
Speaker 1I just see you just added here.
Speaker 2So 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 1You're going to put it on the screen.
Speaker 2One 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 1So ghosty is like a terminal.
Speaker 2It'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 1And are you so? You haven't never used it.
Speaker 2No, 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 1OK Terminal environments.
Speaker 2Yeah, Like to me it's really a bit of a security risk.
Speaker 1Yeah, yeah, yeah, I see what you're saying.
Speaker 2Next 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 2Yeah, 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 1But 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 2How often do you have some secrets in your terminal because you need to run some code locally?
Speaker 1Yeah, 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?
Raycast vs. Warp
Speaker 2I 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 1stand for.
Speaker 2Basically 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 1It'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 2I think it should be on par more or less with Rust OK.
Speaker 1Cool, 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 2From a sending them my data. Point of view.
Speaker 1Well, 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 2if 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 1You 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 1So, 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 1They 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 1I think so. I think I never tried Alfred, but I think.
Speaker 2I think, yes, maybe I'm dating myself a bit.
Speaker 1Okay, 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 2We'll do it after the after the live code access in a module.
Speaker 1Yes.
Speaker 2Okay, all right.
Speaker 1Do we have something fun?
Speaker 2We are trying to right.
Speaker 1Well, I guess that is the question Is it fun? We have something, but is it fun? Is it fun?
Speaker 2This 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 1Yes, but you know, let us know. If you like just to bring back the OGs, you know we can revive it.
Speaker 2So we now have a gen AI generated joke, okay, and the question is is it fun?
Speaker 1Let's see. Let's see what you got. We should have a drumroll button.
Speaker 2Yeah, 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 1That was actually hold on, we have the. That was actually quite. That was good. That was better than I thought, okay.
Speaker 2Okay, happy to have the response.
Speaker 1Yeah, 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 2there. What do you think I put? Can you reverse engineer this? How good of a prompt engineer are you.
Speaker 1A 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 2The first part of the hinder.
Speaker 1First part is in there.
Speaker 2Make a joke about Murillo. Yes, so you would. It would be weird if you would not be in the prompt. Right, right.
Speaker 1It's like make a joke, murillo, but I think, yeah, maybe you just ask for a pun or something.
Speaker 2No, 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 1Ah, 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 2It did pretty good, yeah, so next time you come up on a joke.
Speaker 1I'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 2I don't see.
Speaker 1Next time is your turn. I get a bit anxious already about this.
Speaker 2Maybe the last topic, so we were discussing mid-journey.
Speaker 1Yes.
Speaker 2Beginning 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 1You're gonna put some romantic music in it oh yeah, oh yeah.
Speaker 2What are you thinking about it?
Speaker 1It's Valentine's Day, part Nice.
Speaker 2I'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 1Wow, okay.
Speaker 2Yeah, 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 1But a core is in the core, like five cores in your CPU or something.
Speaker 2I 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 1It always comes back.
Speaker 2It always comes back. So yeah, there's that Okay.
Speaker 1So I guess the two different pictures you put in there.
Speaker 2No, the same picture. It actually gives you four different variations of descriptions, but now you know how you can generate yourself.
Speaker 1But 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 2That's not far off.
Speaker 1That'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 2What do you think would describe me Not as a I?
Speaker 1guess we'll see.
Speaker 2Tall Dutch guy? I don't think so.
Speaker 1I feel like the stereotypical Dutch guys like Blond, that's true, right and no beard. So by there you're in Blond.
Speaker 2I'm 20 centimeters taller than me.
Speaker 1Yeah, like super tall. I was in Amsterdam airport one time I went in the elevator I disappeared Like just yeah.
Speaker 2Huge 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.