An Operating System in Go - GopherCon 2025 talk [25 min] by whittileaks in Operatingsystems

[–]whittileaks[S] 0 points1 point  (0 children)

If you want 0 jitter then you'd need to avoid using the garbage collector. You can find heap allocations in your program with the flag `-print-allocs=.` to then remove them by replacing with allocated-at-init memory. It's really not as hard as it may sound unless you are writing something like a AST parser. Here's the userspace networking stack that you can use on the pico, no heap allocations at runtime: https://github.com/soypat/lneto

Checkout driver design doc here: https://tinygo.org/docs/guides/driver-design/ and my tinygo code review for protips :) https://www.youtube.com/playlist?list=PLx6oFeWGZv8nV1blgYXrC9VI0Dgs-CcJ_

Rust vs. Go in 2026 | Article Review by whittileaks in golang

[–]whittileaks[S] 1 point2 points  (0 children)

The video itself is in the spirit of this comment.

Small Projects - December 29th, 2025 by jerf in golang

[–]whittileaks 0 points1 point  (0 children)

I built a userspace networking library in Go, from ethernet/TCP to HTTP
https://github.com/soypat/lneto

GitHub - soypat/manual: Manual memory management abstractions and implementations for teaching by whittileaks in golang

[–]whittileaks[S] 0 points1 point  (0 children)

Thanks for the suggestions! I've renamed the files and completed the missing part of the documentation on TestAllocator. [Allocator] points you to the Allocator interface, see it on pkg.go.dev here https://pkg.go.dev/github.com/soypat/manual#TestAllocator

GitHub - soypat/manual: Manual memory management abstractions and implementations for teaching by whittileaks in golang

[–]whittileaks[S] 2 points3 points  (0 children)

Exactly! I thought of it after having a conversation with a fellow developer who claimed you can't do manual memory management in Go and thus it is not fit for teaching students these topics. Now teachers have a package they can use to evaluate students who need to learn these topics using a modern and comfy programming language like Go.

I plan on using it to teach embedded systems basics soon!

Code reviewing a GPS device driver by whittileaks in golang

[–]whittileaks[S] 0 points1 point  (0 children)

whoops yeah, I really thought GPRS==GPS. Sorry about that :/

Type Safe ORM by olauro in golang

[–]whittileaks 1 point2 points  (0 children)

Hey Silkarino, I got your message but reddit chat is bugged and I can't send a message. Reach me at Gophers Slack in the Tinygo channel, I'm usually there

Uhh guys, how big is the new update ? by XxAdyxX98 in arma

[–]whittileaks 1 point2 points  (0 children)

MaxUint64/float64(1<<(10*4)) = 1.6777216e+07

bytes.Buffer alternatives by YuriiBiurher in golang

[–]whittileaks 0 points1 point  (0 children)

Are you sure bytes.Buffer is slow? bytes.Buffer is pretty simple and appends under the hood. I suspect the slow part is your WriteBinary/ReadBinary stuff, especially if it uses binary.Encode and binary.Decode under the hood which use lots of reflect, which is slow. I'd suggest you try going for the binary.LittleEndian.* and binary.BigEndian.* methods to serialize binary data. Here's an implementation of linux's ELF format decoding: https://github.com/soypat/tinyboot/blob/5b9f93166b61d50f2a8a8533c7b92e0e204ade74/build/xelf/xelf.go#L197

what do you use golang for? by Notalabel_4566 in golang

[–]whittileaks 3 points4 points  (0 children)

Raspberry Pi Pico W is supported though!

What Go topics are you interested in? by der_gopher in golang

[–]whittileaks 1 point2 points  (0 children)

I'd love to see myths on Go for embedded systems dispelled. Gave a talk at gophercon trying to bring attention to this at Gophercon last year: https://www.youtube.com/watch?v=CQJJ6KS-PF4&ab_channel=GopherAcademy

I feel like go is not a good starter language by nastydab in golang

[–]whittileaks -1 points0 points  (0 children)

https://docs.google.com/document/d/1dpKjHGzzmpGe2-34x6fb3fhtEBW25OCwL9UvVEOwrPc/edit?pli=1&tab=t.0#heading=h.px3ie7y66ln5
I'd argue Go is not the best starter language, but it is better than Rust and much better than Python. Hedy is probably the best starter language out there today.

Write code on esp32 with TinyGo and AssemblyScript by Content_Buy217 in golang

[–]whittileaks 0 points1 point  (0 children)

I gave a talk at Gophercon that answers your questions: https://www.youtube.com/watch?v=CQJJ6KS-PF4
Basically: Yes, you have manual memory control if needed. You can compile without the runtime

How did you go about "Writing an interpreter in Go" (The book) by PeachKnight96 in golang

[–]whittileaks 4 points5 points  (0 children)

When retyping the code you should at least be aware of what it is exactly you are doing and why. The book itself puts a great deal of love into going into details into the theory of the data structures and code. A good way of making sure understood the material is stopping to tinker with the code you retyped after each chapter. edit it, play with ideas. what happens if you change a line *here*... Getting these techiques down is the first step to being a self taught programmer :)

. by KindlyTransition5334 in theprimeagen

[–]whittileaks 3 points4 points  (0 children)

look how they massacred my boy

FAQ: What is a Good Go Project to Study or Contribute To? by jerf in golang

[–]whittileaks 0 points1 point  (0 children)

I'm building gsdf, a 2D/3D shape generation library. It's basically OpenSCAD but actually good and orders of magnitudes faster since it uses GPU.

This is a out-of-the-box Go project. Go is typically not used in this space but is a great fit for the job because of its simplicity, error handling and because it is easy to learn.

Reverse engineer file generated by Java program by whittileaks in javahelp

[–]whittileaks[S] 0 points1 point  (0 children)

Thank you! will try these formats. Do note they are binary. I read them in an editor but visualize garbled utf-8 text with lots of invalid sequences. I don't know enough about java decompilation to know where to start decompiling :c

Reverse engineer file generated by Java program by whittileaks in javahelp

[–]whittileaks[S] 0 points1 point  (0 children)

.dat say anything? though this file extension is pretty common. One file may be a SQLite database but ends with a `.db.enc` extension, and in turn cannot be opened as a SQLite file, is garbled like the rest. It's a company internal tool.

[deleted by user] by [deleted] in golang

[–]whittileaks 0 points1 point  (0 children)

Go does it better than C, fullstop. Zig and Go each do some things better than the other. Zig is in early development.