All Episodes

November 28, 2024 82 mins
This week, our host Charles Max Wood sits down with co-host Valentino Stoll to dive deep into the cutting-edge tools and strategies in AI development and integration. Valentino shares his go-to resources, including Langchain and Rails plug-ins like RAIX and Ray, to enhance applications with AI. They discuss the nuances of agent-based systems, Justin Bowen’s frameworks, and AI engines from industry leaders like Alex Rudolph and Toby Lukett.

Charles and Valentino also explore the significant impact of AI tools such as Copilot, ChatGPT, and more focused GPT models in streamlining coding tasks, automating tests, and refactoring code. They offer insights on leveraging AI for business operations, the importance of modularity, and the ongoing need for human expertise to guide AI's outputs.

Listeners will hear about the latest in AI-driven projects, including Valentino’s own endeavors in fine-tuning machine learning models for Ruby, and Charles’s plans for an AI development boot camp. Tune in for an enlightening discussion on how AI is reshaping software development, enhancing productivity, and creating new opportunities in the tech world.



Sponsors
Socials

Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:04):
Hey folks, welcome back to another Ruby Rogues episode. This
week on a panel, we have Valentino Stole and now
I'm Charles Maxwood from Top End Devs. And yeah, we
were talking before the show. We had our guest canceled
on this last minute. So if you're trying to watch
this on YouTube and you're like, you're not talking about
solid cash, no we are not. We were chatting and

(00:28):
just to give a little bit of context, and I
explained this to Valentino before the show. You know, I've
been using some of these AI tools that are out
there for a while, but just kind of at a
low level. And what I had essentially figured out a
while back was that like co pilot will suggest snippets
and stuff in visual studio code, which is handy, right

(00:50):
because a lot of times it suggests stuff that it's like, yeah,
that's what I want, and if I'm doing the same
structure in a couple of places, it was really good
at figuring that out right, It's like, oh, okay, same structure,
different variables with But I'd also use like chat, GPT
and some other tools for some of this stuff. And
so one thing that I wound up doing was last night,

(01:15):
I was working on adding a new audio player to
the member area of top end Devs because I'm basically
revamping it because it's it's not what I wanted, and
I found I figured out how to get at least
much more close to what I want. So I was
putting that in there right so that it you know,
it kind of floats at the bottom of the screen

(01:35):
and does a bunch of stuff. And I'd already done
all the styling for that, and so I was telling,
you know, I was using it that basically as a
look up. So it's like, hey, what are the audio
APIs in the browser that I can use right to
put a nice looking player in controls. And I was
just kind of, you know, putting it together. And just

(01:57):
on a whim, I had been listening to a and
I can't remember which one it was. It was one
of the AI podcasts that I've recently picked up, but
they were talking about how they were using it to
actually either generate code or get checks on their code,
and I was like, I wonder if I can just
tell it to write me an audio player right, like

(02:17):
just boom. I want an audio player that I can
put in my browser. And so I tell it that,
and it it writes one right, and I'm like, okay, well,
let's see how good this is. So I turn around, right,
because in chat GPT you can tell it to refine
the answer, right, So I tell it, okay, well, I'm
using stimulus. I want the play and pause button to

(02:40):
toggle to play or pause when I hit play or pause,
you know, I want I want the progress bar to
you know.

Speaker 2 (02:48):
To change as it plays.

Speaker 1 (02:50):
I can't remember what else I told it, but I
also told it I wanted it to be controlled through stimulus,
and that I was using tailwind, and that I wanted
the play and pause buttons to not have words in them.

Speaker 2 (03:02):
I wanted to use font awesome for the icons, and
it spit the whole thing out.

Speaker 1 (03:09):
So then what I did is I was like, I know,
there are more features than I want on this, I
just can't think of what they are. And so I
asked it, I said, what other features should I be
putting in this thing? And it turns around and it
gives me a list of like sixteen things, right, and
like ten of them were features that I might want
if I wasn't just playing one episode. But there were

(03:30):
like four or five of them that I was like,
oh yeah, I want that too, I forgot and so
I put all those in and you know, and so
it's giving me a player. So I put it into
the page and it was like it was a big
square that took up like half the screen. And so
I said, hey, I'm putting this into a bottom banner
that has to fit into an H dash thirty two

(03:52):
sized space in the you know, in the page. And
so it condensed it and so I picked it up
and I put it into my Rails app, and you know,
I'm thinking, okay, you know, I you know, I had
my developer tools open with the console and I'm already

(04:12):
to to you know, to debug it right, and you know,
because it probably got something wrong. And would you believe it,
the thing just worked like it literally like I tested
every feature and it did exactly what it was supposed
to do.

Speaker 2 (04:27):
So then so then I had to tweak the layout
on it a.

Speaker 1 (04:30):
Little bit because it did look a little bit weird.
But I mean literally, it was just came, move this
up here, make that wider. You know, Okay, now it
looks now, it looks decent. Right, I'm not sure I'm
completely satisfied with the layout on it, but it works
and it looks it looks fine.

Speaker 2 (04:47):
So now I'm thinking, Okay, what else is out there? Right?
And I've picked up some other tips and tricks.

Speaker 1 (04:55):
But we were talking before the show and I kind
of told this to Valentino and he's going, oh, yeah,
I've got all kinds of tricks that I use, And
so this is probably gonna be more me picking your brain,
Valentino than offering any you know, awesome ideas or solutions.
But it seems like there's a whole breadth of things

(05:15):
that I'm just kind of opening up my mind to
at this point. So so yeah, So, I mean, I
guess my first question is is did you already know
that chat GPT would do this kind of a thing?

Speaker 2 (05:28):
And what else am I not even.

Speaker 1 (05:31):
Seeing in the wide world of hey, make my code
process better?

Speaker 3 (05:37):
Yeah? There's so many things here. Yeah, I guess like
if we take a step back and just like focus
on like what we're trying to accomplish as like software developers, right,
Like it kind of like breaks down into two things,
like one like abstractly thinking about concepts and how to

(05:58):
like design things, and the second would be like implementation
detail and so like there's two like avenues that I
always like break things down to based off of that,
and so like we just focus on like the design aspects.
Like that's just great as like a GPT like and
for those that don't know, it's like a plugin for

(06:20):
chat GPT even like I have one based on the
stack that I use, which is Rails specific with Ruby
and like x y z design books that I've just
like uploaded to the GPT, right, so like I have
like ninety nine bottles from Sandy Mets and like some

(06:41):
AI specific ones.

Speaker 1 (06:44):
Hang on, so what when you're saying like design books
and you're you're talking about like kind of it sounds
like you're kind of setting up the context for where
you're asking your question.

Speaker 3 (06:55):
Yeah yeah, so like yeah, maybe we should apreciate that.
Like what is a GPT YEA And honestly, like I'm
surprised this is totally like open a eyes like miss
here in marketing, Right, It's because gpds are incredible, right,
Like it's like a way of like encapsulating a purpose

(07:15):
to all of the to chat GPT, right, so you
get your like blanket features of chat GPT of being
able to be a general purpose utility to do anything.
And so it's great at code related stuff. But if
like let's say, like you want to like make super
object oriented Ruby and Rail's work, like that's prime candidate

(07:40):
for making a very specific plug in the chat GPT,
and you can basically give it context like documents that
it can use as reference, and you can also give
it like custom instructions to follow so you don't have
to like re say those things over and over again.
So like, let's you have a prompt that you always

(08:01):
go to that's like, hey, like pretend you're an expert
in object oriented design and Ruby, right, and I want
you to follow these principles. You know, if you're generating
Ruby code, follow this like you know, like linter related thing.

(08:24):
And you can like reuse these prompts over and over
again to get get it to output the things how
you want it to rather than just like chatting through it.
And so with a GPT, you can like frontload all
that work and just have something reusable that you can
go back to. And so I have this open GPT
called the Software architect Mentor, and I use it all

(08:46):
the time, and it's like my abstract go to for
just like, Okay, I'm designing something in Ruby sometimes rails,
doing AI stuff like, use all of that context to
just help me design something or refactor something or do
these things in an abstract way so that way I

(09:07):
don't have to worry about the implementation. I can focus
on design.

Speaker 1 (09:11):
So how do you get that into chat GPT? And
maybe I'm just you know, I haven't played with it enough.

