Тёмный
Emez Labs
Emez Labs
Emez Labs
Подписаться
Hello, I am Mateusz Stadnik. I am a passionate embedded software developer with almost 9 years of commercial experience. I want to share some of my hobby projects on this channel.

If you want to reach me: matgla@live.com

Channels miniature license: "This miniature was created by Copilot, an AI companion."
I Made My Computer Which Is Finally Alive
2:26
3 месяца назад
C is The MOST Beautiful Language!
1:57
3 месяца назад
Safer C++ - Better C++
24:55
3 месяца назад
First Milestone! Thank You!
2:05
6 месяцев назад
My dynamic loader can take from external world
28:06
10 месяцев назад
How I created dynamic loader in C++
49:09
11 месяцев назад
#0 About me
0:55
Год назад
Комментарии
@olaf_dreyer
@olaf_dreyer 22 часа назад
Great work! Looking forward to the next videos.
@matgla95
@matgla95 14 часов назад
Thanks! Since I am still waiting for RP2350 availability I am working on video edit for VGA and FPGA extension.
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
awesome... i am excited to watch remaining.. i watched all you videos from inception of this series in one day...
@matgla95
@matgla95 Месяц назад
Thanks, keeping fingers crossed for your project !
@matgla95
@matgla95 Месяц назад
Thanks, new episodes are under recording. Hopefully I will release them soon!
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
This is fascinating !!!!
@matgla95
@matgla95 Месяц назад
Thanks!
@matgla95
@matgla95 Месяц назад
Thanks!
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
The overall series is amazing, as a first step i will try to replicate this whole thing from scratch. am sure i will learn a lot.
@matgla95
@matgla95 Месяц назад
My goal was to show all steps of the project, but then I realized that it is hard to follow. I hope some day I will find the balance between what to show and what to cut :)
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
one more thing i felt is that video length is too long, my suggestion is always keep the video under 20 minutes. and have a series instead of single long video.
@matgla95
@matgla95 Месяц назад
Yeah, that's true, that new videos are much shorter.
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
may be you could lower the volume of music while you are speaking. its bit distracting. i was trying hard to concentrate on what you are saying by replaying multiple times.
@matgla95
@matgla95 Месяц назад
Good to know. Latest videos use spectrum filtering to remove voice frequencies inside music. That one unfortunately does not use that yet.
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
I have heard about PIC, but never why it was used, this video explains in a crystal clear manner. and now i have idea about how it does. THanks for the video.
@matgla95
@matgla95 Месяц назад
I am glad I helped you. In my experience I realized that almost all concepts are quite simple, even if they look complex.
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
Nice Idea.. Keep rocking. !!!
@matgla95
@matgla95 Месяц назад
Writing a filesystem from scratch is also interesting. But for now I have to use something already existing.
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
I like the way you have organized the whole project. its something i was thinking if i start my own board bringup. I hope you dont mind if i user your idea :D
@matgla95
@matgla95 Месяц назад
That was one of the main goals when I decided to start my RU-vid :) Use it whatever you want :)
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
I was actually looking for a short video which explains the different steps in involved in Embedded SOftware Development lifecycle, i can the first few videos explained in a very short and sweet manner. The KISS logic - Keep It Short & Simple. Thanks for the video.
@matgla95
@matgla95 Месяц назад
Yeah, I wanted to show all the steps of the project lifecycle ( except maintenance, since it's too early ) :)
@sweet_cherry_blossoms
@sweet_cherry_blossoms Месяц назад
Nice Work.. Keep it up..
@matgla95
@matgla95 Месяц назад
Thanks! I am trying :)
@technikusMagna
@technikusMagna Месяц назад
Nice code bro
@matgla95
@matgla95 Месяц назад
Thanks !
@stefanalecu9532
@stefanalecu9532 Месяц назад
You know, the more I watch this video, the more I'm grateful I'm a Pascal/Delphi and Ada dev, this is wild, I feel pity for C devs 💀
@matgla95
@matgla95 Месяц назад
To be honest, me too. C can't be substituted in some environments. But whenever it could be I think it should be. I mostly use C++, but I am looking for tools that can improve or even replace it into safer language transpilers ( like cppfront ), where other compilers like (i.e rust are not fitting). But I really hope that the standardization committee will resolve most of the problems some day.
@thribsilva
@thribsilva Месяц назад
My solution to this in a theoretical language that sees and interprets whatever prompt you give it: an empty file. That language needs no code
@matgla95
@matgla95 Месяц назад
No Code, No Problems! :)
@Nunya58294
@Nunya58294 2 месяца назад
Modern problems require modern solutions
@matgla95
@matgla95 2 месяца назад
That's always true :)
@ethical-not-evil
@ethical-not-evil 2 месяца назад
it will works cuz of gcc it set variables and funcs to type int as default
@matgla95
@matgla95 2 месяца назад
Yes, but it uses more than that :)
@rshzs3588
@rshzs3588 2 месяца назад
screen was too dark and zoomed out to read code
@matgla95
@matgla95 2 месяца назад
Thanks! I've noticed that, although I am still working on improving the readability of my videos new ones should be at least a little bit better.
@Messer_dev
@Messer_dev 3 месяца назад
Nice job with Renode simulation ;D I myself tried to implement RP2040 but lack of time and development for other MCU made me drop it for few months. Maybe I will put my hands on it again! Powodzenia ;)
@matgla95
@matgla95 3 месяца назад
Thanks :) currently I am working on adding PIO simulation for the next part. I think I will release a video on how to use it on other projects. Of course it still will be in work in progress mode with contributions warmly welcome :) in which environment have you tried to implement RP2040?
@Messer_dev
@Messer_dev 3 месяца назад
​@@matgla95 to be clear - by implementing I meant Renode implementation. I'm more focused on other MCU series right now ;) looking forward to see the video on how to use Renode. Maybe I'll learn something new from it :D
@VEC7ORlt
@VEC7ORlt 3 месяца назад
What does the dumbass arrow pointing at?
@matgla95
@matgla95 3 месяца назад
In thumbnail? At my computer's PCB.
@qy9MC
@qy9MC 3 месяца назад
main(k){while(scanf("%d"))printf("%d ",k++*k/2);} is it a valid solution? It is 3 characters shorter. Also the original version with "%d " gave me segfault so I went with "%d ". I would like to try more but I really don't understand the coding challenge here. Why do we even scan for numbers? The rules are unclear to me, perhaps it's due to traduction from polish.
@matgla95
@matgla95 3 месяца назад
So, let me clarify a little bit. The code is on SPOJ and is executed for 10 test cases. Test data is provided on STDIN in the form: 1 <- test case 1, n = 1 8 <- test case 2, n = 8 ... rest 8 test cases. Your code should output answers on STDOUT separated by whitespace for each of such test cases. According to segmentation fault. I see two problems in the code that you wrote; scanf in the original code reads a decimal number from STDIN in storing it in the k variable; thus, scanf("%d," &k), otherwise k is uninitialized and scanf depending on libC implementation may segfault, it thinks it has one argument according to format string, but it's not placed in argument list and is writing data to some unexpected memory address (most probably null). Additionally, there is '~' before scanf to detect EOF. Otherwise, the program will not end.
@cyrusol
@cyrusol 3 месяца назад
Erlang, any ML, any Lisp and Haskell are beautiful. If someone finds C beautiful they also find spoiled foods yummy.
@matgla95
@matgla95 3 месяца назад
I think beauty is subjective and depends on context. Here I used it a little bit ironically, since you can still do things that should not be allowed, at least by default. Hopefully compilers are evolving and, i.e. GCC 14 rejects such code by default which is good in my opinion!
@destroyer2973
@destroyer2973 3 месяца назад
Out of curiosity, why the GNU GPL rather than the GNU AGPL? The GNU AGPL is stronger and would prevent anyone from taking your operating system and turning it into a cloud service and refusing to give anything back to you. As for the hardware, were you aware of the CERN Open Hardware License when you licensed it? The CERN Open Hardware License 2.0 Strongly Reciprocal is essentially the GPL for hardware rather than software.
@matgla95
@matgla95 3 месяца назад
Thanks, for that comment! That software is created mainly for educational purposes. I don't think that I will be able to create OS/Bootloader/(What ever else) that is able to compete with any other not single person project. Also I don't see any real usecases to run it over network. It's closely related to specific hardware. For other cases there are better tools available. But if someone will find a way to use it: good for him! :) I selected GPL for software, because I like that part you have to share with community if you wanna use it. But I wasn't digging deep through all licenses availble, I just selected first one that was fine for me. AGPL also fits, but I don't think I will change all license headers right now. About hardware part, it's an experiment. I am only hobbiyst, so I decided to publish with just MIT. Basically to allow anyone to do whatever they want with that.
@destroyer2973
@destroyer2973 3 месяца назад
@@matgla95 One of the good things about the GNU AGPL is that the network use is redistribution clause doesn't really apply if you do not make the software available over a computer network. In that sense it is pretty much identical to the GPL for non networked software, but if anyone turns it into a service as a software substitute then the network use is redistribution clause kicks in immediately.
@i_isak1451
@i_isak1451 3 месяца назад
I guessed correctly but I liked anyways! Good video
@matgla95
@matgla95 3 месяца назад
Thanks! :)
@natam1616
@natam1616 3 месяца назад
But it is defined as 'undefined behaviour' the part of the code >>k++*k/2<< since in C theres no defined order of evaluation of operands, k++ could be evaluated before or after k/2 making the result inconsistent and compiler dependent. So lets be aware of that. though if its working for that issue its a fair game
@matgla95
@matgla95 3 месяца назад
Sure! Good point and that one is even reported by GCC, when using the -Wall flag :) but the goal of that exercise is to abuse whatever you can in the provided compiler to achieve the smallest possible source code
@AlfonzWarThunder
@AlfonzWarThunder 3 месяца назад
Good job
@matgla95
@matgla95 3 месяца назад
Thanks!
@jindrichcapek9836
@jindrichcapek9836 3 месяца назад
Why is there a space between %d and ?
@matgla95
@matgla95 3 месяца назад
Originally that code doesn't contain . It was added just to better presentation of execution. The testing from SPOJ is executed for many inputs from stdio and space is necessary to separate outputs for test cases.
@MykolaTheVaultDweller
@MykolaTheVaultDweller 3 месяца назад
based
@matgla95
@matgla95 3 месяца назад
Thanks :)
@esra_erimez
@esra_erimez 3 месяца назад
Most impressive and very interesting. Well done.
@matgla95
@matgla95 3 месяца назад
Thanks!
@a.v7998
@a.v7998 3 месяца назад
My First Programming language was python, then I moved to C. When I was Learning python i struggled with logic building. But After learning C im getting better with Logic, and Also Better at JavaScript.
@matgla95
@matgla95 3 месяца назад
Yup, different languages due to different paradigms enforce to improve the skill set and it seems you have a win-win outcome :)
@callisoncaffrey
@callisoncaffrey 3 месяца назад
I see Windows, I leave. Edited to get rid of the heart sticker.
@matgla95
@matgla95 3 месяца назад
Yes you're right, I have a problem with recording on Linux ( my camera interface produces crazy delays, most probably Nvidia again broke their driver xd ) which I haven't solved yet, so I temporarily switched to windows.
@callisoncaffrey
@callisoncaffrey 3 месяца назад
@@matgla95 That's no excuse to have it running in the background. Honestly, I'd be embarrassed. You do you though. I'm sure your excuses will safe you from the social credit system you help implement by running spyware. Oh, and don't get me started on the smart phone which I'm pretty sure you have too.
@matgla95
@matgla95 3 месяца назад
No no, I am only using pigeon post :)
@callisoncaffrey
@callisoncaffrey 3 месяца назад
@@matgla95 You sound like a smoker telling me that smoked meat takes longer to go bad. I guess the copium is always real. Anyway, you keep making excuses for being the corporations' female canine. Another thing though. Are you actually in Poland? We are always looking for Team Fortress people in Europe. I wrote a fork of the original for the Darkplaces engine with more emphasis on tactics and stealth.
@unknownguywholovespizza
@unknownguywholovespizza 3 месяца назад
Jerk
@thefanboy3285
@thefanboy3285 3 месяца назад
What does the tilde ~ symbole mean in C ? Just before the scanf
@matgla95
@matgla95 3 месяца назад
It just performs bitwise negation on value returned from scanf function to break loop when got EOF ( which normally is -1 ).
@telotawa
@telotawa 3 месяца назад
imagine not knowing how long your integer primitives are because it depends on the platform nice elegance bud
@matgla95
@matgla95 3 месяца назад
thanks, It's even worse when types promotion come to case when you have different type sizes on different platforms.
@redcrafterlppa303
@redcrafterlppa303 3 месяца назад
stdint.h... Anyone not using them is just stupid or has an old codebase.
@tiranito2834
@tiranito2834 2 месяца назад
Ah yes, because we sure do love writing non portable code! are we forgetting about the fact that C is a systems language? if you need code specific to a certain platform, then use stdint.h types, if you need portable code that works between platforms where you don't know what the width will be, then use standard integer types. I thought this was figured out like 50 years ago, we can't have devolved that much, right...?
@redcrafterlppa303
@redcrafterlppa303 2 месяца назад
@@tiranito2834 why should normal ints be more portable? There is no real point in using normal ints over standard int. Platform dependent types are only necessary for system level interfaces and working with pointers. And in most cases the explicitly platform dependent size_t is all you need. Having the possibility that your int might be "arbitrarily" long depending on the platform might even cause bugs in form of unexpected integer overflow or compile errors in case of to large literals. Tldr always use stdint.h if possible. It makes the code more stable and compatible and portable.
@hugoandres5937
@hugoandres5937 3 месяца назад
Answering your question about what languages I want to learn are: I've been trying to learn Rust for months, I took courses and read books but I haven't made any progress, I feel stuck, my goal with Rust is the backend, even in the same book it tells you that before that you must know C++. My biggest dream is to master Rust and then C++. that's why I started following your channel, thanks
@matgla95
@matgla95 3 месяца назад
Yes, Rust/C++ require a lot of time invest. They are really hard to master, but still you can write good code without mastering each piece of a particular language.
@hugoandres5937
@hugoandres5937 3 месяца назад
very thanks, greatings saludos desde Bolivia, querido amigo.
@unknownguywholovespizza
@unknownguywholovespizza 3 месяца назад
There are better languages for backend
@hugoandres5937
@hugoandres5937 3 месяца назад
@@unknownguywholovespizza For the niche I am aspiring to, they are the fastest and what I need to learn. Thanks for your comment, greetings
@tuxorizon
@tuxorizon 3 месяца назад
I'm an absolute beginner in C programming, watching your video gave me the impetus I need to learn C language upto becoming a master. Thank you and have a felicitous intellectual journey ahead!
@matgla95
@matgla95 3 месяца назад
Thanks! let's do it! Keeping fingers crossed!
@CodingWithDox
@CodingWithDox 3 месяца назад
can u give us a link to the challenge
@matgla95
@matgla95 3 месяца назад
Sure, pl.spoj.com/problems/SUMAN/ And more exercises and challenges like this are here: www.spoj.com/
@CodingWithDox
@CodingWithDox 3 месяца назад
@@matgla95 I have a 52 letter solution but how do I make it use the correct compiler :c
@matgla95
@matgla95 3 месяца назад
And that was one of the reasons that I decided to publish that video :) it's an old challenge and the current solution is easy on the internet to find, so I hoped someone will try to reduce it more! Unfortunately since the whole website is old and I am not even sure it is maintained, the latest compilers are not available.
@CodingWithDox
@CodingWithDox 3 месяца назад
I lied, I misscounted, sorry for my ignorance :D
@matgla95
@matgla95 3 месяца назад
@@CodingWithDox I am glad you tried. Someday someone for sure will find a better solution :)
@hugoandres5937
@hugoandres5937 3 месяца назад
Any advice for learning to program, without staying in the infinite loop of the courses, any tips that were useful to you, thank you
@matgla95
@matgla95 3 месяца назад
I always recommend doing actual programs instead of courses. To be honest I almost always boycott most of course, it's too boring for me instead I am using them as a "what to learn next" list. Then think about what program you could wanna write and try to do it. It won't be perfect for the first time, but you can gain real experience and continuously improve it. It could be big or many small ones, but always think how you can improve them after all. When I was taking part in interviews in my previous company always the best candidates were with people that came with projects on GitHub that they prepared by themselves and it was easier for them to adapt to project.
@hugoandres5937
@hugoandres5937 3 месяца назад
@@matgla95 very thanks 🙏🏻
@hugoandres5937
@hugoandres5937 3 месяца назад
@@matgla95 Let's say I want to learn how like you, where would I start, if there is a lot of information, like the basics without having to go through the courses, the githubs are huge and there are topics in a single repository of different things, the documentation is technical and difficult, as you did at the beginning to later be able to extricate yourself from c, this answer would help me a lot more. greetings
@matgla95
@matgla95 3 месяца назад
I don't mean to completely drop courses, they are necessary to learn basics. I also started with a course something like " from zero to games coder". And with each exercise I did a similar one on my own. Like it was a random number generation section with exercise with solution, so I did it, but then wrote my own program that also uses random number generation. With some basics I started writing game, since it was fun for me, step by step. With no knowledge it required a lot of internet research, like the first goal: select library, then render black window in OS... Trying to move from courses to reading reference manuals for language and documentation for libraries. Today all those GPT/Copilot could help to speed up information searching on given topic. Starting you may want to write as much as possible on your own, it's reinventing a wheel, but needed if you want to get deep knowledge. But most important is to find a way of learning that makes you fun. If it's not fun most probably you won't be able to spend enough time to grow fast, so the whole road will be longer. Keeping fingers crossed :) Which language you are trying to learn?
@hugoandres5937
@hugoandres5937 3 месяца назад
@@matgla95 I've been trying to learn Rust for months, I took courses and read books but I haven't made any progress, I feel stuck, my goal with Rust is the backend, even in the same book it tells you that before that you must know C++. My biggest dream is to master Rust and then C++. that's why I started following your channe
@Shnaypur
@Shnaypur 3 месяца назад
Swietny material. Wiecej tego sortu filmikow :) Jakbys jeszcze tylko wrzucal regularnie materialy to mozna by pomyslec o jakies formie wspierania kanalu
@matgla95
@matgla95 3 месяца назад
Dziękuję! Regularność niestety aktualnie nie wchodzi w grę, choć marzy mi się przyspieszenie montażu (pewnie kwestia wprawy). Kanał rozwijam w swoim wolnym czasie, a do tego dopiero uczę się nagrywania i montażu :) Póki co wystarczy lajk lub miłe słowo :)
@HoangNguyen-nz4xe
@HoangNguyen-nz4xe 3 месяца назад
You seem like a very nice person, i would love to learn from you. ☺️
@matgla95
@matgla95 3 месяца назад
Thanks! You can try my videos, but the first ones are far from perfect. I am still learning about video creation.
@HoangNguyen-nz4xe
@HoangNguyen-nz4xe 3 месяца назад
That is so cool 😂
@matgla95
@matgla95 3 месяца назад
Imagine my face when I found that type is not needed in the main function argument :)
@siman211
@siman211 3 месяца назад
Can you recommend a course to learn c++ with 0 programming knowledge?
@matgla95
@matgla95 3 месяца назад
Hi! I was teaching myself around 16 years ago. Back then I was using some random c++ course in my native language. I think most important is to spend a lot of time doing exercises. Starting from basics means firstly you need to learn the programmer's way of thinking and problem solving starting from really basic and simple programs. C++ is quite a complex language to learn, but patience and consistency will pay off in the future.
@Александр-ф9в4ю
@Александр-ф9в4ю 3 месяца назад
Safer C++? Rust?
@matgla95
@matgla95 3 месяца назад
That's only my personal opinion and to say it loud: I have no Rust experience, only years of experience in c++. I did some research that made me think that using Rust it's harder to write unsafe code in some areas ( i.e. memory safety, thread safety ) as opposed to C++. But still in any language you can write unsafe code and in any language you can write safe code (even in assembly or brainf**k, but with more effort spent and easier to introduce buggy unsafe code by mistake). And that covers just language level safety. I think that a much harder point is to implement the whole software architecture as a safe which is more crucial. Maybe we have someone here with both C++ and Rust experience? I am curious about her/his view :)
@SgtDexterGrif
@SgtDexterGrif 6 месяцев назад
Great video! New sub and can’t wait to see what’s next for your project’s & channel!!!
@matgla95
@matgla95 6 месяцев назад
Thanks! I am working on the next videos. But it will take a while due to limited free time :)
@marcelig7938
@marcelig7938 6 месяцев назад
A little too loud music at the beginning of the video, besides spoko :)
@matgla95
@matgla95 6 месяцев назад
Yes, maybe a little bit too loud. Thanks for the comment!
@johnpaulcarter6770
@johnpaulcarter6770 6 месяцев назад
THIS is interesting - looking forward to exploring some more. Thanks a lot and great video.
@matgla95
@matgla95 6 месяцев назад
Thanks! If you like that topic there are also 2 next parts available on my channel with evolution from dynamic loader to dynamic linker.
@Asmozan
@Asmozan 7 месяцев назад
best video so far! great work!
@matgla95
@matgla95 7 месяцев назад
Thanks! I am glad I am progressing :)
@ExpoDev_Dash
@ExpoDev_Dash 8 месяцев назад
great video
@matgla95
@matgla95 8 месяцев назад
Thanks! I hope you enjoyed:)
@avi7278
@avi7278 10 месяцев назад
little boost for your channel broski
@matgla95
@matgla95 10 месяцев назад
Hi, lovely to welcome you. Each kind of support is a huge boost, not just a little. Big Thanks!
@Nunya58294
@Nunya58294 10 месяцев назад
I see your just starting out good sir. Definitely gonna sub 👍
@matgla95
@matgla95 10 месяцев назад
Hi, glad to see you. I hope you enjoyed it and each next episode will be more and more interesting for you.
@RadekSzewczyk
@RadekSzewczyk 11 месяцев назад
Great video!
@matgla95
@matgla95 11 месяцев назад
Thanks, I hope you enjoyed it!
@emtezet29
@emtezet29 11 месяцев назад
g w koncowce "ing" jest nieme (nie wymawia sie) to samo sie tyczy l w takich slowach jak solder, almond, salmon.
@matgla95
@matgla95 11 месяцев назад
Słuszne spostrzeżenie. Zwrócę na to uwagę i postaram się, żeby zacząć to wymawiać poprawnie. Mam nadzieję, że w kolejnym odcinku już nie będzie występować ( oraz kilka innych problemów z wymowa i gramatyka :d ). Dzięki!