Saturday, November 29, 2014

Error occurred while loading visualforce page.错误:加载 Visualforce 页面时出现错误

While using the visa interview appointment system (,
keep running into "Error occurred while loading visualforce page." after the time window selection page.
And the error page shows up no matter what OS/browser you use.

总是在选择完时间的页面之后遇到"错误:加载 Visualforce 页面时出现错误"的报错页面。

Someone added you as their dependent(family member who're going to take the interview together) in their unfinished appointment.

- Delete you from that(theirs) unfinished appointment draft at step 6.
- Come back to your appointment, you may find many fields in your form are reseted.
- Finish your appointment, you will see appointment confirmation and appointment invoice after the time window selection page.

Samsung S5 can not get new Gmail or Hangout message while using mobile data

Problem description: In Mobile network(3G/4G data), you cannot receive "server pushed message", applications such as Gmail, Google hangouts whose who heavily relay on this "server push" technology(Google Cloud Message) can not work properly, no new message can be received.
- but, you can manually pull email by "refresh" button in Gmail app.
- after switch to Wi-Fi, no no problem at all.

Fix: Settings -> Data usage -> upper right corner(a 3-dotted button) ->
- make sure the "restrict background data" is unchecked,
- if it's already unchecked when you seen it, check it, then uncheck it. (UI and underneath setting may mismatched)

Wednesday, November 19, 2014

private docker registry push issue: Invalid registry endpoint

I ran into the problem during pushing an image to my private docker registry. It's the first time pushing after I upgrade my docker client to v1.3.1

2014/11/19 15:55:06 Error: Invalid registry endpoint Get dial tcp i/o timeout. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/

Since I'm running docker via boot2docker, docker instance actually is managed by boot2docker. I have to add parameter --insecure-registry to somewhere in the boot2docker virtual machine.

Here's the official solution: (

Insecure Registry
As of Docker version 1.3.1, if your registry doesn't support HTTPS, you must add it as an insecure registry.
$ boot2docker init
$ boot2docker up
$ boot2docker ssh
$ echo 'EXTRA_ARGS="--insecure-registry <YOUR INSECURE HOST>"' | sudo tee -a /var/lib/boot2docker/profile
$ sudo /etc/init.d/docker restart

--- update 1: ---

To add HTTPS support for your private docker hub,
1, install nginx
apt-get install nginx

rm  /etc/nginx/sites-enabled/default 

3, add nginx profile `docker` under /etc/nginx/sites-enabled/
suppose your docker hub application listening on 80
server {
    listen 443 ssl;
    ssl on;
    ssl_certificate YOURCERT.crt;
    ssl_certificate_key YOUR_PRIVATE_KEY.pem;

    client_max_body_size 0;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Scheme $scheme;
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect http:// https://;
make sure you added
client_max_body_size 0;
, this setting will allow you to upload images(POST data) >1M.

4, restart nginx
service restart nginx

5, try to browse your docker hub by both HTTP and HTTPS. No error or warning should be seen.

--- update 2: still see certificate warning ---
you're probably using intermediate CA, you need to put root CA and intermediate CA together(concat them) in the .crt file.


Wednesday, November 5, 2014

USCIS case monitoring app

I created an USCIS case tracking application on Google App Engine recently.

For those who are waiting for their USCIS case decisions, whatever it's a visa case or an immigration case, the application can track it as well.

Due to the resource quota on Google App Engine, the tracking app refreshes your case status every 6 hours and each user is able to track up to 2 cases.
Once your case got an update, you will get an Email notification.

You will be asked to login with Google account, no private data will be stored except your email address which is used for notification purpose.

Wish all your USCIS cases get approved ASAP