Speaker 3 (09:21):
So they know they have. There's like an explorer GPTs
okay sidebar, and you could just like start a chat
with any one of those.

Speaker 1 (09:32):
Oh okay, so I could actually instead of because I'm
just using the generic chat GPT. I mean that's what
built my player for me. You're telling me I could
have because I clicked on it and I'm seeing like
a website generator or a code copilot. So I could
used the code code pilot and what would have been
faster or better or.

Speaker 3 (09:53):
Yeah, it would be more focused. So I guess like
faster and better are you know, kind of dependent on
the use case, but it might narrow the scope of
the scope. Like as an example, if like, okay, well
let's say you're working on you know, I don't know,
go code or something like that. Like, you know, there

(10:13):
may be some conventions that could be useful, like using
a very ghost specific GBT in the same way that
using a ghost specific prompt can help guide the generation
of that. Right, Like if you just say, hey, like
chat GPT, generate a you know program that like shows

(10:34):
me a calendar, It'll just like use whatever its preference
is based on your chat history with it. So like
that could be any number of languages, could be any
number of implementations. But if you like, open up a
go GPT, it's going to use go.

Speaker 2 (10:51):
Right, Right, So do they have a Ruby GPT in here.

Speaker 3 (10:59):
Or did you There's a lot of people that that
have gpds published there kind of just have to search
through stuff. I just have my own because I found
it very useful.

Speaker 2 (11:13):
Uh, yeah, there are a bunch in here.

Speaker 3 (11:15):
Yeah, you can you basically can give it knowledge and
that knowledge will be used to generate stuff with and
so like I personally have very specific like resources that
I like to like have it reference. Uh and I
imagine other people do too, Right, Like you have your

(11:37):
books that you favored the design principles from, or how
you like code implemented in specific ways, uh, based on.
You know, it doesn't have to be books. It could
be websites. Uh, you know, whatever resources that you use
the code with, you can use it can use.

Speaker 1 (11:58):
So when you're pulling them in, because my mind's already blown, right,
it's like, Okay, I'm gonna go down the rabbit hole
on this stuff real.

Speaker 2 (12:08):
Hard here after we're done.

Speaker 1 (12:10):
But because because I could see, you know, you create
GPTs for other things, it sounds like that.

Speaker 2 (12:17):
In a way.

Speaker 1 (12:18):
That's kind of what when we talk to Obie what
he was talking about with Ray right, where you're essentially
you're giving it all that context and then yeah, you're
doing some prompt engineering too.

Speaker 2 (12:27):
I want to response to books like this or something
like that.

Speaker 1 (12:29):
But I mean the rest of it is, you know, yeah,
then you ask it a question and from everything that
you've told it, it gives you the focused or more
correct answer. So when you're telling it, hey, I favor
ideas from I don't know, you know, ninety nine bottles
or you know, maybe it's the Pewter book the What

(12:52):
Principles of Object Oriented Design and Ruby or something like that.

Speaker 2 (12:57):
How do you reference that in?

Speaker 3 (12:59):
Do you just give it a r L or I
just upload the document. Okay, right, you just yeah, you know,
you go, I buy the book and then I get
the PDF from it and I upload it, right, and
then I can have it generating based off of that, right, Like.

Speaker 1 (13:20):
Okay, so how big is its brain? How much stuff
can I cram in there?

Speaker 3 (13:24):
I honestly haven't tested that, although I have gone through
and just uploaded all the books that I've read, like
from like my programming experience, and that I've found does
not help. Giving it more context doesn't help it. And
to be honest, like that makes a lot of sense

(13:45):
to me, because like the whole point of of like
this honed agent is like you know that it's narrow
in scope, right, right, And so like the more that
you can narrow that scope to like the very specific
tasks that you plan to use it for, like the
better and I like, you know, going back to OBI
when we had them on like that narrowing of the
path is like the best way to think about like

(14:08):
programming or like designing things with AI is like, yeah,
creating the very specific thing that you want it to do,
and like all of your instructions and knowledge and things
that you're giving it are like honed in on that.

Speaker 1 (14:21):
Yeah, it seems like, Yeah, when we were talking to Obi,
the thing that kind of stood out to me was
because the Chat GPT, you know, the GPT model that
you're using, it has everything in it, right, So it
does baking, it does auto repair, and it does it
has Ruby stuff in it, right. And so if I

(14:44):
tell it, hey, I need you to help me write
better code, then if I use a term that is
also used in baking, me narrowing the path is just
telling it I only want the stuff that's relevant to
programming in Ruby and so, right, and then and then
there's other training in there too that might be and
I'm looking for things formatted this way, and I'm looking for,

(15:06):
you know, ideas in this vein or things like that.
I've also heard from people the idea that essentially you
can and I've seen some other people do this where
they have they've like uploaded all the content that they've
made about a topic, and then they essentially have a
like I could create a Chuck GPT right, and it

(15:29):
would be you know, hey, this is all the knowledge
that Chuck has ever put out about whatever. And I've
thought about doing that for like a Ruby rogues, right,
and so I could upload the audio and you know,
or upload transcription transcriptions or something. But my worry is
is we've been doing this show for like thirteen years,
and so some of the stuff we talked about thirteen

(15:49):
years is very relevant, and some of the stuff we
talked about thirteen years ago is not very relevant. And
so I worry that then it's going to go, oh, well,
I consider, you know, the thirteen year old content is
relevant as the right, and so maybe I can tell it, hey,
favor the newer stuff over the older stuff and put

(16:09):
that into the context. But yeah, I've kind of hesitated
on doing that just for that reason.

Speaker 3 (16:16):
Yeah, you know, we're like we're edging very very close
to like the retrieval aspect of like AI design, which
maybe off topic a little bit because it's there's so
much there, but yeah, I mean I think we're if
we circle back to like the tools that we're using here,

(16:38):
like there's so much like that you can use out
off the shelf that like if you just use them
in the specific ways, like you can skirt around those issues.

Speaker 2 (16:48):
Right.

Speaker 3 (16:48):
So, Like as an example, there, there's somebody just released
this rails app called Nausea NSI a dot Ai. Yeah,
and it's like super awesome, runs on a Lama locally
and you can like upload whatever documents you want it

(17:11):
to use and run your own chat sept in a
reals context with all that stuff built in.

Speaker 2 (17:18):
Really French or am I looking at the wrong thing?

Speaker 3 (17:22):
Yeah? I mean the site I think is in French,
but the repo is in English.

Speaker 2 (17:26):
Okay, well in Google translate it. It's it's good at that.

Speaker 3 (17:33):
That's right. But yeah, I mean this idea is like
not new, right, Like, there's lots of other tools out
there as well that you can use to kind of
just get a local version of chatchipt running so that
you can do this with like if you have, for example,
you want to narrow the retrieval aspects to only relevant

(17:54):
stuff based on timestamp or something like that, Like that's
gonna require some like alteration. There's not anything built in
the chat GBT to allow that kind of granularity without
like building something on top of its.

Speaker 2 (18:09):
A p I S.

Speaker 3 (18:12):
But there's a lot more stuff coming out that I like,
uh that's revolves revolves around like the command line aspect
mm HM, where it'll like basically use your current working
directory as like a test bed two like scan for

(18:35):
relevant documents and also like uh, you know, build up.
It's like task at hand.

Speaker 2 (18:44):
Uh.

Speaker 3 (18:44):
So like one that immediate immediately comes to mind. As
a tool called eight er A I D E R
also runs fully mean to help. Yeah a lot, yeah,
a lot of the French in the AI space. Uh
you know hugging face as an example, definitely French yah

(19:07):
mixedtro right. So so many great AI things come out
of France. Uh. But you know with a tool like
eighter like h it basically uses tree sitter and like
scans through EU repo.

Speaker 2 (19:22):
Right.

Speaker 3 (19:22):
So if you're like, oh, I want to you know,
like change the you know, contact page to uh, you know,
add another field for this specific thing in my reils app,
it'll go through and it'll scan the rails app locally
and then find what files that it needs to include

(19:42):
as contexts and then walk through like a step by
step process of Okay, what files do we need to touch?
What changes do we need to make to make that
request happen?

Speaker 2 (19:54):
Uh?

Speaker 3 (19:54):
And you it could even like you know, alter these
files h which is really really exciting because ultimately that's
what that's what I would you know, I'd rather part
of the problem with like just using chat cheapt for
like you know, code generation in general, like it doesn't

