The goal of this project is to facilitate the running of tests and code analysis against a Moodle plugin in Travis CI. All of these tests and tools are run everytime a change is pushed to a GitHub branch or pull request.
Why would you want to do this? It saves you from having to remember to setup and run PHPUnit, Behat, code checker, etc every single time you make a change. If you have enough test coverage, it also makes accepting pull requests painless because you can be more confident that the change wont break anything. There are many more advantages to using a service like Travis CI, like being able to test your code against multiple databases, multiple PHP versions, etc.
This project supports the following testing frameworks and code analysis tools:
Source: Introduction | Moodle Plugin CI
The Data Analytics and Visualization Environment (DAVE) is a specification and reference model for prototyping learning-domain specific analytics and data visualizations.
With the goal of providing a specified and interoperable way to analyze, interpret, and visualize micro-level behavior-driven learning, DAVE offers a framework for analysis and visualization which aligns with xAPI, xAPI Profiles, and the Total Learning Architecture being developed by the Advanced Distributed Learning Initiative (ADL).
Source: Learning Analytics Algorithms: New Open Source Resources from DAVE
Moodle event observers “fire” asynchronously based on events that get triggered by user activity, and so… hard to catch and debug by simply passing the XDEBUG variable via the browser.
BigBlueButton provides a script to install BigBlueButton with single command but it is always better to go through each step, so that you know what is really being done and makes it easy to do any modification or debug any error.
Source: How to Setup BigBlueButton HTML5 Version on EC2 – Meetrix.IO
MySQL Cluster powers the subscriber databases of major communication services providers as well as next generation web, cloud, social and mobile applications. It is designed to deliver:
- Real-time, in-memory performance for both OLTP and analytics workloads
- Linear scale-out for both reads and writes
- 99.999% High Availability
- Transparent, cross-shard transactions and joins
- Update-Anywhere Geographic replication
- SQL or native NoSQL APIs
- All that while still providing full ACID transactions.
Understand some of the highlights of MySQL Cluster 7.4:
- 200 Million queries per minute
- Active-Active geographic replication with conflict detection and resolution
- 5x faster on-line maintenance activities
- Enhanced reporting for memory and database operations
Source: MySQL Cluster | Andrew Morgan on Databases
Moodle can be made to perform very well, at small usage levels or scaling up to many thousands of users. The factors involved in performance are basically the same as for any PHP-based database-driven system. When trying to optimize your server, try to focus on the factor which will make the most difference to the user. For example, if you have relatively more users browsing than accessing the database, look to improve the webserver performance.
Source: Performance recommendations | ScholarLMS Support
SPX, which stands for Simple Profiling eXtension, is just another profiling extension for PHP.
It differentiates itself from other similar extensions as being:
- totally free and confined to your infrastructure (i.e. no data leaks to a SaaS).
- very simple to use: just set an environment variable (command line) or switch on a radio button (web page) to profile your script. Thus, you are free of:
- manually instrumenting your code (Ctrl-C a long running command line script is even supported).
- using a dedicated browser extension or command line launcher.
- multi metrics capable: 21 currently supported (various time metrics, memory, included files, objects in use, I/O…).
- able to collect data without losing context. For example Xhprof (and potentially its forks) aggregates data per caller / callee pairs, which implies the loss of the full call stack and forbids timeline or Flamegraph based analysis.
- shipped with its web UI which allows to:
- enable / configure profiling for the current browser session
- list profiled script reports
- select a report for in-depth analysis, featuring these interactive visualizations:
- timeline (scale to millions of function calls)
- flat profile
Source: NoiseByNorthwest/php-spx: A simple & straight-to-the-point PHP profiling extension with its built-in web UI
Collect Code-Level Performance Tracing
Retrace collects an amazing amount of details about what is happening at the code level within your application. It is a gold mine for developers who are trying to troubleshoot bugs and look for ways to optimize their code.
- Web request length and context details
- SQL queries
- Log statements and exceptions
- Interaction with dozens of dependencies like NoSQL, caching, etc
- External HTTP web service calls
Source: Retrace Application Performance Management (APM) – Stackify
Your mission control center for PHP application performance
Tideways saves you time by taking the guesswork out of your app’s backend performance. Gain detailed insights, spot performance bottlenecks, and get real-time error detection alerts.
Source: Mission control center for PHP application performance | Tideways
“Big Data includes huge volume, high velocity and extensible variety of data, both structured and unstructured. Analysis and examination of this data plays a big role in making a better decisions and lead to strategic business moves. In this research, we are focusing on analysis of Moodle e-learning platform database with aim of improving the educational process. Using the concept of learning analytics we are trying to better understand teaching and learning processes in order to get as much as possible from educators and learners which are the main actors in the mentioned activities. The standard procedures that are specific to the databases will take a lot more time to do this. To facilitate this process, big data processing tools are used. Here, we also present the possibility of analyzing big data in the cloud. For the purpose of this research, we developed a framework for big data analysis.”
Source: (18) (PDF) Framework for Big Data Analytics of Moodle Data Using Hadoop in the Cloud