A big episode about tiny things

Shay Nehmad:

Man, I got I just wanna finish the episode quickly and get to the interview. It's really good. Okay. This is Cup of Go for 09/11/2026. Keep up to date with the important happenings in the Go community in about twenty minutes per week.

Shay Nehmad:

I'm Shay Nehmad.

Jonathan Hall:

And I'm Jonathan Hall. You think we're gonna make twenty minutes this week, Shay?

Shay Nehmad:

Hopefully we'll make it quicker because we have a really good interview coming up. But before that, Happy New Year, Jewish New Year.

Ron Evans:

Don't know

Shay Nehmad:

if you even know this, but it's Jewish New Year

Jonathan Hall:

today. Awesome. I didn't know that there was a Jewish New Year distinct from others. I learned something every day. Jewish calendar and whatever.

Jonathan Hall:

Oh, yeah. I guess that makes sense. I just didn't know that.

Shay Nehmad:

So one way you could celebrate, which is really easy, which is why I like telling people we're not Jewish about this holiday, is just to eat the holiday snack, which is just grab apples, like apple slices and dip them in good honey. Okay. That's it. Not too complicated. And it's like you have a sweet year.

Jonathan Hall:

Okay. Interesting. You have to do it at midnight or anything like

Shay Nehmad:

that or all day long? Whenever you want. I recommend green apple, although usually it's pictured with red. Green actually works better.

Jonathan Hall:

The tartness.

Shay Nehmad:

Granny Smith, you know, like a sour one with really good honey. Well, happy New Year. I hope next year for us, for the show, we'll include lots of cool Go releases and libraries and stuff that we'll learn, etcetera, etcetera.

Jonathan Hall:

But, yeah, as as you mentioned, Shay, we have an interview coming up. We just got off recording the interview with Ron Evans. We talked about Tiny Go, Go on embedded devices, a whole bunch of cool stuff. Stick around for the interview. We're gonna try to breeze through the news here because we've talked to you for about an hour.

Jonathan Hall:

So we're going to try to get through the news here really quickly. The first thing I want to talk about is something I kind of alluded to last week when we talked about have I upgraded to Go 127 yet, and I had not because a particular tool I use in my CI pipeline to detect dead code didn't work yet in go one twenty seven. Well, finally, golang.org/x/toolsversion0.50 has been released, which works with Go 1.27. So I have upgraded my two active Go projects that I work on regularly are now both running on Go 1.27.1. So that's the first thing.

Shay Nehmad:

So when looking at dead code specifically, they have an old blog post about it, finding unreachable functions with dead code. That's kind of weird to me because what I remember is that I can't even compile my Go file if it has like an unused import or whatever.

Jonathan Hall:

That's a different aspect of dead code. So you're right, you can't do that if you have an unused import or a variable that's not used somewhere, you can't compile. This is a different dead category. So this is a function or I think it's mostly functions that you have defined that are not used anywhere. And for that to be meaningful, you have to define what your main package is, because like you might have a library package that exports the foo symbol, for example, but it doesn't know that that's unused unless you define where your main package is so it can resolve the entire import tree.

Jonathan Hall:

By doing that, you can detect when you have a function that you've written that maybe you deleted the last caller of it, so now it's dead code. So that's what I use it for in my CI pipeline.

Shay Nehmad:

I know we have listeners and also hosts, wink wink, that don't necessarily always use Go for their production. But there are equivalent things for other languages as well. And I always put it in CI. In TypeScript, I use NIP, which is very frustratingly for a podcast named k I n p,

Jonathan Hall:

like in

Shay Nehmad:

silent k. I think in Python, it's something called Vulture or whatever, but that doesn't work well enough, like, consistently enough to be part of the CI. But, yeah, it's it's definitely something useful to put in CI. And now it works in Go one twenty seven? Yep.

Jonathan Hall:

It does.

Shay Nehmad:

What was the holdup?

Ron Evans:

Like, why

Shay Nehmad:

didn't it work out of the box?

Jonathan Hall:

I think because of I can't remember what it was now, they added a new type method somewhere and I don't remember who's in GoTypes or I don't remember where, but there was some small change in the library that the old version didn't recognize.

Shay Nehmad:

So nothing like major O one hundred twenty seven weekend.

Jonathan Hall:

It wasn't like a bug that it started crashing or printing wrong results. It just didn't compile and didn't work. So it easy to fix.

Shay Nehmad:

So are you on 127 now in all your projects? I am.

Jonathan Hall:

On the two projects I'm most active on, I have a bunch of libraries I maintain that are, you know, don't I don't care nearly as much about that. But the two the two projects I'm actively involved with are both on 01/27 now. Yes.

Shay Nehmad:

Congratulations. My new project from this week is also on 01/27. If you're watching the video, you'll see it. I'm Yeah. Building a tiny go thing for detecting moisture for my mint plant, which will we discuss more on the show.

Shay Nehmad:

But that started on 01/27, and that was awesome. And then I was like, I built a relay for the project. I'll have a blog post about it when I'm done, but like a tiny HTTP to HTTPS relay that I deployed, by the way, to Coieb, which used to sponsor our show before they were bought by Mistral. Do you remember those guys? They were cool.

Jonathan Hall:

I do.

Shay Nehmad:

Yeah. So I deployed it there and they don't support one twenty seven yet. Oh, boy. So I had to downgrade my relay to one twenty six, which was actually not hard at all because all I had to do is change the GOMON because it was very basic, just like take an HP request, parse it and move it to Telegram or whatever. But I had a little moment of like, ah, they don't have the runtime yet.

Shay Nehmad:

But if you're a KoyaBee user, don't worry. You can just package your own Docker. I was just like trying to lazy my way out of it and just use so I'm still stuck on 126 and some things as well. I wish there was like one number. There was like one file in the Internet.

Shay Nehmad:

And when you changed it, everybody immediately became compatible. That would have been so cool.

Jonathan Hall:

Okay. Yeah. I don't know about that one.

Shay Nehmad:

Yeah, probably never going to work.

Jonathan Hall:

Moving on.

Shay Nehmad:

Yeah, we have a competing social media use. You use Blue Sky or you find stuff on

Jonathan Hall:

Blue I do not use Blue Sky. Don't use either one.

Shay Nehmad:

Oh, so who put this link here? Was that me?

Jonathan Hall:

I put it there, but I didn't find it there because I don't use Blue Sky. I found this I don't remember where I found this. Maybe GoLang Weekly? Anyway, quick post from Russ Cox, former lead of the Go team and former Google employee. One of his notes in this tweet is he's no longer a Google.

Jonathan Hall:

I don't know the story there. Sound interesting. But the point of this of this post tweet, it's not a tweet, it's a post.

Shay Nehmad:

It's just post. Think this

Jonathan Hall:

guy's Point of the post. He just makes the point that frontier LLMs are much better and dramatically faster than he is at finding and fixing bugs. You're not asking them to debug your code and review your bugs. You are doing it wrong. And this was in response to something from Filippo Valvassori, who's also been on the show before, who we talk about frequently as he's heavily involved in the crypto and security work on the Go team.

Jonathan Hall:

Saying the same thing. Essentially, it's very clear by now if LLMs are not improving your software quality, it's either a revealed preference, yours or your organization's, or more volume versus more quality or a skill issue. So a little bit of a hot take, I guess. It's either a skill issue or a preference. I don't know.

Jonathan Hall:

What do think about that?

Shay Nehmad:

I really agree that LLMs can be they can sometimes increase your velocity or your org's velocity, then it's a question of like, a vector is made up of direction and velocity. So if your company used to create pretty bad software with lots of bugs that the users didn't like, and now you do it 10 times faster, you're just going to create 10 times more bugs and more software that people don't use. There is a gotcha here that is sort of hidden, and I think that's why it's a pretty simplistic take, is that you can fix surface level bugs, but make the system more, I guess I should say less maintainable. I was about to say more unmaintainable, less maintainable in the long term, right? Because you add a bunch of like, oh, the software sometimes panics here, so I'll just put a recover right there.

Shay Nehmad:

I feel like a lot of time agents have that tendency to fix and patch over and things like that in a way that doesn't necessarily make the software very maintainable. But the thread of examples here from Russ is I think is a good example. If you build a lot of tooling around it, it doesn't matter if it's for humans or for agents, but I think people are more motivated to do it for agents like bisecting, right? There's blog posts of a bisect. An agent would be more capable in just using that tool over and over and over and over and over again for what would be hundreds of years for for a human just to find these bugs that are listed on this, like, on the on this post, like finding race conditions, I don't know, all sorts of bugs.

