https://blenderartists.org/t/
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, December 31, 2023
gpu cpu render time comparison
rendering tips for Blender - noise threshold
To speed up Blender rendering with cycles -
About noise threshold
https://medium.com/@samuelsullins/your-first-real-render-in-blender-a27d3049d659
(also mentions tip about Lock Camera to View for easily manipulating camera by viewing through it).
For 720p, 100 samples should be plenty,
https://blenderartists.org/t/cycles-how-many-sample-should-i-render/1466873
Recommended workflow now is to set a noise threshold, and allow the number of samples to be dynamically set. - You need to set a time limit.
https://blenderartists.org/t/question-about-noise-threshold-in-3-0/1354392
Friday, December 29, 2023
Thursday, December 28, 2023
Wordpress users unable to log in
Troubleshooting request - admin users got logged out of Wordpress, unable to log in, "reset password also not working".
Rebooting the server has not resolved the issue.
The users shared this page,
https://blog.hubspot.com/website/locked-out-of-wordpress
Reset the password by connecting to the database and editing the users table, getting the MD5 hash of the password using
echo -n testpasswrdreplacewithcorrectone | md5sum
which works fine, tested with
Friday, December 22, 2023
frame repeat / drop bug
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.
Possibly this is due to using ffmpeg in the backend, and this issue?
https://superuser.com/questions/1255380/ffmpeg-duplicating-frames
ffmpeg seems to assume 25fps input as default for frame sequences, and adds duplicate frames if output is 30 fps. https://gist.github.com/hn-88/95dbd59767dcdff23eab2f2be5880c2f
-fps_mode passthrough
seems to be a workaround when using ffmpeg from the commandline, but when ffmpeg is used via OpenCV, how do we manage this?
generate a video with frame numbers
Using ffmpeg, can use the following
Generate a video of frame numbers. (github.com)
This can be used to test for bugs like this one,
frames being repeated or dropped · Issue #10 · hn-88/OCVvid2fulldome
Tuesday, December 12, 2023
update to Moodle minor update post - stop git from complaining about file permissions changes
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.
So, the updated list of commands:
workflow and supported codecs
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.
Upcoming - perhaps try AV1 codec?
https://trac.ffmpeg.org/wiki/Encode/AV1
Sunday, December 10, 2023
Moodle server down - restart db server fixed it
Uptimerobot alerted me that one of our Moodle servers was down.
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).
Friday, December 08, 2023
Wordpress permalink issue
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.
Following
https://ubuntu.com/tutorials/install-and-configure-wordpress#4-configure-apache-for-wordpress
added the lines
<Directory /oursrv/path/to/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
to the relevant files in /etc/apache2/sites-available and then did
sudo service apache2 reload
The admins report that this solved the issue.
Saturday, December 02, 2023
Update your trusted root store for Azure Storage services
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.Wednesday, November 29, 2023
converting flat video to fulldome
Wednesday, November 22, 2023
saga of backing up and restoring a course with H5P content on moodle
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
SELECT * FROM information_schema.INNODB_ TEMP_TABLE_INFO;
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.
https://docs.moodle.org/401/
Found a google drive listed there,
https://drive.google.com/file/
After removing, still no.
Tuesday, November 14, 2023
moodle app build for v4.3.0
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
Checking the testing.yml in the 4.3.0 tag found some extra lines like
npm ci --no-audit --prefix cordova-plugin-moodleapp
Adding that led to a different error,
cordova-plugin-moodleapp@0.0.0 prod /home/runner/work/LMSapp/LMSapp/cordova-plugin-moodleapp
sh: 1: scripts/build.js: Permission denied
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:
Monday, November 13, 2023
moodle app ui for multiple logins
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.
using mv to move hidden files from a script or command line on Linux
mv subfolder/{.,}* /path/
But this can cause scripts in github actions to fail, so using cp -r instead.
Saturday, November 11, 2023
mirror ipad screen on Windows PC
https://www.howtogeek.com/247573/how-to-mirror-your-iphone-or-ipads-screen-on-your-windows-pc/
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".
Friday, November 10, 2023
the beginning of the end of Google
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.
Cory Doctorow, of course, has written about it eloquently on medium -
https://doctorow.medium.com/googles-enshittification-memos-2d6d57306072
and the ad-free, login-free version on
https://pluralistic.net/2023/10/03/not-feeling-lucky/#fundamental-laws-of-economics
Edit: Here is a Google insider's take on Google's cultural erosion - via slashdot,
Wednesday, November 08, 2023
turning off some notification types in a default Moodle install
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.
Tuesday, November 07, 2023
zoom effect in blender without moving camera
By animating the focal length property of the camera, we can get the equivalent of a zoom lens effect in blender, without moving the camera.
https://blender.stackexchange.
getting started with google search console
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."
Friday, November 03, 2023
adding a file to an appimage
To test out the script in the interesting discussion
https://github.com/Stellarium/stellarium/discussions/3424
I tried to add the script in the discussion to an appimage of stellarium 19.3. It turns out it's not that easy, but some things can be done.
https://superuser.com/questions/1301583/how-can-i-extract-files-from-an-appimage
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.
https://unix.stackexchange.com/questions/517881/how-can-i-change-the-files-of-an-appimage
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,
org.stellarium.Stellarium:~: metainfo-filename-cid-mismatch
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.
Saturday, October 28, 2023
moodle site registration issue and fix
request for new font in Moodle instance
Following a request to install a new font in a Moodle instance, I did a local install with
sudo mkdir -p /user/share/fonts/googlefonts
cd /usr/share/fonts/googlefonts
sudo unzip -d . ~/Tangerine.zip
sudo fc-cache -fv
Thursday, October 26, 2023
more reading about prototype pollution - even front-end can have vulnerabilities
Checking to see how critical are prototype pollution vulnerabilities for front-end code, apparently they are:
google photos links sent by email, not working on iPhone
I had shared some google photos albums using the sharing link, which is of the form https://photos.app.goo.gl/<id> and A said that they could not see the album.
My reply was,
those links are probably not opening in your iPhone because your phone's Apple Mail is not configured to use Safari or Chrome browser to open links.And that seemed to work.
It might work if you long press on the link, choose "Copy", and paste the link in Safari or Chrome browser in your phone.
Mongodb pros and cons
One of the many sites which list Mongodb vs Postgres comparisons,
https://www.knowledgenile.com/
Transaction-safety and joins etc are what mongodb doesn't offer, while sharding is its strength.
Wednesday, October 25, 2023
Amazon firestick not recognizing a USB drive - issue was with partitioning
There was one drive which was being recognized, and another drive which was not. The drive which was being recognized had the original 16 GB FAT32 partition, while the one which was not being recognized had been used as a Linux Mint installation disk, and had been later reformatted as FAT32 using the "Disks" utility on Linux Mint.
Suspecting that block size might be the issue, to show the block size,
sudo mkfs.fat /dev/(device name from above) -s 64 -F 16
Then, tried GParted. GParted showed the partition to be of type iso9660!
Unmounted, Deleted the partition, recreated partition table with device -> create partition table (msdos), formatted as msdos, then the Firestick recognizes it OK even though the block size is 8K as shown in
stat -f /media/mac/LM
File: "/media/mac/LM"
ID: 83100000000 Namelen: 1530 Type: msdos
Block size: 8192 Fundamental block size: 8192
Blocks: Total: 1951116 Free: 1318805 Available: 1318805
Inodes: Total: 0 Free: 0
Tuesday, October 24, 2023
quick blender refresher
A quick 20 minute video walk-through of Blender 3.0
https://www.youtube.com/watch?v=Rqhtw7dg6Wk
Similar to https://hnsws.blogspot.com/2011/10/getting-started-with-blender.html
Monday, October 23, 2023
Sunday, October 22, 2023
upload artifact from github actions build
Create a Release and Upload Artifacts with GitHub Actions | Thomas Stringer (trstringer.com)
Just add the following, and it will create a zip file with the path -
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: artifact-of-build
path: platforms/android/app/build/outputs/
Saturday, October 21, 2023
optimizing github actions build using cache
Wednesday, October 18, 2023
Travis deploy to Github releases - requires classic personal access token
OCVWarp deployment from Travis-CI to Github Releases failed because the token had expired. When creating a new token, I tried a fine-grained token with write permissions to releases on that repo alone. But that did not seem to work. A "classic" personal token with "repo" scope worked fine.
Tuesday, October 17, 2023
"Self driving car" on a budget using webcam and arduino
An interesting video and project via Computerphile on youtube -
SelfDriving/DataCapture.py at main · apt503/SelfDriving · GitHub
Of course, this is just a side project, but the approach is interesting.
Sunday, October 15, 2023
migrating from Android to iPhone
How to migrate your WhatsApp data from Android to iPhone | WhatsApp Help Center
Though this method was followed, only the photos and media were transferred from whatsapp, not the chat history. Probably that was because whatsapp had been earlier installed on the iphone, though it was then removed with "delete all data"?
https://faq.whatsapp.com/1195710084347483?helpref=faq_content
then, to transfer music, move content manually from your Android device to your iPhone,
Friday, October 13, 2023
playing local video from firestick without internet
While setting up the Firestick, we wanted to create a new dedicated account for it, but it asked for a unique phone number - so we just used my account.
We found VLC player was stuttering with our 4K videos on USB, but MXPlayer works with hardware acceleration, and plays them perfectly. To access MXPlayer without internet, via Quora,
Settings --> “Applications” --> “Manage installed applications” --> "MXPlayer" --> "Launch"
And it looks like there is no "shutdown" option - we just press "home" to come out of MXPlayer, and then turn off power to the device.
Our Firestick runs FireOS 6.4, but we did not have to do any ADB commands to use FAT32 formatted USB memory. The ADB commands in this pdf may be useful for increasing system usable memory, installing apps and so on, but not needed for us.
As recommended in this troubleshooting video, when connecting for the first time, doing so from the "home" screen might be beneficial.
How to play our own content from USB on Amazon Firestick
We can't just connect the firestick to a computer and transfer files to its internal memory - MTP does not work with Firestick 4k -
But far simpler to just use a removable USB drive.
Thursday, October 12, 2023
error updating snapd
Investigating unresponsive server behaviour on one of our servers,
grep -i error /var/log/syslog
showed some lines with WALinuxAgent - this is Azure's agent, I guess, as well as snapd.
snapd[63805]: stateengine.go:149: state ensure error: cannot query the store for updates
To check if we can remove snapd
How to remove LXD from my system - LXD - Linux Containers Forum
So I left it alone, and tried a manual update with
sudo snap refresh
which indicated all packages were up to date. So maybe the error was a temporary error.
issue with one of our Linux servers
One of our Linux servers was becoming unresponsive around 2-5 pm daily over 2-3 days. Checked the logs as in my earlier post but did not find anything except the usual SSH brute-forcing attacks. Changed the port from 22 to something else by
sudo nano /etc/ssh/sshd_config
sudo service sshd restart
And opened the new port on Azure portal Networking screen.
This seems to have worked.
Wednesday, October 11, 2023
redesigning python code to fade out smart lamps
The smart lamp controls with a python flask app as in a previous post had some issues.
- There was no feedback to the user in case the mobile browser lost connection or the python app lost connection to the smart lamps.
- The raspberry pi was showing slightly excessive cpu usage, with the lightning bolt icon on the top right corner appearing sometimes.
- There was no way to stop the python loop in case it was taking too long to complete.
- The way I'd written it, if the /fadein url was the last used one before mobile browser disconnect, the next time I opened the mobile browser, the lights would come on! due to the mobile browser retrying that page.
So, thought of redesigning the code.
Found that RaspController has a section for running user-defined custom commands. Since both KR and I use RaspController on our phones, the simplest solution seemed to be to just use a python script to do the fadeout of the lights, and show the output of the script on the terminal using RaspController.
And that seems to be working fine.
Since the code on github has the device ids and local keys, instead of taking the time to modify the code to put the private info in separate files etc, I'll just copy-paste the current state of the code here.
import tinytuya, sys
from time import sleep
def moveup(lines):
for _ in range(lines):
sys.stdout.write("\x1b[A")
nowait = bool(1);
# Connect to Device
d = tinytuya.BulbDevice(
dev_id='changeme',
address='our.ip.2', # Or set to 'Auto' to auto-discover IP address
local_key="changeme12",
version=3.5)
print("Connected to d")
b = tinytuya.BulbDevice(
dev_id='deviceidchange',
address='our.ip.1', # Or set to 'Auto' to auto-discover IP address, but that takes 10 sec
local_key="changeme34",
version=3.4)
print("Connected to b")
def fadeout():
d.set_brightness_percentage(100, nowait)
sleep(1)
b.set_brightness_percentage(100, nowait)
sleep(1)
d.turn_on()
print("d turn on")
sleep(1)
b.turn_on()
print("b turn on")
sleep(1)
i = 100
while i > 10:
d.set_brightness_percentage(i, nowait)
print("d brightness {0:3d}".format(i))
b.set_brightness_percentage(i, nowait)
print("b brightness {0:3d}".format(i), end='\r')
moveup(1)
sleep(1)
i -= 10
i = 10
while i > 11:
d.set_brightness_percentage(i, nowait)
print("d brightness {0:3d}".format(i))
b.set_brightness_percentage(i, nowait)
print("b brightness {0:3d}".format(i), end='\r')
moveup(1)
i -= 1
d.turn_off()
print("d turned off. ")
b.turn_off()
print("b turned off. ")
fadeout()
Edit: unfortunately, this Tuya solution had issues when the internet connection was down - the response to API calls would become extremely slow - maybe taking a minute or two after some sort of timeout - making the fade in/out loop pretty much non-functional. As suggested by one of the volunteers at a sister institution, we tried Wiz lamps and LED strips instead, which work flawlessly without an internet connection using a Wiz remote as mentioned in a newer post.
finding duplicates to fix SQL query - ad hoc query in Moodle
There was an issue once again with the feedback ad-hoc Moodle report - checking the query in DBeaver, the database returns an error "Subquery returns more than one row" for some dates. Eg Oct 1.
Via https://stackoverflow.com/questions/2594829/finding-duplicate-values-in-a-sql-table
Found the duplicate timestamps with
select timemodified, count(*) from ourprefix_feedback_completed
GROUP BY timemodified
HAVING COUNT(*) > 1
1690263769 2
1696119639 5
Have changed the timestamps to increment the duplicates by one, so that the query works without issues.
Tuesday, October 10, 2023
blender rendering notes
I tried out some rendering of scenes using the Cycles Panorama camera 180 degree Fisheye Equidistant option. A large number of links to howtos for accomplishing specific tasks in blender - link dump below.
1. Render optimizations - 4K render of one frame takes 6:45 - nearly 7 minutes a frame is not enough - need to check out GPU rendering. GPU needs min compute capability 3 Nvidia or AMD GPU -https://www.youtube.com/watch?
https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
For reference, the old Macbook Pro with 4 GB RAM and i7 processor has a compute capability of 1.2 -
5 Tips for FASTER Renders in Blender Cycles - YouTube
Involved version - https://youtu.be/NFtXTruJ-_c
Blender Tutorial - Creating a Rocket Launch Simulation - YouTube
How to make an ocean in blender FAST - YouTube
But what I tried out was this one,
Without Ocean Modifier: Create A Large Water Body In Blender | Realistic Ocean or Lake Water - YouTube
BIG CHANGE! You won't find BlenderKit in Blender 3.0 by default anymore || Blender Tutorial - YouTube
5. The reason the smoke was not working for my rocket was the Bake settings, and the paths to the bake were also set wrongly. Need to set the paths correctly, Free all, then bake all.
under Cache,
All About HDRI Background & Realistic Lighting
Blender 2.8 How to rotate an hdri environment background - YouTube
https://blender.stackexchange.com/questions/230328/how-to-package-all-assets-image-textures-mainly-into-a-folder-not-into-blend
File --> External Data --> Make all Paths relative
https://blender.stackexchange.
http://www.ffnn.nl/pages/
- is not sufficient. The smoke gets updated only once in 10 frames if the time remapping is 10 to 100. Trying 100 to 1000 - the maximum value for the latter value is 999 - so 100 to 999, but the resulting animation still has the smoke particle system jumping from one state to the next every 9-10 frames. So the only way is to add more frames to the project, and drag the keyframes further along the timeline. A separate post about it coming up.