Tech Articles

cover of post: 16 Bad TypeScript Habits You Need to Break Now

16 Bad TypeScript Habits You Need to Break Now

Apr 23, 2025

The key to mastering TypeScript lies in a deep understanding of the design concept of the type system and developing a standardized coding habit. By avoiding the above 16 common issues and reasonably using features such as type declarations, utility types, and generics, you will be able to write more secure and maintainable code and fully leverage the advantages of TypeScript.

By Daniel Hayes#javascript
cover of post: Getting Started with MySQL CREATE TABLE: Syntax and Practical Examples

Getting Started with MySQL CREATE TABLE: Syntax and Practical Examples

Apr 22, 2025

MySQL `CREATE TABLE`: structure, constraints, and real-world usage tips.

By Lukas Schneider#Engineering
cover of post: Mastering MySQL's SUBSTRING_INDEX() for Structured String Parsing

Mastering MySQL's SUBSTRING_INDEX() for Structured String Parsing

Apr 22, 2025

Extract structured substrings in SQL using delimiters and direction.

By Lukas Schneider#Engineering
cover of post: Mastering MySQL DATE_FORMAT(): Format Dates with Precision

Mastering MySQL DATE_FORMAT(): Format Dates with Precision

Apr 22, 2025

Format MySQL dates into readable strings using flexible format specifiers.

By Takashi Yamamoto#Engineering
cover of post: Deep Dive into Rust's Sized Trait and Dynamically Sized Types

Deep Dive into Rust's Sized Trait and Dynamically Sized Types

Apr 22, 2025

Understand how Rust handles compile-time and dynamic type sizes using the Sized trait.

By Lukas Schneider#Engineering
cover of post: requests vs aiohttp vs httpx: A Deep Dive into Python HTTP Clients

requests vs aiohttp vs httpx: A Deep Dive into Python HTTP Clients

Apr 22, 2025

Among the rich variety of Python HTTP client libraries, the most well-known ones are requests, aiohttp and httpx. Without the help of other third-party libraries, requests can only send synchronous requests; aiohttp can only send asynchronous requests; while httpx has the ability to send both synchronous and asynchronous requests.

By Daniel Hayes#python
cover of post: Using CONCAT in MySQL to Combine Strings Effectively

Using CONCAT in MySQL to Combine Strings Effectively

Apr 21, 2025

Learn how to concatenate strings in MySQL using `CONCAT()` and `CONCAT_WS()`.

By Min-jun Kim#Engineering
cover of post: Mastering TypeScript Dictionaries: Index Signatures and Record Types

Mastering TypeScript Dictionaries: Index Signatures and Record Types

Apr 21, 2025

Type-safe TypeScript dictionaries using index signatures and `Record`.

By Emily Parker#Engineering
cover of post: How to Disable JavaScript in Chrome

How to Disable JavaScript in Chrome

Apr 21, 2025

Guide to disabling JavaScript in Chrome and managing site-specific settings.

By James Reed#Engineering
cover of post: Java's MapStruct Implemented in Rust

Java's MapStruct Implemented in Rust

Apr 21, 2025

Rust macro-based alternative to Java's MapStruct for automatic struct conversion.

By Olivia Novak#Engineering
cover of post: JavaScript String Formatting: Alternatives to `printf()`

JavaScript String Formatting: Alternatives to `printf()`

Apr 21, 2025

JavaScript string formatting with template literals and `printf`-like custom methods.

By Grace Collins#Engineering
cover of post: How to Replace a String in JavaScript

How to Replace a String in JavaScript

Apr 21, 2025

Replace strings in JavaScript using `replace()` with regex and functions for flexibility.

By Daniel Hayes#Engineering
cover of post: How to Sleep in JavaScript Using Async/Await

How to Sleep in JavaScript Using Async/Await

Apr 21, 2025

Simulate sleep in JS with Promises and async/await.

By James Reed#Engineering
cover of post: Understanding Absolute Value in JavaScript

Understanding Absolute Value in JavaScript

Apr 21, 2025

Learn how to use `Math.abs()` to get absolute values in JavaScript.

By Wenhao Wang#Engineering
cover of post: How to Check if an Object Is Empty in JavaScript

How to Check if an Object Is Empty in JavaScript

Apr 21, 2025

Reliable ways to check if a JavaScript object is empty.

By Ethan Miller#Engineering
cover of post: How to Capitalize the First Letter of a String in JavaScript

How to Capitalize the First Letter of a String in JavaScript

Apr 21, 2025

Capitalize a string’s first letter using JavaScript string methods safely and effectively.

By Emily Parker#Engineering
cover of post: Understanding Ownership and References in Rust

Understanding Ownership and References in Rust

Apr 20, 2025

Explains Rust’s ownership, borrowing, and references to prevent memory errors.

