Articles

cover of post: Understanding Async/Await in Rust

Understanding Async/Await in Rust

Mar 20, 2025

An introduction to Rust's async/await, explaining Futures, executors, and concurrency with practical examples.

GrGrace Collins#Engineering
cover of post: Validator: Advanced Struct and Field Validation For Go

Validator: Advanced Struct and Field Validation For Go

Mar 20, 2025

The leapcell library (validator) is very rich in functions and relatively simple and convenient to use. The constraint conditions introduced in this article are just the tip of the iceberg of its powerful functions. This library has a wide range of applications in the field of software development, especially web development. It is recommended that developers have an in-depth understanding and mastery of it to improve the efficiency and accuracy of data validation and ensure the security and stability of the system.

DaDaniel Hayes#golang
cover of post: Implementing a Rule Engine in Go with Govaluate

Implementing a Rule Engine in Go with Govaluate

Mar 19, 2025

Although the operations and types supported by govaluate are limited, it can still implement some interesting functions. For example, you can write a web service that allows users to write their own expressions, set parameters, and let the server calculate the results.

JaJames Reed#golang
cover of post: How to Use `json.MarshalIndent` in Golang

How to Use `json.MarshalIndent` in Golang

Mar 18, 2025

Format JSON in Golang with `json.MarshalIndent` for better readability.

GrGrace Collins#Engineering
cover of post: Understanding Getters in Go

Understanding Getters in Go

Mar 18, 2025

Go encourages direct field access, using getters only when necessary.

JaJames Reed#Engineering
cover of post: How to Copy a Struct in Golang

How to Copy a Struct in Golang

Mar 18, 2025

Shallow copy is simple, but deep copy is necessary for reference types.

JaJames Reed#Engineering
cover of post: Understanding Bitwise Operations in Go

Understanding Bitwise Operations in Go

Mar 18, 2025

Bitwise operations in Go improve efficiency in arithmetic, masking, and binary data handling.

GrGrace Collins#Engineering
cover of post: Iterating Over Maps in Go: Methods, Order, and Best Practices

Iterating Over Maps in Go: Methods, Order, and Best Practices

Mar 18, 2025

Efficiently iterate over maps in Go using `for`-`range`, handling unordered iteration and sorting when needed.

GrGrace Collins#Engineering
cover of post: Understanding Global Variables in Go

Understanding Global Variables in Go

Mar 18, 2025

Avoid excessive use of global variables in Go to maintain modularity and testability.

DaDaniel Hayes#Engineering
cover of post: Why Using UUID as a Primary Key in MySQL Can Hurt Performance

Why Using UUID as a Primary Key in MySQL Can Hurt Performance

Mar 18, 2025

UUID primary keys may cause index fragmentation, slow queries, and storage overhead in MySQL.

DaDaniel Hayes#Engineering
cover of post: Go Flag Library: A Complete Guide to CLI Arguments

Go Flag Library: A Complete Guide to CLI Arguments

Mar 18, 2025

`flag` is used to parse command-line options. People with experience using Unix-like systems should be familiar with command-line options. For example, the command `ls -al` lists detailed information about all files and directories in the current directory, where `-al` is the command-line option.

DaDaniel Hayes#golang
cover of post: Gopsutil: Efficient System Monitoring in Go

Gopsutil: Efficient System Monitoring in Go

Mar 17, 2025

The gopsutil library provides convenience for us to obtain local machine information, and it handles the compatibility issues between different systems well, providing a unified interface. There are also several sub-packages, such as `net` and `docker`, which are not introduced here due to space limitations. Users who are interested can explore them on their own.

DaDaniel Hayes#golang
cover of post: Understanding jemalloc: A Rust Performance Booster

Understanding jemalloc: A Rust Performance Booster

Mar 16, 2025

Learn how jemalloc optimizes memory management

DaDaniel Hayes#Engineering
cover of post: How to Manage Go Versions with ASDF

How to Manage Go Versions with ASDF

Mar 16, 2025

Guide to installing and managing Go versions using ASDF efficiently.

JaJames Reed#Engineering
cover of post: Building an Efficient Web Scraper in Golang

Building an Efficient Web Scraper in Golang

Mar 16, 2025

Efficiently build responsible Go web scrapers using Colly, concurrency, and policy compliance.

DaDaniel Hayes#Engineering
cover of post: Understanding Constructors in Go

Understanding Constructors in Go

Mar 16, 2025

Go uses factory functions for struct initialization and validation.

GrGrace Collins#Engineering
cover of post: Exploring TUI Libraries in Go

Exploring TUI Libraries in Go

Mar 16, 2025

Overview of key Go libraries for developing robust and interactive TUIs.

JaJames Reed#Engineering
cover of post: Why Choose Go Over Ruby on Rails?

