2 make || ! 2 make • The Applied Go Weekly Newsletter 2024-11-24

2 make || ! 2 make Hi , Few software tools survive for decades almost unchanged. A build tool named make is one of these. Is it a good fit for Go? In this week's Spotlight, I focus on one particular aspect of make and make-like tools: How file changes are detected. A quick announ … | Continue reading


@newsletter.appliedgo.net | 3 hours ago

1111 Years • The Applied Go Weekly Newsletter 2024-11-17

1111 Years Hi , Go turned 1111 years, or 15 if converted to decimal. That's still young, compared to (even more) established languages like Java or C++. But it's been a long and eventful journey. The most astonishing aspect, however, is that Go remained true to itself. It's still … | Continue reading


@newsletter.appliedgo.net | 8 days ago

Go Practical! • The Applied Go Weekly Newsletter 2024-11-10

Go Practical! Hi , Today's issue is all about practical Go! Build a system monitor, write secure code, understand sync.Once, listen to the creators of Elvish and Fyne, take part in some aha moments, learn how to apply TeeReader and MultiReader to an audio mixing problem, or see a … | Continue reading


@newsletter.appliedgo.net | 15 days ago

First Principles First! • The Applied Go Weekly Newsletter 2024-11-03

First Principles First! Hi , Back to the basics: How does an HTTP router work? How does Go's time formatting work? How does fuzz testing work? I think that once in a while, it can't hurt to gather some fundamental knowledge or refill a few memory cells with basic patterns and mec … | Continue reading


@newsletter.appliedgo.net | 22 days ago

A Liberating Language • The Applied Go Weekly Newsletter 2024-10-27

A Liberating Language Hi , How important is the choice of language for the success of a project, in the short and long term? Some programmers consider one language as good as another; they learn dozens of them but none deeper than the basics. A few are brilliant enough to gain de … | Continue reading


@newsletter.appliedgo.net | 29 days ago

Of tests, goats, and swiss tables • The Applied Go Weekly Newsletter 2024-10-20

Of tests, goats, and swiss tables Hi , Binary size is usually not a problem... until it is. If the usual methods of shrinking binaries aren't sufficient, a possible culprit is the reflect package, or specifically, four methods of this package, which is this week's Spotlight. But … | Continue reading


@newsletter.appliedgo.net | 1 month ago

To bot or not to bot? • The Applied Go Weekly Newsletter 2024-10-13

To Bot Or Not To Bot? Hi , LLMs are getting better every few months, and the discussions about the pros and cons enter a new round every time a new model is released. Some claim to observe skyrocketing productivity, others warn about decay in code quality, up to producing severe … | Continue reading


@newsletter.appliedgo.net | 1 month ago

Beyond Paradigms • The Applied Go Weekly Newsletter 2024-10-06

Did you ever try mentioning to functional programming purists that Go has some aspects of functional programming (specifically, functions as first-class citizens)? How did they react? Chances are that they immediately listed a ton of reasons why Go cannot be functional in any reg … | Continue reading


@newsletter.appliedgo.net | 1 month ago

Real time? What do you mean? • The Applied Go Weekly Newsletter 2024-09-29

"Go has garbage collection and therefore can never be considered a high-speed language." Um, wrong. Speed is relative, and Go is orders of magnitudes faster than dynamically typed, interpreted scripting languages, so the garbage collector certainly isn't a major factor in applica … | Continue reading


@newsletter.appliedgo.net | 1 month ago

Brutalism • The Applied Go Weekly Newsletter 2024-09-22

What's your preferred configuration language? YAML, JSON, TOML, or environment variables? Or do you suffer from a general configuration language allergy? Maybe there's a CUrE. Now you're CUErious, huh? Not so fast. First, you have to read through the featured articles, one by one … | Continue reading


@newsletter.appliedgo.net | 2 months ago

Running in Circles • The Applied Go Weekly Newsletter 2024-09-15

When I wrote this week's spotlight, these lines from Tears For Fears' song "Mad World" came to my mind: I find it hard to tell you 'Cause I find it hard to take When people run in circles It's a very, very Mad world The spotlight's topic is much more trivial than this classic wel … | Continue reading


@newsletter.appliedgo.net | 2 months ago

