Senior dev here that expected something totally different (prototype mutation, passing functions etc.) but stuck here because the style of delivery is sooo nice. Very very nice - will refer people to this channel 🙏👏
13:00 If you got this far, the next thing you wan to do is "watch -c make". And you can have the pdf auto generate any time you edit and save your input files.
echo "myfile" | entr -p make Only on edits instead of running randomly find . -type d -name \*.dat | entr -p make When any dat file in any subdir changes. In case you didn't know entr: execute a command when the files specified from stdin change 😉
First, thank you, great content!! Second, make needs tabs in the rules, literally a tab, spaces trigger error Third the orignal use-case for the touch command was to update the creation date for the file, file creation was secondary.
Why do we have to sloth through dull office work when the world has such interesting things in store? I am not a compsci grad, but the tech jargons and their logic are so well explained !
thank you for your great content. when you're talking about CI, i think it would be necessary to explain where the term originated, and what it actually means. nowadays people think CI is a server or a build tool. No, it's a source code management strategy.
Love from India. Thanks a lot as a computer science sophomore I found these lectures really amazing. Just a suggestion I think containerization and use of technologies like Docker would fit really well in this course in any future iterations. Also I personally would have wanted one .. Is there any resource you would recommend for properly understanding concepts underlying Docker and using it?
My thought exactly. Especially topics such as development containers, which lock the development environment (compilers, libraries, ...), are a perfect fit to this lecture. Btw, VSCode supports those now too, which is awesome.
What vim plugin is used to style and display extra info on the status bar here and also by other instructors? The vimrc file they provided doesn't add that.
Wonderful lecture, though I was also hoping to hear a little about the use of metadata in systems development and some thoughts on the pros and cons of metadata versus enumeration in code (e.g., flexibility versus performance.)
If it's about the things surrounding programming, shouldn't it be Peri-programming? To me Metaprogramming suggests programming about itself... (source: My mother tongue is a Latin language)
OK, the title is confusing and it is especially weird, because what you guys are talking about here has precise name: Build automation systems. This is how it is called and this is what industry meant by it. Yes, it is a form of metaprogramming, but only if you apply the term very broadly. In most cases by metoprogramming we mean a technique when software is manipulating with its code in runtime. Not some other's code, but it's own. So, things like Lisp macros or dynamic SQL are more relevant examples for Metaprogramming.
Well I like to think that as Aristotle called Meta-physics everything that stands after the physics (literally, as some say, since they appear later in his corpus of work), Meta-programming is everything that stands after programming. So for me the title choice was perfect.
@@joseduarte9823 Not the editors I've used. They all have 4 for makefiles. 8 is just plain too wide. I know why it's so, visually separated, but it just looks terrible
What I did not expect: the best beginner's guide to Make.
This is the stuff I wish they taught at my university. I had to learn all of this the hard way on my own!
Senior dev here that expected something totally different (prototype mutation, passing functions etc.) but stuck here because the style of delivery is sooo nice. Very very nice - will refer people to this channel 🙏👏
Am I the only person liking these lectures before watching them?
Thank You Jose, Anish and Jon
I expected (C++?) metaprogramming, but got meta about programming instead.
I'm OK with this.
Same!
Again, again and again. RUclips’s algorithm keeps doing a massive job. So glad I was introduced to this channel. Thank you for sharing.
13:00 If you got this far, the next thing you wan to do is "watch -c make". And you can have the pdf auto generate any time you edit and save your input files.
echo "myfile" | entr -p make
Only on edits instead of running randomly
find . -type d -name \*.dat | entr -p make
When any dat file in any subdir changes.
In case you didn't know entr: execute a command when the files specified from stdin change 😉
Is this
Jon Gjengset? Immediately recognized that voice.
Yes, it's Jon Gjengset!
Hands down my favorite programmer in the world!!! I aspire to be just like him.
Hussain Bharmal his name is Jon Gjengset. He has an awesome little RUclips channel that he does a lot of Rust programming. Check him out for sure!
Holy man.. its really the missing semester from my CS course in NTU
I have been looking for a course like this a long time ago.
I can not believe it is free.
Thank you very much.
CMake stands for Cross_Platform Make. Has nothing to do with C compiler and associate libraries.
Interesting that many people mentioned the great guidance on Makefile / make, however, that section only last for couple minutes.. Great lecture thu!
Love his deathstar-pokemon shirt.
First, thank you, great content!!
Second, make needs tabs in the rules, literally a tab, spaces trigger error
Third the orignal use-case for the touch command was to update the creation date for the file, file creation was secondary.
Why do we have to sloth through dull office work when the world has such interesting things in store? I am not a compsci grad, but the tech jargons and their logic are so well explained !
thank you for your great content. when you're talking about CI, i think it would be necessary to explain where the term originated, and what it actually means. nowadays people think CI is a server or a build tool. No, it's a source code management strategy.
Love from India. Thanks a lot as a computer science sophomore I found these lectures really amazing. Just a suggestion I think containerization and use of technologies like Docker would fit really well in this course in any future iterations. Also I personally would have wanted one .. Is there any resource you would recommend for properly understanding concepts underlying Docker and using it?
I'm not sure if you've already stumbled upon it but this series does have a VM and Containers lecture.
My thought exactly. Especially topics such as development containers, which lock the development environment (compilers, libraries, ...), are a perfect fit to this lecture. Btw, VSCode supports those now too, which is awesome.
What vim plugin is used to style and display extra info on the status bar here and also by other instructors?
The vimrc file they provided doesn't add that.
Airline
Extremely helpful!
Wonderful lecture, though I was also hoping to hear a little about the use of metadata in systems development and some thoughts on the pros and cons of metadata versus enumeration in code (e.g., flexibility versus performance.)
If it's about the things surrounding programming, shouldn't it be Peri-programming? To me Metaprogramming suggests programming about itself...
(source: My mother tongue is a Latin language)
So is CMake a meta-meta-programming tool then? :D
No CMake is just a mistake.
@@davidjohnston4240 I would say the devil, but yeah..
Powerful lecture!
Great lecture, very informative
Very helpful. Thank you.
Make is not good for very complex software? Uhh, Linux is built with Make and its doesn't really get more complex than that.
Why these lectures really feel like a "missing semester"
thank you !
OK, the title is confusing and it is especially weird, because what you guys are talking about here has precise name: Build automation systems. This is how it is called and this is what industry meant by it. Yes, it is a form of metaprogramming, but only if you apply the term very broadly. In most cases by metoprogramming we mean a technique when software is manipulating with its code in runtime. Not some other's code, but it's own. So, things like Lisp macros or dynamic SQL are more relevant examples for Metaprogramming.
Metaprogramming... I was expecting a talk about code generators, a la Lex, Yacc/Bison, etc. But this is good too.
Well I like to think that as Aristotle called Meta-physics everything that stands after the physics (literally, as some say, since they appear later in his corpus of work), Meta-programming is everything that stands after programming. So for me the title choice was perfect.
"A tab and NOT 8 spaces..." So I conclude that your tab settings is set to 8... not 3 or 4 (as us normal software developers) - but 8...?? wut?
In the case of Make what it really wants is "\t". You'll notice most editors standard rendering size for a tab in makefile is 8
@@joseduarte9823 Not the editors I've used. They all have 4 for makefiles. 8 is just plain too wide. I know why it's so, visually separated, but it just looks terrible
Finding Jon in random places on the internet
any student who is going to start an internship must go through these lectures.
get prof into top right corner in the vid
🦀 🐐
I like joke about make not usable for big projects
Was it a joke, or did you mean you can write super complex makefiles?
@@varkokonyi Does FreeBSD count as a small project?
you can also program photoshop in emacs. Does it mean emacs is made for large projects?
*You can do better than that!*