RSSAmplifier

Blog

Wonderland (English)

Wonderland English articles.

dyz.ioRSS feed ↗105 posts

Latest posts

Wonderland Blog Stack and Copy-Deployment Guide

This article documents the repository structure and deployment path behind this site: Astro organizes the site, Typst owns the content, Cloudflare runs the runtime layer, and D1 stores only data that truly needs dynamic state.

Lightweight hardware is not all of spatial computing

Lightweight glasses may become the high-frequency entry point, but heavier MR/VR devices still define the ceiling of spatial computing.

The Blog Now Speaks Two Languages

The blog now supports bilingual articles and AI-assisted translation.

UOS Password Reset and Login Keyring Repair Record

Reset the UOS user password through a temporary root shell in GRUB and address the issue of the deepin login keyring not unlocking with the new password.

Blog Update

Blog style update

After Kehua's Shutdown, I Created 'Calix' — A Place for Thoughts to Rest

Project features and tech stack sharing

Make NBIS's wsq_decode_mem Thread Safe

Make it thread-safe by modifying the source code

Forcing Little Endian When Compiling NBIS

The default compilation configuration does not take effect, forcing little endian when compiling NBIS.

Adding a Comment Feature to Your Blog with Cloudflare D1 and Astro

Adding a Comment Feature to Your Blog with Cloudflare D1 and Astro

Hello

My new blog debut, with a new theme and a new look.

New Blog Debut

My new blog debut, with a new theme and a new look.

Typst Syntax

List of Typst Syntax, for rendering tests.

Merging Video and Subtitles with FFmpeg

Some players cannot recognize external subtitles or embedded tracks, so the subtitle content needs to be 'burned' into the video.

Solution for luatex Not Finding System Fonts on Mac

Reference link: https://zhuanlan.zhihu.com/p/42434849 Execute the following command: where Assets and com_apple_MobileAsset_Font4 change with the system version.

Design Patterns (4) — Builder Pattern

The Builder Pattern is a design pattern that helps you create complex objects. It encapsulates the object creation process in a dedicated builder object.

Design Patterns (4) — Chain of Responsibility Pattern

The Chain of Responsibility pattern is a software design pattern used to process requests and delegate the responsibility of handling requests to a series of handlers. In the Chain of Responsibility pattern

Design Patterns (2) — Prototype Pattern

The prototype pattern is a creational design pattern that allows you to copy an object instead of creating a new one. The prototype pattern is useful in scenarios where complex objects need to be created, as the process of creating a complex object can consume a lot of time and resources.

Design Patterns (1) — Singleton Pattern

The singleton pattern is a common design pattern that ensures a class has only one instance and provides a global access point to that instance. The purpose of this is

Design Patterns (3) — Strategy Pattern

The Strategy Pattern is a commonly used design pattern that defines a series of algorithms and encapsulates each algorithm so that they can be interchanged. The Strategy Pattern allows algorithms to vary independently of the clients that use them, enabling changes to the algorithms without affecting the clients.

Design Patterns (0) — Factory Pattern

The factory pattern is a software design pattern that belongs to the category of creational patterns. The purpose of the factory pattern is to create a series of related or dependent objects through an abstract factory class.

Comparison of gRPC and REST API

REST API REST (Representational State Transfer) API

Comparison of RabbitMQ, RocketMQ, and Kafka

RabbitMQ is an open-source message broker and queue server primarily used for transmitting messages between distributed systems to address application scalability and high availability issues.

Introduction to Redis

Redis is an in-memory key-value store system, and its name is an abbreviation for REmote DIctionary Server

GenServer in Elixir

GenServer in the Elixir language is an abstract model for implementing concurrent programming. GenServer provides a unified interface for managing and communicating the relationships between various states and processes.

Introduction to Functional Programming

Functional programming is a programming paradigm that emphasizes the use of functions to solve problems. In functional programming, we typically use recursion to implement algorithms instead of using loops.

Introduction to Tail Recursion

Tail recursion is a way of writing recursive functions, characterized by calling itself at the end of the function. The benefit of this approach is that it allows the compiler to optimize the code,

Supervision Tree in Elixir

In Elixir, a supervision tree is a data structure used for managing processes. It allows us to organize processes into a tree structure, enabling us to manage processes in a straightforward manner.

Monotonic Stack

