From vague memories of WAD structure, I almost had a heart attack when you nopd dot specifier in printf without checking doom source code if it was used for something useful(as it was the case). Nice that you figured it quickly. It's probably better instead of doing nothing at least printing big fat debug message "*** WARNING *** STCFN%.3d uses NYI dot specifier". That would help to understand immediatly why doom was complaining without a need to google STCFN3d and remembering that you changed printf.
Hey Etop! Yeah, I was playing a little fast & loose there with no-oping out the dot specifier. I recovered pretty quickly without wasting too much time, thankfully :) That's a fair point about logging something more useful when it doesn't work..
Really great stuff, man! I can't believe this only has ~400 views at the moment. Watching your videos is like crack, but with even more health benefits. Keep up the great work!
Just discovered your channel. This past year, I've been getting really interested in software engineering and that sort of thing. I'm a total noob at the moment, so your channel is wonderful! Thanks. Subscribed!
How long have you been programming for? Seems like at least 15+ years. It's super fascinating watching you use vim like it's nothing. Much respect, you programmer God. How do you learn to think that fast? You think of solutions so fast, I guess it's cause you're super experienced.
Hi RandomSilly! I've been programming for almost 30 years. I started learning C++ seriously 15 years ago. I'm not a programming god, I'm just old. You'll be old one day too :) And yeah, my speed comes mostly from experience. I've seen most of the problems before in some form, so it's just about recognizing the patterns in new environments. I still feel very slow in vim, especially if I watch the video of me editing. I'm moving character-by-character in many situations where i could move word-by-word, for example. There's always room to improve.
Andreas Kling woah, that's a long time! Sure, there's always room to improve but you're already too good! I'm graduating this year and I stumbled upon this channel at random somehow. Glad I did! It's very interesting and helpful at the same time, gives you a glimpse of how people solve problems. I was pretty amazed at how fast you add features haha. I've always wanted to improve, but don't really get much motivation anymore. Hopefully that'll change once I graduate, as my uni has been tearing me apart with all these useless English courses that are irrelevant to my degree. Anyway, I can't wait to see serenity becoming fully fledged one day, with all the basic features all popular Linux distros have.
I have a question, how necessary do you think it is important to make your own bootloader from scratch to load the entire kernel without using GRUB or anything like that? Does Serenity have their own bootloader, or do they use GRUB? Thanks.
Hi LordFers! Serenity uses GRUB. In my opinion, it's a waste of time to write your own bootloader unless you enjoy doing it. The work you do on a bootloader does not really benefit the rest of your system in any way, so I prefer letting GRUB do that work so I can focus on the rest of the system. :)
Curious, why 32-bit x86 instead of modern x64? I get that serenity is partially based in nostalgia, but so was TempleOS and it was 64-bit. Was 32-bit chosen for a technical reason or just because OS's in the 90's where 32bit?
Hi MinecraftEpicPlayer! I started with 32-bit x86 because I knew the architecture extremely well, having spent years working on an x86 PC emulator as my previous pet project. Serenity will eventually be ported to x86_64, but I'm not in a hurry since there is so much work to do that doesn't require 64-bit support anyway. :)
And now serenity is a proper and viable os
I knew it would get there one day!
Indeed! The Doom port was crucial.
I sit in amazement as you port an entire game using VI with no Intellisense or anything.
From vague memories of WAD structure, I almost had a heart attack when you nopd dot specifier in printf without checking doom source code if it was used for something useful(as it was the case). Nice that you figured it quickly.
It's probably better instead of doing nothing at least printing big fat debug message "*** WARNING *** STCFN%.3d uses NYI dot specifier". That would help to understand immediatly why doom was complaining without a need to google STCFN3d and remembering that you changed printf.
Hey Etop! Yeah, I was playing a little fast & loose there with no-oping out the dot specifier. I recovered pretty quickly without wasting too much time, thankfully :)
That's a fair point about logging something more useful when it doesn't work..
More porting videos please! Was entertaining watching you work through all the initial compiler errors.
these porting videos, especially the bash one and this are pretty fun to watch.
Really great stuff, man! I can't believe this only has ~400 views at the moment. Watching your videos is like crack, but with even more health benefits. Keep up the great work!
Hi DefaultSucks, glad you like the videos! :)
Just discovered your channel. This past year, I've been getting really interested in software engineering and that sort of thing. I'm a total noob at the moment, so your channel is wonderful! Thanks. Subscribed!
Just today I was thinking it would be great if you trying port Doom in Serenity. It's great man!
"index of" I'll have to remember that
A classic trick! Use it responsibly ;)
Great stuff man.
Ahh you beat me to it. I was having a think over the past week on how I'd gut all the X code in the sourcebase haha
am so jealous of you programming skills. I wish i had the same
don't just wish, get to work now!
How long have you been programming for? Seems like at least 15+ years.
It's super fascinating watching you use vim like it's nothing. Much respect, you programmer God. How do you learn to think that fast? You think of solutions so fast, I guess it's cause you're super experienced.
Hi RandomSilly! I've been programming for almost 30 years. I started learning C++ seriously 15 years ago. I'm not a programming god, I'm just old. You'll be old one day too :)
And yeah, my speed comes mostly from experience. I've seen most of the problems before in some form, so it's just about recognizing the patterns in new environments.
I still feel very slow in vim, especially if I watch the video of me editing. I'm moving character-by-character in many situations where i could move word-by-word, for example. There's always room to improve.
Andreas Kling woah, that's a long time!
Sure, there's always room to improve but you're already too good!
I'm graduating this year and I stumbled upon this channel at random somehow. Glad I did! It's very interesting and helpful at the same time, gives you a glimpse of how people solve problems. I was pretty amazed at how fast you add features haha.
I've always wanted to improve, but don't really get much motivation anymore. Hopefully that'll change once I graduate, as my uni has been tearing me apart with all these useless English courses that are irrelevant to my degree.
Anyway, I can't wait to see serenity becoming fully fledged one day, with all the basic features all popular Linux distros have.
@@awesomekling I thought u are in your 30s
@@aiman_yt I thought the same. xD! How old are you Kling? @Andreas Kling
Aiman, yeah I’m 34. Started programming with GW-BASIC on a Toshiba T1200 when I was 3 or 4. Good times :)
I have a question, how necessary do you think it is important to make your own bootloader from scratch to load the entire kernel without using GRUB or anything like that? Does Serenity have their own bootloader, or do they use GRUB?
Thanks.
Hi LordFers! Serenity uses GRUB. In my opinion, it's a waste of time to write your own bootloader unless you enjoy doing it. The work you do on a bootloader does not really benefit the rest of your system in any way, so I prefer letting GRUB do that work so I can focus on the rest of the system. :)
Have you made a compiler inside Serenity, or do you use a cross compiler since Linux?
I have ported GCC to run inside Serenity although it’s very slow, so I normally use a cross compiler on Linux for my work.
@@awesomekling Thank you so much for the answer!
Curious, why 32-bit x86 instead of modern x64? I get that serenity is partially based in nostalgia, but so was TempleOS and it was 64-bit. Was 32-bit chosen for a technical reason or just because OS's in the 90's where 32bit?
Hi MinecraftEpicPlayer! I started with 32-bit x86 because I knew the architecture extremely well, having spent years working on an x86 PC emulator as my previous pet project.
Serenity will eventually be ported to x86_64, but I'm not in a hurry since there is so much work to do that doesn't require 64-bit support anyway. :)
That background is amazing. Do you actually play Doom 2016?
I played it on PS4 when it came out. It was enjoyable but I wasn't very good at it :)
@@awesomekling That's awesome. That game takes a lot of time to get good at because it's so fast paced!
why you are not using Serenity?
how is it even possible to run doom slowly on a modern computer? even software renderer would be 100s of fps