Behavioral consequences of reminder emails on students’ performances for homework: a real-world deployment

Presentation was from 3:00 PM to 5:00 PM on March 18th, 2021

Recording: to be uploaded


Personal Website Update: Hover Panel

I was doing a refurbishment for my personal website right here. The idea came from Felix Wong.

In the hover panel, first thing first, there is the area for the menu. Below the menu, there is a search bar. Under the search bar, there is an area for widgets. In the end, there is the menu for switching languages.

The button itself is the picture used as the Site Icon for Twenty Twenty Theme. The width of the hover panel is 76% or 38.2 (the golden ratio) depending on the screen size. The opacity is 0.9, which is “semi-transparent”.

Felix proposed a good question that for some devices, the position of the notch might affect the visibility of the hover panel button.

To resolve this, I am thinking about the following solution:

First: I need to write some script to detect the position and shape of the notch. I hope that I can do it with JavaScript only.

Second, I need to check if the notch influences the visibility of the hover panel.

Lastly, if the notch doesn’t exist or it doesn’t matter at all, no action is required. Otherwise, I need to adjust the padding-top of the hover panel to prevent it from being overlapped.


Happy New Year of the Ox

Today is the first day of the Year of the Ox, which happens once in twelve years.

So, whether you are celebrating it or not, I wish you a prosperous year!

Happy New Year of the Ox

XYZ is the most-registered new top-level domain again.

According to, XYZ is again the most-registered top-level domain.

More than 1 million ICU domains were deleted yesterday, which is crazy.


LIN200H1: Introduction to Language


From September 2018 to December 2018


University of Toronto – St. George Campus

Course Description

Introduction to Language is a general-interest course on language. Possible topics include: the structure of language; how language changes over time, the social and psychological aspects of language, language and culture, the origin of language, writing systems, and language acquisition.




You Can Now Use Your Face to Play the Classical Snake Game

Did you use to be addicted to Snake?

Now, with the help of a TensorFlow model called PoseNet, you can get a totally different experience with this classical game. That’s because:

You can now use your face to control the snake!

Have a try here:



  1. To the PoseNet team who makes the core feature of my face control snake game possible.
  2. To the unknown person who shares his / her snake game so that I could just modify the codes to make my game.


For fun: “If you’re reading this …”, I saw this easter egg at the new

I saw this line of code at the latest It is so interesting!

** Trump’s White House uses WordPress, so does Biden’s White House. Is it one of the few things they have agreed on as well?

Just noticed that the founder of WordPress, Matt, found this secret comment as well:


Get UofT Access

A Chrome extension that automatically redirects webpages to with one-click. Save people’s time! It may take people 5 seconds to 10 seconds to copy and paste in the address bar, but now it is just one click.

Get UofT Access

More Background:

For many papers we find online, they are not free or are login-required. For instance, this one from ACM digital library at

A Paper in ACM digital library

However, UofT library mirrors a great number of websites, including ACM digital library, and grants access to the UofT community.

For example, UofT library mirrors this page at If you are a UofT student, you get access to that paper using this link.

And there is a pattern in the URL conversion. This extension does this job for you. You don’t need to convert the URL yourself, all you need is one-click.

The extension is published in Chrome web store: Click here to add it.


Personal Website

So far, there have been four versions of my personal website.

HTML+CSS+JavaScript (Version 1)

At the very beginning, my personal website was HTML+CSS+JavaScript, with no backend, just frontend. Even though it could be hosted in GitHub pages, I still hosted it on a server.

Pan Chen’s Personal Website, version 1.


HTML+CSS+JavaScript+PHP+MySQL (Version 2)

I brought PHP and MySQL into my personal website, made it a dynamic web page such that the visitors could leave comments to me.

Also, I made a resume management system for this version, I could update my online resume without touching the HTML code.

It once won a 100% Lighthouse performance score.

I hosted this version on a Ubuntu server with the LAMP stack.

HTML+CSS+(Laravel) PHP+MySQL (Version 3)

Since May 6, 2020, I had been refactoring my personal website using Laravel, the PHP framework which follows the model–view–controller architectural pattern.

Pan Chen’s Personal Website, version 3.


WordPress (Version 4)

On December 6, 2020, I started the work to integrate my personal website into a WordPress site. To speed up, I moved to LNMP stack, and used the global CDN provided by Baidu.

This is the latest version.

Pan Chen’s Personal Website, version 4.


  • All four versions are multiple languages.
  • All four versions are mobile-friendly.
  • You may feel it is slow to visit the archived versions. This is because now they are hosted in my second server, which is in Germany and I don’t implement CDN on them (On December 16, 2020).
  • Both Version 2 and Version 3 are based on Version 1, while Version 4 is completely new and a different layout is applied for it.


Photo credit: Felix Wong / CC BY-SA 3.0

SickKids Uroflow

SickKids Uroflow was a project for UofT’s CSC301 course, in which I worked as a front-end developer with a team of seven.

We partnered directly with The Hospital for Sick Children (SickKids) to develop this application. We built both a web app and a mobile app. Through our product, patients can have the sound of urine recorded in the mobile app, which will be sent to the backend. There is a pre-developed natural network model that generates a curve for the sound of urine. The clinicians can see the curves of their patients, update the status, leave comments if necessary.

For more information on this application, please check us out on Github or see the video demo.