(20:17):
have context, and it also like uh, you know, it
makes mistakes like all the time, and then you're like
stuck trying to figure out well, okay, well you know
what mistake is this? Like why is there about here?

Speaker 2 (20:28):
Right?

Speaker 3 (20:28):
And you can do that in chat cheapt too, but
it's just like it slows things down quite a lot,
and so when you get something that's more like wrapped
around the thing that you're building, it makes it much
like smoother of an experience.

Speaker 2 (20:47):
That's awesome. So that that was aider or in French.

Speaker 3 (20:52):
DA yeah, yeah, ader. And you know, there's like a
a more pol version of it, if if you will,
called code buff, but you know it's it's expensive, but
you know, uses the more flagship models like from open

(21:14):
ai or you know, anthropic depending on the context. So
like you get better quality outputs from it because of that,
and you could also use you know, open ai for
eight or two, but it's definitely not as polished as
ah as code buff.

Speaker 1 (21:34):
Right, yeah, I'm trying to make sure we have all
the links in the like, like folks, if you're looking
for the links there. It's looked it looks like it's
posting it to Facebook, YouTube and Twitch and not Twitter LinkedIn,
so it'll it'll all be in the comments there. So yeah,

(21:58):
I mean that that's helpful just because, yeah, it can
work from the context of the stuff in your actual
code base.

Speaker 3 (22:09):
Yeah, and I a lot of the back and forth
stuff with implementation related tasks, right, It's like it can
eat up time, right, Like it just reminds me of like,
you know, some some of the original like code generation stuff,

(22:31):
like even like Reils generators as an example, right, Like
it's just like it'll just dump a ton of code
at you and you're just like, well what do I
do with that?

Speaker 2 (22:39):
Right?

Speaker 3 (22:40):
Or if like it doesn't do what you want, like
you have to figure out what that is, and like
it doesn't know, right, Like there's no there's no context.
It's not aware of anything, right other than what it's
been trained on.

Speaker 2 (22:53):
So, like.

Speaker 3 (22:56):
It's definitely a it's a hard experience to like just
go in and I can't imagine like just imagine if
you were like learning reels for the first time, right
or Ruby or like even just like RESTful APIs, right,
Like I just remember those concepts being like, you know,
challenging to understand if you have something like that's just

(23:18):
generating stuff and you don't really understand how it works,
Like you could lose a whole day just like figuring
out a mistake it made. Where if like, you know,
you instead followed some tutorial that somebody wrote, like maybe
you would have a different experience. You know, they still
doing that though you have the same a similar experience

(23:40):
sometimes if you like are missing a package or something
like that, but like definitely more frequent with chat ChiPT.

Speaker 1 (23:49):
Yeah so code buff and eight those are on the
command line, right.

Speaker 3 (24:01):
Yep, yeah, those are all come in. I mean, you know,
there's so much Ruby stuff out there now, right, we
had Scott Warker from sub Layer. Sub Layer is awesome
like fully Ruby, like developer happiness, like AI helpers, right,
Like you can get it to like watch your file

(24:24):
system and perform actions with AI. You can do all
kinds of crazy stuff with it. I have one where
I'll feed it a Ruby file and it generates a
spec for me. So if I'm like, you know, prototyping
a new module or class or something like that, or
some Ruby code, I could just say if I like
wanted to turn it into something that I wanted to

(24:45):
share with people. I you know, hadn't made a speck yet,
but I was abstracting and just working on design concepts.
And now, all right, I flesh this out, I wanted
like tested, and I'll go and I'll say, hey, here's
a Ruby file, like can you create on our respect
test for this? And I just have a single command
line command and I just feed at the ruby file

(25:07):
and it generates the respect tests for me.

Speaker 1 (25:10):
Oh wow, and it's awesome. I've been going through that
with one of my clients deals where like, yeah, they've
got this heinous you know class that has a bunch
of stuff going on in it.

Speaker 2 (25:28):
And yeah, it was like, you know, they're.

Speaker 1 (25:30):
Like, hey, you got to speed this up, and I'm like,
I am not messing with this thing until I have
a test on it, right, I mean, just just so
that I know that I didn't change the behavior, not
necessarily because the behavior is correct, though I'm sure it's
mostly correct because they've been using it that way for
a while.

Speaker 2 (25:49):
So yeah, that sounds really handy.

Speaker 3 (25:51):
Yeah, and you know, even two on their I think
on their docks, they have like or maybe it's on YouTube.
Scott has this demo where basically creates a you know,
a tool that like let's tell you can tell it.
Tell the tool. Okay, here's this file. I the tests

(26:13):
are failing, get them to pass, right, and it'll go
through and run through the code and like get the
tests to pass.

Speaker 2 (26:20):
Oh wow.

Speaker 3 (26:22):
And so like that's a more like advanced kind like
thing you can use it for. But like, yeah, I
mean I feel like we're just kind of starting to
scratch the surface here.

Speaker 2 (26:35):
Yeah.

Speaker 3 (26:35):
I mean it's hard because like all of these large
language models, they're not trained necessarily on Ruby, right, right,
And so like there there's obviously a small sample in
there or it wouldn't be able to do what it can,
but it definitely will. Like if you're using chat ChiPT heavily,

(26:57):
you'll see it like use Python related standard libraries for Ruby,
right And you're like, wait, that doesn't exist, Like how
did where are you requiring this, like you know, data
frames or something like that, which there are data frames
of Ruby, just not like natively.

Speaker 1 (27:16):
Right, Yeah, I asked it to So I basically said, hey,
I want to run whisper locally to get diarized, which
means or a diarized transcript, I should say, so it
transcribes it, but then it assigns, you know, Speaker one
said this, Speaker two said that, and Whisper doesn't do

(27:42):
because I knew that Whisper doesn't do diarization out of
the box. And so yeah, its answer was install these
Python libraries and then call Python for Ruby. Well it's fine,
you know, okay, but you know because because I don't
know that there is a library that'll do it. But yeah,
it was. It was interesting, and in fact, I think

(28:04):
it started out saying, yeah, generating diaries transcripts for a
podcast episode of multiple guests using a local installation of
open ayes Whisper model and Ruby requires the following steps.
Install Whisper locally. Whisper is a Python library, so you
need Python installed and ensure that you have the required dependencies.

Speaker 2 (28:25):
So I have to install ffm PEG.

Speaker 1 (28:28):
And then it says it doesn't Whisper does not natively
perform speaker diroisation, so you have to use a diroization library,
and it tells you to use piannote dot audio, which
is also a Python library, and then it says integrate
with Ruby and so Yeah, then it's telling you to,
you know, write this quick little Python script and then

(28:51):
call the Python script from Ruby.

Speaker 3 (28:53):
When it comes to like doing like larger scale builds, huh.
If you're trying to get chat cheepy t to like
build a full fledged command line application as an example, right, Like,
it's gonna struggle. There's gonna be a lot of back
and forth. You may have multiple chats open. You know,

(29:14):
it's gonna be difficult. The one thing I have us
it's worked well for that kind of thing is honestly
Claud and thropics claud setting up a project for that
specific thing that you're building, creating an overall context with
the purpose that you're using it for to build, and

(29:36):
outlining what all the requirements are in that, and then
you can just start iterating through the chats to implement
the specific features. I use that all the time, and
the code outputs it can like start like building on
top of itself. So it has these things called artifacts,
which are just the files that it generates, and you

(29:57):
can add them to the project as it creates things
that you like, and you can edit in context and
start including it in the project, and it will literally
build the whole application just like in front of you.
And it it's a little funny because there's a there's
this project called e to be Developer where they somebody

(30:22):
has built basically like an open source version of this
of Claude's artifacts. Or again you can like kind of
spin up your own like the last you know, like
a AWS instance and run have like the AI literally
like run files and and create files and run the

(30:43):
scripts and stuff. And so what people do with it
ultimately is like you can you can get it to
literally make like a front end game or like the
if you're building like a web app, it'll like build
the actual app and run it in the browser view.

Speaker 2 (31:00):
So I mean this kind of because I mean we talked.

Speaker 1 (31:04):
We started talking about, Okay, how do we enhance our
development experience with AI? I talk to people and they're
afraid of AI taking their jobs, and so it sounds
like you're getting real close to saying, you know, somebody
with a minimum level of prompt engineering experience might be
able to do it.

