@@joaopedrodeamorimpaula8965 i prefer base vanilla vi with screens, but whatever gives a good workflow without disrupting coding cadence I suppose! Never really tried EMacs in all my 40+ years of professional coding but it does look cool 😎
And this is truly one of the better reasons to program in C - to piss off the soy latte children that constantly rail against all things older than their birth year
when you spent XXX hours on project to be so nice, then make the video (+X hours) this is basically nothing .. a little pleasure if anything :D Most programmers have OCD (I have it totally - I need to polish and polish AND POLISSSSSHHHH every little thing on project/video etc.) do I would be maybe more surprised if it wouldn't be there ._.
@@TheSulrossare there really people like that though and are you even a normal regular person? Ive been programming all my career for a living but I don't let it govern my entire personality or how I view others. Let alone a single framework or language. This is like if you worked in forestry and you have people who like hand saws and people who like chain saws forming dumb factions online and calling each other stupid shit like soyboy over it. They're literally just tools guys calm down. They're not a defining personality trait and definitely nothing to be this tribalistic over.
OH MY GOD. I PROGRAM IN REACT. I'M SOOOOOOOOOOOOOOO PISSED. pshhhhhhhhhh whatever bro. DO UI IN WHATEVER LANGUAGE YOU WANT!!!!!!! Do itin SPANISH for all I care.
As someone who works with react in his day job i appreciate your effort to actually understand what is going on. I wish i could approach every new technology in that manner. Unfortunately often (at least at work) there is no time for that. I have no understanding for those who get offended if someone is genuinely trying to explore and understand how something works. Keep them VODs coming. Love it.
It's the smugness and elitism that rubs people the wrong way. I've never met any web developer who gets offended at someone learning the inner workings of a tool. In fact, many of them recommend doing that to get a better understanding of the framework being used. However, it's when people act like they know better, are better, and generally look down on web devs that rubs people the wrong way. Not the method of learning.
@@daneparchmentjr the problem is that most web devs refuse to learn or don't show interest in learning how things works really, they just want stuff that works and are easy to use thats it, its understandable that for some people this is just a 9-5 job and thats it, but for others there's no excuses, i dont really look down on anyone since im not a genius or anything but im drifting away from web dev for this exact reason, im tired of working with people that don't know shit that refuse to document himself on how things work and often are in some senior/manager role, this doesn't happen in system/embedded programming, down there people know their shit
@@sharkpyro93 Just because you've had a shitty experience with poorly qualified individuals. Doesn't mean that most web developers are like that. My counterpoint is that where I work and many of the other places where I know people, all have web devs who know there stuff and understand their tools. Web development has the highest job saturation atm, so of course numbers wise there are going to be more devs who aren't qualified for their roles than in other mediums. And of course this happens in every other programming medium as well. Don't pretend like it doesn't. Just again because embedded devs are more specialized they have a lower saturation of jobs and thus there are less devs that would be unqualified. But it still happens. Even Tsoding, in his own video didn't even try to understand why the tools worked like they do, and what problems they are solving. So he's a perfect example of what you're refering to from the embedded/low side of things
Not usually one to jump in with feature suggestions, but I think there should be another type of plugin, one that renders meta-data from the audio file over the visualization. E.g "Artist - Track Name (year)" ... then you can combine viz + metadata-render plugins in different ways for different presentation styles.
1:24:26 that's why I think open source is so important, you can actually reach someone, and talk to them about your needs, or you can write your own code, and contribute, addressing your needs!
Wow, you can contact actual devs? All I get is forgotten inboxes, stale web sites with years-old articles and other lost members of the 'Linux community' asking questions and offering 'best' guesses - or telling me I've asked the 'wrong' question in the 'wrong' way O_o Expert or detailed knowledge is still rare to get hold of and is usually hidden. ...IMHO.
The thing that pisses me off a lot is the fact that we (soft.devs) are supposed to do a whole analisys of the code before doing any modification/improvement, but as you perfectly pointed out, we have to create a whole simulation of how things would work while also convincing everybody else, up until reality strikes and you now have to explain yourself why things are slower than expected...
I love the simplicity of Tsoding's code. Sometimes I have a weird tendency of overcomplicating originally simple ideas - like modularising code that could stay "monolithic" without any issues or "mental cost". I think all my attempts at UIs based on "quad-rendering" ends up massively overcomplicated when simple bounds via variables would resolve.
Over the last 30 years, I have noticed that too many modern coders cannot simplify or encode the original problem enough to produce a good solution. I think the ongoing degradation of code quality is mainly due to this. I haven't coded much at all in the last 10 years :/
@@_Stin_ I feel that. After 20 years in this industry, I gave up on pushing for quality at my job. I feels like one day I'll have to explain what a "loop" is. Specially after AI tools like GitHub pilot becomes more popular.
@@jeanpierre5941 I would guestimate that only ~30-40% of code written in the last 15 years is fit for it's intended purpose and has any level of dependability or reliability. GNU broke things when they stopped having to produce code that did anything - Many programmers even cite the lack of any warranty as liberating. O_o I find it hard to trust large software houses more than bedroom coders after seeing the source code for Windows and Office, let alone the Linux offerings lol People are generally lazy and programmers are generally people... Have you seen the mess of code that constitutes our banking infrastructure? Our government infrastructure or our even just our School Information Management Systems? Imagine being told "You don't have to make it that secure/reliable/good, the contract is only worth $88000."
@@_Stin_ Completely agree. I'm a Linux and Unix admin, but do some coding and have read tons and tons of old C code that is still around from probably the 80's I would assume. I don't know how to describe it other than "tight". As simple as humanly possible. The notes and comments are out of this world too. Its like reading a proper textbook.
Yeah you clearly tickled a lot of balls, but what's the point of taking 2 hours for something which can be done in 5 mins? And on top of that what's up with the fanatics here??
I think this may be short-term. When something that worked for 10 years becomes really confusing, I keep using it out of habit. Hopefully, I eventually break the habit after the mental association of “this works” is gone.
C was my second language, so I have no issue writing anything in C :). I taught myself assembler way back in the day using DOS DEBUG command. Pre internet days, so I had to learn everything from the library and experimentation. When I discovered C suddenly writing programs became 1000% easier :). I later went to university and discovered that I was already using many of the patterns they were teaching due to the fact that I had the low level background.
49:20 It is UNREAL just how true this is about software techniques being forgotten and then reinvented decades later as the hot new thing. And I don't mean that to be taken in a pessimistic way to dismiss new things. I'm not sure this phenomenon is a "problem" that can be "solved". There are often good reasons for it when an idea fizzles out the first time and then becomes relevant again in a different context.
lmao this whole video is just about the scrollable list on the left and the full-screen button? Not even the visualizer itself? That is incredible! Guy tries to dunk on web devs by putting out a TWO HOUR VIDEO about something that would take a beginner react dev 5 minutes with one hand and while being blindfolded. But don't forget: The C version of the UI is 0.25 ms more performant so the scrolling is actually faster to an extent that is not even perceiveable by the human eye. Great job!
@TsodingDaily I was always wondering if a GUI done in C could do custom window management without utilizing the actual Window-Manager or the hooks (of the OS/Core) provided, meaning: Is it possible to split the elements inside your Musializer into separate windows in relation to the main (visualization) window, without explicitly requesting the actual position/dimensions/focus/etc. from the system (OS/WM) and can these subwindows be spawned without the OS/WM-hooks. What i am thinking of is little modules/subwindows, that can only run attached to the main window (instead of splitting the view inside of it), but are not themselves represented in the process/task-view, meaning they shall not be treated at all standalone. So far the only way i found to do so was by creating a transparent window, use that as a sandbox and write my own layout/wm, but this is icky, requires working with the actual window-manager too, which makes cross-platform approaches unfeasible (if you want to support all major systems and Desktops/Widget-Systems) because it gets big and convoluted and it is easy to oversee/slip-in errors unknowingly breaking the modularization. Any input appreciated. Keep up the great work!
Tsoding.. please understand.. us React devs work with React not because we hate low lvl C shit, but because these are the only jobs that exists in the tsoding-marked. If we could all do cool C shit and make money of course we would
It’s great to know vanilla web dev, but don’t let anyone dissuade you from learning react. The reality is that it’s the most use web framework and if you wish you find employment in this industry it’s pretty much essential to know.
One day in my university, the teacher straight up asked to make a calculator in C with full UI, but didn't even bother to tell how lmao and only gave us 1hr☠️ We kept asking him to understand, we don't know this shit, but he himself didn't know how to, so he just kept ignoring us and insisted on doing in C I researched a lot, made something, but ended up showing a react project 😂 and showed him a random C code 😂. Shit takes hours to do ui in C with no understanding, he wanted us to do it in 1.
This was the video that finally made me subscribe and finish a stream. I am making a game engine with a C base, so I expect this to be massively helpful. Been reading alot of OpenGL and Raylib Documentation, lets do this!
Why not to do this: -the dev who wrote this long piece of code leaves org -client wants changes -new dev is pulling their hair trying to find how this long code works -the new dev gets the same hairline as this guy Jokes aside, this is pretty remarkable (not fun to do but still remarkable)
23:35 just pop it in it's own thread and the thread can exit whenever it's done. during which it can let the main thread know if it's sent the cancel and the main thread can just hide away the still continuing ffmpeg. **Edit:** also the octal permissions can be replicated with the explicit permissions functions, reading them is slower then making them though...maybe, you have to loop for reading after all
Its so hard, but its good. It feels good though, to laugh at react developers. Because they are bunch of weird people. I mean really weird, what kind of person will constantly be busy working on JS ecosystem? Maybe they write too fast for such a slow language? Okay enough ranting, can u do something like this but with language like Kotlin?
17:15 analyzation? Yes, that's an English word. In common use, analysis and analyzation are the same thing. The technical difference is that analyzation is a means to an end, while analysis is an end in itself; i.e. engineers perform analyzations, mathematicians perform analysis. Why are those separate words? I don't know either, but I suppose it's the same thing as the difference between running and a foot race. Also, analysation is the alternate spelling for analyzation that my phone is insisting I autocorrect to; apparently that's the British/Canadian version. I'm American, analyzation is the correct phonetic spelling, and you weirdos on the other side of the pond can pound sand for all I care. Britain invented "soccer", "though", and the imperial system of weights and measures, so I think it's safe to say that "colour" and "analysation" are also wrong. PS: the word "analyzation" is slowly starting to look like a goofy collection of letters and not an actual word. Please send help, I fear someone has slipped drugs into my breakfast.
That doesn't account for misclicks tho, it'll be really annoying if, while setting it up in a second monitor you click while moving the window and exit the full-screen, maybe it could work but it might just be better to require full intent to exit that mode
1:35:00 Texture atlases are somewhat rare on the web these days but they were very common 7-10 years back while forums were popular. Minecraft wiki uses a texture atlas for block icons but that's about it. People generally use woff icon fonts these days.
Not a bad idea though, to give certain CTA buttons on sites a different poppy color after each visit. Easy doable via cookie. Also useful when using retarget ads.
I was looking into how the rendering is done for that and found you're using raylib. Thought you might be using some graphics lib or raw xorg but that makes the most sense. Game engines are CONSTANTLY used for UI due to the massive overlap of features. I think it could be neat seeing you doing some raw x11 / opengl / vulkan for a project. Might be neat.
Evidently, I should have been in the live stream, since I feel the urge to shitpost. I apologise for abusing the comment section as live chat. But I am also not really sorry
2:41 .. I would just stay at this "It's (almost) impossible to use UI without a library - if you use UI in C without dependencies you basically created your own library". I wrote (almost) because if you write it with intention of it "not be a library" you technically can somehow mix code from "other stuff" with the "ui stuff" and then yep, I would not call it library then .. 😅
Nah, not pissed, this is a nice experiment. Not practical though, this is extremely boilerplate-y for what it does. It reminds me of the old days doing GUI in Java at university, complete madness compared to how simple and fast it is to develop in React or any modern UI framework.
This content is nuts. I do work with fourier and similar transformations a lot and have an emedded background. Any UI / GUI framework i came across by now does not really work for me. But i really love TheCherno and your way of dealing with that stuff. Makes me wonna add those stuff to my code and not close my laptop amd appreciate that i have studied some serious engineering not web dev. Oh damn did it at home.
Awesome idea. Every computer science students should know how things are working under the hood. People know how to solve 2k qs on leetcode (that's also imp )but they cannot apply them. This is the biggest problem. I had manually tried to compute how the keccak256, sha256 works under the hood what are their math magic. But our faculties just said tf is this why r u wasting time.... I think this mindset should be changed. Soft coding is good/imp but we should know what stuff is doing under the hood!
666 comments? Hold my beer, I'll ruin that right now! XD Anyways I clicked because the title is just that good, I was expecting a massively shortend video where you just show off how much faster your UI is than react, not a 2 hour long vid. That said I'm considering watching it anyways just out of sheer curiosity and because I'm a big C fan. For now though I'm just pinning it and will decide 2mw instead if I'm willing to dedicate 2 whole hours to this.
I was about to mention how i can't be mad with someone who spends 2 hour making a UI, but truth Is i am impressed with the music and wave representation part. On the other hand, having in mind you were suposed to pisa off react developers i was expecting DOM manipulation. (For someone I've learned it Is possible with c)