Shay Nehmad:

And I also really like the way he presents it. Have you opened up the agent logs part of his research blog?

Jonathan Hall:

No, I didn't open that. I probably should have, yeah.

Shay Nehmad:

So if you look at the post, it's really interesting because it shows the entire sort of conversation log. And it could be like, you see Rusty writes triage and debug, and then go dev issue eighty one twenty one, like a very simple prompt. I will note, sometimes I do it, sometimes I don't, but it is capitalized and ends with a period, depends on how many patients I have and how many agents I'm running. I don't know if I'm always like proper grammar, but I guess it's probably better even just for you. And it's like, what the assistant is doing, like it shows all the tools that it ran, which is interesting.

Shay Nehmad:

You can see like, okay, so I tried to copy this file and grab some stuff in it and run some tests and blah, blah, blah. And then the agent's like response, this is the fix you need, something or another. There's like eight examples that Ross gives here of how he used Cloud for this like debugging, which I found very I find very interesting. People talk about the result, but this is like showing, you know, how in school you had to you couldn't just solve the equation, you had to show your way. This is similar.

Jonathan Hall:

Yep. Cool.

Shay Nehmad:

Again, like both these takes are like, yes, you can do it, but also Go has years and years of tooling as a project, Go itself, right? Like years and years and years and years of tooling and discussions, it's like not the same as like working in a company project, it's not the same. You shouldn't expect this to work for work well for your own project or as well, I should say.

Jonathan Hall:

I've I've had very similar experiences on some of my own projects, but I I suppose it depends on the project.

Shay Nehmad:

It can work. I'm not saying it can't. It's just like statistically and also the fix might be worse. Right?

Jonathan Hall:

Sometimes. Yeah.

Shay Nehmad:

Operation succeeded. Patient has died.

Jonathan Hall:

You still have to apply engineering practices and human thought process.

Shay Nehmad:

One final blog post about AI ish is the modern guidelines thing from JetBrains that I wanted to to share.

Jonathan Hall:

Tell me about it.

Shay Nehmad:

What do you think about the modern Go guidelines repository from JetBrains?

Jonathan Hall:

This repository contains guidelines for code agents that help them write modern Go code. Motivation. All coding agents tend to generate outdated Go. Two reasons. Training data lag and frequency bias.

Jonathan Hall:

Yeah, agree with both of those.

Shay Nehmad:

Yes, but I'll challenge it. Although, you know, I'm sort of playing devil's advocate right now. Does it matter?

Jonathan Hall:

Sometimes.

Shay Nehmad:

Like, okay, so they're using the four, you know, I 10 instead of using four range.

Jonathan Hall:

Yeah. Yeah. That doesn't really matter very much.

Shay Nehmad:

So this is you know

Jonathan Hall:

This matters most for code that is read by humans, I would say, who want to maintain that level of, you know, nicety or whatever polish.

Shay Nehmad:

And there is a modernizer that does it automatically. So why would we need, like, guidelines as well just to avoid generating the old code in the first place?

Jonathan Hall:

So I think I think if you have a modernizer that can fix these, you should remove those from your your quad code or instructions and just run that. Just rather instead say run this tool after every edit you do or something like that, which is basically what I do for GoFumps, right? I don't don't don't tried my agent for using the wrong indentation or whatever. I just run GoFumped and let it take care of it just like I did for humans before the agents were a thing. So yeah, why waste your tokens and potentially frustration on stylistic things that can be enforced by a deterministic tool?

Shay Nehmad:

To be fair, some of them are not in the modernizer, like use URL clone to copy a URL, something I wasn't even aware of, but apparently you should instead of copy

Jonathan Hall:

This landed in 01/27, didn't it? That was pretty new.

Shay Nehmad:

Yeah. This is a 01/27.

Jonathan Hall:

So that would be a case where I think it could matter, not for stylistic reasons, but because the agent might do it wrong or introduce a subtle bug or behavior difference by doing it themselves. So that's a case where I think probably it could matter.

Shay Nehmad:

So I don't know if I'm going to install it. I might try it. You can check it out. It's in the show notes. Because these plugins or whatever have a material physical costs with them, right?

Shay Nehmad:

Like they cost literal dollars for you in tokens. Tend to look at these very warily and like, yeah, it might make the code slightly better on like 0.1% of the cases in a way that might matter, but not really because I have tests and whatever to check what I actually wanted to do. And if I open it up and it looks weird to me, I should probably know about these new language Like this sort of if you install this, it sort of precludes you from, like, listening to our one twenty seven episodes because, oh, I can just run this skill on it. So I

Jonathan Hall:

don't I

Shay Nehmad:

have mixed feelings about it.

Jonathan Hall:

I probably won't use it either.

Shay Nehmad:

I'll definitely try it just to see how much bloated it is, I but don't know if I'll install it very consistently. Man, but I really wish I had some really good podcasts talking about all this AI stuff specifically, not just through the lens of Go. Anyway.

Jonathan Hall:

I wish I had a podcast like that too. Unfortunately, all I have is my new podcast to mention.

Shay Nehmad:

Woo

Jonathan Hall:

hoo. I mentioned this a couple months ago. It's taken me a long time to get the first episode out, but it is finally out. You can catch it on YouTube or wherever you listen to your podcast. It's called Better Than Vibes.

Jonathan Hall:

It's my podcast about learning to apply engineering principles to improve AI generated or AI assisted coding. Yeah, check that out. It's not Go specific, although it certainly is relevant as a Go developer who also uses coding agents.

Shay Nehmad:

Haven't I've waited on purpose not to listen until we talk. What should I expect?

Jonathan Hall:

Well, the first episode I chat with Paul Hammond, who I've known. He and I have followed each other for years on LinkedIn, but we've never met in person. He is a much like myself, a test driven development practitioner who has found the need to adapt our old dogmas, if you will, to a new technology. So that's what we talk about in this first episode is how do we benefit from and does it make sense to benefit from or to use TDD with agent decoding. And yeah, I guess I'll leave that there.

Jonathan Hall:

You can listen to the episode if you want to hear the conclusions that we come to.

Shay Nehmad:

Definitely check it out. It's really great that you're opening a new podcast right now because one of my favorite podcasts is finished up a few days ago. I was like, man, will I like re listen to some old episodes or whatever, but it's great. I'm just like opening up a slot. Is like a twenty one year old running comedy radio show in Israel that's just finishing up.

Shay Nehmad:

I hope it will fill that hole in my in my programming schedule.

Jonathan Hall:

I have two other episodes recorded, though not yet released. One with Miriah Peterson, who's been on the show a couple times.

Shay Nehmad:

Yep.

Jonathan Hall:

And one with Brian Finster, you also met when we were in Montreal together. And I'm gonna take the opportunity now to ask you officially if you would come on and be a guest as well.

Shay Nehmad:

How much you pay? Now, think of course, I would love to come on. Right now because we recorded an interview for an hour in this episode, which we promised before we start recording it, we'll do just ten minutes, it's already twenty.

Jonathan Hall:

All right, we'll figure out the recording time later.

Shay Nehmad:

I definitely have a lot of feelings about AI coding. And living in San Francisco, the land of someone literally meets you in a meetup and they're like, what's your name, Shay? And how many tokens have you burned yesterday? Is their second question. Definitely have a lot of thoughts about this.

Jonathan Hall:

Awesome. Looking forward to having a chat then.

Shay Nehmad:

For sure. All right. Well, stick around. No ad break, but we are supported by Patreon supporters. If you like the show and you want us to continue doing what we're doing, supporting us financially is the best way to do it.

Shay Nehmad:

The money just goes to editing fees and hosting fees and stuff like that. It's a hobby for us, but an expensive one. You can find the Patreon link on cupago.dev, including links to all our other things, past episodes, etcetera, etcetera. On to the interview.

Jonathan Hall:

On to the interview.

Shay Nehmad:

So Jonathan, my mint is in really terrible situation.

Jonathan Hall:

Your mint?

Shay Nehmad:

Yeah. I have a mint plant outside, but I'm trying to I never remember to water it. You know what I mean? Here in the California sun. So I got this, in the video.

Shay Nehmad:

If you're watching the video episode, you can see this.

Jonathan Hall:

Oh, yeah. I have something like that.

Shay Nehmad:

Soil sensor thing. Uh-huh. And it's connected to a chip, but I don't know what to do with the chip.

Jonathan Hall:

How big is the chip?

Shay Nehmad:

It's tiny, man. It's really tiny. There was only anybody on the call that could help me.

Jonathan Hall:

I think we might have somebody here who could help us, but he might be dead. Not

Ron Evans:

not yet. Not yet.

Jonathan Hall:

Okay. I just I I get maybe I read the the title wrong.

Ron Evans:

No. That that is the title.

Jonathan Hall:

That is the title. Okay. It's just not a descriptive

Ron Evans:

title. Is sort of inevitable, but no. Not yet.

Jonathan Hall:

Not yet. Alright. Well, welcome Ron to the show. Ron Evans, why don't you take a second here and introduce folks? Introduce yourself to folks.

Jonathan Hall:

Tell us who you are and why we might be talking about plant sensors and and whatnot.

Ron Evans:

So I am dead program. In the real world, some people call me Ron Evans, but, I'm a technologist for hire at a consultancy called the Hybrid Group where we make the software that puts your hardware to work. Mhmm. And so I've spent a lot of time with very small chips, dare I say tiny ones. And, fortunate enough to be one of the maintainers of a cool project that you may have heard of called tiny go

Jonathan Hall:

Mhmm.

Ron Evans:

Which somehow has gotten very big despite its moniker.

Shay Nehmad:

It's not just a clever name.

Ron Evans:

Yeah. No. It it turns out it was very ironic name, apparently.

Jonathan Hall:

Okay. Awesome.

Shay Nehmad:

So last week, we discussed, the release. If you're, If you listen to the episodes every week, of foreshadowing this interview, which we already scheduled, which is way more planning than we usually have, Jonathan and I, for these searches

Jonathan Hall:

True. Yes.

Shay Nehmad:

For the show. So I'm happy it panned out. And in the last episode I said, you know what, I've never done this sort of project before, like personal tiny electronics project. Tiny Go just has support for like 127, I might as well go ahead and do it. And the first thing that like was very evident to me was how approachable this all is.

Shay Nehmad:

I've done electronics when I was like six or whatever or nine, like at school, you know, they had us play with capacitors, but it's very easy to get all this stuff. All this stuff is very cheap. And the tiny go to competition is really easy as well. Say you also work with these tiny chips, but I assume at this point, at least for you, it's not a hobby project situation. Right?

Shay Nehmad:

Like this Tiny Go is used both for hobbyists and for professional work. Right?

Ron Evans:

Yes. Well, it's very true. Certainly, I mean, any sufficiently advanced technology starts out in the form of a toy. Some smart person said that, I don't know the provenance of it.

Shay Nehmad:

It's you. Now, now it's

Ron Evans:

a A version of me in the past, maybe, I don't know. But I mean, this is just sort of how we get started with things as we give ourselves a little room to play, you know, or I'm just playing with this board, you know, that way, if it turns out you couldn't get anything to work, you've got a way off the hook. Like, oh, I was just playing with it. You know? Yeah.

Ron Evans:

See? No harm. No foul. Just play. On the other hand, maybe you actually do, and you're like, oh, yeah.

Ron Evans:

I actually doubted to do something. So now you get the chance to humble brag. So, I mean, this is just a technique that we use for ourselves in order to learn a thing that we don't know how to do yet. So I'm trying to go, like many things, started out as a desire to do something. I mean, many of us have been playing with these little boards, actually known as microcontrollers, the small chips that run all the physical things that control the world from the brake systems in your car, the blinky LEDs on your cool gadgets.

Ron Evans:

You know, everything is run by these chips. And historically, they've been programmed with the c programming language. You know? It was good enough for my grandfather. It was good enough for my father.

Ron Evans:

It was good enough for me, and it's good enough for you, kid. Like Mhmm. What's amazing is

Jonathan Hall:

this

Ron Evans:

is actually true. The c programming language is that old. In fact, on my bookshop, I have a first edition of the Koning and Ritchie c programming guide, which I did not get when it was brand new. You could still get a first edition on just random bookstores because, you know, it wasn't a bestseller flying off the shelves like, oh boy. C.

Ron Evans:

You know? But, I mean, this is the language that has run the world. I mean, more people have been killed with c than any other language. But, of course, that's because it runs all the physical things. So it's kind of not fair.

Ron Evans:

But in the last years, modern software engineering has come along in languages like Go, which many of us know and love, and it helps protect us from ourselves. So when we're using devices, suddenly protecting ourselves from ourselves becomes even more important. Like, if the thing lets out the magic smoke at the wrong time, meaning the device fries, all of a sudden, oh, we have no brake system. What do we do? Oh, well, we don't brake.

Ron Evans:

You mean we don't stop? Yes. That let's don't brake. That's a problem. That is a bit of a problem.

Ron Evans:

So, you know, these things start out as toys and then gradually over time, people find out they can do real things with them and then they start to. They don't need permission. There's nobody who says, yes, you could do this now. You're not playing anymore. We're not playing now.

Ron Evans:

Mean, you just start doing it. Mhmm.

Shay Nehmad:

And that's one that's one feeling with, hardware projects that was new to me. Jonathan, you mentioned you had a little chip next to when we were talking last week. Right?

Jonathan Hall:

Yeah. Let me let grab it.

Shay Nehmad:

You don't have to go grab it. It's on my shoulders. Now he's taking his head head off, and I can't ask him the question about it.

Ron Evans:

Everyone's got a drawer full of these board because a lot well, not everyone, but many people. Ah, yes. Very cool. Nice. A little wireless adapter on there.

Shay Nehmad:

What what I was about to ask is if you have the same feeling, like, mentioned nobody has to give you permission, but when you do a hardware project and then you're like solder or something or you have to order like a physical part, it feels way more irreversible than like, oh, well, I write this function. Maybe I'll refactor it next week. That's

Jonathan Hall:

true. Yeah.

Ron Evans:

We we do have undo when we're soldering. It's called desoldering. You clean up the solder and then with a kind of solder sucker bulb, you vacuum it off or, you know, not quite as easy as control z turns Straight

Shay Nehmad:

up straight up when I was soldering the chip I got. Just ask my wife to do it for me because she knows how to solder really well and I didn't have to do undo anything. Outsourcing also works in software and in hardware. Yes.

Ron Evans:

I mean, there are some benefits to learning how to do this, certainly.

Shay Nehmad:

No. Did the first one. I did the first one.

Ron Evans:

But it's but there's a lot of ways to put things together now without doing that. Mhmm. There's actually this week, we announced a new thing called the Tiny Go starter kit for Xiao. So it's the first actual official starter kit from that we put together some members of the Tiny Go team, especially Patricia Whittinglow, who I know has been a guest on this show. Mhmm.

Ron Evans:

Brilliant guy and a very close collaborator of mine. We worked with a company called Seed Studio, which is a wonderful company that manufactures a lot of cool in fact, I think that board that you were showing, Shay, in fact, is made by them.

Shay Nehmad:

Yeah. I got the this is not sponsored, but I got the Seed Studio ESP 32 c three. I actually got a pack of, five of them for $20 or whatever on Amazon. Know Relatively cheap.

Ron Evans:

Exactly. So we worked with them to put together a kit of parts. So so just a sidebar, many years in fact, every year for the last since there's been a GopherCon USA and also in several of the other ones, we've held what is called the tiny go hardware hack session. So it's kinda like a jam session in music. It's not like a hackathon with winners and losers.

Ron Evans:

You know? Mhmm. You win just by coming and playing around. So we bring all these parts with us. You know, I have these flight cases filled with various parts I've salvaged from my old job at Intel and, you know, begging companies for for boards.

Ron Evans:

You know, please, sir, can I ask some more? Are you gonna eat those boards? You know? And do you have, like,

Shay Nehmad:

30 go over with TSA trying to get there? They have pulled all of the electronic parts through the through the

Ron Evans:

inspection. Scanner. Yes. Tertiary inspection does is a little time consuming, but but my homebrew electronics look beautiful on the on the millimeter wave scanner. It won't let me take a picture.

Ron Evans:

I mean, it's gorgeous. Looks I mean, not well, at least I think it's beautiful.

Jonathan Hall:

Yeah.

Shay Nehmad:

Anyway, so what

Ron Evans:

