Dmitri Shuralyov's Avatar

Dmitri Shuralyov

@dmitri.shuralyov.com

I pursue insight, then make things simpler and better. I enjoy writing correct, high-quality Go code. Minimalist.

76 Followers  |  1 Following  |  9 Posts  |  Joined: 01.05.2023  |  2.4901

Latest posts by dmitri.shuralyov.com on Bluesky

Control Ultimate Edition key art. Jesse Faden fighting Hiss.

Control Ultimate Edition key art. Jesse Faden fighting Hiss.

Apple takes CONTROL!

You will soon be able to enter the Oldest House on iPhone, iPad, and Apple Vision Pro alongside Mac. Play with a game controller, or tap into the action with touch controls.

Discover a world unknown when Control arrives on these platforms in early 2026.

#ControlRemedy #RMD30

09.10.2025 19:21 β€” πŸ‘ 282    πŸ” 37    πŸ’¬ 14    πŸ“Œ 8
Preview
A Retrospective Survey of 2024/2025 Open Source Supply Chain Compromises Project compromises have common root causes we can mitigate: phishing, control handoff, and unsafe GitHub Actions triggers.

To implement robust mitigations across Geomys, I did a survey of open source project compromises in 2024/2025.

Three root causes dominate: phishing, control handoff, and unsafe GitHub Actions triggers. All three can be systematically avoided.

words.filippo.io/compromise-s...

10.10.2025 14:34 β€” πŸ‘ 43    πŸ” 13    πŸ’¬ 1    πŸ“Œ 2
$ go install golang.org/dl/go1.25.2@latest
$ go1.25.2 download
Downloaded   0.0% (       0 / 58280426 bytes) ...
Downloaded  50.0% (29140213 / 58280426 bytes) ...
Downloaded 100.0% (58280426 / 58280426 bytes)
Unpacking go1.25.2.linux-riscv64.tar.gz ...
Success. You may now run 'go1.25.2'
$ go1.25.2 version
go version go1.25.2 linux/riscv64

$ go install golang.org/dl/go1.25.2@latest $ go1.25.2 download Downloaded 0.0% ( 0 / 58280426 bytes) ... Downloaded 50.0% (29140213 / 58280426 bytes) ... Downloaded 100.0% (58280426 / 58280426 bytes) Unpacking go1.25.2.linux-riscv64.tar.gz ... Success. You may now run 'go1.25.2' $ go1.25.2 version go version go1.25.2 linux/riscv64

πŸ₯³ Go 1.25.2 and 1.24.8 are released!

πŸ“’ Announcement: https://groups.google.com/g/golang-announce/c/4Emdl2iQ_bI/m/qZN5nc-mBgAJ

πŸ“¦ Download: https://go.dev/dl/#go1.25.2

#golang

07.10.2025 18:51 β€” πŸ‘ 51    πŸ” 20    πŸ’¬ 0    πŸ“Œ 0

Go's execution tracer is a woefully underutilized tool. It contains tons of information about what is happening at any given moment that you won't get with a profile.

In addition to showing flight recording capabilities, this post provides a nice example of how to use tracing to diagnose a problem.

26.09.2025 19:32 β€” πŸ‘ 30    πŸ” 9    πŸ’¬ 1    πŸ“Œ 0
Go Developer Survey 2025 Share your feedback about developing software with Go.

Hi folks, it’s survey time! We’d love to learn more about how you use Go and what could be improved. Share your feedback via our annual developer survey at google.qualtrics.com/jfe/form/SV_.... It should take 10 - 20 minutes to complete, and will be open through September 30. Thank you!

#golang

16.09.2025 20:38 β€” πŸ‘ 58    πŸ” 32    πŸ’¬ 0    πŸ“Œ 0

β€œA new experimental Go API for JSON” by Joe Tsai, Daniel MartΓ­, Johan Brandhorst-Satzkorn, Roger Peppe, Chris Hines, and Damien Neil β€” https://go.dev/blog/jsonv2-exp

#golang

09.09.2025 15:17 β€” πŸ‘ 41    πŸ” 11    πŸ’¬ 2    πŸ“Œ 0
$ go install golang.org/dl/go1.25.1@latest
$ go1.25.1 download
Downloaded   0.0% (       0 / 56829270 bytes) ...
Downloaded  50.0% (28414635 / 56829270 bytes) ...
Downloaded 100.0% (56829270 / 56829270 bytes)
Unpacking go1.25.1.netbsd-arm64.tar.gz ...
Success. You may now run 'go1.25.1'
$ go1.25.1 version
go version go1.25.1 netbsd/arm64

