🪿 Goose noose? 🤘 Excellent! 🎸
The show is supported by you, our listener. Stick around till after the news to hear more about that.
Jonathan Hall:This is Cup and Go for October '3, whichever you prefer, 2025. Keep up to date with the important happenings in the Go community in about fifteen or twenty minutes per week. I'm Jonathan Hall.
Andy Williams:I'm Andy Williams. Great to be here again. Nice to
Jonathan Hall:see you, John. How are you doing? I'm good. Hi, Andy. It's great to hear from you again.
Andy Williams:Yeah. No. Thrilled to be back again. Thanks so much.
Jonathan Hall:You've been on the show a couple of times as an interviewee, as a co host, and you're also, I understand, incredibly busy lately. How did you have time to do this today?
Andy Williams:Well, you see, I think the secret there is I didn't say that I was available until I got through all of the busy craziness. It has been a mad few months. Yeah. But, yeah, I mean, it's conference season, so I kind of end up running around all over the place trying to see as many people as I can, talk at presentations where possible, and actually just like meet as much of the community as possible. That's one of the things I love about being involved in Go is the wonderful people and all of the sponsors and the supporters that make community projects, conference and meetups all possible.
Andy Williams:So that's been my pet project through August and September. And I noticed that there's quite a few putting videos online now so if people have missed them. I think Go For Con US is not quite there. A couple weeks still still to go on that one, they said October. But Go For Con UK, for anybody who didn't make it to London, have uploaded all of their videos as well.
Andy Williams:You can check that out on their YouTube channel. That's Go For Con UK. And, of course, close to my heart we had Find Conf in Edinburgh as well two weeks ago and we've just got our videos uploaded as well. So if you go to conf.find. You can see all the videos linked from there.
Andy Williams:Yeah hopefully that's useful for people who weren't able to make it. We've not got a nice location yet. We're kind of waiting on sponsorship. I know all conferences are struggling with sponsors at the moment and we're not, you know, we're not separate to that. And so if anybody's got ideas about where we could travel to because we're trying to get it everywhere, share the love.
Jonathan Hall:Nice, cool. We don't really have any new conferences coming up, but I guess we've mentioned the ones last week in Africa and Nigeria and in Utah, they're coming up. We already talked about it last week. So just a reminder, go check last week's episode for details if you want go to one of those. Let's move on to some proposals.
Jonathan Hall:We have quite a list of proposals to talk about today. The first one is a quick one because it's just an update on something we talked about recently. The proposal to add the new goroutine leak profiler as an experiment has been officially accepted. So we could expect that experiment, I imagine, in Go 1.26, worst case 1.27 if it's more complicated than can be ready by then. But I don't anticipate that being a problem.
Jonathan Hall:So look forward to that. If you want the details, check out previous episode link in the show notes for that. And one other one that's it's a little bit of an update because we did mention it several weeks or months ago, but it's now been added to the official proposal minutes, which means the GO team is talking about it every week, working on fleshing out the details. And I would like you to help me with this one because this is this is some pretty metal stuff or or bare metal stuff, I should say.
Andy Williams:Excellent. Excellent. Yeah. I mean, I don't know what you know about metal. It's it's not my genre, but it it turns out that what they're talking about is running Go programs directly down at the machine execution level, no operating system.
Andy Williams:Like, I mean, that's completely mad, right? Whether you're doing stuff on servers or desktop or even delivering to mobile, there's an operating system there. So So why does it matter? Well, turns out for a lot of different reasons. You could ask the TinyGo guys for a start.
Andy Williams:The great folk on that project have been delivering on embedded devices for a long time and there's all sorts of reasons why you might not want to be running on top of a layer. Maybe you're security conscious or running in a constrained environment. Anyway, this project is talking about having Go applications manage to compile down without any concept of the operating system. So the way they're talking about doing it is by setting the Go OS environment variable. The discussion started off as Go OS equals none.
Andy Williams:But since then, I think Aika and Patricia from the TinyGo project have pointed out that oftentimes people use none for a build flag for not including a file. So there is a suggestion that perhaps there should be actually no OS, which was pointed out in a GopherCon talk that that surely should be pronounced goose equals noose.
Jonathan Hall:So
Andy Williams:it's already catching on like you can see why it's needed. But yeah this actually it's a really fun improvement I think. You could do completely crazy things like you know on tiny devices when you're coding how your application is going to interact with hardware but also you can build your application for running directly in EFI bootloader. There's another project called Tamago, which is doing a lot of cool stuff in this space. I believe that that's going to be presenting at the firmware conference Google is hosting in San Francisco next week.
Andy Williams:I don't think it's like a conference, but if you're into firmware, it's a good thing to do to head along there. Anyway, this is a long standing proposal about how it would be possible to run applications on the TIN. And as you say, it's been added to the discussion topics, so hopefully that's going to see it moving through pretty quickly. And my particular interest here is that we've been looking at it from an application point of view. And although the proposal's not gone through the acceptance yet, with the help of the Tamago and TinyGo teams, we've got fine apps working without an operating system.
Andy Williams:So you can actually run one of the applications, like, in your system's bootloader or on something like the the Gopher badge, things like that. So really geeky stuff for for my point of view, but it opens up a world of opportunities.
Jonathan Hall:Yeah. I don't imagine that this is something I would use personally or at least not very often, but it just sounds so nerdy that I love it. But I have questions and maybe you can help answer these since you've been involved in this discussion. I've seen your name on the issue a few times. Yeah.
Jonathan Hall:So the first one is this already works, right? It's not part of the official Go project and that's the proposal is to basically port this already working solution from Tamago and TinyGo, etcetera, into the official Go project. Is that right?
Andy Williams:Yeah, pretty much. So there's there's kind of different angles on this. The Tamago project is being used as a kind of a base implementation to show how it could be done, whereas TinyGo is like a reimplementation of the Go runtime. So they're coming at this from different points of view, and I don't think that any one of them would be adopted directly. There's discussions about additional APIs as well that will give you access to hardware that's not part of the runtime right now.
Andy Williams:But from my point of view, you're right. There's projects out there that do it and it would be kind of wrapping it up. I suppose it's a little bit like some of the Windows work that was external initially and got brought into the project. So a lot of hard work's happened with some polished and some new APIs that can be adopted upstream.
Jonathan Hall:And then my other questions are around sort of practicality. Like we just take for granted that things like a file system and a network stack exist when we're writing code was the time. If you need to use a file system, does that mean you can't use this or is there like a go runtime implementation of a file system or a network stack or any of that sort of stuff?
Andy Williams:I don't honestly know the details because I think it's early stage. They've not decided what to include and what to not include. It's pretty clear that some functionality isn't going to function completely because there are limitations. That said, if you follow discussion, there are examples of network stacks working. So maybe that would be an operating system independent or separate from OS network stack that could be included.
Andy Williams:Think file system is possibly one further afield and it's not to my knowledge part of those projects right now because you typically wouldn't have access to a file system. But of course, Go being a rich community of different libraries, there's in memory file systems. So maybe you could sort of plug that in behind and with Go's FS abstraction, all of those things become possible in a way they weren't a few releases ago.
Jonathan Hall:Yeah, cool. Well, I'll watch this with anticipation. I'd love to see it land even, like I said, I don't have any reason. I expect I would use it, but maybe I'll think of something in the future. So I'll be watching that one.
Andy Williams:Yeah, I think also check out the GopherCon videos from The US when they come out in a few weeks, because there was two, maybe three different presentations that touched on this area. And you might just find inspiration in some of the projects that are presented there.
Jonathan Hall:Cool. Well, let's take a peek at the next one here. It's a new proposal, actually a new one, not an old one, which isn't out of the minutes. It was started in May. It's a proposal to add a new method to the byte stop buffer.
Jonathan Hall:I don't know how much you use those, but this one is to add a dot peak, which I would use actually not frequently, but I would definitely use it. It allows you to look at the contents of the buffer without advancing its marker, which is a really handy thing if you're trying to like parse data and you don't know what the format is yet, you know, you want to see is this a GIF or a JPEG or something like that, you can look at those bytes without having to then reconstruct a new buffer that puts everything back together again.
Andy Williams:Oh yeah, absolutely super helpful. Like I love your example there of what are the file types because there's so much code out there that just looks at file extensions and that's probably one of the security issues that are still readily apparent in Go apps because that's not the way that you check files, people. This is a really helpful thing there. I was looking for a cheeky segue, but I just couldn't think of any jokes around peak. So let's just talk buffers instead.
Jonathan Hall:I can think of inappropriate jokes about peak, but we'll we'll save those for for another time.
Andy Williams:Maybe I could. You know what? Maybe the live shows should be like the have an after hours component that you sort of do a, an excerpt at the bar later type of thing. Who knows?
Jonathan Hall:That sounds like a must do.
Andy Williams:That that seems like a really, a really excellent segue. Unless you had anything else to add about buffers, of course.
Jonathan Hall:No, I think I'm done with buffers.
Andy Williams:So, yeah.
Jonathan Hall:Do you know how I knew to say that? It's because I took a peek at the next thing in the queue.
Andy Williams:You took a peek at the queue. Well, now I don't know. Do we need to get into a semantic discussion about the difference between queues and buffers? I don't know. No.
Andy Williams:Actually, probably not worth it. Although there is some pretty in-depth conversation about the difference between buffers and readers if you want to know more about the semantics of peaking. And I'll just leave that one there as well. But yeah, if you must do something, why not check out this proposal that is entitled proposal must do. I think we're digging one up from the archive again a little bit here.
Andy Williams:This one is not as old as I thought but we're talking like four years ago now. However it's one of those great ideas of let's make it easier to ignore errors that never going to happen. And it kind of grew arms and legs and sort of got attached to the errors proposal. And then when it was agreed that errors are fine as they are and we're not going to address that conversation anymore, it sort of got forgotten. Anyway, it's been brought back now because the root request was that the URL package should have a must pars so that you can, your initialization, for example, where you've got a static string that is known to be a URL, ignore the error and you've got simpler setup code.
Andy Williams:And this is now being discussed as just that one addition. I personally, I think this is really a great idea, particularly like when you're putting help links or something in your application and you just want a button that goes somewhere, you know that URL, you don't need to be doing all the error checking. So this will tidy up a little bit of extra error handling or get rid of some of those underscores that probably should have not been included in the first place. I don't know. I like this.
Andy Williams:Is there anything that you feel like your code must be improving with this one?
Jonathan Hall:Oh, I would use this all the time when I'm writing tests that use time dot time values.
Andy Williams:Of course.
Jonathan Hall:You could do time dot mu and then all the numbers you need, you know, like the 12,000 numbers that go into that constructor function, the year, the month, the date, the time, the hour, the minute, millisecond, or maybe it's just seconds, and then the time zone. I would much rather have a must. Do time. Parse and then pass in a readable string. And so I usually write the helper function for all my tests, but then I have this stupid little helper function everywhere and I never remember what I called it in this particular project.
Jonathan Hall:So I would use this all the time for that.
Andy Williams:There's some really interesting examples where people have got that. And interestingly, think one of the reasons this got put to one side with some of the examples called that package try, of course, then you get a whole conversation going on. So it sounds like you're a vote there for a wider API there.
Jonathan Hall:Yeah. I would definitely be in favor of must dot do. I mean, I would I would certainly use must parse for URLs only. I would use that too also in testing cases where, you know, I'm passing in a bunch of URLs that I know are valid, but I think the must do version is more appropriate and I would use it for time and URLs a lot.
Andy Williams:That's pretty cool. I think there was a discussion about do we need a new package for what is essentially one function that's not a lot of lines of code? So there's an ongoing discussion there. I don't know how wide they will be when they deliver, but it's a good chat. Do if you've got thoughts, drop them in there.
Andy Williams:I'm I'm curious, though, when or how much of a vote Cup of Go as a community gets in in this room? Like, do we do we get, like, two or three vote just the one or we're not there at all yet?
Jonathan Hall:I I don't think I don't think my vote counts for anything. My my vote only counts because people listening might agree with me and then go upvote it too.
Andy Williams:There you go. Well, that's an opportunity.
Jonathan Hall:But they could they could disagree with me and go downvote it too, so maybe I provide negative votes. You never know.
Andy Williams:Well, they're well thought typed, highly qualified votes, so that's probably what Yeah.
Jonathan Hall:Hope so.
Andy Williams:It seems like, yeah, there's there's a lot of back and forth here. Lots of lots of opinions flying. Feels like recording some of this stuff would really help reach reach some kind of conclusion. What what would I don't know. Are we are we in flight with the discussion?
Jonathan Hall:I see where you're going with this.
Andy Williams:Well, with so much difference opinions on this one, and to be fair, most of those proposals, it seems like it'd be really helpful to record, you know, the discussion as it goes backwards and forwards. You know, all of those conversations that are currently in flight maybe need some recorder.
Jonathan Hall:I I think you're onto something there. I think Carlos Amady and Michael Knuzak might agree with you because they just wrote this interesting blog post about the flight recorder that's now in Go 1.25.
Andy Williams:Nice.
Jonathan Hall:We have talked about this previously on the show when it was, you know, when 1.25 came out, but they have a new blog post out now sort of detailing what it is and how to use it. If recall, the Flight Recorder is a diagnostic tool to let you look at runtime data from your application leading up to a potential problem.
Andy Williams:I think the key thing here is that it's a different way of looking at the issues in your application or potential issues. It sort of relates, I think, to one of the discussions last week. You don't always know where the problems are coming from in your app until you get into production. And this is a way to track weird things going on. I love this blog post actually.
Andy Williams:It goes into really rich detail. If you scroll down, they use a lot of the tooling connected to the flight recorder to use this data to show you a really non obvious bug. I must admit it says whether or not you've understood the bug, let's talk it through. I had no clue where the bug was in this application at all. Thought I should.
Andy Williams:Just couldn't figure it. But they step through and they show you what's going on. And it's like a defer release on a mutex inside a loop of a goroutine means that everything is actually contending on those being unlocked in order. So you go from parallelism or a highly concurrent code into, like, everybody's waiting for something. And this flight recorder is is giving you the data necessary to to figure out why all of your goroutines are are waiting on each other when there's no obvious reason.
Andy Williams:It it it but it does so really beautifully. Like, you can visually step through the process. It's very, very clear.
Jonathan Hall:I love the graphs here and the charts. And, yeah, like you said, it's a great blog post. It's a fairly long one, longer than most from the Go team. Part of that's just because of the size of these screenshots. But, yeah, it goes to a lot of detail.
Jonathan Hall:It's not just a here's this thing that you might care about. It actually teaches you enough, I think, to be useful.
Andy Williams:Maybe even to be dangerous. Like, I mean, a little bit of information goes a long way. What else have you been reading, John? Have you been taking in your tea with all of your blog posts? Oh my goodness, we've got Foley artists in the house.
Jonathan Hall:In studio side effects. Brilliant.
Andy Williams:All authentic. Full Top Live on the show, guys. You're here on the scenes.
Jonathan Hall:So we got an interesting blog post from Zach Musgrave over at Dollt Hub, who has been trying the new green tea garbage collector that we've talked about before. It came out in Go 1.25. Unfortunately, Zach is a little bit disappointed. He has not found that it has helped performance. And he goes into some details with charts comparing the old garbage collector with the new green tea garbage collector, and distributions change as far as, like, how long it takes to to run.
Jonathan Hall:But overall, it's almost identical or has changed in ways that don't really matter for his application, which I think is interesting. You know, we often hear about upgrades or improvements in the Go runtime that, you know, this has improved performance by 2% or 3% whatever. And you get a bunch of 4% every couple of years and they add up to huge percentages. Well, here's one that at least in this case didn't make the hoped for difference. I think it's interesting to, it's not always roses and sunshine.
Andy Williams:Yeah, I mean, it's tough because every optimization isn't going to fix code for everybody. And like there's always a trade off. So I think it's probably good that the worst that somebody can say about this new GC is that it's not actually worse in their scenario. They have a situation they're not finding an improvement. And yeah, that's I think often going to be the case.
Andy Williams:There's big upsides in some, but it is pretty interesting to read the point of view of folk who had high expectations for an outcome and they just find, oh, it's kind of the same as before.
Jonathan Hall:Yeah. For one of their particular tests, it looks like green tea performed slightly worse. Says, if anything, looks like green tea has a small regression in garbage collection performance for adults under this workload with noticeably elevated mark durations, but no significant difference in pause times. Yeah. And you know, that's most optimizations, not all, but most are a trade off, aren't they?
Jonathan Hall:You choose faster CPU for more memory or vice versa or this or that or the other thing, or works better in common cases, but not in edge cases. If you happen to be executing edge cases a lot, then you may not reap the benefits. Anyway, if you're excited about the Green Tea Garbage Collector, go read this and get some perspective, I guess.
Andy Williams:And maybe if you're on the team that's working on the green tea garbage collector, perhaps there's something here that could actually be fixed internally and this small regression becomes small improvement or the regression itself goes away and we're just looking outside.
Jonathan Hall:One other thing we've been talking about must do, but there's also just do.
Andy Williams:Right, okay. Yeah, this is not like the function, the command. It is a package called do, which I think is the combination of DI, dependency injection, and Go. So take four letters, discard two of them, pull it together. There's a point that they make about short names being helpful for important projects, and I don't think they're wrong.
Andy Williams:That's a good one. So getting it down to two letters, that is good. Probably the next time we'll take different episodes to talk about projects or issues that have got the same name. But in this case we're talking dependency injection. It's something that's come up before.
Andy Williams:I don't think it's something that you use, is it John?
Jonathan Hall:I use dependency injection all the time. I just don't use a framework for it. So I'm very curious about the use case for a framework like do or is it do if it's supposed to be the shortening of go? I don't know.
Andy Williams:Oh my goodness. I don't think there was a pronunciation guide in there. What they were announcing, was that there is a v two of this framework. So it's obviously been going for a while and this has been apparently in beta for two years, so congratulations on all the time taken to polish that. And they've put together a revised API.
Andy Williams:There's a couple of breaking changes, hence the new number, but also looking more at scope based architecture and some improvements there that weren't possible with the old API. So check out the migration guide if you've been using it before. I also have been a fan of dependency injection. I don't know if people know this about me because I kind of hide it but I used to be a Java guy and in that world it was really like quite important because yeah you needed to keep things lean at the start and have these items added later. But like yourself, I've not actually had the need to do so much with Go.
Andy Williams:However, I like what they've got here. It's a very idiomatic way to work. The API is pretty cool. In fact, think they've learned a few things during the development of V1 that's led to cleaner V2. So if you've got an application with dependencies, libraries coming from around your organization and you're trying to bring it together into a Solid application, check it out.
Andy Williams:It's a good project. They've got some excellent documentation and examples about how to get the most of it. Just follow the links from the 2.0.0 tag on GitHub.
Jonathan Hall:And I just noticed the I recognized the user the GitHub username in the path. This is from Samuel Burth, who's also the author of a package I use called SLOGmulti. So if you're using Go structured logging and need some utilities for that. Actually, talked about a proposal about that recently a few episodes ago to, which I think was accepted, to create a multi logger that takes two or more loggers and distributes the logs to all of those. I'm using his package for that right now.
Andy Williams:Nice. Yeah, this is clearly a Go developer that does stuff at scale. And if you look through the Reddit conversation, people are like, how does this compare to the implementation at Uber and things like that? I mean, they're solving big problems that some of us don't have to juggle. But if you're working in that world, it's good to have this kind of
Jonathan Hall:support. Awesome. Well, I think that wraps up for the main news segment. Let's jump to a quick break before we wrap up with a lightning round. Thanks everyone for listening.
Jonathan Hall:As I mentioned at the top of the show, this is a listener sponsored program. We don't get any funding from the Corporation for Public Broadcasting, which is apparently going away anyway, or anything else like that. It's just from you. So if you want to help with that, you can join us on Patreon, find the links over at cupago.dev. You can also find links to our swag store where you could buy t shirts, mugs, chargers, possibly baseball caps in the future.
Jonathan Hall:We're talking about doing that. And Andy reminded me that last week I mentioned the quest for others who want to buy a necktie or bow tie.
Andy Williams:Absolutely. I am so in on that. Like a talking point in the form of a bow tie or a necktie I think goes a long way. I literally turned up to do an after dinner speech at a conference last week and I had a nerdy's 80s gaming tie and it was a good conversation starter. And I mean I don't know if everybody else likes this but carrying a little bit of your nerdom with you into the professional domain is just one of those things.
Andy Williams:And the excellent pattern gopher stuff that you see the GO team wearing really, I think makes me a little envious. So anything we can put out into the community, I'm well up for that.
Jonathan Hall:So a little update on that. I've done some research. I actually ordered a single necktie for myself in hopes of getting it before I speak at Go West Conference in a few weeks on Zazzle. So just a a one off, but I really want a bow tie and I haven't found a good place to make quality custom bow ties. So I'm looking for that still.
Jonathan Hall:If you, a listener, are interested in bow ties or neckties, reach out to me, let me know. I'd love to make a bulk order that makes it easier. Some of these places require a minimum of 50, which I think is a stretch. But if we could get five or 10, we could definitely make it happen.
Andy Williams:But remember, friends, like, it is the holiday season. Christmas and other purchasing opportunities are just around the corner. Between us, I'm sure that we could find a good 50 people in our lives who really need something like this.
Jonathan Hall:That's a possibility. Well, let me know if you're interested, please. If I get any I haven't you're honestly the first person to tell me you're interested, so I haven't gotten any feedback yet.
Andy Williams:I I think that's just because not enough people wanted to respond quickly. Maybe they're behind on their podcast listening because I don't see how this can be hugely popular.
Jonathan Hall:Or or maybe they just haven't seen me sporting one yet. Maybe at Go West, I'll get a bunch of comments and and preorders. Pictures are Fingers
Andy Williams:crossed. Happen.
Jonathan Hall:Fingers crossed. Yeah. Anyway, you also had a quick update on a a for help for the FIND project.
Andy Williams:Yeah. I mean, been loads of conferences around the last couple of weeks, like I said, and one of the things I've been really excited to see when I speak to people in person is what they are doing with the libraries, the frameworks and everything. But of course, for me, what people are building with FINE. And it would be really helpful to hear more from people who are doing that. It's not always something that's publicly available or listed on websites, that kind of thing.
Andy Williams:So partly out of curiosity, but also if you're thinking that this is going to be useful for your project, but you're just not quite getting it over the line, give me a check because it would be really awesome to be involved in a few more projects that we can share, show people what's being built. That'd be cool. Thanks.
Jonathan Hall:Well, think that wraps up for our break. We do have a few items on the lightning round, so don't leave just yet.
Andy Williams:Lightning round.
Jonathan Hall:So first up on the lightning round, I want to mention that Watermill 1.5 has been released. I don't. I've never used Watermill, but it seems to be a pretty cool project. It is a go library for building event driven applications the easy way and the new 1.5 version includes SQLite backed PubSub, Quickstart and more. So link in the show notes if you are looking for a library to build event driven applications the easy way.
Andy Williams:Awesome. I mean, I wouldn't want to be building event driven applications the hard way, but it's always good to know there's a better way. I just wanted to drop in something here around that, yeah, the conference space. There's a couple of apps that I saw that I just wanted to shout out. I don't think they've been shared widely before.
Andy Williams:Supersonic is this amazing music player with visualization and lyrics that's been created by one of the, actually the core contributors in FINE but this application hasn't been shared on our website yet. Do check it out. It's got a community following already but I hadn't seen it until Go for com and a really cool peer to peer chat app called Banks that's not publicly released yet but it was shared at Find Conf and we're all really excited to start playing with that one so keep a lookout. I wish I could share more actually, there's logistics apps and security tools and things that people are working on, but I can't really talk about any of them. I don't know if this matters or not, but I heard that Tailscale is hiring Go engineers apropos of nothing at all, but there you go.
Jonathan Hall:Cool. Next up, we talk about Fine a lot when you're on the show. I think I hope the audience doesn't mind. It's nice to have a different perspective. If you were on the show every week, I don't think there would be nearly as much to talk about.
Jonathan Hall:But when you're on the show, we get caught up on Fine.
Andy Williams:I worried about this myself and I look back and I don't think I've been here for a year and a half. So I'm just kind of like letting it go. I do apologize.
Jonathan Hall:But there's another project I want to mention that I think might be relevant to you. It's called ModGen. It's a static generator for Go module vanity URLs and FINE uses a vanity URL, doesn't it?
Andy Williams:Yeah, exactly. When you're importing code, you're using fine.iofine. I mean, there's been a bit of backwards and forwards on vanity domains. Technically, they could slow the lookup of your import ever so slightly, but at the same time, it disconnects you from where your source code is stored. So in theory, you could put your own caching layer in if you wanted to, but more likely, you just have the opportunity to change where or how it's hosted at some point in the future.
Andy Williams:I think the name vanity really just comes from it's a shorter URL and that's quite nice as well. But the projects I think that have been used in this space so far were like how do you slot it into your WordPress or whatever website builder you've got. And if you wanted to do it on a static site generator, you're probably hand crafting something. It's some HTML headers that you put into your file that tells the Go tool how to look it up, and it is really easy to type up. I've been writing this a few times trying to get things right.
Andy Williams:So this tool will help you to add that functionality to your static site generator. And of course, we all know that you're going to get more kudos if you've got a static site these days and save a fair bit of cash as well because I think this integrates really nicely with GitHub. They've got an actions that shows you how to bring it in. So if you can and do have a static site, you're going to get this little beauty in there for free and in a really polished way. So check it out.
Jonathan Hall:Awesome. I've gone back and forth. I have one open source project. I a custom domain, quote vanity domain, kivik.io, and I've always debated whether I should host my Go modules under the domain or stick it with GitHub. For a while, was thinking of switching to GitLab, and now it's just not worth the effort.
Jonathan Hall:I'll probably stick on GitHub. So you know, I've always wondered, how did you decide to use find.io instead of GitHubFine or whatever?
Andy Williams:I think I use this approach for really difficult life decisions. See what your gut says. If it's a good idea just go with it because you can always change it later if you have to. Like people obsess over a lot of these things quite in-depth and I just like to go with it. The name, it was a short domain.
Andy Williams:It stuck and I'm like you know what, bringing people to that domain it's a great thing. It means that that's where the documentation is. It's where we can shout about really cool projects. And you can do a whole lot more, I think, when you've got the whole domain for hosting your code than if it is a subdomain of somebody else's provider. I mean, imagine if your git host decided one day that you couldn't host pages or documentation or something.
Andy Williams:It's unlikely, but it gives you options and a bit of flexibility.
Jonathan Hall:Yeah, cool. Andy, it has been great to see you again and to chat with you. Thank you for filling in for Shy.
Andy Williams:Yeah, not a problem at all. Thanks so much. It's been great to be here again. See you, John. I'm glad that everything's going well.
Andy Williams:Good luck with your go west, by the way. I hope the talk goes well.
Jonathan Hall:Thank you.
Andy Williams:And yeah, absolutely. If you love the show, do remember to go on Patreon and sponsor the project. If you didn't, then don't worry. Chai's gonna be back next week and service will be resumed as normal.
Jonathan Hall:Program exited.
Creators and Guests


