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