I tried to create Burmese info website for COVID-19 and I failed

I tried to create COVID-19 information website in Myanmar (Burmese)  language. The reason is the Ministry of Health and Sports (MOHS) website provides most of the info in PDF in the poorly categorized download list and the site is using CMS.

So covid19-my.info is a relevant domain name and I chose it. (my is 2 letter standard code for Myanmar language).

I used Emergency Website Kit to develop the website.

I have some Q&A of WHO translated and converted as a static web page. I chose Google Firebase Hosting – it has 1 GB storage, CDN, https for a free tier and I deployed the site on it.

For the domain, domain registrars had been preventing people from registering the domain with COVID19 keyword in it and it took me 1 hour to successfully registered the domain with NameCheap. I had to contact the support person and convinced them that the site is not phishing.

Then I set up the custom domain with Firebase. All went well and the site is up within another 3 hours. Next morning, when I had done some more translation of WHO Q&A on COVID-19, I deployed again and checked the site with Chrome. Instead of the site, there was the red page of Chrome (Safari is working fine). I reported it as a false alarm and it went away.

Later, our country’s committee (to prevent, contain and fight against COVID-19) announced bank information to which people can donate. I thought it is good to have it online and so I did add to the website. (This could lead Google to believe the site is phishing)

In the evening, I gathered hospital contact numbers from MOHS and DoMS site, cleaned, and created a separate page in the site. The updated site was deployed again and everything was okay.

Today, I got a mail from Google Cloud Platform stating that the website was regarded as phishing and as a result, was banned. It also stated that I can appeal.

The site was created to provide information and the site source was freely available at Github. There are no reasons to not appeal. When I tried, this is what I found. (Search console showed no security issues.)

This is frustrating. Currently, I reported it as “feedback for the Google Cloud Platform”. Unless the ban is lifted, I spent 1.5 days of work just to be viewed by me.

The result – I failed.

Lesson learnt – contribute to existing efforts.


Introduction to Game Design: assignment 1

I am trying to learn game programming and CalArt’s Introduction to game design course is recommended by Ozgur Ozan Cakmak.

It is free to audit the course but needs 49 USD/month to take part in the course (submitting assignment, getting grades, etc.)

For first assignment “Make a simple paper-based game”, I created “Rolling with the dices”.

Continue reading “Introduction to Game Design: assignment 1”

WordPress white screen with forbidden word

If you login to your WordPress site and it replied with the only word forbidden with white background, try this fix.

This is NOT “white screen of death”.

Add the following to your .htaccess file above # BEGIN WordPress

Order deny,allow

DirectoryIndex index.html index.php

This depends on the hosting config for Apache and its version. I used this fix for Apache 2.4

rbenv setup with ZSh and Oh-my-zsh

rbenv is an utility program to manage multiple Ruby programming language runtime versions.

ZSh is an alternative shell for *nix system. Oh-my-ZSh is framework for ZSh which supports themes and plugins.

rbenv provide comprehensive installation methods for different shells. This post describes the use of oh-my-Zsh rbenv plugin for rbenv setup.

  1. Install rbenv (do not add load and init script to your .zshrc)
  2. Install plugins/rbenv in oh-my-Zsh
  3. Remove load and init lines (if they were installed) – optional

Good things about this approach

No need to append rbenv line to .zshrc or calling rbenv init function. Those will be taken care by the plugin.

Facebook recognises Zawgyi-One font as separate language in Myanmar

Facebook zawgyi-font

Facebook recognises Zawgyi-One as a separate language used in Myanmar. This is the result of the most Burmese speaking/typing users using Zawgyi-One font.

According to Facebook, Unicode is denoted by my_MM and Zawgyi by qz_MM. They label it as Burmese (Zawgyi).

MM is two-letters country/region code for Myanmar and my is two-letters language code for Myanmar (Burmese). They use qz for Zawgyi-One font. According to Best Current Practice for Language Tags by IETF, QZ is reserved for private use.

Myanmar unicode is superior in technology but adoption rate is low according to various reasons. Zawgyi-One is not unicode standard compliant and no longer being maintained or developed. However users are familiar with it and it is going to stay for a foreseeable future.

Solving KeyMagic program crash

KeyMagic is a keyboard program that allows user to switch to various keyboard layout such as Myanmar Smart Keyboard, ZawGyi keyboard, etc.

We have been supporting offices using Myanmar Unicode with KeyMagic for some times now. One of the common problems we usually encounter is user suddenly cannot open KeyMagic program.

This is the steps we carry out to solve the problem

  1. Close KeyMagic program file (make sure there are no more KeyMagic.exe under Task Manager)
  2. Move the user.config file under the following directory to somewhere (for backup)
  3. Then restart the KeyMagic program


  • replace with actual username
  • in place of xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx you will see random character likes kbk1hsvhhgustjayof3hzsq5ln203ol0

Some technical details

  • OS: Windows 7 64 bit

Quick Test Sending Mail in PHP

This is how I test my php code sending mail (with mail() function) using

Install MailCatcher

sudo apt-get install ruby ruby-dev

sudo gem install mailcatcher

Start PHP server

php -d sendmail_path="env /usr/local/bin/catchmail -f noreply@domain.com" -S

Start MailCatcher


Run and check

  • Run the script by visiting the page (that sends mail)
  • Check the mail at

Related tasks

  • check which php.ini is in effect by running php --ini
  • check sendmail_path has been set correctly or not by using echo phpinof() in a page
  • check the path of catchmail by running which catchmail
  • close the mailcatcher server from web interface
  • read mailcatcher help by running mailcatcher --help
  • read php help php --help