It's My Project And I Cry If I Want To • The Applied Go Weekly Newsletter 2024-09-08

Contrary to my usual habits, I decided to include two project in the Featured section that are the results of great personal dedication and persistence. They caught my eye as they are perfect examples of successful, non-trivial projects a single person can pull off. These two pro … | Continue reading


@newsletter.appliedgo.net | 2 months ago

KISS. Because YAGNI. • The Applied Go Weekly Newsletter 2024-09-01

Beware of over-engineering. Sometimes, a quick hack is sufficient. This week's spotlight describes an example: Instead of selecting a CLI command library and implementing commands and subcommands in Go, you can use a quick hack to unite independent CLI tools under a parent comman … | Continue reading


@newsletter.appliedgo.net | 2 months ago

It's (not) magic

Magic can be wonderful. Shake a wand like a conductor of an orchestra and turn that impenetrable door into dust. Quaff a magic potion and gain enough superpowers to beat up a cohort of Roman soldiers in 50 BC. Use The Force to levitate an x-wing fighter. Even programming language … | Continue reading


@newsletter.appliedgo.net | 3 months ago

One, two, three • The Applied Go Weekly Newsletter 2024-08-18

This week, I struggled with a codebase that I hadn't touched for a while. What a mess! My brains worked hard to reconstruct how all the parts work together, and why I made this decision over another back when I wrote that code. But all the time, I realized that Go's direct and no … | Continue reading


@newsletter.appliedgo.net | 3 months ago

Show me your API • The Applied Go Weekly Newsletter 2024-08-11

Humans love to communicate, and likewise does the software they create. To communicate over a distance, humans use telephones, email, or text or video chat, while software uses REST APIs (among other options). The OpenAPI standard facilitates reasoning about APIs by providing a f … | Continue reading


@newsletter.appliedgo.net | 3 months ago

Shut Up And Take My Telemetry Data! • The Applied Go Weekly Newsletter 2024-08-04

You know that a new Go release is coming when the number of release-specific articles spikes. This issue contains another article, another podcast, and a Go Tip about Go 1.23. Among all the new and improved features, there is one that is perhaps the most controversial: telemetry. … | Continue reading


@newsletter.appliedgo.net | 3 months ago

My Web App Stack? Go. • The Applied Go Weekly Newsletter 2024-07-28

Go is said to be the language for backend infrastructure and CLI tools. Nevertheless, countless projects relentlessly work on establishing Go in other spaces: Game engines like Ebitengine, blockchain software like go-ethereum, embedded Go editions like TinyGo, or AI frameworks li … | Continue reading


@newsletter.appliedgo.net | 4 months ago

Bisecting FTW • The Applied Go Weekly Newsletetter 2024-07-21

Slowly, the newsletter gets out of summer break mode. The most surprising article of the week (for me) is Russ Cox's article about the new bisect tool, right below in the Featured Articles section. And the most eye-opening article of the week (again, for me) is the very last one, … | Continue reading


@newsletter.appliedgo.net | 4 months ago

Six repos • The Applied Go Weekly Newsletter 2024-07-14

When it's rainy outside, or sunny, cloudy, hot, or cold—weather doesn't matter that much, honestly—, I sometimes think about the future of Go. Will AI code generation make programming skills and language mastery irrelevant? Or will Go rather play an increasingly important role in … | Continue reading


@newsletter.appliedgo.net | 4 months ago

500 million • The Applied Go Weekly Newsletter 2024-07-07

Summer Break! This is the first issue during the summer break. It's much smaller than usual, but I still managed to include some articles from this week. Only featured articles! Next week's issue (on Sun July 14th) will be a 100% "canned" one as I'll be AFK for most of the time. … | Continue reading


@newsletter.appliedgo.net | 4 months ago

Supply Chain Attack, Anyone? • The Applied Go Weekly Newsletter 2024-06-30

Have you heard of the Polyfill attack? Shortly after the Polyfill.js project and domain changed owner, the Polyfill servers injected malware into 100k+ sites, making potentially millions of mobile devices visiting these sites vulnerable to that malware. Software supply chains get … | Continue reading


@newsletter.appliedgo.net | 4 months ago

Tradition vs. Innovation - The Applied Go Weekly Newsletter 2024-06-23

