cd submoduledirectory
before the configure and build steps. Or, of course, if just updating the branch is needed, only the git checkout line would be needed.
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!
| OS | macm1 |
|---|---|
| CPU | Apple M4 x 10 |
| RAM allowed | 11.0 GB |
| RAM available | 16.8 GB |
| Max render time per frame | |
| Power CPU | 208 % |
| Scheduler | default |
The ffmpeg command
ffmpeg -y -r 30 -i in_%05d.jpg -i ../NormPeak-6dBENG.wav -c:v hevc_nvenc -preset lossless -global_quality 18 -pix_fmt nv12 -c:a aac -b:a 192k ~/Downloads/4kframes.mp4
gives the following warnings -
[aist#1:0/pcm_s16le @ 0x59f7e96fbfc0] Guessed Channel Layout: stereo
....
[in#0/image2 @ 0x59f7e96f4e40] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[swscaler @ 0x59f7e97ae500] deprecated pixel format used, make sure you did set range correctly
Last message repeated 3 times
[hevc_nvenc @ 0x59f7e9701880] The selected preset is deprecated. Use p1 to p7 + -tune or fast/medium/slow.
[hevc_nvenc @ 0x59f7e9701880] Using global_quality with nvenc is deprecated. Use qp instead.
Claude's suggestion to fix -
ffmpeg -y -r 30 -i in_%05d.jpg -thread_queue_size 512 -i ../NormPeak-6dBENG.wav -c:v hevc_nvenc -preset p7 -tune lossless -cq 0 -pix_fmt yuv420p -c:a aac -b:a 192k ~/Downloads/4kframes.mp4
PB helped me out with the following info:
From ChatGPT,
ffmpeg -i filename_%05d.jpg -c:v hevc_qsv -preset veryslow -global_quality 0 output_lossless_qsv.mkv
With audio, we would need something like
ffmpeg -r 30 -i KG-LS_%05d.jpg -i audio.wav \
-c:v hevc_qsv -preset veryslow -global_quality 0 \
-c:a aac -b:a 192k \
-shortest \
output_with_audio.mkv
# or on Windows,
ffmpeg -r 30 -i KG-LS_%05d.jpg -i audio.wav ^
-c:v hevc_qsv -preset veryslow -global_quality 0 ^
-c:a aac -b:a 192k ^
-shortest ^
output_with_audio.mkv
# Individual discussion subscriptions might still exist
DELETE FROM prefix_forum_digests;
DELETE FROM prefix_forum_discussion_subs;UPDATE prefix_user SET maildigest = 0 WHERE emailstop = 1;# Users might be getting auto-subscribed when they post
UPDATE prefix_forum SET trackingtype = 0;TRUNCATE prefix_forum_track_prefs;... would require us to conduct a proctored test. Moodle has several plug-ins. They are promoting 'Proctoring for Moodle'. I also find Quilgo to be good. Can we install these 2 plug-ins (and any other plug-in recommended by you) in (our dev server) for us to test them out?
Here is a list of proctoring plugins for Moodle, probably you would have seen this already. https://moodle.org/plugins/?q=proctor
'Proctoring for Moodle' is free software, but if you want to use the automated face-recognition, they ask us to contact them. "Moodle Proctoring plugin is a Quiz Access plugin designed to capture a user's picture via webcam to identify the individual attempting the Moodle quiz."
A demo is at https://www.youtube.com/watch?v=NcrE1OIj6_Q
In that video, it is mentioned that features like capturing student's screen for "suspicious behaviour" like copy-pasting into Google etc, requires Proctoring Pro.
But the "purchase" Proctoring Pro link seems to be broken. -
https://proctoring.elearning23.com/
https://elearning23.com/moodle-proctoring-pro-details/
https://elearning23.com/wp-content/uploads/2024/10/Proctoring-Pro-v2.0.0-User-Manual.pdf
(page not found etc)
"Quilgo® Proctoring for Moodle is a highly scalable plugin that allows you to include a camera, screen, track activity, and receive reports on test completion. Online assessments become easier and more reliable. Easy to use, no API customization or maintenance required." But the free plan is only for 20 tests, and the cheapest paid plan is $1200 for a year or $140 for a month.
https://quilgo.com/products/moodle
A demo/tutorial is at https://www.youtube.com/watch?v=-pwwImIprSM
I have installed 'Proctoring for Moodle' and "Quilgo® Proctoring for Moodle" on (our dev server) now.
According to this youtube video, there are some terms and conditions which are shown only in the Airtel app, by which
ffmpeg -i input.mp4 -i map_x_directp2.pgm -i map_y_directp2.pgm -i weight_alpha_mask.png -filter_complex " [0:v]scale=3840:2160[scaled]; [scaled][1:v][2:v]remap[remapped]; [3:v]format=gray,scale=3840:2160,colorchannelmixer=rr=1:gg=1:bb=1[mask_rgb]; [remapped][mask_rgb]blend=all_mode=multiply[out] " -map "[out]" -map 0:a -c:v hevc_nvenc -preset p5 \
-cq 23 -rc vbr -maxrate 15M -bufsize 26M \ -c:a aac -b:a 128k output.mp4
via https://linuxvox.com/blog/create-usb-boot-linux-mint/
sudo dd if='/path/to/linuxmint-22-cinnamon-64bit.iso' of=/dev/sdd bs=4M status=progress
2810183680 bytes (2.8 GB, 2.6 GiB) copied, 140 s, 20.1 MB/s
So, on my machine, it took less than three minutes to create a 2.8 GB boot disk.
Asked ChatGPT, "linux commandline to list total disk space used of all files created or modified inside a directory more than one year ago" and got the following -
You can do this with find + du or find + stat + awk.
Here’s a one-liner that lists the total disk space used by files in a directory older than one year:
find /path/to/dir -type f -mtime +365 -printf "%s\n" | \
awk '{sum+=$1} END {print sum/1024/1024 " MB"}'
find /path/to/dir → search inside that directory.
-type f → only files.
-mtime +365 → modified more than 365 days ago (roughly one year).
-printf "%s\n" → print file sizes in bytes.
awk → sums up sizes and prints total in MB (divide by 1024/1024).
If you prefer human-readable output directly:
find /path/to/dir -type f -mtime +365 -print0 | du --files0-from=- -ch | tail -n1
This gives you a total in du’s human-readable format.
Asked ChatGPT, "tree view of files and directories larger than 1 GB from linux command line" and got the following -
You can combine find, du, and tree-style output to list only files/directories larger than 1 GB in a tree view. Here are a couple of approaches:
find with treefind /path/to/search -type f -size +1G -print | tree --fromfile
find ... -size +1G → finds files > 1 GB
tree --fromfile → prints a tree structure from the list
If you want directories too (based on contents size), use du instead (see below).
du for directories/files with sizesdu -h --threshold=1G --max-depth=3 /path/to/search | sort -h
--threshold=1G → only show entries larger than 1 GB
--max-depth=3 → how deep to go
sort -h → human-readable sort
This shows sizes and paths (not tree formatting, but size summary is clearer).
dudu -h --threshold=1G --max-depth=3 /path/to/search | sort -hr |
awk '{print $2}' | tree --fromfile
This gives you a tree structure of directories/files whose total size is ≥ 1 GB.
✅ If you want only the largest offenders (say top 20 big files/directories over 1 GB), you can do:
find /path/to/search -type f -size +1G -exec du -h {} + | sort -hr | head -20
For this, I had to sudo apt install tree
How to use github projects - a getting started video -
https://www.youtube.com/watch?v=oPQgFxHcjAw
Opened a private repo with issues, and with ChatGPT's help, linked it to a project. (Projects --> New Project in the github web UI for that repo). Automation to create a new issue worked after some tweaking - the github actions yml is copy-pasted below:
name: Instantiate Planetarium Show Task
on:
workflow_dispatch:
inputs:
show_title:
description: 'Title of the Planetarium Show'
required: true
deadline:
description: 'Deadline'
required: false
permissions:
issues: write
contents: read
jobs:
create_task_issue:
runs-on: ubuntu-latest
steps:
- name: Build issue content
run: |
echo "## Show Details" > issue.md
echo " " >> issue.md
echo "**Show Title:** " >> issue.md
echo "${{ github.event.inputs.show_title }}" >> issue.md
echo "" >> issue.md
echo "**Deadline:** " >> issue.md
echo "${{ github.event.inputs.deadline }}" >> issue.md
echo "" >> issue.md
echo "## Steps" >> issue.md
echo "" >> issue.md
echo "- [ ] Create script" >> issue.md
echo "- [ ] Create Hindi translation" >> issue.md
echo "- [ ] Create Telugu translation" >> issue.md
echo "- [ ] Review Hindi translation" >> issue.md
echo "- [ ] Review Telugu translation" >> issue.md
echo "- [ ] Record Hindi VO" >> issue.md
echo "- [ ] Record Telugu VO" >> issue.md
echo "- [ ] Edit Hindi VO" >> issue.md
echo "- [ ] Edit Telugu VO" >> issue.md
echo "- [ ] Warp ready for our theatre" >> issue.md
echo "- [ ] Eng-Hin-Tel audio" >> issue.md
echo "- [ ] Final audio mix" >> issue.md
echo "- [ ] Save backups" >> issue.md
echo "- [ ] Post on website" >> issue.md
echo "" >> issue.md
echo "---" >> issue.md
echo "" >> issue.md
echo "" >> issue.md
- name: Create issue from template
uses: peter-evans/create-issue-from-file@v4
with:
title: "[Show] ${{ github.event.inputs.show_title }}"
content-filepath: issue.md
token: ${{ secrets.GITHUB_TOKEN }}
labels: show,task
This script had to be re-written due to ChatGPT repeatedly using heredoc syntax which would clash with github's yml. I had to explicitly ask it to "Please use echo >> on each line, and no heredoc."
One more automation script to automatically move the items in the project from "TODO" to "In Progress" when any of the checkboxes above were clicked, failed. ChatGPT usually fails when the documentation is not complete and / or there are conflicting earlier documentation pages, as in this case. It would repeatedly suggest using
permissions: issues: write projects: write
when actually such a permission is no longer accepted by Github - it was part of "classic projects" - https://docs.github.com/en/enterprise-server@3.16/issues/planning-and-tracking-with-projects/creating-projects/migrating-from-projects-classic.
Apparently with projectsV2, the REST api does not work, only GraphQL API works. And it needs a classic personal access token to work. And the code generated by ChatGPT had errors which I could not get it to fix after multiple iterations over multiple days, so I just left updates to be done manually by clicking on the drop-down seen in the linked project for each issue. I could probably read the GraphQL API documentation and try again, but right now, not motivated to do so.