Let me just put a couple caveats out there. :) - What Titus called a "make lesson" is actually a homework assignment. It was given after a discussion on project management, reproducibility, and the basics of GNU Make. - Reveal.js is not used in the homework assignment. It was used to build the slides I made for leading the discussion. The slides (and the homework, for that matter) were thrown together pretty hastily on short notice, so they could use some polishing for sure. - Since you're looking at the entire repository, it's worth noting that the main directory (and its makefile) are used for building the slides, while the make-tutorial directory (and its makefile) accompany the homework assignment Titus linked to in his original email.
I put these materials together for guest lecture in a capstone project class for bioinformatics Masters students. The organizer of the class asked me to focus on reproducibility within the larger scope of project management, but I included an introduction to Make. The discussion covered concepts and terminology like targets, prerequisites, recipes or build commands, rules, and pattern rules (see the slides at *pres.html*). So while it was not intended to be a general and comprehensive treatment of Make--as Bennet pointed out--the students did get some exposure to the basics. The homework was assigned to 1) reinforce our discussion with hands-on examples and 2) give them a model of how they could use Make to improve their capstone projects. So with that said, I think this is a compelling, if a bit unpolished, exercise. Given that the feedback from the students so far has been positive, I'm planning on polishing this up a bit an releasing it as a self-contained independent module. Any comments would be welcome, and a big thanks to Bennet for leading off the discussion! - Need to clarify the scope of the materials. - Consider adding a "draft" rule. This might be a nice showcase of Make features, even if the use case is a bit archaic. Many thanks, Daniel -- Daniel S. Standage Ph.D. Candidate Computational Genome Science Laboratory Indiana University On Thu, Sep 4, 2014 at 9:56 AM, Bennet Fauber <[email protected]> wrote: > Titus and Dan, > > It doesn't seem to me to be so much a lesson on make and how it works > as a lesson on how to use make for a particular purpose. That's fine > and a useful thing to do, but I think that someone who might > anticipate learning the basics of make might expect something > different. Perhaps calling it something like "Using make to manage a > manuscript" or "Using make to manage a workflow" might be both more > informative and more accurate? > > I might also be suspicious of the real reproducibility of something > that curls a dependency (reveal.js). I would include the file > 2.6.2.tar.gz renamed as reveal.js-2.6.2.tar.gz with a note of the > checksum, date downloaded, and originating URL. That's just me, > though. I don't trust the interwebs very much. ;-) > > This is a useful and nice example of using make to manage something > other than the traditional compile/link process. > > What would you think of the idea of having a 'draft' rule that would > double-line-space the text for editorial review? (Or is that now a > fully deprecated method?) That would provide an opportunity to show > off some more of make's capability, and it might even be useful. > > Thanks, -- bennet > > > > > On Thu, Sep 4, 2014 at 9:28 AM, C. Titus Brown <[email protected]> wrote: > > Hi all, > > > > Daniel Standage (not (yet) a trained SWC instructor) asked me for some > feedback on a ‘make’ lesson — > > > > > https://github.com/standage/2014-09-03-reproducibility/blob/master/homework.md > > > > — and gave me permission to forward it on. Looks good to me, on a skim, > but I can’t think about it much today; would love to see comments from > y'all! > > > > best, > > —titus > > > > > > _______________________________________________ > > Discuss mailing list > > [email protected] > > > http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org >
_______________________________________________ Discuss mailing list [email protected] http://lists.software-carpentry.org/mailman/listinfo/discuss_lists.software-carpentry.org
