Wednesday, February 28, 2024

free satellite imagery from Sentinel and other sources

Nowadays we have grown used to Google Maps having high resolution satellite images. But they are copyrighted images and the Google credits need to be shown onscreen if we use it in a planetarium show or something like that. Looking at OpenSpace and its data sources, googled for some free sources of hi-res satellite images - 

for quick and easy temporal images.

for slightly lower resolution, but with older data also

Sentinel images for hi-res
Full global coverage since March 2017. 10, 20 & 60 metre resolutions.

World Imagery Wayback - easy to navigate like google maps, but with ESRI terms of use - allows noncommercial use.
and ESRI World Imagery - up to 3 cm resolution! For free with ESRI terms of use - allows noncommercial use.



changing the storage limit on onedrive for a particular user

Yesterday, I had looked at
portal.azure.com and the Users link there.
In that interface, it only allowed adding of licenses, I did not see the screen for quota changes.

Today, I tried going to admin.microsoft.com
There, I get the option to edit the storage limit for onedrive.
But still, we can only limit it to less than one 1TB, we cannot increase it to more than 1 TB (as per the license being used by that user).

Sunday, February 25, 2024

OCVWarp with frameserving

I tried to incorporate frame-serving via avisynth+ to my OCVWarp workflow described here, so that steps 1 and 2 could be conflated and the rendering time could be halved - most of the rendering time is taken up by the CPU usage of the codec, I believe. But it did not work.

The latest avisynth+ files work with the latest Virtualdub - even 4096x4096 videos are rendered with no problems. But creating a frameserver with Virtualdub and pointing OCVWarp to the frameserver causes OCVWarp to crash/not respond. AVFS also did not help.

append ConvertToRGB24()

But not responding even in vdub.

(
to get avfs to work, had to run 
pfm-192-vapoursynth-win.exe
in an administrator cmd 
)

easily adding a mask with blender using Multiply

If only an opacity mask (like making the sky less bright) needs to be done, we just need to add the layer on top, and choose the Multiply blend under Compositing.



Friday, February 23, 2024

ffmpeg recipes for image slideshows

 Just to bookmark this, I've not tried these out yet - https://stackoverflow.com/questions/24961127/how-to-create-a-video-from-images-with-ffmpeg - where there is a long answer with resizing options, adding audio, etc.

api js formatting - make it readable in Notepad++

Since javascript code obtained from servers is minified and on a single line, it can be difficult to read.

As the top post in this link says, Is it possible to indent JavaScript code in Notepad++? - Stack Overflow

  1. Select menu Plugins ->Plugin Manager ->Show Plugin Manager
  2. Check JSTool checkbox, install and restart Notepad++
  3. Open js file and then go to menu -> Plugins -> JSTool -> JSFormat

link to check if Windows Firewall is blocking something

https://www.wikihow.com/Check-if-Your-Firewall-Is-Blocking-Something

Basically we have to go to Control Panel --> System and Security --> Windows Defender Firewall --> Advanced settings

Another way would be to delete the settings for a particular software or exe, and run it so that the popup comes up again, to enable or disable.

Tuesday, February 20, 2024

emails from microsoft365 bouncing, showing "no such user"

One of our domains runs their emails on Microsoft365/Outlook, and they were unable to send emails to some other domains they own. Some messages would bounce saying "no such user". It turned out that the recipient domain had been added to Microsoft365 as an additional domain, but no users were added under that domain. Also, that domain was actively being used, with MX records pointing to Google Workspace. So, Outlook or Microsoft365 was not looking at the MX records, but instead looking at the internal users with active directory, and deciding that there was "no such user". 

The solution was to remove that recipient domain from Custom domain names - Microsoft Azure

Any other users who had been added to the Microsoft active directory would need to check their inbox on Outlook and not on Google Workspace for any emails sent from our domain on Outlook. This would be relevant for emails being sent from Onedrive, Microsoft Teams, etc. 

Friday, February 16, 2024

DKIM and SPF for a domain using Microsoft Outlook as email provider

One of our domain administrators got an email from Microsoft, "Ensure your email authentication records are set up to avoid mail flow issues to third-party email accounts." Apparently, DKIM was not set up properly.

The page at
Email authentication settings - Microsoft Defender
says,

