SlideShare a Scribd company logo
A million questions per year:
Hosting STACK at the Open University
Tim Hunt
Senior Software Developer
Free as in puppy
2
Image: Designed by rawpixel.com / Freepik
STACK is ‘free’ …
… but it needs to be
properly cared for
Quiz at the OU
OU Moodle site
• 180,000 active users (students/staff)
• Around 450 module (courses) each year
• 40,000 logins per day
• 170,000 forum views per day
• 3,000 online tutorials per month (Adobe connect)
• 650,000 quiz attempts per year
• 6,700,000 questions attempted over last year
OU quiz usage over time
273,809
492,508
571,718
655,022 665,258 661,572
637,028 638,476 626,598
684,854
182,147
378,197
468,881
531,334 545,556
523,415
478,989 482,091 478,297
516,558
0
100,000
200,000
300,000
400,000
500,000
600,000
700,000
08/09 09/10 10/11 11/12 12/13 13/14 14/15 15/16 16/17 17/18
Testsserved
Academic year (September-August)
All informal quizzes and formal iCMAs on module websites by academic year
Orange: attempts started Blue: attempt submitted
[CELLRANGE], 0% [CELLRANGE], 1% [CELLRANGE], 4%
[CELLRANGE], 5%
[CELLRANGE], 3%
[CELLRANGE], 4%
[CELLRANGE], 6%
[CELLRANGE], 9%
[CELLRANGE], 37%
[CELLRANGE], 0%
[CELLRANGE], 0%
[CELLRANGE], 0%
[CELLRANGE], 0%
[CELLRANGE], 0%
[CELLRANGE], 1%
[CELLRANGE], 1%
[CELLRANGE], 3%
[CELLRANGE], 9%
[CELLRANGE], 18%
Selective (64%)
Constructive (28%)
Semi-constructive (8%)
1% = 55,000 attempts
Question attempts / year
Hosting STACK
STACK
STACK is a question type (plus other plugins)
for Moodle
Installed in the usual way
Also requires Maxima (computer algebra package)
installed on the server
8
Well, installed on
a
server
MaximaPool
Moodle MaximaPool
https://github.com/maths/stack_util_maximapool/
/usr/bin/ # Installed as part of RHEL.
gnuplot
maxima # maxima-optimised actually used, but this is present.
/usr/share/tomcat8/webapps/ or /var/lib/tomcat8/webapps/
MaximaPool.war # The compiled code. This is what we upload.
MaximaPool/ # Expanded version of the .war file. Mostly standard.
META-INF/
MANIFEST.MF
WEB-INF/
web.xml
classes/
servlet.conf # Configuration file: directory.root & admin.password.
... # All the compiled classes.
/usr/share/tomcat8/logs/ # The Tomcat logs.
/var/lib/maximapool/ # This is the path directory.root from servlet.conf.
pool.conf # Configuration for the whole pool.
2013073001/ # Directory name is a STACK Maxima code version number.
process.conf # Configuration settings for this version.
maxima-optimised # The pre-compiled Maxima executable.
maximalocal.mac # Extra file loaded on start-up.
maxima/ # Copy of question/type/stack/stack/maxima.
2013122500/ # ... can be mulitple versions present simultaniously.
...
Monitoring STACK
Built-in & Nagios
11
Nagios triggers
alerts for IT Ops
if values go out
of allowed range
Upgrading STACK
Not just Moodle plugins
Standard Moodle plugins
• Upgraded as usual
STACK-Maxima library code
• Build maxima-optimised
• Deploy to MaximaPool
To help deployment MaximaPool
can run multiple pools
13
/var/lib/maximapool/ # This is the path directory.root from servlet.conf.
pool.conf # Configuration for the whole pool.
2018080600/ # Directory name is a STACK Maxima code version number.
process.conf # Configuration settings for this version.
maxima-optimised # The pre-compiled Maxima executable.
maximalocal.mac # Extra file loaded on start-up.
maxima/ # Copy of question/type/stack/stack/maxima.
2019042600/
process.conf # Configuration settings for this version.
maxima-optimised # The pre-compiled Maxima executable.
maximalocal.mac # Extra file loaded on start-up.
maxima/ # Copy of question/type/stack/stack/maxima.
...
Deploy new maxima code
Test with test Moodle install
Upgrade live Moodle
Un-deploy old maxima code
Testing STACK
1. Healthcheck page
2. Automated tests (PHPUnit & Behat)
3. Answer-tests and Input-tests scripts
4. Question tests
Lots of tools
15
1
1
3
3
4
Correct and expected
STACK-Maxima library
version being used
(2018080600).
Question tests save lives
Do all questions work with the latest
version of STACK?
16
4
Advertising feature:
Ad-hoc database queries
A useful tool for admins
Simple SQL reports
Often a STACK upgrade issue
affects several questions
18
It’s not all bad
SELECT COUNT(1)
FROM {question_attempts} qa
JOIN {question} q ON q.id = qa.questionid
JOIN {quiz_attempts} quiza
ON quiza.uniqueid = qa.questionusageid
WHERE quiza.preview = 0
AND q.qtype = 'stack'
AND qa.timemodified BETWEEN
%%STARTTIME%% AND %%ENDTIME%%
19
Supporting STACK
STACK: used by people
Powerful systems are complex
⇒ People need training
• Like Tim Lowe’s training
that you are missing now!
⇒ People need documentation
⇒ Worth sharing good practice
STACK is an essential part of teaching
learning & assessment
⇒ Users need to know about upgrades
⇒ Upgrades must to avoid key dates
21
Advertising feature:
Embedded questions
Having got STACK, make the most of it
The familiar
Embed questions
This is a
Moodle Book
resource
How to set up
Summary
Servers
Software
Monitoring
Upgrades
Testing
Support
People
Summary
Non-STACK Plugins advertised
https://moodle.org/plugins/report_customsql
https://moodle.org/plugins/filter_embedquestion
https://moodle.org/plugins/atto_embedquestion
28
THANK YOU!
T.J.Hunt@open.ac.uk
@tim_hunt

