
		<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
			<channel>
				<title>Rui Tao&#39;s Portfolio – MS Student in ECE @ UW</title>
				<link>https://ruit.me/blog</link>
				<description>MS Student in Electrical and Computer Engineering at University of Washington, with experience in Full-Stack Development, Game Development, and AI.</description>
				<language>en-us</language>
				<managingEditor>realruitao@gmail.com (Rui Tao)</managingEditor>
				<webMaster>realruitao@gmail.com (Rui Tao)</webMaster>
				<lastBuildDate>Mon, 30 Jun 2025 00:00:00 GMT</lastBuildDate>
				<atom:link href="https://ruit.me/feed.xml" rel="self" type="application/rss+xml"/>
				
		<item>
			<guid>https://ruit.me/blog/uw-internship-upass-iship-refund-guide</guid>
			<title>实习UPASS和ISHIP退费经验分享 | UW Internship UPASS and ISHIP Refund Guide</title>
			<link>https://ruit.me/blog/uw-internship-upass-iship-refund-guide</link>
			<description>很多同学咨询我关于实习UPASS和ISHIP退费的问题，分享一下我的经验和具体操作流程</description>
			<pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>UW</category><category>Internship</category><category>UPASS</category><category>ISHIP</category><category>Experience</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/high-precision-qa-system-architecture-analysis</guid>
			<title>高精度知识问答系统架构方案分析</title>
			<link>https://ruit.me/blog/high-precision-qa-system-architecture-analysis</link>
			<description>全面分析不同类型的高精度知识问答系统架构，包括传统RAG、摘要增强RAG、知识图谱、多轮检索与推理以及大模型内置知识等方案的优缺点与适用场景。</description>
			<pubDate>Fri, 18 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>rag</category><category>llm</category><category>knowledge-qa</category><category>ai</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/web-stack</guid>
			<title>Building a Modern Web Stack with Nginx, Supabase, and Vercel Edge Functions</title>
			<link>https://ruit.me/blog/web-stack</link>
			<description>A detailed walkthrough of setting up a secure and scalable full-stack project using Nginx for static serving and reverse proxy, Supabase as a backend service, and Vercel Edge Functions for fast, distributed logic.</description>
			<pubDate>Sun, 13 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nginx</category><category>supabase</category><category>nextjs</category><category>vercel</category><category>edge-functions</category><category>cloudflare</category><category>cors</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/python-list-cheatsheet</guid>
			<title>Python 列表构造与常见陷阱</title>
			<link>https://ruit.me/blog/python-list-cheatsheet</link>
			<description>一份全面的 Python 列表构造指南，包含初始化、拷贝、陷阱和推荐表达方式，专为面试和日常编程设计</description>
			<pubDate>Fri, 11 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>Python</category><category>Programming</category><category>Interview</category><category>Cheatsheet</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/word-ladder</guid>
			<title>Understanding the Word Ladder Problem</title>
			<link>https://ruit.me/blog/word-ladder</link>
			<description>A comprehensive guide to solving the Word Ladder problem with four different approaches, including Bidirectional BFS</description>
			<pubDate>Fri, 11 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>Algorithm</category><category>BFS</category><category>Graph</category><category>LeetCode</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/mcp-fullstack</guid>
			<title>将 Model Context Protocol 与 Cursor IDE 结合：增强全栈开发、测试与 CI/CD 流程</title>
			<link>https://ruit.me/blog/mcp-fullstack</link>
			<description>探讨 Model Context Protocol (MCP) 如何与 Cursor IDE 结合，提升全栈开发、测试与 CI/CD 流程的效率和质量</description>
			<pubDate>Thu, 10 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>MCP</category><category>Cursor</category><category>AI</category><category>Development</category><category>CI/CD</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/mocki</guid>
			<title>MOCKI – AI-Powered Mock Interview Platform / MOCKI – AI 驱动的模拟面试平台</title>
			<link>https://ruit.me/blog/mocki</link>
			<description>MOCKI – AI-Powered Mock Interview Platform / MOCKI – AI 驱动的模拟面试平台</description>
			<pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>MOCKI</category><category>RAG</category><category>Agent</category><category>LLM</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/pmp</guid>
			<title>华盛顿大学 PMP 项目：全面学习指南与经验分享</title>
			<link>https://ruit.me/blog/pmp</link>
			<description>华盛顿大学 PMP 项目：全面学习指南与经验分享</description>
			<pubDate>Thu, 03 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>UW</category><category>PMP</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/cursor-mcp-ai-powered-programming-revolution</guid>
			<title>Cursor MCP: AI-Powered Programming Revolution</title>
			<link>https://ruit.me/blog/cursor-mcp-ai-powered-programming-revolution</link>
			<description>Explore how Model Context Protocol (MCP) integration with Cursor is transforming software development with AI-powered capabilities like deep reasoning, information retrieval, and automated testing.</description>
			<pubDate>Wed, 02 Apr 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>ai</category><category>programming</category><category>cursor</category><category>mcp</category><category>developer-tools</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/optimizing-frontend-performance-eliminating-react-jitter</guid>
			<title>优化前端渲染性能：消除 React 组件抖动现象</title>
			<link>https://ruit.me/blog/optimizing-frontend-performance-eliminating-react-jitter</link>
			<description>分享如何通过优化技术解决React应用中的组件抖动问题，提高用户体验和界面稳定性。</description>
			<pubDate>Sat, 29 Mar 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>performance</category><category>optimization</category><category>frontend</category><category>user-experience</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-fair-team-rotation-system-thursday-treating-calendar</guid>
			<title>A Fair Team Rotation System </title>
			<link>https://ruit.me/blog/building-fair-team-rotation-system-thursday-treating-calendar</link>
			<description>分享如何设计和实现一个公平的团队轮值系统，解决团队请客安排的公平性问题，包括核心的hostOffset机制设计和实现细节。</description>
			<pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>typescript</category><category>zustand</category><category>supabase</category><category>edge-functions</category><category>tailwind-css</category><category>project-sharing</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/todo-system-integration-documentation</guid>
			<title>TODO System Integration with Ewith Email Analysis</title>
			<link>https://ruit.me/blog/todo-system-integration-documentation</link>
			<description>A comprehensive documentation of the TODO system integration with email analysis, covering system architecture, implementation details, and best practices for managing interview-related tasks.</description>
			<pubDate>Wed, 26 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>system-design</category><category>architecture</category><category>todo</category><category>email-analysis</category><category>integration</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/intelligent-company-name-unification-using-semantic-similarity</guid>
			<title>Intelligent Company Name Unification Using Semantic Similarity</title>
			<link>https://ruit.me/blog/intelligent-company-name-unification-using-semantic-similarity</link>
			<description>A detailed exploration of implementing an intelligent company name unification system using semantic similarity, featuring OpenAI embeddings and a two-tier caching system for 95x performance improvement.</description>
			<pubDate>Tue, 25 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>ai</category><category>nlp</category><category>semantic-similarity</category><category>performance</category><category>caching</category><category>mongodb</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/multi-agent-chatbot-project-documentation</guid>
			<title>Multi-Agent Chatbot Project Documentation</title>
			<link>https://ruit.me/blog/multi-agent-chatbot-project-documentation</link>
			<description>A comprehensive documentation of a multi-agent chatbot project, exploring system architecture, implementation challenges, and insights gained from building a complex AI system with limited API calls.</description>
			<pubDate>Sun, 23 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>ai</category><category>chatbot</category><category>system-design</category><category>architecture</category><category>llm</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-valentines-day-page-creator</guid>
			<title>Building a Valentine&#39;s Day Page Creator with Next.js</title>
			<link>https://ruit.me/blog/building-valentines-day-page-creator</link>
			<description>A technical deep dive into building a Valentine&#39;s Day page creator that allows users to create personalized pages with custom games and messages.</description>
			<pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nextjs</category><category>typescript</category><category>game-development</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/cpp-auto-keyword-convenience-or-readability-killer</guid>
			<title>C++ `auto` Keyword: Convenience or Readability Killer?</title>
			<link>https://ruit.me/blog/cpp-auto-keyword-convenience-or-readability-killer</link>
			<description>A deep dive into the C++ auto keyword, exploring its benefits and potential pitfalls. Learn when to use it effectively and when to avoid it for better code readability.</description>
			<pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>cpp</category><category>programming</category><category>best-practices</category><category>code-style</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/creating-valentines-day-special-page-with-nextjs</guid>
			<title>Creating a Valentine&#39;s Day Special Page with Next.js and Framer Motion</title>
			<link>https://ruit.me/blog/creating-valentines-day-special-page-with-nextjs</link>
			<description>A comprehensive guide on creating an interactive Valentine&#39;s Day special page using Next.js, Framer Motion, and TypeScript, featuring a mini-game and gift redemption system.</description>
			<pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>next.js</category><category>react</category><category>typescript</category><category>framer-motion</category><category>game-development</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/cpp-erase-function-comprehensive-guide</guid>
			<title>C++ Erase Function Comprehensive Guide</title>
			<link>https://ruit.me/blog/cpp-erase-function-comprehensive-guide</link>
			<description>A comprehensive guide to understanding and effectively using the erase function in C++, covering various container types, common idioms, and best practices for optimal performance.</description>
			<pubDate>Thu, 13 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>cpp</category><category>programming</category><category>algorithms</category><category>data-structures</category><category>performance</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/monotonic-stack-understanding-right-and-left-closest-greater</guid>
			<title>Monotonic Stack: Understanding RightClosestGreater and LeftClosestGreaterOrEqual</title>
			<link>https://ruit.me/blog/monotonic-stack-understanding-right-and-left-closest-greater</link>
			<description>A comprehensive guide to understanding and implementing monotonic stack for solving RightClosestGreater and LeftClosestGreaterOrEqual problems, with detailed explanations and Python implementation.</description>
			<pubDate>Thu, 13 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>algorithms</category><category>data-structures</category><category>python</category><category>stack</category><category>programming</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/implementing-email-analysis-with-google-oauth</guid>
			<title>Implementing Email Analysis with Google OAuth Integration</title>
			<link>https://ruit.me/blog/implementing-email-analysis-with-google-oauth</link>
			<description>A comprehensive guide to implementing email analysis features using Google OAuth for authentication and GPT4O MINI for content analysis, focusing on architecture, security, and performance optimization.</description>
			<pubDate>Tue, 04 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>oauth</category><category>gmail-api</category><category>system-design</category><category>typescript</category><category>python</category><category>architecture</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/mongodb-integration-for-token-management</guid>
			<title>MongoDB Integration for Token Management and Email Analysis Caching</title>
			<link>https://ruit.me/blog/mongodb-integration-for-token-management</link>
			<description>A detailed exploration of MongoDB integration for token management and email analysis caching, focusing on database structure, performance optimization, and security considerations.</description>
			<pubDate>Tue, 04 Feb 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>mongodb</category><category>database</category><category>caching</category><category>performance</category><category>system-design</category><category>architecture</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/deploying-deepseek-r1-locally</guid>
			<title>Deploying DeepSeek R1 32B Model Locally with LM Studio</title>
			<link>https://ruit.me/blog/deploying-deepseek-r1-locally</link>
			<description>A comprehensive guide to deploying the DeepSeek R1 32B model locally using LM Studio, optimized for high-performance systems with NVIDIA RTX graphics cards.</description>
			<pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>ai</category><category>machine-learning</category><category>deployment</category><category>local-llm</category><category>deepseek</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/comprehensive-guide-to-react-app-internationalization</guid>
			<title>A Comprehensive Guide to React Application Internationalization</title>
			<link>https://ruit.me/blog/comprehensive-guide-to-react-app-internationalization</link>
			<description>A detailed guide on implementing internationalization in a React application, covering translation file structure, component updates, best practices, and practical implementation steps.</description>
			<pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>i18n</category><category>internationalization</category><category>frontend</category><category>typescript</category><category>web-development</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-modern-saas-platform-technical-decisions</guid>
			<title>Building a Modern SaaS Platform: Key Technical Decisions and Architecture</title>
			<link>https://ruit.me/blog/building-modern-saas-platform-technical-decisions</link>
			<description>A comprehensive guide to the technical decisions and architecture considerations when building a modern SaaS platform, including storage solutions, authentication, real-time communication, and deployment strategies.</description>
			<pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>cloud</category><category>saas</category><category>webrtc</category><category>mongodb</category><category>microservices</category><category>real-time</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/socket-io-real-time-chat</guid>
			<title>Socket.IO Real-time Chat Implementation</title>
			<link>https://ruit.me/blog/socket-io-real-time-chat</link>
			<description>A complete example of implementing real-time chat using Socket.IO with TypeScript, including both server and client implementations.</description>
			<pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>socket.io</category><category>typescript</category><category>real-time</category><category>chat</category><category>nestjs</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/webrtc-video-chat-setup</guid>
			<title>WebRTC Video Chat Setup</title>
			<link>https://ruit.me/blog/webrtc-video-chat-setup</link>
			<description>A complete example of setting up WebRTC video chat with TypeScript, including peer connection, media streams, and signaling.</description>
			<pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>webrtc</category><category>typescript</category><category>video-chat</category><category>real-time</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-high-performance-ai-service-with-websocket-and-async-python</guid>
			<title>Building a High-Performance AI Service with WebSocket and Async Python</title>
			<link>https://ruit.me/blog/building-high-performance-ai-service-with-websocket-and-async-python</link>
			<description>A deep dive into building a scalable AI service using WebSocket, async Python, and processor pools. Learn how to handle concurrent requests, manage resources efficiently, and implement stream responses.</description>
			<pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>python</category><category>websocket</category><category>async</category><category>ai</category><category>performance</category><category>architecture</category><category>concurrency</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/speech-recognition-service-implementation</guid>
			<title>Implementing a Scalable Speech Recognition Service</title>
			<link>https://ruit.me/blog/speech-recognition-service-implementation</link>
			<description>A complete implementation of a speech recognition service with TypeScript and NestJS, including WebSocket handling, error recovery, and multiple provider support.</description>
			<pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>typescript</category><category>websocket</category><category>speech-recognition</category><category>nestjs</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/nestjs-modular-architecture</guid>
			<title>Building Modular NestJS Applications</title>
			<link>https://ruit.me/blog/nestjs-modular-architecture</link>
			<description>A comprehensive guide to building modular NestJS applications using best practices, including module organization, dependency injection, and service design.</description>
			<pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nestjs</category><category>typescript</category><category>architecture</category><category>design-patterns</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/nestjs-websocket-gateway-implementation</guid>
			<title>Implementing WebSocket Gateways in NestJS</title>
			<link>https://ruit.me/blog/nestjs-websocket-gateway-implementation</link>
			<description>A complete guide to implementing WebSocket gateways in NestJS, including connection management, message handling, and error recovery.</description>
			<pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nestjs</category><category>typescript</category><category>websocket</category><category>real-time</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/ai-service-implementation</guid>
			<title>Implementing AI Service with WebSocket</title>
			<link>https://ruit.me/blog/ai-service-implementation</link>
			<description>A complete implementation of an AI Service using WebSocket, including request handling, response streaming, and error management.</description>
			<pubDate>Sun, 26 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nestjs</category><category>typescript</category><category>websocket</category><category>ai</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/mastering-zustand-state-management-in-react</guid>
			<title>Mastering Zustand State Management in React Applications</title>
			<link>https://ruit.me/blog/mastering-zustand-state-management-in-react</link>
			<description>A comprehensive guide to using Zustand for state management in React applications, covering different usage patterns, best practices, and performance optimization techniques.</description>
			<pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>state-management</category><category>zustand</category><category>typescript</category><category>performance</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/refactoring-state-management-for-modern-web-applications</guid>
			<title>Refactoring State Management for Modern Web Applications</title>
			<link>https://ruit.me/blog/refactoring-state-management-for-modern-web-applications</link>
			<description>A comprehensive guide to refactoring state management in modern web applications, focusing on implementing a stateless service layer and store-driven architecture.</description>
			<pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>state-management</category><category>typescript</category><category>react</category><category>refactoring</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/refactoring-speech-recognition-service</guid>
			<title>Refactoring Speech Recognition Service for Multi-client Support</title>
			<link>https://ruit.me/blog/refactoring-speech-recognition-service</link>
			<description>A comprehensive guide to refactoring a speech recognition service to handle multiple clients effectively, focusing on architecture improvements and best practices.</description>
			<pubDate>Sun, 19 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>speech-recognition</category><category>refactoring</category><category>python</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/advanced-signal-processing-pipeline</guid>
			<title>Designing Advanced Signal Processing Pipeline for Well Log Enhancement</title>
			<link>https://ruit.me/blog/advanced-signal-processing-pipeline</link>
			<description>A comprehensive guide to designing and implementing an advanced signal processing pipeline for well log enhancement, focusing on filter design, quality control, and performance optimization.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>signal-processing</category><category>machine-learning</category><category>data-analysis</category><category>python</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-ai-service-api-with-websocket</guid>
			<title>Building AI Service API with WebSocket</title>
			<link>https://ruit.me/blog/building-ai-service-api-with-websocket</link>
			<description>A comprehensive guide to building an AI service API using WebSocket, focusing on real-time communication, performance, and scalability.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>websocket</category><category>api</category><category>ai</category><category>typescript</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-modular-backend-system-with-nestjs</guid>
			<title>Building a Modular Backend System with NestJS</title>
			<link>https://ruit.me/blog/building-modular-backend-system-with-nestjs</link>
			<description>A comprehensive guide to building a modular and scalable backend system using NestJS, focusing on best practices and architectural patterns.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nestjs</category><category>backend</category><category>typescript</category><category>architecture</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-real-time-transcript-system</guid>
			<title>Building a Real-time Transcript System with WebSocket</title>
			<link>https://ruit.me/blog/building-real-time-transcript-system</link>
			<description>A comprehensive guide to building a real-time transcript system using WebSocket, focusing on architecture, performance, and reliability.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>websocket</category><category>typescript</category><category>real-time</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/building-scalable-real-time-speech-recognition-system</guid>
			<title>Building a Scalable Real-time Speech Recognition System</title>
			<link>https://ruit.me/blog/building-scalable-real-time-speech-recognition-system</link>
			<description>A comprehensive guide to designing and implementing a scalable real-time speech recognition system using WebSocket, TypeScript, and cloud speech recognition services.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>websocket</category><category>typescript</category><category>speech-recognition</category><category>real-time</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/deploying-modern-web-application-with-nginx-and-cloudflare</guid>
			<title>Deploying Modern Web Application with Nginx and Cloudflare</title>
			<link>https://ruit.me/blog/deploying-modern-web-application-with-nginx-and-cloudflare</link>
			<description>A comprehensive guide to deploying modern web applications using Nginx and Cloudflare, focusing on performance, security, and reliability.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>deployment</category><category>nginx</category><category>cloudflare</category><category>devops</category><category>web</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/deploying-web-app-with-nginx-and-cloudflare</guid>
			<title>Deploying Modern Web Application with Nginx and Cloudflare</title>
			<link>https://ruit.me/blog/deploying-web-app-with-nginx-and-cloudflare</link>
			<description>A comprehensive guide to deploying modern web applications using Nginx and Cloudflare, focusing on performance, security, and reliability.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>deployment</category><category>nginx</category><category>cloudflare</category><category>devops</category><category>web</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/designing-well-generator-system-architecture</guid>
			<title>Designing a Modern Well Generator System Architecture</title>
			<link>https://ruit.me/blog/designing-well-generator-system-architecture</link>
			<description>A comprehensive guide to designing a modern well generator system architecture, focusing on system components, technical innovations, and performance optimizations.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>system-design</category><category>well-generator</category><category>python</category><category>performance</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/high-performance-parallel-processing-system</guid>
			<title>Building a High-Performance Parallel Processing System for Well Data Analysis</title>
			<link>https://ruit.me/blog/high-performance-parallel-processing-system</link>
			<description>A comprehensive guide to designing and implementing a high-performance parallel processing system for well data analysis, focusing on architecture, process management, and performance optimization.</description>
			<pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>architecture</category><category>parallel-processing</category><category>performance</category><category>python</category><category>system-design</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/comprehensive-brand-identity-guidelines-for-modern-applications</guid>
			<title>Comprehensive Brand Identity Guidelines for Modern Applications</title>
			<link>https://ruit.me/blog/comprehensive-brand-identity-guidelines-for-modern-applications</link>
			<description>A comprehensive guide to creating and maintaining brand identity guidelines for modern applications, focusing on consistency, accessibility, and user experience.</description>
			<pubDate>Thu, 16 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>design</category><category>branding</category><category>guidelines</category><category>ui-ux</category><category>style-guide</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/deployment-configuration-and-scripts</guid>
			<title>Modern Web Application Deployment Setup</title>
			<link>https://ruit.me/blog/deployment-configuration-and-scripts</link>
			<description>A collection of configuration files and deployment scripts for setting up a modern web application with Nginx, Cloudflare Tunnel, and automated deployment.</description>
			<pubDate>Thu, 16 Jan 2025 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>deployment</category><category>nginx</category><category>cloudflare</category><category>bash</category><category>devops</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/fetch-goodreads-user-books-data</guid>
			<title>Scraping and parsing Goodreads user books data in Node.js</title>
			<link>https://ruit.me/blog/fetch-goodreads-user-books-data</link>
			<description>Scraping Goodreads books data from user&#39;s RSS feed and parse to JSON in Node.js</description>
			<pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>goodreads</category><category>scraping</category><category>rss</category><category>rss-parser</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/connecting-to-github-using-ssh</guid>
			<title>Enhance Github security by connecting using Secure Shell Protocol (SSH)</title>
			<link>https://ruit.me/blog/connecting-to-github-using-ssh</link>
			<description>Using the SSH protocol, you can connect and authenticate to remote Github servers and services without supplying your username and personal access token at each visit.</description>
			<pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>github</category><category>ssh</category><category>security</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/how-to-create-an-image-with-blurry-loading-effect-in-nextjs</guid>
			<title>How to create an image with blurry loading effect in NextJS</title>
			<link>https://ruit.me/blog/how-to-create-an-image-with-blurry-loading-effect-in-nextjs</link>
			<description>NextJS has provided a built-in image component that has many useful features, we can leverage them with some custom styles to create a beautiful image with a blurry loading effect.</description>
			<pubDate>Sat, 12 Oct 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nextjs</category><category>image</category><category>blur</category><category>loading</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/pnpm-aliases</guid>
			<title>Pnpm aliases</title>
			<link>https://ruit.me/blog/pnpm-aliases</link>
			<description>How to install and update pnpm, create a shell alias for it, and upgrade project dependencies efficiently.</description>
			<pubDate>Fri, 11 Oct 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>pnpm</category><category>aliases</category><category>.zprofile</category><category>.bash_profile</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/vscode-settings</guid>
			<title>VSCode settings and keyboard shortcuts</title>
			<link>https://ruit.me/blog/vscode-settings</link>
			<description>My personal VSCode configurations, settings, and key bindings that I use across all my devices.</description>
			<pubDate>Fri, 11 Oct 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>vscode</category><category>settings</category><category>keybindings</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/on-tailwind-css-arbitrary-values</guid>
			<title>On Tailwind CSS arbitrary values</title>
			<link>https://ruit.me/blog/on-tailwind-css-arbitrary-values</link>
			<description>How to use arbitrary values in Tailwind CSS to create custom styles for your components. Some nice tips to make your Tailwind CSS workflow more efficient.</description>
			<pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>tailwind-css</category><category>arbitrary-values</category><category>custom-styles</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/npm-commands</guid>
			<title>Common npm commands to use locally</title>
			<link>https://ruit.me/blog/npm-commands</link>
			<description>Essential npm commands for local development, covering package installation, version control, and script management.</description>
			<pubDate>Tue, 26 Sep 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>npm</category><category>commands</category><category>npx</category><category>link</category><category>unlink</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/does-promise-all-run-in-parallel-or-sequential</guid>
			<title>Does JavaScript Promise.all() run in parallel or sequential?</title>
			<link>https://ruit.me/blog/does-promise-all-run-in-parallel-or-sequential</link>
			<description>JavaScript is a single-threaded programming language, so it can&#39;t run multiple things at the same time, Promise.all() actually runs promises concurrently, not in parallel!. Let&#39;s dive in to see how it works.</description>
			<pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>promise</category><category>parallel</category><category>sequential</category><category>concurrently</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/remixing-remix-submission</guid>
			<title>Simple way to handle route submission in a Remix app</title>
			<link>https://ruit.me/blog/remixing-remix-submission</link>
			<description>Create a custom hook to manage in-route form submissions in a Remix app.</description>
			<pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>remix</category><category>remix-utils</category><category>submission</category><category>hooks</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/verify-github-webhooks-requests</guid>
			<title>Verifying Github webhooks requests in Node.js</title>
			<link>https://ruit.me/blog/verify-github-webhooks-requests</link>
			<description>Verify and process incoming GitHub webhooks. How to set up listeners, validate requests, and handle Github&#39;s webhook events.</description>
			<pubDate>Sun, 09 Jul 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>github</category><category>webhook</category><category>github-api</category><category>verify-webhook-signature</category><category>remix</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/using-spotify-api-to-display-currently-playing-track</guid>
			<title>How to work with Spotify&#39;s API to display currently playing track on a website?</title>
			<link>https://ruit.me/blog/using-spotify-api-to-display-currently-playing-track</link>
			<description>Retrieve a Spotify access token to display the currently playing track on your website or application.</description>
			<pubDate>Thu, 06 Apr 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>spotify</category><category>nowplaying</category><category>spotify-api</category><category>nextjs</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/casing-utils</guid>
			<title>String casing utilities in JavaScript</title>
			<link>https://ruit.me/blog/casing-utils</link>
			<description>A various ready-to-use string casing utilities in Typescript.</description>
			<pubDate>Tue, 21 Feb 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>typescript</category><category>string</category><category>casing</category><category>utilities</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/introduction-to-committing-with-conventional-commit</guid>
			<title>Introduction to Committing with Conventional Commit</title>
			<link>https://ruit.me/blog/introduction-to-committing-with-conventional-commit</link>
			<description>Conventional commit is a specific form of committing which gives software developers a uniform system for organizing and describing their changes, making it easier to keep track of updates</description>
			<pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>commit</category><category>git</category><category>conventional-commit</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/better-responsive-image-with-srcset-and-sizes-attributes</guid>
			<title>Better responsive images with srcset and sizes attributes</title>
			<link>https://ruit.me/blog/better-responsive-image-with-srcset-and-sizes-attributes</link>
			<description>A guide to using the srcset and sizes attributes to create responsive images</description>
			<pubDate>Tue, 25 Oct 2022 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>responsive</category><category>image</category><category>srcset</category><category>sizes</category><category>html</category><category>attributes</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/rename-a-case-sensitive-file-in-a-git-repo</guid>
			<title>How to safely rename a case sensitive file/directory in a git repo?</title>
			<link>https://ruit.me/blog/rename-a-case-sensitive-file-in-a-git-repo</link>
			<description>Safely rename case-sensitive files or directories in a Git repository to avoid conflicts or case inconsistencies.</description>
			<pubDate>Tue, 11 Oct 2022 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>git</category><category>rename</category><category>case-sensitive</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/remove-falsy-values-from-an-object</guid>
			<title>Remove all falsy values from an object and its nested children</title>
			<link>https://ruit.me/blog/remove-falsy-values-from-an-object</link>
			<description>Recursively removes all falsy values (null, undefined, 0, false) from an object and its nested properties.</description>
			<pubDate>Wed, 21 Sep 2022 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>utils</category><category>object</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/use-async</guid>
			<title>A custom hooks to use an async effect</title>
			<link>https://ruit.me/blog/use-async</link>
			<description>Build a custom React hook to use asynchronous effects inside functional components.</description>
			<pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>hooks</category><category>async</category><category>effect</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/color-validator</guid>
			<title>Validate if a string is a valid color</title>
			<link>https://ruit.me/blog/color-validator</link>
			<description>Validate strings to ensure they represent valid colors in various formats (hex, RGB, and named colors).</description>
			<pubDate>Tue, 12 Oct 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>typescript</category><category>color</category><category>validator</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/shopify-section-rendering-apis-notes</guid>
			<title>Mastering Section Rendering APIs in Shopify Online Store 2.0</title>
			<link>https://ruit.me/blog/shopify-section-rendering-apis-notes</link>
			<description>Learn how to leverage Section Rendering APIs to improve your Shopify store&#39;s performance and create dynamic, context-specific sections. Discover tips for querying dynamic section markup, including product and collection context</description>
			<pubDate>Thu, 23 Sep 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>shopify</category><category>section</category><category>section-rendering-apis</category><category>key-notes</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/find-and-kill-process-on-given-port-in-macos</guid>
			<title>Find which process is running on a certain port and kill it</title>
			<link>https://ruit.me/blog/find-and-kill-process-on-given-port-in-macos</link>
			<description>Identify and terminate processes running on a specific port in your dev environment.</description>
			<pubDate>Thu, 09 Sep 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>bash</category><category>macos</category><category>kill</category><category>process</category><category>port</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/markdown-code-block-syntax</guid>
			<title>Markdown Code block&#39;s basic and advanced syntaxes</title>
			<link>https://ruit.me/blog/markdown-code-block-syntax</link>
			<description>A detailed overview of Markdown code block syntaxes, covering both basic and advanced use cases.</description>
			<pubDate>Thu, 09 Sep 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>markdown</category><category>code-block</category><category>syntax</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/event-emitter</guid>
			<title>Simple Event-Emitter/PubSub pattern</title>
			<link>https://ruit.me/blog/event-emitter</link>
			<description>A lightweight pub/sub mechanism to handle custom events without adding a full-blown library.</description>
			<pubDate>Mon, 06 Sep 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>pattern</category><category>event-emitter</category><category>pubsub</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/manipulating-dates-in-shopify-liquid</guid>
			<title>Adding/substracting days in Shopify&#39;s Liquid template language</title>
			<link>https://ruit.me/blog/manipulating-dates-in-shopify-liquid</link>
			<description>How to manipulate dates (adding, subtracting, and formatting, etc) in Shopify&#39;s Liquid template language.</description>
			<pubDate>Sun, 29 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>liquid</category><category>shopify</category><category>date</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/read-all-file-names-inside-a-folder</guid>
			<title>Read all file names in a directory</title>
			<link>https://ruit.me/blog/read-all-file-names-inside-a-folder</link>
			<description>A quick utility to read all file names in a directory using Node.js.</description>
			<pubDate>Sat, 28 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>bash</category><category>shell</category><category>script</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/gitignore-ignore-directory-keep-1-file</guid>
			<title>Ignore all files in a directory except a specific file</title>
			<link>https://ruit.me/blog/gitignore-ignore-directory-keep-1-file</link>
			<description>How to ignore all files in a directory except for a specific one.</description>
			<pubDate>Fri, 27 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>git</category><category>gitignore</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/sync-react-component-state-with-local-storage</guid>
			<title>Synchronize React component state with local storage</title>
			<link>https://ruit.me/blog/sync-react-component-state-with-local-storage</link>
			<description>Utilize a custom hook that syncs state with local storage, allowing for persistent state between sessions.</description>
			<pubDate>Fri, 27 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>react</category><category>state</category><category>hooks</category><category>local-storage</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/prevent-layout-shift-while-show-hide-scrollbar-on-window</guid>
			<title>Prevent layout shift when toggling scrollbar on Window</title>
			<link>https://ruit.me/blog/prevent-layout-shift-while-show-hide-scrollbar-on-window</link>
			<description>When toggling the scrollbar on the Window, the layout shifts. This is because the scrollbar is added to the Window. How to prevent this with CSS?</description>
			<pubDate>Mon, 16 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>css</category><category>tricks</category><category>layout-shift</category><category>scrollbar</category><category>window</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/key-notes-while-working-with-git</guid>
			<title>Key notes while working with git</title>
			<link>https://ruit.me/blog/key-notes-while-working-with-git</link>
			<description>Key notes to save plenty of time while working with git for command-line-developer</description>
			<pubDate>Thu, 12 Aug 2021 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>git</category><category>git-notes</category><category>git-alias</category><category>git-workflows</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/tricky-use-case-of-array-map-in-js</guid>
			<title>Tricky use case of Array.prototype.map in JS</title>
			<link>https://ruit.me/blog/tricky-use-case-of-array-map-in-js</link>
			<description>If you are familiar with functional programming, Array.prototype.map must be a function that you work with every day. We encountered a tricky use case of it at Cốc Cốc recently, it took me a while to figure out, and here&#39;s the answer...</description>
			<pubDate>Tue, 22 Sep 2020 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>array</category><category>map</category><category>functional-programming</category><category>use-cases</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/function-declaration-vs-function-expression-in-js</guid>
			<title>When to use Function Declaration vs Function Expression in JavaScript?</title>
			<link>https://ruit.me/blog/function-declaration-vs-function-expression-in-js</link>
			<description>Learn about the differences between Function Declaration and Function Expression in JavaScript, including their definitions, hoisting behavior, and when to use each method.</description>
			<pubDate>Thu, 17 Sep 2020 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>javascript</category><category>function</category><category>function-declaration</category><category>function-expression</category><category>anonymous-function</category><category>arrow-function</category><category>es5</category><category>es6</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/integrate-tailwind-css-with-react-application</guid>
			<title>Integrating Tailwind CSS into a React Application</title>
			<link>https://ruit.me/blog/integrate-tailwind-css-with-react-application</link>
			<description>Tailwind CSS is a low-level CSS framework that’s highly customizable. Unlike other frameworks that focus on pre-designed components like buttons, cards, or modals, which are easy to start with but hard to customize later, Tailwind lets you build your own designs from scratch using utility classes...</description>
			<pubDate>Mon, 31 Aug 2020 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>tailwind-css</category><category>react</category><category>postcss</category><category>integration</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/set-up-path-aliases-in-nodejs</guid>
			<title>Simplify your Node.js project with module aliases</title>
			<link>https://ruit.me/blog/set-up-path-aliases-in-nodejs</link>
			<description>Tired of dealing with complex file paths in your Node.js project? Learn how to set up module aliases using TypeScript and module-alias package to simplify your imports and improve your development experience.</description>
			<pubDate>Thu, 27 Aug 2020 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nodejs</category><category>typescript</category><category>javascript</category><category>alias</category><category>path-aliases</category><category>tsconfig</category>
		</item>
	
		<item>
			<guid>https://ruit.me/blog/nodejs-fetch-json-with-https</guid>
			<title>How to make HTTP requests in Node.js without installing external libraries</title>
			<link>https://ruit.me/blog/nodejs-fetch-json-with-https</link>
			<description>Learn how to make HTTP requests in Node.js without adding unnecessary dependencies to your project using the built-in https module. Follow these simple steps to easily fetch JSON data from external APIs and servers.</description>
			<pubDate>Tue, 18 Aug 2020 00:00:00 GMT</pubDate>
			<author>realruitao@gmail.com (Rui Tao)</author>
			<category>nodejs</category><category>request</category><category>json</category><category>https</category><category>built-in-module</category>
		</item>
	
			</channel>
		</rss>
	