So I built a browser plugin to alleviate that

I am still running with a Moto G 2016 as my daily mobile device.

Remarkably, it still manages rather well overall such as switching between multiple mobile apps and reading newsletter’s posts on the Firefox Android browser.

However, nothing makes…

Photo by Yann Allegre on Unsplash

My last post was about unlearning the gospel of ‘efficiency’ while remaining ‘civilized’. This post is about unlearning the ‘civilized’ part itself because since then I have learned new insights about our global industrialized civilization that’s imbued with colonialistic force against all life on earth.

Human activities in recent decades…

But more civilized

Photo by Dieter Kühl on Unsplash

The world is out of control. Humanity — from individual to groups to nation-state level — is doing all sorts of preternatural activities in the name of ‘innovation’, ‘competitive disruption’, ‘economic growth’, ‘self-help’ etc.

They are not natural from the perspective of our millions years of evolutionary…

In the the land of vanilla Javascript

Untitled by Kheoh Yee Wei

(EDIT: Turns out this isn’t working very well on desktop after catering for iOS Safari… :(

Pin code component is commonly used for users to enter OTP code.

Instead of opting for existing complex and opaque third-party solutions, I want to show you the codes that manifest the fundamental behavior of a pin-code component, from which you can re-imagine and adapt to whatever you want it to be.

Here you go 👇

Hope the comments are clear

Even though it’s presented as a Preact component, please notice all the usage of the web standards — keyCode , previousElementSibling , .focus() , ‘event-delegation’ — to capture the essence of a pin-code component. 🙏


Kheoh Yee Wei

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