Posts

Awesome Article Sharing — 5 Cool Chrome DevTools Features You Might Not Know

“5 Cool Chrome DevTools Features Most Developers Don’t Know About” outlines five useful Chrome DevTools features. After reading, I realized I only knew one out of the five, and the other four are quite handy… The four features are: Live Expression This allows you to monitor the change of a value in real-time, such as the screen width, a specific element, or a JavaScript variable. Logpoints You can insert console.log() without modifying the JavaScript code.

Posted on  Jun 4, 2024  by  Amo Chen  ‐ 2 min read

Feature Flags Are Ruining Your Codebase

Feature Flags are a commonly used technique when releasing new features. They allow us to quickly turn specific features on or off, such as in the following Python code example, where you can switch between the new and old payment services through configuration settings: USE_NEW_PAYMENT_SERVICE = config.get('NEW_PAYMENT_SERVICE') is True if USE_NEW_PAYMENT_SERVICE: ...(the new logic) else: ...(the old logic) While Feature Flags are convenient, they also bring many issues that we should be aware of or may have experienced ourselves.

Posted on  Mar 25, 2024  by  Amo Chen  ‐ 3 min read

Security Alert — Beware of Malicious Links in GA4, Search Console, and Other Services

Recently, a type of malicious attack method has emerged, which uses the Referer header in HTTP to spread harmful URLs. Because the Referer header is collected by website traffic monitoring services like GA4, Search Console, and Webmaster, attackers exploit it to create popular links. This tactic is aimed at sparking curiosity in data analysts who might then click on these malicious URLs, potentially leading to security issues (such as malicious programs being injected through browser vulnerabilities)!

Posted on  Mar 21, 2024  by  Amo Chen  ‐ 1 min read

A Plain Explanation of IndexedDB

Browsers offer several methods for storing data, and not all data needs to be saved on a backend database. Among the most commonly known and used are cookies and localStorage. IndexedDB tends to be used less frequently since many scenarios are usually handled by backend servers. However, IndexedDB is actually a type of NoSQL storage provided by browsers. It supports transactions and indexing, allowing for range queries. It even considers database versioning, which facilitates data migration using version numbers.

Posted on  Dec 29, 2023  by  Amo Chen  ‐ 2 min read

Chatting About Refactoring and Design Patterns

No matter your position, if you’ve been developing for a while, you’ll come across refactoring or design patterns. Design patterns are solutions to common programming problems. For instance, if your codebase has a lot of repetitive code, or it’s filled with long, smelly functions, or if adding a new feature means changing lots of code, you’re not alone. Others have faced these issues, too, and have come up with various effective solutions.

Posted on  Nov 20, 2023  by  Amo Chen  ‐ 2 min read

The Freelance Path for Programmers — Online Job Opportunities

How do you all find freelance jobs? Through personal connections or Facebook groups? Basically, these channels are still very competitive. The reason being, the domestic market in Taiwan is not large enough. To get a deal, it often ends up in a price war. However, if you look abroad, not only are there more opportunities, but there might also be a chance to increase your rates! (Earn those dollars! If you want to explore different markets, accumulate experience, earn extra income for yourself, or regain control over your life (say, no more commuting, no more on-site), you can try finding freelance jobs online.

Posted on  Sep 29, 2023  by  Amo Chen  ‐ 2 min read

Great Article Share - Automating Kubernetes Deployments using Python

The article, “Automating Kubernetes Deployments using Python,” introduces how to automate the control of K8s-related resources using the Python Kubernetes package. It covers five major resources: Deployment, Service, ConfigMap, Secret, and Ingress. These are typically encountered when deploying applications to K8s. If you’re looking to automate the process of deploying applications to K8s with Python, this article is a great starting point and very valuable as a reference. Automating Deployment of Applications using Kubernetes Python SDK

Posted on  Jul 8, 2023  by  Amo Chen  ‐ 1 min read

A Conversational Guide to ULID (Universally Unique Alphabetically Sortable Identifier)

Previously, many people have been using UUIDs to ensure unique Id fields. However, the randomness of UUIDs makes them non-sortable. For example, you might generate a UUID starting with 47 one second, and then the next second it starts with 36. This randomness can lead to efficiency problems in databases like MySQL, which need to update multiple pages, especially when dealing with large amounts of data. Because of this issue, the concept of ULID was introduced.

Posted on  Jul 5, 2023  by  Amo Chen  ‐ 2 min read