Wednesday, January 22, 2025

reinstating check status php code

 During the kerfuffle caused by the server overload mentioned in a previous post, we had disabled javascript code used to periodically ping a php page to check whether the CMS user had logged out from another window. That would have caused some session timeouts which would not be reported to the user, resulting in issues like this: 

Earlier today a few users contacted me saying that they are unable to login. I told them to clear cache and login and it worked. 

Since this check status code was not the root cause of the issue - which was just too many users trying to log in and using up all the RAM, the javascript and the check status code has been reinstated now.

Windirstat to find large files in filesystem

Revisiting an old tool, still great at what it does - Windirstat - for easily visualizing large files and directories.

Tuesday, January 21, 2025

server overloaded

 Lots and lots of server issues over the last 4 days, on some of our Moodle instances. Tried blocking bots on the ssh port, tried adding robots.txt to prevent excessive crawls, still, 30+ alerts from the server from last night ~8.30 pm onwards up to this morning. Finally, upsized the web server to 7 GB RAM (at double the cost) and the alerts stopped. So, it was human traffic that was probably to blame.

Checking logged in users on Moodle, for instance, via Site Administration > Reports > Live logs showed more than 20 users actively editing courses.

(Had tried blocking bots using

https://techexpert.tips/apache/apache-blocking-bad-bots-crawlers/

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} (gumgum-bot|postmanruntime|ag_dm_spider|scrapy|chimebot|SeekportBot|Amazonbot|SemrushBot) [NC]
RewriteRule .* - [F,L]

But since the root cause was human users, this did not have much effect.)

Monday, January 20, 2025

BSNL FTTH ONT port 9090 server - did not work

A custom defined server on the ONT, without configuring anything else, did not work at port 9090. A predefined Shoutcast server, port 8000, also didn't work. Probably BSNL does some firewalling at the gateway. So would probably need some sort of ssh tunneling to run a server over BSNL FTTH. 

simple webserver for testing on Windows using Powershell

 This needs to be run in a Powershell run as administrator on my machine. Via https://woshub.com/simple-http-webserver-powershell/


$httpListener = New-Object System.Net.HttpListener

$httpListener.Prefixes.Add("http://+:9090/")

$httpListener.Start()


write-host "Press any key to stop the HTTP listener after next request"

while (!([console]::KeyAvailable)) {

$context = $httpListener.GetContext()

$context.Response.StatusCode = 200

$context.Response.ContentType = 'text/HTML'

$WebContent = Get-Content -Path "D:\Downloads\new.html" -Encoding UTF8

$EncodingWebContent = [Text.Encoding]::UTF8.GetBytes($WebContent)

$context.Response.OutputStream.Write($EncodingWebContent , 0, $EncodingWebContent.Length)

$context.Response.Close()

Write-Output "" # Newline

}

$httpListener.Close()

run file-manager as root on Linux Mint

 gksu etc doesn't work, what does work, from https://forums.linuxmint.com/viewtopic.php?t=424807

pkexec nemo

Friday, January 17, 2025

flash drive errors

Tried many different ways to try and fix a 500 GB flash drive's errors, finally gave up as probably hardware fault. Details below.

Trying robocopy to copy large files, when a simple copy command fails - From
to
to


Accidentally set this drive to offline in windows disk management - using the diskpart method did not work. The object is not found. No solutions for me from this link. Finally got it online again from the settings app, Right-click on the Start button and select Settings >
Navigate to System > Storage > Advanced storage settings > Disk & volumes >
 Properties button of a disk (except the system disk or Windows disk) > Status section >
Online/Offline button


chkdsk f: /f /r /x

Free space verification is complete.
 Phase duration (Free space recovery): 10.42 minutes.
An unspecified error occurred (6e74667363686b2e 164d).

Again, formatting fails.

badblocks (on Linux) - recommends using badblocks via e2fsck, but e2fsck does not support ntfs. (on rpi).
So, plan is to repartition into 5 100 GB partitions, and try format f: etc on Windows. Partitioned OK, but formatting the partitions fails. So, gave up as hardware fault.



robots.txt syntax to exclude specific bots

 https://stackoverflow.com/questions/56049660/how-to-exclude-all-robots-except-googlebot-and-bingbot-with-both-robots-txt-and

So for allowing googlebot and bingbot and nothing else, the syntax would be:

User-agent: *
Disallow: /

User-agent: Bingbot
Disallow:

User-agent: Googlebot
Disallow:

Thursday, January 16, 2025

CMS - Unable to open assets