are these sessions on GopherCon? How do we do these things on our own? Or what if we can't make it to a GopherCon? We wanna learn how to do these things, and we're like, oh, yeah. Just go order these 11 different parts from this company.

Ron Evans:

And they're like, oh, that's complicated. No. No. Really, it's not. And you don't even have to solder.

Ron Evans:

That's that's really the beauty of the seed studio stuff is they use a connector called Grove. And the Grove connector is just a little a little bit tiny. Believe it or not, that's the one wait. Well, like, of all the million cables on my desk, it's the one I don't have right now. But

Shay Nehmad:

Isn't that isn't that how it always works, though?

Ron Evans:

Yeah. It is. But it's a little small modular connector that you can just plug in so you don't need a breadboard and you don't need the solder. By the way, I think breadboards are cool and soldering is great and wire wrapping and all of the old school techniques. But

Shay Nehmad:

Yeah. I wanted I sort of wanted to do it the hard way, I think, in preparation for this interview. But, actually, the hardware is, an interesting part. But, obviously, the the the change here is that we're using Go and, like you said, not c. I don't know, Jonathan, what would you classify it as?

Shay Nehmad:

Like a classic embedded language, like doing C or Yeah. Or or an obvious embedded choice, I guess.

Jonathan Hall:

Arduino, but isn't that a C dialect or or uses a C dialect? Yeah. That that's the first thing that comes to mind. Yeah.

Ron Evans:

Yeah. I mean, that was probably the brilliant thing about Arduino in the beginning is getting all of these artists and creative people to program in the c plus plus without knowing they were programming at c plus plus. Because if you said to them, We're gonna learn c plus plus, they're like, oh, no. I I could never do that. You know?

Ron Evans:

Goodbye. Instead, you're like, no. It's Arduino. It's easy. And they're like, oh, wow.

Ron Evans:

I could do that. And so they build these interactive art installations. And, you know, do you know how the program? Oh, I have no idea how the program well, how did you get this to work? Oh, it's just Arduino.

Ron Evans:

So I mean Mhmm. I mean and this is, to me, a marvelous thing. It's how do we empower people to do things they couldn't do otherwise? So, I mean, it's great to learn the old school techniques and so they're and, you know, I encourage you to do this, but I don't think it should be a barrier that prevents people from getting a chance to do it. And and programming languages are very much the same.

Ron Evans:

You know, if the language makes it very difficult to do what you're trying to do, a certain number of people will sort of be turned away without even trying just to, oh, I could never do that. Whereas if we invite them in that's one thing I really love about Go and the Go community is this idea, try Go. Not rewrite it in Go. You know, it's not telling you. It's saying, you know, just try it.

Ron Evans:

Give it a try. You might like it. I love that sort of inviting philosophy. And so tiny go, we're trying to do the same thing, but also with the hardware saying, you, fellow human, you'd like to take your ability to write code and extend into the physical world, and we would like you to do that too. That's what we wanna do, and that's what we are doing.

Ron Evans:

So come along, and let's come fly with us. In some cases, literally fly like those flying objects.

Shay Nehmad:

Oh, that's true. They can bet like old drones or whatever. Yeah.

Ron Evans:

I I usually use at least one flying object during most of my talk. If there's something moving, always. Something has to move. It's you know?

Shay Nehmad:

Yeah. Listeners who don't see this on video don't know, but we're actually recording this on a hovercraft right now. No. Just kidding. So what is like, you know, coming into it totally naively, what's like I'm holding up this little thingy to the to the, camera right now.

Shay Nehmad:

Why is it a challenge? Like I'm asking sort of from the other side, right? Why is it a challenge to have this run Go versus just, know, Go already runs on my computer and this is just a little computer. Why do I even need like tiny Go? Why do we need something specialized to have Go run on embedded devices?

Ron Evans:

Well, that's a great question. So Go, the basic language, we call it big Go. And, we we actually got many people on the Go team calling it big Go. So I I think we're we're winning something. I'm not sure what, but we I mean, Go is a wonderful language.

Ron Evans:

It's it's simplicity of syntax and the speed of the compiler and especially the linker. But the compiler and linker produce a very large executable. You know, hello world, really nothing else, just your typical hello world with 1.2 megabytes. That's it. You can't get any smaller.

Ron Evans:

I mean, you could do a few things to try and trim off. You know, you could shrink it down to maybe a megabyte. So these small chips, microcontrollers, they usually have kilobytes of storage. That ESP 32 c three chip that the Xiao chip is it's a RISC five microcontroller. It's a 32 bit processor.

Ron Evans:

It has a single core, and it only has, I believe, 384 kilobytes of RAM. How do we fit

Shay Nehmad:

megabile? Can't load, like, a compiled Go program on these, small chips, especially one one a program that actually wants to do something.

Ron Evans:

Well, that's another thing is there's no operating system. These chips have no operating system that's just bare metal. So doing anything at all requires talking to the specific hardware on each chip, and, of course, that's different chip to chip. So one of the things that Tiny Go does is we have what we call the machine package. And the machine package is our hardware abstraction layer, so you can write a program that runs on one of the GSP 30 twos and with little or no modification, run the same program on a Nordic semiconductor chip or an SD micro microcontroller or any of the other different, you know, 100 and I'm not sure how many now.

Ron Evans:

I think it's over 200 after this last release. I actually lost count of how many different boards we support. Mhmm. I have to write a program to count that

Jonathan Hall:

because it's not

Ron Evans:

that simple. It turns out there's so many different variations in families. So being able to to just write once and run everywhere, you write Go. You of course, you do that. Like, what do you mean?

Ron Evans:

That's not special. Yes. Exactly. We view ourselves tiny Go is just Go. We're just on the a satellite office of the Go team.

Ron Evans:

You know? Maybe the go team doesn't know it yet as we're sleeping outside the offices on park benches and, you know, following them around. No. We're not stalkers. We're just fans.

Ron Evans:

Really serious fans. But this is the thing you expect when you use Go, is you expect things to work when you move it. You run it on Mac or you run it on Windows. You expect it to just work. With time to go, if you run it on an ESP 32 or you run it on the Nordic semiconductor chip, you expect it to just work, and so it does.

Ron Evans:

So this is really, really key. Of course, to actually achieve that requires some very serious engineering. So tiny Go is actually written in Go, and we then use LLVM. So LLVM, for viewers who maybe have not heard of it, that is the toolkit for writing compilers. That is the foundation behind most of the languages that you've ever used or heard of.

Ron Evans:

For example, Rust. The Rust programming compiler is written using LLVM. Swift. If you do iOS development, you may care a lot about Swift. That is likewise an LLVM language.

Ron Evans:

Zig

Shay Nehmad:

c and c plus plus, which we mentioned already.

Ron Evans:

Yes. Now you can, of course, use the GNU versions of those compilers, but it's very common to use Clang. Clang is the C lang compiler that's part of LLVM. So many people are using Clang, and they don't even realize that they're using part of LLVM. So Clangy Go is just another LLVM language, which means, of course, that we get, I don't know how many millions maybe of human hours working on the really seriously industrial strength framework for writing compilers.

Ron Evans:

And that's how we can target operating systems, none. And architectures like MIPS, for example, or ARM 32 microcontrollers that did go just does not currently target. So another recent example of that is UEFI. So UEFI is the code that runs on your hardware before the operating system, and the most recent Tiny Go release, now you can write u f I UEFI programs. So you can actually write the firmware for your hardware, and then the operating six kicks in, and then you can write, you know, regular Go.

Ron Evans:

Or you could use something like Tomago, which is a very cool not really related project. I would call it more sister project. We we share the same philosophies. We just have kind of different ways to get there and different things we're trying to achieve. You know, we're Tiny Go is very much concerned about the very small, you know, running on the individual hardware.

Ron Evans:

Tom ago is maybe, now I wanna write a hypervisor or something, and so they could work together really nicely. You know, you can write UEFI firmware, which is then loaded directly by Tomago so you can boot your Raspberry Pi or something without any operating system just bare metal. So it's a pretty powerful paradigm. And just to sort of bring it into the industrial, you may have heard of a wonderful company called Oxide Computer, which is building an entire firmware to rack operating system, complete cloud based rack based entirely on Rust. And they've been working on this for a long time.

Ron Evans:

They're doing really amazing work. You know, our conceit, if you will, is to think, I'm sure if you could do that with Go. Certainly, a lot easier language to work with. Maybe it doesn't give you all the same things, but maybe you don't need them. So it's a space we've been exploring.

