{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://talks.nixcon.org/nixcon-2023/schedule/", "version": "0.9", "base_url": "https://talks.nixcon.org", "conference": {"acronym": "nixcon-2023", "title": "NixCon 2023", "start": "2023-09-08", "end": "2023-09-10", "daysCount": 3, "timeslot_duration": "00:05", "time_zone_name": "Europe/Berlin", "colors": {"primary": "#647178"}, "rooms": [{"name": "Lecture hall (Room 122)", "slug": "2420-lecture-hall-room-122", "guid": "8699f7cb-b53a-5790-9b61-bc7b0165fec2", "description": "The big lecture hall on the first floor.", "capacity": 372}, {"name": "Workshop room (Room 24)", "slug": "2421-workshop-room-room-24", "guid": "91551597-3ccc-5911-b2c9-cae3a6c9b4e1", "description": "Room at the end of the hallway on the ground floor.", "capacity": 45}], "tracks": [{"name": "Workshop", "slug": "4031-workshop", "color": "#FA0000"}, {"name": "Main room", "slug": "3777-main-room", "color": "#13471E"}], "days": [{"index": 1, "date": "2023-09-08", "day_start": "2023-09-08T04:00:00+02:00", "day_end": "2023-09-09T03:59:00+02:00", "rooms": {"Lecture hall (Room 122)": [{"guid": "be37056d-53ca-545a-8308-1cbae7bab33e", "code": "EUYNYF", "id": 36476, "logo": null, "date": "2023-09-08T10:00:00+02:00", "start": "10:00", "duration": "00:10", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36476-nixcon-2023-opening-ceremony", "url": "https://talks.nixcon.org/nixcon-2023/talk/EUYNYF/", "title": "NixCon 2023 Opening Ceremony", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Opening notes, shoutout to sponsors, running through the agenda, thanking everyone, kicking off, rules/guidelines", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "WNKTLV", "name": "Ron Efroni", "avatar": "https://talks.nixcon.org/media/avatars/WNKTLV_uxr9w1k.webp", "biography": null, "public_name": "Ron Efroni", "guid": "0ccd3e33-fdab-553f-8fb9-d14dda1ff28c", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WNKTLV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/EUYNYF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/EUYNYF/", "attachments": []}, {"guid": "2f8b47f3-7e0f-5786-b918-404c179af174", "code": "8XSCGH", "id": 35919, "logo": null, "date": "2023-09-08T10:15:00+02:00", "start": "10:15", "duration": "00:24", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35919-nix-state-of-the-union-2023", "url": "https://talks.nixcon.org/nixcon-2023/talk/8XSCGH/", "title": "Nix State of the Union 2023", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Cover the dynamic landscape of Nix's growth, innovation, and future possibilities. This session will provide a comprehensive overview of the major milestones Nix has achieved over the past year, the challenges we've faced, and the exciting developments on the horizon.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "WNKTLV", "name": "Ron Efroni", "avatar": "https://talks.nixcon.org/media/avatars/WNKTLV_uxr9w1k.webp", "biography": null, "public_name": "Ron Efroni", "guid": "0ccd3e33-fdab-553f-8fb9-d14dda1ff28c", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WNKTLV/"}, {"code": "CH7HAF", "name": "Eelco Dolstra", "avatar": "https://talks.nixcon.org/media/avatars/CH7HAF_6LMh5IJ.webp", "biography": "Eelco Dolstra started the Nix project as a PhD student at Utrecht University. He currently works at Determinate Systems.", "public_name": "Eelco Dolstra", "guid": "6476c246-9512-5aef-8cd1-03e29a1b5fb6", "url": "https://talks.nixcon.org/nixcon-2023/speaker/CH7HAF/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/8XSCGH/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/8XSCGH/", "attachments": []}, {"guid": "23e5903a-e8f2-515e-9e09-be0995c75dba", "code": "L3QVWC", "id": 36421, "logo": null, "date": "2023-09-08T10:40:00+02:00", "start": "10:40", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36421-flake-schemas", "url": "https://talks.nixcon.org/nixcon-2023/talk/L3QVWC/", "title": "Flake schemas", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Flakes are a format for distributing Nix-based assets such as Nix packages, development shells, CI jobs and NixOS modules. The flake specification doesn't impose any restrictions on the contents (\"outputs\") of a flake, and these can be arbitrary Nix values. While this makes flakes very flexible, it means that there is no generic way to find out what a flake provides, or to check its correctness. To work around this, tools such as `nix flake show` and `nix flake check` have built-in support for a fixed set of flake output types such as `packages` and `devShells`. Unfortunately, this set cannot be extended by users to handle new flake output types.\n\nIn this talk, I propose *flake schemas*, which are essentially Nix functions that enumerate the contents of a flake output, including documentation, checks and options. Flake schemas do not impose a type system on flake outputs - it is entirely up to the schema function how it checks the flake output. Flake schemas allow us to remove all output-specific code from commands like `nix flake {show, check, search}`, making it easier for developers to introduce new output\ntypes.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "CH7HAF", "name": "Eelco Dolstra", "avatar": "https://talks.nixcon.org/media/avatars/CH7HAF_6LMh5IJ.webp", "biography": "Eelco Dolstra started the Nix project as a PhD student at Utrecht University. He currently works at Determinate Systems.", "public_name": "Eelco Dolstra", "guid": "6476c246-9512-5aef-8cd1-03e29a1b5fb6", "url": "https://talks.nixcon.org/nixcon-2023/speaker/CH7HAF/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/L3QVWC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/L3QVWC/", "attachments": []}, {"guid": "d5a52a4c-d1c5-5072-b9ec-721ba8c4cb70", "code": "VPYBSY", "id": 36413, "logo": null, "date": "2023-09-08T11:25:00+02:00", "start": "11:25", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36413-what-flakes-needs-technically", "url": "https://talks.nixcon.org/nixcon-2023/talk/VPYBSY/", "title": "What Flakes needs (technically)", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Flakes is seeing widespread and increasing adoption, but some people and projects are still hesitant to move to them because they have requirements that are cumbersome or impossible to address with Nix Flakes in their current incarnation (there are also other reasons, but I will be focusing on the technical ones).\n\nI will talk about the gaps I see in the current design of Flakes, and how these gaps could be filled in the future without compromising the core goals of Flakes. I will also explore the implications that this will have for the broad range of projects already using Flakes as it exists today.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "7ZPYSK", "name": "Linus Heckemann", "avatar": null, "biography": "I discovered Nix and NixOS for myself in 2016, and quickly became convinced that this is the way I want to do all my computing.\n\nI joined the ranks of Nixpkgs contributors, and have been following the call of Nix in my career since graduating from university. Along the way, I've managed two NixOS releases, and I've been on the RFC\nSteering Committee since 2021.", "public_name": "Linus Heckemann", "guid": "cba89d3b-833e-5c21-9a67-18477398b4f9", "url": "https://talks.nixcon.org/nixcon-2023/speaker/7ZPYSK/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/VPYBSY/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/VPYBSY/", "attachments": []}, {"guid": "28ea8a02-25b9-5984-8131-f42f318fa7f0", "code": "HRWDVC", "id": 35713, "logo": null, "date": "2023-09-08T11:50:00+02:00", "start": "11:50", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35713-not-all-packages-anymore-nix", "url": "https://talks.nixcon.org/nixcon-2023/talk/HRWDVC/", "title": "not-all-packages-anymore.nix", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "For [almost 20 years now](https://github.com/nixos/nixpkgs/commit/1894a8b86c4f5233f4f28af3b93156aaaee44af1#diff-e55bb1f00549f56ee8b5e3a6977467543b29e7ddb51bd6df23bea76713fc972c), adding a new package to Nixpkgs required editing the `all-packages.nix` file, which grew to over 40000 barely-sorted lines this year. In addition, an appropriate place for your package definition had to be found in the loosely-categorised `pkgs` hierarchy. Especially with the recent growth of Nix, this has been a frequent cause of confusion for new contributors.\n\nHowever, in the months leading up to NixCon, this is all changing with the acceptance of [RFC 140](https://github.com/NixOS/rfcs/pull/140), originally designed by the new [Nixpkgs Architecture Team](https://nixos.org/community/teams/nixpkgs-architecture.html). This proposal allows most new packages to be added by simply creating a new directory in the right place with a name matching the desired attribute name.\n\nIn this talk I will go over the new package contribution process, along with its limitations, historical context, interesting implementation details and future work.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "JFEHHQ", "name": "Silvan Mosberger", "avatar": "https://talks.nixcon.org/media/avatars/JFEHHQ_ZmNp3a6.webp", "biography": "Silvan is working at [Tweag](tweag.io/), where he can spend all his time for open-source Nix contributions. He specializes in Nixpkgs architecture, NixOS modules and state-of-the-art improvements.", "public_name": "Silvan Mosberger", "guid": "d838d9e6-c818-5f02-a522-7c1092ff3f60", "url": "https://talks.nixcon.org/nixcon-2023/speaker/JFEHHQ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/HRWDVC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/HRWDVC/", "attachments": []}, {"guid": "ef0176af-1cfa-5eab-9b9a-4e63936958e9", "code": "V3UGSG", "id": 36024, "logo": null, "date": "2023-09-08T14:20:00+02:00", "start": "14:20", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36024-adapting-nixos-to-fit-local-site-constraints", "url": "https://talks.nixcon.org/nixcon-2023/talk/V3UGSG/", "title": "Adapting NixOS to fit local site constraints", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "This talk will describe our experience shipping a product as a NixOS appliance that supports site-specific customization after deployment.\n\nNixOS' declarative model is a good match when one can write down the complete system configuration. How can we handle dynamic aspects of the configuration? That is, anything we expect to vary such that we cannot specify it fully at build time.\n\nWe will share the mechanisms used to achieve this and our assessment of the trade-offs involved.", "description": "Examples of site-specific variations:\n* timezone\n* time server\n* network share\n* SSL/TLS certificate", "recording_license": "", "do_not_record": false, "persons": [{"code": "WPRAHG", "name": "Nick Bathum", "avatar": "https://talks.nixcon.org/media/avatars/WPRAHG_apfSm91.webp", "biography": "NixOS main since 2018\n\nbuilder, curious, disorganized, yak-shaver who hasn't learned enough maths yet\n\nThey're helping plastic injection moulders save time at [RJG Inc](https://rjginc.com/). While offline, they enjoy woodworking and being outside, preferably in the garden.", "public_name": "Nick Bathum", "guid": "519e0598-014c-5049-a045-ee50e904aba0", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WPRAHG/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/V3UGSG/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/V3UGSG/", "attachments": []}, {"guid": "2ead10ab-a035-5a3f-b751-7976c727a7de", "code": "MNUFFP", "id": 36401, "logo": null, "date": "2023-09-08T14:25:00+02:00", "start": "14:25", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36401-blending-nixos-with-flathub-for-friends-and-family", "url": "https://talks.nixcon.org/nixcon-2023/talk/MNUFFP/", "title": "Blending NixOS with Flathub for friends and family", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "Creating a NixOS workstation configuration for non-Linux experts using Flathub with a graphical storefront so they can install the apps they want.", "description": "Since 2006 I've been helping friends and family run desktop Linux. This lightning talk reflects on the distributions I've used in the past and why I'm now using NixOS with Flathub enabled to make NixOS accessible to non-expert Linux users.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XNPJJB", "name": "Martin Wimpress", "avatar": "https://talks.nixcon.org/media/avatars/XNPJJB_SFrQ2O4.webp", "biography": "Husband \ud83d\udc8d Father \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67 Open source advocate \u2764\ufe0f\u200d\ud83d\udd25 Linux enthusiast \ud83d\udc27 Podcaster \ud83c\udf99 Streamer \ud83d\udce1 Making Nix easier at Determinate Systerms \u2744 Leads Ubuntu MATE \ud83e\uddc9", "public_name": "Martin Wimpress", "guid": "f4a6154f-11e3-5734-aea2-c8990a14707b", "url": "https://talks.nixcon.org/nixcon-2023/speaker/XNPJJB/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/MNUFFP/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/MNUFFP/", "attachments": []}, {"guid": "1a1411bb-5422-56e8-951d-d87b5b850d39", "code": "7WYFPW", "id": 36467, "logo": null, "date": "2023-09-08T14:30:00+02:00", "start": "14:30", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36467-compiling-to-nix-a-quick-overview", "url": "https://talks.nixcon.org/nixcon-2023/talk/7WYFPW/", "title": "Compiling to Nix: A Quick Overview", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "What are the languages that target Nix? Why might someone choose not to write an expression directly in Nix? How do these languages differ from one another?", "description": "This lightning talk will offer a brief overview of languages that can compile to Nix. For instance, [Dhall](https://dhall-lang.org/), [PureScript](https://hackage.haskell.org/package/purenix) and [Nickel](https://nickel-lang.org/) (even though it doesn't directly translate to Nix). What do the generated expressions look like? Can I use them to write a package definition or a NixOS configuration?\n\n**EDIT:** I will not have the time to introduce an experimental toy project of mine: a Scheme dialect that compiles to Nix, featuring a _static_ type system inspired by the [contracts](https://github.com/yvan-sraka/contracts) library. But I will be more than happy to discuss it while HackDay!", "recording_license": "", "do_not_record": false, "persons": [{"code": "3H9WGK", "name": "Yvan Sraka", "avatar": "https://talks.nixcon.org/media/avatars/3H9WGK_fu7WDWl.webp", "biography": "Yvan Sraka holds a master's degree in maths and computer sciences applied to biology from the Sorbonne University in Paris. Having discovered C++ programming as a child, he is involved in open-source communities. His previous commercial experience includes working in 3D Graphics and Runtime design with Rust, Nix, and Haskell. He used to teach Systems programming, Architecture, and DevOps to master's students and design algorithm competitions and kids/teens coding workshops (where he helps them build small video games). He lives in Belgium, loves biking, hiking, climbing, and vegan cooking.", "public_name": "Yvan Sraka", "guid": "f72797fc-2de9-53e3-9a9c-25fcff6193ef", "url": "https://talks.nixcon.org/nixcon-2023/speaker/3H9WGK/"}], "links": [{"title": "Slides", "url": "https://github.com/yvan-sraka/nix-talks/blob/main/NixCon2023.pdf", "type": "related"}], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/7WYFPW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/7WYFPW/", "attachments": []}, {"guid": "3f5fd786-b3c8-557e-8760-9e70c16c7a01", "code": "7LPHTK", "id": 36191, "logo": null, "date": "2023-09-08T14:35:00+02:00", "start": "14:35", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36191-nix-but-with-a-different-frontend", "url": "https://talks.nixcon.org/nixcon-2023/talk/7LPHTK/", "title": "Nix, but with a different frontend", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "This talk hints at how defining Nix packages (and development shells in particular) with another language than Nix influences the way we think about them, and discuss whether there are lessons to be learned from here for Nixpkgs or Nix itself.", "description": "[Organist](https://github.com/nickel-lang/organist) is a Nickel library and tool aimed at serving as the entry point for all the development tools, and featuring in particular a [Nickel](https://github.com/tweag/nickel) frontend for Nix as an experiment in changing the surface language.\nChanging the frontend used was also an occasion of changing the way we declare, compose and override packages, with a framework based on merging records (_a la_ module-system) rather than stacked wrapping functions and explicit fixpoints.", "recording_license": "", "do_not_record": false, "persons": [{"code": "G8YXUV", "name": "Th\u00e9ophane Hufschmitt", "avatar": "https://talks.nixcon.org/media/avatars/G8YXUV_ZDX7rfs.webp", "biography": null, "public_name": "Th\u00e9ophane Hufschmitt", "guid": "1053150c-dc9a-5763-99ae-c91a291c418d", "url": "https://talks.nixcon.org/nixcon-2023/speaker/G8YXUV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/7LPHTK/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/7LPHTK/", "attachments": []}, {"guid": "484626c4-3592-5f72-bfed-e6c5b70882d5", "code": "G8NDHE", "id": 35814, "logo": null, "date": "2023-09-08T14:40:00+02:00", "start": "14:40", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35814-this-year-in-nix-documentation", "url": "https://talks.nixcon.org/nixcon-2023/talk/G8NDHE/", "title": "This year in Nix documentation", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "A rundown of what the Nix documentation team has done since last NixCon", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "A3BRRY", "name": "Valentin Gagarin", "avatar": "https://talks.nixcon.org/media/avatars/A3BRRY_jNPbiSn.webp", "biography": "While switching careers to software engineering after working in education, film making and graphics design, Valentin got into Nix and NixOS on his never-ending endeavor of making computers work reliably in the long run.\n\nHe is an active member of the Nix community as @fricklerhandwerk. Working for Tweag since 2022, he is currently involved with Nix maintenance with a focus on improving documentation. He also contracts for the NixOS Foundation, supporting projects funded through the Next Generation Internet program.", "public_name": "Valentin Gagarin", "guid": "21f85ea0-e01f-5bab-96fb-0dc51967bec3", "url": "https://talks.nixcon.org/nixcon-2023/speaker/A3BRRY/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/G8NDHE/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/G8NDHE/", "attachments": []}, {"guid": "eb73a11b-7277-57e6-9007-0249ddd0559c", "code": "LZ9QTZ", "id": 35918, "logo": null, "date": "2023-09-08T14:50:00+02:00", "start": "14:50", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35918-nixos-foundation-board-panel", "url": "https://talks.nixcon.org/nixcon-2023/talk/LZ9QTZ/", "title": "NixOS Foundation Board Panel", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "An interactive session with the NixOS Foundation Board, going through the past year and looking into the next.", "description": "During this interactive session, board members will share their insights on the current state of Nix, discuss ongoing projects, and foundation plans for the upcoming year.\n\nIn addition to sharing the board's roadmap, this panel will also facilitate an open dialogue with the community in the form of Q&A.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GPNZBZ", "name": "NixOS Foundation board", "avatar": null, "biography": null, "public_name": "NixOS Foundation board", "guid": "6f61bd81-c4ef-5c9c-a617-d479a8c5bcbf", "url": "https://talks.nixcon.org/nixcon-2023/speaker/GPNZBZ/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/LZ9QTZ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/LZ9QTZ/", "attachments": []}, {"guid": "2ca3fc2b-5b6f-5bf5-a815-405100f04622", "code": "3FSNG9", "id": 35750, "logo": null, "date": "2023-09-08T15:15:00+02:00", "start": "15:15", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35750-declaring-an-ide-with-evalmodules", "url": "https://talks.nixcon.org/nixcon-2023/talk/3FSNG9/", "title": "Declaring an IDE with evalModules", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The underlying machinery of the NixOS module system, evalModules, is useful for more than just declaring Operating Systems. At Replit, we use it to [declare IDE plugins](https://github.com/replit/nixmodules) for language runtimes, code intelligence (LSP), runners, packagers, and debuggers. Learn how you can use evalModules for your own applications and how we use it to declare an IDE. During the hackday, let's adapt the IDE plugins to emacs, vim, or vscode!", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "MBQ939", "name": "Ryan Mulligan", "avatar": "https://talks.nixcon.org/media/avatars/MBQ939_PLcEpC1.webp", "biography": "ryantm has been using NixOS since 2015. In 2018, he made the r-ryantm which automatically opens thousands of pull requests to Nixpkgs every year. Ryan also created agenix for securing NixOS secrets and is a member of the Moderation Team focusing on organizing Discourse. Ryan is a software engineer at Replit helping them with developer experience and Nix.", "public_name": "Ryan Mulligan", "guid": "02534780-8ae0-50d1-878f-af5a0fb14d10", "url": "https://talks.nixcon.org/nixcon-2023/speaker/MBQ939/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/3FSNG9/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/3FSNG9/", "attachments": []}, {"guid": "81aa257e-d9a1-55ba-ae30-689cdda91425", "code": "VN8YMP", "id": 36424, "logo": null, "date": "2023-09-08T15:50:00+02:00", "start": "15:50", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36424-automating-testing-of-nixos-on-physical-machines", "url": "https://talks.nixcon.org/nixcon-2023/talk/VN8YMP/", "title": "Automating testing of NixOS on physical machines", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The NixOS virtual machine testing framework is very powerful, and allows for convenient testing of entire NixOS machines. However, some capabilities can only be tested by booting a physical machine with a given NixOS closure. This talk describes some work done toward the goal of enabling testing NixOS closures on physical machines, with an example of testing NVIDIA Jetson devices using the \"jetpack-nixos\" project.", "description": "", "recording_license": "", "do_not_record": true, "persons": [{"code": "MBDEZX", "name": "Daniel Fullmer", "avatar": null, "biography": "Daniel is a software engineer at Anduril, and leads the device operating systems team. He has been an Nix enthusiast and contributor since 2015.", "public_name": "Daniel Fullmer", "guid": "d46ff1af-a272-51ff-a58d-c2ce39228e5f", "url": "https://talks.nixcon.org/nixcon-2023/speaker/MBDEZX/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/VN8YMP/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/VN8YMP/", "attachments": []}, {"guid": "162fd2c2-8bda-569e-ae7e-12d277d579e2", "code": "UPNSQD", "id": 36417, "logo": null, "date": "2023-09-08T16:15:00+02:00", "start": "16:15", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36417-impermanence", "url": "https://talks.nixcon.org/nixcon-2023/talk/UPNSQD/", "title": "Impermanence", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The [Impermanence](https://github.com/nix-community/impermanence) project aims to make it easy to build systems where the root storage is erased on every boot.", "description": "In this talk, I'll go into why and how you would set up a system with ephemeral root storage and how Impermanence can help you manage the state you want to keep between reboots.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PZGNJF", "name": "talyz", "avatar": "https://talks.nixcon.org/media/avatars/PZGNJF_SGyyZi1.webp", "biography": "Sysadmin at XLN Audio. Maintainer of Impermanence and a few NixOS modules, such as Discourse and Keycloak.", "public_name": "talyz", "guid": "75cd6bd5-d77a-5eb0-bd34-e2659112f063", "url": "https://talks.nixcon.org/nixcon-2023/speaker/PZGNJF/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/UPNSQD/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/UPNSQD/", "attachments": []}, {"guid": "80194d42-c9e6-51b6-94ea-ac4939df2650", "code": "8BJU9K", "id": 36407, "logo": null, "date": "2023-09-08T17:05:00+02:00", "start": "17:05", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36407-using-nix-from-python-using-python-from-nix", "url": "https://talks.nixcon.org/nixcon-2023/talk/8BJU9K/", "title": "Using Nix from Python, using Python from Nix", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Interesting things you can do using the proposed C API", "description": "Nix plugins have been a possibility for years, but haven't caught on.\nI'll talk about the proposed new C API and what you can do with it.\n\n- Using Nix from your own tooling without wrapping the CLI\n- Writing Nix plugins", "recording_license": "", "do_not_record": false, "persons": [{"code": "D7JTGH", "name": "Yorick van Pelt", "avatar": "https://talks.nixcon.org/media/avatars/D7JTGH_qf07Qi8.webp", "biography": "Yorick is a part-time software engineer at Tweag.\n\nHe installed NixOS in 2014 and can never go back. This year, he's been working on improving the Nix interpreter.\n\nWhen he's not at Tweag, he also works as a generative AI consultant: ask him anything about LLMs.", "public_name": "Yorick van Pelt", "guid": "2ceca72a-5fef-529f-9824-e9449975f905", "url": "https://talks.nixcon.org/nixcon-2023/speaker/D7JTGH/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/8BJU9K/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/8BJU9K/", "attachments": []}, {"guid": "39040a64-1a13-5e7c-b071-1eb0f6e25081", "code": "KJCDMT", "id": 35853, "logo": null, "date": "2023-09-08T17:30:00+02:00", "start": "17:30", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35853-how-to-teach-nix-in-5-minutes", "url": "https://talks.nixcon.org/nixcon-2023/talk/KJCDMT/", "title": "How to teach Nix in 5 minutes!", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Congratulations, you\u2019ve convinced your friends / peers / coworkers to give Nix a try. Now the hard work starts: you have to actually teach it to them! Nix might be hard to learn, but it sure can be a fun journey! In this talk, Rok Garbas from flox will share the tools and techniques you need to teach Nix to your friends and colleagues\u2026and, most importantly, what NOT to teach.", "description": "Congratulations, you\u2019ve convinced your friends / peers / coworkers to give Nix a try. Now the hard work starts: you have to actually teach it to them! Nix might be hard to learn, but it sure can be a fun journey! In this talk, Rok Garbas from flox will share the tools and techniques you need to teach Nix to your friends and colleagues\u2026and, most importantly, what NOT to teach.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9QXT9Y", "name": "Rok Garbas", "avatar": "https://talks.nixcon.org/media/avatars/9QXT9Y_gGSRBBf.webp", "biography": "Rok is an Engineer at flox and a member of NixOS Marketing team.\n\nRok's journey started with many years of freelance work with Python and DevOps. Not being happy with the state of package management at the time, he found Nix in 2010 and has been a user, a contributor and an advocate since then.\n\nWherever he worked he put users first, either as a Release Engineer at Mozilla or as a consultant at Tweag. UX/DX became the language to \"talk\" to the users. Knowing that communicating the ideas is as important as having the technical skill is what makes Rok stand out. Understanding users and knowing how to talk to them is what brings a smile to Rok's face everyday.\n\nRok these days likes to tinker with Rust and is still excited when things work.", "public_name": "Rok Garbas", "guid": "4db8c661-2e30-5d36-9b83-1d656f4c70a6", "url": "https://talks.nixcon.org/nixcon-2023/speaker/9QXT9Y/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/KJCDMT/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/KJCDMT/", "attachments": []}, {"guid": "74bf95c0-f80d-5648-afc6-140f5a6d9df6", "code": "TDYA9W", "id": 36205, "logo": null, "date": "2023-09-08T17:55:00+02:00", "start": "17:55", "duration": "01:00", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36205-nixcon-hiring-happy-hour", "url": "https://talks.nixcon.org/nixcon-2023/talk/TDYA9W/", "title": "NixCon Hiring Happy Hour", "subtitle": "", "track": null, "type": "Break Long", "language": "en", "abstract": "A lightweight hiring happy hour. We will shout out all the companies and sponsors looking to hire Nix talent!", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "WNKTLV", "name": "Ron Efroni", "avatar": "https://talks.nixcon.org/media/avatars/WNKTLV_uxr9w1k.webp", "biography": null, "public_name": "Ron Efroni", "guid": "0ccd3e33-fdab-553f-8fb9-d14dda1ff28c", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WNKTLV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/TDYA9W/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/TDYA9W/", "attachments": []}], "Workshop room (Room 24)": [{"guid": "b2ba3689-2e2e-5858-8ad8-b28da7d7f2ab", "code": "QVCJ7Y", "id": 36345, "logo": null, "date": "2023-09-08T13:30:00+02:00", "start": "13:30", "duration": "01:00", "room": "Workshop room (Room 24)", "slug": "nixcon-2023-36345-nixos-governance-conversation-1st-session", "url": "https://talks.nixcon.org/nixcon-2023/talk/QVCJ7Y/", "title": "NixOS Governance conversation (1st session)", "subtitle": "", "track": null, "type": "Workshop/Training - Select this if you are planning on running a training for attendees", "language": "en", "abstract": "The question of how to more manage the project has come up once again. How do we structure ourselves to maximize participation, be effective and enjoy ourselves doing so?", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "XGGYJH", "name": "Jonas Chevalier (zimbatm)", "avatar": "https://talks.nixcon.org/media/avatars/XGGYJH_k5PUyDS.webp", "biography": null, "public_name": "Jonas Chevalier (zimbatm)", "guid": "cbc5bba5-f6ae-5a5e-bd89-2255d417cb32", "url": "https://talks.nixcon.org/nixcon-2023/speaker/XGGYJH/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/QVCJ7Y/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/QVCJ7Y/", "attachments": []}]}}, {"index": 2, "date": "2023-09-09", "day_start": "2023-09-09T04:00:00+02:00", "day_end": "2023-09-10T03:59:00+02:00", "rooms": {"Lecture hall (Room 122)": [{"guid": "0f875881-4a53-5862-a915-717b8da31791", "code": "DS3REV", "id": 36845, "logo": null, "date": "2023-09-09T10:00:00+02:00", "start": "10:00", "duration": "00:14", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36845-nixcon-2023-opening-ceremony", "url": "https://talks.nixcon.org/nixcon-2023/talk/DS3REV/", "title": "NixCon 2023 Opening Ceremony", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Opening ceremony for day 2!", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/DS3REV/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/DS3REV/", "attachments": []}, {"guid": "450a2208-f489-5239-a575-158fb7dec583", "code": "BAVND7", "id": 36333, "logo": null, "date": "2023-09-09T10:15:00+02:00", "start": "10:15", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36333-finding-things-in-nixpkgs-and-nixos-source", "url": "https://talks.nixcon.org/nixcon-2023/talk/BAVND7/", "title": "Finding things in nixpkgs and NixOS source", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Even with recent improvements in documentation, sometimes the most expedient way to understand nixpkgs and NixOS is to read the source code. However, that's not trivial: there are now 2.9 million lines of Nix source in nixpkgs. This talk shows several methods of finding the sources behind things in nixpkgs and NixOS from using ctags to various lesser-known tricks in the repl.\n\nAfter this talk, getting around in nixpkgs should be familiar and quick.", "description": "There are a lot of tools and methods for getting documentation and finding things in Nix but they are often not well publicized and form peoples' private workflows. Substantial progress has been made on this, for instance, with nixd, but there are other methods that still have their place when more advanced tools don't have perfect code context. This talk introduces a novel NixOS-modules ctags implementation allowing finding option definitions nearly instantly. It also presents how to navigate nixpkgs using nix-doc for ctags and to get function documentation in the Nix repl, how to fall back on `unsafeGetAttrPos`, and how to use the Nix debugger.\n\nI will briefly dive into the internals of NixOS to show the introspection capabilities it provides for where settings come from, and how to load a NixOS configuration into the repl for inspection in the first place.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UVNJC9", "name": "Jade Lovelace", "avatar": null, "biography": "Jade is a Computer Engineering student at the University of British Columbia in Vancouver, Canada. Their usual areas of focus are tooling, compilers, and operating systems.\n\nJade uses Nix and NixOS extensively, particularly for development environments and Haskell.\n\nTheir Web site can be found at https://jade.fyi", "public_name": "Jade Lovelace", "guid": "22bbc84b-4b64-51af-a966-3205b8f09df0", "url": "https://talks.nixcon.org/nixcon-2023/speaker/UVNJC9/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/BAVND7/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/BAVND7/", "attachments": []}, {"guid": "16e1b604-a005-565b-b828-1c6b4f19d031", "code": "8QMELJ", "id": 35975, "logo": "https://talks.nixcon.org/media/nixcon-2023/submissions/8QMELJ/logo_iLwMeDd.png", "date": "2023-09-09T10:40:00+02:00", "start": "10:40", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35975-disko-and-nixos-anywhere-declarative-and-remote-installation-of-nixos", "url": "https://talks.nixcon.org/nixcon-2023/talk/8QMELJ/", "title": "disko and nixos-anywhere: Declarative and Remote Installation of NixOS", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "If you ask three NixOS users what their favorite NixOS deployment tool to update a NixOS system is, you might get four answers. However, installing NixOS on a machine can be a tedious and manual process, especially if the machine is not physically accessible or does not have a NixOS installer. In this talk, we will introduce two tools that can simplify and automate the installation of NixOS on any machine with Linux and SSH access: disko and nixos-anywhere.", "description": "If you ask three NixOS users what their favorite NixOS deployment tool to update a NixOS system is, you might get four answers. However, installing NixOS on a machine can be a tedious and manual process, especially if the machine is not physically accessible or does not have a NixOS installer. In this talk, we will introduce two tools that can simplify and automate the installation of NixOS on any machine with Linux and SSH access: disko and nixos-anywhere.\n\nDisko is a declarative disk partitioning tool that allows you to specify the layout of your disks using a simple Nix expression. It can create, resize, format, and mount partitions on any device that supports block operations. It also supports encryption, ZFS, RAID, and LVM.\n\nNixos-anywhere is a tool that can install NixOS on any cloud or bare-metal environment over SSH. It can detect whether the target machine has a NixOS installer; if not, it can use kexec to boot into one. It then uses disko to partition and format the disks according to your configuration, and installs NixOS with your desired packages and secrets.\n\nWith these tools, you can easily deploy NixOS on any machine without needing physical access or manual intervention. You can also reuse the same configuration for multiple machines, ensuring consistency and reproducibility.\n\nIn this talk, we will demonstrate how to use disko and nixos-anywhere to install NixOS on various scenarios, such as a virtual machine, laptops or bare-metal servers. We will also discuss some of the challenges and limitations of these tools, and how they can be improved in the future.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WEWDGG", "name": "J\u00f6rg Thalheim", "avatar": "https://talks.nixcon.org/media/avatars/WEWDGG_yC8diIU.webp", "biography": "Ex-Systems-researcher and NixOS consultant working with Numtide. Maintainers of projects around nix including sops-nix, nixpkgs-review, nix-direnv, nix-update, nixos-shell, nixos-anywhere.", "public_name": "J\u00f6rg Thalheim", "guid": "5970a0a0-f588-53be-9057-f8eaee08b319", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WEWDGG/"}, {"code": "3YSM77", "name": "lassulus", "avatar": "https://talks.nixcon.org/media/avatars/3YSM77_qeJOUaP.webp", "biography": "dude with a computer", "public_name": "lassulus", "guid": "837f5193-d17b-57c2-a724-ad6b22091cdc", "url": "https://talks.nixcon.org/nixcon-2023/speaker/3YSM77/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/8QMELJ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/8QMELJ/", "attachments": []}, {"guid": "9722d939-acf5-5f03-be78-04cc1b8bbb50", "code": "KAYMMA", "id": 36432, "logo": null, "date": "2023-09-09T11:25:00+02:00", "start": "11:25", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36432-nuenv-an-experimental-derivation-builder-for-nix", "url": "https://talks.nixcon.org/nixcon-2023/talk/KAYMMA/", "title": "Nuenv: an experimental derivation builder for Nix", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Nuenv is an alternative builder for Nix derivations that uses Nushell rather than Bash. It offers enhanced expressiveness and type safety to Nix.", "description": "While Bash is a tried-and-true and highly well-known quantity, it's not particularly expressive and it has known \"footguns\" surrounding things like string parsing. Nushell is a recent entry into the world of shells. It's written in Rust and it offers robust data types and safety guarantees that have a lot to potentially offer to Nix. In this talk, I'll teach you not just about Nushell, how I built it, and how it works, but also about the realisation process itself.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YGSVC7", "name": "Luc Perkins", "avatar": "https://talks.nixcon.org/media/avatars/YGSVC7_ZASafZv.webp", "biography": "Luc is a Nix advocate at Determinate Systems", "public_name": "Luc Perkins", "guid": "363eba59-66fc-5212-9098-02114885f2f0", "url": "https://talks.nixcon.org/nixcon-2023/speaker/YGSVC7/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/KAYMMA/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/KAYMMA/", "attachments": []}, {"guid": "da4b2622-d548-5c41-8c82-2b5d0232f653", "code": "CQVAZU", "id": 35849, "logo": null, "date": "2023-09-09T11:50:00+02:00", "start": "11:50", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35849-rust-nix-more-than-the-sum-of-their-parts", "url": "https://talks.nixcon.org/nixcon-2023/talk/CQVAZU/", "title": "Rust + Nix: More than the sum of their parts?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Rust is a programming language with a knack for ergonomics in a space where robustness, correctness, and speed often come at the cost of many papercuts. Nix is a project focused on building software in a robust, correct, and deterministic way. These two projects should be best friends, right? In this talk Zach Mitchell from flox and the Documentation Team will give an experience report writing Rust bindings for Nix. What makes bindings difficult? Which bindings can be autogenerated? Which can (or should) be written by hand? Tune in to find out what went well, what was painful, and what didn't work at all.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "PRX9DE", "name": "Zach Mitchell", "avatar": "https://talks.nixcon.org/media/avatars/PRX9DE_B4ATbNf.webp", "biography": "Zach is an Engineer at flox, a member of the Nix Documentation Team, and the lead of the Learning Journey Working Group. Zach is pretty new to Nix, but has been writing Rust since 2018.\n\nIn a previous life Zach built lasers and did quantum mechanics simulations, but now he builds software with Rust and Nix. Zach has always had a knack for teaching, receiving multiple teaching awards during his PhD. This knack stems from an empathy for the struggles of new users of any technology. Enabling engineers and tinkerers alike to get things done or scratch their own itch has always been a joy for Zach.\n\nIn his free time Zach enjoys a good bike ride on either the road or a rocky mountain trail. He's also an avid disc golfer, an amateur whiskey sommelier, and a huge Dungeons & Dragons nerd.", "public_name": "Zach Mitchell", "guid": "4499721e-a287-5c0d-aa8e-8d38fa0372ae", "url": "https://talks.nixcon.org/nixcon-2023/speaker/PRX9DE/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/CQVAZU/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/CQVAZU/", "attachments": []}, {"guid": "5536b7f1-b997-553d-b03a-749662403d92", "code": "BABWGG", "id": 36394, "logo": null, "date": "2023-09-09T14:15:00+02:00", "start": "14:15", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36394-dynamic-derivations-what-and-why", "url": "https://talks.nixcon.org/nixcon-2023/talk/BABWGG/", "title": "Dynamic Derivations: what and why", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "In this quick talk, tomberek will introduce an upcoming experimental feature that has been in development for several years: dynamic derivations (RFC92). The talk will describe the motivation, the current status, implementation details, and a teaser of user-facing value they provide.\n\nReferences: \n\n- https://github.com/NixOS/rfcs/blob/master/rfcs/0092-plan-dynamism.md\n- https://github.com/NixOS/rfcs/pull/92\n- https://github.com/NixOS/nix/issues/6316", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "F9KJYR", "name": "Thomas Bereknyei", "avatar": "https://talks.nixcon.org/media/avatars/F9KJYR_yxvFO3C.webp", "biography": null, "public_name": "Thomas Bereknyei", "guid": "7f3295c9-5c78-544c-8131-863dacbfd63e", "url": "https://talks.nixcon.org/nixcon-2023/speaker/F9KJYR/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/BABWGG/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/BABWGG/", "attachments": []}, {"guid": "f76dbb77-4a24-566e-918a-4a2481898c8c", "code": "T3FZ8A", "id": 36404, "logo": null, "date": "2023-09-09T14:20:00+02:00", "start": "14:20", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36404-nix-for-hpc-the-case-of-cudapackages", "url": "https://talks.nixcon.org/nixcon-2023/talk/T3FZ8A/", "title": "Nix for HPC: the case of cudaPackages", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "We should briefly see (or recap) what effort it takes today to provision via Nix a typical stack that includes Pytorch and CUDA, see when Nix could still be the better choice, and when Nix may seem to hinder progress. We should try to argue that the obstacles we observe can be eliminated at the nixpkgs level", "description": "Nixpkgs and NixOS go a long way in stabilising a program's inherently random build and runtime behaviour. Meanwhile the scientific computing software, and the state of the art \"AI\" research code in particular, heavily rely on dynamic and \"impure\" deployment techniques. These include e.g. dynamic linkage using \"dlopen\", unenforced assumptions about paths, distribution of pre-built black-box binaries, largely facilitated by the use of dependency solvers, and more. Sometimes these \"impurities\" are necessary, as when using driver-aware libraries like OpenGL or CUDA. This seemingly makes it cheaper to relax the requirements to reproducibility set by Nix and embrace tools such as pip, conda, singularity (apptainer) and docker. We should briefly see (or recap) what effort it takes today to provision via Nix a typical stack that includes Pytorch and CUDA, see when Nix could still be the better choice, and when Nix may seem to hinder progress. We should try to argue that the obstacles we observe can be eliminated at the nixpkgs level.\n\nP.S. This description is preliminary", "recording_license": "", "do_not_record": false, "persons": [{"code": "U3WAC7", "name": "SomeoneSerge", "avatar": "https://talks.nixcon.org/media/avatars/U3WAC7_EsObFJw.webp", "biography": "Doctoral student at the Aalto University, working on image correspondences and, more generally, \"inverse [problems in] graphics\". Contributing to cudaPackages in nixpkgs", "public_name": "SomeoneSerge", "guid": "2960deba-a4b2-5bf4-8c73-acb08cd3621e", "url": "https://talks.nixcon.org/nixcon-2023/speaker/U3WAC7/"}], "links": [{"title": "Description of the nixpgks CUDA maintainers team", "url": "https://nixos.org/community/teams/cuda", "type": "related"}], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/T3FZ8A/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/T3FZ8A/", "attachments": []}, {"guid": "b15779fb-c44d-56ad-9a04-8a07099fd57d", "code": "GXW3EX", "id": 36181, "logo": null, "date": "2023-09-09T14:25:00+02:00", "start": "14:25", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36181-layered-nix-stores", "url": "https://talks.nixcon.org/nixcon-2023/talk/GXW3EX/", "title": "Layered Nix Stores", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "A new Nix store implementation \u2014 local-overlay \u2014 that lets you create a writable layer over another underlying store.", "description": "Nix has various different store implementations. For example the daemon store, which provides store access to unprivileged users on multiuser systems.\n\nSome caveats apply, but the new local-overlay store lets you combine an existing lower store with an upper layer, similar to the Linux Overlay Filesystem. Anything in the lower store will be accessible via the overlay store, while modifying the overlay store will only change the upper layer and leave the lower store untouched.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LAUNRG", "name": "Ben Radford", "avatar": "https://talks.nixcon.org/media/avatars/LAUNRG_osabRne.webp", "biography": "Ben is a software engineer at Tweag, where he spends his days working with Bazel and Nix.", "public_name": "Ben Radford", "guid": "41724140-168f-50ed-8fbf-5b93cb66a18b", "url": "https://talks.nixcon.org/nixcon-2023/speaker/LAUNRG/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/GXW3EX/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/GXW3EX/", "attachments": []}, {"guid": "c2aa6761-8cc6-5c22-85ef-2cf628f86912", "code": "SERXWP", "id": 34898, "logo": null, "date": "2023-09-09T14:30:00+02:00", "start": "14:30", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-34898-single-website-firefox-vms-with-nixos", "url": "https://talks.nixcon.org/nixcon-2023/talk/SERXWP/", "title": "Single Website Firefox VMs with NixOS", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "In this lightening talk, we'll walk through process of creating a virtual machine using NixOS which will start Firefox and visit a pre-configured website. We'll work-around the performance issue of building multiple VMs when there are many configured websites. To do so, we'll employ flake outputs for caching and QEMU's ability to forward configuration options to the VM. At the end, we'll have a browser setup with improved isolation and alternative UX.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "XLXTMM", "name": "Nitin Passa", "avatar": null, "biography": "Hi, I'm Nitin! I'm currently working as a quantitative software engineer at  Two Sigma on the automated trading platform. Before that, I was at Cruise  Automation working on the planning stack for the autonomous vehicle. I love using NixOS to tinker and self-host software. NixOS tames otherwise unmanageable complexity and enables me to explore interests away from the keyboard.", "public_name": "Nitin Passa", "guid": "ff80e7c6-a88a-5ca1-8cef-e46eb40e07f8", "url": "https://talks.nixcon.org/nixcon-2023/speaker/XLXTMM/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/SERXWP/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/SERXWP/", "attachments": []}, {"guid": "3d4cfe1d-1e3a-5d6f-83c6-1d89ed455a1c", "code": "8ENEKM", "id": 35906, "logo": null, "date": "2023-09-09T14:35:00+02:00", "start": "14:35", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35906-nix-in-the-wild", "url": "https://talks.nixcon.org/nixcon-2023/talk/8ENEKM/", "title": "Nix in the Wild", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": "The team at flox has been producing a series of Nix in the Wild articles that showcase users and organizations doing innovative things with Nix. I\u2019d like to take a quick few minutes to share some of these stories and invite others to participate.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "ANNXAV", "name": "Ross Turk", "avatar": "https://talks.nixcon.org/media/avatars/ANNXAV_ziLlBYU.webp", "biography": "Ross Turk is head of marketing and devrel at flox. Ross brings more than 20 years of experience creating software, managing complex IT systems, and helping companies understand and serve developers.", "public_name": "Ross Turk", "guid": "fb36aff2-799f-5c53-91dc-d990c1ed86fd", "url": "https://talks.nixcon.org/nixcon-2023/speaker/ANNXAV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/8ENEKM/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/8ENEKM/", "attachments": []}, {"guid": "25d2fc7c-9bdf-5aa2-83a4-7310fb1f583b", "code": "DHXKNW", "id": 35959, "logo": null, "date": "2023-09-09T14:40:00+02:00", "start": "14:40", "duration": "00:05", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35959-nix-in-space", "url": "https://talks.nixcon.org/nixcon-2023/talk/DHXKNW/", "title": "Nix  in Space", "subtitle": "", "track": null, "type": "Lightning talk", "language": "en", "abstract": ".", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZWBE7M", "name": "Kip93", "avatar": null, "biography": null, "public_name": "Kip93", "guid": "0b983c80-7214-5ca4-8b3e-5521d29ffa02", "url": "https://talks.nixcon.org/nixcon-2023/speaker/ZWBE7M/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/DHXKNW/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/DHXKNW/", "attachments": []}, {"guid": "4fe641e8-e843-5760-9815-4ee0f5ed5929", "code": "DDQRWQ", "id": 34402, "logo": null, "date": "2023-09-09T15:10:00+02:00", "start": "15:10", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-34402-bootstrapping-nix-and-linux-from-tinycc", "url": "https://talks.nixcon.org/nixcon-2023/talk/DDQRWQ/", "title": "Bootstrapping Nix and Linux from TinyCC", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Building every operating system starts from something. I'm not as hardcore as the stage0 project folks going from assembly to Guix, but a shorter path from a ~320 KB TinyCC binary to Nix to a proof-of-concept Linux distribution also proved to be a story worth telling.\n\nWe'll begin our journey by executing a -nostdlib C program with TinyCC, compile our way out towards a libc and a shell, work through older compilers to modern compilers and build Nix. Then we'll walk the same path again once over, but this time, we'll use Nix. Finally, in a different flake, we'll reimplement some of the founding nixpkgs patterns, work our way from toolchain to Linux and arrive at a bootable .iso. Corners will be cut, hacks will run amock, Nix will be both praised and complained about, reproducibility will be earned hard, and some patches will get upstreamed.", "description": "Links: https://github.com/ZilchOS/bootstrap-from-tcc, https://github.com/ZilchOS/core, http://bootstrappable.org", "recording_license": "", "do_not_record": false, "persons": [{"code": "C7WXKN", "name": "Alexander Sosedkin", "avatar": "https://talks.nixcon.org/media/avatars/C7WXKN_Vg1x1qG.webp", "biography": "Currently a Quality Engineer at Red Hat, Crypto team.", "public_name": "Alexander Sosedkin", "guid": "740eb8e7-b34d-5e6b-928b-5ebab855de30", "url": "https://talks.nixcon.org/nixcon-2023/speaker/C7WXKN/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/DDQRWQ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/DDQRWQ/", "attachments": []}, {"guid": "584e43f0-5c8e-5fc4-90b2-5649e03020bb", "code": "DDVFVZ", "id": 36425, "logo": null, "date": "2023-09-09T15:35:00+02:00", "start": "15:35", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36425-reinventing-the-wheel-with-zilch", "url": "https://talks.nixcon.org/nixcon-2023/talk/DDVFVZ/", "title": "Reinventing the wheel with Zilch", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "It's been twenty years since Nix was unleashed upon this world, and yet, the only real alternative is Guix\u203d Well, not on my watch! I've been working on Zilch for a while now, and it's starting to be ready to be released to the wild. This talk will describe what this fresh new Nix-compatible alternative is, how it came into being, and what the wider Nix community could learn from it.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "VCLCZ8", "name": "Puck Meerburg", "avatar": "https://talks.nixcon.org/media/avatars/VCLCZ8_L1KwB5g.webp", "biography": "Puck was tricked into trying NixOS six years ago and, instead of giving in to its ways, decided to double down. As a result, she is maybe the person most well-versed with the Nix interpreter's internals, contorting Nix in ways never seen before.", "public_name": "Puck Meerburg", "guid": "76ceabe4-7efb-5fa7-a197-10ec452a8615", "url": "https://talks.nixcon.org/nixcon-2023/speaker/VCLCZ8/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/DDVFVZ/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/DDVFVZ/", "attachments": []}, {"guid": "750ccc52-80c3-54b1-9b07-e81d9e19d953", "code": "Z897S3", "id": 35254, "logo": "https://talks.nixcon.org/media/nixcon-2023/submissions/Z897S3/tvix-logo_Mik6LEA.png", "date": "2023-09-09T16:00:00+02:00", "start": "16:00", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35254-tvix", "url": "https://talks.nixcon.org/nixcon-2023/talk/Z897S3/", "title": "Tvix", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Tvix is a modern design and implementation of the Nix package manager (GPLv3). It brings a modular architecture in which components such as the build environment or package store are replaceable, which enables new use-cases and platforms.", "description": "This talk will give a status update on the current state of the project, and an outlook on the roadmap.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZQX7LX", "name": "flokli", "avatar": "https://talks.nixcon.org/media/avatars/ZQX7LX_heL16Z6.webp", "biography": "Nix / DevOps tinkerer. Likes reproducible builds and declarative infrastructure.\n\nIn the NixOS community since 2017, going down way too many rabbit holes. Currently spending most of his time on Tvix, a Nix reimplementation in (mostly) Rust.", "public_name": "flokli", "guid": "c1ba295d-e93d-5872-8e9f-0de082731d38", "url": "https://talks.nixcon.org/nixcon-2023/speaker/ZQX7LX/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/Z897S3/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/Z897S3/", "attachments": []}, {"guid": "d65c8179-4108-550e-ac4f-29b36179fc15", "code": "Q3YYMR", "id": 36022, "logo": null, "date": "2023-09-09T16:45:00+02:00", "start": "16:45", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36022-daily-driving-nixos-on-the-librem-5", "url": "https://talks.nixcon.org/nixcon-2023/talk/Q3YYMR/", "title": "Daily-driving NixOS on the Librem 5", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "I've been using a Librem 5 running NixOS for a few months now as my daily driver. Here are the challenges I've faced, what works and what doesn't.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UEAXU3", "name": "Sophie Tauchert", "avatar": null, "biography": "IT-security engineer, admin for catgirl.cloud, running NixOS everywhere and maintaining a few NixOS packages.", "public_name": "Sophie Tauchert", "guid": "e278ace6-7cb0-5252-9622-50fab7636b95", "url": "https://talks.nixcon.org/nixcon-2023/speaker/UEAXU3/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/Q3YYMR/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/Q3YYMR/", "attachments": []}, {"guid": "7427b8bc-9ca1-5f99-a4af-8fa808f83ff1", "code": "CYEPCX", "id": 35290, "logo": null, "date": "2023-09-09T17:10:00+02:00", "start": "17:10", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-35290-nix-and-kubernetes-deployments-done-right", "url": "https://talks.nixcon.org/nixcon-2023/talk/CYEPCX/", "title": "Nix and Kubernetes: Deployments Done Right", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Nix is an amazing build tool not only for applications, but also for the infamous \"yaml engineering\". Join Volodymyr to learn about the journey of using nix along with argocd to deploy payloads into kubernetes.", "description": "What you will learn:\n- Setting up nix to work with argocd\n- Deploying simple applications written purely in nix\n- Utilizing the public helm charts in nix, with custom configuration and resource overriding without the chart forking\n- Using nixpkgs' modules system for complicated muti-cluster deployments", "recording_license": "", "do_not_record": false, "persons": [{"code": "RXFANU", "name": "Vladimir \"farcaller\" Pouzanov", "avatar": "https://talks.nixcon.org/media/avatars/RXFANU_mmItjis.webp", "biography": "Vladimir is an SRE with passion for optimization. He witnessed many attempts to do the declarative configuration right, before and during the kubernetes craze. After getting convinced of the nixos benefits, he started to look into solving the production payload configuration with nix, too.", "public_name": "Vladimir \"farcaller\" Pouzanov", "guid": "425a85c5-1881-5d90-9b70-ce8a083cb0b9", "url": "https://talks.nixcon.org/nixcon-2023/speaker/RXFANU/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/CYEPCX/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/CYEPCX/", "attachments": []}, {"guid": "24d9304d-77c0-590a-8370-cb3474cc6370", "code": "RNTYJF", "id": 34861, "logo": null, "date": "2023-09-09T17:55:00+02:00", "start": "17:55", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-34861-microvm-nix", "url": "https://talks.nixcon.org/nixcon-2023/talk/RNTYJF/", "title": "microvm.nix", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "microvm.nix builds NixOS for a few virtual machine managers in a few different use-cases", "description": "Full virtualization suffers from overhead and performance degradation due to software emulation of real hardware. MicroVMs are optimized by replacing this emulation with interfaces that have been optimized for the virtual machine use-case: VirtIO.\n\nmicrovm.nix helps you building and running NixOS on different virtual machine managers. You can use it in different use-cases, for example as a more isolated alternative to nixos-container.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LUS8EB", "name": "Astro", "avatar": "https://talks.nixcon.org/media/avatars/LUS8EB_uwTbC9W.webp", "biography": "microvm.nix, deadnix, nix-openwrt-imagebuilder", "public_name": "Astro", "guid": "9f788213-29ac-5144-a76a-d4c342277d03", "url": "https://talks.nixcon.org/nixcon-2023/speaker/LUS8EB/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/RNTYJF/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/RNTYJF/", "attachments": []}, {"guid": "b1323110-d9a9-50ff-bb6c-0ebfa059a2ed", "code": "NRSXHT", "id": 36477, "logo": null, "date": "2023-09-09T18:20:00+02:00", "start": "18:20", "duration": "00:25", "room": "Lecture hall (Room 122)", "slug": "nixcon-2023-36477-nixcon-2023-closing-ceremony", "url": "https://talks.nixcon.org/nixcon-2023/talk/NRSXHT/", "title": "NixCon 2023 Closing Ceremony", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Closing, thank yous, sponsors, what's next, anything else", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "WNKTLV", "name": "Ron Efroni", "avatar": "https://talks.nixcon.org/media/avatars/WNKTLV_uxr9w1k.webp", "biography": null, "public_name": "Ron Efroni", "guid": "0ccd3e33-fdab-553f-8fb9-d14dda1ff28c", "url": "https://talks.nixcon.org/nixcon-2023/speaker/WNKTLV/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/NRSXHT/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/NRSXHT/", "attachments": []}], "Workshop room (Room 24)": [{"guid": "167644bd-458e-5db2-bdcb-053450e8ce7b", "code": "TPLSLT", "id": 36833, "logo": null, "date": "2023-09-09T13:30:00+02:00", "start": "13:30", "duration": "01:00", "room": "Workshop room (Room 24)", "slug": "nixcon-2023-36833-nixos-governance-conversation-2nd-session", "url": "https://talks.nixcon.org/nixcon-2023/talk/TPLSLT/", "title": "NixOS Governance conversation (2nd session)", "subtitle": "", "track": null, "type": "Workshop/Training - Select this if you are planning on running a training for attendees", "language": "en", "abstract": "2nd session", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/TPLSLT/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/TPLSLT/", "attachments": []}, {"guid": "80694bd3-2150-544a-8e61-f082e21db369", "code": "MYDSCP", "id": 35439, "logo": "https://talks.nixcon.org/media/nixcon-2023/submissions/MYDSCP/logo-landscape_V2Eub3z.svg", "date": "2023-09-09T15:00:00+02:00", "start": "15:00", "duration": "03:20", "room": "Workshop room (Room 24)", "slug": "nixcon-2023-35439-nix-training", "url": "https://talks.nixcon.org/nixcon-2023/talk/MYDSCP/", "title": "Nix Training", "subtitle": "", "track": "Workshop", "type": "Workshop/Training - Select this if you are planning on running a training for attendees", "language": "en", "abstract": "Join us at nixcon 2023 for a free short training on Nix flakes! Learn the basics of Nix, including installation, command usage, and writing your own flake. Discover how to build flakes in GitHub CI and familiarize yourself with key terms in the Nix ecosystem. Don't miss this opportunity to enhance your Nix skills and expand your knowledge of declarative package management.", "description": "Join us at nixcon 2023 for an exciting and informative free training session on Nix flakes. Designed for beginners and those looking to deepen their understanding of Nix, this training will provide you with a solid foundation in Nix fundamentals.\n\nDuring the training, you will learn how to install and set up Nix, gaining hands-on experience with essential commands and techniques. Discover the power of Nix flakes as you dive into writing your own flake, exploring the creation of packages and runnable applications. By the end of the training, you'll be able to build your flake in GitHub CI, ensuring reliable and reproducible results.\n\nIn addition to practical exercises, this training will also introduce you to the important vocabulary of the Nix ecosystem. You'll become familiar with key terms and concepts, enabling you to navigate the Nix community and documentation with ease.\n\nLed by experienced trainers from nixcademy.com, this session promises a dynamic learning environment that combines theory with interactive exercises. You'll benefit from the trainers' expertise and enthusiasm for Nix, making the learning process enjoyable and engaging.\n\nWhether you're a developer, system administrator, or simply curious about declarative package management, this free training is an excellent opportunity to enhance your Nix skills and gain valuable insights into the world of Nix flakes. Don't miss out on this chance to expand your knowledge and join us at nixcon 2023 for an unforgettable learning experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KWCVSS", "name": "Jacek Galowicz", "avatar": "https://talks.nixcon.org/media/avatars/KWCVSS_XmtxSV2.webp", "biography": "Freelance SWE consultant,  trainer at nixcademy.com and linuxhotel.de, maintainer of the NixOS integration test driver, C++ book author", "public_name": "Jacek Galowicz", "guid": "73e1fe01-4944-58d4-b1b8-58deea9ba760", "url": "https://talks.nixcon.org/nixcon-2023/speaker/KWCVSS/"}], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/MYDSCP/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/MYDSCP/", "attachments": []}]}}, {"index": 3, "date": "2023-09-10", "day_start": "2023-09-10T04:00:00+02:00", "day_end": "2023-09-11T03:59:00+02:00", "rooms": {"Workshop room (Room 24)": [{"guid": "b9c35818-b8fc-5df2-b89d-121d88195821", "code": "AH7JSC", "id": 36834, "logo": null, "date": "2023-09-10T08:30:00+02:00", "start": "08:30", "duration": "01:30", "room": "Workshop room (Room 24)", "slug": "nixcon-2023-36834-nixos-governance-conversation-hackday-session", "url": "https://talks.nixcon.org/nixcon-2023/talk/AH7JSC/", "title": "NixOS Governance conversation (hackday session)", "subtitle": "", "track": null, "type": "Workshop/Training - Select this if you are planning on running a training for attendees", "language": "en", "abstract": "Hackday governance session", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://talks.nixcon.org/nixcon-2023/talk/AH7JSC/feedback/", "origin_url": "https://talks.nixcon.org/nixcon-2023/talk/AH7JSC/", "attachments": []}]}}]}}}