Elliptic Curve Cryptography Explained
Recently, I am learning how Elliptic Curve Cryptography works. I searched around the internet, found so many articles and videos explaining it. Most of them are covering only a portion of it, some of them skip many critical steps how you get from here to there. In the end, I didn’t find an article that really explains it from end-to-end in an intuitive way. With that in mind, I would like to write a post explaining Elliptic Curve Cryptography, cover from the basics to key exchange, encryption, and decryption.
To plot the curve for writing this article, and also get a sense of how things work, I wrote a Jupyter Notebook for curve plotting and calculations in Python. The plotting library is matplotlib. And if you want to play around an elliptic curve and feel how it works yourself, lucky you! I made the source code open-sourced here on GitHub, one for real numbers and one for finite field:

You can find most of the article diagrams in the notebook.
Please note that this article is not meant for explaining how to implement Elliptic Curve Cryptography securely, the example we use here is just for making teaching you and myself easier. We also don’t want to dig too deep into the mathematical rabbit hole, I only want to focus on getting the sense of how it works essentially. So we will strip out many math details and only provide a reference read for it.
Now, shall we begin?

...
Read the full articleNinja Speed Vim-like Debugging with Ergonomic Keyboard and Trackpad
This article is also published at Medium and dev.to
Have you ever felt wrist pain after long time typing and using a mouse? Yep, I bet you are like many of us, who spends their entire life in coding, it’s inevitable to experience the pain of wrist at some point. Your career is like a marathon, to go far, it’s critical to treat yourself well.
A while back, wrist pain stroked me again, I’ve lost count how many times it is. It made me decide to spend some effort to find out the best ergonomic keyboard and trackpad setup that works for myself. After I did my research and bought the keyboard, while exploring the right keyboard layout configuration, I noticed that with the customizable layout, I can design a layout that makes Vim mode like debugging experience that I’ve been dreaming for a long time. As a result, it boosts the speed of tracing code by orders of magnitude. Basically, it makes you debug like a ninja.
So in the end, I not only feel more comfortable when working with a computer but also become more productive. Sounds too good to be true? Read on, today I would like to share the experience of my keyboard, its layout, and trackpad setup with you. Before we jump into the article, let’s what it looks like:

...
Read the full articleHow I learn programming by building an MMORPG from the ground up 7 times
This article is also published at Medium and dev.to
It has been twenty years since I started programming. Today I want to share the story of how I learn to code by building an MMORPG from the ground up 7 times since I was 12 years old. Sounds crazy? Yep, that’s how I did it. It all starts with an MMORPG I like a lot while I was a kid, it’s called Lineage.

Back in my day, it was the most popular online game in Taiwan, and surely the most popular one among my classmates. The game was designed to always be exponentially harder to get to the next level from the previous one. As a 12 years old kid, I didn’t have time to get to the top level. So I talked to myself:
...
Read the full articleBoost 10x UI development productivity with SDD
This is republished version of Boost Productivity with Showcase-driven Development for Mobile or Front-end App, this article is also published at medium
Building UI is tedious, it takes a long time and many steps to do little modifications and see what it looks like. Especially when there’s a view buried deeply behind many complicated manual steps. Have you ever wonder how to boost your productivity by 10x or more when building UI? Yes, there’s a way - Showcase Driven Development. Now I am going to tell you the secret how I did it.
...
Read the full article