RSSAmplifier

Blog

Matthew Bauer’s Blog

Matthew Bauer’s Blog

matthewbauer.usRSS feed ↗16 posts

Latest posts

Owning Your Home’s Utilities

Ideally, utilities, such as water, electricity and gas, should be owned by its customers and not for-profit corporations. That would mean any money left over at the end of the year are passed on as future savings to ratepayers. In reality, this is not the case, and most Americans have at least one utility with for-profit ownership. What’s interesting, however, is that these privately owned…

Announcing Nixiosk

Today I’m announcing a project I’ve been working on for the last few weeks. I’m calling it Nixiosk which is kind of a smashing together of the words NixOS and Kiosk. The idea is to have an easy way to make locked down, declarative systems My main application of this is my two Raspberry Pi systems that I own. Quite a few people have installed NixOS on these systems, but usually they are starting…

All the versions with Nix

1. Background In Channel Changing with Nix , I described how to move between channels in Nix expressions. This provides an easy way to work with multiple versions of Nixpkgs. I was reminded of this post after seeing a comment by jolmg on Hacker News. The comment suggested we should have a way to use multiple versions of packages seamlessly together. It suggested that we should use commits to…

Nixpkgs macOS Stdenv Updates

Over the past couple of months, I have been working on updating the macOS stdenv in Nixpkgs. This has significant impact on users of Nix/Nixpkgs on macOS. So, I want to explain what’s being updated, what the benefits are, and how we can minimize breakages. 1. macOS/Darwin stdenv changes First, to summarize the changes that impact stdenv and the Darwin infrastructure. The PR is available at…

Static Nix: a command-line swiss army knife

Nix is an extremely useful package manager. But, not all systems have it installed. Without root priveleges, you cannot create the /nix directory required for it to work. With static linking, and some new features added in Nix 2.0, you can fairly easily use the Nix package manager in these unpriveleged context 1 . To make this even easier, I am publishing prebuilt a x86_64 binary on my personal…

Call for proofreaders and beta testers for 19.03

This was originally published on Discourse . I am putting it here for posterity reasons. We get lots of contributors in Nixpkgs and NixOS who modify our source code. They are the most common type of contribution we receive. But, there is actually a great need for other types of contributions that don't involve programming at all! For the benefit of new users, I am going to outline how you can…

Subjective ranking of build systems

1. My subjective ranking of build systems Very few of us are happy with our choices of build systems. There are a lot out there and none feel quite right to many people. I wanted to offer my personal opinions on build systems. Every build system is “bad” in its own way. But some are much worse than others. As a maintainer for Nixpkgs, we have to deal with . I’ve avoided build systems that are…

Beginner’s guide to cross compilation in Nixpkgs

1. What is cross compilation? First, compilation refers to converting human-readable source code into computer-readable object code. Usually the computer you are building the code for is the same as the computer you are running on 1 . In cross compilation, however, that is not the case. We can build code for any computer that our compiler supports! Cross-compilation is not a new idea at all. GCC…

Channel Changing with Nix

1. Introduction to channels One of the many underappreciated feature of Nix is its ability to travel back in time. Functional dependencies mean that you can easily pull in old releases of NixOS & Nixpkgs without changing your environment at all! It’s surprisingly easy in Nix 2.0 with its support for Import From Derivation. First, I will provide some code to get us started. This Nix script is what…

2018 Summer

Quick post to annouce summer plans. I have accepted a summer internship position at Obsidian Systems in the greatest city in the world . Very excited to be working with a team of really smart people.

66% of Nixpkgs are up-to-date

Just wanted to congratulate everyone for all of the work in keeping Nixpkgs up-to-date! Repology has just updated our stats and we have shown significant improvement. 66% of nixpkgs-unstable packages are up-to-date, with a total of 6112 up-to-date packages 1 . Nixpkgs is slowly growing to match package sets that come in many of the big Linux distros. We now have more up-to-date packages than…

nix-buffer: nix-shell in Emacs

Shea Levy has a wonderful package out for users of Nix and Emacs. It’s called nix-buffer and it greatly improves working on Nix stuff in Emacs. To try it just get it from MELPA by running M-x package-install<RET>nix-buffer . To use it in a project you need to create a new file in your project directory called dir-locals.nix . It works a lot like .dir-locals.el but it allows you to evaluate Nix…

Why Nix?

THIS IS A WORK IN PROGRESS ESSAY To someone new to it, Nix may not stand out as a package manager. We’re all used to how the average package manager works. You expect it to be able to install and uninstall apps and services and then mostly get out of the way. With that in mind, you look for ease-of-use, community support, and number of packages in your package manager. These are all important in…

Reproducible résumés

Recently, ‘reproducible’ papers have appeared in Academia. The idea is to make all of a paper’s data and code openly available so that readers can reproduce its findings. For software-heavy papers, it makes perfect sense to include code in papers because the code is often as important as the paper’s text. Outside of Academia, there’s not as much interest in this idea of reproducibility . That’s…

bauer: an Emacs+Nix IDE

Note: the updated version of this is available at https://matthewbauer.us/bauer/ I’m publishing my IDE as a blog post. It’s all written in Org Babel. This file generates an Emacs configuration. It can be considered an ‘ Emacs + Nix ’ IDE. That is, the Emacs configuration is integrated with hardcoded Nix store paths. This provides a kind of functional Emacs configuration. Usage Demo If you already…

Nix and Org

This is a guide on getting Org to work with Nix. Specifically, I want to show how you can write Nix expressions within an Org document. This might not seem useful at first, but I think by the end of this guide it will become clear how powerful the combination of these tools are. First, some background on what these tools are for those unfamiliar. Org was started in 2003 as an extension, or ‘mode’,…