Latest / Agentic Conversations (formally mlops.community) / Rethinking Notebooks Powered by AI
Transcript
- 0:00Oh, but how do you add the context?
- 0:01I do describe the data frame. Is the LM supposed to look at
- 0:05all of your code and infer what the column names are and what
- 0:07the types are? The way I thought about
- 0:09notebooks five years ago meets the change.
- 0:11If you want to use collab, that's fine, but you can rethink
- 0:13that and that shit. Like I care a lot about
- 0:15intellectual freedom. If you're a Python person,
- 0:17widgets are probably the most fun way to learn JavaScript at
- 0:19this point. OK.
- 0:25So you told me something that is very interesting.
- 0:29You guys just got acquired? Yeah, a few weeks ago, yeah.
- 0:32True. So in the span of me seeing you
- 0:35a month ago and now, what's changed?
- 0:40So I thought, OK, I saw you at π data the week after I was in San
- 0:43Francisco. And as one does, you get into a
- 0:45few weimos and do that fun. Take some video.
- 0:49Yeah, like up a hill, down a hill.
- 0:52But yeah, like during that week I also got word that we were
- 0:56getting acquired. The CEO and CTO were really good
- 0:59at keeping that sort of quiet within the company, but sort of
- 1:02a fun pleasant surprise. But the the short story of it is
- 1:05that we are still one group. Our road map hasn't really
- 1:08changed. We are part of wait some bite
- 1:12while we, if you look at the org chart, you've got Corweef, which
- 1:15is the company officially that acquired us.
- 1:17Then we have weights and biases and then we are part of the
- 1:21under the weights and biases umbrella.
- 1:22I guess you could say if you look at the org chart, but I
- 1:26mean again, the team is still the same.
- 1:29Our road map is definitely still the same.
- 1:30It's just that we are now part of a bigger group that's the
- 1:34longest short. Story of it makes a ton of sense
- 1:35why weights and biases would want you after you're breaking
- 1:39down all this notebook stuff and knowing like how they think
- 1:42about helping data scientists and what are some things that
- 1:47you're thinking about now? Has anything changed in that
- 1:49regard? Like your what?
- 1:52You want to build where you're going, I mean.
- 1:54Honestly, on a day-to-day basis, the main thing that's changed is
- 1:57I'm part of a larger Slack group now.
- 1:59So, so you learn to sort of ignore more channels and to
- 2:02really like do a little bit of that because before with eight
- 2:04people, like almost every channel is relevant.
- 2:06And now, you know, with a couple of 1000 people working there,
- 2:08it's that's not the case. So that's the, in a lot of ways,
- 2:10that's the main thing. And like one thing that's a
- 2:13little bit funny is I actually knew a bunch of people that
- 2:16already worked at weights and biases.
- 2:17So one thing you do see is that, you know, obviously the, our CEO
- 2:21and our CTO, they talk to some people over the weights and
- 2:23biases side, kind of like very much up the umbrella.
- 2:26And I know some people that aren't exactly up the umbrella,
- 2:28but we're like Twitter buddies. So then, OK, we are now each
- 2:31other. I'm I'm my gateway to this guy
- 2:33into Marimo and he's my gateway into weights and biases stuff.
- 2:36And you know that a lot of that is just very organically and
- 2:39natural. But like that, that, that is the
- 2:40main new thing because you know, we still do the YouTube stuff
- 2:45that do the education thing. We still do integrations with
- 2:48other open source packages and like all of that is basically
- 2:52still the same. The one thing is that we did
- 2:57kind of a funny story. So, you know, collab from
- 2:59Google, the number one ticket on the collab get up issue list was
- 3:04the people wanted it to have Marimo support in Google collab.
- 3:09Like so we built a thing called Moab and our intern wrote on the
- 3:14issue tracker like, yeah, we built it instead.
- 3:15It's kind of a funny little internal joke there.
- 3:18But we have we we made a thing called Moab, which is basically
- 3:21just hosting Marimo in the cloud.
- 3:23And one thing you can imagine is that we, you know, with the
- 3:25whole core we've backing us, we can do more elaborate things
- 3:29with cloud compute for MO Lab. Like that's definitely a thing
- 3:31that, you know, we can start dreaming a little bit there.
- 3:35So that's. Like how so?
- 3:36I didn't quite follow that, just basically hosted notebooks now.
- 3:41Yeah. So we've, we definitely, we've
- 3:43got free credits with our notebooks that was always CPU
- 3:47based. But you can imagine we might do
- 3:49like bigger machines and maybe a GPU or two because core weave
- 3:53has a bunch of them, right? That's like stuff that we, you
- 3:57know, we have in the pipeline. But the, the thing about the
- 4:00setup that I, I guess I want to emphasize that's really neat is
- 4:04one way to make MOLAP better is to make Marimo better.
- 4:09So you can definitely imagine that there's this incentive
- 4:12structure where if we want to, if we want MOLAP to be better,
- 4:14we definitely have to keep on investing in the open source
- 4:16thing. And that is the main thing.
- 4:20Like that was also in the back of our minds during the
- 4:21acquisition. Like we can do a lot of cool
- 4:23stuff, but only if we can find a nice way to keep that open
- 4:26source thing very much alive because we don't want to change
- 4:27that license. We just want that thing to just
- 4:29keep on existing. And by having this thing where
- 4:31Molap is, you know, a thing that we can work on, but the way you
- 4:35make that thing better is by investing in the open source
- 4:37thing. That is a very healthy incentive
- 4:39to have as well. So that's that's, that's the
- 4:40main thing I would like to emphasize.
- 4:42OK, real quick, if you happen to find yourself in the South Bay
- 4:46on March 3rd, we're going to be taking over the Computer History
- 4:50Museum for our Coding Agents conference.
- 4:54That's right, we're organizing another conference despite me
- 4:57telling myself so many times after we did our AI quality
- 5:01conference that I would never do another conference because of
- 5:03the stress that it caused. Somehow I seem to have broken my
- 5:07vows because the pole was too strong.
- 5:09Some of the notable speakers that we have already announced
- 5:12are Sid friend of the pod and Co creator of Claude Code, Harrison
- 5:17Chase, the founder of Lang Chain, good old Dex, the founder
- 5:21of Human Layer, and the dude who popularized the term context
- 5:25engineering and harness engineering.
- 5:28And last but not least, someone I consider a very close friend,
- 5:32Mikhail Eric is going to be doing a workshop.
- 5:35He's a Stanford lecturer and actually he was a past Co host
- 5:39of this here podcast that you're listening to, you know, before
- 5:43he got all famous and stuff. Come join us.
- 5:46It's intimate by design. There's only 450 people that
- 5:50we're going to let in to the room to try and keep the signal
- 5:53as high as possible. So I'll see you there real
- 5:56quick. Let me talk to you about
- 5:56hyperbolic GPU Cloud. It delivers NVIDIA H1 hundreds
- 6:01at $1.69 per hour and H2 hundreds at $1.99 per hour.
- 6:09And this is with no sales calls, no long term commitments or
- 6:14hidden fees. You can spin up one GPU or scale
- 6:17to thousands in minutes with VMS, bare metal clusters and
- 6:22high speed networking. You've also got attachable
- 6:25storage and you only pay for what you use.
- 6:29Save up to 75% less than legacy providers.
- 6:33And Oh yeah, by the way, you need steady production grade
- 6:36inference. Well, you can choose dedicated
- 6:39model hosting with single tenant GPU's and predictable
- 6:43performance without running your own hardware.
- 6:48Try now at app dot hyperbolic dot AI.
- 6:52Let's get back into this show. And what are the synergies with
- 6:56weights and biases the product? I mean, we're, that's like stuff
- 7:00that we are exploring right now, right?
- 7:03But it's definitely Weights and Biases has historically always
- 7:06kind of been, you know, they've been fairly friendly to like the
- 7:09academic community as well. I guess it's a little bit less
- 7:14in Europe, but my impression is definitely it's like a lot of
- 7:17companies in California just use Weights and biases.
- 7:19It's kind of a somewhat normal thing.
- 7:20So you can definitely imagine like some integrations, one of
- 7:23the first things that we've added.
- 7:27So Weights and Biases also has like an LM inference engine.
- 7:30The day after the acquirer, the acquisition was public, we just
- 7:33added support for that inside of REMA notebooks.
- 7:35We also have like very elaborate LM support.
- 7:37So that's like a click away now and you know.
- 7:39LLM training support or within the notebook.
- 7:43So weights and biases has a service where you can call Llama
- 7:47and a couple of those opens, I think they're all open source
- 7:49models if I'm not mistaken. So like that's, that was like an
- 7:53easy integration. We could just add on day one.
- 7:55Basically. I cannot talk about the main
- 7:59specifics just yet, right, because people are working on
- 8:01stuff, but you can definitely imagine integrations happen.
- 8:03Yeah, yeah, OK, awesome. You're like a treasure trove of
- 8:09cool stuff. I guess like one thing that that
- 8:12does make Marimo unique is the reactivity, right?
- 8:15But then came along these LLMS, so people were sort of banging
- 8:19on door like, oh, can you do LLM stuff too?
- 8:21And there is interesting stuff happening there right now.
- 8:23So we for the longest time, we have agent support.
- 8:29So you can open up a little window and you can give your API
- 8:31key of Claude and then you can, you know, do your Claude stuff.
- 8:35What you could do is you could say, oh, there's a data frame
- 8:37there. Hey, I want you to write SQL for
- 8:40that data frame. Oh, but how do you add the
- 8:42context? I do describe the data frame.
- 8:45Is the LM supposed to look at all of your code and infer what
- 8:48the column names are and what the types are?
- 8:50So that was always a bit of a conundrum.
- 8:52So what we do is you're able to point, do at and then some sort
- 8:55of variable. And then we do our best to add
- 8:57any context we can add to the prompts.
- 8:59So if you point to a data frame, we can automatically say things
- 9:02like, oh, that data frame has these columns, it has this many
- 9:04rows. These are the types of each
- 9:07column and what do you know that makes it a whole lot simpler for
- 9:09the LLM to actually write the sequel or the data frame code
- 9:12you want. So that's definitely interesting
- 9:15stuff that we can do. But then I think Zed, the editor
- 9:19started this thing with ACP. So can we have an agent protocol
- 9:24as well such that you can just say, oh, I want my editor just
- 9:26have clawed, have that be a protocol that's just added
- 9:28clawed code or Codex or Gemini. I think they've also added
- 9:31support for it, so there's an experimental feature in Marimo
- 9:34now that also lets you just run clod code within Marimo itself.
- 9:37So you can just use native clod code with your keys and your
- 9:40subscription within Marimo 2 via ACP protocol.
- 9:43But it will wait. ACP or MCP?
- 9:46So we also support MCPACP is a relatively new thing.
- 9:49OK, it's a new one. Great, all right.
- 9:52But that just means that now clod code is generating code
- 9:56inside of your notebook and you. Don't have to do the API key
- 10:00thing where we every time you make a request you have to pay
- 10:02for it. You can user Claude description.
- 10:05We also have a linter that's specific to like Claude because
- 10:09there's like some errors that are really specific to Marimo.
- 10:12You can have a linter trigger every time that Claude does
- 10:15something and then we do linting.
- 10:16And one thing you can't do Marimo, for example, is you
- 10:18cannot define variables twice. So if there's one cell that has
- 10:21a = 1, the other cell that says a = 2, we have to make
- 10:24assumptions about what the actual value of a is.
- 10:27So we just don't allow for that and there's like errors like
- 10:29that that we can then again send off to Claude, it can fix
- 10:32itself. So there's a lot of like LLM
- 10:34innovation that's happening too in the notebook is the main
- 10:37thing I would also like to stress.
- 10:39Yeah, tell me more. I mean, so my dream would be
- 10:41that eventually we might be able to.
- 10:44We're definitely not there yet. That's the one thing I want to
- 10:46mention first. But the one thing I would love
- 10:48is that you could say things like, oh, actually I want to
- 10:51have a copy to clipboard button and that button doesn't exist
- 10:54yet, but we can just generate one that's in any widget that we
- 10:57just want to generate on the spot.
- 10:59So that dynamic UI type thing. That's the thing I would love to
- 11:03do more of. And you can also imagine I need
- 11:06to find time for this. Like one thing I would also love
- 11:08is that we get these LLMS in such a place where, oh boy, this
- 11:11is a super interesting article. Look at this really cool diagram
- 11:14in it. Hey, LLM in the notebook.
- 11:16Can you reproduce this in some way?
- 11:19But at sliders so I can play around and we're definitely not
- 11:23there yet, right? But that will be a really cool
- 11:24learning experience. Like, OK, this is the latest
- 11:26paper. Oh, that mechanism looks kind of
- 11:28cool. I won't have a better intuition.
- 11:30Can I have sliders and interactive matrices and just
- 11:32the plot updates based on the thing that's in the paper and
- 11:34like what's the quickest path to maybe get there and another?
- 11:39On your own data or on the data from the paper, it would have to
- 11:42go out there and get that data or.
- 11:44Well, I mean the data has to be public and if the data set is
- 11:47huge like, you know, petabytes, then.
- 11:50It's going to be a little bit more it's.
- 11:51Going to be a little bit harder, but if you're dealing with the
- 11:53intuition, then you probably want to.
- 11:54Then it's more about generating the Pytorch code and can we get
- 11:57the phenomenon at least visualized and things like that.
- 12:00Another thing about Marimo notebooks that's good to mention
- 12:02is that these days a lot of them do work in web assembly, so you
- 12:07don't need the Python back end anymore.
- 12:08So if you want to have a blog with the sliders and all that
- 12:11jazz is generated with Python, you can actually do that.
- 12:14The downside is not every Python library supports WASM via
- 12:17Piadite just yet. But that's like also something
- 12:19like. I would love for people to maybe
- 12:21also have like a good caching mechanism, such as you write
- 12:23your notebook fully in Marimo and then you export it
- 12:27statically to HTML but you maintain.
- 12:29The dynamics, yeah, that's. We're not quite there yet, but
- 12:32like via Piadite, we do see a path towards it.
- 12:35Going back to that dynamic UI generation, what do you feel
- 12:38like would be behind the scenes happening in order for that to
- 12:44be like a reality? In my mind, the biggest hurdle
- 12:47right now is that some Python developers are a little bit
- 12:50arrogant and refuse to learn JavaScript.
- 12:53And if you refuse to learn JavaScript, it's going to be
- 12:56hard for you to debug JavaScript.
- 12:58We just heard last night in one of the talks from our agents in
- 13:03production conference, they were saying, OK, what do you think
- 13:06the hardest code to generate is for cloud code or cursor?
- 13:12And it had JavaScript, Python, Rust.
- 13:16And people are saying like, Oh well, the best is Python.
- 13:19By far the best is going to be Python.
- 13:22The worst? I don't know.
- 13:23But I think OK. My guess is the best is probably
- 13:26JavaScript, the worst is probably Rust.
- 13:27No, the worst is JavaScript, because there's so much
- 13:31JavaScript on the Internet and a lot of it is really bad.
- 13:35Interesting. So it just makes it much harder
- 13:40to generate quality JavaScript. Yeah.
- 13:43So I, so The thing is I, I can do JavaScript, but I know that
- 13:45I'm not an expert at it. So what the bias that I have is
- 13:48that I do spend more time like getting the prompts just right,
- 13:52planning it out really carefully.
- 13:53And with the Python, I kind of yellow it because I can always,
- 13:55it's easier to fix. So I've not really had that
- 13:57problem. But again, I'm, yeah, it depends
- 14:00on what you're building to. Like if you're building a web
- 14:01app, that's also a different story than the stuff that I'm
- 14:04doing. But getting back to this.
- 14:06So developers, Python developers reluctantly use JavaScript, yes?
- 14:11And you feel like that would be useful to dynamically create
- 14:17these UI elements? Or even not dynamically, just in
- 14:20general. Like one weird bit of feedback
- 14:22that I've gotten is like, Vince, did you make all these widgets?
- 14:24Why? And the honest answer is because
- 14:26for some reason, no one, no one else is making them.
- 14:29And it feels such a natural thing like if you, if you love
- 14:31if, I mean you don't even have to love it.
- 14:33If you work a lot in notebooks, you want to have widgets, they
- 14:34just make your experience so much better.
- 14:36So why am I the only one? I think it's because I, at a
- 14:41very early part of my career was just falling in love with D3.
- 14:45So I didn't care. I'll just learn JavaScript
- 14:47because I want to do D3 and I'll also learn Python because I want
- 14:49to do so I could learn. But I think a lot of people just
- 14:53are very reluctant to learn JavaScript just because of the
- 14:55Node stuff. That's my impression.
- 14:59Yeah. And but it does level you up to
- 15:01be able to go and execute so much more when you know that
- 15:04front end. I think so, yeah.
- 15:06Again, it's a mystery to me why someone would not teach
- 15:08themselves JavaScript in this day and age where everything is
- 15:10a web app. Yeah.
- 15:11And it's, it's like 90% generated for you.
- 15:15So a little goes a long way in this case.
- 15:18I would definitely agree, although I there's also that
- 15:24there's also that aspect of it of, OK, should people still
- 15:27still learn how to program And like, that's a, that's a theme
- 15:30that I hear people talk about. That's a.
- 15:32Little crazy statement in my mind.
- 15:34Yeah. So I'm actually kind of of the.
- 15:36So I like to do flash cards and things like that just to sort
- 15:39of. I think if you train your
- 15:40memory, it also makes it easy for you to remember and at least
- 15:44helps with the iteration speed and also makes it a little bit
- 15:47less intimidating. Like, OK, you know the steps to
- 15:49start a new project. You know the steps to like, OK,
- 15:51what, what can we expect from the document of the, of the
- 15:53browser and what are good methods?
- 15:56But I think also if you just really go deep a little bit,
- 15:59that is also less intimidating because otherwise you get into
- 16:02this self helplessness of, oh, I can only build stuff if I have
- 16:04an LLM around. Like yesterday Cloud Fire went
- 16:06down for a bit and like, I'm I'm hoping people were still
- 16:10productive. Productive day of the year.
- 16:12Yeah, but does the national intelligence go down whenever
- 16:16Cloudflare is now in because no one can resell what God knows
- 16:19where that sort of anti utopia we're living in?
- 16:22But you know that graph, right? That is like when you start a
- 16:25project, you think, oh, it's going to be so easy, and then
- 16:28you go into the. Yeah.
- 16:29Disillusionment. You basically got to get past
- 16:32that trove before or through I think is how it's pronounced.
- 16:36Or you have to train yourself to be good at project set up.
- 16:39Like if I remember very early on, I was sort of just playing
- 16:43around with these things. I was kind of thinking like, OK,
- 16:45let's see if I can I fully Yolo and I won't look at the code at
- 16:48all, but can I fully Yolo a web app and have it send emails and
- 16:52Postgres and set all that stuff up?
- 16:53And it did. And then I noticed that whenever
- 16:55I was running unit tests, I instructed it to start with an
- 16:59empty database. Apparently just.
- 17:02Delete the database. It would go to prod, delete the
- 17:04whole thing and run all the unit tests there.
- 17:07And if you just set up the project yourself manually or if
- 17:10you just have a good template or something like that, such a that
- 17:12that kind of crap just doesn't happen, I think you're already
- 17:14in a much better spot. And my impression is that all
- 17:17these, what's a polite term, teenage tech Bros.
- 17:24Vibe. Coders, yeah, if I whatever you
- 17:25want to call them, but if you missed that first bit, like how
- 17:28do you actually set up a proper project?
- 17:29You know that that's that's where the flaw is, not
- 17:31necessarily in the LLM. It's the first bit that
- 17:33foundation. I think so, yeah.
- 17:35Yeah, it is interesting to to see that now, since it is easier
- 17:42to put a front end on things with Vibe coding, the
- 17:47expectation has kind of been raised.
- 17:51So now, whereas before you would probably be doing a lot of stuff
- 17:55with Streamlit, now you can be like, well, let's see if we can
- 17:59do this in React. Yeah, but I would still be in,
- 18:03especially if it's experimental. I would still be in favor of
- 18:04first doing a widget then. If you're a Python person,
- 18:07widgets are probably the most fun way to learn JavaScript at
- 18:10this point because you might still not need the whole node
- 18:15pipeline and you might still be something you can use right away
- 18:17together with your Python code that you love to use, right?
- 18:21So that would be the way I would personally think about it.
- 18:24One other thing, I have a Flash card app that I'm making.
- 18:29And let's say you could do that with something like HTMX such
- 18:32that what we send over the wire is not Jason, but full HTML.
- 18:35And every, every time I see a new Flash card, we send HTML
- 18:38back, I see a new card. Next makes a request.
- 18:41I see a card that works, but it's not the ideal user
- 18:45experience. The ideal user experience would
- 18:46be, OK, I want to practice 20 cards, let's send one Jason
- 18:49payload back. I only make the request once
- 18:52that's in memory. Now I do all of my card stuff
- 18:54and then at the end I send the request back because that way
- 18:58it's subtle, but there's a noticeable time lag because it
- 19:00has to make every single request when it fetches a new card.
- 19:04In the end, if you care about user experience, you have to
- 19:06care about JavaScript on the front end.
- 19:07And it's fine if you say I don't care about it, but if you are
- 19:11product minded, you have to. And that's, that's what bother.
- 19:15That's what something that does bother me in the Python
- 19:18community sometimes, like there's a bit of an arrogance
- 19:19for JavaScript, which I, I plainly find unfounded.
- 19:24Yeah. Well, talk to me more about the
- 19:26LLMS in Miramo, because it feels like you've got other ideas.
- 19:32Some of this depends a lot on what standards become available.
- 19:36So a big reason that we were able to push for the LLMS the
- 19:38way that we have was that because at some point MCP was a
- 19:41thing and because at some point ACP was a thing.
- 19:43And so in a lot of ways we are dependent on that.
- 19:48So I can dream, but I, if we start planning, we have to sort
- 19:51of keep that in mind. A thing that we are
- 19:53experimenting with more now though is not so much, OK,
- 19:56people know how to use an LLM inside of a notebook, but can we
- 20:00bootstrap notebooks from the start?
- 20:02So we have this Remo new command and you can give it a prompt and
- 20:06what you are able to do is say like oh there's a CSV file right
- 20:09there. Make the first notebook version,
- 20:11it has to do these analysis and we'll just bootstrap on from the
- 20:14start. And the benefit of it being a
- 20:16notebook is that you can look at all the intermediate results and
- 20:19it's very visual you can add charts.
- 20:21So it's also a lot easier to spot the mistake.
- 20:24And I think that's kind of the the most interesting thing if
- 20:26you plump everything in an IDE and sure you can add some unit
- 20:29tests, but it's hard to see the intermediate results and it's a
- 20:32lot easier to poke around in a notebook.
- 20:35So that's a little bit more the thing that I'm I'm I'm
- 20:37personally very interested in so.
- 20:38You know what? I actually, yeah.
- 20:40What that just sparked in my mind is how notebooks are very
- 20:46made for humans. Yeah.
- 20:47And agents, I was trying to figure out like, well, is there
- 20:51a world where an agent would want to fire up a notebook and
- 20:54try and see things through the eyes of a notebook, Which I
- 20:58don't think really makes sense. But there is a world where
- 21:03you're interacting with the agent and when it's giving you
- 21:07results, you want to see it as a notebook or you want to be able
- 21:11to change different contexts that it has through a notebook.
- 21:15So one thing that I mentioned before, right?
- 21:17So you have the AT dataframe thing, you can point to a
- 21:19variable. You can also do AT errors and
- 21:22any errors that appear in the notebook go to the LM.
- 21:24You can also do that with a cell output.
- 21:27So if the cell output is some sort of weird widget that we
- 21:29don't necessarily have a good representation for, if the model
- 21:32in the back is multimodal, we just make a screenshot and send
- 21:36that. So when you say LMS can't see
- 21:38the notebook, well, they kind of can.
- 21:40It's just that they're not always as good as interpreting
- 21:43charts yet. Like that's more the thing, but.
- 21:45Data, just the raw data, right? It's.
- 21:47More. Well, we're not going to.
- 21:49Well, if you have a GB of data locally, you're not going to
- 21:51send that to the context anyway. But what you can do is say, OK,
- 21:54let's send the 1st 5 rows and the schema.
- 21:56That should already make it a whole lot simpler for the LM to
- 21:58write the right query, right? So there's definitely this
- 22:01interaction. It's just that we're only
- 22:02scratching the surface because we're just starting out with
- 22:04this. One thing I will say, under the
- 22:08hood, a Marimo notebook is a Python file.
- 22:10So we don't have that weird Jason structure thing that
- 22:12explodes and gets like, that's the thing we don't have.
- 22:14It's a Python file. So one thing that I've been
- 22:17experimenting with is you could build your Python package in
- 22:20Marimo because it's a Python file.
- 22:22So kind of what Jeremy Howard's doing with MP Dev, like there's
- 22:26no reason why you couldn't do that inside of Marimo.
- 22:28So a example, I like to write my command line apps in Marimo
- 22:32nowadays because with Typer, you can do like a decorator on a
- 22:35normal Python function. Marimo also supports π tests.
- 22:38So if you have a cell and there's functions in there, they
- 22:42all start with like test under score that we detect.
- 22:45Those are probably π tests. So you can add your unit test in
- 22:47notebook as well. And we can detect when the
- 22:50notebook is running in the browser or when it's running
- 22:53from the terminal. So I can define functions in
- 22:57Python that you can run from the command line.
- 23:00And with typer, I can reuse the same function inside of pytest.
- 23:02And it's all one Python file. Oh, and we support UV, so you
- 23:05can add your dependencies on top of the file and then UV will
- 23:08take care of all the dependencies and the right
- 23:10versions and all that for you too.
- 23:12Oh, and then we add LMS to the mix.
- 23:14So like, again, like I'm, I'm pretty comfortable saying that
- 23:18there's so much stuff still left to uncover.
- 23:21But the main thing that the notebook is really good at is
- 23:24you can stare at it and you can, you can fiddle around with it,
- 23:27you can play around with it. And something about that is very
- 23:30good for the human mind to also understand what's happening
- 23:32under the hood. Yeah, that exploration, yeah.
- 23:35And and that doesn't just mean data stuff, it also means
- 23:37command line apps. And there's like the flash card
- 23:42thing that I mentioned, I need charts to debug the like, timing
- 23:47between flash cards, learning aspects.
- 23:49There's a name for it, repetitive something, something.
- 23:52But for that aspect of the app I have, I need to have charts to
- 23:54debug. Yeah.
- 23:55And Marimo gives me a development environment that's
- 23:57really good, giving me charts as I'm developing.
- 24:00And it's a Python file, so I can export that one function that I
- 24:03really want in the notebook to my Flask app.
- 24:05And it just works. Oh, and we have LMS, Yeah.
- 24:09Actually, a common use case that I've seen with agents to debug
- 24:13them is creating heat maps to figure out if they called the
- 24:17right tools or if they did executed the right tasks.
- 24:20Now is the time to start dreaming about those things, I
- 24:22guess is the main thing I want to say.
- 24:23Because the way you think about the way I thought about
- 24:25notebooks five years ago needs to change.
- 24:29Because, you know, Python notebooks are better now.
- 24:32That's the. Word collab being restricted by
- 24:36if. You want to use collab, that's
- 24:37fine, but you can rethink that and that should like I care a
- 24:39lot about intellectual freedom. My number one fear is that
- 24:42people, I think if you want to succeed in this field, that the
- 24:45only thing you got to do is like watch YouTube videos and books
- 24:48of other people and that they stop thinking of new ideas on on
- 24:50their own. What I really like about Marimo
- 24:52is it does invite play, so you're able to explore your own
- 24:55ideas a bit more. And it's that intellectual
- 24:57freedom that I find. Yeah, we need more of that and
- 25:01we need more people making interesting stuff.
- 25:02You need to produce and not just consume content.
- 25:04I mean, we need more good ideas in the ecosystem.
- 25:07That's how we move the ball forward.
- 25:08And yeah, in my mind, when I first saw Marimo, the reactive
- 25:12nature of it actually corrected me a few times, which is neat.
- 25:15But I also just noticed like, oh, if I can mix UI with Python
- 25:19code, oh, that's super amazing for prototyping.
- 25:21And oh, I found a mistake in my data analysis there because a
- 25:24slider shouldn't work that way. OK, great.
- 25:26Like I'm aware of the fact that I'm like a guy who works in
- 25:30Marimo is like making a massive pitch from Marimo at this point.
- 25:33So like, dear listener, try to sympathize.
- 25:35But the main that I do want to emphasize, like the dreaming
- 25:38aspect of it is the cool bit. That's the one thing I want to
- 25:40like, double down on. I think that's a perfect place
- 25:42to end it, so that is awesome. Cool.
- 25:45Yeah, thanks for having me in this fancy studio.
- 25:49And it looks fancy from this side, trust me.
- 25:52On. This side not so fancy.
- 25:53This is all cables, yeah, and. Cameras.
- 25:55What the viewer cannot see is no problem.
- 26:01OK, final pitch then. We have a YouTube channel.
- 26:03There's videos that explain everything.
- 26:05Check it out. Check out Molab.
- 26:06We have a bunch of free compute as well.
- 26:09Feel free to use it and we have a cool discord.
- 26:12We have a great memes channel.