Hey, folks, welcome back to another episode of the Ruby Rogues podcast. This week, on our panel we have Valentino Stole. Hey Now, I'm Charles Maxwood from Top End Devs. We have a special guest this week and it is Obi Fernandez. Obi, it's been a while. How are things going? Pretty good? Man? Thanks for the invite. It's an honor to be back. Yeah, So do you want to just I know you're writing an AI book and I see you active in the Ruby AI discord.
But what else are you up to? What else should people know about you? Well, I've been I've been living mostly in Mexico City since twenty seventeen, So people usually find that interesting and asking what that's about because I grew up outside of New York City and spent twenty years in Atlanta, you know, in the south east US. But yeah, Mexico City is super cool. It's a great place for expats to live, great lifestyle. And I've
done a couple of startups in recent years. One was an NFT platform that that kind of went took me, took me in one hundred other employees on a on a big roller coaster ride with venture backing, and then crashed and burn along with the rest of the crypto market a couple of years ago, so that was interesting. And yeah, for the last year, I've been working on another startup called Olympia, which is a platform that gives you AI powered consultants to add to your team. Is kind of humanizes AI. So
yeah, that that that's been a lot. That's been a lot of fun. And it's doing well, growing about ten twenty percent month a month. So oh wow, that doesn't seem to be letting up. Good deal. I love Olympia. Oh, I'm happy. I'm a happy user here. Super cool. I didn't actually realize that. That's a surprise. That's awesome.
So where where do you find it? Just Olympia dot com or something Olympia dot chat that chat Okay, yeah, I need to I need to bite the bullet and spend on the un the AI or dot com writing there, but they're expensive. Yeah, we'll have to check it out. In the meantime, we're I kind of want to get back to the book. You know that you're writing about AI and Ruby and I'm kind of curious.
It sounds like you've been working in this for a while, but how did you get started with this and you know, what, what have you done that makes you the guy to write this book? Well? This this isn't my first startup that I've tried to do in AI. It's like back in twenty eighteen, twenty nineteen, as a side project that kick Us Partners, which was my consulting company that I merged with Magma Labs. Back in twenty
twenty, I did a project called Demos Guru and the Idea. So I'm also involved in music and music production, and so I'm and was running a somewhat active record label at the time as a hobby. So one of the problems that identified for myself and other people that run record labels is that you get this flood of demos that have nothing to do with the kind of music you put out, or they're just not up to par in different ways,
you know, not mixed properly and whatnot. And I didn't actually realize that machine learning stuff, it was a craze back in that era twenty eighteen, twenty nineteen. I was just reading some analysis of it and and I don't know, maybe COVID scrambled my brain, but I thought it was pretty unique.
What I what I was thinking of doing back then, is like basically trying to use machine learning to detect different qualities of a piece of music, including its genre mastering, you know, quality of its mastering and mixing it, and then other things that you could use to identify music. So worked on that for nearly a year. I didn't get anywhere really really really hard math and you know, just kind of difficult problem that wasn't cracked yet.
I'm not sure that it's cracked yet right now. Actually, no, I think about it. I'm really thought about it in a while. But the people are doing the reverse, which is taking text, you know, and turning it into music, and I was trying to take music and turn into text, which I haven't seen yet. So if any was working on that, reach out to me. I'm super interested. But yeah, like a we were talking about Olympia right like like a year ago I started working on
this. This startup actually actually goes before that. So the last Rails comp I went to, which was the first Rails comp in a while, was in Atlanta last year, and I was super excited about launching like a chat TBT clone in Rails at the time, so so I scrambled and I made a little platform called Magma Chat and I opened sourced it during Rails comp and kind of announced that it showed it to a bunch of people even at that comp. Even at the Rails comp, I mean a lot of people.
I was showing it too. Had never seen chat to BT yet because it was still recently, you know, fairly recent didn't know what's going on. So blew some minds just in terms of showing people what you know you could do with GPT four. And then my girlfriend kept complaining about her copywriter at work. So she was she was running partnerships for a large conference series, and she had this copywriter in India who was paid very little money and produced
very low quality copywriting, so she was rewriting everything. And I said, well, hey, I got this Magma Chat thing deployed. Can I make you a copywriter? But and she said sure, and then I gave it to her and I watched, I watched her use it, and she's just started using this thing for hours a day and basically started doing all her copywriting herself. And then very soon thereafter she said, can you can you make
me a whole editorial team? And I said, well, what do you need And she said, give me a copy editor, give me an se O expert, give me a marketing expert, you know, give me a PR expert. So so I put it together and very quickly realized, Okay, there's got to be a startup here, because she was willing to pay for it, and I started showing it to other people and they were interested in paying for it. So I said, do you want to you want to be my CEO? Because I was CEO of my last startup and I
hated it. I'm more of a natural CTO as you might imagine, so so yeah, so I brought her on board and we started Olympic together, and I had a beta product ready in a couple of months. We launched it in July into close beta, and then we launched to the public in September. And it's all it's not using Python or typescript or any of the typical, you know, usual sub suspects you'd want to use for something like
this, or you'd expect to use. Brought in rails right from the beginning, kind of forked Magna chat when I started, and then eventually ended up replacing almost all of it. Have not done a good job of keeping magma Chat up to date. Sorry whoever picked that up really screwed you over on
that. But my partners at Magna Lab have you know, also kind of fork from where I started, and they have a commercial version of Magma Chat that they'll implement for people, you know, behind the firewall kind of thing. So, yeah, you were asking about the book. I mean essentially I took you know, I took notes. Given I've written technical books before, it's just a few, so you know, I was taking notes along
the way. And right from the beginning, I was like, Wow, this is comp to me completely novel kinds of programming, you know, it just it's just totally new paradigm in the way, just things I haven't seen before. So I was like, okay, I started documenting what were essentially patterns and approaches and things, and I guess I did a little bit of blogging about it as well. I mean some of the early blogging and did
on the subject went viral. When something when the topic is so hot, like the D and D post I did for a I got hundreds of thousands of the reads on medium, so that was kind of insane. And yeah, so that was that was what first took beyond it. So like when I first got access to the open AI API, my kids were actually here.
So I have a twenty seven year old daughter and a twenty four year old son and now sixteen year old son, and the sixteen year old is really into Dungeons and Dragons, and as a family, we did a lot of gaming growing up as well. So they were here for spring break or I guess it wasn't spring break. Oh, I guess it was like a late holiday break. I can't remember exactly, but they were all here in
Mexico City. We're all here at the same time. We were playing Dungeon and Dragons, and I said, hey, I bet you that this this AI thing could be a good DM for a role playing game. And then so so I started playing around with it, and I tried to make an app for it, and then I described it in the blog post, and that blog post blew up really big, and I started getting that like you know, Spidey sense of like, okay, here's another big wave to ride, you know, so go go ahead, go ahead, Valentino. Oh
no, I mean I have a lot to say here. Yeah, I mean, I love the dungeons and dragons use case, which is kind of interesting now with chat GPTs like multimodetdality, like just talking with it. I had like a long ca car ride recently where I was just like talking through a business idea and it's pretty remarkable. But yeah, I mean the whole Magma chat stuff. I love that. It was actually really inspirational, like
for how to use AI in a lot of ways. So you're out there wondering, like that's definitely like a great place to start to just like pick apart a you know, how to do X Y z uh, you know, until your book comes out, because a lot of that is conveyed in there. Well the books available, we'll talk. You can get it right now on lean pup. And there's actually much better code out there now than Magma chats. So if you're listening to this, don't don't don't go use
Magma chat. I would use ray for Rails or one of the other newer, you know kind of things for this, But yeah, I mean I'd love to chat through some of the just the concepts in there. We don't have to talk about the details of it, but like you know, kind of just like giving memory to like agents, right, which I thought was
really interesting idea. And you know how because a lot of people think, like, you know, to your point of like making a copywriter or Dungeon dragons master, right, like these are all kind of like just roles, and a lot of people think, oh, like you could just do that with chat GPD, give it a system message or precluding user messages to say hey, you're now this role like and a lot of people just say, okay, well, why would you need any other service or any other like
you know, advanced thing where CHATBD is just going to do that for you, Like, you know, what are you doing on top of that? Right? Like what is because there's like a lot of like yeah, the key insight there and which is really the foundation of why me and many other people can do startups on this stuff. Is that prompt engineering. To us as programmers seems like no big deal. It's just how you use the tool.
But to a person is not a programmer, it really really seems like programming, which means they're not interested in doing it or not very good at it. You know, it's just not the way their brain works. So when you give them an option, it's like our our profile at Olympia. Like our heaviest power users that we've interviewed, a lot of them are non
technical. They're not they're not programmers. They are early adopters. They're very excited by the technology and they follow religiously, but they're not so interested in learning the intricacies in and outs of a prompt engineering And I mean, yeah, no, I'm just I kind of want to bring it up a level or two because you know, we went right into kind of the the GPT largely model and you know and chat GT GPT like things and prompt engineering,
and so I'm just wondering, as far as you know your book and some of these other things, is that the hope of your book is covering that stuff and maybe you don't go into things like transcriptions with whisper or you know, computer vision or things like that. And the other question that I have is is is that where people can jump in and how do they do that right? Because because I want to make it very approachable for people to go, huh, this is the Okay, I'm in a new way. I
this is this is where I jump in. And yeah, I don't know if prompt engineering is the way to go and anyway, so here's my answer to that and the read. The thing that kind of tipped me over into like, Okay, I should start this book now was that an old friend of mine, Tom Mornini, who might be listening to the show. We were at a conference. I was giving a talk on the eye, and he was in the audience and raised his hand at the end of the talk
and said, where do I get started? Like this is also overwhelming, and that that was a spark where I was like, Okay, I got to start working on this, and I literally, I literally start working on the way home, on the flight, and then just dedicated a huge amount of hours to try and get as much done as possible on it as quickly
as possible. The reason is my belief, and I'm not sure how many other people necessarily share this, but I mean think it's trying to spread is that you don't have to start an AI project in order to use this stuff, Like you don't have to have like an idea for an AI startup or
something like that. Like almost everyone who's currently maintaining or developing an application on Ruby unrails can probably get some benefit from taking a particularly complex part of their code and dropping in a discrete AI component to handle it so that you have an example. So the example that the example that I like using. So, so okay, anything that involves user generated content, for instance, you
mean like a blog, like a blog with comments and whatnot. And I realized that there's services that that you can use to to do what I'm about to describe. But I mean anything involves evaluation of user generated content. Right now you can do very very easily with using large language models, and you
know existing APIs that that's kind of a no brainer use case. But but when I go into the book and I've been I've been using it as an example and talks and whatnot, is that you can actually take parts your code that are implemented code. But if you had a little person that you could stick into your code, then you might want to use you a little person
instead. So in Olympia, the example I give is the example of the account manager class, and the account manager class handles a few different operations involving changing a customer's account, most notably adding an assistant to your account. So internally, so in the user interface, this is this works with a button, so like you you look through a catalog of users that are available to add. We call them clones. YadA YadA. But when the user presses
that button, internally, the internal API uses plane plane language. The internal API tells the account manager user with this ID would like to add this bot config with this ID to their account. And if I here, I'll just I'll just pull up the the actual prompts. I can read it to you.
So it sounds like though you've got some form of interaction that I, as your user, do and that triggers essentially a prompt to be sent, Right, it's not this explicit function or method call that there's a Yeah, there's a component in my app which has the role of account manager, and it has a selection of functions that it can call, and those functions can mutate the customer's account. Right. It also has functions for communicating with the
customer or with an account service rep or both. And it also has a finalized because the request is encapsulated in a change request object, which is tracked in the database. So when it's done handling the change request calls finalized which persists that along with the transcript of what happened. But it gives you a tremendous amount of flexibility and also it saves you time development time. So I wrote this very very quickly. I mean, once you identify the pattern,
you start wanting to look for places to use it. And then the prompt reads like the requirements for the code. Okay, So the way that you described this, I think it's okay to do this on a podcasts. I think people are listening. So this is the this is the prompt for my account manager component. Okay. You are an account manager for Olympia, a
platform that provides AI powered consultants and personal AI clones. Your role is to assist Olympia Clone owners by answering their questions, help them configure and manage their e clones, and executing tasks related to the clones and Olympia platform. That itself is an approach or pattern that's described in the book. You're basically giving a role to the AI. So and then now here come the instructions.
When interacting with clone owners. You should provide clear, concise, helpful responses to the inquiries about account account management, building platform features in clone configuration. The reason I can do that is because I give it functions to be able to look up that information and convey it to the customer assist with tasks such as initiating client conversations with their I clones, modifying. Oh, I think I picked up there. I'm bringing the prop from the clone manager, not
the account manager point. Let me let me take a step back for a second. I think if you're listening to what I'm just saying, you kind of get the gist of it. You can give instructions to these things. There's another one which has smaller scope. This one's to help specifically with people that run clones on Olympia. There's one that is an account manager for regular customers, and one thing it can do is add a particular botcom fig to
your account. We rolled this out and within a week week and a half, a JPR customer service guy goes, hey, we have a problem with the clone adding. Someone added a clone and their account is inactive. Would you like me to create a notion story for it? And I opened the code while I was chatting with him and Slack about it, and I looked
at it and I said, no, I think I got it. And I added in a statement to the prompt which said only allow addition of botcomfigs if your account is active, I literally just type that into the prompt of the account. Oh you get what I'm saying. You didn't have to add a conditional to the code, you know, extra checks or unit tests or yeah anything, modify your pundit scope or your pundit rules. Yeah. I literally just enhanced the instructions to the account manager and did a quick manual test
and yeah, it worked, and we're good to go. And in fact, you know, if you think about what you would do traditionally with that, like you might you know, if you have a state which is invalid like that, then you might have to actually like write an email template for it, you know, in email or and whatnot. And in this case, you don't because it's instructed to communicate with the user and let it know
what happened with the operation. So if their account is not active and it doesn't add the bout configura, we'll send them an email and say, sorry, your account's not active, soul, I couldn't do the thing you asked me to do. So going back to the idea of getting started, then, I mean, is that is is this the kind of thing you're encouraging
people to get started with is just a I don't know. I mean, this is at GBT and start writing prompts and it doesn't use chat g BT uses it uses uh, you know, the API, and there are there are I have my own framework called Ray and there's other you know, frameworks for for how to use this. You could you could go at it at different abstraction levels. Right, So I mean, but for the most part,
you need to understand the chat completion operation. So this this concept of you you give a system directive that kind of sets the stage for what you want the AI to do, and then you have a conversation with it where where you say something and then they say something and then you respond so and and so forth. So you have to understand that modality. You can engage with that modality at a couple different levels of traction. Those abstraction layers are
provided to you by a library. So for instance, right, the one that describe in the book, And I mean you can go whole hog, which is how I would characterize the account manager example I've been talking about.
But you can also do much much smaller things. So like one of the patterns in the book is the predicate pattern, and that's just a small component that answers a question yes or no. We answer yes no questions all the time in our code, but they're usually very very narrow scope, and if they're not narrow scope, then they tend to be brutal or difficult to maintain
because pretty much any unanticipated state will break it. Right, And one of the great things about AI is that if you implement a component like this with with an l M back end, it can sometimes handle unexpected situations very very
smoothly. You know. Yes, I think you bring up a great abstract point in it's a lot See, there's a lot of people that are like, oh, no, like, you know, all this AI stuff is coming from my job in X right like, and programmers for sure, like like you see this and you're like, oh, why don't we just have a programmer bot and it takes requests and we just you know, chat to it and it'll you know, make our application for us, right like,
which is not totally unreasonable, but is unreasonable in a lot of ways. Uh, you know, hallucinations come to mind, like how do you make sure that the account manager right like just doesn't start deleting things? And right like that there's like a rogue function that it's created along the way, and now it's part of that tool chain. Like I know, there are a lot of checks that you can put in place, you know, to prevent
that kind of stuff. But you know, a lot of it is just like getting natural language, though brought to whatever that you are doing, to compliment. It's how I've seen it worked most effectively, which seems to be how you've kind of created your framework here for rey, right, whereas it's complimenting the experience that you already have as a real developer, just making it
easier to take advantage of this new tool, which is really AI. Do you see it that way or do you also see like maybe it is coming from your job. No, I don't think well, I don't think it's coming for any of our jobs anytime soon. And it most recently I got I got access to something called GitHub Copilot workspace. You got to sign up for it. There's a waiting list. It's a preview product where the interface is super cool and like kind of the promise of it is super cool.
Essentially, you attach it to your repo and then you start a session and in the session, you go I need to fix this issue, you know, or I need to add this feature. You describe what it is in plain language, and it scans the code and then it comes up with a plan of action, so a checklist of like I need to do this and this and this and this and changes this class and so on and so forth. It kind of looks like what a discipline developer would do when you sit
down because you picked up a feature or an issue. So far, so good. I was really impressed with that part, and then I said, okay, go right, Like I asked it to change a particular class, and maybe I was too ambitious. I wanted it to refactor, you know, three different, three different, very similar implementations into one thing that I want to get into bloody details. But so I had go. And then I thought about it for a while, and then it pulled up the code
and I saw the changes in action, so that part's super cool. And then it highlighted a bunch of the code, the existing code, and it deleted it, and then it put in a bunch of nonsensical methods to replace it that had nothing to do with what it was supposed to do. And I was most definitely underwhelmed. And now it is very very possible that this works much better with Python and typescript, but it doesn't know the rails way, that's for sure. Because it was garbage. It was hot garbage.
I tried to work with it a little bit, you know, And so now this needs to get much better, and there are I think very credible reasons to think that it might not get that much better anytime soon. I mean, I think I think right now. One of the lessons I've learned that Olympia is you have to throw a lot of brute force to get to get a usable result, you know, in terms of these things being quote unquote intelligent and having memory and figuring out what you want and being able to
recalibrate. And the reason I'm able to do that is thanks to the race to the bottom and the price of commodity AI models. So a lot of these open source models that you hear about how mix Droll and Lama three and you know, Wizard LM from Microsoft, so on and so forth. So there's all there's all these model providers competing two you know, to in this market for AI services, and they're driving the price to zero and the performance
up. So that's great. You can access a lot of this stuff, and I do think that the price will keep dropping for a lot of these things to the point where it'll start to make sense actually incorporate it into your run time, know, like at the rails level, and then maybe in the future at the Ruby level or even the virtual machine model for doing things like error recovery, or you know, like if you want to crank the
dial up, Like if you're okay with uncertainty and nondeterministic behavior with some of us, are, you know, you can crank the dial up and have it do things like you know, cover for you if you give it the wrong type, or you know, try to automatically handle moll pointers and you
know, you know, things like that. There's a lot of really interesting, magical, dangerous ship that I think we'll start getting into, you know, as we get more comfortable with these technologies and as the cost comes down, because right now the cost tends to be somewhat prohibitive, especially especially if using frontier models, which is what they call GPT for or or clad.
But but the smaller faster models, man, they're so cheap. I mean, it's like point zero zero four cents you know per request, which for Olympia. Uh, you know the scale that we're at is okay, you know, that's a that's a manageable bill. You know, if you're if you're a much bigger company than maybe some of the things that I'm that I'm
suggesting literally don't scale. I mean they end up costing you a thousand dollars for more on the topic of model choice, Like, I guess I have two questions around that, like how do you go about finding the right model for what you're trying to do? And how do you like, what is that exploration process? Like what is the what process? Like what's the exploration
process for exploration? Yeah? Yeah, Well I'm a big fan of a service called open Router, and I wish that iniquity stake because I'm evangelizing them all the time. But they, uh they power the power number really popular AI based services like Silly Tavern and uh a new product that I'm using which
i'll plug called novel Crafter. Uh. They're super awesome. And the expiration process is basically going to open routers playground and being able to compare uh you know, run prompts and parallel and see what happens with different and AI models, you know, like basically saying, okay, here's GPT four as my benchmark, and then try to run the same thing against SLAMA three and mix
stroll and whatever. So I'm down the line. And the main reason he's open router and I featured in my pro and most of the open source I've done, you know, a half dozen open source things I've done, is that it's one a p I key, you know, one end point one account to manage and pay for, and it gives you access to everything open Ai, Claude, Gemini Pro, you know cohere, like all all the major models, and then a whole bunch of open source models including once you
never heard are available there. It's probably have a couple of hundred now and for the ones that are offered by multiple providers, so so like the example of provider would be like DPT four is offered by open ai itself, but
it's also open offered by a zor. So one of the things I really like about open router is that if GPT four is down for whatever reason, it can automatically fail over to a zor, which means I don't have to have a Zoro account, which is great because I don't like premature aging, so the you know, Zor is very very difficult to set up and work with and everything like that. So yeah, but you were asking the selection
process is trial and error. I mean, I think there's some there's someone in the Rubai discord that's working on some I think it's called prompt Garage or something like that, which gives you some sort of framework for for doing this in a methodical fashion. But it's pretty easy to like once, once you got it going, it's pretty easy to just plug in a model name and see if it works. And I do tend to TDD these things. I don't leave them in my suite, or if I do leave them in my
suite, they're backed by BCRs so that they run quick. But I do tend to TDD my my AI components. So I'll just sit there and iterate you know, red green until I get what I need. And one of those things that you change while you're trying to get it to work is the model. Trying to get the cheapest, fastest model that will consistently work. So do you walk through this process in your book? Yeah? Yeah, that's fair. Yeah, the whole first half of the book is kind of
approaches, and then the second half of the book is like concrete. This is you know, this is a pattern, this is the name of it, this is how you use it. Here's example code. Yeah. I will say I haven't made my whole way through the book, but I've made a decent amount. And I do like how you keep reiterating on like the discrete components aspect of it, which I think is reflected well. And you're like ray framework right where you're just trying to, you know, encapsulate whatever
the task at hand is and keep things small. And I think that's kind of reflective of how the models work in general, is like you give it too much and it's going to make more mistakes, which I think is true of people too. Yeah. Yeah, I think of them like little people. There's a chapter in the book called Multitude of Workers, because that that's
the approach that I advocate. It's one way of thinking about it. It's like, you know, if you had little people that you could put not little people, but you know, if you had you know, human little humanized bits of code, you know that you could give jobs, but they have to be narrow jobs at the moment. You're absolutely right, Valentino. You give these things too much surface area, you know, too much to
think about, and they mess up. The only model that I know right now that can reliably handle more than one or two tasks or functions or you know, just that kind of latitude, that kind of discretionary behavior is GPT four. Supposedly Opus from Claude can do it. But their tool their their framework for invoking functions is more immature. But like some of our some of our bots in Olympia have twenty twenty four functions available to them for every single
request. So anytime you're talking to them, anytime you send them a prompt, they have twenty or more functions that they can call for things like checking system status, for sending email, for recalling things from memory, real time search, Google search, image search, image generation, you know, so on and so forth. This is kind of like their palette, their tool belt of things that they can use to in book and there's yeah good. I'm curious like the testing approach here, right, Like, is it does
it start to like take a different shape than traditional web development? Right? Like? Is it more like because once you get to the multitude of workers, right, and you have more than one. I could see like encapsulating one as like a thing like maybe like a rails model or something like that. And you have like unit tests that make sure that it says what you
wanted to in a certain format or whatever. But how does like the orchestration aspect, does that also translate the same way to like the controller flow, like to you know, feature tests or something like that. Is there a parallel to that multitude of workers working together or do you kind of just like is that not really something worth doing? I haven't gotten too far down the
rabbit hole in terms of trying to do automated tests for intelligent workflows. There's no reason that you wouldn't, you know, if you were so inclined trying to think of how to intelligently answer that question. Speaking of a rabbit hole, I mean, yeah, you can start combining these things and it can start getting pretty micro service feeling. I realized that a couple of months ago.
It started reminding me of some of the servilests approaches. You know, like I was really really hot on micro services powered with Lambda when the Services framework came out. So this is back like in twenty fifteen time frame twenty
sixteen. I started writing a book on it, and it starts to it starts to feel like you have little micro services inside of your monolith when you incorporate these and rails, because they have you know, they have a very what I want to call it, the way you interact with them, like they're well encapsulated because they're black boxes. You know, you literally can only do input and output of messages with them. So I think it's cool. I mean, I love that approach, and I don't I I'm a hacker
at heart. I started as a hacker when I was young, so I don't have a lot of hang ups about like this has to be absolutely correct. And actually I think you're probably a little too worried about hallucinations, Valentino, just from what what it sounds like, because for a lot of these use cases for discrete AI components, I mean, it is, well, since since you've since you've put a lot of constrains, constraints on what you
want it to be. You know what you wanted to do, what kind of output you wanted to give, and you you crank the temperature parameter down to zero, which reduces the amount of creativity that the model, it like constrains the possible choices of the model down significantly. That brings me to another question that I feel like I always get, is like, you know, how do you find out what it's good at and what it is like it? Are there like definitive things or is it kind of just like learn as
you go aspects of it. Well, I've definitely learned as I go. I mean there's there's some things which are I think a little too meta, so like to maybe I just haven't hit on the right way to do this. But like we do automate automated evaluations of the conversations in Olympia, and
you said you're Olympia user. So basically there's a process that kicks off after conversation idols for like fifteen twenty minutes, and there's a component that will look at the conversation and give it a numerical grade up to one hundred and say this is what the bot did well and this is what did not so well, And if it drops below a certain number, then it gets flagged and
that goes to a dashboard. So we can see kind of like the overall performance of the system and also so we can be aware in case that person that user is having a lot of issues, then we can reach out to them and say, hey, it seems like you're having some issues with your Olympia assistance. You know, can we help. And what we find with these evaluations is that the model is very, very generous. It's like the nicest teacher you ever had. I mean, almost everyone gets ninety five,
it doesn't matter how how bad. Like the worst I've seen again is seventy, you know, and that's where everything was falling apart completely, And it's very kind and generous to itself, which is like kind of a weird thing to say, but you know, it's like the bot really really tried. Yeah, so that I couldn't get to work right, I mean, there were other things used. There used to be a lot of this has gotten better, I think too, just mostly because GPT four has gotten better.
But there used to be a lot of hallucinations around what we call stalling. So you'd ask your Olympia as system to help you research something and they'll say, on it, I'll get back to you in three hours. That's a hallucination. They have no ability to go do a sync work yet. I mean, we're giving it to them, but six months ago they did not. And then the person would be like, great, how will I know when you're done? They're like, I'll get back to you, or sometimes
say i'll email you what is done. So they're really taking this human nice thing to heart, right, But that's not good behavior because then you're sitting there And we used to joke around sometimes that your Olympias system could turn into the worst employee you ever had, because I mean you we had some users that would just keep asking them is that done yet? No, I'm still working on It's been a week, are you what are you going to be done with it? So thankfully a lot of stuff has gone away. But
but I wrote a bunch of components to try to detect it. And it gets into it gets to the limitations of these statistical models with regards to detecting patterns, you know, because what you're really asking to do is to to detect a certain pattern. But the past it's you can't describe the pattern concretely. You have to describe it very subjectively, you know, like and it just doesn't do well. But in fact, this there's this arc challenge, right, now, which is to try to squeeze a state of the art
pattern matching you know, behavior out of AI. And there's there's like big prizes for whoever can get it because they suck at it. And it's really really interesting to see. If if you think GPT four is super intelligent and can reason and stuff like that, and you want to you want you to knock down your expectations a bit, give it one of these ARC challenges.
And I was gonna say I was, I was messing around with this ARC challenge uh the other day and it yeah, I was like, oh yeah, like the large language models, they should be able to handle this, no problem, uh, And it's it's remarkable they can't. Like they fail like kryptonite you see, Superman like, which is funny because like you give it like the whole thing is like you can give it arbitrary structured data and
like it has no problem like reason or not reason. I don't want to use that word, but like you know, pulling out the pieces that fit together of that structured data, but anything where it's like it has no reference to which I guess makes sense because that's how it's built, is based on
reference material. But you give it anything, like you know that it has no understanding previous knowledge of and it can't really fit the pieces together, even though like to us it just seems so obvious, right, which, Yeah, you know, maybe that we need another modality of like pattern matching. Yeah, I mean there's theoretical modalities that include like real understanding of the language, but I don't see anyone working on that yet. So all statistical models
are the flavorite that you are. I would like to just quickly like dive into uh like cause you mentioned a lot of it's just like you know, you learn as you go and it's trial and error. Like, is there any like standout pitfalls that people should avoid, like as they're diving in, like to just stay steer clear from doing X. Right. Yes, absolutely, I have a perfect example of something you absolutely should not do in your
AI journeys. In your programming using AI journeys, you will inevitably write something that loops. So basically it does a check completion, and the check completion will probably call a function right to do some behavior external to the model, and then you have to loop so that the model can take the results of the function call and incorporate it into its final answer to the user or to
the rest of your system in some way. You definitely want to put some sort of limit on that loop aka circuit breaker, because you can run, you can rack up a huge bill very very fast if if you make a mistake there where it just continues calling, you know, calling again and again,
especially if you have large contexts like we do at Olympia. I had a embarrassing failure like that where some subset of our conversations would uh just keep looping and the retry the circuit breaker was broken, which is always said,
test your circuit breakers really well. So we had all of a sudden, my my consumption shut up from you know, like two deviations, and I was like, looking at that, gone oh, and I go into the logs an open router open rider shows you kind of like tokens into out and the cost associated with it, and it's just the same number of tokens in and out just boom, just like multiple per second, all the way down,
just filling the logs. Yeah, with GPT four it's like, oh no, Luckily the open router guys kind of helped me out a little bit, but yeah, that was bad. So, yeah, these things are expensive. I mean you're using you when're using the expensive models, they are expensive, HM, in a way that many of us are not used to, you know, because we're used to you know, heroicodyno costs an x
amount and you kind of know what you're getting. You know a lot of other SaaS APIs you know, kind of costs a certain amount, like you get it. This thing kind of has like it's like a it's like a short squeeze. I mean, it's gonna like unlimited boom, Like you're down a few thousand dollars just because you've made a bug, you know, your code. So a lot of us are not used to that, So yeah,
be careful of that. Yeah. One thing that I was so You've mentioned journeys and context, and I've heard people talk about training on top of kind of the large language model, which I'm assuming is sort of the same thing. Maybe I'm missing the boat on this, but yeah, if I have a specific use case where I wanted to, I don't know, refine or summarize you know, some of the information that it pulled in or things like that. I mean, how do I get it to be more specific?
So let's say that I had a text that I was routinely putting into it, and you know, I wanted it to summarize. You know, I'm thinking, here's what I'm thinking. So I was talking to some friends of mine and they were somebody mentioned that it would be nice if there was something that would summarize the bills that go through the legislature every year in Utah.
Right, And there's usually like stricken out language, a new language put in and it shows you the context of the Utah Code that it's going to modify. And so you know, it looks like the models that you've built on Olympia. Right. It can go and it can read this stuff off the internet, and you know, and there's a way to consume it. So how do I get it to be proficient at getting through that stuff and then giving me what I want to know without having to go and read the
entire bill? So you might you might be thinking of a technique called fine tuning. So a lot of people think of a lot of people think of training, and there's different ways of making models better at a specific purpose. Right, And I experimented enough with it to kind of know how it works and what it's for. But I've found that you don't really need fine tuning for most use cases, like what you just mentioned, you wouldn't need fine tuning at all. Okay. I wouldn't have to teach it how to read
a bill. I could just give it the language and it could say, oh, takes this out and puts this in DPT. Yeah, GPT four and Claude and Gemini pro like what they call frontier models and I call expensive ones. They know all this stuff already. In fact, what in the book I call the I call the process of applying a large language model to
your problem domain, narrowing the path. So when you're when you're thinking about the the power of your eye model, one very useful thing to have clear, especially if you're completely new to this, is that it literally knows everything for all intents purposes. Okay. So the space of its knowledge, the universe of its knowledge, is so so big that if you present it with something that's which is your prompt or what you're asking to do, it had
unless you constrain the scope. It is literally drawing from all of that knowledge. Okay. And if you think about all that knowledge, it not only includes knowledge of the Utah legislature and legislatures in general, and procedures of you know, governing bodies. It also includes legislative bodies and governing procedures of science
fiction novels. Just to give you just kind of a clear example of why there's a problem here, right, So multiply that to times, you know, a near infinite amount of different you know, depending on how general what you're asking to do, it could draw upon way, way more than what you wanted to Okay, So so what I call narrowing the path is what probably essentially what you mean by training. It's but that's you, you know,
figuring out what constraints to give it. And one of the main one of the main ways you can give it a constraint, which is the most popular way right now, is called retrieval augmented generation. So if you're dealing
in factual data, that's called nonfiction. You know, if you're in a nonfiction domain, so you know, your legislature example is the case of that you could make it And I'm just kidding, Yeah, I guess, so I didn't say non fantasy, but not you know, not so the you you can tell the model like, hey, you're going to operate on. You're going to to generate output based on this specific content that I give you.
You add that content dynamically at runtime. That's what retrieval augmented generation means. Retrieval means you're retrieving it from somewhere other than the latent space of the models, other outside of the model, so you're you're going out, you're retrieving it. So that might be like the existing legislation and then the revision, and then you you structure data pattern which is covering the book to present
that in the prompt. And then because of their training, the way that these models are trained, they understand that one of the main use cases that they're used for is to operate on data that they're provided to from the prompt, and therefore they don't hallucinate it. I gotcha, you get it.
In fact, there there's I haven't played around with this yet, but but your listeners might find it really interesting and if I can't find it in the next five seconds, I'll definitely and give it to you to put in the show notes. But essentially, there's a notebook. There's a notebook product that my team was was kind of geeking out over. I'm gonna have to find it and give you the link, but but I can describe what it does.
It was super cool. Like you, you start out with a blank slate, and when I say blank slate, I mean literally blank slate. So you can you give it a prompt. You say, I want you to help me make a high school curriculum, and it goes, what's a high school? So right, you you have you have to provide that information. This is what I mean by high school? And it goes, great, what's a curriculum? And then you you have to describe. Okay,
when I say curriculum, this is what I mean by curriculum. And I and I actually think that, uh this I hadn't seen anything like this until a week ago, and I think it might be new and novel. So it's interesting to think about whether this will take off. It's actually really really super useful. In my opinion. You're constraining it all the way down to zero and then starting from zero so that the possibility of pulling in other things
that you don't care about or that will mess it up are different. So, like I said, I'll find the link can give it to you, but I forget what it's called but right, So I guess the other question, and I think I've kind of inferred this from what we've talked about and
some of the other things I've read. But you can have a long running context, and I know context means something in this world, but you know, a long running context that says, Okay, you know, I've restricted what you're going to run on and so I'm just going to run everything else through this context, right, And that's effectively what you're doing with your AI
assistance that you're providing to people with olympia. Yeah, their context includes everything you've ever talked about, okay with them, so they're able to most of the time. You know, someonet know what you're talking about. I mean, this is still limit has fundamental limited the technology, but it keeps getting
better and worse. Like we're like so in the infancy. It's so obvious that we're in the infancy of this and like you know, those of us that have been around long enough and remember IBM, PCs and you know, common or sixty years stuff like I do you know, actually live through the expansion of RAHM and whatnot, So you know, right, and it feels
like there's parallels there like for like. I had a lot of trouble with UH with uploads in the early days of Olympia because the context was too small and for the most part, no matter how good my my text extraction was, let's say, from a PDF. Some cases I was using like a Zoro document intelligence, which is a really really good way of extracting structure and info from a PDF, even if it includes tables and diagrams and stuff like
that. But then I couldn't fit it into the darn context of the model. It was like it together with everything else I was trying to put in the context, it would blow up the context and then it would fail, kind of like running out a ram. And then somewhere along the way, I don't remember exactly when Google Pro came out and it had like a million tokens of context and now it has two million or more, I can't remember.
So in the matter of an afternoon, I switched it over so that now when you're referring to a document, it uses Google Pro and it just shoves the contents of the document, which could be like a full length novel or more. I mean, two million tokens is a lot, right, Yeah, So that it just gives that to Google Pro and then it asked Google pro the question that it wants to know, So it offloads to a model that's really really good at doing that sort of thing. And I've seen
it do incredible stuff. Incredible I've seen it be able to extract figures from from a payroll report but like that that had a couple hundred employees, you know, and like basically help me do some ledger entries related to moving these employees, you know, expense from one category to another, and it goes into and pulls it out correctly, which is something gpt ford doesn't do reliably. And as we go back to trimal error, you kind of have you know, you start. It is its own field, and it's its own
as its nuances. It has its nooks and crannies of expertise and things you have to know to do or not do. Like the Google thing. I couldn't have told you before I figured it out right that it would be good at that right. That was a trial error. But you were you were asking about context. I don't know if I answered your question your question correctly, but yeah, it operates on context context keys. So one of the main things you need to learn is just how to build that context the books
into that pot. There's different ways of doing it. Actually, X. I think XML will make a comeback to some degree. I posted on Twitter the other day and I talk about it in the book because XML happens to be a really really good way of representing data to the to the model because it's really easy to parse out afterwards. You know, XML in XML out I can't even you know, OBI from ten to twenty years ago is cringing, but you know, it's like it's really really easy to pull information out
of XML compared to other things that it can give you. Yeah, you know, it's really funny. You know, everybody always asks, you know, how does how does it adapt and to learn new things? Or you
know, how does it learn X? It doesn't. It doesn't. You have to you have to tell it and then it can say it's It's kind of funny because like the process is like, you know, okay, you with the prompt to do this, and then you have a prompt that just like matches it with the data that you already have that can then give it to the prompt again and then be like, oh yeah, it's this thing that you told me that it is. Yeah, I don't think we'll get
to AGI personally with the current approaches. I mean, I couldn't. I could be wrong, but I mean, the the the way I see it, it really really like, in order to be a full human replacement, it has to really learn on the fly, Like there has to be a modification to the way that inference works based on new information. And you know, some some people think you can just brute force your way out of that problem. So like, if your context is long enough, you can just
add everything you've ever learned to the context. I would happily do that approach in Olympia, except that it's so damn expensive that it's unfeasible, you know, to do it, Like I could probably like I don't know this for sure, I haven't analyzed it very well, but but just kind of based on my gut and the amount of information that I know that that customers put into Olympia, I could probably fit all everything I know about a customer into
a single Google Pro Google Gemini Pro context, which would be awesome, except every time I ran that it would cost me like four bucks, and you know, and a monthly plan is you know, ranges from twenty to sixty seven dollars, So we're still orders of magnitude away from being able to do
that. When we get to the point where you can do that, where you can fit all the email correspondence you've ever may done, or maybe just all the sentiencesages, let's say, into a single context, then yeah, you got something, But at the moment it's too expensive, makes sense. So I think we're kind of getting towards the end of our time, and it feels like we're kind of whining down. Anyway, I'm trying to ramble. Uh just I could have you on for another hour if you want.
I know you're going. I mean, I definitely have more things to ask. But I mean one of the one of the things we didn't cover, which you know, which uh in retrospect, I wanted to cover because it's it's for this audience, is I have occasionally been discouraged by the amount of Python. You know how strong Python is field right, uh huh, And and like fundamentally there's there's no reason, you know, there's no like technical
reason why it couldn't have been Ruby. And you know, I hear people talk about the math libraries and the data libraries, and you know how those feed into training some of the systems at the lower level. But where we're talking about some of these other models, you're not necessarily building those models. So I mean, is there a reason why it's especially when it comes to you, No, there's not. It's just cultural. It's just it's just
the inertia. So while sometimes I found it discouraging, what what I've managed to flip that around to as the eternal optimist, is that it's a positive because there's a wide open greenfield to do all sorts of cool new gems, and you can in some cases draw inspiration directly from an existing project and the other world. Like the most i mean super clear case of that is lang
chain RB. So like one of the main libraries that people used to do this kind of stuff and Python and JavaScript is called lang chain and there's even a startup around it that's made a lot of money. And then this Ruby is named Andrea created lang chain RB and just kind of lifted the whole approach and wrote it in Ruby, and that's become a thriving project of its own. I I personally don't use lang chain RB because I I want it to feel like rails. I don't want it to feel like lang chain like when
I'm when I'm when I'm using these things in my app. I don't want a whole new paradigm, a whole new architecture, all new set of things to learn, right Like, I want to apply it to the paradigm I'm already familiar with. But nonetheless, I mean, that's a pretty good example of a project that got very big and very popular very fast because they just said, Okay, well that's popular over there, let's make it in Ruby. I think that there's dozens, if not hundreds of things that could be
done in that way. Uh, the smallest, you know, kind of lowest hanging fruit is just client libraries and SDKs for popular providers and SaaS apps and things like that. So like Alex the owner of the Rubai discord, got really famous with his Ruby open Ai library, which is you know, used by millions of people. I would say is probably not a stretch at this point. So super super popular library, very fast. I've done a bunch of little, you know, client libraries for like for open router,
for anthropic et cetera. Like there's so much greenfield opportunity to just come in and do cool stuff. And that that's why I would reckon you know, if you're interested in that, especially if you're starting out your career, you know, and you want a popular open source project under your belt or you know, to be associated with. I think the timing couldn't be better.
That really really couldn't be better. And the other thing too, is that it's not like it's not like years past where the scope of innovation was so narrow that if you like you missed the boat, you know, doing one of these open source projects or gems, you know, oh, well that's it got to wait five years for like the next big thing to come along. I mean there's literally a big thing happening every two weeks, two or three weeks, so you know, that also just makes it even more wide
open, you know. I think it's the coolest place to be. I mean, it's not the end all be all, it's not a silver bullet. It's definitely not a hammer you should hit every you know, nail and your application with. But but it's incredibly cool. And again I go back to this, like, you know, most of the people I've seen that have objections to using AI in their projects or whatever. The you know, they say like it's a stochastic parrot, it's not actually intelligent, or I
can't get deterministic results, or it hallucinates things like that. And I can tell you, as a practitioner with IT for last year that a lot of these a lot of these objections don't really make sense to me, right,
Like I do come at it from hacker mentality. So it's kind of like whatever's clever and works, you know, it's cool with me, doesn't necessarily have to scale, doesn't necessarily have to be the most pure or you know, correct quote unquote way to do things, you know, But when you come at it from that mentality of like, hey, what can I do with this that's cool or magical or amazing or you know, really impress my friends and my grandma, you know, like this is I can't hype it
enough. In other words, nice, So tell us about your book a little bit, because I mean I found patterns of application development using AI. So is this not real specific or is this not the right book or what? No, it's not it's not supposed to be real specific. I mean, I I've been doing rails day and day out for almost decades at this
point, so that's what I chose to do my examples. And also I was very very happy to like lift code directly out of Olympia, because I mean, one thing I personally hate in tech books is like, you know, the car example. If you're going out to you know, or whatever, it's like non realistic examples or stuff that's super academic or just doesn't doesn't
have practical applications. It's like, okay, well, one way to prove that something as a practical application is like, here's literally code that I work on that's in production. Here you go, here's an example, you know, especially for something like patterns, instead of being all handwavy and like, you know, like providing a concrete, specific explanation. So I try to
do it as much as possible in the book. You could probably rebuild Olympia with With what's in the book, you know, I kind of give away a lot of our approaches and secrets and things like that, which is cool. And I'm planning a Python edition and a JavaScript edition down the line for people who just can't get over the fact that the examples are in Ruby but the patterns are not Ruby specific the patterns are patterns for how to use AI
in your normal application development. You could use those same patterns in Ndjengo or lamorel or whatever you want, Java, et cetera. They're they're not specific to Ruby, and that's why there's no Ruby in the title or anything like that. And I mean, I'm I'm very influenced by the Gang of Four Patterns book by Martin Feller's book on Patterns of Enterprise Applicant UH Application Architecture by Greg Hope, and Dave Rice's book on Enterprise Messaging you know, or integration.
Rather that those were like the formative books of my career coming up doing what I did, So they were very influential on me, and I like the approach. I think that they were invaluable for a couple of generations of people doing what we do. So that's what I went for, you know, I said, I think there's an opportunity here to write an evergreen book that really kind of covers the fundamentals of how you integrate this technology with your
normal application. So things I don't go into in the book are will AI replace you as a programmer, and like all the philosophical stuff, not like not at all. I just give one sentence mentioned in the preface, say I don't talk about this. The other thing I don't talk about is AI generation of code. It's cool whatever. There's awesome projects like Scott Werner's Blueprints is cool, so plug him. Copilot is cool. I use it all
the time. I've been experimenting with other things. I think copil it's probably still the best. But I don't get into it because to me, it's not interesting and it's not evergreen for a book. You know, it's literally just a tool. You install it, you get good at using it, and you're done, and they're going to continue changing it every year, right,
so there's no point right book. The stuff that's in the book is truly meant to be evergreen, like it should be good five years from now, which is why we're actually going to go ahead and make a print copy of it so you can get it on Lean pub right now. It's one of the best selling books on Lean pub right now. Yeah, put a link in the comment so if you're on Twitch or Facebook or YouTube you can see it. And uh and yeah, I mean it's like four hundred pages.
I mean it's meant to be a good, good, solid reference book that you that you refer to, and you should be able to pop it open on any page and find it interesting. I mean it's not. Uh, the first half of it is meant for people who are relatively new. I would say, you know, the second half is really, like I said before, the concrete patterns of things you'll refer two times time again. I mean you know when I say I'm influenced by those books, I mean
they're literally sitting here next to Yeah. Uh, you know, it's kind of my go to for I thought there might be some overlap. Actually, and and I if I remember correctly, the only one this is uh, the Follower book, but that there's there's a pattern for proxying uh your API. Uh it is called uh I'm I gonna be able to find it real
quick, yeah, API for. So when I started the when I started working on the book, I was like, oh, I'm probably going to find patterns that are very similar to the Gang of Four or you know, enterprise integration patterns and things like that. And there ended up not really being
that many, if anything. I mean there's some that kind of allude to older patterns and API facade was the one that was kind of like very very similar conceptually to the integration pattern, but at the same time it's completely different. It's essentially earlier in the episode, I mentioned that, like, you know, when you're talking to an Olympia assistant, it might have like twenty twenty five different functions and can call. You can't, at least with the
current state of the art technology. You can't give it like hundreds of functions to call. Basically you're using up too much context, it's too expensive, they'll get confused, et cetera, et cetera. So, for instance, how do we do integration with GitHub or Gmail? You know APIs that have surface area with like dozens or hundreds of endpoints. You use what's called an API facade. So there's basically one function, which is the Gmail helper function
that's exposed to your main assistant. So anything it wants to do with Gmail, it can just send a request to the Gmail helper function. Gmail Helper function, in turn, is another AI that has all the different operations interesting, so you literally go to the you know, if the user asks our assistant, hey, check if I have any urgent messages from Charles, the assistant will call the Gmail helper function and say do I have any urgent email
messages from Charles? So it's proxying it, right, And then that AI has the ability to scan your inbox to search your inbox, right, and that AI has all the full documentation and the prompt directors and things that you need to in order to be able to use that Agat same thing with githubs, we have like a get ub integration so you can actually look it, open prs and do operations and things like that. So that that's like twenty thirty functions itself. So you do it with a helper. So that's what
I in the book. That's what I mean by patterns, right, so identified that this is a pattern that used more than once, you know, and should be reusable by other people. So I generalize it, describe it documented in the book. That is really interesting. I'm just imagining I don't know, a podcast assistant. It's you know, hey, Obi said something he didn't want to say at about fifteen minutes in and it sounded something like
this, can you go take it out? And then it right, it goes to the audio editor assistant, and the audio editor assistant knows how to open up the file and scan and understand. Okay, this is where Obe said the thing, and then right, that's the that's the premise of the
multitude of workers. So can I call the multitude of workers because like in your example, you'd have a worker who was the podcast editor worker so that you know, has a specific set of tools, and it just said start waiting for a request for that, which is why it's reminiscent of micro services, you know, and it's actually I think you think about it in a similar way. Yeah. Cool, Well, I want to be mindful of time, and we scheduled this to end in like three minutes. We're going
to go over a little bit. But this has been really fascinating. I just went and picked up your book. I didn't know I could have it yet, so as soon as as soon as I looked for and I was like, I was like, oh, I'm buying that sucker. Yes it is mine. It is on my computer. So yeah, so I'm gonna go ahead and move us picks before we do that, though, Obe, if people want to connect with you on this stuff, I see you all the time on the Ruby AI Builders discord, and I'll get a link in
there for that, But are there other good places to find you? I'm just you know, usual Twitter. I'll be Fernandez a Gmail if you want to email me. The products is Olympia that chat. We got a little community of users there. Yeah, that's pretty much it. I mean some of my other channel, like if you find me on Instagram and stuff, it's all going to be my music career stuff. So I mean, if you're interested, if you like electronic music, look me up on Spotify.
I'll be Fernandez. I just recently made a spreadsheet of all the music I've ever made since I started, and I'm over one hundred and thirty original compositions, so about half of them never been released. But but yeah, that's come a long way with that as well, So awesome. All right, Valentino, what are your picks? A lot along the subject of today, I'm just gonna do one pick. I saw this talk from doctor Jim Fan who's part of Nvidia's new Gear group, which is generalist embodied agent research.
It's fascinating stuff. But he gave this talk at the last NVIDIA conference on the new foundation agents that they're building around robots and teaching them to learn using virtual dojos. So there's like a very manual process involved in training a robot to do tasks where they have to do a lot of trial and of their
own to autocorrect themselves. And so they've basically found a way to create virtual environments using like some previous products they did with Minecraft, to like teach skills to robots in virtual environments so that they can do the repetitive process of trial and error virtually and super fascinating stuff. And he gives a great talk on how these foundation agents work, and I recommend you check it out. Nice. I'm gonna throw in a few picks on my own. So my friends
came over last night. We were playing board games, and yeah, I think people are pretty used to me picking the board games, and we played Lost Ruins of Arnac, So I'm gonna pick Lost Ruins of our nec. I just pulled up the wrong thing. So essentially, you have like a technology track, you have exploration, you can do, you can do deck building. All of those things play into your score at the end. And so as it's a little bit more involved than kind of your your regular game
board game. Geek waits it at two point ninety six, but it does say that you can play it with the players that are ten ten plus. The community says ten plus, the game says twelve plus. That's probably about right. There were three of us playing last night. We had a great time. So anyway, it came out in twenty twenty. There is an expansion, and I haven't played the expansion in a while, so I'm not gonna shout that out. But anyway, Lost Ruins of Arnac. It's a
super fun game. It's just a little more involved than sort of your Settlers of Katan or whatever that you know comes in about it two. So another pick I have. So I've been working my way through Ayoush who's not here today, but through his book The Rails and hot Wire Codex, and I actually got a working version of my I'm basically rewriting top end depths because they're
just things I want different, vastly different. Right. You learn all your lessons and then it's like, okay, well I could refactor all this, but that would be more work than just, you know, writing it new. And the other thing is is I can add in things that I didn't have before from the start, like internationalization and accessibility and things like that that I didn't do last time because adding that in after the fact I miss stuff
everywhere. So this way I can just be complete on putting it together. But yeah, so he has his chapters on Turbo Native and so yeah, so I have an iOS version of the app running. I have most of an Android version running. I just got it running so that it brings up the website in the in the native view, but it doesn't have the navigation or anything else on it yet. Turns out that's a little bit of work to get that to go, but it's very cool, So I'm very happy
with that. I'm going to pick the Rails and hot Wire Codex by a us Natia and then yeah, there was something else I was going to pick, and I just can't think of what it is at the moment. Oh, I've been watching the Euros. I'm a soccer nut, and so yeah, I've been pretty happy with the way things are going so far. So my team if they're in and they weren't in the World Cup, and it
broke my heart. Is Italy just because I lived there for two years, actually went to a couple of soccer soccer matches while I was there, and I just I just love watching those guys play. If it's not Italy, then it's usually England, France, US and honorable mention is Netherlands. And so all those teams are playing in the EUROS because it's European Championship and except for US, and all of them when their matches. So I'm I'm enjoying
so far watching them win. I think the next game on the schedule that I'm going to be watching though, is France versus Netherlands, and so of course I have to it for France, so we'll see how that goes. But yeah, it's it's been awesome. So if you enjoy soccer, let me know you might see me tweet about it some. But yeah, those are my picks. Uh pick, yeah, do it. I've been playing with this thing called udio. It's like audio but without the a uh huh
except i'm you. I'm so. I think generating a song is a you know, like a full song, especially if use ai lyrics is a just a novelty. I don't know that this will have any sort of transfer transformational impact on anything. However, it's really fun for doing things like impressing your barber, which I did here in Mexico City a week ago. Uh, because we were he asked me about AI, and I said, did you
know I can make music? And then I made a like a like a bonda, you know, kind of a thing about Marcos, the barber who had and and he was so florid that he was laughing his ass off and it literally interrupted all the other barbers to show them in the shop. So it has good novelty value, you know, making operas about your coworkers and stuff. But what I what I'm using for as as a semi professional producer, is to generate vocals and to get ideas based on my own music.
Because a week ago or so they added the ability to upload bits of music. So now now that turns it into a bit of a professional tool, because, for instance, I can take an instrumental that I've made, I make mostly instrumentals, and I can upload it and then I can put in my lyrics and it will sing my lyrics, and I can iterate on that in the same way that you would iterate an image with my Journey or Dolly until you get something usable, and then without getting into the workflow too much,
you can extract the vocals and actually integrate them into your music. So for any of you out there listening who like me, uh you know, love the idea of writing lyrics or singing, but you can't sing worth it, dam then this is a really awesome tool to use for that. And it's a it's a lot of fun awesome that's my big cool all right, Well, thanks for coming Obie, this was likewise thanks, yeah, looking forward to reading the rest of the book for sure, right on. Yeah,
let me know what you think. And uh oh yeah that's it for no, it's all good. We'll just wrap it up though, and until next time, folks, Max out m
