Wechat MiniProgram is a type of small programs that can be used in the WeChat app. By 2020, the daily active users of MiniProgram have reached 400 million. And the number for WeChat itself is much higher. The official guide defines it as:

Weixin Mini Programs are a new way of connecting users and services. They are easy to access and share on Weixin, delivering excellent user experience.

Note: ‘Weixin’ is ‘WeChat’, I’ll use ‘WeChat’ in this post.

Why MiniProgram grew so fast? What is “the new way”? Let's explore.

1 A brief history

Gaining popularity

It’s hard to imagine today in China there’s a phone…


In this post I want to use simple code examples in both JavaScript and Ruby to show the existence of closure.

Closure is kind of an intangible concept. The definitions of it from different sources often introduce more concepts. Normally data or functions can be referenced by a given symbol(name), it’s like calling a man with his name. But what is intangible about closure is that it can not be referenced directly by a name or something, you can notice and recognize its existence but you can’t hold it by a name.

1 key elements

There’re two key elements to be noted in…


photo from flickr by Penn State

一本关于大脑可塑性的科普书,此书从知识层面和生活层面都给予了我很大帮助。

中译书名:《重塑大脑 重塑人生》 原书名:《The Brain That Changes Itself:Stories of Personal Triumph from the Frontiers of Brain Science》 作者:Norman Doidge 诺曼·道伊奇 译者:洪兰 出版社:机械工业出版社 ISBN:978–7–111–48975–7 版次:2015年12月第一版第三次印刷

作者简介:
医学博士,精神科医生、心理分析师,哥伦比亚大学心理分析训练和研究中心教授和研究员,多伦多大学精神医学系教授。在专业领 域之外,他是一位畅销书作家、评论家和诗人。他曾4次获得加拿大国家杂志写作金奖(Canada’s Na …


Learning how to learn 是 Coursera 上的的一门课程,主讲是:Dr. Barbara Oakley 和 Dr. Terrence Sejnowski,特别是Barbara,这是我学习时做的笔记。主要内容有:专注模式与发散模式,组块式学习,战胜拖延,如何提高记忆能力等。

Learning How to Learn 地址, 每周课程后的名人采访是极好的学习资源,不要错过。

1 Focus versus Diffuse Thinking
Using the Focus and Diffuse Modes–Or, a little Dali(Salvador Dali) will do you

介绍Dali的作画方式,坐在凳子上放松地漫无目的的想着之前的画作,同时在手上拿着一串钥匙,当他很放松将要睡着时,钥匙突然掉落在地上,声音将他惊醒。然后他会马上将他在发散模式中得到的联想和点子记录下来,接着再带着这些想法进入专注模式。

爱迪生,也是在椅子上放松,在手上玩弄轴承球,当他睡着时发生同样的情况。

我们的 …


I want to share my thoughts about how to think straight about why we need to apply aggregate function when we used GROUP BY clause in a SQL statement.

I assume that you’ve already had a basic understanding of GROUP BY and “aggregate functions” in SQL. If you know these two terms and ever used them but are fuzzy about them, I hope this post could help.

A simple visualization of GROUP BY

It’s useful to image we are splitting a table, which consists of rows and columns, horizontally into different groups by common values with the given column.

If we have this table, and we…


In this post, I’ll share my thoughts about the big picture of the internet without mentioning too many tech terms.

When we think about the internet by looking around our daily life. Most of us can recall terms like “wifi”, “router”, “modem”, “cables” or even “4G”, “5G”. When we message a friend, we know messages will get sent from our phone to our friend’s over the internet. But we don’t have a big picture about how this exactly works.

The internet is a huge topic but what’s most important is the design philosophy behind.

One thing that most people do…


Simply share my experience and thoughts after finishing Launch School’s Core Curriculum.

Photo by Ryan Johnston on Unsplash

It was 2 months ago since I finished the last interview assessment about ‘DOM and Asynchronous Programming with JavaScript’ in LaunchSchool. And I want to share my thoughts and realizations about the entire journey I’ve been taken, especially things I learned except for programming fundamentals, which is stressed a lot by the Core Curriculum, as well as LS’ pedagogy for the Core Curriculum.

Would you rather get what you want slowly or get what you don’t want much faster?

This is the title of another post I wrote when I finished half of the curriculum. And I believe it still applies when talking about…


photo by Xullnn

1 From setTimeout to Promise

I remember vividly when I first stumbled on the term “asynchronous”, the first thing jumped into my head was it must have something to do with my phone” since I often synchronize my phone with my Mac. And our general notion about synchronization is that is a process that coordinates different parts of something in unison. So it’s easy to think “async” as “to make things not to happen at the same time”, but this is a bit different from what “async” means in web development.

As I kept learning programming, I had more terms about sync/async collected, such as…


This is part 2 of my exploring on promise. In part 1, I shared my thoughts about “async” and “event loop” as the basis to better understand promise. The main purpose of this part is share some key points or say “blind spots” about promise that may impede your understanding of promise.

After a brief introduction about basic aspects of promise, I’ll share a few links for learning how to use promise. Because have a basic sense about what is promise and how to use it is important for the main discussion in this article. You don’t have to master…


Building beyond cloud
Building beyond cloud
Photo from 500px by Hardi Saputra

Modern society addresses the ability of rapid learning a lot. To meet the word ‘rapid’, many learning projects emerge on market. They usually start with words like “n months”, “n weeks”, or end with “in just n weeks”, “in just n months”. And the marketing effect declines as `n` increases. People are inspired by encouraging ads, picturing a brighter future that will come true soon just after a bearable period of time. After all, all these projects present you with so many successful cases, so you think you are going to endeavor to learn this, then you can be one…

xullnn

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store