By Takashi Yamamoto#Engineering
cover of post: Deep Dive into Cryptographic Algorithms with Python

Deep Dive into Cryptographic Algorithms with Python

Apr 20, 2025

Encryption technology in Internet development is a key defense line for ensuring data security. Developers should reasonably select encryption algorithms according to different scenarios, and continuously optimize the encryption scheme by combining technologies such as salting. At the same time, they should pay attention to the latest research achievements in encryption technology to deal with the increasingly complex network security threats and safeguard the security and stability of the digital world.

By Emily Parker#python
cover of post: When to Break the Rules: Database Normalization in Practice

When to Break the Rules: Database Normalization in Practice

Apr 20, 2025

Understanding database normalization and its practical implications.

By Grace Collins#Engineering
cover of post: Best Practices for Design Patterns in Go

Best Practices for Design Patterns in Go

Apr 19, 2025

Implementation of Ten Design Patterns in Go Language and Their Applications in Internet Scenarios

By Ethan Miller#golang
cover of post: Getting Started with Anaconda Python: How to Download and Install

Getting Started with Anaconda Python: How to Download and Install

Apr 18, 2025

Quick guide to downloading and installing Anaconda for data science workflows.

By Emily Parker#Engineering
cover of post: Implementing a Priority Queue in Go Using `container/heap`

Implementing a Priority Queue in Go Using `container/heap`

Apr 18, 2025

Build a customizable priority queue in Go using the heap interface.

By Wenhao Wang#Engineering
cover of post: Passing by Reference in Go: A Practical Guide

Passing by Reference in Go: A Practical Guide

Apr 18, 2025

How to use pointers in Go to simulate pass-by-reference behavior.

By Min-jun Kim#Engineering
cover of post: When to Use Async Runtimes in Rust Concurrency and When Not

When to Use Async Runtimes in Rust Concurrency and When Not

Apr 18, 2025

Learn the right use cases and limits of async runtimes in Rust.

By James Reed#Engineering
cover of post: Security Risks of Using Pickle for Deserialization in Python

Security Risks of Using Pickle for Deserialization in Python

Apr 18, 2025

This article comprehensively introduces the concepts of serialization and deserialization in Python, as well as the application of the Pickle module in this process. At the same time, it elaborates in detail on the principles of deserialization attacks and demonstrates the ways that attackers may use through specific code examples. Finally, we discussed the principles and specific methods of preventing Pickle deserialization attacks, including restricting deserialization types and using more secure serialization modules. It is hoped that through the introduction of this article, everyone can have a deeper understanding of deserialization attacks and take effective preventive measures in actual programming to ensure the security of the system. If you have any questions or suggestions about the content of this article, you are welcome to discuss them in the comment section.

By Wenhao Wang#python
cover of post: Simulating Default Parameters in Go

Simulating Default Parameters in Go

Apr 17, 2025

Go lacks default parameters but offers clear workarounds like wrapper functions and config structs.

By Ethan Miller#Engineering
cover of post: Mastering Concurrency in Go with Goroutines and Channels

Mastering Concurrency in Go with Goroutines and Channels

Apr 17, 2025

Goroutines and channels power Go's efficient concurrency model.

By Min-jun Kim#Engineering
cover of post: Custom Errors in Go: A Practical Guide

Custom Errors in Go: A Practical Guide

Apr 17, 2025

Define structured errors in Go for clarity, control, and safer error handling.

By James Reed#Engineering
cover of post: Common Async Pitfalls in Rust Concurrency

Common Async Pitfalls in Rust Concurrency

Apr 17, 2025

Learn the top async traps in Rust and best practices to prevent them.

By Ethan Miller#Engineering
cover of post: Under the Hood of NextAuth.js: A Scalable Authentication System

Under the Hood of NextAuth.js: A Scalable Authentication System

Apr 17, 2025

Next-Auth provides powerful and flexible authentication functions through a reasonable division of the source code structure. Whether it is the encapsulation of network requests, session management, support for multiple authentication methods, or considerations for security (such as CSRF protection and JWT encryption), it reflects the excellence of its design. Developers can deeply understand and expand the source code of Next-Auth according to their own needs to meet the authentication requirements of different projects.

By Emily Parker#javascript
cover of post: Using VCS in Go: Managing Code and Dependencies Effectively

Using VCS in Go: Managing Code and Dependencies Effectively

Apr 17, 2025

Go integrates deeply with VCS for modules, builds, and traceability.

By Grace Collins#Engineering
cover of post: Simulating Tuples in Go: Structs, Generics, and Practical Workarounds

Simulating Tuples in Go: Structs, Generics, and Practical Workarounds

Apr 17, 2025

Workarounds for using tuples in Go via structs, generics, and libraries

By Emily Parker#Engineering
cover of post: How to Set Default Values in Go Structs

How to Set Default Values in Go Structs

