I wanted to document a small pattern I use to avoid repetition in error handling in Go while still providing context as an error climbs up the call stack. I first became aware of this pattern back in 2018 while the Go team was discussing error handling proposals . I’m not exactly sure who first had this idea; the earliest example of it I can find is in a comment on a gist , but I’m…
I’m attending GopherCon in New York City this week. I will be giving a lightning talk on Wednesday August 27 based on my blog post about writing a Lua interpreter in Go . If you’re going to be there, come and say hi! For accessibility, I’m publishing the slides ahead of time and including a full transcript of the talk.
I recently needed to build a custom Lua interpreter in Go . The exact reasons aren’t important for this blog post, but neither the reference implementation — which I will be referring to as “PUC‑Rio Lua” — nor the other open source Go Lua intepreters I could find were a good fit for my needs. Building a Lua interpreter ended up being a rather enjoyable months-long side quest.…
Hey everyone! Happy (US) Pride Month! 🏳️🌈🏳️⚧️ I’m excited to announce the first beta release of zb , the build tool I’ve been working on for a year now. 🎉 I’ve been hard at work writing a Lua interpreter in Go from scratch, bootstrapping a consistent userspace for Linux and macOS, writing documentation, and solving esoteric issues with executable code signatures.…
I have decided to develop zb , my experiment in user-friendly reproducible builds, into a full-fledged build tool. Although my previous blog post stated that I would not be developing this tool to production-readiness, a few things changed my mind: My personal projects need a dependency management solution, and I am loath to continue investing in Nix. I believe that many projects can benefit from…
Today I’m making a broadly visible change to live more authentically and joyfully. My name is Roxy Light. My pronouns are she/her or they/them . You may have known me by a different name, but I always have been — and always will be — zombiezen.
In my previous blog post , I talked about some of the shortcomings of Nix as a project and what I wish to see exist in its stead. Since I published the blog post, there have been some promising developments: a constitutional assembly has formed , a fork of the Nix interpreter has arisen, and an alternative Nixpkgs ecosystem is beginning to form. I am enheartened that Nix has a potential future,…
(This is a long post. In the words of Blaise Pascal, “I have made this longer than usual because I have not had time to make it shorter.”) I see the Nix project to have passed a critical moment. I think the Nix project has made great strides in solving some very hard problems, but my fear is that due to mismanagement, Nix will not succeed. In this post, I hope to share my perspective…
I’m happy to announce a project I’ve been working on for the last month: pql . pql is a pipelined query language inspired by the syntax of Microsoft’s KQL and Splunk’s Search Processing Language that I developed in collaboration with the fine folks at RunReveal . pql takes queries like: logs | where eventName != '' | summarize AllEventNames=groupUniqArray(eventName) by…
rsync is a wonderfully useful utility for copying files both locally and between machines. It makes a reasonable effort to copy only files that have changed, which can save a tremendous amount of time in many scenarios. However, I’ve always been a bit daunted by its plethora of command-line options, and would always resort to its man page for every invocation. Thus, it would never stick in…