|Microsoft.Exchange.Management.Tasks.ValidationException|CNAME record does not exist for this config. Please publish the following two CNAME records first.
Domain Name : ourdomain.org
Host Name : selector1._domainkey
Points to address or value: selector1-ourdomain-org._domainkey.ourdomain.onmicrosoft.com

(This is tested and working fine with dig.)


Host Name : selector2._domainkey
Points to address or value: selector2-ourdomain-org._domainkey.ourdomain.onmicrosoft.com

(This record returns SOA. I thought there was something wrong with onmicrosoft.com DNS settings. But probably this record is used only when the key needs to be rotated.) 

I set the DKIM CNAME records as per the email.

The page
Email authentication settings - Microsoft Defender
says sync will take a few minutes to several days. 

After 90 minutes or so, I checked and found DKIM successfully enabled at that page. The page said that it would take several minutes to roll out the changes, so that DKIM signing would commence after a few minutes/hours.

This page
Set up SPF identify valid email sources for your Microsoft 365 domain | Microsoft Learn
says that SPF is already set. And I verified that it is set properly using dig. So that should solve this issue.


Thursday, February 15, 2024

Uploading of Specific Fonts on WordPress with Astra Theme

Copy-pasting from an email exchange:

we were trying to upload special fonts for headings and subheadings in the home page and we could not do it.

Can you pls check if it is related to any file permission issue.
 
Are you trying to install those fonts locally or use them by linking to Google's servers? 

If you are trying to install them locally, you probably may not have the required permissions.

I've now downloaded those fonts and installed them on the wp server locally. Maybe wpastra can pick them up from there. Please check.
 
(When they said it still did not work, I responded as follows:)
 
1. Google fonts can be linked in web pages in such a way that the users of the web pages get the fonts from google and display it on their browsers. If this has to work properly, there are several things which have to be taken care of. Example:

2. Another way in which fonts can be embedded in web pages is using fonts on your web server, like this,

3. Another way in which fonts (any font) can be used is to just define the font, without embedding it - in this case, the font will fail to load if the same font is not present in the user's machine.

Without knowing what you are trying, whether the situation is 1, 2 or 3, I cannot help you further.

If you cannot tell me whether it is 1, 2 or 3, I would need access to a test page where the issue is seen.
 
(And they confirmed that it is working:)
The font issue is resolved, and we can choose the font type from the font family. We found out that we were missing one step for changing the font.


60 fps to 30 fps with ffmpeg without reencoding


ffmpeg -itsscale 2.0 -i input-60fps.mp4 -vcodec copy output-30fps.mp4

(Use the "copy" video codec, and scale the input timestamps using the floating point number 2.0)

Tuesday, February 13, 2024

problems with recording with a laptop's built-in mic

Copy-pasting from an email exchange - 

Sorry, perhaps I should have asked you for a small sample recording before you recorded the whole thing. The audio quality is not great. There is something wrong either with the settings or with your hardware or both.

1. The same issue as last time, the audio sounds as if it has been recorded over a telephone line or something like that - the frequency response falls off after 5kHz, and there is nothing beyond 8kHz - 

 


You can compare that with this recording made with a Zoom H1 recorder,

 


where the frequencies up to 15 kHz and even a little beyond are clearly present.

2. Another bigger problem is that the recording has distortion due to getting clipped - the mic gain was "too hot".
 
