I am Tan Shuai, a chip and systems engineer and founder with more than twenty years spent taking products from custom silicon to AI agent devices. This site collects my technical notes on full-custom ASIC design, memory test systems, and Linux, macOS, and developer tooling, written from Shenzhen, Taipei, Hong Kong, and the US.
If you're like me, always on the lookout for cost-effective solutions without compromising on quality, you're going to love what I have to share today. In our fast-paced tech world, ensuring that our…
In this guide, I'll walk you through how I convert Markdown documents to academic-style paper PDFs on macOS using Pandoc and BasicTeX. This method is quick and straightforward, perfect for when you ne…
When you are using a MacBook, you may want to check the voltage and current of the power adapter. Here is a simple way to check the voltage and current of the power adapter on MacOS. Open Terminal.ap…
I recently migrated one of my GitHub repositories, which uses Git Large File Storage (LFS), over to AWS CodeCommit. I thought I'd share the process with you in case you’re looking to do something simi…
AWS CodeCommit offers a robust alternative to GitHub's Large File Storage (Git LFS) service, providing an efficient solution for managing large files in your Git repositories. Why You Should Recon…
If you encounter the error message "/usr/bin/sudo must be owned by uid 0 and have the setuid bit set" on Ubuntu 20.04, follow these steps to resolve the issue. During the boot process, press the ‘…
Managing a Git repository effectively often requires resetting or restoring subdirectories to maintain a clean and functional codebase. This guide provides a concise, step-by-step approach to reset or…
When working with Electron Build Tools, you might encounter an error related to the installation of pywin32 via Chocolatey. This can be frustrating, especially when it's a required dependency for your…
When developing a Node.js project, you may want to keep track of the current commit ID of your Git repository. This information can be useful for debugging, versioning, or deployment purposes. One way…