Saturday, August 29, 2020

GCP console issues with Firefox

While doing the timed qwiklabs google cloud platform assessments on coursera, I found that google cloud shell was taking a lot of time to come up on Firefox. In fact, perhaps it was not coming up at all. Initially I tried the workaround of using the google cloud sdk locally and running gcloud commands from a terminal. Later, found that the cloud shell opens fine when Chrome is used instead of Firefox. So, this adds to the list of google products which don't work properly on Firefox. Can anyone else see some parallels to the bad old days of browser wars with Microsoft?

Sunday, August 23, 2020

Chrome and Google Meet issues on Windows

In a previous post, I wrote that Google Meet worked for me on Chrome and not on Firefox. Now, I work on Linux (Mint 18.3) and most of the world works on Windows. Apparently Google Meet had issues with Chrome, video not appearing, even screen sharing not working, on a Windows machine. Nz let me know the solution, which was based on this thread,  https://support.google.com/meet/thread/41815190?hl=en

That thread has so many descriptions of so many different things which can go wrong! Privacy settings, antivirus, etc etc. If you expand and view the entire thread with nearly 300 messages, it makes interesting reading for people who want to mock Windows.

 

So, enable-media-foundation-video-capture must be Disabled, otherwise all sorts of weird video issues with Google Meet. This seems to be a windows-only issue.

Friday, August 14, 2020

add javascript to Blogger

There are many methods proposed at 
https://stackoverflow.com/questions/6449733/how-can-i-add-javascript-inside-blogger





The CDATA method above seemed to work for me, from HTML view. 

And preventdefault for stopping the scroll to the top of the page - used 

return false; 

instead, working for me on Chrome also.

https://stackoverflow.com/questions/13003044/href-going-to-top-of-page-prevent

Tuesday, August 11, 2020

shifting a website out of google sites and into github pages

Google sites recently announced a shift to "New Sites" with a mandatory upgrade for "Old Sites". Since New Sites had some disadvantages like inability to choose our own font size for particular lines of text (as we would like to do for important announcements, making them large), I looked around for options - whether to move to Blogger or New Sites or do something else. New Sites also had the disadvantage of breaking our photo gallery page when using the migration tool. Blogger would break existing page urls. So, since there was only static content, thought about hosting it on github pages

The move was relatively straightforward, though I took a long time since I did a drag-and-drop commit after each change instead of using the commandline. The changes I needed to make were:

  1. removed all scripts
  2. jpg and css links made relative, uploaded to suitable directories
  3. created a template with the above, to which the changes needed for each page were:
    1. the title and other header info (at 4 places near each other)
    2. the div with id sites-chrome-sidebar-left
    3. the div with id  sites-canvas-main-content
    4. the h3 tags with page heading 

After setting the CNAME records on the domains DNS servers, even 4 days later, the "Enforce HTTPS" was not available, with the message "Not yet available for your site because the certificate has not finished being issued." One of the suggested workarounds was to remove and re-add the custom domain. I did that, and immediately Enforce HTTPS was enabled.

Sunday, August 09, 2020

Coursera - a good resource

This post on ClassCentral has a good run-down on some 1400+ completely free Coursera courses. I've been doing some Coursera courses lately, and found some of them very nicely done. Courses I'm taking or have taken are:

Fundamentals of Graphic design

Create your first web app with Python and Flask

Visual elements of User Interface design

Google IT automation with Python


In general, you can speed up some of the courses with the available video speed changer, while for some of the courses, you can learn better by pausing the video, doing some of the exercises and then resuming. 

Tuesday, August 04, 2020

free cloud hosting how-tos

A link dump for resources on how to host small low-traffic websites for free on Google Cloud Platform (GCP) or Microsoft Azure - the link names are self explanatory.

Google's cloud shell and other (free) resources for teaching and learning

Excerpts from an email I sent to a colleague - 
Currently, I have not applied for any Google Cloud grant for the institution, because