(It turned out that the issues were due to recording using the laptop's built-in mic instead of using an Audiogram and a proper mic.)

 

creating stellarium flybys

As mentioned in September last year, Stellarium now has some features which enable creation of flybys. Perhaps Saturn is the most spectacular? Tried out creating two fulldome versions suitable for planetariums, one with Saturn visible at the apex of the dome, and another with Saturn near the front side of the dome, suitable for planetariums with unidirectional seating. 

Code is at https://github.com/hn-88/stellarium-scripts

 




More flybys available via stephanpls at https://github.com/Stellarium/stellarium/discussions/2178



Monday, February 12, 2024

adding SPF record for one of our servers

One of our servers which used to send a few notification emails to us via postfix stopped doing so - status=bounced (host gmail-smtp-in.l.google.com[142.251.2.27] said: 550-5.7.26 This mail has been blocked because the sender is unauthenticated. 550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM.

So, set up an SPF record in cloudflare, and all is well again.

optimizing kodi for planetarium projection

By default, Kodi on LibreELEC running on Raspberry Pi 4 was detecting our Optoma ZK 507 projector and setting the output resolution to 4096x2160 @ 30 Hz. This was all right, but our 3840x2160 and 1920x1080 shows were showing a black bar at the bottom. Checking for solutions - not the minimise black bars global setting, but instead, setting the resolution from the comments on this thread, 

https://discourse.osmc.tv/t/howto-guide-to-the-kodi-whitelist-function-and-related-settings/83919

I did not need to make a whitelist or blacklist in Kodi (blacklist is for devices, whitelist is for allowed video modes) - just setting the resolution at Settings --> System --> Display to 3180x2160 @ 30 Hz did the trick. Now, no black bars at the bottom of the FHD or UHD videos. 


Another issue was, hiss in the sound output via a generic USB sound output, when amplified by our sound system. We set up a limiter and a gate with our old Behringer MDX 2200 compressor. Then, for further sweetening, I got a second-hand Lexicon Alpha sound device via bajaao.com for approximately one day's salary, and used that for sound output - no more hiss.

For recognizing the Lexicon Alpha, we had to plug it in after the Raspberry Pi booted into LibreELEC and Kodi - on every reboot. After recognizing the device, a one-time configuration change in Kodi --> Settings --> Audio settings --> Audio device , and set the output device to Lexicon Analog (not Lexicon SPDIF in this case).

Trying a direct connection for the Lexicon Alpha onto the RPi (as against a connection via a USB hub) also did not resolve the issue of not recognizing it on boot. So, we're plugging it in after every reboot (on the USB hub for convenience.) 

Also available -
https://kodi.wiki/view/Settings/System/Audio#Maintain_original_volume_on_downmix
(not directly useful for us, since we're not downmixing all our files)
 

https://kodi.wiki/view/Settings/System/Audio#Volume_control_steps
(set it to the maximum of 50)

And, compression also seems to be available, via specific video's context menu
https://forum.kodi.tv/showthread.php?tid=196313
https://kodi.wiki/index.php?title=Video_playback#Audio_Settings

If this could be a global setting, we could perhaps avoid the hardware compressor, too.

Friday, February 09, 2024

huggingface and making your own customized chatbot for free

Huggingface released a free method to build customized AI chatbots

https://venturebeat.com/ai/hugging-face-launches-open-source-ai-assistant-maker-to-rival-openais-custom-gpts/

That link also discusses some pros and cons - like no web lookups for huggingchat. So, I looked up how we can make our own chatbot, the full detailed step by step process, how much manual work is involved, and what we need to customize it.


(seems to be generated by a chatbot? Not very useful at all.)

(this is good. Need to input data as csv - query and response examples)

(this seems to be the generic steps without customization)

So, link (2.) seems to indicate that we need to train it using a csv file with sample queries and responses. This is something which, for example, a large number of volunteers could generate. If each one generates questions and answers based on one Discourse, for example, 200 or 2000 people could generate quite a good data set.


Thursday, February 01, 2024

IPV6 readiness

A blog post about AWS charging for IPV4 addresses -

We could use AAAA records (IPV6) instead of A records (IPV4) to avoid these charges, since Cloudflare would proxy to IPV4 and IPV6. In case we need to SSH into the servers, and our ISP / router does not support IPV6, then we might need something like this,
 
A and AAAA are auto generated for cloudflare proxied servers.

But for ssh, we will need to use cloudflare tunnels.
Connect private networks · Cloudflare Zero Trust docs 
 
 
According to https://aws.amazon.com/blogs/networking-and-content-delivery/dual-stack-ipv6-architectures-for-aws-and-hybrid-networks/:

    1. Go to your VPC settings and assign a /56 prefix.
    2. Go to subnet settings within the VPC and assign a /64 to the subnet.
    3. Go to the instance's network interface settings and enable IPv6 address assignment. 

Full howto:
 
How to connect to ssh without ipv6, from Amazon console instead of Cloudflare -
(could not try out since my account doesn't have the required permissions.)
 
On Azure it seems to be fairly straightforward to add IPV6
 
Created an ssh tunnel with

Then connect with warp using
 
Probably we don't need warp, only need to make sure the tunnel is to 2222 and not 22.
checking config files as per
change port at ~/.cloudflared/config.yml

But no, we don't have those config files because we created from dashboard - 

Example config at
which is live at
 
There, they talk of a browser rendered terminal.
 

Logged in success with browser-rendered terminal on Edge browser on Windows 11. 
 
Possible pain point - Note is that for each login (with a timeout of 24 hours as the default), we have to copy-paste the private key, in PEM format, into the authentication form. PEM format for the private key is a must. OpenSSH format doesn't work - Browser SSH Private Keys not working - Zero Trust / Access - Cloudflare Community.
 
 
 
 
 
 

Wednesday, January 31, 2024

error message for a new user with google sign-in

A new user for our CMS which uses google sign-in got an error message, "ourdomain has not completed the Google verification process ..."

Most probably this would have happened due to the number of users crossing 100.

We can have up to 100 "testers" in the "internal" mode which we were using till now.

"OAuth user cap

While publishing status is set to "Testing", only test users are able to access the app. Allowed user cap prior to app verification is 100, and is counted over the entire lifetime of the app. Learn more "


So now we need to apply and get google verification for the "sign in with google" on the CMS.

Starting the process, the relevant google project was "Login to CMS with Google" on the redacted account, 
https://console.cloud.google.com/iam-admin/settings?project=id-oftheproject
https://console.cloud.google.com/apis/credentials/consent?project=id-oftheproject
 
I clicked on publish, and after going through the 4-5 steps verifying the scopes etc, I see the following message:
 
The Trust and Safety team has received your form. They will reach out to you via your contact email if needed. The review process can take up to 4-6 weeks. Expect the first email from our Trust and Safety team within 3-5 days. Your last approved consent screen is still in use.

Monday, January 29, 2024

increasing file upload size in Wordpress

On one of our servers running Ubuntu 22.04, Wordpress reported upload size is set to 2 MB. Changed to 50M from 2M in the global php settings at
/etc/php*/8.1/apache2/php.ini - that has fixed the issue.

Sunday, January 28, 2024

email configuration changes on server - app password and <<< for mail command

With google phasing out support for "less secure apps", we had to use "App password" for one of our servers. On PB's terminal on Mac, Ctrl+D was mapped to something else, so we could not use the usual method of the mail command for testing where we end the body with Ctrl+D. Instead, tested by the three less-than symbol to send email, like

mail -s "<Subject>" recipient@something.com <<< "<Mail Body>"

Google phasing out password-based SMTP / POP3 / IMAP

We got an email with "[Action Required]", with a link to this blog post from google - https://workspaceupdates.googleblog.com/2023/09/winding-down-google-sync-and-less-secure-apps-support.html

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,

Admins can enable Gmail XOauth2 for outgoing and incoming mail

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 -

server.url/admin/oauth2callback.php

Setting up OAuth 2.0 - API Console Help (google.com)

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.

(
ssmtp seems to be orphaned since 2019, 

msmtp doesn't seem to have oauth,

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.

 

Saturday, January 27, 2024

Firebase notification and action taken

 Firebase sent us an email with the information given in this link about email enumeration protection,

https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection

So, enabled the protection for the VV app's projects, following the procedure given in the bottom part of the link above.

Friday, January 26, 2024

sendgrid error after changing settings

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

Two different ways to verify:

Domain Authentication, which is their preferred way - by adding three CNAME records and one txt record - and

Single Sender Verification

Thursday, January 25, 2024

Merriam-Webster dictionary api and moodle plugin

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.

Tuesday, January 23, 2024

spam via Moodle support form, and ways to prevent it

For the first time, I got some spam apparently sent via one of our Moodle servers. This forum thread describes the issue and the solution - 

Moodle in English: How to remove link to Contact site support to avoid SPAM | Moodle.org

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.

 

Friday, January 19, 2024

tech support options for Moodle

Copy-pasting from an email exchange - 

(Deleting the part about my availability)

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.

Moodle tech support (paid) is available,
but I've not tried them.

Moodle documentation is available via 
and the forums,
Moodle in English: Forums | Moodle.org

Thursday, January 18, 2024

SheepIt render farm - benchmarks and mini-howto for rendering fluids/particle systems - Blender 3.0 to 3.6

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".

Statistics of the three client machines:

CPUIntel(R) Core(TM) i7 CPU M 620 @ 2.67GHz x4
RAM allowed1.3 GB
RAM available3.9 GB
Max render time per frame
Power CPU6 %

Schedulervery_slow_computer

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

CPUIntel(R) Core(TM) i5-4430 CPU @ 3.00GHz x4
RAM allowed4.8 GB
RAM available8.3 GB
Max render time per frame
GPUGeForce GTX 1050 Ti
VRAM4.3 GB
Compute deviceCPU, GPU
Power CPU34 %
Power GPU4 %
SchedulerDefault

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

CPU12th Gen Intel(R) Core(TM) i5-1235U x12
RAM allowed2.9 GB
RAM available8.1 GB
Max render time per frame1h
Power CPU72 %
SchedulerDefault

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 - 
------------------------------------------------------------------------------------------------------------------------

CPUIntel(R) Core(TM) i5-4430 CPU @ 3.00GHz x4
RAM allowed6.7 GB
RAM available8.1 GB
Max render time per frame30 m
GPUGeForce GTX 1050 Ti
VRAM4.3 GB
Compute deviceCPU, GPU
Power CPU46 %
Power GPU12 %
SchedulerDefault

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


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.)




Blender VSE - Video Sequence Editor - and image sequences

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.

Wednesday, January 17, 2024

Blender render - hard-code metadata like frame number in output

For stamping rocket launch frame number, this page

says - Go to render tab, Enable Stamp, and choose the metadata you need.
 
That appears to be for Blender 2.78, which would have been the current version in May 2017.
 
In current version of blender, 3.2, the option is called Burn into image.
Font size 12 px by default, which would be extremely small for a 4K frame.  
 


Thursday, January 11, 2024

interesting device to "do your app busy-work for you"

Interesting device, heard about it via theverge because it sold out its first 10k run within 24 hours of launch - https://www.rabbit.tech/keynote  

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."

Tuesday, January 09, 2024

blender rendering notes - part 2 - and SheepIt render farm

  1.  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.

  2. 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.


  3. More notes and links to tutorial video timestamps below, 

Need to tweak both 
Smoke Domain physics tab and 
Emitter (circle) physics tab

Also maybe wind speed
(I did not change these, so now the rocket exhaust is almost twice as violent as in the previous version.)

Emitter
Density 5
Fuel 2

Initial velocity -12

Smoke domain settings - 
resolution divisions to 128 to reset smoke domain

In replay, can see rendered view smoke
Bake all is in Smoke Domain physics tab.

Can go to shading node editor -> World and add a background, default is white

Nishita sky texture, elevation 3 degrees for dusk look

Sun rotation 62 to light up rocket by sun

Adding HDRI and adjusting

(Before the final render, I made the sky darker with 
Shader view -> World -> HSV dialled Value to 0.5 )

Shift click on to-be parent, Ctrl P to make it parent.

Ctrl J to join the 3 cylinders of LVM3 - M4 to make a single object.

To pack blender file to make it portable,

File->External data->Automatically pack into .blend

Getting rid of unwanted assets:


Outliner -> orphan data

Also deleted grass etc.

GPU - make sure both CUDA and the device are selected!

For tile size, see
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.

playing custom local video playlist from Kodi

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.

List of keyboard shortcuts is at https://kodi.wiki/view/Keyboard_controls

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.

Monday, January 01, 2024

problems with Sony player 4K playback on planetarium dome

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.

Sunday, December 31, 2023

gpu cpu render time comparison

 https://blenderartists.org/t/blender-stats-cpu-gpu-comparison/1364344


i5 to 1080 GPU seems to be 888 to 325, approx 3x speed-up.
 
Edit: See also, posts which have a comparison with the Studio Mac, and using SheepIt render farm.
 

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

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

 
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.

Then login works.
 

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 -

  1. 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.

  2. 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:

cd /var/www/theLMSgit
sudo -u www-data /usr/bin/php admin/cli/maintenance.php --enable
git config core.filemode false
git pull
sudo chown -R azureuser:www-data .
sudo chmod -R 775 .
sudo -u www-data /usr/bin/php admin/cli/upgrade.php
(type y when prompted)

 

workflow and supported codecs

Workflow for creating files playable at our theatre using only cross-platform tools.

  1. 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

  2. OCVWarp to create warped file. Fourcc of avc1 results in x264 video, good quality.

  3. 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.
     
  4. 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!

  5. 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.

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).

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.