Why Choose Go Over Ruby on Rails?

Mar 16, 2025

Go excels in scalability and performance, while Rails suits rapid development.

DaDaniel Hayes#Engineering
cover of post: Implementing Linked Lists in Go

Implementing Linked Lists in Go

Mar 16, 2025

Guide to implementing and using linked lists in Go.

DaDaniel Hayes#Engineering
cover of post: Exploring Graphics Libraries in Go

Exploring Graphics Libraries in Go

Mar 16, 2025

Overview of Go's graphics libraries for drawing, visualization, and GUI development.

GrGrace Collins#Engineering
cover of post: How to Delete from a Map in Golang

How to Delete from a Map in Golang

Mar 16, 2025

Efficient ways to delete elements from a Golang map.

DaDaniel Hayes#Engineering
cover of post: Handling Command Line Arguments in Golang

Handling Command Line Arguments in Golang

Mar 16, 2025

Learn how to handle command line arguments in Golang using `os.Args`, `flag`, and `pflag`.

GrGrace Collins#Engineering
cover of post: How to Read Rust Source Code Effectively: A Practical Approach

How to Read Rust Source Code Effectively: A Practical Approach

Mar 16, 2025

An essential guide to navigating Rust’s source code

GrGrace Collins#Engineering
cover of post: Type-Safe SQL in Go with sqlc

Type-Safe SQL in Go with sqlc

Mar 16, 2025

The interfaces provided by the `database/sql` standard library in the Go language are relatively low-level. This requires us to write a large amount of repetitive code. This substantial amount of boilerplate code is not only cumbersome to write but also error-prone. Sometimes, if you modify the field type, you may need to make changes in many places; if you add a new field, you also need to modify the places where the `select *` query statement was previously used. If there are any omissions, it may lead to a panic during runtime. Even if you use an ORM library, these issues cannot be completely resolved! That's where sqlc comes in! sqlc can generate type-safe and idiomatic Go interface code based on the SQL statements we write, and we just need to call these methods.

DaDaniel Hayes#golang
cover of post: How Rust Lost the Race to Go?

How Rust Lost the Race to Go?

Mar 15, 2025

In today's programming world, both Go and Rust are highly regarded programming languages. Developed by Google, Go is renowned for its simplicity, efficiency, and excellent concurrency performance. It is commonly used for building network services, cloud computing platforms, and more. Rust, promoted by Mozilla, is famous for its memory safety and high performance, and it has a wide range of applications in areas such as system programming and embedded development. This article will conduct a detailed comparison of the code writing in Go and Rust from multiple aspects.

DaDaniel Hayes#golang
cover of post: Deep Dive into Rust’s Smart Pointers

Deep Dive into Rust’s Smart Pointers

Mar 16, 2025

Learn how Rust's smart pointers ensure safe memory allocation, ownership, and concurrency.

GrGrace Collins#Engineering
cover of post: TypeScript Meets Go: Understanding the 10x TypeScript

TypeScript Meets Go: Understanding the 10x TypeScript

Mar 14, 2025

The code name of the new TypeScript migration project is Corsa. The old codebase, Strata, was once the initial code name of TypeScript, which began in the internal development stage at the end of 2010 or the beginning of 2011. The initial team consisted of Steve Lucco, Anders Hejlsberg, and Luke. Steve wrote the original prototype compiler, extracting and modifying the scanner and parser from the JavaScript engine of Internet Explorer. It was a C# codebase used for the proof of concept.

JaJames Reed#golang
cover of post: Rust Error Handling Deep Dive: Beyond Result and Option

Rust Error Handling Deep Dive: Beyond Result and Option

Mar 13, 2025

A practical approach to Rust error handling: methods, patterns, and custom error strategies.

DaDaniel Hayes#Engineering
cover of post: Mastering `fmt.Fprintf` in Go: A Guide to Formatted Output

Mastering `fmt.Fprintf` in Go: A Guide to Formatted Output

Mar 13, 2025

`fmt.Fprintf` in Go enables efficient, formatted output to diverse destinations.

JaJames Reed#Engineering
cover of post: Understanding Anonymous Structs in Golang

Understanding Anonymous Structs in Golang

Mar 13, 2025

Anonymous structs in Go simplify temporary data handling but can reduce readability if overused.

GrGrace Collins#Engineering
cover of post: Machine Learning in Golang: An Overview of Popular Libraries and Examples

Machine Learning in Golang: An Overview of Popular Libraries and Examples

Mar 13, 2025

An introduction to machine learning in Go with key libraries and examples.

JaJames Reed#Engineering
cover of post: Implementing Queues in Go

Implementing Queues in Go

Mar 13, 2025

Explores Go queue implementations using slices, linked lists, channels, and libraries.

