Tweag
Tweag
  • Видео 201
  • Просмотров 288 168
Joe Neeman - Why are soap bubbles round?
In our internal knowledge-sharing seminar, Joe Neeman treated us with a delightful mathematical exploration of why bubbles are round. Features actual bubbles.
--------------------------------------------------
📝 Want more Open Source content? Read our blog for the latest: www.tweag.io/blog
📈 We are big on composable software: functional, typed, and immutable. You might have seen some of our work in your own favourite technical community. Check out our Github page: github.com/tweag
💻 Tweag, a Modus Create company, is a software innovation lab with the mission to advance software craftsmanship and developer experience with meaningful open-source contributions. Our research helps fuel some of th...
Просмотров: 354

Видео

Paolo Perrone - Markov categories, Bayesian inversions, and statistical experiments
Просмотров 2114 месяца назад
Paolo Perrone from the University of Oxford visited the Paris office and was kind enough to give a talk about his work on categories for probability theory. The recording reveals that Arnaud Spiwack's computer was used to stream voice, but not the camera feed. So you don't get to see Paolo. Maybe it's for the best: we were having camera issues. Abstract: Markov categories are one of the most re...
Bazel Hour - Build Introspection
Просмотров 3328 месяцев назад
Bazel Hour - Build Introspection
Greg Magolan - Building JavaScript & TypeScript with rules_js - BazelCon Community Day 2023
Просмотров 38611 месяцев назад
Greg Magolan - Building JavaScript & TypeScript with rules_js - BazelCon Community Day 2023
Tyler French and Zhongpeng Lin- Bazel + Go with Rules_go & Gazelle - BazelCon Community Day 2023
Просмотров 8711 месяцев назад
Tyler French and Zhongpeng Lin- Bazel Go with Rules_go & Gazelle - BazelCon Community Day 2023
Neil Mitchell, Chris Hopman- Buck2: optimizations & dynamic dependencies. BazelCon Community Day '23
Просмотров 28511 месяцев назад
Neil Mitchell, Chris Hopman- Buck2: optimizations & dynamic dependencies. BazelCon Community Day '23
Andrzej Głuszak - Build Server Protocol - BazelCon Community Day 2023
Просмотров 13711 месяцев назад
Andrzej Głuszak - Build Server Protocol - BazelCon Community Day 2023
Shishir Kumar - Fast Incremental Bazel builds with ‘Persistent pods’ - BazelCon Community Day 2023
Просмотров 9411 месяцев назад
Shishir Kumar - Fast Incremental Bazel builds with ‘Persistent pods’ - BazelCon Community Day 2023
Markus Hofbauer - Bazel Migration using Fully Ephemeral BUILD Files - BazelCon Community Day 2023
Просмотров 10411 месяцев назад
Markus Hofbauer - Bazel Migration using Fully Ephemeral BUILD Files - BazelCon Community Day 2023
Ulf Adams - Coverage with Bazel - BazelCon Community Day 2023
Просмотров 11611 месяцев назад
Ulf Adams - Coverage with Bazel - BazelCon Community Day 2023
Laziness in Haskell - Part 4: Thunks
Просмотров 4,4 тыс.Год назад
Laziness in Haskell - Part 4: Thunks
Laziness in Haskell - Part 3: Demand
Просмотров 5 тыс.Год назад
Laziness in Haskell - Part 3: Demand
Laziness in Haskell - Part 2: Why not Strict Haskell?
Просмотров 5 тыс.Год назад
Laziness in Haskell - Part 2: Why not Strict Haskell?
Laziness in Haskell - Part 1: Prologue
Просмотров 9 тыс.Год назад
Laziness in Haskell - Part 1: Prologue
Introduction to Qubes OS
Просмотров 2,5 тыс.Год назад
Introduction to Qubes OS
Nickel 1.0 is out! A tutorial
Просмотров 2,4 тыс.Год назад
Nickel 1.0 is out! A tutorial
The Nix Hour #28 [packaging shell scripts, wrappers, resholve]
Просмотров 1,3 тыс.Год назад
The Nix Hour #28 [packaging shell scripts, wrappers, resholve]
Composable Haskell state machines with Crem
Просмотров 1,2 тыс.Год назад
Composable Haskell state machines with Crem
Linux Plumbing - tips and tools for pipes, redirection and network connections
Просмотров 1,4 тыс.Год назад
Linux Plumbing - tips and tools for pipes, redirection and network connections
@lexi_lambda: The GHC strictness analyzer, unboxing, and the worker-wrapper transformation
Просмотров 5 тыс.Год назад
@lexi_lambda: The GHC strictness analyzer, unboxing, and the worker-wrapper transformation
The Git Parable: a different approach to understanding Git
Просмотров 6 тыс.Год назад
The Git Parable: a different approach to understanding Git
The Nix Hour #6 [closure size debugging]
Просмотров 969Год назад
The Nix Hour #6 [closure size debugging]
The Nix Hour #5 [overriding a rust source, derivation internally, closure inspection]
Просмотров 1,2 тыс.Год назад
The Nix Hour #5 [overriding a rust source, derivation internally, closure inspection]
The Nix Hour #4 [comparing flakes to traditional Nix]
Просмотров 2,2 тыс.Год назад
The Nix Hour #4 [comparing flakes to traditional Nix]
The Nix Hour #3 [flake updating, nix edit, some corners of the Nix language]
Просмотров 1,5 тыс.2 года назад
The Nix Hour #3 [flake updating, nix edit, some corners of the Nix language]
The Nix Hour #2 [overriding derivations, fixed-output derivations, sharing closures]
Просмотров 2,6 тыс.2 года назад
The Nix Hour #2 [overriding derivations, fixed-output derivations, sharing closures]
@lexi_lambda: GHC Simplifier basics
Просмотров 2,6 тыс.2 года назад
@lexi_lambda: GHC Simplifier basics
The Nix Hour #1 [nixcon, reviewing a PR, debugging and tracing Nix evaluation]
Просмотров 5 тыс.2 года назад
The Nix Hour #1 [nixcon, reviewing a PR, debugging and tracing Nix evaluation]
@lexi_lambda: The GHC optimization pipeline
Просмотров 3,4 тыс.2 года назад
@lexi_lambda: The GHC optimization pipeline
A journey into the world of NixOS deployment tools
Просмотров 4,1 тыс.2 года назад
A journey into the world of NixOS deployment tools

