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

Reply via email to