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.
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.
Reference link: https://zhuanlan.zhihu.com/p/42434849 Execute the following command: where Assets and com_apple_MobileAsset_Font4 change with the system version.
The Builder Pattern is a design pattern that helps you create complex objects. It encapsulates the object creation process in a dedicated builder object.
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
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.
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
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.
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.
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.
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.
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.
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,
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.
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.
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.
The previous section mentioned the physics system object PhySys. In this section, we will implement PhySys and the management process on the Elixir side.
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
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.
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.
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.
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.
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
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.