What is a microservice, and what is a monolith? What differentiates them? When is a good time for your team to start considering the transition from monolith to microservice? And does using microservices mean you can’t use a monorepo?
3muxis a terminal multiplexer with out-of-the-box support for search, mouse-controlled scrollback, and i3-like keybindings.
Sign me up ✋
What does it take to organize a community event? How do you ensure it is diverse? What does diversity even mean? Tune in to learn directly from organizers of some of the most diverse Go meetups (Gophercon EU and Go Bridge).
Rclone acts like its source of influence, rsync, but instead syncs files and directories to many cloud storage providers. It runs on all the Linux/macOS/Windows flavors. You can even install with Homebrew on macOS.
brew install rclone
Based on what I read in the HN comments there are tons of users/uses for Rclone.
Bryan Liles joins Johnny and Mat for a wide-ranging discussion that starts with the question: what even is enterprise Go?
If you use (and abuse) Gmail’s filters in order to wrangle your inbox, this tool might help you keep your sanity as you maintain them over time.
This utility helps you generate and maintain Gmail filters in a declarative way. It has a Jsonnet configuration file that aims to be simpler to write and maintain than using the Gmail web interface, to categorize, label, archive and manage your inbox automatically.
Working from home can be challenging, especially amid school closings and everything else caused by COVID-19. In this episode panelists Jon, Mat, Carmen, and Mark share advice and experiences they have accumulated over many years of working from home. They cover separating your work space from your personal space, signaling to your family that you are busy, ways to keep track of the time, and suggestions for getting some exercise in when you can.
In this post Carmen Andoh, Russ Cox, and Steve Francia share important notes about how the pandemic is affecting the Go community, what they’re doing to help, what you can do to help, and upcoming plans for Go itself.
Go always comes second to more basic concerns like personal and family health and safety. Around the world, the past couple months have been terrible, and we are still at the start of this awful pandemic. There are days when it seems like working on anything related to Go should be considered a serious priority inversion.
But after we’ve done all we can to prepare ourselves and our families for whatever is coming, getting back to some approximation of a familiar routine and normal work is a helpful coping mechanism. In that spirit, we intend to keep working on Go and trying to help the Go community as much as we can.
Dave Cheney talks to us about the Zen of Go (ten engineering values for writing simple, readable, maintainable Go code). What makes code good in Go? What guiding principles should we bear in mind when writing Go?
This repository contains a single-file implementation of YouTube video downloader written in Go. It does not require any third-party packages, only built-in packages from the standard library. The code is compact and easily-readable.
Nowhere near the features of youtube-dl (which is like a swiss army knife for downloading videos off the internet), but cool nonetheless. You can read the entirety of GoTube’s source code in a single sitting, which makes it great for learning and tinkering.
This is THE podcast for diverse discussions from around the Go community.
Go Time’s panel hosts special guests like Kelsey Hightower… (clip from episode #114)
picks the brains of the Go team at Google… (clip from episode #100)
shares their expertise from years in the industry (clip from episode #102)
and has an absolute laugh riot along the way… (clip from episode #110)
It is Go Time! Please listen to a recent episode that interests you and subscribe today. We’d love to have you with us.
Johnny and John welcome Thorsten Ball back to the show. This time we’re talking power tools! Editors, operating systems, containers, cloud providers, databases, and more. You name it, we probably talk about.
tickgitis a tool for software developers to do project management within their codebase. It searches code comments for markers indicating areas and files worth returning to (
FIXME, etc). It can be used to proactively identify areas of technical debt, or handle day-to-day to-do items and checklists.
Free for public repos and open source.
In this episode Jaana and Mat are joined by Daniel and Miriah to dive into AI in Go. Why has python historically had a bigger foothold in the AI scene? Is machine learning in Go growing? What libraries and tools are out there for someone looking to get started with AI? And where do you start if you don’t have enough data for your own models?
Monitoror is a single file app written in Go. It can run on Linux, macOS, or Windows. You can view a live demo here.
Newsletters play a unique role for developers. As the Go community continues to grow and mature, these newsletters provide a much-needed filter for the oft overwhelming stream of new articles, talks, and libraries produced by the community on a weekly basis.
In this episode Johnny, Jon, and Mat are joined by Peter Cooper of the Golang Weekly newsletter to discuss his role as a newsletter curator. We explore difficult topics that touch on ethics and responsibilities of a curator and of course, the impact Peter and his team have on shaping, at least in part, what many in the Go community get exposed to.
Gone are the days of contending with dozens of README files just to get the right version of helm and to install a chart with sane defaults.
arkfor short) provides a clean CLI with strongly-typed flags to install charts and apps to your cluster in one command.
How do you write good code? How do you know when you’ve written good code? Dave Cheney writes this with inspiration from PEP 20 - The Zen of Python.
If there’s a continuum between good and bad, how to do we know what the good parts are? What are its properties, its attributes, its hallmarks, its patterns, and its idioms?
Which brings me to idiomatic Go. To say that something is idiomatic is to say that it follows the style of the time. If something is not idiomatic, it is not following the prevailing style. It is unfashionable.
More importantly, to say to someone that their code is not idiomatic does not explain why it’s not idiomatic. Why is this?
Interfaces are everywhere in Go. The basic error type is an interface, writing with the
fmt package means you are probably using an interface, and there are countless other instances where they pop up. In this episode Mark, Mat, Johnny, and Jon discuss interfaces at length, exploring what they are, how they are using them in their own projects, as well as tips for how you can leverage them in your own code.
The Fyne toolkit provides the easiest way to develop beautiful, lightweight and user friendly native applications for desktop, mobile and beyond. In this post, I describe our design process and why we take a considered approach, moving slower than you might think.
According to the author, esbuild is fast because..
- it’s written in Go
- much of the work is done in parallel
- it takes very few passes and avoids data transformations
- it was coded with performance in mind
Supports too many languages to list here, but all of the usual suspects are there. Maybe you’re hoping for a web-based demo? No 🎲
Do not run the Web UI on a port open to public traffic! Doing so would allow remote code execution on your machine.
Telemetry is tricky to get started with. What metrics should you be tracking? Which metrics are important? Will they help you predict and avoid potential issues? When is a good time to start? Should you put it off until later? In this episode we discuss some common metrics to collect, how to get started with telemetry, and more with guest Dave Blakey of Snapt.
I know the Go community isn’t one for frameworks, but as a long time framework user myself, I’ve never quite understood the resistance. Fiber doesn’t hide the ball. It comes right out and says “this is a web framework written in Go”. Here’s the philosophy behind that:
New gophers that make the switch from Node.js to Go are dealing with a learning curve before they can start building their web applications or microservices. Fiber, as a web framework, was created with the idea of minimalism and follow UNIX way, so that new gophers can quickly enter the world of Go with a warm and trusted welcome.
Fiber is inspired by Express, the most popular web framework on the Internet. We combined the ease of Express and raw performance of Go. If you have ever implemented a web application on Node.js (using Express or similar), then many methods and principles will seem very common to you.
Aleksandr Krivoshchekov implements a factorial function in different ways as if he was at different stages of Go enlightenment. Stick around to the end for a cheeky Rob Pike moment.