Ron Evans:

I know you've had Patricio Winningflow as a guest on this show. He is a core member of the Tiny Go team. He's done really remarkable things with Tiny Go, especially in networking. So that chip that you hold up, Shay, the ESP 32 family, their claim to fame is wireless communication. That's really why people use them.

Ron Evans:

They want to use the Wi Fi

Shay Nehmad:

or the That's that's exactly what I need. Saying I need to monitor. The mint wasn't the joke. This thing should actually connect to my like WiFi and then using this like, I don't know, 75¢ sensor should send me a telegram message every time the plant is kind of dry. Because the only prerogative I have for watering the plant is if I make rice and then, you know, have rice water leftover.

Shay Nehmad:

And I'm like, oh, maybe I'll go wash water the plant. And this is like California and it sometimes dries out.

Jonathan Hall:

Yeah.

Ron Evans:

Yeah. One day to the next. Exactly. Yeah. Quite a few people have done either hobby or even professional versions of that sort of thing.

Ron Evans:

There's actually a wonderful series of talk from, Donna Chandalue, probably mispronouncing her last name, called Getting the Upper Hen, where she created a Time ago based system for monitoring her henhouse.

Shay Nehmad:

Yeah. I we talked about this on the show. I remember. Suddenly, remember, I like, years ago. Do you remember, Jonathan?

Jonathan Hall:

I don't recall that specific one. No.

Shay Nehmad:

Monitoring, like, chickens and stuff. Right?

Ron Evans:

Yeah. You know, and and, deploying with Kubernetes and then monitoring the chicken, you know, health with Grafana. You know? I mean, you know, you could you can take it pretty far. You know, we want to see this.

Ron Evans:

That's for sure. So so the The wireless capabilities of the ESP 32 were the thing we were lacking for several years. It was a thing that really bothered me. I mean, it really bothered me because people would say, do you support the ESP 32? We would say, yes.

Ron Evans:

But and, like, oh, not wireless. I'm like, yeah. They're spilling up. It's been three years. What's wrong with you?

Ron Evans:

And we're like, so I I guess I flinched first. A bunch of other people did as well. Several people had made attempts at doing this. I took some of the ones that had almost worked, and then with a lot of help from my friends and I mean, lot of help from my friends, we managed to get the ESP 32 p three and also the ESP 32 f three and most recently, the ESP 32 classic. So if you have a drawer full of old hardware like I do and then you haven't been using it, in my case, oh, because Tiny Go wouldn't work, well, guess what?

Ron Evans:

It's back on the menu, friends. It's back on the menu. You can actually repurpose this. And I think this is an important point about sort of our philosophy. Why do we care about all this old hardware?

Ron Evans:

Well, because we shouldn't be wasting it. We need it. You know, our supply chains become constrained or even just humbly, you know, kids do not usually I mean, some kids are very fortunate, and their parents are very capable and willing to provide to them, or they go to a school with these things, and so they have robots and hardware everywhere. But that's a very fortunate and unusual circumstance out in the rest of the world. Many places in the world, you have at best a classroom that everyone has to share, and the equipment in that classroom is probably not the most brand new, shiniest, latest, out of the box.

Ron Evans:

It's probably ESP 30 twos that have been handed down for a while. They're a little rusty, but, you know, you just sort of, you know, brush them off with, you know, some steel wool, and they work great.

Jonathan Hall:

Right.

Ron Evans:

So for me, this is very important personally. You know? Not for me, I'm I want to make it possible for things to happen. You know? I know that the professional programming priesthood that has sort of held down, you know, oh, yeah.

Ron Evans:

You can't do embedded without c and special certifications and for that matter that you couldn't do programming at all. Or, oh, you're not a real programmer because you use x y z.

Shay Nehmad:

Mhmm. Mhmm.

Ron Evans:

One of my favorite non segued sequiturs or nonarguments. You know? What's a real programmer? You know? You have to carry the bits uphill both ways into the snow like when I was a kid.

Ron Evans:

You know?

Jonathan Hall:

Yeah. To

Ron Evans:

me, that's that's sort of that's not my personal objective, and I wanna make it easier.

Shay Nehmad:

That discussion is brought up a lot now. It's like, oh, real programmers, you know, read the code. They don't use agents. Like but that's that's such a I very much resonate. I don't know.

Shay Nehmad:

I think Jonathan does as well. Like, the tool is not the the thing. Although sometimes it's fun to nerd out about the tool. This is like Yeah.

Jonathan Hall:

Of course. I like nerding out about tools.

Shay Nehmad:

Better tools. Include people

Ron Evans:

You'll never catch me not nerding out about tools. Okay? I I don't even care what tools or when I'm in. Alright? I'm totally in.

Ron Evans:

But but that's not many people in the world are just trying to do a thing.

Jonathan Hall:

Right. Right.

Ron Evans:

You know? I mean, and they want their it's not that they're not willing to learn. They're willing to learn whatever they have to. But if that learning process is too burdensome, then it's just not practical.

Jonathan Hall:

Right.

Ron Evans:

So generative coding and hardware, it is great. It also could be horrible. Mhmm. Let me give you examples of both. Which one would you like first, my friend?

Jonathan Hall:

Let's go with horrible. That sounds fun.

Ron Evans:

Alright. Horrible is really fun. So I assume they're very well meaning people. You know, I assume the best and only gradually come around to assuming the worst. It's a character flaw perhaps, but, you know, I'm gonna go with it.

Ron Evans:

So people will see that something's not working, like a GitHub issue, and they'll decide that they're gonna fix it. And so they turn their generative tool of choice. I'm not gonna pick on any particular one, and it creates a massive amount of text both describing the thing and then a massive amount of code. Of course, they don't actually possess the hardware to test it on. Yeah.

Ron Evans:

So they have no idea if it works or not, but they swear it seems like it should work because x y z tool said so.

Shay Nehmad:

Yeah. It looks plausible.

Ron Evans:

Right. And this is not helpful to the maintainer. Oh. It's not really helpful to anyone. Also, it's like, you don't have this unique hardware device to even test on.

Ron Evans:

Why is this a thing you even care about? Like, why is this bothering you so much that, like, oh, I think I'll fix a thing that I don't exactly understand with a piece of gear I don't possess. That's sort of the like, I guess they were just like, I'm not sure what brought it on. Okay. I really don't.

Ron Evans:

There must be a search engine query that says, you know, find me things that need fixing without being discriminatory about things I actually could fix because it's a problem I really have. So potential contributors of code. If you have a real problem, by all means, work on that problem and suggest your solution. Yes. We would like to know it.

Ron Evans:

But if you don't have it, like, I there's lots of of devices in Tiny Go I do not personally possess. I know. Hard to believe with my dragon hoard, you know, giant pile of boards I sleep on every night, you know.

Shay Nehmad:

You don't have them yet.

Ron Evans:

Devices I don't

Shay Nehmad:

have. Them yet.

Ron Evans:

Good point. But other people do, and they are very happy to try those things out. It's a problem they actually have, then they're really excited about assisting in the solutions. So, I mean, this is a good thing about the community. So this is the dark side of generative coding and hardware is now the bright side is there are things you could do that you don't normally do because it's not really practical.

Ron Evans:

And an example of this is using GDB. So GDB is the, and it is, a tool that lets you disassemble code actually communicating with specific hardware devices. You can plug in through a hardware debugging tool, which then plugs into special pins on your board, and then you're able to remote control the board from the GDB. And I have used it many times over the years, and every time I've ever used it, I have forgotten how to use it even if I had just used it earlier that same day. Alright?

Ron Evans:

I mean, I wish I was joking about that. You know? And I see things like debugging sessions I did, and I'm like, how did I do that? I mean, I know I did it. This was before gender leprosy.

Ron Evans:

Like, I know I did it. I actually did do it. Like, I have the logs, and I'm like Mhmm. And how did I do it? I have no recollection.

Ron Evans:

I just I guess I did because I'm the guy. I did it, but how? So with this sort of trepidation, now generative tools can completely change the game because we have a feedback loop. We can connect a recalcitrant device through its debugger. We can actually coax the important information out of it through an endless series of sessions where we have to flash code onto the device, connect the debugger, discover the thing we tried did not help, and keep repeating over and over.

Ron Evans:

