While prepping my resume for upcoming interviews, I wanted it available both as a PDF and a web version. I was inspired by The resume that got a software engineer a $300,000 job at Google because of its simplicity.
I considered using powerful markdown parsers like Craft or open-source generators like Reactive-Resume. However, my experience with them wasn’t great—not the tools, but me. I wanted full control over every detail.
I've been using Hugo for blogging for a long time, but never truly enjoyed it because none of the themes felt just right.
Over the past year, diving into React has changed everything. I now have the skills to build any website I envision, from the theme to all components, interactions, and animations.
Once I decided to commit, I worked tirelessly. After completing my resume, I rewrote my old blog site from scratch. The result? A new blog that I genuinely enjoy.
This blog tool functions like others by parsing markdown files and generating metadata. But I chose to use .mdx, allowing me to embed code and components directly into my posts. This makes customizing images, code blocks, drawings, and other elements a breeze. For example, adding an Excalidraw is as simple as:
import { MyExcalidraw } from "@/components/my-excalidraw"
<MyExcalidraw data={gw1} />
Here’s a snippet from one of the posts:
import { MyExcalidraw } from "@/components/my-excalidraw";
import { Image } from "@nextui-org/image";
import MyPermalink from "@/app/permalink/permalink";
Load Balancing 是实现高可用性的重要手段,它可以在系统的各个环节中发挥作用——当我们打开网页或者启动一个app时,它就开始发挥作用了。
我没法把 Load Balancing 讲得很透彻,但我的理解或许可以提供一个新的视角。
## 第一站:网关
后端程序通常给客户端提供服务,那么客户端与后端服务打交道的第一站—网关—有必要做到高可用。
最简单的网关可能长这样:
<MyExcalidraw data={gw1} />
在这个场景中,Nginx成了单点故障。为了让Nginx高可用,很容易想到这个方案:
<MyExcalidraw data={gw2} />
To protect my personal information, the phone number and email aren’t visible on the page until the browser runs JavaScript to decode them twice using base64. This separation between client-side and server-side rendering makes it difficult for scraping bots, as they would need to use a headless browser, which is resource-intensive on a large scale.
With this new blog, I feel more inspired to share my thoughts than ever before.