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 😉
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 🙏👏
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)
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.
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.
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.)
@@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
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.
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.
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.
I expected (C++?) metaprogramming, but got meta about programming instead.
I'm OK with this.
Same!
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!
Am I the only person liking these lectures before watching them?
Thank You Jose, Anish and Jon
Is this
Jon Gjengset? Immediately recognized that voice.
Yes, it's Jon Gjengset!
Holy man.. its really the missing semester from my CS course in NTU
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 😉
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 🙏👏
CMake stands for Cross_Platform Make. Has nothing to do with C compiler and associate libraries.
Love his deathstar-pokemon shirt.
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 UA-cam channel that he does a lot of Rust programming. Check him out for sure!
Again, again and again. UA-cam’s algorithm keeps doing a massive job. So glad I was introduced to this channel. Thank you for sharing.
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)
Why these lectures really feel like a "missing semester"
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
Interesting that many people mentioned the great guidance on Makefile / make, however, that section only last for couple minutes.. Great lecture thu!
Finding Jon in random places on the internet
Make is not good for very complex software? Uhh, Linux is built with Make and its doesn't really get more complex than that.
🦀 🐐
Extremely helpful!
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.
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.)
So is CMake a meta-meta-programming tool then? :D
No CMake is just a mistake.
@@davidjohnston4240 I would say the devil, but yeah..
get prof into top right corner in the vid
"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
Very helpful. Thank you.
I have been looking for a course like this a long time ago.
I can not believe it is free.
Thank you very much.
Powerful lecture!
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.
thank you !
Great lecture, very informative
*You can do better than that!*
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?
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.
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.
any student who is going to start an internship must go through these lectures.