Virtual DOM for Your Terminal

Поділитися
Вставка
  • Опубліковано 29 лис 2024

КОМЕНТАРІ • 102

  • @thisguyisnotable
    @thisguyisnotable 11 місяців тому +172

    this guy can never run out of content

    • @ade5324
      @ade5324 11 місяців тому +27

      as long as new javascript libraries keep coming, we wont run out of content

    • @thisguyisnotable
      @thisguyisnotable 11 місяців тому +1

      @@ade5324 amen brotha 🤠

    • @ruchanadguzel1237
      @ruchanadguzel1237 11 місяців тому +13

      Probably there are more than 10 videos upcaming. This guy studies before stream and then streams. Walking treasure

    • @Anubis10110
      @Anubis10110 11 місяців тому +5

      He is not a guy .. he is a talented programmer

    • @LSHV
      @LSHV 11 місяців тому

      fr

  • @bresent
    @bresent 11 місяців тому +152

    “It works on real operating systems Linux, unfortunately I got some reports from a video game os called.. doors? Oh yea its windows, kind of expected”
    That line got me 😂😂

    • @itsdrdy5551
      @itsdrdy5551 11 місяців тому +1

      What’s the timing?

    • @dnkreative
      @dnkreative 11 місяців тому +3

      Doors - operating system for gaming. Pi Doors - Raspberry Pi build of Doors OS for gaming,

    • @ZaaackBR
      @ZaaackBR 11 місяців тому +1

      @@itsdrdy5551 3:08

  • @jaumeguimeramarquez2244
    @jaumeguimeramarquez2244 11 місяців тому +11

    I don't know what l like the most. Either his irony or his wisdom ❤

  • @itsdrdy5551
    @itsdrdy5551 11 місяців тому +36

    add a count element so we can see in real time in the terminal how many users are connected

    • @legendrags
      @legendrags 11 місяців тому +3

      yeah it would be a cosmetic and a bit of use for uh special people

    • @korigamik
      @korigamik 11 місяців тому +1

      ​@@legendragswho are the special Bros

  • @hamzadlm6625
    @hamzadlm6625 11 місяців тому +13

    3:10 is the reason I watch this guy haha

  • @deno8322
    @deno8322 11 місяців тому +29

    WHEN I SEE YOUR VIDEOS I JUST SIMPLY SAY: "WTF IS THAT POSSİBLE?!?!?!" "BUT WHYY?!?!" (btw I love ur channel, ur so good)

    • @Alfred-Neuman
      @Alfred-Neuman 11 місяців тому +5

      Yeah, I wish I could understand everything he's doing. I'm even struggling with some very normal concepts in Javascript... :(
      To be honest, If I could make one wish, I'd probably do like most people and go directly for a large sum of money instead of learning anything. Then a big secured money delivery vehicle would probably crash in my apartment and render me paralyzed for the rest of my life. (We should be careful what we wish for.)

    • @deno8322
      @deno8322 11 місяців тому +2

      @@Alfred-Neuman Lmao

  • @labsendeyshent
    @labsendeyshent 11 місяців тому +13

    haha yes, react for terminal

  • @God-i2
    @God-i2 11 місяців тому +20

    Is it Mr. Zoozin' ?

    • @ekshalibur
      @ekshalibur 11 місяців тому +9

      a-mista a-zozin

    • @0ia
      @0ia 11 місяців тому +1

      tsoding pronounced zoozin

  • @necuz
    @necuz 11 місяців тому +22

    Ok, so Windows Terminal is so slow that if you simply do a clear and then re-render the screen basically blinks? Is that really the case?

    • @TsodingDaily
      @TsodingDaily  11 місяців тому +30

      I think we need to do a PhD research to figure that out.

    • @morphx666
      @morphx666 11 місяців тому +3

      That is simply not true. I have done many terminal-based apps that require a high fps and they work just fine... if done correctly.

    • @jacksonlevine9236
      @jacksonlevine9236 11 місяців тому +16

      ​@@morphx666 Could you briefly summarize the correct way? I am curious

    • @typedef_
      @typedef_ 11 місяців тому +1

      @@jacksonlevine9236 with unreal engine

    • @SeishukuS12
      @SeishukuS12 11 місяців тому

      @@jacksonlevine9236 On win32, you can read and write to the console text buffer directly, basically like drawing pixels on a screen. I've done double buffered text terminal stuff that way, don't recommend though, it's a bit of a pain.

  • @noctavel
    @noctavel 11 місяців тому +9

    no flickering in 4at now, but lots of flickering in the most radioactive region of Siberia...

    • @TsodingDaily
      @TsodingDaily  11 місяців тому +30

      Building Virtual Dome next

  • @andreshockey
    @andreshockey 11 місяців тому +2

    the circus-clown architecture gets me every time

  • @merveillevaneck5906
    @merveillevaneck5906 6 місяців тому +1

    you know your opinions are quite extreme but in all honesty im here for the constant jabs at anything that doesnt agree with you 😆 keep making content like this

  • @LSHV
    @LSHV 11 місяців тому +4

    „twitter is very dangerous website, with propaganda“ -Rexim, 2023.9

  • @quarxdmz
    @quarxdmz 11 місяців тому +4

    Doors!!! hahaha, you got me thinking

  • @rkdeshdeepak4131
    @rkdeshdeepak4131 11 місяців тому +2

    You can rebind the tmux keys to keep the same directory for new windows/panes.

  • @BrandonWingerAir
    @BrandonWingerAir 11 місяців тому +3

    Maybe Chrome has to send your keystrokes to a server before they show up

  • @AEF23C20
    @AEF23C20 11 місяців тому +4

    глобальный смысл следующий:
    напишите собственную консоль, на собственном рендере, с собственным пулом команд, и возможностью подключения внешнего буфера строк
    есть процесс, в нём два потока - основной и поток рендера
    если вы меняете буфер в основном потоке, то поток рендера чекает буфер и выводит изменения в буфере строк
    понятное дело что если изменений нет - то перерендер не нужен, а если изменения есть - то гребите с конца буфера последние 25 строк и рендерьте их
    и естественно нужен фпс-лимитер, на 15фпс-ов или сколько вам там нужно это не суть
    смысл - внешний буфер работает в основном потоке и делайте с ним что хотите, а поток рендера чекает изменения и выводит эти изменения
    всё это работает БЕЗ блокировок вообще
    и т.к. поток рендера чекает изменения редко, то в буфер можете валить хоть миллиарды строк - рендер отрендерит без проблем миллиарды строк, и на самом деле - нет, рендер отрендеривает последние 25, со скоростью 15фпс-ов, т.е. если закидываете на вывод миллиард - бОльшая часть будет просто скипнута рендером
    итого:
    сколько бы вы строк не забрасывали в консоль - консоль строчки прожуёт и выведет
    это самое главное в консоли - что бы она не жрала память на рендере
    второе главное - рендер не должен блокировать основной поток, это там где буфер болтается
    всё остальное уже фигня)
    можете накрутить на это всё что хотите, собственный буфер команд, режим терминала, шифрование из коробки итд итп
    у меня собственная консоль используется в качестве ядра любого процесса-модуля, потому что мои приложения многопроцессовые все
    так вот каждый процесс-модуль запускается в моей консоли, и каждая исполняемая часть модуля запускается набором команд, но команды можно ловить из внешнего буфера сколько бы их ни было - они все заюзаются с разделяемой памяти
    в итоге моё по - это например пять процессов и соответственно пять консолей где консоли сами себе и друг другу команды пишут и исполняют их, а я это всё вижу глазками))) все ошибки вижу, время исполнения, всё это пишется в логи автоматом, итд итп
    смысл: можно вмешиваться в процессы через консоли и отлаживать всё это дело, потому что вменяемых многопроцессовых отладчиков не существует
    щяс я на этапе того, что бы мои процессы-консоли общались друг с другом удалённо, ну что бы в итоге получить быстрое банальное развёртывание децентрализованных приложений - собственно и всё) на этом можно ехать хоть куда и писать абсолютно всё

    • @AEF23C20
      @AEF23C20 11 місяців тому +2

      и да, эта самописная консоль жрёт при 15фпс-ах аж 0.2% ядра, т.е. четыре консоли враз отрендеривая любое кол-во строк - выжрут не более 1% процессора, а так и есть - тесты именно это и показывают
      тестовый проц - intel gen3, i5 3570k
      без фпс-лимитера оно выдаёт 1000+ фпс-ов, причём БЕЗ драйвера видеокарты, он нахрен не нужен, т.к. юзается галимый гди, а гди может ВСЁ из коробки, и это супербыстрый рендер, работающий тупо на проце

    • @jacksonlevine9236
      @jacksonlevine9236 11 місяців тому +1

      Russia has Adderall too?

  • @fefeisbored1958
    @fefeisbored1958 11 місяців тому

    i think they introduced that delay in the search bar so it won't take forever when it's searching for one letter in a really big document.

  • @josedejesuslopezdiaz
    @josedejesuslopezdiaz 11 місяців тому +7

    crossterm team could add that code as a feature maybe.

    • @QckSGaming
      @QckSGaming 11 місяців тому +1

      Too high level KEKW

  • @tomaspecl1082
    @tomaspecl1082 11 місяців тому +7

    Doors OS? More like Backdoors OS :D

  • @yaksher
    @yaksher 11 місяців тому +5

    I'm so confused why he's using &[char] instead of &str and then constantly complaining about needing to convert his strings into &[char]

  • @HWeingard
    @HWeingard 11 місяців тому +6

    I always forget the name of the other operating system. Doors. Thanks for reminding me about it.

    • @LSHV
      @LSHV 11 місяців тому

      thx i thought it was trapdoors

  • @anon_y_mousse
    @anon_y_mousse 11 місяців тому +5

    The reason why most people have problems with their terminal is because they're using the curse-or instead of abbreviating the variable name to just cur. And let me tell you, using the curses library doesn't help, especially when you set the output to hex. Just asking for trouble. God help you if you select things with witches. Hopefully you have an escape broom.

  • @tens0r884
    @tens0r884 11 місяців тому +1

    the GOAT i do believe

  • @leigh7529
    @leigh7529 11 місяців тому

    29:17 beatboxing is essential when resizing buffers

  • @Ross-ng4xl
    @Ross-ng4xl 11 місяців тому +1

    My favorite React channel < 3

  • @phillipbeck886
    @phillipbeck886 11 місяців тому +1

    Maybe I just couldn't follow, but is there any reason for having two buffers and calculating the diff instead of having a Patches vec that gets cleared every frame and appending to it on put_cell / put_cells?

    • @pwii
      @pwii 11 місяців тому +2

      if you replace the value of one cell many times it would create an element in the patches array for every operation, while having a second buffer replaces that element directly and only one operation is needed to draw it

    • @phillipbeck886
      @phillipbeck886 11 місяців тому

      @@pwii oh, makes sense. Hadn't thought of that. Thanks for the response

  • @UnrealCatDev
    @UnrealCatDev 11 місяців тому +2

    I forgor Windows isn't **real** operating system

  • @pe....
    @pe.... 11 місяців тому +3

    This title made me faint. Hope this is not true.

  • @younesch1998
    @younesch1998 11 місяців тому +6

    I haven't seen the video yet ,please tell me you are trying to fix the web by building a text-based terminal browser 🤩

    • @fiona9891
      @fiona9891 7 місяців тому

      lynx exists, it works about as well as you'd expect for a terminal browser

    • @younesch1998
      @younesch1998 7 місяців тому

      Yes but most of the website layouts are not displayed correctly, i am thinking about a solution that extracts only text content then format it in a standard way like markdown

  • @secondengineer9814
    @secondengineer9814 9 місяців тому

    For copying the buf_curr to buf_prev, could you just put_cell each time you render a patch cell?

  • @cornjulio4033
    @cornjulio4033 10 місяців тому

    very cool episode

  • @hukunamutata
    @hukunamutata 11 місяців тому +2

    So cool

  • @averythin348
    @averythin348 11 місяців тому +1

  • @lptimey
    @lptimey 11 місяців тому

    1:36:30 would wine work?
    I think I can remember that you used it once before but I’m not shure.

  • @cobbcoding
    @cobbcoding 11 місяців тому +8

    JSX for terminal when???

    • @TEHNOTRAHER
      @TEHNOTRAHER 11 місяців тому +1

      unfortunately it already exists, google "react ink"

    • @dealloc
      @dealloc 11 місяців тому +2

      Dioxus and React Ink already provides that.

  • @jiraibozo
    @jiraibozo 11 місяців тому +1

    istg i had that idea yesterday

  • @TheAlexgoodlife
    @TheAlexgoodlife 11 місяців тому +1

    Damn you grew up in Russia during the 90s, good to see you found success

  • @djupstaten2328
    @djupstaten2328 11 місяців тому

    Ansi spells not working? Perhaps for the better.

  • @neociber24
    @neociber24 11 місяців тому +1

    Let's rewrite life in Rust

  • @user-sb5vt8iy5q
    @user-sb5vt8iy5q 11 місяців тому +3

    hello mr zozin

  • @jimshtepa5423
    @jimshtepa5423 11 місяців тому +1

    маленькие мягкие окна

    • @AEF23C20
      @AEF23C20 11 місяців тому

      одобряю всецело

  • @MrA6060
    @MrA6060 10 місяців тому

    gotta be honest .tv is not television but tuvalu.

  • @MrDody30
    @MrDody30 11 місяців тому +3

    Operating system for video games 🤣😂

  • @eldyj
    @eldyj 11 місяців тому

    4:25 no way, tsoding shows windows propaganda content on youtube!

  • @G-lost109
    @G-lost109 11 місяців тому

    Bruh, stap!

  • @benjamingriffith4991
    @benjamingriffith4991 11 місяців тому

    Sub for life here lol ty for this vid

  • @BrandonWingerAir
    @BrandonWingerAir 11 місяців тому

    Open the nindow

  • @pookiepats
    @pookiepats 7 місяців тому

    React in my terminal is a hell no.

  • @MrPetzold123
    @MrPetzold123 11 місяців тому

    You can do everything, even the horrible (but idiomatic 😂) functional style programming like in (about) 1:04:00 😮😊...
    edit. needed to fix enumerate thingy in (about) 1:20:50
    edit2. That iterator thingie is actually readable after reading Rust iterator docs for 1/2 an hour 🤣...

  • @briankrause5948
    @briankrause5948 11 місяців тому +3

    Can you please 1 time spell out your name for me?

    • @cobbcoding
      @cobbcoding 11 місяців тому +7

      T s o d i n g
      did that help

    • @briankrause5948
      @briankrause5948 11 місяців тому

      nah the place where he says Amista Azuzin idk@@cobbcoding

    • @MemeConnoisseur
      @MemeConnoisseur 11 місяців тому +2

      ​@@cobbcodingnow can you spell all the numbers in your credit card ? Thanks

    • @LSHV
      @LSHV 11 місяців тому

      @@MemeConnoisseur9 1 1

  • @yablock0
    @yablock0 11 місяців тому

    ono

  • @glowiak3430
    @glowiak3430 11 місяців тому +5

    Windows is bad!!!!

    • @MyManJohnny
      @MyManJohnny 11 місяців тому

      Why is that? Is it because windows focuses mainly on experience of regular people and not developers?

    • @glowiak3430
      @glowiak3430 11 місяців тому +1

      @@MyManJohnny windows is shit filled with bloat, spyware and ads not to mention it is slow as faq nothing runs without a dozen versions of visual c++ runtime viruses ravage it as if there was no security at all

    • @MyManJohnny
      @MyManJohnny 11 місяців тому

      Adds? Bloat? What are you talking about.. There are no adds.. By mentioning the dozen versions of c++ runtime you've confirmed what I said and I have no fucking clue what viruses are you talking about. If you manage to get a virus with active defender, it's your fault, you should know better and not install stuff from the sketchies websites you can find on the internet.

    • @LSHV
      @LSHV 11 місяців тому

      yes

    • @ekshalibur
      @ekshalibur 11 місяців тому

      win7 are gud!!!

  • @ult1873
    @ult1873 11 місяців тому

    no please!

  • @wchen2340
    @wchen2340 11 місяців тому +1

    a Gaming-TTY™