Stress Testing WebSocket Implementation

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 พ.ย. 2024

ความคิดเห็น • 105

  • @PopescuAlexandruCristian
    @PopescuAlexandruCristian 24 วันที่ผ่านมา +43

    I like how all scripting languages get a compilation step at some point and then another and another...

    • @theevilcottonball
      @theevilcottonball 24 วันที่ผ่านมา +5

      It's not just scripting languages. There is the C preprocesor, there was cfront to generate C and now there are languages that generate C++ (Jakt/cppfront). There are build systems for C. Then there are build system that generate the build files for the build systems. And there will be build systems that generate build files for buold systems that generate build files for build systems.
      I think there will always be a step added to the build process until it all comes crashing down.

    • @ecosta
      @ecosta 19 ชั่วโมงที่ผ่านมา

      @@theevilcottonball At least compiled languages have a mandatory compilation step by definition. It is bizarre how script/interpreted languages also require such steps when they could, in theory, run without it.

    • @theevilcottonball
      @theevilcottonball 19 ชั่วโมงที่ผ่านมา

      @@ecosta Well, there are just in time compilers. And python also compiles to bytecode. So most scripting languages also have a 'compilation step'. But that can be hidden like the c3 compile-run/ tcc -run/zig run/odin run command, which acts like a script interpreter from the outside.
      In my eyes requiring an extra step has little to do with the language being compiled, it has to do with whether there is a good and flexible language defined concept of a package. C does not need a seperare step if you #include everythin into a single TU and then tcc -run it. Similarily python has import. Though both of these fdatures are lacking something, which is why Cmake/Setuptools etc. are a thing. If they were more flexible and powerful, build systems and so on would only be needed for weird stuff like multi language multi component systems.

  • @onixtsm
    @onixtsm 24 วันที่ผ่านมา +25

    Python is like everything:
    -Oh no, we have 12 incompatible standards. Let's make one to unit them
    -Oh no, we have 13 incompatible standards. Let's make a new one to unite them
    -Oh no....

  • @000TheMatheus000
    @000TheMatheus000 24 วันที่ผ่านมา +8

    2:17:40 you can feel the dopamine rush after the tests passed, tsoding`s mood improve a lot after it 🤣

  • @texodus_et6313
    @texodus_et6313 24 วันที่ผ่านมา +9

    3:23 - 3:45 ... Completely Agree buddy!!! Testify!!! 🙌🙌🙌

  • @alanis4AL
    @alanis4AL 23 วันที่ผ่านมา

    I’m trying to learn more about websockets and here you come and implement one from scratch
    Awesome video super informative
    God sent

  • @radhi.sghaier
    @radhi.sghaier 24 วันที่ผ่านมา +2

    Whoever asked to run all tests at the end, THANK YOU !
    I was so curious to know which ones pass, and was looking at the stream approaching the end, thinking that now I won't be able to know which ones pass, then you hit Zozin with your curiosity. BAM, instant happiness, and the results are even better than expected xD
    And ofc, thank you Zozin for yet another masterpiece of a TH-cam video !

  • @size_t
    @size_t 24 วันที่ผ่านมา +17

    I'm writing (besides other languages) Python in my company for now 7 years. And we never had to introduce "build steps" to this language. Maybe some venv and zero to one dependencies, but not that insane mess.
    I have the strong feeling, that some people/organizations using their tools wrong

    • @BRLN1
      @BRLN1 24 วันที่ผ่านมา +5

      that you and your company never had to introduce additional build steps is good AND reveals that you are using pure python only.
      The point of building something is, whenever python packages (e.g. numpy, matplotlib, django, pandas, polar, tensorflow, ...) depend on source code/software libraries in other languages (e.g. c, c++, ...).

  • @miezekatze3536
    @miezekatze3536 24 วันที่ผ่านมา +22

    the subtitles at 2:16:40 😂

  • @pidojaspdpaidipashdisao572
    @pidojaspdpaidipashdisao572 24 วันที่ผ่านมา +4

    You don't have to wait for addresses to clear up, you can reuse them. I don't use C3 but in vanilla C on Linux you can use SO_REUSEADDR as sockopt to reuse it, this would also be another cool improvement on the example_server

  • @StevenMartinGuitar
    @StevenMartinGuitar 20 วันที่ผ่านมา +1

    35:47 When docker is obsolete too this code is lost to the wind 😂

  • @ecosta
    @ecosta 19 ชั่วโมงที่ผ่านมา

    27:10 - I have a theory. From my decades-old "business-oriented" dev experience, I can confidently say devs usually favour "green field projects" and condemns the concept of maintaining anything older than a year or two. Sure, there are devs (like me) who love to improve "old" stuff, but the average/majority don't.
    I take a calculated guess this behaviour happens on "open source". Specially on Python - the same community that decided to drop support for a major version of their environment, at the cost of blowing up any piece of software without constant maintenance (like autobahn).

  • @abdul4515
    @abdul4515 21 วันที่ผ่านมา +1

    3:30 I fully agree. If your project requires a docker container for it to build then you have failed.

  • @cacheman
    @cacheman 24 วันที่ผ่านมา +1

    Speaking of enshittification of software, I don't know if this is covered, but "docker build" is being taken away so that you have to install a separate "client-server architecture" (daemon) to accomplish the same thing.

  • @capability-snob
    @capability-snob 24 วันที่ผ่านมา +2

    Setuptools and pip truly made a mess of the python packaging space. Not singlehandedly: projects that pulled them in as a dependency have some blame, but the Version breakage was not really a surprise.

  • @cryptonative
    @cryptonative 24 วันที่ผ่านมา +4

    "there's no reason for code to decay"

  • @ArturdeSousaRocha
    @ArturdeSousaRocha 24 วันที่ผ่านมา +1

    The entertainment value is over 9000. And this is why I only use Python libraries available in the system's package manager. And why I use Go when I can.

  • @diawanchris
    @diawanchris 24 วันที่ผ่านมา +6

    i've seen a lot of "insanely smart people" adding complexity because they can, rather than asking "should they do it?".

    • @brambasiel
      @brambasiel 23 วันที่ผ่านมา

      I kind of understand why. Doing things the simple straightforward way is often the most boring approach.

    • @hedlund
      @hedlund 23 วันที่ผ่านมา +1

      "Avoiding" "smart people" because they aren't all perfect in your eyes is a uniquely daft move, I'd say, but you do you.

    • @diawanchris
      @diawanchris 23 วันที่ผ่านมา

      ​@@hedlund i guess my phrasing is kind of bad there. i'm not saying that i avoid people because they are not perfect, i'm just saying that i don't really want to deal with unnecessay complexity.
      i guess i'll just delete those part to prevent further confusion.

  • @iWillAvert
    @iWillAvert 24 วันที่ผ่านมา +3

    27:30 That isn't 100% true. If your C project depends on any libraries, you can have a similar issue when that library is updated and eventually deprecated.
    My most recent example is the 'Cone' programming language. It uses such an old version of llvm that it includes headers that no longer exist within llvm-c. You are 100% required to obtain a copy of everything for llvm 13 in order to build the project.
    It's a cool little language that I want to play around with, so I have very much considered actually going in and trying to update it to a more modern llvm version. As far as I have been able to tell, llvm-c is very much under documented which is part of why I looked into Cone in the first place. I've had to use it and the source from C3 to try and learn llvm-c.

    • @daxramdac7194
      @daxramdac7194 24 วันที่ผ่านมา +1

      You had to use Cone and the source for C3 to learn llvm-c....? What are you talking about bro.

    • @iWillAvert
      @iWillAvert 24 วันที่ผ่านมา

      @daxramdac7194 Example code makes for decent documentation when you lack documentation. llvm and llvm-c are not the same.

  • @speedstyle.
    @speedstyle. 22 วันที่ผ่านมา

    `pip2 install .` may have worked, as newer `pip` versions were aware of py3 and do dependency resolution with language version in mind. It will then run `setup.py`, but with all the dependencies already loaded.

  • @gnerkus
    @gnerkus 24 วันที่ผ่านมา

    3:41 "...because they're the ones who are going to be maintaining this mess..." Not always. Also, jamming the shiniest stuff into the container saves a few arguments with the younger developers.

  • @nanothrill7171
    @nanothrill7171 24 วันที่ผ่านมา +3

    this reminds me that a TUI i wrote in Perl in 1998 still works in newest perl, lol. I like python as a language better than perl but googlification has really destroyed the python ecosystem.

    • @Nova32x
      @Nova32x 24 วันที่ผ่านมา

      What do you mean by googlification? Making it easier to search for things?

    • @daxramdac7194
      @daxramdac7194 24 วันที่ผ่านมา

      Googlification? Not sure what you mean by that, but how would that affect the ecosystem? Not sure there would even be an ecosystem without having the ability to rapidly find information, or being able to navigate the web.

    • @eeriemyxi
      @eeriemyxi 24 วันที่ผ่านมา

      ​@@daxramdac7194maybe to him Google is synonymous to shit so it's actually enshittification?

    • @multicoloredwiz
      @multicoloredwiz 24 วันที่ผ่านมา

      Try building software that depends on Google products. You'll end up having to download a million other things. Like oh now you need skia. Well there's no package for it so you have to compile it yourself and to do that you'll have to get googles depot tools... oh and to compile that you have to learn to use some custom Google builder tool... etcetc

    • @henrikholst7490
      @henrikholst7490 19 วันที่ผ่านมา

      That might be due to Perl is a walking dead. Or Perl is completed. Depends on who you ask. ;)

  • @nitproject5193
    @nitproject5193 24 วันที่ผ่านมา +1

    As a developer I don't mind deprecations. We might get new cool features and approaches in old software, because it needs to be rewritten, bcs rewritten code is easier to support than the legacy one, also it gives us, engineers, more job to do, AND it deprecates AI models faster than they might be trained to be useful. It's quite sad thinking that this is the thing that gives us, coders, more opportunities, but at the same time I don't mind if it's actually will help us at some point. And also project that have no people to update it -- probably going to die anyway. Let code decade! :)

  • @hubstrangers3450
    @hubstrangers3450 23 วันที่ผ่านมา

    Thank you...

  • @SlinkyD
    @SlinkyD 24 วันที่ผ่านมา +1

    17:40 Been saying that for years. They'll burn the world down just to keep from attempting to think "maybe there's something I'm not getting".
    At least I know Imma trash dev & stick to bash scripts, cus I'll only be messing my env up, not desecuring the world.
    Theory: Your new rig fast enuf for you to slow down & read docs more.

  • @arsalan2005
    @arsalan2005 24 วันที่ผ่านมา

    You should run this against another open source web socket library and compare it to yours!🎉

  • @cybernit3
    @cybernit3 24 วันที่ผ่านมา +1

    Emacs is quite a tool, just learning it, jives with me more than vim. Does Tsoding use eglot and clangd-19 for LSP? I got that installed and glad to have parameter hints, don't need VScodium when you have emacs, heh.

    • @multicoloredwiz
      @multicoloredwiz 24 วันที่ผ่านมา

      He doesn't use an LSP, he just uses emacs compile mode to follow where errors happened

    • @cybernit3
      @cybernit3 24 วันที่ผ่านมา

      @@multicoloredwiz Oh I assumed he did. Do you use an LSP? I finally got an LSP installed in Emacs. Just starting to love Emacs, strange for some people Emacs turns them off and they love VIM. I can't stand VIM or any modal editor.

  • @BRLN1
    @BRLN1 24 วันที่ผ่านมา +4

    what is so funny about using toml for setup configuration?
    There never was an endorsed build system for python ... developer just stacked stuff upon each other.
    Finally the python software foundation wanted to unify and standardize a build system for python packages.
    While doing so they wanted to move away from the dynamically interpreted setup-dot-py to a static file format.
    They were considering json, yaml, toml and other formats.
    Finally they settled with toml.

  • @yang5597
    @yang5597 24 วันที่ผ่านมา

    Скоро превью правда начнут светится

  • @pidojaspdpaidipashdisao572
    @pidojaspdpaidipashdisao572 24 วันที่ผ่านมา

    the modern slop, DOA

  • @JamesSjaalman
    @JamesSjaalman 22 วันที่ผ่านมา

    There is no pipe (or at least: there should not be one). The pipe is an implementation artifact.

  • @Odod4000
    @Odod4000 24 วันที่ผ่านมา +2

    i really like your videos! 👍👍👍

  • @azharalibhutto1209
    @azharalibhutto1209 24 วันที่ผ่านมา

    ❤❤❤❤

  • @bujitself
    @bujitself 23 วันที่ผ่านมา

    Pretty sure JavaScript keeps all of its legacy forever (except for 'with' keyword)

    • @brambasiel
      @brambasiel 23 วันที่ผ่านมา

      A common pattern with coding influencers is that they have strong opinions about things they don't know (fully) about. They gladly say and believe everything negative about the things they don't like and will only praise and believe the positives about the things they do like.

  • @user-lz2oh9zz4y
    @user-lz2oh9zz4y 24 วันที่ผ่านมา

    Please, let it die already. It's been 4 years

  • @oserodal2702
    @oserodal2702 24 วันที่ผ่านมา

    Python doesn't have semver (or at least until very recently), and AFAIK, only Rust/Cargo mandates SemVer anyways.
    Point being, SemVer is a Tower of Jenga that can easily fall just cause. And also why developers should almost always "lock" their dependencies (old Python 2 didn't, and so made a shitbed of a mess).

  • @damnloveless
    @damnloveless 24 วันที่ผ่านมา

    how tf do i draw a circle

  • @replikvltyoutube3727
    @replikvltyoutube3727 24 วันที่ผ่านมา +42

    Having python2 and python3 installed system-wide simultaneously 💀💀💀

    • @FlanPoirot
      @FlanPoirot 24 วันที่ผ่านมา +18

      hm? a lot of linux distros still ship python2 by default iirc

    • @2khz
      @2khz 24 วันที่ผ่านมา +3

      @@FlanPoirot python symlinked to python3 typically tho

    • @FlanPoirot
      @FlanPoirot 24 วันที่ผ่านมา +12

      @@2khz python is python3 and python2 is well python2
      that's how it is now, but a few years ago it was the other way around

    • @RunningRay9
      @RunningRay9 24 วันที่ผ่านมา +2

      no one remembers python1 😢

    • @phillipanselmo8540
      @phillipanselmo8540 24 วันที่ผ่านมา +1

      ​@@RunningRay9literally useless

  • @multicoloredwiz
    @multicoloredwiz 24 วันที่ผ่านมา

    It feels sadistic to watch this.....

  • @polskafan
    @polskafan 24 วันที่ผ่านมา

    Fahrn fahrn fahrn auf der Autobahn

  • @mynarco_yoyo
    @mynarco_yoyo 24 วันที่ผ่านมา +1

    are you planning on looking into gleam or odin at any point?

  • @glowiak3430
    @glowiak3430 24 วันที่ผ่านมา +1

    13:50 Why is your Google in German?

    • @finskiy_yt
      @finskiy_yt 24 วันที่ผ่านมา

      VPN, In Russia youtube is "slowed", and soon RKN block google because RKN fined google $20,565,635,200,000,003,000,000,000,000,000,000 (yes, its real number)

    • @multicoloredwiz
      @multicoloredwiz 24 วันที่ผ่านมา

      Russians are blocked from tons of western companies' sites. He likely uses a German von

    • @random2huplayer274
      @random2huplayer274 23 วันที่ผ่านมา

      proxy maybe

  • @ac130kz
    @ac130kz 24 วันที่ผ่านมา

    Not just their website is dead, Python 2 has been dead for 7 years now

  • @ryonagana
    @ryonagana 24 วันที่ผ่านมา

    i've used python 2 until 2014. now just python 3
    dont need those headers to tell to run as utf-8, binary data was always treated as ASCII text, in Python 3 have the byte type
    python 3 becomes slightly harder than python 2. and the news is python 3 get rid of GIL, so core 0 lock is no more

  • @Sitris-h7q
    @Sitris-h7q 24 วันที่ผ่านมา

    "Useful python" 💀

  • @burakgazicetin3628
    @burakgazicetin3628 24 วันที่ผ่านมา

    why the browser is German???

  • @jxn.s2435
    @jxn.s2435 24 วันที่ผ่านมา +2

    Why dont you like docker containers? :O

    • @coffee-is-power
      @coffee-is-power 24 วันที่ผ่านมา +3

      yeah it would be tha fastest way to get the test suite running

    • @yablock0
      @yablock0 24 วันที่ผ่านมา +4

      I guess he hates complex abstractions. At least those he doesn't understand. And it's a lot to understand how docker actually works.

    • @oserodal2702
      @oserodal2702 24 วันที่ผ่านมา +2

      Containers are nice, but Docker definitely isn't

    • @Acceleration3
      @Acceleration3 24 วันที่ผ่านมา +8

      Because this is an application to send websocket packets to test a websocket implementation. It shouldn't need all this complexity to build something like this and people who have this mentality are the reason software quality goes to shit.

    • @theevilcottonball
      @theevilcottonball 24 วันที่ผ่านมา +4

      Because they are slow, use a lot of ram, and disk space. He might have a new laptop now, but I do not and that is the reason why I do not use docker.

  • @jimshtepa5423
    @jimshtepa5423 24 วันที่ผ่านมา

    вы в россии живете?

  • @itsmenewbie03
    @itsmenewbie03 24 วันที่ผ่านมา

    Second

  • @sukaisnaini1843
    @sukaisnaini1843 24 วันที่ผ่านมา +3

    first?

    • @TsodingDaily
      @TsodingDaily  24 วันที่ผ่านมา +40

      No, I'm first. I literally created this channel.

    • @theevilcottonball
      @theevilcottonball 24 วันที่ผ่านมา +2

      @@TsodingDaily No. You asked TH-cam to create it for you. It is not your channel. Google is in control here.

    • @sukaisnaini1843
      @sukaisnaini1843 24 วันที่ผ่านมา

      @@TsodingDaily hehe

    • @sukaisnaini1843
      @sukaisnaini1843 24 วันที่ผ่านมา

      @@TsodingDaily btw any plan using raylib in vlang?

    • @multicoloredwiz
      @multicoloredwiz 24 วันที่ผ่านมา

      ​@@TsodingDailythis guy is lying. He's actually the third zozen

  • @hbobenicio
    @hbobenicio 24 วันที่ผ่านมา +2

    python 2 dependency tools hell.
    python 3:
    $ python -m venv venv; source ./venv/bin/activate; pip install -r requirements.txt
    done.