Wednesday, March 27, 2024

Unreal engine for fulldome creation

One of my colleagues passed on this tutorial on how to get started with Unreal Engine - Unreal Engine 5 Beginner Tutorial - UE5 Starter Course from Unreal Sensei

It looks like VR export is also possible relatively easily, but with some caveats as seen in the comments of the youtube video - Unreal Engine 5 360 Panoramic EASY! | No coding No Plugins

I'm not going into it right now, since I have too much on my plate already, and lots of pending content generation with translations, OpenSpace, Stellarium and available VR360 videos.

Tuesday, March 26, 2024

Action required: Migrate your .NET apps to the isolated worker model

There was an email notice from the Azure portal, Migrate your .NET apps in Azure Functions to the isolated worker model by 10 November 2026.

I wanted to check for .NET apps in the various subscriptions, so I followed the method given at the link in the email,

I also found the app under "App Services" in the relevant tenant - so there was no need to spin up a cloud shell.

Since we're currently not using this function (which automates starting the dev server every day, after it is shut down at night), I'll just delete this function instead of migrating it.

creating a simple (but large) family tree

Looking for free (of cost) solutions for making a simple (but large) family tree, I had installed Gramps, but found it less than friendly to use, at least for my purposes. Looking at free family tree templates in Excel and Google Docs, https://spreadsheetpoint.com/family-tree-template-google-docs/ - did not make it very quick to create a tree. Then, more searches turned up familyecho.com - very quick and easy to use, browser based, exports to html.

Monday, March 25, 2024

experiments enabled by NVIDIA graphics card

Now that I have access to a desktop computer with an NVIDIA graphics card, even though it's just a GTX1050 with 8 GB VRAM, I could try out several useful tools which generally need GPU support to run well.

  1. Openspace - I've contributed to the documentation with an FAQ on Planetarium usage.
  2. Running Sheepit autoupdater when I'm not using the machine for anything else, racking up points so that when I need to render something in Blender, I can cloud-render it faster.
  3. Upscaling some of our old videos - from VHS or miniDV - to 4K. Initial idea from Awesome Blender, then using the tutorial from nextdiffusion.ai, taking care to block images on that site (could be NSFW in many contexts).
  4. Will also check out creating some animations with text prompts, and perhaps even fulldome images with Stable Diffusion, since the webui makes it quite a bit more accessible.

Saturday, March 23, 2024

Moodle authentication via an external website

There was a query about how we can authenticate users on one of our LMS servers running Moodle, if they sign up and sign in using an external website. My reply was: 

Moodle supports the following authentication methods as given in the documentation link below:


If (the other website) can supply any of those methods, we can implement the plugin on Moodle.

Friday, March 22, 2024

push to Github failing on Google Apps Scripts

One of our Google Apps scripts sometimes fails to push to Github, with the error message "(filename)  does not match " - the quick fix is to just delete the relevant file(s) (filename) in the git repo, and run the script from the console - it would then successfully push, and retain the correct hash for the next push.

 Edit: link to a repo with example GAS code for pushing a file to a github repo - a json file to a github pages site in this case - https://github.com/hn-88/GAS-daily-upload-to-sched

Tuesday, March 19, 2024

Mirage3d show previews

Mirage3d has a lot of show previews and demo reels on Vimeo. Also, full-length flat previews of shows like Dinosaurs at Dusk. Could download using savevideo.me using the play.vimeo.com url, also available download buttons for some of their videos, as well as savefromnet extension.  

Sunday, March 17, 2024

Netlify serverless functions

