Nea: A webserver that never allocates - Folkert de Vries

Поделиться
HTML-код
  • Опубликовано: 3 янв 2025

Комментарии • 37

  • @vladyslav007
    @vladyslav007 3 месяца назад +73

    I will never get tired of commenting things like that. I'm pretty amazed that Zig community becomes more about programming in general, not just focused on Zig and it's pretty cool. Also people are very friendly and topics are interesting.

  • @cheebadigga4092
    @cheebadigga4092 3 месяца назад +6

    This is amazing. The location with the chairs, then smoothly going to an auidience and present your passion, then go back to the chair to chill and answer questions. I think this "sit down" thing makes is so much more enjoyable than standard talks and their setups. Thank you for this!

  • @EmmanuelMess
    @EmmanuelMess 3 месяца назад +28

    An interesting recommendation I got from senior developers about embedded programming was to construct everything at the start of the execution and then never again, this makes OOM basically impossible (unless you run out at the initialization) and simplifies a lot of logic.

    • @noahryan8672
      @noahryan8672 3 месяца назад +9

      We do this on all embedded systems where i work. I personally think its a great way to design reliable systems, at least for the purposes i am designing for.

    • @notuxnobux
      @notuxnobux 3 месяца назад +7

      Some games also do this. Tiger beetle database written in zig also does this.

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

      It's a good principle if resource hogging isn't a problem. But if you need to share the system with other software that might need sporadic amounts of memory it makes more sense to "be nice" and only hog a sensible amount of resources, and in exchange expect the other processes will be nice enough to let you get more memory when you need it.
      For a "dumb" web server though, where you know it's always going to be running on the same hardware that only serves that purpose. Then yeah, just allocating in advance might be a lot smoother.

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

      @@leeroyjenkins0 definitely a good point. For the systems I tend to work on, this is much less of an issue, but not everyone will have that experience.

  • @ramtaicnatcher9494
    @ramtaicnatcher9494 3 месяца назад +30

    > A webserver that never allocates
    > Look inside
    > Memory allocation

    • @leeroyjenkins0
      @leeroyjenkins0 3 месяца назад +11

      > Car that runs on electricity
      > Follow the power line
      > Coal burning

    • @leeroyjenkins0
      @leeroyjenkins0 3 месяца назад +10

      > Large cap company that isn't evil
      > Look up subcontractors
      > Evil
      Man these are fun!

    • @danix30001
      @danix30001 2 месяца назад +19

      > Serverless server
      > Look inside
      > Server

  • @arubaga
    @arubaga 3 месяца назад +7

    This is so old school with ideas from late 1980’s.

    • @blarghblargh
      @blarghblargh 3 месяца назад +1

      people got real excited over functional programming when it got popular, even though it existed since the late 1950s

  • @edgeeffect
    @edgeeffect 3 месяца назад +11

    Roc platforms remind me a lot of John Ousterhout's TCL language with it's Wish and Expect "platforms"....

  • @randalkoene9675
    @randalkoene9675 3 месяца назад +6

    Feels like memory and threads management has very similar problems. Allocation of memory "buckets" to requests runs into strategies analogous to those applying GPU (or CPU) threads to multiple concurrent tasks. Not surprising, since we're still a while away from having "infinite" local threads. ;-)

  • @UliTroyo
    @UliTroyo 3 месяца назад +2

    36:29 Loris's gears were spinning the whole time Folkert was saying that 😂

  • @Stdvwr
    @Stdvwr 3 месяца назад +22

    ah yes, a webserver that never allocates, just what I need for my web application that never works

  • @arnemartt
    @arnemartt 3 месяца назад +1

    Shoutout to the Thy Catafalque shirt

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

    wonder if they would add support for surrealdb

  • @stevenhe3462
    @stevenhe3462 4 дня назад

    So, Erlang again?

  • @re-lax3580
    @re-lax3580 3 месяца назад

    Given that safe rust can prevent data race, what are the causes of the race conditions? What do you need to do that requires unsafe rust?

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

      Is this a question about something said in the video, or is it about Rust in general?

    • @re-lax3580
      @re-lax3580 3 месяца назад

      @@jaysistar2711 The video. The talker mentioned that he needs to fix some race conditions in the talk, and I am wondering why he needs to

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

      ​@@re-lax3580Oh, 29:18 . I'm not sure what race conditions to which he may be refering.

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

      He did mention implementing setjmp and longjmp with inline assembly.
      And in unsafe code, data races can happen. It's your job to ensure that an unsafe code block becomes safe.

    • @leonardeuler4
      @leonardeuler4 3 месяца назад +6

      Race condition is not a data race

  • @pietraderdetective8953
    @pietraderdetective8953 3 месяца назад +15

    Ohh that "Don't be scared.." when he explained that it's written in Rust is so cult-like LOL.

    • @theevilcottonball
      @theevilcottonball 3 месяца назад +20

      I don't see how 'Don't be scared' is cult like...

    • @etooamill9528
      @etooamill9528 3 месяца назад +10

      he only said that cause many people are biased against rust and the language itself has pretty intimidating syntax, i assume

    • @jcollins519
      @jcollins519 3 месяца назад +10

      "it's written in language X which this audience (Zigmas) isn't familiar with, but don't worry, you don't need any familiarity with it to understand my presentation"
      I think your response to the statement moreso indicates your own biases

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

    Just use java and virtual threads

  • @Diamonddrake
    @Diamonddrake 3 месяца назад +4

    Setjmp / longjmp aka “try catch” lol