Speaker 3 (31:26):
Well, there's a saying in the AI space garbage in,
garbage out, and so there's a yes and note to that, right,
like is it going to take all of our jobs now, right, Like, honestly,
it's like giving people superpowers, right, Like whatever powers you

(31:49):
do have now, like that's all your knowledge and all
your skills that you've accumulated or even if you're just
starting to accumulate them, right, Like, it basically just like
gives it, like amplifies all of that. So like if
if you're you know, if you want to be like
a senior dev, like you can honestly just start today

(32:11):
using AI tools, right, and you'll get pretty close. Right,
Like maybe maybe you know your job won't consider you that,
but like you'll definitely start to see a considerable improvement
in like how quickly you can accomplish things.

Speaker 2 (32:29):
Right. I think.

Speaker 1 (32:33):
I think the way that I think about it is
more along the lines of like just because you're talking
about it the same way I'm thinking about it, in that, hey,
this is a really really powerful tool, right, and so
it can shortcut a whole bunch of things that we
used to just go and have to kind of reinvent
by hand on a regular basis.

Speaker 2 (32:51):
Right.

Speaker 3 (32:52):
A perfect example is like the you know, post generator aspect. Right,
Like let's say you do real new and you're really
just trying to like get a page up that's like
let's you see users, right or whatever the resource you
may have. You know, there's a very specific series of
steps you follow just to get to that point where

(33:12):
you can start to crud through. Oh I want to
add this user with this, or I want to add
I want to contact lists, I want to add people.
You know, Like the AI can help like through all
those steps so that you don't have to focus on
all those upfront, right, Like you can just get to
that page and be like okay, great, now, like all
of that initialization configuration aspect which the generators start, but

(33:37):
you have to like finish out. Like that finishing out
portion is done too, right, Like you can sidestep a
lot of the you know, the tidying up that comes
from generators, which is kind of exciting, right because like
that aspect of programming is like widespread, right, Like the
idea of like okay, I have a template that I'm

(33:59):
working off of, and I want to customize it to
get to you know, round zero of my application mm hmm.
And like you have to get through that you know,
series of steps that you're just stepping through, and like
AI is great at that. It's great at stepping through stuff,
especially when all of those requirements are predefined, right like

(34:22):
Reel's new with what right, like you've been reels new
any number of things you could base it off an
existing template you have, you know, if you have a
gem you're building for Ruby, right like bundle gem new,
you know, you have like all of your existing authorships
and like where you're going to publish it to, Like

(34:43):
there's just like a lot of details that you end
up having to add every time that gets old, right,
and it's like repetitive, and like the more things that
you could just like get out of the way and
just start building. Like I bet right now now if
you look at ruby gems dot com, like there would
be a huge spike in published gems. I don't doubt

(35:06):
that right now. And I feel like that's maybe gonna
be where the jobs aspect comes in play here, is
that this is gonna be a lot more maintenance bur right,
Like you know, we can we can create exponentially, and

(35:26):
maintenance is going to drag behind.

Speaker 2 (35:28):
There, right. Yeah.

Speaker 1 (35:31):
I think the rest of the thought that I was
trying to make, and then I want to kind of
address the other piece that you're talking about here is that, Yeah,
effectively you have these tools that you know, if you're
still going to have to gain experience the same way
the rest of us do. Right, So you're going to
use AI, it's going to generate some stuff and then yeah,

(35:52):
you're you're gonna walk into the same walls that we did.
You just got there a little faster because you didn't
have to go and slog through all the stuff that
you already knew how to do right to get there.
And so I think that's where if you were already
a senior developer and you use these superpowers, then you
can use the tools essentially and say, I need this

(36:14):
refined this way, right, this isn't quite what I'm looking
for because I know that if if it's put together
like this, I'm opening myself up to this problem later.
And so hey, can you handle this too, right? And
and then it can modify the code.

Speaker 3 (36:31):
I mean you bring up you bring up a great
point like if you're using AI as a tool and
you're getting hung up on something, then you're using it wrong, right,
Like if uh, if you're using the tool and like
you're kind of banging your head on like getting it

(36:52):
to do what you ask like it's it's more than
likely that it's just like you're you're not using it
the right way. It's like kind of funny because like
that's like a meme, right, Like it's like the holding
you're holding it wrong from Steve Jobs, right, right, But
it's so true, Like you know, like these the AI

(37:16):
tools are built like in very specific ways, and if
like you're not seeing the results you expect, like it's
you're you know, it's not being used in the way
that it should be.

Speaker 1 (37:27):
Yeah, you need to give it more context or ask
it in a more specific way or a more appropriate way.

Speaker 3 (37:32):
Or approach it completely differently, right, Like there there are
so many ways to get it to do the same thing,
and so like yeah, if you're like that's kind of
like the beauty of AI is like you can literally
scrap everything and start over like pretty quickly, right. And
I would say, if you're like trying trying to explore

(37:55):
the realms of all of this stuff, like use the
interfaces that make the most sense to you, right, because
there are so many and like you're if you're fighting
it early on, you're going to continue to fight it.

Speaker 1 (38:09):
Yeah, yep, but I think overall, I guess to a
certain degree, then if it gives developers superpowers, going back
to the idea, is it going to take jobs? If
it gives us superpowers and it makes us that much
more efficient, then and this may be more of a

(38:33):
like a business philosophical question than an actual like practical
you know, are they going to fire developers?

Speaker 2 (38:41):
Does that take away jobs?

Speaker 1 (38:42):
Or does this just mean that, Hey, look, we've got
ex budget for developers, and so now we if we
train all of our people to use these tools to
enhance what they can do, we can get this much
more done. Right, And so do we actually lose jobs
or maybe do we lose junior developer jobs, which seems
kind of shortsighted because we are going to eventually need

(39:06):
more senior developers. How do you see that shaking out
in the grand scheme of things?

Speaker 2 (39:12):
Or do we just not know?

Speaker 3 (39:15):
I mean, I see it as more transitional, right, Like
the common analogy that I've heard is like the transition
from horse and buggy to automobiles, right, like very similar
modes of like transport, in that you have wheels right right,
and you have like somebody steering it. It's just a

(39:39):
matter of what's powering it, right, that changes, but the
infrastructure and things related to it and all, like as
an example, whips, Like you know, the accessories around all
of this stuff are just changing shape, right, right, but
the underlying infrastructure around it is still very much the same.

Speaker 2 (39:59):
Right.

Speaker 1 (40:01):
So we may need less people that shovel poop and
more people that are machinists and auto mechanics exactly.

Speaker 3 (40:07):
I think that's ultimately where we're going to get into,
is like more specialized aspects, right, And like that's honestly
what we've been seeing taking shape before AI started, as
like frameworks become more popular, and like Kubernetes as an example, right,
like all of these abstractions, I mean, DH makes a

(40:28):
great point like about abstractions in general. If you get
abstract away like the concepts in a way that you
know makes it so that you have a more straightforward
point of use, right, Like all the details like somebody
else is working on those, right, right, and you can

(40:51):
you know rest assured that you know, those people that
are specialized in it are going to produce you know
that make it easier and more modular and extendable, uh
for your general purpose use right, Right?

Speaker 1 (41:07):
So I'm gonna shift gears on you just a little
bit because we've talked about using AI mostly to generate code,
and then you were talking about how you can use
Claude to effectively incrementally generate basically an entire application. Actually,
I'm gonna change my question because it came into my

(41:28):
head as I was talking about this. So if if
you've got something like Claude that can generate pretty much
an entire application, I mean, are there limitations to that?

Speaker 2 (41:37):
Like? Are there are there areas.

Speaker 1 (41:38):
Where you may tell it you want it to generate
a thing, and it's just not you know, it's not
going to be good at that, or it's good at
to it up, good at it up to a certain point,
and then after that.

Speaker 3 (41:50):
Yeah, I mean I definitely see the limitations, right, Like, uh,
it's good up to a point. It's good at like
cobbling together like uh, you know, MVP or like a
first version of something, But as soon as you want
to add something new or make changes to it, it
starts to break down pretty quickly, right, And what you

(42:10):
end up having to do is break it apart. And
I'm honestly very similar to just general software engineering, right
is like you break it apart in the smaller pieces
and then focus on those smaller pieces. Yeah, and I
know Ken Beck has like a great like saying around
this on like, you know, make the change easy and