More Related Content

Similar to Hosting STACK at scale

Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
Alex446314
 
ch01-basic-java-programs.ppt
ch01-basic-java-programs.pptch01-basic-java-programs.ppt
ch01-basic-java-programs.ppt
Mahyuddin8
 
JCD 2013 OCM Java Developer
JCD 2013 OCM Java DeveloperJCD 2013 OCM Java Developer
JCD 2013 OCM Java Developer
益裕 張
 
OCM Java 開發人員認證與設計模式
OCM Java 開發人員認證與設計模式OCM Java 開發人員認證與設計模式
OCM Java 開發人員認證與設計模式
CodeData
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018
Yoav Weiss
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media
 
Migration strategies 4
Migration strategies 4Migration strategies 4
Migration strategies 4
Wenhua Wang
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
VMware Tanzu Korea
 
Mykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with JmeterMykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with Jmeter
Ievgenii Katsan
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
Uma Ghotikar
 
Managing the User Experience
Managing the User ExperienceManaging the User Experience
Managing the User Experience
Timothy Sutton
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
Kellyn Pot'Vin-Gorman
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
Qspiders - Software Testing Training Institute
 
Ember
EmberEmber
Ember
mrphilroth
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
C4Media
 
High Volume Payments using Mule
High Volume Payments using MuleHigh Volume Payments using Mule
High Volume Payments using Mule
Adhish Pendharkar
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Databricks
 
Hadoop cluster performance profiler
Hadoop cluster performance profilerHadoop cluster performance profiler
Hadoop cluster performance profiler
Ihor Bobak
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
Vincent Massol
 

Similar to Hosting STACK at scale (20)

Oracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdfOracle_Patching_Untold_Story_Final_Part2.pdf
Oracle_Patching_Untold_Story_Final_Part2.pdf
 
ch01-basic-java-programs.ppt
ch01-basic-java-programs.pptch01-basic-java-programs.ppt
ch01-basic-java-programs.ppt
 
