We have used two different methods to deal with this - one solution using XOAuth, and one using App Passwords.
1. For some of our Moodle instances which used Google Workspace emails for outbound emails, we could use the in-built XOAuth support as explained here,
So I created two separate sets of credentials for one of the email ids, since the redirect url for each (one production and one development) server would be different as mentioned in the documentation linked from the tracker link above -
2. For our internal server using ssmtp as mentioned in this earlier post, this procedure (or the use of PHPMailer which supports XOAuth) would not be suitable, since it does not have a public-facing website url.
describes a python solution, but needs refresh, and needs a browser.
)
In passing, the email from google mentions that App Passwords are not going away - "Password-based access (with the exception of App Passwords) will no longer be supported" . We had earlier created App Passwords for use with We can create App Passwords if we enable 2FA. So, we enabled 2FA, created an App Password, and just replaced the password in our earlier ssmtp configuration file with the App Password (without spaces). And that works.
When a moodle server had its domain changed, the sendgrid account it used to send password reset emails was still using the old domain. When the "From" email id was changed, sendgrid gave an error,
550 The from address does not match a verified Sender Identity.
This moodle plugin "Dictionary" requires a one-time free registration to the Merriam-Webster api at https://dictionaryapi.com/ - they currently provide 1000 free lookups per day per key, and 2 free keys per registration. The plugin uses one key for dictionary, one for thesaurus.
Instead of commenting out, used the method mentioned lower down in the thread for Moodle 4.1 and above, by going to Site administration --> Server --> Support contact and changing the option to make it available only for logged-in users. Did the same thing for two of our production instances, too.
Paid tech support by email/telephone - Nettigritty.com
We have found that they usually respond within 3-4 hours.
But
a caveat - they would only extend support for those services for which
you have paid them. For example, if you have paid for web hosting, they
will support you only in web hosting related issues. They may not be
able to help you with open-ended questions or how-do-i-do-this-in-moodle
type of questions, though, of course, you could ask them if they will
do so.
As mentioned in my previous post, SheepIt render farm is a free render farm for Blender Cycles and Eevee engines, based on mutual co-operation - we connect our machines to the render farm to earn points, and can get our projects rendered in double-quick time in return.
Their FAQ page lists answers to most questions one may have about the service. I've uploaded an example of a project which includes the baked cache for particle systems, on Github, here. As mentioned in their FAQ, the steps to do this are:
1. Make all paths relative - in Blender, choose
File --> External Data --> Make All Paths Relative
2. If you need to render a baked fluid/particle system, zip the blender file and the cache directory, ensuring that the cache directory is also set as a relative path. In my case, I had set the cache directory to be inside the project directory to simplify matters. In the project above, this is located in the Physics tab of the Smoke Domain object as seen in the screenshot below. As you can see, the current directory is indicated by a leading double-slash - //.
3. One point to note is that choosing File --> Save As and saving the project to another directory, and then copying the cache directory there, does not work (as in Blender 3.2 on Windows.) This is probably because the file paths get mangled? Anyway, if you want to break up the project into multiple renders due to the bake files being too large, copy-paste the project outside Blender instead, don't use File --> Save As.
4. There is a script available on the Forums for splitting the project, in case you want to automate the process. Or, like I did, you can just choose to bake all, and then copy only the .vdb files in the data subfolder of the cache for a limited number of frames. For the zoomed out view, for frames after 275, this was something like 30-50 frames per project. And choose to render only those frames. Then create a fresh zip file for the next set of frames. And so on.
Here are some project statistics, for the zoomed in project render, which was taking around 3 minutes per frame on my machine:
Summary
Storage used: 971.8 MB
Cumulated time of render: 9h01m
Points spent: 5,767 points
Real duration of render: 1h23m
On reference per frame rendertime: 0m51s
On my machine, the 600 frames would have taken 30 hours to render, and even on the Studio Mac it would have taken 5-6 hours, but SheepIt finished it in less than 90 minutes due to the power of distributed processing.
So, nowadays I leave the sheepit client running whenever I switch on my machine, to accumulate points. A borrowed CPU from VV fitted with the GTX1050 Ti card which I purchased for my research also helps at the office. The 1050 Ti card is only 4% the speed of the standard GPU, but since most of the projects specify GPU, it usually gets some project to render, as against the i5-1235U laptop CPU, which often goes many minutes with "No jobs to render".
Edit: 17 Nov 2024 - interesting to see the bump in capability due to upgrading to SSD and running Linux on it, for the same machine - Power CPU and GPU went from 34% to 46% and 4% to 12% respectively -
And finally, here's a youtube video of the rendered output. This is a "Fulldome" video, meant for projection in a planetarium. (Since this is my first effort, the launch needs more work to look more realistic - currently the motion of the rocket looks a bit cartoonish.)
A quick note to myself - when importing image sequences into Blender VSE, we must ensure that the files are sorted by name in the file open dialog box (or in whatever order we want them to be) before selecting the relevant images, and then importing. Or else, some jumbled order will result in the imported sequence.
Its USP seems to be that it can save you from having to tap through many clicks on apps using routines which can be launched by the push-to-talk device. If it really delivers on the promises given in the talk in the link above, it might become the "next big thing."
As noted in the previous post, time-remapping to make the animation slower does not work well with particle systems, probably because baking is not done for fractional frames. A similar issue is discussed here.
A gotcha for me was that the keyframes for the rocket animation were not visible in the timeline, but some other keyframes, like the camera field of view animation which I had added, were visible.
So, dragging these keyframes to newer locations further along the timeline was not enough - I had to go to graph editor, and make sure the filters had "Show hidden" and then the keyframes (after 1000 frames) were visible.
More notes and links to tutorial video timestamps below,
under Performance, Memory, Tile Size. Only for memory's sake, so we need not bother about tiling for our renders.
On a Mac at Studio, renders a frame in around 26 seconds with CPU and 18 seconds with GPU. So maybe 5 hours to render 1000 frames, as against a couple of days on my i5 machine without GPU.
Sheep-It distributed free rendering - leaving the machine on and connected for around 4 hours earned 1600 points. There are some caveats to using baked particle systems as mentioned in their FAQ (Does SheepIt support fluids?), need to zip the folder and make sure it is less than 750 MB, but non-particle renders should be do-able. With the 1600 points as noted, my project was halfway up the queue, and started rendering after a 5 minute or so wait. Or maybe the wait was shorter, just needed to go to the Projects page to see an update. 100 frames done on 5 minutes, which on my machine would have taken 5 hours or so. But the "shephering" server might have been busy, so the last frame was shown as "in progress" for a long time - 10 minutes or so. But since we get an email when the project is done, actually no need to sweat.
The way to play local videos as a playlist seems to be, as per this forum thread,
right-click or C in the Files view to get the context menu for a video file, choose to queue it, the file view automatically jumps to the next file in the folder, right-click or C and choose to queue it and so on, and when all the required files are added, left arrow for the hidden menu, choose Go to Playlist, then choose Save - it will now ask you for a filename for the playlist.
In order to play this playlist, from the home screen, choose Videos (NOT Movies) choose Playlists highlight the desired playlist, C for context menu, and choose Play. Or press P to play after highlighting the desired playlist, after which you have to press TAB for full-screen video without the menu.
Most of the options like audio device are in the Kodi Settings (gear icon on top of home screen.) LibreElec settings for system name, keyboard layout, etc.
We have a Sony HD player for playback of 1080p files - works well for XVID-encoded files. When we had issues with the Firestick for playback, we tried out the Sony UBP-X700 4K Ultra HD Blu-Ray Player even though it was very much more expensive - Rs. 30k compared to the Firestick 4K's Rs. 5k. But unfortunately, it did not work out.
Problems with the Fire TV stick 4K were:
Using the Amazon Firestick 4K for playout is extremely flaky - since the
firestick keeps checking Amazon for updates and auto-updates, sometimes
the show stops playing.
Audio has to be taken from the projector's EP audio out, and has a lot of hiss.
Problems with the Sony were:
It was starting up in 4K 60 Hz which our projector did not support
It was changing modes when playing files with different resolutions and frame rates, causing delays and missed frames between files.
So we returned that, and are leaning towards playback using a Raspberry Pi 4.
The earlier models of R Pi, which we already have, do not support
4K. Raspberry Pi 5 has also come out now, which is slightly more
expensive, but which we don't necessarily need.
Estimated prices:
Raspberry Pi 4 - Rs. 6,500
Power supply - Rs. 1,000
HDMI mini to HDMI adapter - Rs. 664
The following items may also be required, which we might buy later if required:
Keyboard - Rs 300
Mouse - Rs. 300
HDMI mini to HDMI adapter - Rs. 664
(we may need 2 of these)
USB sound card, high quality - Rs. 2,000
Case with cooling for R Pi - Rs. 2,000
Mini SD card - Rs. 600
Edit: Raspberry Pi 4 running Kodi and a pre-owned external USB Lexicon Alpha audio interface is what we're using as of May 2024.
Still could not log in, so renamed the password security plugin directories as mentioned in the post above, located in public_html/wordpress/wp-content/plugins
password-protect-page
and
password-policy-manager
in this case, renamed to the directoryname_deactivate or whatever.
Found frames being repeated (or dropped?) with a ~20 minute video processed with OCVvid2fulldome - found duration had reduced from 24 minutes to 22, and also some jerkiness in motion. The github issue is here.
Found a couple of issues while upgrading using the steps given in my previous post regarding Moodle minor update using git -
If we uninstall the h5pactivity built-in plugin before the upgrade, the upgrade does not proceed - it complains about corrupted plugin. So, basically, we can't uninstall the default plugins without causing issues with upgrades.
If we change the file permissions, we need to add a command git config core.filemode false to prevent git from complaining about overwriting local files, listing all the files, and aborting the git pull. Via this post.
Workflow for creating files playable at our theatre using only cross-platform tools.
ffmpeg to create mp4 file if input is frame sequence - as in this post, ffmpeg -r 30 -f image2 -i "Our-frame_%06d.png" -vcodec libx264 -crf 15 -pix_fmt yuv420p Our-movie-4k-frames.mp4
OCVWarp to create warped file. Fourcc of avc1 results in x264 video, good quality.
Avidemux to edit the warped file, move the credits to the beginning and speed up credits. Also overlay Hindi / Telugu title text as graphics using the logo filter.
To note: Firestick 4K needs FAT32 formatted disk, which has a 4 GB file size limitation. So, re-encoding files with x265 (HEVC) using the options in the Configure button to choose file-size based codec quality. This takes around 8 hours to encode a half-hour 4K 30 fps video on an i5 laptop!
Similarly, the older BluRay player needs to have 1080p encoded with XVID fourcc. x263, I guess.
Uptimerobot alerted me that one of our Moodle servers was down.
The database server is not responding, that was the reason.
Initiated a restart, hoping this may solve the problem. 10 minutes later, systems were up.
Copy-pasting from an email exchange about the reasons:
It could have any of the following causes: 1. automated bot attack 2. some services not restarted properly after an automated system update 3. some other issue triggered by some user action
Right now I'm not digging into the logs for troubleshooting, in case the issue happens again, will do more digging.
We anyway would need a server upgrade some time in the first half of 2024 for operating system upgrades - at that time, I could tighten some of the parameters for better security (like the open ports with default services present currently).
One of our servers' site admins reported a problem, with "remove the index.php from the URL" - the standard method of WordPress dashboard --> Settings --> Permalinks --> "Post Name" Permalink, Save Changes did not work for them. "File not found" error.
Checked the .htaccess file, it seemed to be OK.
But looking at how Apache handles.htaccess files, found that AllowOverride would be needed for the .htaccess files to work.
We got an email from Azure, asking us to update our trusted root store for Azure Storage services - "If you have client applications that still use certificate pinning, they'll be affected by this change and you'll need to take action by 29 February 2024 to avoid potential connection interruptions."
I don't think any of our apps or services use certificate pinning, so did not take any action.
Leaving aside paid products like Adobe After Effects, for multiple videos on a fulldome frame, a good option would be OCVvid2fulldome.
If we want to project a high resolution, say 4K flat-screen video onto the dome, OCVvid2fulldome v1.6 or above, with the following parameters works relatively well, except for some slight distortion at the bottom and top edges -
#Outputw_pixels__=height
4096
#Output_fps
30
#Output_fourcc
XVID
#Number_of_input_videos_max_is_99
1
#Filename0
D:/Input/Filenm.avi
#vidlongi0
180
#vidlati0
76
#vidw0
270
Example images -
Flat, 16x9
Using OCVvid2fulldome with 270 degrees coverage as above:
Another option is Natron, which has a G'MIC Distort filter for "Square to Circle" as referenced in this video. But Natron is prone to crashing for video to video conversions, image sequences seem to work OK. Also, Natron renders at something like 2 seconds per frame for 4K output, at least 4x slower than OCVvid2fulldome.
Square input -
to Circle output -
Natron troubleshooting notes:
im seq crashes were probably due to wrong way of entering filename?
To make a 16x9 video into a square video, padding with 1080 black border on top - does not look good - too small on the dome. Need to crop to square, so the sides are lost.
A test course backup and restore did not work. But then, it turned out that the issue was that the H5P plugin mod_hvp had some missing files (since this moodle instance had its database copied over from another test instance) which were causing H5P content to not display at all. Diagnosed via php errors in /var/log/apache2/error.log.
The relevant course had 90+ H5P activities, it took 2.5 hours to backup via the CLI, and the restore also is likely to have taken a similar amount of time.
screen
date && sudo -u www-data /usr/bin/php admin/cli/backup.php --courseid=511 && date Mon Nov 20 14:38:34 UTC 2023 == Performing backup... == Backup completed, the new file is listed in the backup area of the given course
It seems there are two ways in which H5P files can be used in a course - as a "link" and as a "downloadable file".
The "downloadable file" method is such that the course instructors cannot edit the content from the server, they need to download it to their computer and use some other software to edit it - so I guess what you have used is the "link" method.
In that case, there seems to be no easy way to backup and restore, the easiest way may be to re-create the course on the new server, if my understanding of the discussion here is correct -
This discussion above uses Moodle 3.9, but our case with Moodle 4.1 might be different, too, and we might have to investigate further.
mod_h5p and mod_h5pactivity are already installed by default in Moodle 4.
https://server/admin/plugins.php
I tried creating a simple h5p activity in a test course by uploading a file arithmetic-quiz-22-57860.h5p, but the activity is not visible on the student site
To display H5P content in Moodle activities, the Display H5P filter must be enabled, and the URL (e.g., h5p.com) should be listed as an allowed source in Site admin / Plugins / Filters / Display H5P.
There was a google drive link in that filters section which I have now removed. But then, we may need to add the correct filters. Or perhaps the "show h5p content" may be sufficient, which is done at this page,
https://server/admin/filters.php
If you have some url with a working h5p content from the hub, we can put the appropriate url in
Some small changes were needed in the github workflow in order to build the latest version, 4.3.0, of the moodle android app. My earlier posts about building the moodle app can be found here.
Trying the old workflow led to some errors like
Failed to restore plugin "cordova-plugin-screen-orientation". You might need to try adding it again. Error: Error: Command failed with EACCES
Trying the simplistic solution of giving run permissions for everything,
chmod -R +x ./*
This worked, except for needing resources/android/icon-background.png to be added manually as in earlier releases.
Tweaked the build script to directly pull the codebase of the release from github instead of manually adding it, with all customizations from our private repo which has the following file structure:
Once logged in to one site, if someone has a login in another site
also, they can log in to the other site by tapping on their profile icon
on the top right corner of the screen and choosing the "Switch account"
option, even without logging out completely.
Install AirPlay Screen Mirroring Receiver (free) from the Microsoft Store, open it.
Open the Control Center in ipad/iphone by swiping up from the bottom, or down from the top right edge, depending on which version of iOS you have. Then tap "Screen Mirroring." The PC should appear on a list of available devices.
But some apps like Disney + Hotstar don't work if mirroring is enabled, "Please try again after disabling screen recording".
Whatever goes up has to come down. Ever since it went public, Google seems to have slowly but surely gone down the road that leads to its ultimate decline. People were discussing this in 2006, but now even their flagship Google Search seems to have gone downhill with their policies put in place (probably to avoid abuse).
Case in point - a personal blog, created on blogspot.com (owned by Google!) was not being indexed. Even after submitting the sitemap created by blogspot itself, Google Search console shows that blog as being crawled, but not indexed. Whereas bing.com and duckduckgo.com at least show the pages on the site if the keyword site:actual.url.of.the.site is used. After filling up the "submit feedback" form on Google Search Console, of course, there was no response whatsoever.
It is probably prudent to turn off "forum" and "new login" notifications in a new moodle instance to avoid users' email providers marking the emails from the server as spam, and to avoid exceeding quota limits if using GMail / Google Workspace / other provider with daily quotas.
Google webmaster tools have been moved to google search console. Got an email after signing up, "Now that you've verified your site in Search Console (or created a site in Blogger or Google Sites, which verified your site for you) we have some tips to help you use Search Console more effectively."
suggests the --appimage-extract command-line option, but is not very explicit on whether the option should be run on appimagetool or on the appimage itself.
clarifies that the option is to be run on the appimage itself, and not on appimagetool.
So, that extracted the files into ./squashfs-root, and I could add the new script into the scripts directory. But when I tried to create an appimage from the modified squashfs-root using appimagetool, it failed with an error,
Googling led me to https://kb.vmware.com/s/article/1007969 which says that we should manually correct the cid for similar errors with VM images. But that advice doesn't seem to be relevant here.
In any case, the bin directory inside ./squashfs-root had a stellarium executable which could run, and the extra added script also showed up.