/*
sectiontitles is ["Software development and experience", "First experiences of programming", "Hermeneutic and formalist perspectives", "Mathematics and experience", "Beyond computational thinking", "Software development as an experience", "Empirical Modelling", "Retrospect and Prospect"];
currsection is (ixpara == 1) ? "Abstract" : (
(ixpara<66) ? sectionheader : (
(ixpara<90) ? "Note " // str(ixpara-65): "References"
)
);
func findsection {
para currixpara;
auto result;
if (currixpara == 2) result = 1;
if ((currixpara > 2) && (currixpara < 10)) result = 2;
if ((currixpara >= 10) && (currixpara < 24)) result = 3;
if ((currixpara >= 24) && (currixpara < 30)) result = 4;
if ((currixpara >= 30) && (currixpara < 37)) result = 5;
if ((currixpara >= 37) && (currixpara < 47)) result = 6;
if ((currixpara >= 47) && (currixpara < 57)) result = 7;
if ((currixpara >= 57) && (currixpara < 66)) result = 8;
return result;
}
sectionnumber is findsection(ixpara);
sectionheader is "Section " // str(sectionnumber) // ": " // sectiontitles[sectionnumber];
## title is Div("title", leftmargin, 10, rightmargin, 50, "
Realising Software Development as a Lived Experience
");
titledefault is "This is a default title.
";
*/
titledefault is "Bruno Latour's Five Promises of Constructivism
";
titleheader is "Bruno Latour's Five Promises of Constructivism. ";
sectiontitles is ["Guarantee 1", "Guarantee 2", "Guarantee 3", "Guarantee 4", "Guarantee 5"];
sectionnumber is ixpara;
sectionheader is "Guarantee " // str(ixpara);
currsection is (ixpara<6) ? sectiontitles[ixpara] : "More about the Promises of Constructivism";
## presentation comprises a sequence based on a generic slide called slideX
## control then passes to the text presenter interface
slideList is [];
## slides is [buttonPrev, buttonNext, buttonProj, slideNumber, slideList[currentSlide]];
slides is [buttonPrev, buttonNext, slideX];
## setting up the script to present the contents of the generic slide
keyword = "";
paragraphs is findwordparatext(keyword, allparasplusslides); ## this is default
paratext is paragraphs[ixpara]; ixpara = 1; ## this is default
allsentences is splitintosentences(paratext);
numsentences is allsentences#; ## this is default
seqsentences is list1tok(min(sentencessofar, numsentences)); ## this is default
/*
ixselsentences is list1tok(allsentences#); ## this is default
## use to update "sentence n of N"
## and maybe control behaviour "mod allsentences#"
selsentences is filter(allsentences, ixselsentences);
parasofarread is concatpsentences(filter(selsentences,seqsentences));
*/
## the defns commmented out above were previously used to enable the selection of sentences
## from a paragraph via observable ixselsentences: now reorganising management of state so
## that have means to specify the block of text generated by selecting a subset of sentences
## - see mkTextblock(). Also gives flexibility to concatenate blocks, interspersing explicitly
## specified content
parasofarread is concatpsentences(filter(allsentences, seqsentences));
/*
## taking account of the selection of a subset of sentences:
nextsentencelab is "Reading sentence " // str(ixselsentences[sentencessofar]) // " of " // str(allsentences#) // " ...";
nextsentenceenabled is (sentencessofar < ixselsentences#);
*/
nextsentencelab is "Reading sentence " // str(sentencessofar) // " of " // str(allsentences#) // " ...";
nextsentenceenabled is (sentencessofar < allsentences#);
## default context allows a specific paragraph in the essay to be selected (by assigning a value to ixpara)
## and permits the first numsentences on the slide to be displayed
## can change what paragraph(s) is/are supplied, how many sentences are displayed, and which are selected
## so can provide your own custom paragraph
## for purposes of presentation, paragraphs is defined to be paraSlides
## initially
paraSlides = [titleheader]; ixpara = paraSlides#; ixsentence = 1;
## the generic description of slideX is:
## slideX is Slide("" // parasofarread // "
");
## no need for the extra
slideX is Slide(parasofarread);
## paragraphs is paraSlides;
##########################################
slideList is [dummy1, dummy2, dummy3]; ## needed in order to make currentSlide = 1/2/3 controllable by the Previous / Next buttons - otherwise redundant
##
slides is [buttonPrev, buttonNext, (currentSlide == 1) ? slideX : ((currentSlide == 2) ? Slide(paraSlideAux[currAuxSlide]) : slideStream3)];
currentSlide = 1;
slideStream3 = allparasplusslides;
paraSlideAux = allparasplusslides;
currAuxSlide is (ixpara<=6) ? 11 + ixpara%2 : ixpara-6;