JCD 2013 OCM Java Developer
JCD 2013 OCM Java DeveloperJCD 2013 OCM Java Developer
JCD 2013 OCM Java Developer
 
OCM Java 開發人員認證與設計模式
OCM Java 開發人員認證與設計模式OCM Java 開發人員認證與設計模式
OCM Java 開發人員認證與設計模式
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Migration strategies 4
Migration strategies 4Migration strategies 4
Migration strategies 4
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Mykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with JmeterMykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with Jmeter
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
 
Managing the User Experience
Managing the User ExperienceManaging the User Experience
Managing the User Experience
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
 
Ember
EmberEmber
Ember
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
High Volume Payments using Mule
High Volume Payments using MuleHigh Volume Payments using Mule
High Volume Payments using Mule
 
Java 9
Java 9Java 9
Java 9
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Hadoop cluster performance profiler
Hadoop cluster performance profilerHadoop cluster performance profiler
Hadoop cluster performance profiler
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 

More from Tim Hunt

Writing better Behat tests
Writing better Behat testsWriting better Behat tests
Writing better Behat tests
Tim Hunt
 
What’s next for the Quiz and Question bank and for Moodle community collabora...
What’s next for the Quiz and Question bank and for Moodle community collabora...What’s next for the Quiz and Question bank and for Moodle community collabora...
What’s next for the Quiz and Question bank and for Moodle community collabora...
Tim Hunt
 
Question bank improvements in Moodle 4.0 : A successful community collaboration
Question bank improvements in Moodle 4.0 : A successful community collaborationQuestion bank improvements in Moodle 4.0 : A successful community collaboration
Question bank improvements in Moodle 4.0 : A successful community collaboration
Tim Hunt
 
Looking after the Open University's Moodle
Looking after the Open University's MoodleLooking after the Open University's Moodle
Looking after the Open University's Moodle
Tim Hunt
 
Embedding questions anywhere in Moodle
Embedding questions anywhere in MoodleEmbedding questions anywhere in Moodle
Embedding questions anywhere in Moodle
Tim Hunt
 
Moodle questions without the quiz
Moodle questions without the quizMoodle questions without the quiz
Moodle questions without the quiz
Tim Hunt
 
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
Tim Hunt
 
MUC - Moodle Universal Cache
MUC - Moodle Universal CacheMUC - Moodle Universal Cache
MUC - Moodle Universal Cache
Tim Hunt
 
I wish I could believe you: the frustrating unreliability of some assessment ...
I wish I could believe you: the frustrating unreliability of some assessment ...I wish I could believe you: the frustrating unreliability of some assessment ...
I wish I could believe you: the frustrating unreliability of some assessment ...
Tim Hunt
 
Hosting Moodle at the OU
Hosting Moodle at the OUHosting Moodle at the OU
Hosting Moodle at the OU
Tim Hunt
 
The Moodle quiz at the Open University
The Moodle quiz at the Open UniversityThe Moodle quiz at the Open University
The Moodle quiz at the Open University
Tim Hunt
 
The Moodle Quiz at the Open University: how we use it & how that helps students
The Moodle Quiz at the Open University: how we use it & how that helps studentsThe Moodle Quiz at the Open University: how we use it & how that helps students
The Moodle Quiz at the Open University: how we use it & how that helps students
Tim Hunt
 
2012 Computer-Assisted Assessment
2012 Computer-Assisted Assessment2012 Computer-Assisted Assessment
2012 Computer-Assisted Assessment
Tim Hunt
 
Moodle’s building blocks for eAssessment tools
Moodle’s building blocks for eAssessment toolsMoodle’s building blocks for eAssessment tools
Moodle’s building blocks for eAssessment tools
Tim Hunt
 
A basic introduction to the Moodle architecture
A basic introduction to the Moodle architectureA basic introduction to the Moodle architecture
A basic introduction to the Moodle architecture
Tim Hunt
 

More from Tim Hunt (15)

Writing better Behat tests
Writing better Behat testsWriting better Behat tests
Writing better Behat tests
 