$ go install golang.org/dl/go1.25.1@latest $ go1.25.1 download Downloaded 0.0% ( 0 / 56829270 bytes) ... Downloaded 50.0% (28414635 / 56829270 bytes) ... Downloaded 100.0% (56829270 / 56829270 bytes) Unpacking go1.25.1.netbsd-arm64.tar.gz ... Success. You may now run 'go1.25.1' $ go1.25.1 version go version go1.25.1 netbsd/arm64

πŸ• Go 1.25.1 and 1.24.7 are released!

πŸ” Security: Includes a security fix for net/http (CVE-2025-47910).

πŸ—£ Announcement: https://groups.google.com/g/golang-announce/c/PtW9VW21NPs/m/DJhMQ-m5AQAJ

πŸ“¦ Download: https://go.dev/dl/#go1.25.1

#golang

03.09.2025 18:09 β€” πŸ‘ 39    πŸ” 15    πŸ’¬ 1    πŸ“Œ 0
Faster Go Maps With Swiss Tables - Michael Pratt | GopherCon EU 2025
YouTube video by GopherCon Europe Faster Go Maps With Swiss Tables - Michael Pratt | GopherCon EU 2025

My GopherCon EU talk about Swiss Table maps is now available!

youtu.be/aqtIM5AK9t4

01.09.2025 13:39 β€” πŸ‘ 26    πŸ” 9    πŸ’¬ 1    πŸ“Œ 0
Hawaiian gopher shirt pattern.

Hawaiian gopher shirt pattern.

Heading home from #GopherCon 2025 in NYC. As usual, many people asked how to get one of the amazing Go gopher Hawaiian shirts by Renee French. I've posted the details at github.com/rsc/gophersh.... (I know one person who has made pajama pants with the pattern. Socks might be nice too.) Enjoy!

29.08.2025 16:02 β€” πŸ‘ 57    πŸ” 12    πŸ’¬ 1    πŸ“Œ 0
Preview
What's coming in Go 1.25 What's coming in Go 1.25 GopherCon UK, 2025 - Daniel MartΓ­ @mvdan.cc

Here are the slides for my "What's coming to Go 1.25" talk at #GopherConUK!

#golang

14.08.2025 10:52 β€” πŸ‘ 43    πŸ” 16    πŸ’¬ 1    πŸ“Œ 1
$ go install golang.org/dl/go1.25.0@latest
$ go1.25.0 download
Downloaded   0.0% (       0 / 58130695 bytes) ...
Downloaded  50.0% (29065347 / 58130695 bytes) ...
Downloaded 100.0% (58130695 / 58130695 bytes)
Unpacking go1.25.0.freebsd-arm.tar.gz ...
Success. You may now run 'go1.25.0'
$ go1.25.0 version
go version go1.25.0 freebsd/arm

$ go install golang.org/dl/go1.25.0@latest $ go1.25.0 download Downloaded 0.0% ( 0 / 58130695 bytes) ... Downloaded 50.0% (29065347 / 58130695 bytes) ... Downloaded 100.0% (58130695 / 58130695 bytes) Unpacking go1.25.0.freebsd-arm.tar.gz ... Success. You may now run 'go1.25.0' $ go1.25.0 version go version go1.25.0 freebsd/arm

🎊 Go 1.25.0 is released!

πŸ“ Release notes: https://go.dev/doc/go1.25

⬇️ Download: https://go.dev/dl/#go1.25.0

#golang

12.08.2025 21:58 β€” πŸ‘ 194    πŸ” 56    πŸ’¬ 4    πŸ“Œ 11

Congrats! Looking forward to seeing you there!

08.08.2025 04:06 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
$ go install golang.org/dl/go1.25rc3@latest
$ go1.25rc3 download
Downloaded   0.0% (       0 / 58027901 bytes) ...
Downloaded  50.0% (29013950 / 58027901 bytes) ...
Downloaded 100.0% (58027901 / 58027901 bytes)
Unpacking go1.25rc3.netbsd-386.tar.gz ...
Success. You may now run 'go1.25rc3'
$ go1.25rc3 version
go version go1.25rc3 netbsd/386

$ go install golang.org/dl/go1.25rc3@latest $ go1.25rc3 download Downloaded 0.0% ( 0 / 58027901 bytes) ... Downloaded 50.0% (29013950 / 58027901 bytes) ... Downloaded 100.0% (58027901 / 58027901 bytes) Unpacking go1.25rc3.netbsd-386.tar.gz ... Success. You may now run 'go1.25rc3' $ go1.25rc3 version go version go1.25rc3 netbsd/386

