Mostly work related stuff which I would've entered into my "Log book". Instead of hosting it on an intranet site, outsourcing the hosting to blogger!
Sunday, September 13, 2026
resizing Azure VM - moved to D2asv5
Saturday, September 12, 2026
app for automating sending of SMS / WhatsApp messages
Friday, September 11, 2026
repeated Cloudflare "human check"
For the past week (or so), each time we go to our website, and even click on a sub-page, etc, Cloudflare makes us check that we are human (not a bot). See screenshot attached.Do you experience this as well, or is it just me?It is a bit annoying to do it for EVERY page. Is there a way to do it randomly, or at least once (so it knows this IP address is fine), etc.?
Another admin mentioned that
I remember (another) website team making some changes to the Cloudflare settings following the phishing attacks and bot injection issues we faced on the (other) website. I believe the human verification check you are seeing could be related to those security measures.
And I added,
I think one way to avoid getting the bot-check "every time" would be to keep a tab open with a page from our domain - then the session would remain open for around 10 minutes, and any other page in our domain you open within those 10 minutes will not ask you for a bot-check. If you are doing some content editing work which takes more than 10 minutes, if you navigate to another page in the open tab within 10 minutes or refresh that page within 10 minutes, you can avoid the bot-checks.
logo update for sign-in with Google screen
- Go to Google Cloud Console → select your project.
- Navigate to APIs & Services → OAuth consent screen (in newer UI it may be under APIs & Services → Branding).
- Under the App information section, you'll see an App logo field — upload your logo there (square image, recommended 120x120px, max 1MB, JPG/PNG/BMP).
- Save changes.
Wednesday, September 09, 2026
Claude's review of swayam plus integration local plugin for Moodle
Tuesday, September 08, 2026
Google Maps Street View video
Monday, September 07, 2026
debugging and testing local Moodle plugin with Claude
Private URL for my reference - https://claude.ai/chat/12096022-e224-4e6b-9e01-40149a93cef7
Used Claude to debug (add missing version.php, and many other omissions) the local plugin for swayamplus api integration generated by Gemini - github repo at https://github.com/hn-88/swayamplus-sso-api-integration. Also added some features like retry logic and test url generation.
The readme file has some info about how ngrok was used for testing with a mock python server - https://github.com/hn-88/swayamplus-sso-api-integration/tree/main/test-python-api-server
Some points to note:
- The plugin uses the "Manual enrolment" enrolment method, which is enabled by default on all courses - we can see the enabled methods by going to the relevant course > Participants > Enrolled users (dropdown) > Enrolment methods.
- Guest access should probably be removed from the same place as above, in case enabled earlier.
- Currently the classes/privacy/provider.php is not implemented, so the mdl_local_swayamplus_enrol table is not updated by deleting rows if / when users are deleted.
- If the user is already present on our system, they are directly enrolled in the course.
- If the user is new to our system, the user is dropped into the profile completion and agreement to terms and conditions workflows. Following that, the user is actually enrolled in the course automatically, but dropped into their Profile page. According to Claude, we can add a large link to "My Courses" in the Profile page as follows:
- Go to any page where you can add a block sitewide — the Front Page is the standard choice. Turn editing on.
- Add a block → HTML.
- Give it a title (e.g. "Continue learning") and content — something like a large, bold link:
<p style="text-align:center;"> <a href="https://ourdomain.org/my/courses.php" style="font-size:1.4em; font-weight:bold; display:inline-block; padding:10px 20px;"> → Go to My Courses </a></p> - On that block's own settings (gear icon → Configure), under "Where this block appears" → Page contexts, set it to "Display throughout the entire site." Save.
- Now navigate to any user's profile page — your own is fine. The block should appear there too (since you just made it sitewide). Open that same block's settings again, and this time change "Display on page types" to "Only user profile pages." Save.
network problems were due to overheating SFP module
Saturday, September 05, 2026
avidemux on Mac - default settings are fine
Friday, September 04, 2026
investigating lack of referrals
- In the new site (swayamplus.education.gov.in redirected from swayam-plus.swayam2.ac.in) login is via email sent to our email id, and my previous email registration doesn't seem to work. Maybe because I had unsubscribed from course alerts?
- After logging in with a fresh email, found that swayamplus is no longer adding a referer id to the course URL. There is no &ref=ABC123 part in the URL.
Moodle server error alert - due to .jpeg extension
trying to add a content update. I keep getting this error: "servererror,moodle". What could be the problem?
I asked for the URL, and what he had been trying to do. Apparently, the issue was with adding image files with .jpeg extension in a rich-text box. When I renamed the files to .jpg and added them to the box, there was no error.
Thursday, September 03, 2026
creating m3u playlists with Claude
Just like this playlist, please create a playlist called U055newname.m3u where the items
#EXTINF:0,1.mp4
/var/media/1.mp4
#EXTINF:0,2.mp4
/var/media/2.mp4
#EXTINF:0,3.mp4
/var/media/3.mp4
are replaced by the files
/var/media/4.mp4
/var/media/5.mp4
/var/media/6.mp4
/var/media/7.mp4
and the appropriate EXTINF lines.
Claude did catch some typos I had made, and double-checked some files, like
Note the last item keeps its .mp4 extension (matching what you specified: only.mp4), unlike the ENG version which was .avi. Let me know if that should also be .avi.
Also asked Claude to create a python script with the prompt
Now, please write a python script to check each m3u file in the current directory if it has all these items as the first few items of the playlist,
(lines of playlist pasted here)
(for playlists which have TEL in the name)
and if any items are missing, to add them in this order.
Similarly, for m3u files with 3lang or ENG in the name,
(lines of playlist pasted here)
and for playlists with HIN in the name,
(lines of playlist pasted here)
which worked well - I have uploaded to the private repo upstairs-Kodi-playlists
Wednesday, September 02, 2026
dotnet api timeouts and action taken
The API is intermittently failing, and we are seeing a CORS error in the browser Network tab.
Claude noted that the CORS error is misleading, and it is probably because of a backend API timeout.
this is almost never an actual CORS policy misconfiguration — it's the browser's error message for "the actual response didn't carry an Access-Control-Allow-Origin header," which happens whenever the request fails or errors out before your CORS middleware gets a chance to run. Since it's intermittent, that's your biggest clue.
Friday, August 28, 2026
All of your Google Play apps have been successfully registered
- The Google Play App Signing SHA-256 (found in Play Console -> Release > Setup > App Integrity).
- Your Local Keystore SHA-256 (the one generated from yourkey.keystore).
major changes needed for Moodle app
Thursday, August 27, 2026
recovering h5p activites after mod_hvp bug on Moodle
sudo apt install mysql-server
systemctl status mysql
quit;
https://aistudio.google.com/prompts/14Bv6L5AfaOglFuUY_VJZ6F7A1cchR-FQ
Moodle H5P Interactive video playing only audio with black screen
$CFG->mod_hvp_dev = 1;
3. Go to https://your-moodle-domain/mod/hvp/library_list.php
and upload the saved InteractiveVideo.h5p in the Upload Libraries box.
4. Verify that the new version is installed with the query
5. Now in mod/hvp/library_list.php we see Interactive Video (1.27.9) listed, and also a green button at the right to "Upgrade library content". Click on the upgrade library content button to automatically fix all the interactive videos on the site. The page goes to 100% with AJAX updating in less than 30 seconds.
6. Purge caches (sudo php admin/cli/purge_caches.php on CLI ) and test one of the videos to see if it is OK
7. Restore the config.php by commenting out the mod_hvp_dev line we added.
Monday, August 24, 2026
tests of mid-tones brightness reduction on planetarium dome
Friday, August 21, 2026
Cloudflare Origin Server Certificate for Wordpress instance on Hostinger
After chatting with Hostinger support, the following is the reply.
"Yes. Your WordPress instances on Premium Web Hosting support custom SSL certificates on their virtual hosts"
(Copy-pasting from an email exchange).
So, we could install the cloudflare origin server certificate as per the procedure at https://www.hostinger.com/support/1583785-how-to-install-a-custom-ssl-in-hostinger/
Doing this has both Pros and Cons.
The pro is that then we can be sure of the certificate being valid for Cloudflare - unlike the letsencrypt certificate currently present, which would need updating every three months.
The con is that once the cloudflare origin server certificate is installed, you can only access the wordpress site through cloudflare (or you would get a scary "certificate not trusted" message) and you would be limited by cloudflare's file upload and timeout limits.
(The team opted to not use Cloudflare Origin Certificates.)
