Today, I am announcing mach-glfw: Ziggified GLFW bindings with 100% API coverage, zero-fuss installation, cross compilation, and more. Building Mach for everyone If Mach engine only benefits people interested in using that engine, and not the broader Zig (and even gamedev) community I would consider that a total failure. Whether you’re interested in using all of Mach, just some of it with your own engine / project, or just the tools/ideas we develop in the future (with Unity, Unreal, etc.
In the coming months, we’ll begin to have truly cross-platform low-level graphics, with the ability to cross compile GPU-accelerated applications written in Zig from any OS and deploy to desktop, mobile, and (in the future) web. Mach engine I’ve been working on Mach Engine for about 4 months now, although it as a project is many years in the making, and I believe in the next 4-6 months we’ll have completion of the first key milestone: truly cross platform graphics and seamless cross compilation.
I write code 100 hours/week. I’ve done so for the last 2 years and, excluding a life-altering event (illness?) I probably won’t stop. The average week I typically spend around: 48h/week @ day job, Sourcegraph, building developer tools 55h/week coding in Zig 7h/day sleeping 9h/week caring for self, chores, etc. 5h/week games or chatting with friends Sometimes coding drops to around 80h/week if I feel I need more sleep, time for something else, or if I’m just not feeling it.
A little story about how writing a domain-specific compression algorithm in a few days can sometimes yield big benefits, why it’s sometimes worth giving it a shot, and how to tell when you should try. Note: this is about Unicode spec data files, not general purpose text compression. Background Problem Investigation Binary encoding? Differential encoding/compression? Go implementation Zig implementation Differential encoding state machine A stream of op codes Iteratively finding the most lucrative opcodes A stream of opcodes for a state machine: a natural progression from a binary format?
Today, I increased my monthly donation to Zig to $200 a month. Before Zig, I have not contributed financially to any open source project. Before I can explain why I am so extremely excited about the Zig programming language and its community, I need to explain where I come from. I grew up playing Linux games like Mania Drive It wasn’t long before I found that the Mania Drive game engine was open-source.
In this article we will be exploring what parser combinators are, what runtime parser generation is - why they’re useful, and then walking through a Zig implementation of them. What are parser combinators? Why are parser combinators useful? Going deeper: runtime parser generation A note about traditional regex engines Implementing the Parser interface Compile-time vs. run-time The parser interface Zig generics are provided via type parameters Zig runtime interfaces Type parameters Errors the Parser interface can produce Our first Parser What actually is a “Reader”?
In this article, we share empirical measurements from our experiments in using Postgres to index and search over 10,000 top GitHub repositories using pg_trgm on only a Macbook. This is a follow up to “Postgres Trigram search learnings”, in which we shared several learnings and beliefs about trying to use Postgres Trigram indexes as an alterative to Google’s Zoekt (“Fast trigram based code search”). We share our results, as well as the exact steps we performed, scripts, and lists of the top 20,000 repositories by stars/language on GitHub so you can reproduce the results yourself should you desire.
In this article I talk about learnings I have from trying to use pg_trgm as the backend for a search engine, Tridex, which aims to be a competitor to Google’s Zoekt (“Fast trigram based code search”) Background I work @ Sourcegraph, which provides code search, code intelligence, and other developer tooling. (If you’re one of my Sourcegraph co-workers, hey! Hexops is the name of my GitHub organization for after-hours experiments and what I hope will one day in the distant future become a successful game development company.