What is up friends and welcome to another edition.
I missed last week because of life, but we are back on the train this week π
Letβs choo-choo right along to what I learned about over the last fortnight.
Things I Liked and Learned This Week#
Domain Name System#
This week at CSI, we started our course on Computer Networking. I wrote a quick, short guide to DNS. We also wrote a small DNS client in Go. Good fun!
One interesting takeaway is that there are only 13 root servers in the world. All are owned and operated by US-based institutions. Crazy to think that the web is built on these kinds of foundations.
Go For-Loops are fixed#
In Go 1.22, they will fix an interesting for-loop issue.
func main() {
done := make(chan bool)
values := []string{"a", "b", "c"}
for _, v := range values {
go func() {
fmt.Println(v)
done <- true
}()
}
// wait for all goroutines to complete before exiting
for _ = range values {
<-done
}
}
This will print βcβ, βcβ, and βcβ, which is not expected.
Interestingly, this issue also affects Python code. There is some discussion there, but it seems that the community has decided that the change will impact too much existing code, and will not be done.
Golang, though, itβs full steam (π) ahead.
Iβll admit I havenβt looked into this in great detail, but itβs something Iβd like to come back to.
A High Throughput B+tree for SIMD Architectures#
Now this is something that seems very cool. I also have dug into this much, but Iβm sure this kind of thing is extremely interesting.
Bun 1.0#
Bun 1.0 was released. This caused quite a stir on Twitter. It seems that this is a significant improvement on existing JS build tools. Keen to give this a try.
Google Rust Course#
One for the bookmarks, Google has their own Rust course.
Pretty interesting! Would like to give this a go at some stage.
End#
Thatβs all for this week, Iβll see you again next time!