Hello World

Hi there! 👋 I’m Ruize Xia (xiaruize0911), a student at Nanjing Foreign Language School in Nanjing, Jiangsu, China. I am passionate about learning and exploring new technologies and ideas. 🌍 Location 📍 Nanjing, Jiangsu, China 📫 Contact Me Email: xiaruize0911@gmail.com QQ: 2188298460 WeChat: xiaruize0911 Thank you for visiting! Feel free to explore my blog and connect with me. 🚀

University Ranking Backend: Code Deep Dive (Part 1)

In this post, we will dive deep into the code structure of the University Ranking Backend. We’ll explore the entry point of the application and the core logic that powers the university search and filtering system. 🏗️ High-Level Overview The backend follows a standard Model-View-Controller (MVC) pattern (where the “View” is JSON output). app.py: The entry point that initializes the app and registers routes. routes/: Handles HTTP requests, parses parameters, and delegates logic to models. models/: Contains the business logic and database interactions. db/: Manages the SQLite database connection. 1. The Entry Point: app.py This file is the heart of the application. It sets up the Flask server, configures security, and connects all the moving parts. ...

December 7, 2025

Building a University Ranking Backend with Vibe Coding

In this post, I’ll share the journey of building a University Ranking Backend, a RESTful API designed to aggregate and serve university ranking data from prestigious sources like QS and US News. We’ll explore the “vibe coding” strategy used to build it, the technical methodology, and the core algorithms that make it tick. 📚 Read the Full Series This project is too interesting to cover in just one post! I’ve broken down the technical details into a deep-dive series: ...

December 7, 2025

University Ranking Backend: Code Deep Dive (Part 2)

In Part 1, we explored the core search logic and API structure. In this second part, we’ll dig into the Data Layer—how data is normalized, stored, and retrieved in detail. We’ll also look at the utility scripts that power the backend’s intelligence. 1. The Data “Glue”: utils/normalize_name.py One of the biggest challenges in aggregating data from multiple sources (QS, US News, Niche) is that they all name universities differently. “MIT” might be “Massachusetts Institute of Technology” in one dataset and “Mass Inst of Tech” in another. ...

December 7, 2025

Building University Ranking Frontend with Vibe Coding: Architecture & Design Strategy

Introduction The University Ranking Frontend is a sophisticated React Native application that demonstrates how to build production-grade mobile experiences using Vibe Coding—a development philosophy where AI assistance guides architectural decisions, simplifies state management, and accelerates feature implementation. Unlike building a backend service (which requires careful database design and algorithm optimization), frontend development is often about creating intuitive user experiences and managing complex application state. In this series, we’ll explore how Vibe Coding transforms frontend development from a labor-intensive process into an iterative, AI-assisted collaboration that produces clean, maintainable code. ...

December 7, 2025

University Ranking Frontend Deep Dive (Part 1): Navigation Architecture & Search Implementation

This is Part 1 of our University Ranking Frontend code deep dive. If you haven’t read the https://xiaruize.org/post/university-ranking-frontend/ introduction yet, I recommend starting there. Overview In Part 1, we’ll explore: Navigation Orchestration - How App.js orchestrates bottom tab and stack navigators SearchScreen Implementation - Building the main search interface with real-time filtering DetailPage Construction - Displaying comprehensive university profiles with dynamic content API Integration - Fetching data with axios and handling async operations Architecture Lesson: Why We Use This Navigation Pattern Many developers overthink navigation. The University Ranking Frontend uses a simple but powerful pattern: ...

December 7, 2025

University Ranking Frontend Deep Dive (Part 2): State Management, React Query, and Theme Architecture

This is Part 2 of our University Ranking Frontend code deep dive. Make sure you’ve read https://xiaruize.org/post/university-ranking-frontend/ and https://xiaruize.org/post/university-ranking-frontend-part-1/ first. Overview In Part 2, we’ll explore: ThemeContext - Implementing theme switching with platform-specific persistence LanguageContext - Managing internationalization and language preferences RankingsProvider - Using React Query for background data synchronization React Query Hooks - Building reusable data fetching patterns Platform-Specific Optimizations - Handling iOS, Android, and Web differently ThemeContext: Theme Management The ThemeContext manages the entire app’s visual theme—light mode, dark mode, or automatic (following system preference). Here’s the complete implementation: ...

December 7, 2025

Gradient Descent

Gradient Descent Gradient Descent is an iterative algorithm used to optimize objective functions, widely applied in machine learning and deep learning to train models by minimizing loss functions. It is recommended to first read the Machine Learning Basics article for background understanding. Objective Function Objective Function: Sometimes also called criterion, cost function, or loss function, is the function we aim to minimize, usually denoted as $J(\theta)$, where $\theta$ is the model parameter. For example, Mean Squared Error (MSE) used in linear regression is a common objective function. ...

September 25, 2025

Machine Learning Basics

Machine Learning Basics This article is based on Chapter 5 of Machine Learning Yearning and introduces some basic concepts and methods of machine learning. Supervised Learning This article mainly discusses supervised learning algorithms. First, let’s introduce some basic concepts: Training Set: The dataset used to train the model, containing input data (sample, $X$) and corresponding labels ($y$). Sample: Each data point in the training set, usually represented as a vector $x^{(i)}$, where $i$ is the sample index. Test Set: The dataset used to evaluate model performance, containing unseen input data and corresponding labels. Input: The input data to the model, usually represented as a vector $x \in \mathbb{R}^n$, where $n$ is the input dimension. Output: The output result of the model, usually represented as a scalar $y$, which can be a continuous value (regression) or a discrete value (classification). Feature: Each dimension of the input data, represented as $x_1, x_2, \ldots, x_n$. Label: The true output value corresponding to the input data, generally represented as $y$. The main goal of supervised learning algorithms is to learn $P(y|x)$ from a training set, obtain a model to get an approximate value $\hat{P}(y|x)$, so that for new input $x$, the corresponding output $y$ can be predicted. ...

September 22, 2025

Deep Feedforward Neural Networks

Deep Feedforward Neural Networks This article is a study note for Chapter 6 of the book Deep Learning. Introduction Deep Feedforward Networks, also known as Multilayer Perceptrons (MLPs), are the most classic neural network models. From the perspective of graph theory, a deep feedforward network is a Directed Acyclic Graph (DAG), where each node represents a neuron and each edge represents a connection weight. The connections between nodes are directional, and information can only flow along the direction of the edges. Therefore, deep feedforward networks have no cycles or feedback connections. ...

September 22, 2025