tl;dr; you can use the following invocation to cache your nix-shell
$ nix-store --query --references $(nix-instantiate shell.nix) | \ xargs nix-store --realise | \ xargs nix-store --query --requisites | \ cachix push your_cache
I have been hooked on Nix as a way to introduce reproducible development environments. However I had to introduce a shell.nix file for a project that relied on a very old version of nodejs.
Surprisingly for Java’s popularity, the Nix Java ecosystem is pretty immature & fragmented. There are several community driven solutions for integrating Maven (Java’s package manager) with Nix all which have their own pitfalls.
This post will go through a single idiom on how to package a Maven project in Nix that at the very least does not rely on 3rd party support: Double invoking Maven
The Nix wiki is pretty great for a lot of technical content however it sometimes fails to gently walk users through how something works.
I’ve been doing some Ruby work as part of my day-to-day job and wanted to better understand Nix’s approach to Ruby.
If you just want a very easy-to-use binary cache, consider using cachix.
Nix is an amazing tool, however the learning curve can be
very high. The online wiki has a lot of great documentation however I find it is often very geared towards NixOS specifically.
I wanted to better understand how to setup my own binary cache.
This is a public love letter to redo & the joy it brings building software.
I remember when I first finished The Little Schemer and wrote my first semi useful “JSON Diff” program. I was exalted. I was elated. I was ecstatic.
There is something magical when you learn Lisp that is really tough to convey over a blog post or short article. One must try it, to grok it.
I have not professionally used Lisp much since however it’s been immensely impactful in the way I think about & construct software.
Redo is this for build systems.
You’ve likely heard everyone at the office or online proclaim that “K8s has eaten everyone’s lunch!” or that “everything should be in a docker container!”.
While there are advantages to the above methodologies; it’s very easy to have cargo-culted their adoption; especially for Kubernetes (K8s). I find the biggest problem however that there is a fundamental lacking of what is a *container.
There s a 1000 other posts online explaining containers and I’m adding my own to the pool. Perhaps this 1001th explanation will do so in such a way that it groks.
This is a republishing of a e-mail I sent out to xdp-newbies mailing list which you can find here originally published on Wed, 30 Oct 2019
This is my attempt of a continuation of David Miller’s prior e-mail bpf.h and you….
I was curious about how ebpf filters are wired and work. The heavy use of C macros makes the source code difficult for me to comprehend.
Maybe there’s an online pre-processed version of the Linux kernel?
I’m hoping others may find this exploratory-dive insightful – hopefully, it’s accurate enough.
A common task is to have a set of tasks; each with their declared dependencies. This setup exists in a variety of build tools such as make or rake
I’ve moved my blog from “Small Thoughts” blog.fzakaria.com, which was hosted on Wordpress & S3, one using Jekyll via Github Pages.
Why Github Pages and not S3 still? I wanted to see what all the fuss was about & it sounded simpler to set up the TLS certificates.
You may notice that the theme of this blog is very similar to that of Drew Devault’s; in fact, it is based on his published theme.
I admired on his blog his campaign to get others blogging that I revived my forgotten blog. I enjoyed the minimalism of his blog and embraced it. The site uses very minimal fancy Jekyll plugins, and you can find the source here.
I’m still a novice to Jekyll & blogging in general; feel empowered to reach out to teach me or discuss.