Hank
Hi there! I’m Hank, a software engineer who loves to build things.
I’ve been coding for over 10 years and have experience in a variety of programming languages, including Python, Golang, Ruby on Rails, JavaScript, TypeScript. I also have experience in blockchain development, having worked on several projects using Ethereum, Solidity, and Web3.js, also contributed to the famous wallet project Metamask.
I also have a passion for DevOps stuff, such as cloud computing, Kubernetes, and DevOps. I enjoy learning new technologies and sharing my knowledge with others.
Plus, I’m a certified Advanced Mendix Developer, which is a low-code platform for building web and mobile applications.
Want to say hi, or need me to build something for you? Feel free to drop me an email to hank#momane.com. I will try to reply as soon as possible.
Some of My Certifications
Posts by Hank
RIP, Kobe Bryant
RIP![RIP, Kobe Bryant](https://s3.amazonaws.com/ogden_images/www.adirondackdailyenterprise.com/images/2020/01/26152959/BryantKobe05wiki-56
Read More2019 nCoV
It's 23th Jan already.2019-nCoV virus is raging in China and some other countries, and also lunar new year tomorrow.Just like 17 years a
Read MoreMy First LEGO
Got a LEGO gift from an old friend. Finished it in two weeks :D Love it a lot.
Read MoreDisable Web Search Result in Windows Search 2019
**TL;DR**: download this [windows reg file](https://github.com/HangYang/disable-windows-web-search) and double click to import it. OR- cop
Read MoreChange Ubuntu 18.04 update source to mirror site in China
## In China, Ubuntu might be slow to updateTo use ubuntu is not a easy thing, and if you are in China, it's even more difficult. Once you
Read MoreMySQL: Sort Number in String Format
TL;DR: use `key_name` `*` `1`; like``` select id, name, age from users order by salary * 1 ```Well, it's better to store data in a data
Read More安装了梅林固件的路由器开启SSH以及超频
部分路由器可以通过安装Merlin梅林固件来实现更多的自定义功能。安装更多第三方插件来让路由器变得更强大。在软件自定义的时候不妨试试将路由器进行硬件超频来使其拥有更强劲的性能。实现起来也非常简单,不过需要注意的是,超频可能会造成不可恢复的硬件损害,俗称变砖。超频前要三思,
Read MoreBoost your Frontend development speed in China
- Hank
- 10 Mar, 2020
Waiting for something is wasting time, especially when development, you always need to wait for compiling, wait for install dependencies...
Read MoreHow to fix You have to set a contact email in Chrome Web Store
- Hank
- 02 Jul, 2020
I have multiple accounts in Chrome Web Store to manage multiple Chrome extensions.Today I found that one of my extension [one click extens
Read MoreChange Ubuntu 20.04 update source to mirror site in China
Ubuntu 20.04 has been released for a while, its code is `Focal Fossa`. Again, if you are in China, better change the update source to mirror
Read MoreHow to fix Git show all file as modified in WSL
## SolutionIf you open your code in Windows, and run git in WSL bash, you will have a big chance to meet an issue that `git status` shows
Read More用 Taro 和 Vue 写了一个微信小程序
- Hank
- 05 Aug, 2020
最近尝试写微信小程序,毕竟是现在的趋势。然后发现因为入场太晚,各种轮子已经造得遍地飞了。比如这里有一个框架,出自京东,叫做Taro,它的目的是写一份代码,就可以在诸如微信、支付宝、字节跳动(它家的什么app支持小程序?)等端作为小程序运行。于是拿来试了以下。我本来只熟悉Vue
Read MoreHow to trigger click event in Gmail
- Hank
- 12 Mar, 2020
If you want to hack Gmail UI, to build web extension or any other similar tool that works on top of Gmail, you always want or need to trigge
Read MoreUse git archive to zip your source code
- Hank
- 29 Aug, 2020
To zip compiled project file is easy, normally I just use [archivejs](), write a small nodejs script, and then add a script in `package.json
Read MoreUse Husky to manage git hooks
- Hank
- 20 May, 2020
[Git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) is a powerful tool to make your life easier.It fires off custom scri
Read Morehow to use jQuery with TypeScript
- Hank
- 06 Aug, 2020
It's 2020, why do you still need to use jQuery?Yeah, jQuery has 53.8k stars on Github. And still, there are more than 97% of websites are
Read MoreHow to copy image and text to clipboard with JavaScript
- Hank
- 18 Oct, 2020
I used to saw my colleague add a 30kb lib only to implement a copy function that when the user clicks on a text, copy it to the clipboard.
Read More如何在电脑上调试手机真机网页以及微信浏览器网页
- Hank
- 15 Sep, 2020
遇到个需求需要调试在微信中打开的网页。之前没有做过,搜了一圈那个所谓的在微信对话框中打开debugx5.qq.com的方法已经过时无用, 打开就显示你所使用对内核非X5内核。至于TBStool更是在2017年就已经停止更新,打开就闪退,浪费时间安装。看来因为开发人员对QQ搞出
Read MoreHow to fix: Enzyme expects an adapter to be configured
- Hank
- 13 Jan, 2021
Working on updating a legacy React project. It's still using React 8 and Node 7.9, I'd like to upgrate it to the latest React and Node.The
Read More为什么不要买罗技K380无线键盘
罗技K380无线键盘,被很多平台吹为几乎最佳的移动设备伴侣键盘,深受很多iPad乃至MacBook用户的欢迎。其优点有:蓝牙连接,最多可以连接三台设备,切换便捷。轻薄小巧,手感和笔记本键盘非常相似。而多色键帽更满足了不同审美用户的需求。因为有移动办公的需求,而Macboo
Read MoreA wrong solution on Leetcode
- Hank
- 21 Jun, 2021
With all these years as an engineer, I never tried Leetcode.Maybe it's because I never prepared for interview before.Well, now I have to
Read MoreDo not store file outside of WSL, it is slow
- Hank
- 14 Aug, 2021
For some reason, I have switch back to Windows OS after years of working on MacOS.Most of the time I'm working on frontend projects, so to
Read Morehow to skip git hooks when committing
- Hank
- 07 Apr, 2021
Well, it's not very recommended skipping git hooks. These hooks are often for formatting code, running tests, etc.But life happens, someti
Read MoreFirefox offline installer official download page
Why do I need offline installer of Firefox?Because its online installer is too slow. (Yes the installer that you download from its index p
Read MoreEnable HTTPS on local, even with a customizable domain
- Hank
- 14 Sep, 2021
Normally, when you're debugging your web app on local, you can access it with either `http://localhost:PORT` or `http://127.0.0.1:POST`.Th
Read MoreA Simple bash script to modify macOS DNS by detecting SSID
I believe most of us have different DNS settings for different networks. For example, in my case, I use Google's public DNS `8.8.8.8` and Cl
Read MoreMendix: How to connect to built in hsql database from dbeaver
- Hank
- 29 Aug, 2023
By default, Mendix project is using HSQL as the database.If you want to check the db tables and data, you can simply do this:- start the
Read MoreThe differences between React.memo, useCallback and useMemo
- Hank
- 03 Dec, 2024
In React, `React.memo`, `useCallback` and `useMemo` are three hooks that can help you optimize your React application. They are similar in s
Read MoreHow to shuffle an array
- Hank
- 03 Dec, 2024
In a small talk, one of my friends asked me, without searching or using AI, can you figure out how to shuffle an array in JavaScript? Surp
Read MoreFixing the Close Action for a Modal popup in Mendix
- Hank
- 01 Aug, 2023
Our tester engineer recently reported an issue where in a Mendix app, it takes more than 3 seconds to close a popup after clicking the close
Read MoreMendix: How to debug javaaction with IntelliJ and VS Code
- Hank
- 14 Jul, 2024
Sometimes, you may want to debug the Java actions in Mendix project. In the Mendix Documentation, it only shows how to debug Java actions wi
Read MoreMendix: how to set entity association in Java Action
In Mendix, you can set an entity association in a microflow by simply set the association attribute of the entity. But how to do this in a
Read MoreMendix: How to call Microflow in Java Action and use its return value
- Hank
- 28 Oct, 2022
After you dive into Mendix for a longer time, you would find yourself writing java code now and then. Don't worry, good news is that you don
Read MoreJavaScript :How to detect if an element is visible
- Hank
- 28 Jul, 2022
There are many ways to detect if an element is visible on page. like```javascript element.style.display !== none && element.visibility !==
Read More