“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 😂😂
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.)
@@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.
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
глобальный смысл следующий: напишите собственную консоль, на собственном рендере, с собственным пулом команд, и возможностью подключения внешнего буфера строк есть процесс, в нём два потока - основной и поток рендера если вы меняете буфер в основном потоке, то поток рендера чекает буфер и выводит изменения в буфере строк понятное дело что если изменений нет - то перерендер не нужен, а если изменения есть - то гребите с конца буфера последние 25 строк и рендерьте их и естественно нужен фпс-лимитер, на 15фпс-ов или сколько вам там нужно это не суть смысл - внешний буфер работает в основном потоке и делайте с ним что хотите, а поток рендера чекает изменения и выводит эти изменения всё это работает БЕЗ блокировок вообще и т.к. поток рендера чекает изменения редко, то в буфер можете валить хоть миллиарды строк - рендер отрендерит без проблем миллиарды строк, и на самом деле - нет, рендер отрендеривает последние 25, со скоростью 15фпс-ов, т.е. если закидываете на вывод миллиард - бОльшая часть будет просто скипнута рендером итого: сколько бы вы строк не забрасывали в консоль - консоль строчки прожуёт и выведет это самое главное в консоли - что бы она не жрала память на рендере второе главное - рендер не должен блокировать основной поток, это там где буфер болтается всё остальное уже фигня) можете накрутить на это всё что хотите, собственный буфер команд, режим терминала, шифрование из коробки итд итп у меня собственная консоль используется в качестве ядра любого процесса-модуля, потому что мои приложения многопроцессовые все так вот каждый процесс-модуль запускается в моей консоли, и каждая исполняемая часть модуля запускается набором команд, но команды можно ловить из внешнего буфера сколько бы их ни было - они все заюзаются с разделяемой памяти в итоге моё по - это например пять процессов и соответственно пять консолей где консоли сами себе и друг другу команды пишут и исполняют их, а я это всё вижу глазками))) все ошибки вижу, время исполнения, всё это пишется в логи автоматом, итд итп смысл: можно вмешиваться в процессы через консоли и отлаживать всё это дело, потому что вменяемых многопроцессовых отладчиков не существует щяс я на этапе того, что бы мои процессы-консоли общались друг с другом удалённо, ну что бы в итоге получить быстрое банальное развёртывание децентрализованных приложений - собственно и всё) на этом можно ехать хоть куда и писать абсолютно всё
и да, эта самописная консоль жрёт при 15фпс-ах аж 0.2% ядра, т.е. четыре консоли враз отрендеривая любое кол-во строк - выжрут не более 1% процессора, а так и есть - тесты именно это и показывают тестовый проц - intel gen3, i5 3570k без фпс-лимитера оно выдаёт 1000+ фпс-ов, причём БЕЗ драйвера видеокарты, он нахрен не нужен, т.к. юзается галимый гди, а гди может ВСЁ из коробки, и это супербыстрый рендер, работающий тупо на проце
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.
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?
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
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
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 🤣...
@@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
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.
this guy can never run out of content
as long as new javascript libraries keep coming, we wont run out of content
@@ade5324 amen brotha 🤠
Probably there are more than 10 videos upcaming. This guy studies before stream and then streams. Walking treasure
He is not a guy .. he is a talented programmer
fr
“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 😂😂
What’s the timing?
Doors - operating system for gaming. Pi Doors - Raspberry Pi build of Doors OS for gaming,
@@itsdrdy5551 3:08
I don't know what l like the most. Either his irony or his wisdom ❤
add a count element so we can see in real time in the terminal how many users are connected
yeah it would be a cosmetic and a bit of use for uh special people
@@legendragswho are the special Bros
3:10 is the reason I watch this guy haha
WHEN I SEE YOUR VIDEOS I JUST SIMPLY SAY: "WTF IS THAT POSSİBLE?!?!?!" "BUT WHYY?!?!" (btw I love ur channel, ur so good)
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.)
@@Alfred-Neuman Lmao
haha yes, react for terminal
Is it Mr. Zoozin' ?
a-mista a-zozin
tsoding pronounced zoozin
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?
I think we need to do a PhD research to figure that out.
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.
@@morphx666 Could you briefly summarize the correct way? I am curious
@@jacksonlevine9236 with unreal engine
@@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.
no flickering in 4at now, but lots of flickering in the most radioactive region of Siberia...
Building Virtual Dome next
the circus-clown architecture gets me every time
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
„twitter is very dangerous website, with propaganda“ -Rexim, 2023.9
Doors!!! hahaha, you got me thinking
You can rebind the tmux keys to keep the same directory for new windows/panes.
Maybe Chrome has to send your keystrokes to a server before they show up
глобальный смысл следующий:
напишите собственную консоль, на собственном рендере, с собственным пулом команд, и возможностью подключения внешнего буфера строк
есть процесс, в нём два потока - основной и поток рендера
если вы меняете буфер в основном потоке, то поток рендера чекает буфер и выводит изменения в буфере строк
понятное дело что если изменений нет - то перерендер не нужен, а если изменения есть - то гребите с конца буфера последние 25 строк и рендерьте их
и естественно нужен фпс-лимитер, на 15фпс-ов или сколько вам там нужно это не суть
смысл - внешний буфер работает в основном потоке и делайте с ним что хотите, а поток рендера чекает изменения и выводит эти изменения
всё это работает БЕЗ блокировок вообще
и т.к. поток рендера чекает изменения редко, то в буфер можете валить хоть миллиарды строк - рендер отрендерит без проблем миллиарды строк, и на самом деле - нет, рендер отрендеривает последние 25, со скоростью 15фпс-ов, т.е. если закидываете на вывод миллиард - бОльшая часть будет просто скипнута рендером
итого:
сколько бы вы строк не забрасывали в консоль - консоль строчки прожуёт и выведет
это самое главное в консоли - что бы она не жрала память на рендере
второе главное - рендер не должен блокировать основной поток, это там где буфер болтается
всё остальное уже фигня)
можете накрутить на это всё что хотите, собственный буфер команд, режим терминала, шифрование из коробки итд итп
у меня собственная консоль используется в качестве ядра любого процесса-модуля, потому что мои приложения многопроцессовые все
так вот каждый процесс-модуль запускается в моей консоли, и каждая исполняемая часть модуля запускается набором команд, но команды можно ловить из внешнего буфера сколько бы их ни было - они все заюзаются с разделяемой памяти
в итоге моё по - это например пять процессов и соответственно пять консолей где консоли сами себе и друг другу команды пишут и исполняют их, а я это всё вижу глазками))) все ошибки вижу, время исполнения, всё это пишется в логи автоматом, итд итп
смысл: можно вмешиваться в процессы через консоли и отлаживать всё это дело, потому что вменяемых многопроцессовых отладчиков не существует
щяс я на этапе того, что бы мои процессы-консоли общались друг с другом удалённо, ну что бы в итоге получить быстрое банальное развёртывание децентрализованных приложений - собственно и всё) на этом можно ехать хоть куда и писать абсолютно всё
и да, эта самописная консоль жрёт при 15фпс-ах аж 0.2% ядра, т.е. четыре консоли враз отрендеривая любое кол-во строк - выжрут не более 1% процессора, а так и есть - тесты именно это и показывают
тестовый проц - intel gen3, i5 3570k
без фпс-лимитера оно выдаёт 1000+ фпс-ов, причём БЕЗ драйвера видеокарты, он нахрен не нужен, т.к. юзается галимый гди, а гди может ВСЁ из коробки, и это супербыстрый рендер, работающий тупо на проце
Russia has Adderall too?
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.
crossterm team could add that code as a feature maybe.
Too high level KEKW
Doors OS? More like Backdoors OS :D
I'm so confused why he's using &[char] instead of &str and then constantly complaining about needing to convert his strings into &[char]
I always forget the name of the other operating system. Doors. Thanks for reminding me about it.
thx i thought it was trapdoors
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.
the GOAT i do believe
29:17 beatboxing is essential when resizing buffers
My favorite React channel < 3
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?
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
@@pwii oh, makes sense. Hadn't thought of that. Thanks for the response
I forgor Windows isn't **real** operating system
This title made me faint. Hope this is not true.
I haven't seen the video yet ,please tell me you are trying to fix the web by building a text-based terminal browser 🤩
lynx exists, it works about as well as you'd expect for a terminal browser
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
For copying the buf_curr to buf_prev, could you just put_cell each time you render a patch cell?
very cool episode
So cool
❤
1:36:30 would wine work?
I think I can remember that you used it once before but I’m not shure.
JSX for terminal when???
unfortunately it already exists, google "react ink"
Dioxus and React Ink already provides that.
istg i had that idea yesterday
Damn you grew up in Russia during the 90s, good to see you found success
Ansi spells not working? Perhaps for the better.
Let's rewrite life in Rust
hello mr zozin
маленькие мягкие окна
одобряю всецело
gotta be honest .tv is not television but tuvalu.
Operating system for video games 🤣😂
4:25 no way, tsoding shows windows propaganda content on youtube!
Bruh, stap!
Sub for life here lol ty for this vid
Open the nindow
React in my terminal is a hell no.
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 🤣...
Can you please 1 time spell out your name for me?
T s o d i n g
did that help
nah the place where he says Amista Azuzin idk@@cobbcoding
@@cobbcodingnow can you spell all the numbers in your credit card ? Thanks
@@MemeConnoisseur9 1 1
ono
Windows is bad!!!!
Why is that? Is it because windows focuses mainly on experience of regular people and not developers?
@@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
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.
yes
win7 are gud!!!
no please!
a Gaming-TTY™