A monotonic stack is a commonly used data structure where the elements satisfy monotonicity. Monotonic stacks are often used to solve complex problems, such as finding the maximum subsequence sum, finding the minimum spanning tree, etc.

Introduction to Erlang/OTP

OTP (Open Telecom Platform) is a set of standard libraries and tools for building scalable and highly available systems.

Simple Practice with Elixir+OTP

Here, we look at a complete example developed using Elixir and OTP, which implements a simple counter server.

Setting Up the Elixir Development Environment

This article is generally applicable to Linux, WSL, and macOS.

First Encounter with Elixir

In my series "Building an MMORPG Game Server from Scratch," I use Elixir as the main development language for the server. In this section, I

Elixir Modules

Elixir modules are tools for organizing code, helping developers break code into manageable units. In Elixir

Introduction to Phoenix Liveview

The previous article introduced the Phoenix framework, and this section will introduce an enhanced library of it—Liveview. Phoenix

Introduction to Phoenix Framework

Phoenix Framework is a framework for building high-performance web applications using the Elixir language. It

Thought Process for Solving Problems — Variable Values After Operations & Number of Different Averages

Variable Values After Operations Difficulty: Easy Problem: There exists a programming language that only supports 4 operations and 1 variable X.

Maximum Score Sum After N Operations

Maximum Score Sum After N Operations Difficulty: Hard Problem: Given you nums, which is a positive integer array of size 2 * n

Starting from Zero: MMORPG Game Server (28) - Scene Server (17) - Updates on Related NIF Interfaces

In the last section, we completed the creation of the physics system. In this section, we will begin modifying the NIF functions related to movement using the physics system. The basic idea is to involve the physics operations.

Starting from Zero: MMORPG Game Server (27) - Scene Server (16) - Creating the Physics System and Its Manager

The previous section mentioned the physics system object PhySys. In this section, we will implement PhySys and the management process on the Elixir side.

Starting from Zero: MMORPG Game Server (26) - Scene Server (15) - Creating Character Physics Component

In this section, we will begin to modify the existing movement component. The current movement component stores the position directly as a field within a struct: but

MMORPG Game Server from Scratch (25) - Scene Server (14) - Rapier Character Controller

In this section, I will briefly introduce the main tool we will be using: Character Controller Character Co

MMORPG Game Server from Scratch (24) - Scene Server (13) - Introduction to the Physics Engine Rapier

Let's continue with the writing of the scene server scene_server. As mentioned before, I plan to add a physics engine for client data validation.

Skip List Learning (0)

A skip list is a data structure designed to improve the query efficiency of arrays or linked lists. The working principle of a skip list is to construct multi-level indexes, allowing query operations to quickly locate elements by 'jumping' through each level of the index.

MMORPG Game Server from Scratch (23) - Visualize Server (6) - Fixing Character Icon Orientation Issues

In the last section, we displayed the player's character indicator icon in the correct position on the webpage, but the icon's direction did not update with the direction of movement.

Starting from Zero: MMORPG Game Server (22) - Visualize Server (5) - Frontend Coordinate Correction

In the last section, we mentioned that the player's character position is now displayed on the webpage, but the position is misaligned. Therefore, in this section, we will analyze the cause of this issue and solve it.

Starting from Zero: MMORPG Game Server (21) - Visualize Server (4) - Get Player Character Coordinates and Send to Frontend

In the previous section, we obtained the player's character cid and process list. In this section, we will retrieve all coordinate data and send it to the frontend. Get Position.

MMORPG Game Server from Scratch (20) - Visualize Server (3) - Get Player Character List

In this section, I will create an interface for SceneServer to provide data to VisualizeServer.

MMORPG Game Server from Scratch (19) - Visualize Server (2) - Server Data Push Mechanism

In this section, we explore how data is periodically pushed from the server to the client. For Phoenix Liveview,

Starting from Zero: MMORPG Game Server (18) - Visualize Server (1) - PIXI.js Scene Setup

This section begins to focus on front-end visualization implementation. Rendering Library I searched a lot of keywords like 2D, Web, engine, and found that PixiJS

MMORPG Game Server from Scratch (17) - Visualize Server (0) - Integrating Tailwind with Phoenix

In the last section, I mentioned that I wanted to make the server-side player movement data intuitive, and the Web was the first method that came to mind. So starting from this section, I will build a Web server based on the Phoenix framework to display data graphically on the webpage.

Wonderland (English) · RSS Amplifier