Interesting option for fast low traffic api - Netlify serverless functions using the free plan  -  use node.js on the back-end. (Via https://ravisiyerblog.netlify.app/ - https://raviswdev.blogspot.com/2024/01/roadmap-to-learning-full-stack-web.html )

Intro to Serverless Functions | Netlify

Tutorial - https://www.netlify.com/blog/intro-to-serverless-functions/

I just forked this repo, deployed it to my account on Netlify, it started working. Can simply modify the code to suit my requirement, no need for me to install node etc. though of course, if I need to change the functionality and use more node packages, I would need to do all that.

And it's very fast compared to Google Apps script. 

Free usage comparison:

GAS - https://developers.google.com/apps-script/guides/services/quotas - per day and per hour quotas for some services, 6 minutes per execution.

Netlify free plan - https://www.netlify.com/pricing/ - 1M per month serverless function calls, 100 GB per month.

ffmpeg screen recording

Seeing that the OCVWarp post comparing it to ffmpeg was mentioned in February search performance results from google as the top growing page, I browsed ffmpeg.org to check how easy or difficult it would be to contribute a plugin to ffmpeg. Seems a bit complicated. Browsing further, found these instructions in the wiki for screen-recording video using ffmpeg. Quite useful information. And ffmpeg's wiki and bug-tracking runs on Trac.

Friday, March 15, 2024

Transition from Azure classic administrator roles to RBAC roles

There was an email from the Azure portal, asking us to transition from Azure classic administrator roles to RBAC roles for one of our subscriptions. 


As mentioned in this documentation,


I have added the co-administrators and the service administrators as seen in the classic administrator pane to "Owner" role for each of the subscriptions.

Wednesday, March 13, 2024

creating a live stream on youtube using the api and google apps script

There was a requirement for 
(a) streaming an http audio stream to youtube with ffmpeg
(b) automating the creation of the broadcast, making sure that each broadcast is less than 12 hours long so that youtube will archive the video

The method we followed is detailed in this github repo folder - 
(Work in progress as of now - the main concept works, but some refinements like setting the thumbnail, descriptive title, etc to be done.)

The first option was to implement using bash scripts using something like rwxrob/cmd-yt - but the Oauth using go did not work on the first try - go list -f '{{.Target}}' did not return anything. The steps I did are listed below.

apt install jq
tput # already installed
apt install pandoc
# install go with https://go.dev/doc/install
wget https://go.dev/dl/go1.22.1.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
# and added that line to /etc/profile

For using the auth-go package, need to compile and install it.
cd ~/auth-go/auth-go-main
go build
but
go list -f '{{.Target}}'
did not return anything.

Then thought of trying google apps script instead.
just need to enable it.


Edit: Please see this later post on a problem and workaround for this approach.

certbot did not auto-renew a domain - it had expired

Even manually trying to renew a domain's SSL certificate from LetsEncrypt, which had not been auto-renewed, did not work. 

Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems:
  Domain: theconcerneddomain.ours
  Type:   unauthorized

Checking the DNS, found the relevant domain was pointing to a godaddy ip address instead of our ip address. Then, checked the whois record and found that the domain had expired. Alerted the concerned person, they renewed the domain, and a few hours later, certbot auto-renewed the SSL certificate, too.

Monday, March 11, 2024

redirect stderr and stdout

While researching various methods to implement a reminder to take a break - some notes about redirecting stderr and stdout - 

ls good bad >/dev/null 2>&1

You have to redirect stdout first before duplicating it into stderr; if you duplicate it first, stderr will just point to what stdout originally pointed at.

server timing out for a large download - fix was server-side - nginx

Downloading a large file from noirlab.edu, only 4.5 GB had been downloaded before "server error" was reported. When I tried to resume the download, the server would not respond. (and the issue was not that the server was not reachable - if I started a fresh download in a different location, it would start - only the resume was not working.)

Unfortunately, with the noirlab link, we're unable to resume partial downloads with aria2c after 12 hours or so. The download also seems to stop after a few hours of downloading, with a server error message.  

I've copy-pasted relevant parts of a log file produced by aria2, showing that the server times out when the client requests either
(a) more than one chunk, or
(b) chunk near the end of the file

2024-02-15 22:09:56.738161 [DEBUG] [SocketCore.cc:993] Securely connected to noirlab.edu (54.200.108.162:443) with TLSv1.2
2024-02-15 22:09:56.738161 [INFO] [HttpConnection.cc:128] CUID#7 - Requesting:
GET /public/media/archives/videos/dome_4kmaster/big-astronomy.zip HTTP/1.1
User-Agent: aria2/1.36.0
Accept: */*,application/metalink4+xml,application/metalink+xml
Want-Digest: SHA-512;q=1, SHA-256;q=1, SHA;q=0.1

2024-02-15 22:09:57.336946 [DEBUG] [WinTLSSession.cc:435] WinTLS: Read request: 16384 buffered: 14200
2024-02-15 22:09:57.336946 [INFO] [HttpConnection.cc:163] CUID#7 - Response received:
HTTP/1.1 200 OK
Date: Thu, 15 Feb 2024 16:39:56 GMT
Content-Type: application/zip
Content-Length: 262602447953
Connection: keep-alive
Server: nginx
Last-Modified: Wed, 01 Nov 2023 21:27:23 GMT
ETag: "6542c2bb-3d24535c51"
Access-Control-Allow-Origin: *
X-Cache-Status: BYPASS
Accept-Ranges: bytes

(Lots of lines with CUID#2 to 12 and so on, omitted here,...)

2024-02-15 22:11:09.882632 [DEBUG] [AbstractCommand.cc:181] CUID#13 - socket: read:0, write:0, hup:0, err:0

2024-02-15 22:11:10.885437 [DEBUG] [AbstractCommand.cc:181] CUID#13 - socket: read:0, write:0, hup:0, err:0

(Lots more lines with socket read:0 etc, finally ... )

2024-02-15 22:12:04.827538 [DEBUG] [AbstractCommand.cc:325] CUID#13 - Marking IP address 54.149.252.235 as bad
2024-02-15 22:12:04.827538 [INFO] [AbstractCommand.cc:366] CUID#13 - Restarting the download. URI=https://noirlab.edu/public/media/archives/videos/dome_4kmaster/big-astronomy.zip
  -> [AbstractCommand.cc:340] errorCode=2 Timeout.

Reported this to the people at the website, and they made an ip-address-only link available for me to try. That worked, with the resume functionality working even after many hours.

[#b2e54e 64GiB/244GiB(26%) CN:15 DL:1.0MiB ETA:50h51m51s]

Tuesday, March 05, 2024