2019 in Review

Well, this year, this blog has been quiet. There are more Instagram cross-post here than there are new text-based posts in this blog. There are only 4 non-photo posts. It’s not without effort though, I have 12 more posts in the drafts! The reason of not publishing them is just because I lost interest before I finished writing, and sometimes after I finished, I found that the central argument was quite weak and didn’t deserve publication.

Anyway, this post is about reviewing 2019, not to rant about why I published so little.

Escalators in the Shopee building

On Elevator, Escalator, and Progress

In the new Shopee (Singapore) building, my desk is located on the 4th floor. I usually entered the building from the 1st floor (there is another entrance on the 3rd floor).

After I enter the building, it is still the public area, I have two choices of going to the staff-only area: through the gantry gates on the 1st floor, or through the 3rd floor. Going to the 3rd floor on the public area requires taking two flights of escalators.

If I enter the staff-only area from the 1st floor gantry gate, I will take the elevator (lift) to the 4th floor; but if I enter from the 3rd floor gantry gate, I will take the stairs to my floor (since the difference is only by a single floor).

On a normal day, I will always take the escalators to the 3rd floor, enter the staff-only area, and then take the stairs to my floor.

I have a theory on why I prefer this, and I think, it is the classic “loading screen experience” happening in real life.

Waiting for elevator to arrive is just like a progress bar that stopped progressing for unknown period of time (and users don’t know when it will continue to progress). On the other hand, riding escalators and taking stairs give the users a sense of physical progress and therefore a more pleasant experience.

While it may take longer to reach my floor, I don’t need to wait for something out of my control to happen, and that’s a better experience rather than waiting for uncontrollable elevator to arrive.

That’s why I prefer taking escalators and stairs rather than elevators. Unless I’m peer-pressured by my colleagues. 😅

Nikku

19 April 2019

Nikku is my latest side project that I’ve been working on since early April 2019. It is a BRSTM player on the web.

2018 in Review

I started this post pretty late in the year. I hope I could finish it in time.

So 2018 had been a mixed year to me. I had fun, I cried; I met new people, I said goodbye; I reminisced with the past, I started to plan for the future.

Learn to Count in JS!

In the past few weeks, I suddenly recalled of an interesting problem I faced during my days in Competitive Programming world. It was called “Make*me-an+[integer!]“, a problem posted in Internet Problem Solving Contest 2015 problemset (link to problem)

The gist of the problem statement is as such:

Output a list of valid ECMA-262 expression of the number 0 to 1000 (inclusive) using only the characters !, [, ], +, , and/or *, in which the correctness is determined by the value and the type of the expression itself.

For example, !![] evaluates to the number 0 (this is a valid output), and +!![]+[+[]] evaluates to string “10” (this is invalid, as the output type need to be evaluated as type number too).

The problem has two subtasks: the easy subtask is to produce the outputs where each expression uses no more than 200 characters; and the hard subtask limits the expression to use no more than 75 characters.

During the competition itself, I solved the easy subtask, but now I was quite interested in solving the hard subtask because … why not? Hahaha. In total, I spents around 2 weeks (including the many off days in between as I wasn’t in the mood for coding).

So, let’s get into the problem.