🌞 Go 1.25 Release Candidate 3 is released!

πŸ– Run it in dev! Run it in prod! File bugs! https://go.dev/issue/new

πŸ“£ Announcement: https://groups.google.com/g/golang-announce/c/sTNnwCTjr1Y/m/tdIX-dDUAgAJ

πŸ“¦ Download: https://go.dev/dl/#go1.25rc3

#golang

06.08.2025 19:33 β€” πŸ‘ 41    πŸ” 4    πŸ’¬ 0    πŸ“Œ 1

WebXR enhancements are still at the top of my wishlist.

26.07.2025 02:09 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

After that, it'd be other WebXR improvements.

It's possible to access gamepad input from an immersive-vr session, but if I'm not mistaken no way to access external keyboard input (e.g., from a Magic Keyboard that's connected to the AVP).

Also hoping to see immersive-ar support someday.

Thank you!

25.06.2025 02:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
WebXR Samples Sample WebXR pages for testing and reference

I'm mostly interested in Safari 26 on visionOS, so at the top of the list for me *by far* would be WebXR/WebGPU interop.

As the blog post says, "WebGPU supersedes WebGL on [...] visionOS and is preferred for new sites and web apps." I'd really like to use it alongside WebXR, but that seems missing.

25.06.2025 02:38 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1
Preview
NebuLeet - The Next Fest demo is out! - Steam News Try out the first public demo of NebuLeet

NebuLeet demo is released!
Check it out!

#gamedev #indiegame #indiedev #pixelart #ebitengine

store.steampowered.com/news/app/302...

24.05.2025 12:09 β€” πŸ‘ 28    πŸ” 6    πŸ’¬ 1    πŸ“Œ 0
Go 1.25RC1

Go 1.25RC1

πŸŽ‰ Go 1.25 Release Candidate 1 is released!

πŸƒβ€β™€οΈ Run it in dev! Run it in prod! File bugs! go.dev/issue/new

πŸ“’ Announcement: groups.google.com/g/golang-ann...

πŸ“¦ Download: go.dev/dl/#go1.25rc1

11.06.2025 19:13 β€” πŸ‘ 90    πŸ” 28    πŸ’¬ 3    πŸ“Œ 6
Go 1.24.3 and 1.23.9 are released!

Go 1.24.3 and 1.23.9 are released!

πŸ₯³ Go 1.24.3 and 1.23.9 are released!

πŸ”’ Security: Includes a security fix for os (CVE-2025-22873).

πŸ“’ Announcement: groups.google.com/g/golang-ann...

πŸ“¦ Download: go.dev/dl/#go1.24.3

#golang

06.05.2025 19:09 β€” πŸ‘ 68    πŸ” 12    πŸ’¬ 1    πŸ“Œ 0
Preview
runtime: green tea garbage collector · Issue #73581 · golang/go Green Tea 🍡 Garbage Collector Authors: Michael Knyszek, Austin Clements Updated: 2 May 2025 This issue tracks the design and implementation of the Green Tea garbage collector. As of the last update...

Please try it... πŸ™ Instructions here: github.com/golang/go/is...

02.05.2025 18:54 β€” πŸ‘ 17    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
Goodbye core types - Hello Go as we know and love it! - The Go Programming Language Go 1.25 simplifies the language spec by removing the notion of core types

β€œGoodbye core types - Hello Go as we know and love it!” by Robert Griesemer β€” go.dev/blog/coretypes

#golang

26.03.2025 17:11 β€” πŸ‘ 70    πŸ” 12    πŸ’¬ 1    πŸ“Œ 0

This is an amazing practical security tool and you need to know about it and use it.

Safe API for directory traversals.

13.03.2025 00:41 β€” πŸ‘ 97    πŸ” 17    πŸ’¬ 4    πŸ“Œ 0

Thank you for pushing this forward! It's not fun to be constrained to WebGL, so I've been really looking forward to this.

Added support in my small testbed (dmitri.shuralyov.com/projects/Hov...). Had to disable HDR ("TODO(crbug.com/5818595): Support 'rgba16float'") but otherwise it all just worked!

12.03.2025 01:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Experimenting with WebGPU in WebXR For the last few months I’ve been working on implementing experimental support for WebGPU/WebXR integration in Chrome, and now it’s ready for developers to try on Windows and Android!

WebGPU/WebXR integration is ready for developers to start testing in Chrome canary! Available on Windows and Android with a couple of small example pages to get you started.

Please give it a try, file bugs, and give us feedback!

#WebGPU #WebXR

03.03.2025 21:09 β€” πŸ‘ 56    πŸ” 13    πŸ’¬ 4    πŸ“Œ 3
$ go install golang.org/dl/go1.24.0@latest
$ go1.24.0 download
Downloaded   0.0% (       0 / 74636413 bytes) ...
Downloaded  50.0% (37318206 / 74636413 bytes) ...
Downloaded 100.0% (74636413 / 74636413 bytes)
Unpacking go1.24.0.linux-arm64.tar.gz ...
Success. You may now run 'go1.24.0'
$ go1.24.0 version
go version go1.24.0 linux/arm64

$ go install golang.org/dl/go1.24.0@latest $ go1.24.0 download Downloaded 0.0% ( 0 / 74636413 bytes) ... Downloaded 50.0% (37318206 / 74636413 bytes) ... Downloaded 100.0% (74636413 / 74636413 bytes) Unpacking go1.24.0.linux-arm64.tar.gz ... Success. You may now run 'go1.24.0' $ go1.24.0 version go version go1.24.0 linux/arm64

πŸ₯³ Go 1.24.0 is released!

πŸ“° Release notes: go.dev/doc/go1.24

πŸ“¦ Download: go.dev/dl/#go1.24.0

#golang

11.02.2025 18:52 β€” πŸ‘ 284    πŸ” 96    πŸ’¬ 3    πŸ“Œ 10
Post image

πŸŽ‰ Go 1.24 Release Candidate 3 is released!

πŸ” Security: Includes security fixes for the go tool and the crypto/elliptic package.

πŸ– Run it in dev! Run it in prod! File bugs! go.dev/issue/new

πŸ—£ Announcement: groups.google.com/g/golang-ann...

🚚 Download: go.dev/dl/#go1.24rc3

05.02.2025 21:16 β€” πŸ‘ 79    πŸ” 16    πŸ’¬ 1    πŸ“Œ 2
Preview
Errors caused by internal HTTP client's Do() don't have client_secret redacted. Β· Issue #522 Β· google/go-github go-github tries to redact client_secret URL query parameter value from errors that it returns, to prevent leaking sensitive information in case they errors are exposed to users. See: go-github/gith...

When working on my personal website, I initially opted to always display detailed error messages even to non-admin users. I heard it was supposed to be a bad idea, but I couldn’t think of a _concrete_ reason for why, so I tried it…

…and uncovered a bug in a dependency: github.com/google/go-gi....

04.02.2025 05:58 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
$ go install golang.org/dl/go1.24rc2@latest
$ go1.24rc2 download
Downloaded 0.0% ( 0 / 77743067 bytes) ...
Downloaded 50.0% (38871534 / 77743067 bytes) ...
Downloaded 100.0% (77743067 / 77743067 bytes)
Unpacking go1.24rc2.linux-amd64.tar.gz ...
Success. You may now run 'go1.24rc2'
$ go1.24rc2 version
go version go1.24rc2 linux/amd64

$ go install golang.org/dl/go1.24rc2@latest $ go1.24rc2 download Downloaded 0.0% ( 0 / 77743067 bytes) ... Downloaded 50.0% (38871534 / 77743067 bytes) ... Downloaded 100.0% (77743067 / 77743067 bytes) Unpacking go1.24rc2.linux-amd64.tar.gz ... Success. You may now run 'go1.24rc2' $ go1.24rc2 version go version go1.24rc2 linux/amd64

🌟 Go 1.24 Release Candidate 2 is released!

πŸ” Security: Includes security fixes for the go tool and the crypto/x509 and net/http packages.

πŸƒβ€β™€οΈ Run it in dev! Run it in prod! File bugs! go.dev/issue/new

πŸ“£ Announcement: groups.google.com/g/golang-ann...

⬇️ Download: go.dev/dl/#go1.24rc2

16.01.2025 22:12 β€” πŸ‘ 58    πŸ” 19    πŸ’¬ 1    πŸ“Œ 1

Which is why I can’t wait for github.com/immersive-we.... Thanks for your work on it!

11.01.2025 14:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

CRT simulator GPU shader coming December 24, 2024 on github & shadertoy!
Genesis of CRT-simulation replacements in future, when used CRT tubes are near-extinct.
Tomorrow's 240Hz, 480Hz & 1000Hz OLEDs can optionally faithfully simulate CRT electron beam for 60fps content.

23.12.2024 23:53 β€” πŸ‘ 573    πŸ” 143    πŸ’¬ 21    πŸ“Œ 18

@dmitri.shuralyov.com is following 1 prominent accounts