(42:31):
then make the easy change right, like right, And that's
ultimately what ends up happening as you start to develop
like things with AI on a larger scale.

Speaker 1 (42:42):
So you kind of answered the other question I was
going to ask, which was, so, let's say I have
like a bunch of code. I don't want to say
legacy code, because people take that to mean different things. Right,
if you read Michael Feathers, it's just code without tests.
But you know, so you've got this older code that
you know was written I don't know, five years ago

(43:03):
or something that still works, but you find, hey, maybe
I want to refactor it so that it's easier to maintain,
or I want to I want to add a feature
to it. Right, And so I was going to say,
mostly we were talking about generating code, but yeah, what
about modifying code or refactoring code or rethinking code. And

(43:26):
it sounds like the answer to that is, yeah, you
you take the relevant parts out, you tell your large
language model about it. Right here, here's here's my view,
here's my controller, here's my model. You know, here's the
feature that it's supposed to implement. You know, I need
to add this other feature and then see what it

(43:46):
does with it.

Speaker 3 (43:47):
Yeah, I mean pretty much. And you know, circling back
to like the more you know, the more point of
use tools like or like code buffer or something like that,
you know, like it can gather that context for you.

(44:09):
Like the most difficult part of the whole were factoring
aspect and making modification. Is like the code, the you
know file spread, right, Like if you have this giant
you know, service class that you've just put everything in
to make the abstraction easier, and it's just becoming too
and wieldly to make changes to it, and you want

(44:30):
to break it apart into smaller pieces so that the
responsibilities are broken out appropriately, right, getting it to extract
those and make new files and things like that, and
getting it to orchestrate all of them, like that kind
of change becomes more difficult, and so like that's where
like again back to the specialists, like you know, that's

(44:52):
why I don't think our jobs are going anywhere necessarily,
is like, you know, it doesn't know how to make
code friendly and easy to read, right, right, and.

Speaker 2 (45:05):
It just knows how to make code like what it's
already been trained.

Speaker 3 (45:08):
Exactly, and so like let's say even that you get
it to train on a whole bunch of code that
you have that is in a pleasant way, Like it'll
get to a point where, you know, you're trying to
do something novel, You're trying to introduce a new concept,
and like it doesn't know how to break apart the
existing design concepts and apply it to the new novel

(45:32):
approach of implementing something that you're trying to do. So
like it might be able to get like, okay, we
want a service class. We want to you know, encapsulate
this form logic in an object oriented way. It can
do these abstract concepts, but like the actual implementation of
the whole flow starts to break apart, and like it'll

(45:54):
just become messy and like a messy as a human
right to read, where like maybe the code works and
it runs, but you know, the naming conventions may will
start to break down and it won't make sense. It'll
just make sense to like the very specific things that
it's making, right, and it does yeah, I mean it

(46:15):
doesn't have knowledge of the world at every moment, right, Yeah,
that makes sense.

Speaker 2 (46:23):
Right, So we go from.

Speaker 1 (46:25):
Sort of the you know, like I said, shoveling shoveling
poop right where it's you know, kind of the generic,
easy to pick out cleanups that you know, it may
pick up just because it's got a bunch of code
samples that it was trained on that are reasonably well
written and so it you know, it can adapt a

(46:47):
lot of that stuff out. But yeah, the more involved
re factors and things like that it just does hasn't
been trained on.

Speaker 2 (46:53):
I get from here to hear, right, And.

Speaker 3 (46:56):
Yeah, I mean it is great for a factor if
you have the narrow enough scope where okay, you have
like even if you have like three files and you're like,
this is just too many files to handle, Like, can
we like reduce the complexity here, Like you can guide
it in a way that it can help you eventually
reach the goal that you're trying to get. But right, like,

(47:20):
if you don't understand how to help it get there,
how to help it help you get there right, right,
then it's going to be more difficult to work with
it than it is. Just you figuring it out.

Speaker 1 (47:34):
Right, So so you may be able to handle a
class with five hundred lines in it and say, this
class is too large? What responsibilities do you see here?
And it may may not be able to pick them out,
and then if it does, then maybe you can start
asking it, okay, which methods belong to which responsibility and
then from there you can start to figure out how
to have it help you divvy it up and you know,

(47:56):
extract the class.

Speaker 3 (47:58):
Yeah, and I'm hopeful that like all this stuff, like
with these models, a lot of this comes out of there, right,
because like that's ultimately where software like comes in play.
Is like you have these like design you know, buffer
ahead of time that you work through to figure out
ultimately what needs to change or get created, and like

(48:21):
that's very step wise, like and you know that process
is like, okay, I'm thinking about doing this thing. Help
me break out the steps, what approaches are there? And
once you've scattered and then figured out which one pieces
of it that you actually care about, right right, getting

(48:45):
it to identify those things is nice, And then you're
still left with, Okay, well I should make the best
choice in this moment, which you know I'm hopeful that
the future my like focus more around like the selection
aspect of those design choices. But yeah, there's still a

(49:09):
lot of like the reasoning aspect of these things that
is missing.

Speaker 2 (49:15):
Right, So are there other tools or approaches that you're using.

Speaker 3 (49:22):
Let's see what else is in my toolbox? I mean yeah,
I mean for design stuff, I definitely use that software
architect mentor one. Just to hash through ideas, I use
lane chain a lot. Lange Chain RB has some great
abstractions around working with AI development and integration. We talked

(49:52):
about ray r ai X just great like rails plug
in to just like get your Rails app hooked up
to various AI related design things.

Speaker 2 (50:07):
Yeah, and there's Ray and then there's Ray rails. Ye.

Speaker 1 (50:10):
So the one is the Ruby extension, the other one
is the race and.

Speaker 3 (50:15):
To be honest, lane chain or B they have lane
chain reels which also adds some similar integrations. And then
there's the whole agent side of things too, which.

Speaker 1 (50:29):
Isn't that what Ray is kind of focused around, is
building those agents or are you talking about agents that
people have already built for Ruby stuff?

Speaker 3 (50:38):
So there's like there's two ways of thinking about it.
Like if you're just like if you want to augment
your applications with AI, like use it as a tool.
Like that's more like Ray or things like that where
you just want to introduce, Hey, I have this model
and I wanted to auto generate stuff based on these
column names, or I have this prompt and I want

(51:00):
to guide through a process and you can create kind
of like these abstractions around those ideas.

Speaker 1 (51:07):
That's the level that I'm looking at working in. So,
for example, with what I've built for top end devs,
I'm basically to the point now where I'm starting to
show other people how I run things, and they're telling
me that they want my platform as much as they
want my method, right, and so I'm imagining, yeah, you
have something that you built in Ray, and it's essentially

(51:32):
you know, so like when our guest today almost said
his name, but I don't want to call him out.
He's a great guy and you know that he had
a good reason for canceling today. But right, so if
that happened, right, I would like it to go and
have my agent with has access to the back end,
right say okay, we're gonna we're going to reschedule him

(51:54):
for whenever or you know, we're going to pick another
topic and bring it in right and have it intelligently
do that, but then also have my users be able
to as much as they go in and just modify
stuff in the form right that I built in rails,
but also just say I don't like the title of

(52:14):
episode five hundred and twenty two. I think it needs
to be more focused on this topic or you know,
we use this as an example. So like JavaScript Jabber,
one of the episodes, I kept bringing up examples from
rails to illustrate points, right, And so the AI generated
title that wound up getting put in there without me

(52:35):
catching it had rails in the title, and that wasn't
what the episode was about at all, and so it
would have been nice to be able to just tell
it instead of going in and try and do whatever.

Speaker 2 (52:46):
Say I need a title that is less.

Speaker 1 (52:48):
Focused on you know, that doesn't include rails and talks
about this topic instead, and then have it smart enough
to go and generate a new title and.

Speaker 2 (52:56):
Ask me if that's okay. Kind of thing.

Speaker 1 (52:59):
Right where the UI is now, I can either speak
to it or type into a chat and have it
do the right thing. Reschedule this episode Okay, I'm going
to go modify it in the calendar.

Speaker 2 (53:08):
I'm gonna go send new invites to the guests.

Speaker 1 (53:10):
And the hosts and right do all the other process
things because it has access to the back end of
my system.

