RSSAmplifier

Blog

The Ethically-Trained Programmer

Recent content on The Ethically-Trained Programmer

blog.carlana.netRSS feed ↗15 posts

Latest posts

What’s New in Go 1.24?

I was on episode 6 of the new Fallthrough podcast , talking about What’s New in Go 1.24. Check it out !

What’s new in Go 1.23? Podcast

I was on episode 325 of the Go Time podcast , talking about What’s New in Go 1.23. Check it out !

What’s New in Go 1.23: Iterators and reflect.Value.Seq

The Go 1.23 release candidates are out. That means it’s time for another entry in the What’s New in Go series where I talk about my contribution to this release. For Go 1.23, I proposed (but did not implement) four new methods: reflect.Value.Seq , reflect.Value.Seq2 , reflect.Type.CanSeq , and reflect.Type.CanSeq2 . So, where do they come from and what do they do? If you’ve been…

Five Years Running a News Site on JAMStack

I started working as the Director of Technology at Spotlight PA the Tuesday after Memorial Day, 2019, over five years ago. There have been a lot of changes in technology, journalism, and the world since then, not least of which was the COVID-19 pandemic. I thought this anniversary would be a good opportunity to look back and take stock of what went well, what went poorly, what I think would have…

What’s New in Go 1.22: cmp.Or

Go 1.22 has been released for a couple of months as of this writing. It’s long past time to wrap up my series on what I worked on for 1.22 . Sorry for the long delay, I’ve been busy with life stuff. Be sure to catch up on my posts about reflect.TypeFor and slices.Concat if you missed those. The final function I proposed and implemented for Go 1.22 is cmp.Or . On Go Time , I called it “the hidden…

What’s new in Go 1.22? Podcast

I was on episode 302 of the Go Time podcast , talking about What’s New in Go 1.22. Check it out !

What’s New in Go 1.22: slices.Concat

We’re up to the second release candidate for Go 1.22, which should be released quite soon. In my last blog post, I wrote about my work on reflect.TypeFor for Go 1.22. This time, I’ll be writing about how I proposed and implemented slices.Concat . Here is the signature for slices.Concat : // Concat returns a new slice concatenating the passed in slices. func Concat [ S ~[] E , E any ]( slices ... S…

What’s New in Go 1.22: reflect.TypeFor

The first release candidate for Go 1.22 is out , which means it’s almost time for the final release and it is time for me to blog about what I worked on this cycle . As usual, my contributions were small, but they were mine, so I’m going to talk about them from a behind-the-scenes perspective. First up is reflect.TypeFor . Here is the entire function: // TypeFor returns the [Type] that represents…

Alternate Futures for “Web Components”

It seems like Web Components are always just on the cusp of finally catching on. They’re like the year of Linux on the desktop for frontend nerds. I keep reading the latest articles about Web Components as they bubble up on my social media feeds, just hoping that there is something that I missed out on and now they have more substance, but I always end up feeling disappointed. I wrote up my…

XML is better than YAML. Hear me out…

They turned my unpopular opinion from Go Time 289 into a standalone blog post. Check it out !

What’s new in Go 1.21? Podcast

I was on episode 289 of the Go Time podcast , talking about What’s New in Go 1.21. Check it out !

What I worked on for Go 1.21

Go 1.21 has been released ! For past releases, I wrote up my notes on what’s new in Go 1.18 ( part 1 , part 2 ), 1.19 , and 1.20 ( part 1 , part 2 , part 3 ), but I thought I would sit this round of blogging out, in part because there have been some good roundups of what’s new elsewhere already, and in part because I’ve been on family vacation until recently and haven’t had time to write much.…

Ten Years of “Go: The Good, the Bad, and the Meh”

Ten years ago, I wrote Go: The Good, the Bad, and the Meh . Way back in 2013, it made it to the front page of Hacker News and got over 400 comments on /r/programming . I don’t have analytics from back then, but I suspect it’s one of my more discussed pieces of writing, and it was definitely one of my first experiences of getting a lot of feedback for my writing. (Then again, I…

How to include Git version information in Go

TL;DR: Just import github.com/carlmjohnson/versioninfo and use versioninfo.Revision to automatically include a Git hash in your Go application. Curious how it works? Want to make your own version info package? Read on. In previous blog posts, I’ve written about how you can include revision information like a Git revision hash in a Go binary by using linker flags and //go:generate or //go:embed .…

The bits of Go we avoid (and why) Podcast

I was on episode 269 of the Go Time podcast , talking about the bits of Go we avoid (and why). Check it out !