Hacking with Go: Part 4
Our “Hacking with Go” series continues! This time Natalie & Johnny are joined by Ivan Kwiatkowski & Juan Andrés Guerrero-Saade and the conversation is we’re focused around generics and AI.
Our “Hacking with Go” series continues! This time Natalie & Johnny are joined by Ivan Kwiatkowski & Juan Andrés Guerrero-Saade and the conversation is we’re focused around generics and AI.
The panel discuss the parts of Go they never use. Do they avoid them because of pain in the past? Were they overused? Did they always end up getting refactoring out? Is there a preferred alternative?
A multi-tenant HTTP reverse tunnel solution through remote port forwarding from the SSH protocol.
This is intended for small teams that need to expose the local development environment to the public internet, and you need to bring your own domain name and SSO provider.
It gives stable subdomain for every user, and gated by your SSO through OIDC protocol.
Think this as a bare-bone alternative to the ngrok’s $65/user/month enterprise tier. Try to put this behind a production system will blow up your SLA.
For individuals and production systems, just buy ngrok, it is still my favorite.
In a world where most documentation sucks, large language models write better than humans, and people won’t be bothered to type full sentences with actual punctuation.
Two men… against all odds… join an award-worthy podcast… hosted by a coin-operated, singing code monkey (?)… to convince the developer world they’re doing it ALL wrong.
Grab your code-generator and heat up that cold cup of coffee on your desk. Because this episode of Go Time is about to blow your docs off!
Service Weaver is a programming framework for writing, deploying, and managing distributed applications in Go. With Service Weaver, you write your application like it is a traditional, single-process Go executable that runs on your local machine. Then, you deploy it to the Cloud, and the framework breaks it down into a set of connected microservices and integrates it with the cloud provider (e.g., monitoring, tracing, logging).
Ben Hoyt shares his experience switching two of his side projects from on an EC2 instance to Fly.io:
It took me about an hour to figure out the basics of Fly.io and move the simpler project, and a couple of evenings to move the more complex one. Fly.io handles the annoying reverse proxy and SSL stuff, deployment is as simple as
fly deploy
, and there’s a nice dashboard on Fly.io to show me what’s going on…I’m only a few weeks into using Fly.io to host my side projects, but I’m very happy with their product so far. I was quite happy to delete the 500 lines of Ansible scripts, systemd unit files, and Caddy config files.
It also made me smile to finally stop the EC2 instance and bump my AWS bill down from $9 per month to about 10 cents per month (I still use S3 for user-uploaded images and for backups). I have nothing against EC2 and would use it again for certain things, but for small web applications, Fly.io seems like a great fit.
Our “what’s new in Go” correspondent Carl Johnson joins Mat & Johnny to discuss… what’s new in Go 1.20, of course! What’d you expect, an episode about Rust?! That’s preposterous…
This week we invited our friend Mat Ryer to join us for some good conversation about some Git tooling that’s been on our radar. You may know Mat from Go Time and also Grafana’s Big Tent, which we help to produce. We speculate, we discuss, we laugh, and Mat even breaks into song a few times. It’s good fun.
A quick look at the history of building web apps, followed by a discussion of htmx and how it compares to both modern and traditional ways of building.
Filippo Valsorda:
Last May I left my job on the Go team at Google to experiment with more sustainable paths for open-source maintainers. I held on to my various maintainer hats (Go cryptography, transparency tooling, age, mkcert, yubikey-agent…), iterated on the model since September, and I’m happy to report that I am now a full-time independent open-source maintainer.
People like Filippo are still (unfortunately) the exception, not the rule. BUT! I’ll celebrate every time an open source maintainer makes it to the promised land, hopefully paving the way for others to follow after.
I’m sharing details about my progress to hopefully popularize the model, and eventually help other maintainers adopt it, although I’m not quite ready to recommend anyone else drop everything to try this just yet.
It’s “Call For Papers” (CFP) season in Go land, so we gathered some seriously experienced conference organizers to help YOUR submission be the best ever.
Ole Bulbuk & Sandor Szücs join Natalie to discuss the ins & outs of long-term code maintenance. What does it take to maintain a codebase for a decade or more? How do you plan for that? What about inheriting a codebase for the long term? Oh, and (how) can AI help?
I love a good “I built a thing and here is how I built that thing” post, especially when it’s penned by someone like Chris who’s sure to keep you entertained along the way.
Wouldn’t it be neat to have aggregated data (for a website, daily email, push alert, etc) of kids events in our surrounding area so we know about them right away?
— My wife, possibly salty we missed out on Bluey Live tickets in Portland
Tech lawyer Luis Villa returns to Go Time to school us once again on the intellectual property concerns of software creators in this crazy day we live in. This time around, we’re focusing on the implications of Large Language Models, code generation, and crazy stuff like that.
Paul Smith (from “Obama’s Trauma Team”) tells us the tale of how Go played a big role in the rescuing and rebuilding of the HealthCare.gov website. Along the way we learn what the original team did wrong, how the rescue team kept it afloat during huge traffic spikes, and what they’ve done since to rebuild it to serve the people’s needs.
Mat and the gang ring in the new year by gathering around a make believe fireplace and discussing what they’re excited about in 2023, their new years resolutions & a little bit of Go talk, too. But only a little.
Mat invites Bartłomiej Płotka, Kemal Akkoyun & Christian Simon to discuss how to make Go code more efficient through modern observability practices.
Ivan Kwiatkowski joins Natalie once again for a follow-up episode to Hacking with Go: Part 2. This time we’ll get Ivan’s perspective on the way Go’s security features are designed and used, from the user/hacker perspective. And of course we will also talk about how AI fits into all this…
Distributed, offline-first bug tracker embedded in git, with bridges
I love the idea of having your bug repo right there inside your code repo. The terminal UI is a nice touch!
That is the question. Whether ’tis nobler in the mind to suffer the slings and arrows of outrageous test coverage, or to take arms against a sea of bugs…
Robert Laszczak does a good job defending/explaining many gophers’ position on frameworks:
Go frameworks exist, but none provides a feature set like frameworks from other languages. This won’t change soon.
You may think that it’s because the Go ecosystem is younger. But there is a more important factor. Go is built around the Unix Philosophy…
Nishant Roy, Engineering Manager at Pinterest Ads, joins Johnny & Jon to detail how they’ve managed to continue shipping quality software from startup through hypergrowth all the way to IPO. Prepare to learn a lot about Pinterest’s integration and deployment pipeline, observability stack, Go-based services and more.
Why another file manager? I wanted something simple and minimalistic. Something to help me with faster navigation in the filesystem; a
cd
andls
replacement. So I build “llama”. It allows for quick navigation with fuzzy searching.cd
integration is quite simple. And you can openvim
right from the llama. That’s it. As simple and dumb as a llama.
On a previous episode of Go Time we discussed binary bloat, and how the Go protocol buffer implementation is a big offender. In this episode we dive into the history of protocol buffers and gRPC, then we discuss how the protocol and the implementation can vary and lead to things like binary bloat.
It stores your shell history in context (what directory you ran the command in, whether it succeeded or failed, how long it took, etc). This is all stored locally and end-to-end encrypted for syncing to to all your other computers. All of this is easily queryable via the
hishtory
CLI. This means from your laptop, you can easily find that complex bash pipeline you wrote on your server, and see the context in which you ran it.