Speaker 2 (53:18):
Does that make sense?

Speaker 3 (53:19):
Yeah, that makes sense.

Speaker 1 (53:20):
I get excited about that, And I think that that
is a more intuitive interface for a lot of business
owners that literally just want a content strategy that gets
a business.

Speaker 3 (53:32):
Yeah. I mean, if you're just trying to supplement your
existing business, right like using something like ray or lang
Chain or one of these other supplemental libraries, right, Like,
that makes a lot of sense. It just looks right
into it, you know, very minimal modification and like long
term support. Just like it's super easy to modify and

(53:55):
update the prompts pretty easily.

Speaker 2 (53:57):
Right.

Speaker 3 (53:58):
But if you're trying to get like something more complex
out of like the AI systems, that's kind of where
like agentic system design comes in play.

Speaker 2 (54:07):
Uh.

Speaker 3 (54:08):
And that's like where you want like, uh, you know,
AI to to do a specific job and like a
chain through a bunch of steps. Uh. And so like
there's tools like active agents as an example, justin Bowen, Uh,
he just released these uh this framework which is pretty
awesome uh for managing agentic system flows like that. And

(54:34):
then there's like you know Alex Rudall, we had him
on He's the Ruby open Ai author, right. He has
AI engine, UH, the AI engine Jim it's with reels
ai dot com uh. And that he has you know
assistance ah, you know framework built in where you can

(54:57):
just hook into uh to get various code like you know,
to do step wise things with there's just like a
it's like if you're looking to cobbled it.

Speaker 2 (55:14):
Like.

Speaker 3 (55:15):
One of the greatest things I saw was actually from
Toby Luke from Shopify. He gave this like internal like
presentation where it was all developed by AI and he
had basically like made these little agents. He made like

(55:36):
a virtual office and this was the program. And the
virtual office had individual agents, which were basically just people
with a very specific role like a software engineer, a
marketing person, you know, research assistant, you know. And each person,
each agent had a loop and it went through and

(55:57):
it thought about what it had to do. It like
had some tools available to it to perform that task.
And then every periodically all of the agents would get
together and they would like have a meeting, right, and
like they could if they needed information from another agent,
like they could reach out to the other agent and
work together on producing those details. Right. And then you

(56:22):
know what you can do is is you could scale this,
right is you could say, Okay, I want like five
developers agents, right, like I want five marketing people on
this effort, and they would all work together and work
on scaling and then conferring their judgments together for better results.

(56:42):
And if you think about it again, like he basically said, well,
then you can also scale your offices, right Like, so
like let's say I have one office working on this,
I can have many offices working on this, and maybe
they're all working on their own different things, but ultimately
coming together for the business side, like right purpose Uh
And so it's really interesting idea of like these virtualization

(57:05):
like containers of all of these very specific things doing
very specific tasks. And so if you're want to like
build a business around that idea, like you're gonna go
through some kind of agent or assistant p Yeah.

Speaker 1 (57:23):
Yeah, And and that's that's what I'm excited about, right.
I just see all kinds of opportunities with that. Was
there anything else that we should dive into here. We've
been talking about an hour.

Speaker 3 (57:33):
I mean I could keep going. There's there's so many.

Speaker 2 (57:37):
One more things.

Speaker 3 (57:38):
Yeah, I mean so the there the Latent Space podcast
is just incredible.

Speaker 2 (57:46):
Uh yeah, I just started listening to that.

Speaker 3 (57:48):
Oh my gosh. They are just like in it deep right,
Like if you're if you want your mind blown about
like what is happening in the AI space, like they're
exposing it pretty great.

Speaker 2 (57:59):
Uh.

Speaker 3 (57:59):
And and one one thing that is like frequently talked
about is like the importance of like evaluating the outputs
right and getting benchmarks and so like two of these
concepts are like, uh, you know, the Hugging Face has
a great like library on their evail framework. Let me

(58:25):
see if I can remember what it is. I mean, yeah,
Evail guidebook, and so that they have like basically this like, uh,
you know, how do you get run tests against these
outputs so that you can guarantee that they're doing it
what you what you want of them, right, Because that's

(58:48):
one of the biggest things is like there's so much
variability in their output right, Like uh, it's token by token,
so like if it gets off track at any point,
like it could all of a sudden break down pretty easily.
And if you have that hooked up into a series
of processes that depend on each other, right, like that
falls apart pretty quickly. And so like setting up these

(59:09):
kind of like benchmarks and evaluations is just like there's
a whole industry like focus on this, right, And that's
where you get these like leaderboards that benchmark all of
these models based on different criteria like how well do
they you know one I just saw recently, there's a

(59:32):
an evaluation or a leaderboard for for doing debates, right,
like how well do the models like argue on a point?
And so there's like a new leaderboard now where which
models perform best at this, right, like which which ones
are most convincing?

Speaker 2 (59:51):
Right?

Speaker 3 (59:52):
And it's it's pretty great. And so like there there
are a bunch of leaderboards that and that all of
them are based on these evaluations, right where you have
output and you give it input and you expected a
very specific reconstruction of that every time, right. And so
that's actually something I focus on quite a bit at

(01:00:12):
work building stuff for physicians. Right, it's pretty important to
get it to do exactly what you want.

Speaker 2 (01:00:20):
Right, That's amazing.

Speaker 1 (01:00:24):
Yeah, And Layton space is what it swicks or Sean
Wayne yep and Alesso I can't remember his last.

Speaker 3 (01:00:31):
Name, but yeah, I mean I would Hugging Face is
definitely like they are awesome. They're just killing on all
fronts here, even the robotic stuff. I don't know if
you play. I have a little They have this thing
called the robot and it's a robotic arm that you
can train with AI just like on your MacBook and

(01:00:56):
you point a camera at it, and I've built it
like that. You build two of them, right, like one
to train it with and one to do things with.
And it has this thing called telepresence where it repeats
you know, what you're doing with one robot arm to
the other, and then it you know, trains and model

(01:01:18):
based on that, and so you could train it to
do different things, so like pick up you know, sort
Eminem's or sort legos or you know pick up. I'm
trying to get it to right, like Hello world, right,
And you could train it to do this just like
by having it watch itself and repeat those training examples,
like in a virtual environment. So they have like this
whole framework they built around that. It's so fascinating. The

(01:01:42):
other robotics aspects of all this stuff is pretty wild.

Speaker 2 (01:01:47):
Yeah, it sounds like a whole different can of worms. Yeah.
So at the end of the day, if people are
looking to enhance their.

Speaker 1 (01:01:58):
You know, their code stuff, and we didn't even get
into you know, JavaScript in front end, if you're doing
stuff with that. But you know, beyond kind of the
stepping stones that we've already talked through, right, are there
good places for people to just kind of keep an
eye out and go, you know, see what else kind

(01:02:18):
of crops up?

Speaker 3 (01:02:22):
I mean really just starts small, Like this space is
always going to change fast, and there's going to be
new things, but there's like foundational concepts and tools like
becoming popular, right Like lang chain is like a widely
popular thing that's just super easy to get set up

(01:02:43):
and running with.

Speaker 2 (01:02:44):
Right.

Speaker 3 (01:02:44):
Grant is in Python and that's fine, like.

Speaker 2 (01:02:47):
A yeah, but it looks like, you know, you've got
link chain RB.

Speaker 1 (01:02:51):
So it's it's like calling a database or you know,
another API service or something, right.

Speaker 3 (01:02:57):
I mean really, it's just like finding those abstractions that
just help like get to the point and learn the basics, right,
Like the best tool you can find to do that
with is going to be the best one, right, because
like there's so many concepts to learn, like just break
down like how you chain it all together, right, right,

(01:03:17):
and so like start with the very basic small stuff
like sub layer. If you're in Ruby, Like sub layer
is a great starting point. Like you open up a
Ruby fil and you include sub layer and you can
perform some LLLM magic right, awesome, awesome tool create different actions,
Like they have a library you can go and just
like you know, take all you know, the various actions

(01:03:41):
that they publish. Right, So if you want it as
an example, like red Green tests passing, like there's like
a you know, an agent for that you can download
and get running just from a URL.

Speaker 2 (01:03:53):
So like.

Speaker 3 (01:03:57):
Yeah, I would say, just like pick one tool and
that like that will get Now that's going to be
the fastest way.