What’s next for the Quiz and Question bank and for Moodle community collabora...
What’s next for the Quiz and Question bank and for Moodle community collabora...What’s next for the Quiz and Question bank and for Moodle community collabora...
What’s next for the Quiz and Question bank and for Moodle community collabora...
 
Question bank improvements in Moodle 4.0 : A successful community collaboration
Question bank improvements in Moodle 4.0 : A successful community collaborationQuestion bank improvements in Moodle 4.0 : A successful community collaboration
Question bank improvements in Moodle 4.0 : A successful community collaboration
 
Looking after the Open University's Moodle
Looking after the Open University's MoodleLooking after the Open University's Moodle
Looking after the Open University's Moodle
 
Embedding questions anywhere in Moodle
Embedding questions anywhere in MoodleEmbedding questions anywhere in Moodle
Embedding questions anywhere in Moodle
 
Moodle questions without the quiz
Moodle questions without the quizMoodle questions without the quiz
Moodle questions without the quiz
 
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
2017 UK/IE MoodleMoot: What makes a good moodle quiz? Lessons from the Open U...
 
MUC - Moodle Universal Cache
MUC - Moodle Universal CacheMUC - Moodle Universal Cache
MUC - Moodle Universal Cache
 
I wish I could believe you: the frustrating unreliability of some assessment ...
I wish I could believe you: the frustrating unreliability of some assessment ...I wish I could believe you: the frustrating unreliability of some assessment ...
I wish I could believe you: the frustrating unreliability of some assessment ...
 
Hosting Moodle at the OU
Hosting Moodle at the OUHosting Moodle at the OU
Hosting Moodle at the OU
 
The Moodle quiz at the Open University
The Moodle quiz at the Open UniversityThe Moodle quiz at the Open University
The Moodle quiz at the Open University
 
The Moodle Quiz at the Open University: how we use it & how that helps students
The Moodle Quiz at the Open University: how we use it & how that helps studentsThe Moodle Quiz at the Open University: how we use it & how that helps students
The Moodle Quiz at the Open University: how we use it & how that helps students
 
2012 Computer-Assisted Assessment
2012 Computer-Assisted Assessment2012 Computer-Assisted Assessment
2012 Computer-Assisted Assessment
 
Moodle’s building blocks for eAssessment tools
Moodle’s building blocks for eAssessment toolsMoodle’s building blocks for eAssessment tools
Moodle’s building blocks for eAssessment tools
 
A basic introduction to the Moodle architecture
A basic introduction to the Moodle architectureA basic introduction to the Moodle architecture
A basic introduction to the Moodle architecture
 

Recently uploaded

A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
deeptiverma2406
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
goswamiyash170123
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 

Recently uploaded (20)

A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 