This is very impractical to do because it's so time consuming Mhmm. Even with some different kinds of automation, especially when you're dealing with many different kinds of problems, many different kinds of hardware. So, I mean, I think it's not a panacea. If you don't know at all what you're doing, you're not actually going to be able to figure out how to even set it up to have it do this kind of debugging probably. But if you are an engineer who works on embedded and you can get your tool chain set up properly and get a feedback loop, things that were possible but not that practical to do suddenly to become a part of your daily workflow.

Ron Evans:

I think that there's definitely something to be said for both, you know, understanding when you're maybe you shouldn't be trying to do it, or maybe you should. Right? Like, I don't know how to code, but I want to develop a basic moisture sensor that connects to Home Assistant. I bet you could generate a tiny go program that would do that, right, without knowing that much. And to me, that was a wonderful thing.

Ron Evans:

I want to see people able to solve problems that, you know, the professional programming priesthood just wasn't gonna get around to it. There was a a blog post from a few months ago talking about this. It was like the in a Silicon developer, I believe was the do you know the blog post I'm referring to?

Jonathan Hall:

I don't think I've heard it. No.

Ron Evans:

That was the Did you say

Shay Nehmad:

the sensitive developer?

Ron Evans:

Citizen. Like, citizens of the world.

Shay Nehmad:

Citizen developer.

Ron Evans:

So you probably may actually, may have not. You may have heard or not heard the term citizen scientist.

Jonathan Hall:

Yes. Yes.

Ron Evans:

Citizen scientist, there are some very serious ones who take very important atmospheric readings from their little spot on the globe and then contribute the to the global sensor data and the data we wouldn't have otherwise. So citizen developer, the premise behind this post was in house people, person in the in the sales team who's been begging for this one little application to do this silly little thing, silly to everyone except for that person who really needs it. You know, we'll do a meeting in three months, and we'll see if the board approves us to go and look. And if so, we'll do an architectural prototype. In other words, no.

Ron Evans:

But not a nice, clean, simple no. No. The common no that keeps you lingering for months and years. So this is the bane of IT departments is when this person goes and writes their own software. But guess what?

Ron Evans:

They're doing it anyway. They were doing it with Excel. They were doing it with Fox Pro. They were doing it with whatever they could get their hands on because, ultimately, they were just trying to solve this one little problem and then maybe throw it away. It could be disposable.

Ron Evans:

You know, it's not they're not trying to build a pyramid. They're just trying to you know, it's not even a doghouse. It's a lean to that they're gonna spend the night under while it rains, and then they're just gonna move on. And nobody ever took these kind of applications seriously. Right?

Ron Evans:

Oh, they're too small. It's too trivial. Mhmm. You know? In other words, sit down, shut up, go away.

Ron Evans:

And I don't like that very much. As a member of the professional programming priesthood, this deeply bothers me because I feel like we're failing somewhere. So for me, you know, it's a two again, we've got both examples. We've got the in house group that, you know, or the CEO who perhaps has AI psychosis. Yes.

Ron Evans:

We're gonna fire all the developers, you know, or we're gonna fire all the whoever's, the ones the humans with actual expertise just because they saw one demo that from their little boardroom position looked good. You know? Mhmm. That's not what I'm talking about. I'm talking about the neglected one, the little small individual who suddenly now has the ability to do something that they couldn't do before, and I view this as a very good thing.

Ron Evans:

So there's my sermon on generative and when when two and one not reasonable

Shay Nehmad:

I think it's a reasonable soapbox. It's not too. I

Jonathan Hall:

I have a couple questions I wanna get into. First, I I was surprised when we talked last week about the Ternigos now supports Recover. I was surprised that it didn't before. I'm curious to hear if there's any other missing features that one might expect when they start to use Trynago.

Ron Evans:

The key to that sentence was fully support Recover. Okay. So we did support recover, but it wouldn't necessarily operate the way you expected. Okay. And you as a Go programmer think, okay.

Ron Evans:

Recover should just recover, and then I can just, you know, keep doing my thing. And there were a bunch of times when you can't actually recover. Like, you're out of memory on this 256 kilobyte device. How do you recover? You don't recover.

Ron Evans:

You reboot. Like, that's it. You know? So that's an example where we can't, but there were also many situations where we sort of treated it the same. Like, oh, yeah.

Ron Evans:

Sorry. We we can't recover, you know, freeze.

Shay Nehmad:

Okay.

Ron Evans:

Or conversely where, oh, this is unrecoverable, but we're gonna just keep running so it's just gonna crash anyway. You know, you don't have an opportunity to gracefully handle it. So, especially due to the amazing work of Jake Bailey, who you know from TypeScript Go Compiler. Mhmm. Amazing software developer and incredibly prolific contributor to Tiny Go as well as being maintainer of TypeScript Go.

Ron Evans:

And, also, Damian from Fastly, they're really the ones who did the vast majority of the work. They're both team members of Tiny Go and have done an incredible amount of effort in order to bring the most language compatibility and also standard library compatibility so that things do the thing you expect them to do, not just it looks like it should work, but then it doesn't. So so it wasn't true that we had no recover. We just recovered badly, inconsistently, and in a way that you maybe wish we didn't recover. I think

Jonathan Hall:

Got it.

Ron Evans:

So now that so we're it's, again, it's part of this process of tiny Go becoming more like big Go. Uh-huh. And so there's a lot of examples of that, with many parts of the standard library where you may not realize, but that's actually doing things at the operating system level. And if you're running with no operating system Mhmm. What do you do?

Ron Evans:

Well and when if you are running with an operating system, you would expect them to work. I mean, you could compile Tiny Go programs for Linux, for Windows, and for Mac OS. Mhmm. Many people do. Perhaps now you're wondering why would they do that?

Ron Evans:

Well, they're much smaller. So there's a very cool project called uRoot, u as in turn, root as in the root of all things. Mhmm. And they have a the equivalent of a busy box, but written entirely in Go. So for those who are not familiar with embedded Linuxes, when you run an embedded Linux on some type of embedded device, a camera, the control system for your entertainment, system inside your car or some actual part of the car, the you don't just install packages.

Ron Evans:

In fact, there is no package management. The only way to get software on is you update the operating system itself, usually an over the air update. So it's very important to keep the size of those updates as small as possible. And when a big Go program is 1.2 or 1.5 megabytes and the same tiny Go program is, like, maybe 30 or 40 kilobytes, this adds up when you have 30 or 40 different command line programs that you need to include as with your embedded Linux distribution, you know, built with OpenEmbedded or built with Yocto. Mhmm.

Ron Evans:

So this is really, really important use case. And so this is one of several team similar to the UEFI targeting things that are used by hardcore industrial developers that maybe cloud developers don't realize is a thing until they suddenly need to do it. And then, oh, I could use Go, And maybe I could use tiny Go if Go doesn't target that or Go is too big. I mean, by the way, if you're running on a multicore machine, there's this amazing compiler called Go. It supports all of the cores on your multi core processor.

Ron Evans:

You know, I I recommend it very highly. Works great. Right? So in tiny Go, it's not all things to all applications. Just another tool that lets you use the same language and most of the same libraries and code, and then just target it to this new device.

Ron Evans:

A great example would be MIPS. MIPS processors are the processors used in a lot of routers. Mhmm. So if you'd like to write some software that you run on a router, well, tiny does a great answer.

Jonathan Hall:

That's a great segue to the next question I wanted to ask, which is what are some projects you could recommend to somebody who might be listening, thinks this sounds cool, but they don't have a practical application? What would what would be a good, and they don't have a mint plant they need to water. What would be a good way to sort of get their feet wet trying Tiny Go? What should they what should they consider building?

Shay Nehmad:

If they don't have a mint, they need to get wet, but they need to get their feet wet. Alright.

Jonathan Hall:

Yes. There you go.

Ron Evans:

There's so many fun sensors to put in the real world. It could be detect when the bathroom's in use.

Shay Nehmad:

Mhmm.

Ron Evans:

Right? You know, we just we that way, I don't walk over there in our office when someone's already in there.

Jonathan Hall:

Okay.

Ron Evans:

You know, could be something as simple as that. Just any problem that you run into where you're like, oh, I wish I could do this. And they're like, ah, there's a device for that. You know? And there's a lot of great examples, so many of them, especially if you take a look, for example, going back to the tiny dough starter kit for seed, plug for seed studio.

Ron Evans:

We have a blog post with links in describing it. There's a whole bunch of sample projects for different kinds of sensors and detectors that then connect to Wi Fi and send notifications or do different things. Run a web server on that little board. That way you can connect to it and turn on the water. So you're like, okay.

Ron Evans:

I wanna connect it up to this, you know, little valve so it can release the water because I'm gonna be away for a few days. And, you know, I actually wanna water it, but not till the right time. You know? So just any problem you have, no matter how trivial, that's a great way to go, oh, there's a bit of hardware for that. And if you have a few parts on hand, again, it's not like I'm trying to really productize this.

Jonathan Hall:

Sure.

Ron Evans:

It's just scratching an inch you have, playing around. You know, maybe it's like, oh, I would like to have a little device that releases balloons on top of someone when they walk through that doorway. And then, you know, I I want a cat feeder, or I wanna detect the air quality around the cat box. So that way I know when it has to be changed. Because if there's a certain amount of ammonia, I can detect.

Ron Evans:

And that means yeah. Yeah. So, I mean, there's there's there's so many projects, and, you know, Patricia has a great repository of examples that he made for the seed studio show. We have a page called awesome time to go, which only has a small portion of the number of projects. Listeners, please tell us about your projects through a poll request so we can add it.

Ron Evans:

And those are just a few of them. You know, there's so many things out there. I only know a small portion. I give a talk called the small update about TinyGo, which is a lightning talk where it is incredibly difficult to pack in for five or seven minutes all of the things that have happened in the last few months in the world of TinyGo. Mhmm.

Ron Evans:

Occasionally, I flip one of my own little projects in, but only if it's really, really good. Otherwise, me as curator, I'm talking to myself as contributor, like, yeah, it was cool, but, like, not that cool. I mean, look at this. Mean, this person, you know, they have the PlayStation two, you know, or or whatever. Yeah.

Ron Evans:

I'm like, yeah. That's true. Yeah. My thing wasn't quite as cool this time. You know?

Ron Evans:

Sorry, Ron.

Shay Nehmad:

We had one, I gotta shout back to, we had on the show. We were actually talking about, like, cyber and stuff. They were from CyberArk. Okay. My name is.

Shay Nehmad:

I have two roles, three roles in my life. First, I'm a senior software architect in CyberArk writing code. Mostly Python don't don't solve stones. No. Don't don't solve anything about on me.

Shay Nehmad:

And also, I'm a journalist. When he gave a talk at Gopher Con Israel, maybe four years ago, five years ago now, he was talking about like using Go on embedded devices and how fun it was, was like the keynote. He was like, well, I have a problem, like my kids don't put away the dishes from the sink, like after they're done eating. So I set up with TinyGo like a camera and I connected it and now I monitor them and every time they they it detects like that the sink is full, the Internet goes down on their network. We our parents have like, the parents have their own network and the kids Internet is down.

Ron Evans:

It's a brilliant solution. I won't send put a link to the repo. I mean, my kids are growing up now. The

Shay Nehmad:

actual brilliant solution was the kids printing taking a picture of the empty sink, printing it out, and taping it so the camera always detects it as clean.

Ron Evans:

Absolutely brilliant. It just goes to show you the kids are alright.

Shay Nehmad:

I know. I know. Run run Run is definitely a good dude, so I assume his kids are alright too. That's another project you could take down your kids' WiFi if the sink is full.

Ron Evans:

I'm not gonna start a cyber war with my kids, man. That's not gonna end well.

Jonathan Hall:

What? I'm a heavy user of Home Assistant. That's the reason I got this ESP 32 POE board that I was showing earlier. How how does TinyGo fit into that ecosystem?

Ron Evans:

Well, there's a few people that have used Home Assistant. There's actually a Bluetooth I I can't think of the name of it right this second. There but there's a Bluetooth protocol for connecting to Home Assistant for sensors. It's got you can use it with or without encryption. I did a light version of it, and then somebody else did a more complete implementation.

Ron Evans:

It runs on Tiny Go. Any board that has Bluetooth support, which does include the e f p 32 c three and s three now, as well as any of the Nordic semiconductor board. So you could just write some software that, for example, communicates with that moisture sensor. I mean, your board, you could do this right now. Like, if you don't wanna actually connect it, say, if you like, I think I'll just go Bluetooth because they already have Home Assistant hub with, you know, with Bluetooth in it.

Ron Evans:

You can just connect through that Bluetooth interface and then just pull the data from the sensors and bring it right into Home Assistant and have it then send the notifications. I'm sure it's got a tele Telegram plug in or something like that. Yeah. So that's one way to do it. Another way is that there's other interfaces in Home Assistant for things like MQTT Mhmm.

Ron Evans:

The which is a very popular machine to machine messaging system. You can run an MQTT client on your ESP 32 using TinyGo. It's got a very lightweight MQTT package that is another one created by Patricia. All of this, by the way, is linked to in the ESP radio package, which is one of the packages under the TinyGo ORG organization on GitHub. So so, yeah, you could use MTTT if you wanted to connect that way.

Ron Evans:

Those are just two that occurred to me right off the top of my head. I'm sure there's more. I mean, of course, there's REST APIs.

Jonathan Hall:

Sure. Of course. Yeah. Yeah. Pum Assist is pretty pretty extensible.

Ron Evans:

Up with first are the hipster ones. You know? And then there's, like, more traditional and practical ones, but, you know, forget those.

Jonathan Hall:

Awesome. I think we a

Ron Evans:

lot about time to go, and we're about out

Jonathan Hall:

of time,

Ron Evans:

but I just wanna give a little shout out to a whole another project called YSMA.

Jonathan Hall:

Yes.

Ron Evans:

YBMA that I've been doing a lot of work on, which I probably should come back on and talk about because that's, like, a whole episode to itself.

Jonathan Hall:

Probably so.

Ron Evans:

But Easema just had a big release this week, which Easema, by the way, lets you run machine learning models on your own hardware, no cloud. Also, no Docker, no containers, no servers. You literally can just embed the llama CPP right into your Go applications. So that's very powerful and it runs really well on small edge devices like Raspberry Pis or the Arduino Uno Q board, which is the one I use on my show, talking heads from the year 2053, which is probably one that we could mix into the show about, AI and machine learning and such. But ysma.ai is how you can learn more about Ysma, and it runs in your browser now.

Ron Evans:

This week, we released no server, no API. Wait. Just the browser. You just download using WebAssembly and tidy go. It downloads a model right into your browser.

Ron Evans:

It doesn't communicate with any external thing. It runs on both Chrome and Firefox, and it does work on mobile, uses web GPU. So go check that out because that's like the future's future. And and that that's probably worth a whole show in itself because there's a whole ecosystem of amazing projects like Bill Kennedy's Krohnk project, which is based on Yzma and some others as well. So I'm not gonna try to pack that all in into the outro.

Ron Evans:

But just suffice to say, you should invite me back in the not too distant future, and I'll tell you all about it.

Jonathan Hall:

Well, let's let's have you back in, 2053. What do you think?

Ron Evans:

I will be ready. I'm pretty sure.

Shay Nehmad:

Probably, literally, talking heads will be, like, in in jars. You know, the the fly simulation they just put out, I'll probably be able to extend it to Go developers. Probably.

Ron Evans:

Well, my talking heads are actually physical robot, running with AI on these Arduino UNO keyboard. I have three episodes of the show already online. If you go to talkinghead2053.com, it sort of explains why I made this streaming show and, how it works and links to the YouTube channel. The last episode was pretty fun. I had human guest stars on there for the first time.

Ron Evans:

Filippo Valvassori, Patricio, Winning Flow, Johnny Burthgrat, and Donnie Asandelu were all guest stars. And I normally, I'm the only human that they allow on the show. It's all robots otherwise.

Jonathan Hall:

That was the one you recorded at Gopher Con. Right?

Ron Evans:

That's right.

Jonathan Hall:

Yeah.

Ron Evans:

That's right.

Jonathan Hall:

Yeah. I was in the

Ron Evans:

audience for part

Jonathan Hall:

of it. Yes.

Ron Evans:

Yes. So some upcoming dates. In October, I will be October 10 is the second annual Tiny Go conference. Yes. Tiny Go It's in Tokyo, Japan in the ultra cool Akihabara District, which is where all the electronics come from.

Jonathan Hall:

Okay.

Ron Evans:

