Long conversations with clever Nixers
The podcast Full Time Nix is created by Shahar "Dawn" Or. The podcast and the artwork on this page are embedded on this page using the public podcast feed (RSS).
https://nix.dev/manual/nix/2.28/release-notes/rl-2.27
https://nix.dev/manual/nix/2.28/release-notes/rl-2.28
https://snix.dev/
https://github.com/NixOS/rfcs/blob/master/rfcs/0132-meson-builds-nix.md
https://fzakaria.com/2025/03/10/an-early-look-at-nix-dynamic-derivations
https://fzakaria.com/2025/03/11/nix-dynamic-derivations-a-practical-application
https://fzakaria.com/2025/03/12/nix-dynamic-derivations-a-lang2nix-practicum
https://discourse.nixos.org/t/nix-ninja-ninja-compatible-incremental-build-system-for-nix/62594?u=mightyiam
https://mesonbuild.com/
https://cmake.org/
https://ninja-build.org/
https://bazel.build/
https://buck2.build/
Chapters (generated)
00:00 Introduction
01:26 Nix File Formatting
02:38 Packaging Improvements and Granularity
05:27 Development Shell and Build Process
06:32 Error Message Improvements
09:21 Hydra Code Simplification
13:00 Bug Fixes and Maintenance
17:25 New Features in Flakes
21:32 Git LFS Support and Fetching Mechanisms
24:09 Change Root Store Enhancements
28:10 --out-link flag for Prefetch Command
30:13 Understanding File Descriptors and Process Management
31:59 BLAKE3 Hash Support and Its Implications
34:03 Release 2.27.0: Infrastructure Overhaul and Changes
35:47 C++ API Rework and Its Impact
38:25 Stability and Breaking Changes in Nix
42:34 Downstream Project Involvement and Ecosystem Participation
50:03 C API Development and Global Variables
52:32 Future Directions: Dynamic Derivations and Ecosystem Growth
Summary (generated)
In this conversation, Shahar "Dawn" Or interviews Farid Zakaria, a software engineer and PhD candidate, about his experiences with Nix, a powerful tool for reproducible software development. Farid shares his journey of learning Nix, its infectious nature, and its application in enterprise environments. He discusses the concept of innovation tokens, the challenges of teaching Nix, and how it has influenced his PhD research. The conversation also delves into dynamic linking, performance improvements, and the potential of Nix as a research platform. In this conversation, Farid Zakaria discusses the challenges and innovations in software performance, particularly focusing on application start-up times and the implications of dynamic versus static linking. He introduces the concept of stable linking, which aims to enhance software responsiveness and security while addressing historical decisions in software development. The discussion also touches on the potential for broader applications beyond C/C++, the importance of auditing in software, and the cultural shifts needed in the software development community to adopt these innovations.
Takeaways (generated)
Nix empowers reproducible software development.
The journey to learning Nix can be challenging but rewarding.
Nix is increasingly being adopted in enterprise environments.
Innovation tokens are crucial for evaluating new technologies.
Teaching Nix effectively requires understanding its practical applications.
Nix can significantly improve development environments.
Dynamic linking presents unique challenges that Nix can address.
Nix allows for performance optimizations in software applications.
Nix serves as a valuable research platform for PhD candidates.
The community around Nix is diverse and supportive.
Application start-up times can be significantly improved with optimization techniques.
Reducing the number of symbols in applications can lead to faster performance.
Stable linking offers a way to enhance software security and performance.
Dynamic linking has historical roots in resource constraints and code reuse.
The future of software may see faster responsiveness across all applications.
Auditing software for compatibility and security is crucial in modern development.
Compiler innovations can lead to substantial speed improvements in software builds.
C and C++ are not the only languages that can benefit from these linking techniques.
Cultural shifts in the software community are necessary for adopting new practices.
Practical implementation of stable linking could revolutionize how software is built and run.
Chapters (generated)
00:00 Introduction and Background
02:14 Exploring Nix and Its Community
05:00 The Transition from Hobbyist to Enterprise
06:47 Nix's Infectious Nature and Deployment Challenges
09:18 The Appeal of Nix for Development Environments
11:48 Innovation Tokens and Nix's Value Proposition
13:57 Bringing Nix to Looker and Google
15:39 Teaching Nix and Overcoming Adoption Hurdles
18:33 The Role of Nix in PhD Research
21:04 Dynamic Linking and Performance Optimization
23:41 Benchmarking and Results
26:19 Conclusion and Future Directions
48:14 The Impact of Speed on Software Development
55:34 The Future of Dynamic Linking and Its Implications
58:49 Stable Linking: A New Paradigm
01:05:04 Revisiting the Rationale Behind Dynamic Linking
01:11:15 Implementing Stable Linking in Nixpkgs
https://www.confluent.io/
https://kafka.apache.org/
https://bazel.build/
https://www.ucsc.edu/
https://fulltimenix.com/episodes/domen-kozar
https://fulltimenix.com/episodes/jonathan-ringer
https://edolstra.github.io/pubs/phd-thesis.pdf
https://cloud.google.com/looker
https://www.youtube.com/watch?v=HGEY6ABQUBw
https://www.youtube.com/watch?v=GkgsFbwYdYA
https://www.youtube.com/watch?v=HZKFe4mCkr4
https://www.youtube.com/watch?v=gQstiX7H8MQ&t=183s
https://spack.io/
https://www.debian.org/
https://fedoraproject.org/
“apt-get mindset”
https://brew.sh/
https://nixos.org/manual/nixpkgs/unstable/#haskell
https://nixos.org/manual/nixpkgs/unstable/#python
https://man7.org/linux/man-pages/man8/ld.so.8.html
https://github.com/nix-community/nix-ld
https://supercomputing.org/
https://github.com/fzakaria/shrinkwrap
https://github.com/NixOS/nixpkgs/pull/207061
https://arxiv.org/abs/2501.06716
How To Write Shared Libraries by Ulrich Drepper
https://en.wikipedia.org/wiki/Address_space_layout_randomization
https://en.wikipedia.org/wiki/Global_Offset_Table
https://clang.llvm.org/
https://www.openoffice.org/
https://en.wikipedia.org/wiki/Network_File_System
https://en.wikipedia.org/wiki/Epyc
https://en.wikipedia.org/wiki/NVM_Express
https://musl.libc.org/
https://www.alpinelinux.org/
https://cve.mitre.org/
https://github.com/openssl/openssl#overview
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
https://nixos.org/manual/nixpkgs/unstable/#setup-hook-autopatchelfhook
https://guix.gnu.org/
https://nix.dev/manual/nix/2.26/store/types/
https://www.cachix.org/
https://nix.dev/manual/nix/2.26/development/experimental-features.html#xp-feature-dynamic-derivations
https://nix.dev/manual/nix/2.26/development/experimental-features.html#xp-feature-ca-derivations
https://lix.systems/
https://tvix.dev/
https://github.com/ngi-nix/summer-of-nix
https://nixos.org/community/teams/nix/
https://github.com/Ericson2314
https://www.haskell.org/
https://slurm.schedmd.com/
Generated chapters:
00:00 Introduction to Nix and Remote Building
02:38 Understanding Nix Daemon and Communication Protocols
05:01 Exploring Derivations and Their Role in Nix
07:26 Setting Up Remote Builders in Nix
09:48 Remote Building Process and Configuration
12:08 Remote Store vs Remote Builder Features
14:21 Managing Build Outputs and Dependencies
16:45 Optimizing Remote Builds and Scheduling
19:28 Conclusion and Future Improvements
24:16 Understanding Remote Store Features
24:43 Continuous Integration (CI) Workflows
26:37 Leveraging Remote Builders in CI
29:20 Exploring Nix Store Components
35:26 The Role of Substitutes in Nix
40:48 Introducing nixbuild.net: A Solution for Nix Builds
50:15 The Power of Concurrency in Build Services
54:11 Choosing nixbuild.net for Efficient Builds
55:17 Understanding Latency and On-Site Options
59:29 Hardware and Architectures for Nix Builds
01:01:37 When to Consider nixbuild.net
01:03:49 Managing Compatibility with Nix Versions
01:06:22 The Nix Community and Company Dynamics
01:07:59 Contributions to the Open Source Ecosystem
01:16:28 Internal Stack and Resource Management
01:21:05 Final Thoughts and Future Directions
https://opensource.apple.com/releases/
https://en.wikipedia.org/wiki/NeXTSTEP
https://www.opengroup.org/openbrand/register/
https://en.wikipedia.org/wiki/Property_list
https://repology.org/repository/nix_unstable
https://nixos.org/manual/nixpkgs/unstable/#chap-stdenv
https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals
Tracking issue for Darwin stdenv LLVM update:
https://github.com/NixOS/nixpkgs/issues/234710
https://en.wikipedia.org/wiki/Interface_Builder
https://developer.apple.com/metal/
https://developer.apple.com/xcode/
https://github.com/facebookarchive/xcbuild
https://nixos.org/manual/nixpkgs/unstable/#deploying-a-proxy-component-wrapper-exposing-xcode
MacVim in nixpkgs:
https://github.com/NixOS/nixpkgs/blob/50784a2835c150d6055861a5ad703a57b8070cbb/pkgs/applications/editors/vim/macvim.nix
https://github.com/orgs/NixOS/teams/darwin-core
https://github.com/reckenrode
https://github.com/emilazy
https://github.com/toonn
PR establishing the Darwin team:
https://github.com/NixOS/nixpkgs/pull/348183
https://developer.apple.com/documentation/corefoundation
when Apple implemented this hardening, before it just happened to work. So, and this actually affected Nix because Nix uses the AWS C++ SDK and that stopped buildingmacOS 15 Sequoia clobbers _nixbld1-4 users:
https://github.com/NixOS/nix/issues/10892
https://github.com/DeterminateSystems/nix-installer
https://github.com/LnL7/nix-darwin
Fixing waifu2x-converter-cpp on Darwin:
https://github.com/NixOS/nixpkgs/pull/135725
https://github.com/KhronosGroup/MoltenVK
Last year, Connor Baker created a draft PR to add the missing SDK.Darwin SDK PR (has links to my PRs fixing issues):
https://github.com/NixOS/nixpkgs/pull/346043
Discourse post with the SDK update announcement:
https://discourse.nixos.org/t/the-darwin-sdks-have-been-updated/55295
https://github.com/apple-oss-distributions
https://github.com/apple-oss-distributions/dyld
Note that the source for ld-prime is actually removed from the distribution. I’d package it if it were there, but it’s not.https://github.com/LnL7/nix-darwin
https://github.com/nix-community/home-manager
Another call for Darwin maintainers:
https://github.com/NixOS/nixpkgs/issues/323144
https://github.com/NixOS/rfcs/pull/112
Generated chapters:
00:00 Introduct...
https://github.com/NixOS/nix/releases/tag/2.24.11
https://github.com/NixOS/nix/releases/tag/2.25.4
https://github.com/NixOS/nix/releases/tag/2.24.12
https://github.com/NixOS/nix/releases/tag/2.26.0
https://github.com/NixOS/nix/releases/tag/2.26.1
https://github.com/NixOS/nix/issues/6316
https://github.com/NixOS/nixpkgs/commits?author=GaetanLepage
https://github.com/nix-community/nixvim
https://ensimag.grenoble-inp.fr/en
https://github.com/nix-community/nixvim/commits?author=traxys
https://nixos.org/manual/nixpkgs/unstable/#python
https://nix.dev/guides/recipes/python-environment.html
https://wiki.nixos.org/wiki/Python
https://wiki.nixos.org/wiki/JAX
https://github.com/NixOS/nixpkgs/tree/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/jax
https://wiki.nixos.org/wiki/Tensorflow
https://github.com/NixOS/nixpkgs/blob/00c24cc9cabab1bb8828311a670242ac80dd2ac5/pkgs/development/python-modules/tensorflow
https://github.com/NixOS/nixpkgs/issues/157398
https://github.com/NixOS/rfcs/pull/166
https://github.com/NixOS/rfcs/pull/140
Some recent contributions by Gaétan
https://github.com/NixOS/nixpkgs/pull/362844
https://github.com/NixOS/nixpkgs/pull/363751
https://github.com/Mic92/nixpkgs-review/pull/440
https://github.com/NixOS/nixfmt
https://github.com/nix-community/nix-init
https://github.com/ekala-project
https://github.com/jonringer
https://github.com/nrdxp
https://github.com/nix-community/nixvim
https://github.com/nix-community/home-manager
Pedro Alves
https://github.com/pta2002
https://github.com/traxys
https://github.com/MattSturgeon
https://github.com/khaneliman
https://github.com/nix-community/nixvim/graphs/contributors
Nixvim: Configure Neovim with the power of Nix (NeovimConf 2023):
https://youtu.be/GOe0C7Qtypk?si=T9gd0evaS8W3HvG-
```
nix run github:mightyiam/infra#nixvim
```
https://github.com/folke/lazy.nvim
https://github.com/nvim-neorocks/lz.n
Generated chapters:
00:00 Introduction to the Podcast and Guest
06:15 Understanding NixOS Use Cases
11:53 The Contribution Process Explained
25:22 Nixpkgs Review Tool and CI Challenges
34:26 Infrastructure and CI Limitations
38:37 Transitioning to GitHub Actions
45:07 Multi-System Evaluation Explained
50:32 Contributions to Python Packages
58:08 Challenges in Nix Packages
01:02:27 Recent Progress in Nixpkgs
01:07:53 NixVim Features and Benefits
01:11:22 Gaétan's Involvement in NixVim
01:19:33 NixVim: Configuration vs Distribution
01:23:44 NixVim Options and Flexibility
01:26:27 Plugin Management in NixVim
01:29:27 Settings and Configuration Options
01:32:06 Keeping Up with Plugin Changes
01:37:24 User Contributions and Community Engagement
01:44:13 Future Perspectives for NixVim
https://www.youtube.com/@molybdenumsoftware
https://github.com/NixOS/rfcs/pull/101
https://github.com/NixOS/nixfmt
nixfmt created by https://serokell.io/
https://github.com/nix-community/nixpkgs-fmt
https://github.com/NixOS/rfcs/pull/166
https://github.com/kamadorueda/alejandra
https://piegames.de/
https://github.com/0x4A6F
https://github.com/tomberek
https://github.com/dasJ
https://nixos.org/community/teams/formatting/
https://github.com/numtide/treefmt
https://github.com/NixOS/nixpkgs/pull/322537
https://github.com/NixOS/nixpkgs/pull/322537#issuecomment-2532934880
https://www.tweag.io/
https://antithesis.com/
https://hintjens.gitbooks.io/social-architecture/content/chapter4.html
https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md
https://moduscreate.com/
Auto-generated chapters:
00:00 Introduction and Background
01:44 The Journey to Standardized Formatting
06:17 The Evolution of RFC 101 to 166
11:22 The Role of the Shepherd Team
15:59 Defining the Formatting Rules
19:51 Finalizing the RFC and Implementation
25:01 Implementation Insights and Challenges
27:23 Finalizing the Formatter and Addressing Issues
30:09 Tree-Wide Reformatting: Strategies and Challenges
34:15 Ensuring Consistency in Formatting
38:54 Future Plans for Formatting and Maintenance
46:51 Enhancing PR Review Processes
49:28 Streamlining Local Formatting with treefmt
53:14 Managing Version Control and Formatting Conflicts
55:45 The Role of the Formatting Team
57:16 Exploring Linting and Future Maintenance
01:01:02 Automation and Community Contributions
01:04:10 C4 Guidelines for Effective PR Reviews
01:07:30 The Future of Documentation and Automation
01:10:15 Motivation Behind Community Contributions
https://fulltimenix.com/episodes/martin-schwaighofer-steering-committee-candidate
https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf
https://github.com/NixOS/nixpkgs
https://github.com/nix-community/lanzaboote
https://en.wikipedia.org/wiki/UEFI#Secure_Boot
NixCon2024 rebuilding builders instead of trusting trust
https://youtu.be/UlJUpUQc9Lc?si=_EebfQszx062M2mR
Extending cloud build systems to eliminate transitive trust:
https://discourse.nixos.org/t/extending-cloud-build-systems-to-eliminate-transitive-trust/50841
https://reproducible-builds.org/
Build systems à la carte: Theory and practice
https://www.cambridge.org/core/journals/journal-of-functional-programming/article/build-systems-a-la-carte-theory-and-practice/097CE52C750E69BD16B78C318754C7A4?utm_campaign=shareaholic&utm_medium=copy_link&utm_source=bookmark
Implementing a content-addressed Nix, 2 December 2021 — by Théophane Hufschmitt
https://www.tweag.io/blog/2021-12-02-nix-cas-4/
https://github.com/nix-community/trustix
00:00 Introduction and Background
01:28 Martin's Journey in Computer Science
02:57 Compiler Construction Course Insights
04:20 The Concept of Self-Compiling Compilers
07:10 Hiding stuff in the compiler
08:47 Trusting Trust: Compiler Security Issues
09:58 Nix and Build Process Management
12:09 Bootstrapping and Auditing in Nixpkgs
13:21 Trust in Software and Hardware Security
18:01 Secure Boot and Its Implications
20:39 Scenario: Government Agency Targeting
22:15 More on boot security
28:09 The Role of Secure Boot and Measured Boot
29:52 Measured boot
35:13 Democratizing Trust with Remote Attestation
36:11 Raising the bar on security
39:31 Research Directions in Supply Chain Security
47:34 Enhancing Nix for Security and Efficiency
50:20 Understanding Reproducibility in Build Processes
53:13 Navigating Trust and Threat Models in Nix
53:22 Identifying Gaps in Nix's Trust Mechanisms
56:48 Attribution and Trust in Build Systems
01:05:35 Distinguishing Between Input and Content Addressing in Nix
01:06:38 Nix store hashes
01:12:52 The Challenges of Content Addressing
01:14:04 Self-References and Their Implications
01:20:24 Trust and Attribution in Build Processes
01:24:31 Future Directions for Nix and Content Addressing
01:30:00 Sponsoring opportunity
Sponsor:
https://github.com/NixOS/SC-election-2024/blob/main/candidates/nyabinary.md
If you have any further questions for Niko, please reach out to them on Matrix at: @niko:nyanbinary.rs
https://github.com/NixOS/nix/releases/tag/2.18.7
https://github.com/NixOS/nix/releases/tag/2.18.6
https://github.com/NixOS/nix/releases/tag/2.24.6
https://github.com/NixOS/nix/releases/tag/2.24.5
https://github.com/SomeoneSerge
https://hydra.nixos.org/build/268609644/download/1/manual/release-notes/rl-2.24.html
https://galowicz.de/
https://github.com/fricklerhandwerk
https://github.com/ngi-nix/summer-of-nix
https://discourse.nixos.org/t/help-wanted-planning-for-summer-of-nix-2025/47556?u=mightyiam
https://nix.dev/manual/nix/2.23/release-notes/rl-2.23
https://galowicz.de/
In this episode of the Full Time Nix podcast, we discuss the changelog of Nix 2.22. What features were added, what the team intends to add and fix in the future and also discuss infinite recursion. Fun times!
In this episode of Full Time Nix, Shahar is joined by Jacek Galowicz to discuss the release notes for nix 2.21.0.
Find the full release notes here: https://releases.nixos.org/nix/nix-2.21.0/manual/release-notes/rl-2.21.html
Host: Shahar "Dawn" Or (@mightyiam)
Guest: Jacek Galowicz
A conversation with Jacek Galowicz (https://nixcademy.com/).
In this episode, Shahar and Samyak cover the April 7th edition of the nixpkgs.news.
Check out this edition of nixpkgs.news here: https://nixpkgs.news/archive/2024-04-07/
Hosts: Shahar "Dawn" Or (@mightyiam), Samyak Sarnayak (@Samyak2)
Nixpkgs.news written and published by Jake Hamilton.
In this episode, Shahar and Samyak cover the March 31st edition of the nixpkgs.news.
Check out this edition of nixpkgs.news here: https://nixpkgs.news/archive/2024-03-31/
Hosts: Shahar "Dawn" Or (@mightyiam) , Samyak Sarnayak (@Samyak2)
Nixpkgs.news written and published by Jake Hamilton.
Host: Shahar “Dawn” Or (@mightyiam)
Guest: Silvan Mosberger (@infinisil)
En liten tjänst av I'm With Friends. Finns även på engelska.