Hosting STACK at scale

  • 1. A million questions per year: Hosting STACK at the Open University Tim Hunt Senior Software Developer
  • 2. Free as in puppy 2 Image: Designed by rawpixel.com / Freepik STACK is ‘free’ … … but it needs to be properly cared for
  • 4. OU Moodle site • 180,000 active users (students/staff) • Around 450 module (courses) each year • 40,000 logins per day • 170,000 forum views per day • 3,000 online tutorials per month (Adobe connect) • 650,000 quiz attempts per year • 6,700,000 questions attempted over last year
  • 5. OU quiz usage over time 273,809 492,508 571,718 655,022 665,258 661,572 637,028 638,476 626,598 684,854 182,147 378,197 468,881 531,334 545,556 523,415 478,989 482,091 478,297 516,558 0 100,000 200,000 300,000 400,000 500,000 600,000 700,000 08/09 09/10 10/11 11/12 12/13 13/14 14/15 15/16 16/17 17/18 Testsserved Academic year (September-August) All informal quizzes and formal iCMAs on module websites by academic year Orange: attempts started Blue: attempt submitted
  • 6. [CELLRANGE], 0% [CELLRANGE], 1% [CELLRANGE], 4% [CELLRANGE], 5% [CELLRANGE], 3% [CELLRANGE], 4% [CELLRANGE], 6% [CELLRANGE], 9% [CELLRANGE], 37% [CELLRANGE], 0% [CELLRANGE], 0% [CELLRANGE], 0% [CELLRANGE], 0% [CELLRANGE], 0% [CELLRANGE], 1% [CELLRANGE], 1% [CELLRANGE], 3% [CELLRANGE], 9% [CELLRANGE], 18% Selective (64%) Constructive (28%) Semi-constructive (8%) 1% = 55,000 attempts Question attempts / year
  • 8. STACK STACK is a question type (plus other plugins) for Moodle Installed in the usual way Also requires Maxima (computer algebra package) installed on the server 8 Well, installed on a server
  • 9. MaximaPool Moodle MaximaPool https://github.com/maths/stack_util_maximapool/ /usr/bin/ # Installed as part of RHEL. gnuplot maxima # maxima-optimised actually used, but this is present. /usr/share/tomcat8/webapps/ or /var/lib/tomcat8/webapps/ MaximaPool.war # The compiled code. This is what we upload. MaximaPool/ # Expanded version of the .war file. Mostly standard. META-INF/ MANIFEST.MF WEB-INF/ web.xml classes/ servlet.conf # Configuration file: directory.root & admin.password. ... # All the compiled classes. /usr/share/tomcat8/logs/ # The Tomcat logs. /var/lib/maximapool/ # This is the path directory.root from servlet.conf. pool.conf # Configuration for the whole pool. 2013073001/ # Directory name is a STACK Maxima code version number. process.conf # Configuration settings for this version. maxima-optimised # The pre-compiled Maxima executable. maximalocal.mac # Extra file loaded on start-up. maxima/ # Copy of question/type/stack/stack/maxima. 2013122500/ # ... can be mulitple versions present simultaniously. ...
  • 11. Built-in & Nagios 11 Nagios triggers alerts for IT Ops if values go out of allowed range
  • 13. Not just Moodle plugins Standard Moodle plugins • Upgraded as usual STACK-Maxima library code • Build maxima-optimised • Deploy to MaximaPool To help deployment MaximaPool can run multiple pools 13 /var/lib/maximapool/ # This is the path directory.root from servlet.conf. pool.conf # Configuration for the whole pool. 2018080600/ # Directory name is a STACK Maxima code version number. process.conf # Configuration settings for this version. maxima-optimised # The pre-compiled Maxima executable. maximalocal.mac # Extra file loaded on start-up. maxima/ # Copy of question/type/stack/stack/maxima. 2019042600/ process.conf # Configuration settings for this version. maxima-optimised # The pre-compiled Maxima executable. maximalocal.mac # Extra file loaded on start-up. maxima/ # Copy of question/type/stack/stack/maxima. ... Deploy new maxima code Test with test Moodle install Upgrade live Moodle Un-deploy old maxima code
  • 15. 1. Healthcheck page 2. Automated tests (PHPUnit & Behat) 3. Answer-tests and Input-tests scripts 4. Question tests Lots of tools 15 1 1 3 3 4 Correct and expected STACK-Maxima library version being used (2018080600).
  • 16. Question tests save lives Do all questions work with the latest version of STACK? 16 4
  • 17. Advertising feature: Ad-hoc database queries A useful tool for admins
  • 18. Simple SQL reports Often a STACK upgrade issue affects several questions 18
  • 19. It’s not all bad SELECT COUNT(1) FROM {question_attempts} qa JOIN {question} q ON q.id = qa.questionid JOIN {quiz_attempts} quiza ON quiza.uniqueid = qa.questionusageid WHERE quiza.preview = 0 AND q.qtype = 'stack' AND qa.timemodified BETWEEN %%STARTTIME%% AND %%ENDTIME%% 19
  • 21. STACK: used by people Powerful systems are complex ⇒ People need training • Like Tim Lowe’s training that you are missing now! ⇒ People need documentation ⇒ Worth sharing good practice STACK is an essential part of teaching learning & assessment ⇒ Users need to know about upgrades ⇒ Upgrades must to avoid key dates 21
  • 22. Advertising feature: Embedded questions Having got STACK, make the most of it
  • 24. Embed questions This is a Moodle Book resource