So October 10, I will be there and also shooting the next episode of talking head from the year 2053 and hanging out with the amazing Japanese tiny gopher community. And then November 2, I will be giving the closing keynote at Golab in Bologna, Italy. Nice. Amazing conference that is now, I don't know, seventh year or something. Oh, wow.

Ron Evans:

Yeah. So I'll be giving the closing keynote and recording a show live for Talking Heads from the year 2053 as well as actually explaining how it works for the first time.

Jonathan Hall:

People are

Ron Evans:

always like, wait. How do you do it? Like, it's it's not like a whole talk to itself. And so they pin me down, so I I will actually explain my tricks before I do them. And on the next day, November 3, I will be giving a, normal length talk about Tiny Go and ESP 32 at the Express If developer conference in Milano.

Ron Evans:

So I

Jonathan Hall:

use some other devices. That sounds fun. Yeah.

Ron Evans:

So, yeah, come come say hi

Shay Nehmad:

and Wait. The next day?

Ron Evans:

The next day. Yes.

Shay Nehmad:

Good luck with that. I hope your all your travel works out and all the microcontrollers on the flight won't.

Ron Evans:

I'm on that one, I'm going by train.

Shay Nehmad:

Oh, yeah. That's gonna be better. Although there are microcontrollers on trains as well, and they probably still use seat. So I hope they don't have any memory problem.

Ron Evans:

I am not gonna reprogram the train while I'm on the train.

Jonathan Hall:

I've heard

Shay Nehmad:

I've That's

Jonathan Hall:

how startups work. Right?

Ron Evans:

Yeah. I mean, love the freight rail, and I need to entertain myself before the crash. I'm like, I'm gonna pretend I can fix this, you know, just because it'll keep my mind occupied. But, but no, I I won't be playing with the actual train itself. Just model trains, not real ones.

Jonathan Hall:

What were you gonna say, Shay?

Shay Nehmad:

I was, I met a friend here who works, in the Bay Area at Tesla, and was like, yeah, my car, you know, I'm running the beta branch and I was with my kids and something messed up. So I just opened up my laptop and I fixed the bug and I flashed it to the car and then I opened the PR from Starlink and continued on my drive after I fixed it.

Jonathan Hall:

I was

Shay Nehmad:

like, oh my God, that's so dope. So it is possible.

Ron Evans:

Oh, it's more than possible. There's an example of where it actually can be done.

Shay Nehmad:

Yeah. But I assume at that level, he wasn't actually doing like microcontroller work. It's probably high level. All these conferences, you know, we've highlighted Go Lab on the show before. We'll probably mention it again, but I didn't know I wasn't aware that Tiny Go had a conference.

Shay Nehmad:

Is it like is electronics is like specifically big thing in Japan? I actually would assume it does, but I don't other than the fact that I know my Game Boy is Japanese, I I can't, like, justify to myself why.

Ron Evans:

Well, the Tiny Go community in Japan is remarkable. I I cannot speak with enough admiration and and and really awe. They've put together the last few years a series of events called tiny go tebe, k e e b. And they go around ultracool Japanese hackerspaces with amazing lighting, and they father together mechanical keyboards and then program them with Tiny Go. Alright.

Ron Evans:

This is let me see if I happen to have any

Shay Nehmad:

Audio listeners.

Ron Evans:

Oh, here we go. Here's one of them now.

Shay Nehmad:

Turned around.

Ron Evans:

This is one of the mechanical keyboards that was soldered together at Singapore, and you can see it's running a very small it's got a little OLED display. So, yeah, they they bring soldering irons with them with these little bento boxes of parts that are perfectly organized. I mean, it's Takasado san, who is the main organizers, and all the rest of the Japanese crew. They are so amazingly capable and fun. And so, of course, they organized the first time you go comp themselves.

Ron Evans:

I wasn't able to attend last year, but I am going this year because I couldn't miss out.

Shay Nehmad:

Yeah. So That's awesome.

Ron Evans:

So, yes, I've been practicing my Japanese really hard, so I will I'm not giving my talk in Japanese.

Shay Nehmad:

10/10/2026 at the Akihabara 4 F Room J. I know we actually have some Japanese listeners, so I don't know if traveling to Tokyo specifically for this conference is relevant, but sounds like a lot of fun.

Ron Evans:

There are people flying from Australia, so there's like Dave Cheney will be there. And and people flying in from Singapore and other places. So me flying in from Spain, it's it's it's the least I could do. Oh, there's another person flying in from Spain, Daniel, who's another core member of the Tiny Go team, and an amazing contributor. Shout out to his project, goeducation.net, where he's doing amazing things with physical robotics for teaching kids programming.

Ron Evans:

Just I I cannot speak highly enough. He had an amazing viral campaign with the world's biggest Xiao board a few months ago. It's it's a he made a giant sized shawl. You know, that little tiny shawl board that Shay was showing? Mhmm.

Ron Evans:

He made a giant sized one. And of course, it was a went viral on Instagram and all the social media. It was so cool.

Shay Nehmad:

It it would be useful to have it a bit bigger so I can figure out which pin does what without, like, opening up my phone and zooming in on it. These things are actually tiny.

Ron Evans:

You may be making a giant size everything that I so keep tuned because we will definitely be posting pictures and videos of this cool stuff when he's done.

Shay Nehmad:

Although you would expect you would run big go on it. Just just to

Ron Evans:

That's a good irony. Yeah.

Shay Nehmad:

Just to keep it canonical with debug symbols and just some, you know, random strings in the in the string section to make sure that the binary is as large as it can be.

Ron Evans:

Well, you know, actual code size may be different than it appears in the mirror, you know.

Jonathan Hall:

There you go. Alright. We have been talking for almost exactly an hour as my clock Oh,

Shay Nehmad:

no way.

Jonathan Hall:

Tells me. So we will have to have you back to talk about Yzma. But last thing before we close out, we ask all of our guests at the end of the interview, what is your favorite third party Go tool or library? I don't I think we have to say it can't be Tiny Go or one of your own projects just so we get something a little more interesting than what we've already not more interesting, but something more varied than what we've already talked about.

Ron Evans:

So Well, you know, all of the cool from Charm for doing Yes. Incredibly beautiful UI stuff. Right now, I'm I'm having mental blank, but they last year, they did one for back where you could actually gum

Shay Nehmad:

bubble tea.

Ron Evans:

Bubble yeah. Yeah. But I can't remember the name of the one they did that lets you create beautiful UIs for Bash scripts. Now you maybe don't abuse Bash the way I have, but I can't think of the name of it right this second because you caught me by surprise before this, session.

Jonathan Hall:

Gum, I think. Is that the one?

Ron Evans:

Yeah. I think that is it.

Jonathan Hall:

Yeah.

Ron Evans:

Anyhow, they have a whole slew of amazing, really cool tools for creating shiny, awesome text user interfaces, and there's nothing I like better than their text user interface, I have to say. I did a really cool one using their tool for talking heads from the year 2053 because you could run it all inside of T Bucks. And that way you know, because in the future, we still use T Bucks and we still use text user interfaces. You know, I mean, something's never changed.

Jonathan Hall:

Awesome. I love that answer. That's great.

Shay Nehmad:

I use Gum in like so many ways in like all my scripts, like, I wanna release to production. It's like you pop up the confirmation, yes, no thing. And it's like, oh my God, like it would have taken me so long to I could do it with just a YN input, but if I can have this beautiful dialogue box in my terminal, Why not? They make it so easy.

Ron Evans:

Cool. Feeling the love, feeling the love.

Jonathan Hall:

Well, Ron, thank you so much for coming and talking to us about TinyGo. I look forward to chatting with you in the near future, hopefully not as late as 2053 about Yzma.

Shay Nehmad:

It's been a pleasure. Update. I have to finish this thing now. I bought all this goddamn equipment. Put it to good use.

Ron Evans:

You can't put it back in the drawer now. You're committed. You're publicly committed to finishing it.

Jonathan Hall:

That's right.

Shay Nehmad:

Yes. Update next week.

Jonathan Hall:

Update next week. We're we'll hold you to it.

Ron Evans:

I'm here to help, my friend. I'm here to help. Alright.

Jonathan Hall:

Thanks, Ron. It's been a pleasure. We'll be in touch. Thanks, everyone.

Shay Nehmad:

Program exit up. Goodbye.

Creators and Guests

Jonathan Hall
Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Shay Nehmad
Host
Shay Nehmad
Engineering Enablement Architect @ Orca
A big episode about tiny things
Broadcast by