Speaker 2 (01:04:05):
Yeah, I guess at this point we'll go ahead and
do pics. Yeah.

Speaker 1 (01:04:13):
I mean, I'm just sitting here kind of thinking through
all the implications of all the stuff we talked about,
because you know, I knew, I knew that there was
a whole level of stuff that I hadn't seen.

Speaker 2 (01:04:24):
And one thing that I'm really wanting to do or
thinking about doing here is.

Speaker 1 (01:04:29):
Just putting together essentially tutorial videos on how to do
a lot of this stuff. Right, It's like, hey, here's
how you, you know, work through some of these things
or use some of these tools, just to give people
an idea or example. Anyway, Yeah, let's go ahead and
jump in with picks and then we'll wrap up.

Speaker 2 (01:04:50):
But yeah, we've we've got all kinds.

Speaker 1 (01:04:52):
Of links in the on the YouTube broadcast that says
it's about solid cash.

Speaker 2 (01:05:00):
But yeah, why don't why don't you go ahead and
go first? What picks do you have?

Speaker 3 (01:05:05):
Yeah, I mean I have to, you know, call out
the Ruby I Builders discord. Like awesome. Honestly, if you're
looking for one thing to like learn all this stuff,
like just join that discord. You'll learn plenty and people
are just like so willing to help out and point
you to to where you need to go and what

(01:05:27):
you're looking for. Super helpful. Sublair also has a discord
if you're looking to drive into that as well. Yeah,
I mean next to that. Yeah, I'm just chugging away
on this, like Ruby laying AI project I started, it's

(01:05:50):
like very slow progress. Well, ultimately I'm like trying to
fine tune a model, a very small model, call him
you know, SML instead of ll M. But I'm trying
to like fine tune smaller models that are very purpose
driven for Ruby generate code generation with the ultimate goal

(01:06:14):
of being able to, like, you know, further fine tune
it on existing code basis so that you can get
it to generate things based on the context of your
organization's code. And I'm making some pretty good progress. I'm
trying to use as much Ruby as I can, and
so I have, you know, this high call library that

(01:06:35):
I'm using to ultimately just shell out to Python for
the things that Ruby can't do yet. But that gap
is slowly closing in thanks to Andrew Kane, who's just
like a monster with all of this machine learning stuff
in Ruby. Yeah, he is just putting out stuff left
and right. And I guess on that topic, there is

(01:07:01):
a gem called informers that he has that lets you
run inference for Ruby, and it's really great. You can
basically just like point a hugging face model at it
and run imprints using Ruby. Super fun stuff to play with.

(01:07:23):
If you're just trying to like summarize something as an example, like,
there are great smaller models that do specifically that and
they work great. You don't need like to reach out
to open Ay every time when you just want something
small that outputs much faster, right, So check that out.

Speaker 1 (01:07:43):
Yeah, all right, I'm gonna do some picks. We used
to do the board game pick lately. So last weekend
I was teaching games at the Game Board Game Convention
again and so we had five games we were demoing.
So I'm going to pick some of those over the

(01:08:04):
next four or five weeks. One of the games I've
already picked on this show because I played it at
Salt Con in March, and so I'm not going to
pick that. That's Challengers if you haven't checked it out,
very fun game. The game that I'm going to pick
today is called Gnome Hollow, and I have to say so,

(01:08:26):
there are different aspects of board games. I haven't really
discussed this much on the show. There are different aspects
of board games that make them fun, right, So some
of it is kind of the flow of the game.
Some of it's you know, how much you have to
think about what you're doing and how much you have
to plan ahead, and whether or not you like that
kind of a game. And you know, and so that's
down to like complexity or things like that. Not always

(01:08:46):
some of it's like like, for example, nome Hollow has
a pretty simple cadence to each round. It's just it's
just the thinking ahead, right, because you're you're going to
build something out and then you're going to capitalize on it,
and then there's some movement aspect and you have to
decide what you're going to do every turn. So the
way that it's played is you're trying to complete mushroom

(01:09:09):
rings in the forest, okay, and you know your mushroom
rings don't have to be round, but they have to
be a complete loop. So you know, you can build
a three, A four, A five, six. It's hex tiles
and so it's the number of hex tiles that are
on the on the loop that you made, and you
get you get to move a marker down when you

(01:09:30):
complete a ring, right as long as there's a space
for it. So you can do one three, you can
do two fours, and then you can do like four fives,
four six's and four sevens.

Speaker 2 (01:09:44):
You don't have that many markers.

Speaker 1 (01:09:46):
And on the sevens, if you move one down, two
of the rewards on the sevens is you get to
move a second marker down and get another reward.

Speaker 2 (01:09:54):
So anyway, it's pretty cool.

Speaker 1 (01:09:56):
The different rewards either modified the game board or they
give you some other reward that gets you points. So
if you complete a loop, for every two loops you
complete or every two markers you move down it more appropriately,
you get to discover a wildflower, and then you get
the wildflower. You get a wild as part of your

(01:10:17):
reward for discovering a wildflower, and then the rest of
them go up for other people to be able to collect,
and so you get points for every wildflower you collect.
You get points for every marker you've moved down into
the reward space, and then you get points when you
complete the loop or the ring. You get the mushrooms
that are on the ring, and so then you can

(01:10:37):
go to the market and sell the mushrooms. And those
are the three ways to get points. You add them
all up at the end that's how you score. So
then it's just a matter of getting the you know,
enough of the right kinds of mushrooms to make your
trip to the market worth it. And then the other
thing is is if you say you cash in five
red mushrooms. You actually fill the spot for five red mushrooms,

(01:11:02):
and nobody else can do five, they can do six,
they can do four, they can't do five. And then
when somebody does six, right, then that is also gone. Right,
so maybe you go seven or eight. And so the
different mushrooms are worth different amounts because you have different
rarity on the hexes you place. You have place two hexes.
You collect the rewards for completing your loops, and then

(01:11:24):
you move your nome and you move your nome to
reserve a path that will eventually become a loop, or
you move your nome to a sign, which is one
of the rewards you get for completing a loop, or
you can move it up to the market and you know,
sell mushrooms, or you can go and collect the flower
and you know, and so then at the end of
the game, what if you've accrued in the different kinds

(01:11:47):
of flowers and stuff, that's how you win. So, you know,
I played it like three or four times at the
game convention because that was one of the games that
people wanted to learn and and anyway, it's a lot
of fun board game. Geek waits it at two point
one seven and so you know, kind of your average
gamer with enough complexity to make the game interesting is

(01:12:10):
about a two. So this is just slightly more complicated
than that. And the complication really is, you know, what
do I get for completing the loop? How do I
make the loop large enough to get the reward I want?

Speaker 2 (01:12:23):
Right?

Speaker 1 (01:12:23):
Instead of a four, make it a six or seven?
You know, and you have to plan ahead to make
your path.

Speaker 2 (01:12:28):
Go the right way.

Speaker 1 (01:12:31):
And then you know, yeah, when you move the gnome,
do I move it to a sign to get more mushrooms?
Do I move it to the market? Do I move
it to the thing? And which ones do I sell back?
And is somebody going to sell back the eight?

Speaker 2 (01:12:42):
And I have eight?

Speaker 1 (01:12:43):
So now I can only sell back seven. So that's
where the complexity is is it's in that play so
that you're making the right moves to accrue the most points.
And anyway, super fun game. Takes about forty five minutes
to play it, which is also great plays up to
four people.

Speaker 2 (01:13:00):
I've played it with two, with three and with four.

Speaker 1 (01:13:02):
I think with three and four people it's more fun
because you have a lot more going on on the
board and you have a lot more options that open.

Speaker 2 (01:13:08):
Up more quickly.

Speaker 1 (01:13:10):
But yeah, so no hollow And the artwork on this
one is awesome. It's fun artwork. There are a million
little pieces. They give you a whole bunch of bags,
and it's not really clear how you're supposed to get
it all back into the box. I mean it all
fits fine, that's not the problem. But it's like, Okay,
do I separate all out the different kinds of mushrooms?

(01:13:32):
And do I separate all the different markers into different bags?
If I wind up buying the game, I'm just gonna
bring in my own bags and I'll keep them all
separate in that way, I can just parcel them out.
But yeah, we wound up combining a bunch of stuff
and you wind up having to sort it back out
when you pull the game out. But it's fun, very
very fun. The game ends when somebody moves their last