Apr 17, 2025

Techniques for setting custom default values in Go structs.

By Takashi Yamamoto#Engineering
cover of post: 7 Retry Patterns Every Backend Engineer Should Know

7 Retry Patterns Every Backend Engineer Should Know

Apr 17, 2025

How to avoid retry storms and design robust failure recovery mechanisms.

By Wenhao Wang#Engineering
cover of post: Building a Template Engine from Scratch (Like Jinja2 or Django Templates)

Building a Template Engine from Scratch (Like Jinja2 or Django Templates)

Apr 16, 2025

It is hoped that through this simple academic example, you can have a preliminary understanding of the working principle of the template engine. Although this code is still far from being production-level, it can serve as a basis for developing more complete tools.

By Daniel Hayes#python
cover of post: How to Use `range` as a `foreach` in Go

How to Use `range` as a `foreach` in Go

Apr 15, 2025

Use Go's `range` to iterate like `foreach` across common data types.

By Grace Collins#Engineering
cover of post: Understanding Go's `fallthrough`: How and When to Use It

Understanding Go's `fallthrough`: How and When to Use It

Apr 15, 2025

How Go’s `fallthrough` works and why it must be used carefully.

By Min-jun Kim#Engineering
cover of post: How to Copy a File in Go (Golang)

How to Copy a File in Go (Golang)

Apr 15, 2025

A practical guide to copying files in Go using `io.Copy` and `os` utilities.

By Takashi Yamamoto#Engineering
cover of post: Domain-Driven Design Made Simple: A Developer's Perspective

Domain-Driven Design Made Simple: A Developer's Perspective

Apr 15, 2025

A hands-on guide to Domain-Driven Design with real-world code comparisons.

By Wenhao Wang#Engineering
cover of post: HTMX: Rethinking the Frontend - Forget React

HTMX: Rethinking the Frontend - Forget React

Apr 15, 2025

HTMX has reopened the door to front-end development for non-front-end engineers. If you are not developing applications with extremely high interactivity like spreadsheets or Google Maps, basically, you can make good use of HTMX to replace the existing front-end development frameworks and return to the lightweight front-end development mode centered around HTML. With HTMX, you don't need to struggle with whether to implement the client as a SPA or an MPA. You can choose the most suitable way for routing, display data in the most natural way, and let users interact with the data (whether it is creating, reading, updating, deleting, or other operations).

By Olivia Novak#javascript
cover of post: How to Pretty Print Structs in Go

How to Pretty Print Structs in Go

Apr 14, 2025

Quickly format Go structs with `fmt`, JSON, or `spew` for better readability.

By Ethan Miller#Engineering
cover of post: How to Uninstall Golang from Windows, macOS, and Linux

How to Uninstall Golang from Windows, macOS, and Linux

Apr 14, 2025

Step-by-step guide to completely uninstall Go from any OS.

By Olivia Novak#Engineering
cover of post: How to Get the Current Working Directory in Python

How to Get the Current Working Directory in Python

Apr 14, 2025

Simple ways to get the current working directory in Python using `os` and `pathlib`.

By Grace Collins#Engineering
cover of post: In-Depth Guide to Redis Persistence Mechanisms

In-Depth Guide to Redis Persistence Mechanisms

Apr 14, 2025

Explains Redis-based delayed queues, challenges, solutions, and advanced usage patterns.

By Olivia Novak#Engineering
cover of post: Go’s sync Package: A Set of Concurrency Synchronization Techniques

Go’s sync Package: A Set of Concurrency Synchronization Techniques

Apr 14, 2025

The types in the `sync` standard library package play a crucial role in the concurrent programming of the Go language. Developers need to reasonably select and correctly use these synchronization types according to specific business scenarios and requirements, so as to write efficient, reliable and thread-safe concurrent programs. At the same time, when writing concurrent code, it is also necessary to have an in-depth understanding of various concepts and potential problems in concurrent programming, such as data races, deadlocks, etc., and ensure the correctness and stability of the program in a concurrent environment through sufficient testing and verification.

By Takashi Yamamoto#golang
cover of post: Understanding `defaultdict` in Python

Understanding `defaultdict` in Python

Apr 14, 2025

Simplifies key handling in Python dictionaries using default values.

By Daniel Hayes#Engineering
cover of post: Enhancing Python Applications with Tenacity: A Guide to Robust Retry Mechanisms

Enhancing Python Applications with Tenacity: A Guide to Robust Retry Mechanisms

Apr 14, 2025

Flexible Python retry library for building fault-tolerant applications.

By Takashi Yamamoto#Engineering
cover of post: Mastering Command-Line Interfaces with Python argparse

Mastering Command-Line Interfaces with Python argparse

Apr 14, 2025

Build user-friendly CLIs in Python using `argparse`’s powerful features.

By Min-jun Kim#Engineering