1. Google's Cloud credit grants for education are granted on a per professor and per student basis, not on an Institution basis. More info on how to apply is given at


2. Google's Cloud shell (free) may not allow for allows for c programming etc, but there are many  other  c, c++ , python and other language free online compilers/interpreters for teaching and learning -


Monday, August 03, 2020

issue with imagemagick convert

I had an issue with converting to pdf with convert - error message, convert not authorized. Found that it was due to a Ghostscript vulnerability. 

https://askubuntu.com/questions/1081895/trouble-with-batch-conversion-of-png-to-pdf-using-convert

So I temporarily used the renaming method,
sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout

And later I commented out the Ghostscript policy restrictions in the policy.xml.


Sunday, August 02, 2020

moving a user from one tenant to another on Microsoft 365

Googling, found that there are different scenarios for tenant* to tenant migration on Microsoft 365 -

*Tenant means (loosely speaking) subscription account. "A tenant is a representation of an organization."

Saturday, August 01, 2020

moving a domain from one Microsoft 365 tenant to another

As the title says - to move a domain from one Microsoft 365 tenant to another, since I did not have any data to be backed up, I just deleted all the users, then deleted the domain, and recreated the domain in the other tenant. In order to delete the domain in the admin centre at admin.microsoft.com I had to first create an admin user myusername@mydomain.onmicrosoft.com , log in as that user, and then delete the other existing admin user adminuser@mydomain.tld. Only then is the domain deletion permitted.  

Thursday, July 30, 2020

appropriate technology - right-sizing tech solutions

Yesterday, I heard about a clever implementation of distance learning by some school here. The teachers would daily send assignments via Whatsapp with links to some online knowledge resource, along with some questions. The children are encouraged to go through the resource, answer the questions and get back to the teacher in case of questions. This is quite useful in a bandwidth-starved nation like India, where asking pupils to participate in video calls would tax their parents' resources.

Today, I had to answer some queries regarding cost calculations for hosting of a medical data collection application. I'll copy-paste it below with some modifications.

As you may know, pricing of Azure services and AWS services are given at
https://azure.microsoft.com/en-in/pricing/
and
https://aws.amazon.com/pricing/

In general, such cloud services are very much more expensive than other hosting services, if the loads are small and predictable. By small load, I would classify even radiosai.org, with 1.5 lakh visitors a month, thousands of concurrent listeners, as "small".

But in the case of wildly fluctuating loads, when you have a load balancing system and multiple servers which need to be brought online and taken offline dynamically, cloud servers then become cost effective. They are also useful for outsourcing many of the management headaches of servers, to have the peace of mind of managed hosting without the possible security issues of shared hosting.

In the case of the medical data collection tool, they recommend Azure/AWS/your own server for security and licensing reasons. As mentioned at their website, only a very basic set of specs is needed for it, which can easily be supplied by even a shared hosting provider offering Rs. 40 per month hosting. The only caveat is that the organisation who has the license should take sole responsibility for the hosting and support of the application as given in the requirements page.

If the organisation hosting the site is a non-profit, it would be possible to get non-profit credits from Microsoft for Azure, and from Amazon for AWS.
https://www.microsoft.com/en-us/nonprofits/azure
https://aws.amazon.com/government-education/nonprofits/

Azure seems to be offering a larger number of credits - $5000 vs $2000. Also, on the Azure pricing page, they mention that they will price match AWS for cloud infrastructure. So, it might seem that hosting on Azure may be the better option, if you do get non-profit credits.

Since the loads expected on this server would be small - by my definition of small as given above - I would recommend using a VM with a couple of cores and low end specs
https://azure.microsoft.com/en-in/pricing/details/virtual-machines/linux/