(01:13:53):
marker down. You finish out, tell that everybody's had the
same number of turns, or if you run out of
to put on the board, and so what you do
is you put aside two hexes for every player that's playing,
and that way, if you run out of the hexes
to play, you just play off of that stack until

(01:14:16):
everybody's had the equal.

Speaker 2 (01:14:17):
Number of turns.

Speaker 1 (01:14:18):
I think every time that I've played, somebody moved their
last marker down before we were out of hexes. So anyway,
super fun game, Really enjoying that. I am working on
putting together an AI dev boot camp, and that's more
in the vein of building out the agents like we
talked about, as opposed to you know, and using some

(01:14:40):
of the other tools like Whisper for transit transcriptions and
text to speech or speech to text and all that
stuff right that that's offered out there. I'm looking at
open AI as kind of a baseline, but I am
looking at some of the other tools like Claude and
laying Chain and.

Speaker 2 (01:15:00):
Olama or you know, Lama three and some.

Speaker 1 (01:15:03):
Of those other tools that are out there, just to
give people an idea of what their options are. But yeah,
it's going to get into how do I bring this
stuff in and what options and services are out there
that will let.

Speaker 2 (01:15:15):
Me do it, And so it's going to be.

Speaker 1 (01:15:18):
I guess more focused on APIs and prompt engineering than
it is going to be on like how the models
actually get built and stuff like that.

Speaker 2 (01:15:28):
I've had a few people ask me.

Speaker 1 (01:15:29):
Oh, so we're going to do all the data management
and training our own models, and we might get into
some of that if I'm showing you how to like
enhance what Lama or lane chain give you, but not
a lot. It's really focused on how do you create
an awesome AI experience for your customers through an agent.

(01:15:50):
So anyway, I'm going to be doing that sometime in
January and so that's going to be at AIDEV boot
camp dot com.

Speaker 2 (01:15:58):
And then I picked up a book on Amazon that.

Speaker 1 (01:16:05):
And it's again, you know, like I said, you know,
I'm kind of using open open AI and its offerings
as a baseline, recognizing that there are other systems and
models that give you a lot of options for doing
a lot of the same things and maybe better at
one thing than another. And so I bought a book

(01:16:26):
and it's called Building AI Applications with Chat, GPT APIs
and it shows you how to use.

Speaker 2 (01:16:35):
And the the.

Speaker 1 (01:16:36):
Author is Alexander Petrovitch, and it goes into basically all
of the different API options. Hang on, it's being funny
on Amazon, but it shows you how to use Whisper,
it shows you how to use.

Speaker 2 (01:16:58):
Boy.

Speaker 1 (01:16:59):
It does not want to pull it up on Amazon,
but I bought it for the Kindle, and yeah, it
goes into Whisper, it goes into chat GPT, Yeah, it
goes into a couple of the other options that you
have on the open Ai platform. So anyway, and it

(01:17:22):
basically walks you through used in their APIs and then
how to build your prompts to get what you want.

Speaker 2 (01:17:27):
And so I'm excited to dive into that. So I'm
going to pick that. And then.

Speaker 1 (01:17:33):
The last pick I have is I've been I've been
doing I've been training for triathlons again, and specifically my
goal is to either do Iron iron Man Maryland in
September or iron Man Chattanooga in September, and so I've
been picking my races leading up to that.

Speaker 2 (01:17:53):
I'm pretty excited about it.

Speaker 1 (01:17:55):
The workout regimen that I've been following is twofold. One
of them, I picked up a training system on training
peaks dot com. So I'm gonna pick training peaks dot
com and you can buy workout plans. So mine's a
forty eight week workout plan, right, So I started it
last month and you know, I'm on track to finish
it for Maryland and then if I wind up signing

(01:18:17):
up for Chattanooga instead, then I'll just tell it to
adjust my workout schedule by two weeks so that I'm
ending on the right day in September. And then the
other one is I've been using the first Form app
that's one st p h r M First Form and
I signed up for Transformation Challenge is what they call it,

(01:18:44):
and Transformation is also spelled with a pH right because
of their branding. And as part of the app, you
get a coach and so she's been helping me figure
out my you know, all my stuff, and so I
have a referral code if you want to use my
coach and sign up. I don't get any kickbacks for this.

(01:19:07):
It's literally just hey, I'm having a great experience with this,
and so you know, you ought to check it out,
and so let me just air drop it to my
computer and then I can put it in the chat.

Speaker 2 (01:19:26):
But yeah, it's it's been awesome.

Speaker 1 (01:19:28):
So my trainer's name is Andrea, and like I said,
so I get an announcement every day where she's essentially saying,
you know.

Speaker 2 (01:19:37):
Hey, make sure you're getting enough sleep, or.

Speaker 1 (01:19:41):
Hey, make sure that you're paying attention to this that
or the other, or you know, all all kinds of
different things like that, and it's really really been terrific.
And then yeah, she checks in, Like every week, I
send an evaluation where I'm saying, you know, I'm a
little hungry, I've been a little hungry this week, or
I've been a little tired this week, or you know whatever,
and then she'll chat back and say, you know, yeah

(01:20:05):
you needed you need to schedule more sleep, right, Or
she'll look at my eating because I track all my
calories in there too, and she'll say, hey, you need
eat more vegetables.

Speaker 2 (01:20:15):
Some she told me the other day.

Speaker 1 (01:20:17):
She's like, you need to eat more real food and
you know, less supplements, which is like the protein powders
and stuff. And yeah, they have a whole bunch of
different supplements like the protein powders they have. They have
like a nootropic caffeine mix pre workout.

Speaker 2 (01:20:33):
They have what else am I using?

Speaker 1 (01:20:36):
They have like an opti greens is what they call it,
and it's it's greens that you know, help with your
digestion and stuff. I've got a couple here. I've got
basically omega, which is like fish oil, and then I've
got another one that's glucose disposal agent is what they
call it, and it just it just helps regulate my

(01:20:56):
blood sugar, which is good because I'm diabetic and I
just take it with all you know, know, with the
medications that my doctor has given me, and it's it's
been awesome. So anyway, I'm just going to pick those.
If you want to do an Iron Man next year

(01:21:16):
and you want, you know, it'd be fun.

Speaker 2 (01:21:19):
I don't know, you know, I don't.

Speaker 1 (01:21:21):
Know that I go the whole way with you because
I might swim faster than you or you might bite
faster than me, but it it'd be fun. So if
you're interested and you think you might be there, let
me know. But yeah, those are my picks. Sorry I
rambled for a long time. But anyway, I think that's

(01:21:42):
all I've got, So Valentino, think thanks for being our
expert this week.

Speaker 3 (01:21:49):
Yeah, happy to. I love talking about this though.

Speaker 1 (01:21:51):
Yeah, it's it's cool stuff. What we need to get into,
some of the stuff that you know, you and I
are building with AI.

Speaker 2 (01:21:58):
But maybe that'll be another episode another time.

Speaker 1 (01:22:02):
And yeah, the next time, folks max out mm hmm.
Advertise With Us

Popular Podcasts

Stuff You Should Know
My Favorite Murder with Karen Kilgariff and Georgia Hardstark

My Favorite Murder with Karen Kilgariff and Georgia Hardstark

My Favorite Murder is a true crime comedy podcast hosted by Karen Kilgariff and Georgia Hardstark. Each week, Karen and Georgia share compelling true crimes and hometown stories from friends and listeners. Since MFM launched in January of 2016, Karen and Georgia have shared their lifelong interest in true crime and have covered stories of infamous serial killers like the Night Stalker, mysterious cold cases, captivating cults, incredible survivor stories and important events from history like the Tulsa race massacre of 1921. My Favorite Murder is part of the Exactly Right podcast network that provides a platform for bold, creative voices to bring to life provocative, entertaining and relatable stories for audiences everywhere. The Exactly Right roster of podcasts covers a variety of topics including historic true crime, comedic interviews and news, science, pop culture and more. Podcasts on the network include Buried Bones with Kate Winkler Dawson and Paul Holes, That's Messed Up: An SVU Podcast, This Podcast Will Kill You, Bananas and more.

The Joe Rogan Experience

The Joe Rogan Experience

The official podcast of comedian Joe Rogan.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.