Our CMS, which runs google apps scripts in an iframe, was not loading documents, known as "assets" - I thought maybe that the google apps script is not running? Or seems to be returning a blank page?

But the next day, it was fine. (In fact, when I tested the previous day, I had logged in to multiple accounts, which is probably why it didn't work. We need to be logged in to only one google account for the google apps script to work correctly. So, opened in a private window today, and it works.)

Sunday, January 12, 2025

preventing Moodle time-outs

 Copy-pasting from an email I sent out:

 ...  doing bulk actions on the Moodle instances can cause timeout failures if the action takes more than a minute or so to complete. So, actions should be done in small batches. For example,

1. Deleting users - first start with deleting one user, see how long it takes, and then scale to as many as possible to complete in one minute. A detailed post about automating this process is at 

https://hnsws.blogspot.com/2024/10/moving-multiple-moodle-instances-from.html#deleting-users

2. Deleting courses - you may need to delete module by module, checking how long each process takes, as above. 

3. Running ad-hoc queries - please filter for small result sets and optimize code so that the query completes within a minute or two.

Similarly, when designing the course pages, please use themes / modules / etc in such a way that only a limited number of images and or other content loads on a single page - otherwise, the site will be experienced as slow to load, slow to edit, etc. A rule of thumb would be to limit the scrolling to two screen heights, and not more than that.

In general, if you experience timeout errors (which usually will be displayed as "gateway error" if using cloudflare), you can simply close and re-open your browser after a couple of minutes, login again, and the site should load.


manually editing kodi playlists

Following up on the use of Kodi for theatre playouts - the previous posts below,
Work Stuff: optimizing kodi for planetarium projection


the playlists are located on the SDCARD and not on the USB drive containing the video files - 
Path to the video playlists is
STORAGE > .kodi/userdata/playlists/video

The editing has to be done as root, as no access otherwise.

Can't use UI, since gksudo is removed,
and other methods also don't work,

The entries in the m3u files are of the form
#EXTINF:0,3002Fade-out Lights.avi
/var/media/NTFS500GB/CommonFiles/3002Fade-out Lights.avi
so we need to remember to edit the filename on two lines.

Saturday, January 11, 2025

Zoom out to the edge of the observable universe

A fulldome video made with OpenSpace - details as in my previous post.

The OpenSpace recordings are shared at 
openspace-scripts/user/recordings/ToEdgeofU

The 4K (4096x4096) full resolution videos are available from archive.org -  
Zoom out to the edge of the observable Universe



format_onetopic plugin backwards compatibility

 Copy-pasting from an email, regarding the onetopic plugin's version for Moodle 4.5 and compatibility with older (3.x?) versions - 

I'm updating the format_onetopic plugin on all our Moodle instances. When doing that, it notified me of a new setting, backward compatibility with old styles, which it says will be removed soon.

 Currently I have enabled it, but if possible, please check the courses which use format_onetopic to see if they can be migrated to use the format_onetopic new style editor. The setting for format_onetopic is at

/admin/settings.php?section=formatsettingonetopic

 - the 2nd option, 

"Use legacy style controls. This option is only available for compatibility with older versions of the plugin and will be removed in the future in favor of using only the new style editor." 

Most probably, the way to do this would be:

1. check if the course is displayed correctly

2. go to admin/settings.php?section=formatsettingonetopic and uncheck the "Use legacy style controls"

3. check again if the course is displayed correctly

4. make some edit to the course, check again if the course is displayed correctly

5. If displayed OK, then you can revert the edit, and leave the check box unchecked.

6. If not displayed OK, please let me know.

If you find that unchecking this box does not create any problems for some course which uses format_onetopic, please uncheck the box for all the instances.

Site Administration > Plugins > Plugins Overview > Onetopic_format Settings

Friday, January 10, 2025

plugin updates not prompted by Moodle

Noting the conversation with the developer of the format_onetopic Moodle plugin, https://github.com/davidherney/moodle-format_onetopic/issues/204

Today I've been notified of a new plugin update by Moodle, so changing the Maturity level (by the developer, from Beta to Mature) seems to have fixed the "not being notified by Moodle about new updates" issue.

free up disk space on Github runner

While building OpenSpace on a github action, the github runner was running out of disk space. Fortunately, there is an action to clear up disk space - 
    - name: Free Disk Space (Ubuntu)
      uses: jlumbroso/free-disk-space@main
      with:
        # this might remove tools that are actually needed,
        # if set to "true" but frees about 6 GB
        tool-cache: false
        
        # all of these default to true, but feel free to set to
        # "false" if necessary for your workflow
        android: true
        dotnet: true
        haskell: true
        large-packages: false
        docker-images: true
        swap-storage: false

Here, true means remove. Since we need some of the large packages and we do need the swap space, I set those to false, and that solved the problem.

Thursday, January 09, 2025

trying out ai video generation

 Inspired by

SSSHSS || Karunyamatanvate || Drama Trailer 2025 ||

Tried out via

ai generated video for free duckduckgo search

imagine.art

(not very good)


Same prompt, "big bang which started the universe evolving into millions of galaxies", gave a 4 minute + documentary with commentary but watermarked, using invideo.io

https://ai.invideo.io/watch/sCKIn5VJQDE

Uploaded to youtube and embedded below. Though what I wanted was a visualization of the Big Bang and this is not what I wanted, as a mediocre youtube video, this is OK.



Tuesday, January 07, 2025

errors in apache logs

Copy-pasting from an email - 

While checking the error log on the server for clues on the 'password reset' causing server errors, I found that there were thousands of errors being logged by various plugins and pages on the various Moodle installations.

Apparently there are some outdated plugins on the Moodle installation which did not get upgraded automatically. One example seems to be the onetopic format plugin. Manually updating it seems to have worked. But there are some more. One example is the "Edwiser Reports" plugin, which does not seem to be available any more, no Moodle 4.5 support available as far as I can see, and not updated since 2022.

Deleted this plugin from all our instances, to get rid of errors like this:

[Sat Jan 04 09:37:35.671230 2025] [php:notice] [pid 1416984] [client 11.22.33.34:26126] Debugging: Invalid $required parameter value: '' .\n                It must be either VALUE_DEFAULT, VALUE_REQUIRED, or VALUE_OPTIONAL in \n* line 53 of /lib/external/classes/external_description.php: call to debugging()\n* line 47 of /lib/external/classes/external_value.php: call to core_external\\external_description->__construct()\n* line 47 of /local/edwiserreports/classes/external/get_plugin_config.php: call to core_external\\external_value->__construct()\n* line ? of unknownfile: call to local_edwiserreports\\external\\api::get_plugin_config_parameters()\n* line 110 of /lib/external/classes/external_api.php: call to call_user_func()\n* line 186 of /lib/external/classes/external_api.php: call to core_external\\external_api::external_function_info()\n* line 83 of /lib/ajax/service.php: call to core_external\\external_api::call_external_function()\n, referer: https://oneofourservers.org/mod/hvp/view.php?id=20118

Monday, January 06, 2025

updating copyright year in Moodle footer

Wanted to check if we can use php to automatically change the copyright year in Moodle footer, using the Moove theme. For example,

https://natclark.com/tutorials/php-automatic-copyright-notice/

<?php echo date('Y'); ?>

But no, when we add this to the footer via the Moove theme's UI, the footer displays the code instead of allowing php to parse it. So, updated manually.

pillars of creation, Hubble or Webb deep field, 3d model

 Thought about doing a render of the "pillars of creation" in Blender or something like that, using some 3d model available online.

https://hubblesite.org/contents/media/videos/2024/020/01J0KSWQV7N2ZC4JEKE2Q0RCJ8

has the video and

https://hubblesite.org/contents/media/images/2024/020/01HZ7KZ85WKVG3H46A8B7GCEV8?app=true&news=true

has the 3d model, STL model for 3D printing

https://webbtelescope.org/contents/media/products/01HZ7M91P8DY5J5JFQJ28WQ72X

But then, found this "zoom in" video was quite nice, needn't spend too much time on Blender,

zoom into pillars of creation

https://www.youtube.com/watch?v=lj3t_gjuXWk

https://esahubble.org/videos/heic1501f/

UHD download.

---------------------------------------------------------------------------

Similarly, for Hubble Deep Field, Extreme Deep Field, etc - there are some resources online,

https://hubblesite.org/contents/media/videos/2012/37/718-Video.html?news=true

extreme deep field flythrough

(On the dome, the video provided by Lionel Ruiz looks nicer.)

There's a Blenderkit HDRI,

blenderkit james webb deep field hdri

https://www.blenderkit.com/asset-gallery-detail/6973dec9-f137-47da-9c5b-7bc9fa6780df/

Hubble ultra deep field animation in 3d

https://www.youtube.com/watch?v=oAVjF_7ensg

720p

(link to hubblesite in description is dead)

And HD download at

Across the Universe: The Hubble Ultra Deep Field

https://svs.gsfc.nasa.gov/30687

Friday, January 03, 2025