If you don't get non-profit credits, the lowest cost option would be to hire two shared servers from two different reputed providers, ensuring that their services are located in different physical locations (since your services are in India, you could look for Bangalore and Mumbai, for example) and have one of them as hot-spare. If you use cloudflare.com to host your dns, operating a hot spare becomes very easy. Such a hot-spare setup allows you to have the peace of mind that Azure/AWS offers, at 10x lower cost. But your provider(s) need to be reputable in the sense that they should not steal your data, and they need to ensure good security practices.

Even if for security reasons you do not want to go for shared hosting, you could get reputed dedicated servers for half the price of Azure/AWS VMs of similar specs, or host it on your premises if you have redundant internet links to your facility. Only drawback, of course, would be that you would need to manually set up as against the automated Azure setup option offered by your software. And you need to know how to do some server management and maintenance.

In the case of VMs or shared servers or dedicated servers, you can directly calculate the costs by just multiplying the per hour or per month cost by the number of hours/months in a year.

In case you wish to estimate traffic, you will need to know what sort of data is going to be uploaded/ downloaded - whether it would be predominantly just numbers, or whether images/video/audio would be included, and what are the estimated numbers of users. Again, a simple multiplication.

When looking to host something for non-profits, where there is no charge for the services being offered, we can get the best RoI by minimising cost while ensuring that performance doesn't suffer. So, for small operations such as ours, I wouldn't recommend cloud solutions except when free credits are available.

Wednesday, July 29, 2020

Getting USB tethering to work with Linux Mint

Our home BSNL broadband has been on the fritz since yesterday. The land-line phone is dead. Airtel 4G on my LG Q6 can do wifi hotspot also, but I preferred to get USB tethering working, since the wifi card on this Lenovo laptop sometimes has issues.

Just connecting the USB cable to the phone and computer, enabling USB tethering on the phone, I get a "Connected" notification on the computer. But "could not find server" errors. Checked and saw that the default setting assigning my phone's IP address as the DNS server. Changed that to Google DNS 8.8.8.8, and the connection works fine. Network connections - Edit the relevant connection - IPv4 tab.

Friday, July 24, 2020

adding Next and Previous post links in new blogger

Tried http://copypastesave.blogspot.com/2017/06/add-pervious-page-home-and-next-page-in.html

using revert to legacy blogger.

Step 3 occurs in 9 places!

Unfortunately, this made the entire post not display! So, reverted to adding the Previous and Next links manually. 

Wednesday, July 22, 2020

Google Meet issues with Firefox

When I try to join a Google Meet meeting on Firefox 78, running on Linux Mint, I get a video network error and get disconnected. On the same machine, when I connect with Chrome 84, it works fine.

So, we have to use Chrome for Google Meet.

Friday, July 03, 2020

find and replace http with https with sed

htm pages under the SI folder used to give a POST request to http://www.radiosai.org/program/PlayNow.php
which we needed to change to https, since otherwise the POST requests do not get redirected

PB did this with
SI# ls
2011  2012  2013  2014  2015  2016  (etc)

SI# find ./ -type f -exec sed -i 's/action=\"http/action=\"https/g' {} \;

More examples of sed with find are given at https://linuxize.com/post/how-to-use-sed-to-find-and-replace-string-in-files/

Saturday, June 20, 2020

icecast ideas

Some ideas for showing "Now playing" on our icecast server, https://stackoverflow.com/questions/48327310/how-to-display-now-playing-in-my-website-with-icecast2-and-liquidsoap
but since we don't use metadata on our server, this method won't work directly for us. But perhaps I could try tinkering with ices0 to make it send the filenames alone, and then try out the worker.js as mentioned in the stackoverflow post above.


Saturday, June 06, 2020

adding a domain to Microsoft 365

The procedure to add a domain is given at this support page - basically, at admin.microsoft.com, Setup -> Get your custom domain set up -> Manage

There was another domain which they wanted me to add, but that seemed to be already connected to another tenant anotherdomain.onmicrosoft.com - migration would need all these steps, while a simple delete and add with no data being retained is relatively simple as I have posted elsewhere. There are also third-party tools to do this, as I have posted.