= !SasView Tutorials: The Next Generation = == Background == We need to replace the dated and monolithic (!SasView 2.x) Tutorial [https://github.com/SasView/sasview/blob/master/sasview/media/Tutorial.pdf (here)] that presently ships with !SasView 4.x with new materials that are fresh, engaging, and modern. Several existing tickets relating to the provision of 'tutorials' are now captured on this wiki page and the corresponding tickets closed: * http://trac.sasview.org/ticket/387 - Need new tutorial documentation * http://trac.sasview.org/ticket/516 - Add Pr Tutorial module * http://trac.sasview.org/ticket/517 - Add Invariant Tutorial Module * http://trac.sasview.org/ticket/518 - Add 1D model fitting tutorial * http://trac.sasview.org/ticket/519 - Add 2D model fitting Tutorial * http://trac.sasview.org/ticket/520 - Add constrained fit Tutorial * http://trac.sasview.org/ticket/521 - Add simultaneous fitting tutorial * http://trac.sasview.org/ticket/522 - Add Batch Fitting Tutorial Some of the 'next generation' material will require our !SasView documentation build processes to produce PDF files. Tickets relevant to this are: * http://trac.sasview.org/ticket/510 - Build PDF documentation along with HTML * http://trac.sasview.org/ticket/927 - Add !PanDoc to Build Servers * http://trac.sasview.org/ticket/934 - Slurp tutorial repo for tutorials * http://trac.sasview.org/ticket/935 - Build new tutorials as PDF Once PanDoc is installed on the Build Servers it will also be straightforward to output the 'next generation' material as HTML and eBook. Tickets relevant to this are: * http://trac.sasview.org/ticket/936 - Build new tutorials as HTML * http://trac.sasview.org/ticket/937 - Build new tutorials as eBook The issue of 'tutorials' has previously been raised on this Wiki at: * http://trac.sasview.org/wiki/Documentation%20Work%20Package (first created Jan 2015) * http://trac.sasview.org/wiki/Rework%20Proposal (first created Mar 2016) Wojciech has also made some suggestions regarding frameworks and infrastructure for new tutorial material in [https://github.com/SasView/documents/blob/master/Development/Tutorials/DAM-SasViewtutorial-040417-1545-114.pdf this document] == The Bigger Picture == Any tutorials we produce will be ''part'' of a bigger portfolio of 'documentation' comprising: * the in-program '''Help''' (actually called 'Documentation' in !SasView itself) - this is invariably the first place any Sasview User looks for answers * the '''Tutorials''' themselves * the !SasView [http://www.sasview.org Website] - which has a good FAQ page created from actual questions from Users & links to other resources * the !SasView [http://trac.sasview.org TRAC] site - primarily for the Development Team, but a lot of content should be accessible to 'advanced' Users Whilst there will be some cross-over between these different strands they should ''not'' seek to duplicate material unnecessarily. == So What Is A Tutorial? == A Tutorial is self-paced instruction that provides a step-by-step approach to some learning unit. It should be interactive, visual (and/or possibly audio), goal-driven, and provide some form of feedback or test of learning (such as through question-answer exercises and/or providing access to comparative results). == The Need For A Philosophy == The problem with the Tutorial definition above is that it potentially encompasses a wide range of delivery mechanisms. Within the !SasView project we are, of necessity (given our available resources), going to need to focus on providing the key material in the most accessible form. That means Tutorial ''documents'' in HTML, PDF, and possibly (since the production overhead should essentially be zero given the first two) eBook formats. Anything else simply cannot be a priority for us at the moment. It could, however, be provided by enthusiastic members of the Community if they so wished... == The Tool For The Job == If we agree that we shall provide some Tutorial ''documents'' then, to ease production, maximise buy-in, and encourage Community contributions where applicable, we need a production platform that is ''free''(!), intuitive (ie, WYSIWYG), and suitable for version control using TRAC. (The current Tutorial is written in Microsoft Powerpoint which only meets one of these criteria). After looking around Andrew identified two possibilities: * [https://www.oxygenxml.com/ Oxygen XML Editor] * [https://www.libreoffice.org/ Libre Office Writer] - this is what used to be Open Office Both of these are WYSIWYG and both provide output in a 'flat' Open XML format which would allow TRAC to do difference-checking for version control purposes. But only Libre Office is free. Steve & Andrew tested TRAC with a Libre Office Writer .fodt file that they both independently edited and TRAC behaved as expected. ''Recommendation: We should use Libre Office Writer to generate Tutorial documents saved in .fodt format'' == Tutorial Template == Click [http://www.sasview.org/tutorials/sasview_tutorial_template.fodt here] to download a Tutorial template for Libre Office Writer. Don't forget you will need to install Libre Office as well! :-) == Contributing a NEW Tutorial == Here are some simple steps to contributing a ''new'' Tutorial: * Download the Tutorial template above * Rename the template to something descriptive of the Tutorial you are about to write (but keep the filename manageable!) * filenames must be lowercase * separate words in filenames by underscores, nothing else please * keep the file extension as .fodt * Open your Tutorial file * on Page 1: give your Tutorial a title * on Page 2: add your name and email address to the list of contributors * on Page 3: state the Objective of the Tutorial * Write your Tutorial! * Save your Tutorial What you do next depends on whether you think you will need to edit your Tutorial (or any other Tutorials) in the future: * I do ''not'' want to edit Tutorials: * simply email the Tutorial to tutorials@sasview.org - if it is a rather large file it might be an idea to zip it first! * I do want to edit Tutorials: * if you do not already have one, create yourself a [https://github.com/join?source=header-home GitHub] account * login to !GitHub * in the search box at the top of the window type '!SasView/tutorials' (without the quotes!) and press return * you should now be looking at the Tutorials repository; there will be a file called README.md and a green button above it which says 'Clone or download' * click on the button marked 'Upload files' to the left of the green button * drag-over or choose the Tutorial file you want to upload * in the narrow box under the heading 'Commit changes' add a ''short'' title for your upload; eg, 'Added tutorial on X' * ''(optional) if you want you can add a more detailed description of what you are uploading in the bigger box'' * click the green button marked 'Commit changes' to add your Tutorial file to the repository == Editing an EXISTING Tutorial == IMPORTANT! Once a Tutorial file is in the repository it is available for anyone to work on and make changes. Provided all authors ''pull'' a copy of a file from the repository, make their changes, and then ''push'' the changed file back to the repository, Git will ensure that one authors changes are not compromised by another authors changes. * To ''pull'' a Tutorial file from the repository: * login to !GitHub * navigate to the '!SasView/tutorials' repository * click on the Tutorial file you wish to edit * the document contents will be displayed; in the case of a Tutorial file this will be a lot of XML! * click the button on the right marked 'Raw' * right-click anywhere on the page and choose 'Save as...' * save the Tutorial file (as type '!OpenDocument Text') ''Warning: Unless you really are a steely-eyed missile man/woman we do not advise that you edit the XML directly''!!! * Edit the Tutorial! * Save the Tutorial! * To ''push'' the Tutorial file back to the repository: * login to !GitHub * navigate to the '!SasView/tutorials' repository * click on the button marked 'Upload files' to the left of the green button * drag-over or choose the Tutorial file you want to upload * in the narrow box under the heading 'Commit changes' add a ''short'' title for your upload; eg, 'Changed/added X to the tutorial on Y' * ''(optional) if you want you can add a more detailed description of what you have changed in the bigger box'' * click the green button marked 'Commit changes' to add your Tutorial file to the repository == Tutorials & Authors == The following table lists required and requested tutorials, their authors, and production status: ||'''Tutorial'''||'''Type'''||'''Author'''||'''Status'''||'''Comment'''|| ||Getting Started||required||Steve|| || || ||Simple 1D Fitting||required|| || || || ||Simultaneous 1D Fitting||required|| || || || ||Batch & Chain 1D Fitting||required|| || ||Should include Combined Batch Fitting|| ||Using Constraints||required|| || || || ||Working with Polydispersity Functions||required|| || || || ||2D Fitting||required|| || || || ||Fitting Magnetic SANS||required|| || || || ||P(R) Analysis||required|| || || || ||Invariant Analysis||required|| || || || ||Correlation Function Analysis||required||Steve|| || || ||Writing a Plugin-Model||required|| || || || ||Working with Image Data||required|| || ||Using the Image Viewer Tool|| ||Simulating 2D SANS Data||required|| || ||Using the Generic Scattering Calculator Tool|| ||Understanding Orientation Angles||required|| || || || ||etc|| || || || ||