Комментарии

  • @eliseulucenabarros3920
    @eliseulucenabarros3920 Месяц назад

    just don't use emacs inside a terminal emulator...

  • @cessationoftime
    @cessationoftime Месяц назад

    This makes me think it would be interesting to have a programming language where we can write multiple statements on 1 line separated by semicolons and then in that particular case the execution order is unconstrained, but when separated by lines the execution order is constrained to be top down. Or something similar like we could end statements with colons to make the execution order unconstrained.

  • @jefftp
    @jefftp Месяц назад

    This is the best explanation of the difference between flakes and traditional NixOS I've found. Thank you so much Silvan for making it so much more clear.

  • @xorlop
    @xorlop Месяц назад

    I was surprised to find the order of the overrideAttrs matter! When I tried building at 12:26, I was getting strange error because I put "custom" first. The error was happening at the cat command, which tries to cat out the filename in out. It says it does not exist. I wonder if anyone knows why the output matters? Thank you in advance!

  • @archer-6568
    @archer-6568 Месяц назад

    Could you sort the Nix Hour playlist in ascending order? Thank you for for the lectures :D

  • @booombaaam2370
    @booombaaam2370 2 месяца назад

    NixOS is truly amazing and I want to use NixOS but I have a metered internet connection with limited data every day and you can't see the size of packages in NixOS. If NixOS had the feature of viewing size of packages before downloading them like other distros and if somehow they can also add the feature of pausing and resuming for large downloads it could become my go to distro for life.

  • @alurma
    @alurma 2 месяца назад

    Mind = blown

  • @LifesAScript
    @LifesAScript 3 месяца назад

    Wtf was far ending... Highly disappointed in this channel.

  • @Bvngee
    @Bvngee 3 месяца назад

    49:54 watching you almost adding regex to that if statement whilst overriding callPackage was peak comedy. And then immediately jumping into special-case recursive lib overlays. 12/10 content. so glad these videos are free lmao

  • @andreaszweili8593
    @andreaszweili8593 3 месяца назад

    This is perfect. I'm currently having to package Ansible Galaxy Collections but they don't provide a lock file or anything so I have to do manual updates. Putting the information into a file to read from makes it much more usable for my colleagues that don't know Nix that well and maybe even lets me combine it with renovate bot.

  • @Ski4974
    @Ski4974 4 месяца назад

    Awesome presentation & presentor explanations

  • @bew
    @bew 4 месяца назад

    (audio starts working at 3:16)

  • @scar6073
    @scar6073 5 месяцев назад

    Damn i stumbled on a goldmine. Thanks for the tutorials ❤

  • @bicicogito989
    @bicicogito989 5 месяцев назад

    THANK YOU for providing Nix/NixOS knowledge for the community every week!!!

  • @JohnDoe-vr4et
    @JohnDoe-vr4et 5 месяцев назад

    It would have been good, if the interesting presentation were recorded locally for better audio quality. Thanks Solène!

  • @maltepoll
    @maltepoll 5 месяцев назад

    For the repack issue, having a clearly specified, fully deterministic subset of tar/nar and gzip would be useful.

  • @williamfish1407
    @williamfish1407 5 месяцев назад

    Thanks so much for putting this together. So many things just clicked for me (especially with derivations) watching this

  • @slickheisenberg8208
    @slickheisenberg8208 6 месяцев назад

    Thanks for this great series! Your audio recording has very prominent sibilant consonants (the sharp sounds created by e.g. „s“, „sch“, „j“, etc.), which are especially noticeable over headphones. Piping your microphone signal through a de-esser to eliminate the sharp sounds might offer some improvements with relatively low effort. Even better: consider borrowing or buying a decent microphone and learn how to EQ voice signals. There are a host of plugins for OBS, etc. that provide EQ functionality.

    • @tweag
      @tweag 4 месяца назад

      Thanks for the tip! I've been recommended github.com/trummerschlunk/master_me recently, which I hoped would fix this problem, but for some reason it makes the audio worse. So I'm afraid this is not fixed yet, but I'll continue tinkering :)

  • @MartinsTalbergs
    @MartinsTalbergs 6 месяцев назад

    Cool insight - nix channels being the tool for delivery purpose, not a reference purpose - now just being missapplied

  • @con-f-use
    @con-f-use 6 месяцев назад

    Some remarks: - 2:00 the extra newlines when pasting into vim was due to vim formatting the pasted lines, which can be (temporarly disabled) in various ways, e.g. `:set paste` - The terminal glitching at 21:40 is because of the columns configured in the serial tty, you can increase that with `stty columns 200; stty rows 70;` and it's probably good to `export TERM=<your-host-terminal-emulator>` (might need `environment.enableAllTerminfo = true`)

  • @ChuckBoecking
    @ChuckBoecking 6 месяцев назад

    Thank you for this discussion! I have a favor to ask... Can you create a blog with a super fast example of how to make configuration.nix as pure as is reasonable. I am asking because I maintain applications hosting servers. I need to be able to fire up a new server and have it (the new server) resemble the existing server (same jvm, db, tools, etc...). Since I am not performing builds, I believe I only need to ensure the nixpkgs is pulling from a specific tarball to ensure I am getting the same app definitions. Thanks again for your time and consideration. I am happy to support/sponsor your efforts. Chuck

    • @tweag
      @tweag 6 месяцев назад

      I've recently written something that might be exactly what you're looking for! Check it out: github.com/infinisil/sanix

    • @ChuckBoecking
      @ChuckBoecking 6 месяцев назад

      @@tweag Great - thank you! I will test it out. When you install nixos from incus, you get dropped into a root user. When you use the nixos aws images, you are forced to use the admin user. As a convention, where (and with what user) would you keep this repository? I would like to be consistent between all platforms.

  • @xorlop
    @xorlop 6 месяцев назад

    Looking forward to more videos! These were all really interesting!

  • @DreamsAPI
    @DreamsAPI 6 месяцев назад

    Thank you for linking Nix* docs with your tutorial, and for explainingto those of use who are just learning about Nix* universe.

  • @DreamsAPI
    @DreamsAPI 6 месяцев назад

    Nice

  • @Bvngee
    @Bvngee 7 месяцев назад

    Seems like this episode got cut off short? Unless 38:47 was the actual end... In which case I don't think this topic has been fully covered. `rustPlatform.buildRustPackage` for hello-world is only scratching the surface.. What I'd like to see is the process of making a nix devshell/build setup for some sophisticated Rust project that depends on significant libraries (like libGL or something) and has some non-trivial build setup, actually pushing the builtin lang2nix integrations (like buildRustPackage). Or, even better, that same process but for a language that doesn't have a builtin `buildLangPackage` integration, and expects you to use its own tooling. Are you forced into a custom buildPhase script, and if so what would your process for writing it be? Thanks for making these videos, always learning something new.

  • @KhoriyohYusri
    @KhoriyohYusri 7 месяцев назад

    Great practice today sir, thank you very much sir 👍👍👍 1:01:44

  • @TheWildHustle
    @TheWildHustle 7 месяцев назад

    Posting your playlist to the Nix OS Stacker News territory , come for an AMA if you have time. If not keep up the great work!

  • @KhoriyohYusri
    @KhoriyohYusri 7 месяцев назад

    Good day sir and nice to meet you sir. 2:07

  • @Wabbajack-kj2kg
    @Wabbajack-kj2kg 8 месяцев назад

    Amazing lecture! I wonder what can we do today (latest stable released is GHC 9.8.2 as I'm writing this) to mitigate some of these problems by default? StrictData + use our own strict data types (or some from `strict` package on hackage)?

  • @ishtaraletheia9804
    @ishtaraletheia9804 8 месяцев назад

    Do y'all intend to continue this series? I've really loved it.

  • @ishtaraletheia9804
    @ishtaraletheia9804 8 месяцев назад

    That ad hoc typeclass is truly disgusting! (Though of course effective) I would have added a parameter that's a function that turns a word into a monoidal value, List.singleton for the list case and const (Sum 1) for the "count number of words" case.

  • @Marcsine
    @Marcsine 8 месяцев назад

    It seems unfortunate that Set's type parameters is inferred as role representational in the first place. Modulo breaking change, wouldn't it be better for GHC to infer all type parameters as nominal for a type with private constructors, unless explicitly annotated otherwise? Or something to that effect?

  • @zweitekonto9654
    @zweitekonto9654 8 месяцев назад

    You guys stream on twitch as well?

  • @trejohnson7677
    @trejohnson7677 8 месяцев назад

    hilarious, you can have a fully reproducible system, if you can ever get it produced!

  • @trejohnson7677
    @trejohnson7677 8 месяцев назад

    First 5 minutes is why i cant fking stand nix.

  • @Redyf
    @Redyf 8 месяцев назад

    I finally made my first contribution for nixpkgs this week, your videos helped me a lot 😄

  • @dycan0716
    @dycan0716 8 месяцев назад

    learned lib.pipe and noogle, thx!

  • @Muaahaa
    @Muaahaa 9 месяцев назад

    Hey, I tried doing this back in December. My Nix programming is super basic, so it was quite an experience trying to actually format and manipulate data. Curious to see how you approach it.

  • @xyangst
    @xyangst 9 месяцев назад

    Nice talk ❤ couldn't find anything more general online about nix deployment

  • @tobzdaman619
    @tobzdaman619 9 месяцев назад

    I have to admit, your reaction to all of the Ps getting deleted was quite funny :) Thanks for tutorials. leard a lot!

  • @tobzdaman619
    @tobzdaman619 9 месяцев назад

    FINALLY, I couldn't figure out how to read these and couldn't find any resources. Thank you :) EDIT: Okay, using it as a pattern AND as an expression seems rather confusing: but at least I can read more hackage source now :P

  • @adammontgomery7980
    @adammontgomery7980 9 месяцев назад

    I have to say, I really don't like nix's syntax. I understand it has to be purely functional for it's purpose but, the inherit keyword feels redundant when using let-in blocks and makes everything harder to grok, IMO

    • @con-f-use
      @con-f-use 9 месяцев назад

      No, `inherit` saves you from repetition when using `let`: { pkgs }: let inherit (pkgs) lib curl ; # is better than: lib = pkgs.lib; curl = pkgs.curl; in ... or here: let foo = "bar"; bla = "blub"; in { foo = foo; bar = bar; # is worse than just: inherit foo bar; } Syntax is always a matter of use-case, taste and what you're familiar with. The most valid, least subjective criticism of the nix languages revolves around: - merge behavior of attribute sets, or lack thereof - some technical things that make evaluation slow - would be more useful for its purpose if strongly typed - `rec` and `with` often cause unexpected problems - `inherit (foo) bar` is not the same as `inherit foo bar`

    • @adammontgomery7980
      @adammontgomery7980 9 месяцев назад

      @@con-f-use I'm saying that by defining a value 'in' some context, it seems like it would just be available in that context (attribute set).

    • @con-f-use
      @con-f-use 9 месяцев назад

      @@adammontgomery7980 it is, but because nix is lazy, you need to have some mechanism not to export the symbol, when it's not used by itself, otherwise you get namespace creep. You're misunderstanding let and what it is for here. They way you want it to work, you could just use a recursive attribute set instead and inline the let symbols. If it worked like that, why have let at all and not just put it inside the attrset? Let has a very specific and useful reason to exist. The fact that people misuse it sometimes, doesn't mean it's in itself is confusing or nix is a worse language for having it.

  • @mattetis
    @mattetis 10 месяцев назад

    This is probably the best introduction to monads I have seen. It also perfectly demonstrates the beauty of Haskell

  • @Redyf
    @Redyf 10 месяцев назад

    Perfect timing, I was trying to add a vim plugin to nixpkgs 2 days ago, but failed xD. Thanks a lot!

  • @reo101
    @reo101 10 месяцев назад

    Hey, great episode (as always)! ❤ Wanted to ask which LS you're using in neovim for nix (nixd, rnix or other?) and how have you configured it (nvim / non-nvim stuff) to show the "pseudo"-types of the `lib.` functions in the completion hints

    • @tweag
      @tweag 9 месяцев назад

      I'm using nil! github.com/oxalica/nil

  • @tobzdaman619
    @tobzdaman619 10 месяцев назад

    This doesn't seem to work any more? :( poetry2nix is now maintained out-of-tree.

  • @shutterrecoil
    @shutterrecoil 10 месяцев назад

    The clip length on a youtube list is 5 and a half hours! Is it on purpose?

    • @tweag
      @tweag 9 месяцев назад

      Seems to be fixed now, not sure what happened there!

  • @BertPdeboy
    @BertPdeboy 11 месяцев назад

    just letting you guys know these walkthroughs are greatly appreciated! i'm learning a lot from these focused sessions.

    • @Wynell
      @Wynell 10 месяцев назад

      I agree with it, I learn so much when I see how it'd done in real time, especially if some error happens it's very helpful to see how the errors can be debugged/dealt with!

    • @Wynell
      @Wynell 10 месяцев назад

      I agree with it, I learn so much when I see how it'd done in real time, especially if some error happens it's very helpful to see how the errors can be debugged/dealt with!

  • @mlyxshi
    @mlyxshi 11 месяцев назад

    It seems that DefaultDependencies=false should be set.

  • @spartanA01
    @spartanA01 11 месяцев назад

    What plugin do you use to have browser windows windows within tmux?

    • @ksiksi
      @ksiksi 11 месяцев назад

      That is not tmux. It's a tiling window manager. A popular example is i3.

    • @tweag
      @tweag 11 месяцев назад

      Indeed as @ksiksi said. It's not i3 though, I'm using xmonad :)