GrGrace Collins#Engineering
cover of post: Understanding Go Build Tags

Understanding Go Build Tags

Mar 13, 2025

Go build tags enable conditional file inclusion based on platforms or custom configurations.

DaDaniel Hayes#Engineering
cover of post: Working with Base64 in Go

Working with Base64 in Go

Mar 13, 2025

Guide to Base64 encoding and decoding in Go.

GrGrace Collins#Engineering
cover of post: Understanding `strconv.Atoi` in Golang

Understanding `strconv.Atoi` in Golang

Mar 13, 2025

How to convert strings to integers in Go using `strconv.Atoi`.

DaDaniel Hayes#Engineering
cover of post: Understanding Timers in Go

Understanding Timers in Go

Mar 13, 2025

Go timers schedule delayed tasks, and proper handling ensures efficient operations.

GrGrace Collins#Engineering
cover of post: How to Import a Local Package in Golang

How to Import a Local Package in Golang

Mar 13, 2025

Guide on importing local packages in Go using Go modules.

GrGrace Collins#Engineering
cover of post: Understanding Golang's Format Strings

Understanding Golang's Format Strings

Mar 13, 2025

A guide to Go's `fmt` package for formatting strings, numbers, and customizing output.

JaJames Reed#Engineering
cover of post: Understanding the 'break' Statement in Go

Understanding the 'break' Statement in Go

Mar 13, 2025

How to use Go's `break` statement in loops and switch statements.

DaDaniel Hayes#Engineering
cover of post: Understanding Golang Ticker: A Guide to Timed Operations

Understanding Golang Ticker: A Guide to Timed Operations

Mar 13, 2025

Golang's `time.Ticker` schedules periodic tasks and requires proper stopping to manage resources.

JaJames Reed#Engineering
cover of post: Redis Data Types Explained: When and How to Use Them

Redis Data Types Explained: When and How to Use Them

Mar 13, 2025

Explore Redis data types with practical examples and usage scenarios for backend optimization.

GrGrace Collins#Engineering
cover of post: Understanding Python Type Annotations: An In-Depth Look at the typing Module

Understanding Python Type Annotations: An In-Depth Look at the typing Module

Mar 12, 2025

The `typing` module injects the powerful ability of static type annotations into Python, significantly improving the readability and maintainability of the code. Through this article's detailed introduction to the basic concepts, common types, advanced types, and type checking tools of type annotations, it is hoped that readers can have a deep understanding and proficient mastery of the usage methods of the `typing` module. In actual Python project development, the reasonable application of type annotations can effectively reduce potential errors, improve the quality of the code, and make the development process more efficient and reliable. Whether it is a small project or a large project, type annotations can bring many benefits to developers and are worthy of wide application in daily programming.

DaDaniel Hayes#python
cover of post: Is net/http Enough, or Do You Need Gin?

Is net/http Enough, or Do You Need Gin?

Mar 11, 2025

In the Go language, although net/http provides basic HTTP functions, its design goal focuses on simplicity and generality rather than providing advanced features and a convenient development experience. When handling HTTP requests and building web applications, net/http is insufficient in the face of complex routing rules; for some common operations such as logging and error handling, it is difficult to achieve a pluggable design; in terms of binding request data to structures, net/http does not provide convenient operations, and users need to implement them manually.

JaJames Reed#golang
cover of post: Rust Data Structures Guide: Vectors, HashMaps, Sets, and More

Rust Data Structures Guide: Vectors, HashMaps, Sets, and More

Mar 09, 2025

An overview of Rust's essential data structures: Vec, HashMap, HashSet, and more.

GrGrace Collins#Engineering
cover of post: Understanding Panic in Go: Causes, Recovery, and Best Practices

Understanding Panic in Go: Causes, Recovery, and Best Practices

Mar 12, 2025

Panic in Go halts execution; use `recover` to handle it and prefer explicit error handling.

DaDaniel Hayes#Engineering
cover of post: Working with YAML in Go

Working with YAML in Go

Mar 12, 2025

Go supports YAML processing via `go-yaml/yaml` and `goccy/go-yaml`, enabling parsing and generation.

DaDaniel Hayes#Engineering
cover of post: Handling XML in Go

Handling XML in Go

Mar 12, 2025

Efficiently process XML in Go using `encoding/xml` for parsing, generation, and streaming.

DaDaniel Hayes#Engineering
cover of post: OAuth 2.0 Explained: A Journey from Zero to Hero

OAuth 2.0 Explained: A Journey from Zero to Hero

Mar 09, 2025

OAuth is an open network standard for authorization that is widely used globally, and the current version is 2.0. This article will provide a concise and easy-to-understand explanation of the design concept and operation process of OAuth 2.0 based on RFC 6749.

GrGrace Collins#programming