Go's language specification is rock stable, compared to other languages (looking at you, C++!). The Go team is very careful about approving new features to the language, and yet, Go has gotten type parameters (aka generics) and is about to get new function iterators. Not to menti … | Continue reading


@newsletter.appliedgo.net | 5 months ago

Evolving backwards • The Applied Go Weekly Newsletter 2024-06-16

The world is constantly evolving, no doubt! The question, however, is: in which direction? Mostly towards increasing complexity (see also last week's issue). Sometimes also backwards. Web development, for example, has evolved from serving static pages to single-page applications— … | Continue reading


@newsletter.appliedgo.net | 5 months ago

It's not complex enough yet! • The Applied Go Weekly Newsletter 2024-06-09

Complexity is everyone's favorite, right? Of course not, but how come that systems, particularly software systems, always seem to tend towards increased complexity? Maybe it's a lack of planning or failure to manage organic growth. But maybe it's the innocent wish of adding new, … | Continue reading


@newsletter.appliedgo.net | 5 months ago

Stacks that lurk in the shadows • The Applied Go Weekly Newsletter 2024-06-02

Curiosity skills the cat! Usually, hardware speed improvements cannot be emulated by software on older hardware. Because without the new kind of hardware acceleration, how should software become faster? Here is an example where hardware acceleration actually leads to faster softw … | Continue reading


@newsletter.appliedgo.net | 5 months ago

Burrito time: Wrap that error? • The Applied Go Weekly Newsletter 2024-05-26

Do you remember the Go Tip from two weeks ago? I listed three anti-patterns, including dot imports. Dot imports are rightly said to pollute the namespace of the importing package and make understanding the code harder. But still, if certain imported identifiers are used intensely … | Continue reading


@newsletter.appliedgo.net | 6 months ago

About hosting a Go service • The Applied Go Weekly Newsletter 2024-05-19

Whether you build an online service in Go as a side project or for your business, at one point you have to decide where and how to host your service. Should you rent a proprietary hosting solution, or better grab some open-source software and start hosting everything by yourself? … | Continue reading


@newsletter.appliedgo.net | 6 months ago

This Go code is bad • The Applied Go Weekly Newsletter 2024-05-12

This week, let's start with two actionable articles. Write a Web app with JetBrains and explore a coding problem that has no optimal solution (but at least, it has one). Also worth noting: Encore goes open source! In the recent months, we have seen the opposite happening. First, … | Continue reading


@newsletter.appliedgo.net | 6 months ago

Go is like the Millenium Falcon • The Applied Go Weekly Newsletter 2024-05-05

Today — the day this newsletter has found your inbox — is the Revenge of the Fifth day, following the May the Fourth Be With You day. Obviously, this weekend is in Star Wars mode. Which reminds me of the probably most famous spaceship ever, the Millenium Falcon. Did you know that … | Continue reading


@newsletter.appliedgo.net | 6 months ago

A Go developer and a Rust developer meet in a chatroom • The Applied Go Weekly Newsletter 2024-04-28

A Go developer and a Rust developer meet in a chatroom... This could be the start of a lame joke about Go vs Rust, but it actually happened — except that the two "developers" were LLM-based bots, one written in Go, the other in Rust. How can you tell the two were bots? They were … | Continue reading


@newsletter.appliedgo.net | 7 months ago

Can VMs beat containers in performance? • The Applied Go Weekly Newsletter 2024-04-21

What happened last week? Well, if there is anything I can brag about, I added a dark mode to appliedgo.net. Yay. This was in the back of my head for a long time, and whenever my computer switched to dark mode in the evening and I browsed websites that don't adapt to dark mode, I … | Continue reading


@newsletter.appliedgo.net | 7 months ago

Choose your language wisely! • The Applied Go Weekly Newsletter 2024-04-14

Choose your programming language wisely! Those of you who already have worked with several languages know what I mean. I reckon you won't disagree when I say that Go is a wise choice for many requirements. The latest Go Developer Survey results support this: 93% of the respondent … | Continue reading


@newsletter.appliedgo.net | 7 months ago

Performance, Security, and a Diamond (Problem) • The Applied Go Weekly Newsletter 2024-04-07

Recently, I have been thinking about the role of IT in consumption of natural resources and carbon dioxide production. Two areas truly stand out: Blockchains and Generative AI. Bitcoin's energy consumption per year equals that of Egypt. Or Malaysia, or Sweden, depending on who yo … | Continue reading


@newsletter.appliedgo.net | 7 months ago

Try Go in Y Minutes • The Applied Go Weekly Newsletter 2024-03-31

You may have read about Codapi.org here one or two times. Codapi is a service for embedding runnable code snippets of almost any language into Web pages — and not only that: Recently, Anton Zhiyanov, the author of Codapi, created an interactive Caddy tutorial. You can fire up a C … | Continue reading


@newsletter.appliedgo.net | 7 months ago

1. Learn Go, 2. Make Go code faster, 3. Extend Go • The Applied Go Weekly Newsletter 2024-03-23

In earlier issues of this newlsetter (like this one), I mentioned Codapi.org, a universal, embeddable code playground. Recently, Codapi author Anton Zhiyanov added a growing list of "Try X in Y minutes" pages, which are executable versions of the famous "Learn X in Y minutes" pag … | Continue reading


@newsletter.appliedgo.net | 8 months ago

Can you make that faster? • The Applied Go Weekly Newsletter 2024-03-17

Recently, I used some AI chatbot again for quickly generating some code I was too lazy writing myself. Then, I came across an ambitioned company that works on building an AI software engineer. No, I don't want to spawn another will-AI-replace-our-jobs discussion. Indeed, I am ske … | Continue reading


@newsletter.appliedgo.net | 8 months ago

Dysfunctional options and stupid programmers • The Applied Go Weekly Newsletter 2024-03-10

Go's intricacies know no bounds - from interface smuggling that augments implementations to the surprising impact of pre-allocating slices. But amid the technical depths, a programmer's musings on embracing simplicity over engineering complexities strike a resonant chord. Sorry. … | Continue reading


@newsletter.appliedgo.net | 8 months ago

Of cod fish and gophers • The Applied Go Weekly Newsletter 2024-03-03

JuiceFS, Bacalhau,... I stumbled over quite a few applications Written In Go™ lately. It's amazing to see what cool things people make possible with Go. But it's absolutely jaw-dropping to see how someone uses Go to hold a disease at bay. 👇 More below! 👇 ʕ◔ϖ◔ʔ Of … | Continue reading


@newsletter.appliedgo.net | 8 months ago

A Gopher, an Enum, and an Undefined • The Applied Go Weekly Newsletter 2024-02-25

A Gopher, an Enum and an Undefined walk into a bar... I don't know how to continue that joke, but after reading the article on enums and the Go Tip on undefined JSON data, perhaps you can come up with a punch line. But more realistically, you probably will be tackling the one bil … | Continue reading


@newsletter.appliedgo.net | 9 months ago

Goto considered harmless • The Applied Go Weekly Newsletter 2024-02-18

What's your best practice for writing HTTP servers? I bet there are as many opinions on good HTTP server design as there are Go developers. But there's nothing wrong with learning from experienced Gophers. Speaking of best practices, maintaining a low number of dependencies is no … | Continue reading


@newsletter.appliedgo.net | 9 months ago

Not another article about Go 1.22, please! • The Applied Go Weekly Newsletter 2024-02-11

Is it already half a year since I posted an article on appliedgo.com/blog? It is, obviously. (Note to self: Reserve more time for writing articles.) Luckily, every Go release is a great topic to write about. The downside: Everyone(*) else writes about the latest Go release, too. … | Continue reading


@newsletter.appliedgo.net | 9 months ago

Memory bloat? Do this. • The Applied Go Weekly Newsletter 2024-02-04

Whew! Two strange and busy weeks are now behind me. Two weeks of testing and tweaking, talking to tech support, tweaking again, weighing pros and cons, and finally deciding to move away from my mailing provider. Going forward, I send this newsletter via Buttondown.email. There ar … | Continue reading


@newsletter.appliedgo.net | 9 months ago

Optimize! Optimize! Optimize! • The Applied Go Weekly Newsletter 2024-01-28

A message to my readers: The previous issue had some problems and got delayed by over a week for many readers. Furthermore, the new platform of my mailing provider has some serious bugs. One of these bugs tricked me into re-sending the previous issue to everyone, not just to thos … | Continue reading


@newsletter.appliedgo.net | 9 months ago