<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Programming on Birdor Blog</title>
		<link>https://blog.birdor.com/categories/programming/</link>
		<description>Recent content in Programming on Birdor Blog</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Thu, 27 Nov 2025 20:27:00 +0800</lastBuildDate>
		
			<atom:link href="https://blog.birdor.com/categories/programming/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Python Beginner Handbook</title>
				<link>https://blog.birdor.com/python-beginner-handbook/</link>
				<pubDate>Thu, 27 Nov 2025 20:27:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-beginner-handbook/</guid>
				<description>&lt;p&gt;Python is simple to learn, expressive to write, and powerful enough to build systems of any scale — from automation scripts to backend APIs and machine learning pipelines.&lt;/p&gt;&#xA;&lt;p&gt;This handbook contains &lt;strong&gt;20 concise, developer-friendly chapters&lt;/strong&gt;, each focusing on practical understanding and working examples.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;chapter-1--what-is-python--why-it-matters&#34;&gt;Chapter 1 — What Is Python &amp;amp; Why It Matters&lt;/h2&gt;&#xA;&lt;p&gt;Python is a high-level, cross-platform, readable language created in 1991.&lt;br&gt;&#xA;Its design goals:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;readability&lt;/li&gt;&#xA;&lt;li&gt;developer productivity&lt;/li&gt;&#xA;&lt;li&gt;“batteries-included” standard library&lt;/li&gt;&#xA;&lt;li&gt;large ecosystem of packages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Python powers:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python vs Go vs Rust — A Calm, Developer-Focused Comparison</title>
				<link>https://blog.birdor.com/python-vs-go-vs-rust/</link>
				<pubDate>Thu, 27 Nov 2025 20:21:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-vs-go-vs-rust/</guid>
				<description>&lt;p&gt;A Calm, Developer-Focused Comparison&lt;/p&gt;&#xA;&lt;p&gt;Python, Go, and Rust are three of the most influential languages in modern software engineering.&lt;br&gt;&#xA;They represent &lt;strong&gt;three different philosophies&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; simplicity &amp;amp; productivity&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Go:&lt;/strong&gt; concurrency, cloud, and production reliability&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rust:&lt;/strong&gt; memory safety &amp;amp; high performance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This article provides a &lt;strong&gt;clear, concise, and practical Birdor-style comparison&lt;/strong&gt; to help you decide which language fits your next project.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-design-philosophy-what-each-language-values&#34;&gt;1. Design Philosophy: What Each Language Values&lt;/h2&gt;&#xA;&lt;h3 id=&#34;python--readable-expressive-productive&#34;&gt;Python — &lt;em&gt;Readable, expressive, productive&lt;/em&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Python prioritizes &lt;strong&gt;human time over machine time&lt;/strong&gt;.&lt;br&gt;&#xA;The design is optimized for:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua Deep Dive: Coroutines, State Machines, DSLs, and Game Scripting Architecture</title>
				<link>https://blog.birdor.com/lua-deep-dive/</link>
				<pubDate>Tue, 25 Nov 2025 19:21:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-deep-dive/</guid>
				<description>&lt;p&gt;Lua is not just a lightweight script language.&lt;br&gt;&#xA;It is a &lt;strong&gt;runtime toolbox&lt;/strong&gt; capable of building state machines, pipelines, schedulers, entity systems, and even domain-specific languages (DSLs).&lt;/p&gt;&#xA;&lt;p&gt;This deep dive focuses on &lt;strong&gt;production-level techniques&lt;/strong&gt; heavily used in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Game engines (Defold, Love2D, custom C/C++ engines)&lt;/li&gt;&#xA;&lt;li&gt;AI scripting&lt;/li&gt;&#xA;&lt;li&gt;UI scripting&lt;/li&gt;&#xA;&lt;li&gt;Simulation and animation&lt;/li&gt;&#xA;&lt;li&gt;Networking and asynchronous flows&lt;/li&gt;&#xA;&lt;li&gt;Configuration languages and DSLs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;1-coroutine-pipelines-the-real-power-of-lua&#34;&gt;1. Coroutine Pipelines (The Real Power of Lua)&lt;/h1&gt;&#xA;&lt;p&gt;Coroutines allow &lt;strong&gt;cooperative multitasking&lt;/strong&gt;, enabling sequential code that behaves like async flows.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lua Advanced: Metatables, Coroutines, and Powerful Patterns</title>
				<link>https://blog.birdor.com/lua-advanced/</link>
				<pubDate>Tue, 25 Nov 2025 19:20:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-advanced/</guid>
				<description>&lt;p&gt;Lua is simple on the surface, but extremely powerful underneath.&lt;br&gt;&#xA;This article explores &lt;strong&gt;metatables&lt;/strong&gt;, &lt;strong&gt;metamethods&lt;/strong&gt;, &lt;strong&gt;coroutines&lt;/strong&gt;, advanced &lt;strong&gt;module design&lt;/strong&gt;, and a set of practical patterns used in games, tools, and embedded systems.&lt;/p&gt;&#xA;&lt;p&gt;All examples are fully runnable with standard Lua 5.3/5.4.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-metatables-luas-custom-behavior-engine&#34;&gt;1. Metatables: Lua’s Custom Behavior Engine&lt;/h2&gt;&#xA;&lt;p&gt;Metatables let you customize how tables behave—similar to operator overloading, custom indexing, inheritance, and more.&lt;/p&gt;&#xA;&lt;h3 id=&#34;11-basic-example-__index-fallback&#34;&gt;1.1 Basic Example: __index Fallback&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;defaults&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;player&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;setmetatable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;__index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;defaults&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player.hp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- 100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;player.mp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- 50&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Explanation:&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Practical Introduction to Lua (Beginner Friendly)</title>
				<link>https://blog.birdor.com/lua-introduction/</link>
				<pubDate>Tue, 25 Nov 2025 19:16:00 +0800</pubDate>
				<guid>https://blog.birdor.com/lua-introduction/</guid>
				<description>&lt;p&gt;Lua is a lightweight, embeddable scripting language widely used in game engines (Defold, Roblox, Corona), configuration systems, automation tools, and embedded platforms.&lt;/p&gt;&#xA;&lt;p&gt;This article gives you a &lt;strong&gt;clean, beginner-friendly introduction&lt;/strong&gt; with &lt;strong&gt;complete and runnable examples&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-setting-up-and-running-lua&#34;&gt;1. Setting Up and Running Lua&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-lua&#34;&gt;Install Lua&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install lua&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Linux (Ubuntu/Debian)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install lua5.4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;br&gt;&#xA;Download binaries or use Lua for Windows.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;run-a-script&#34;&gt;Run a Script&lt;/h3&gt;&#xA;&lt;p&gt;Write &lt;code&gt;hello.lua&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello, Lua!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run:&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Calm &amp; Complete Introduction to Python</title>
				<link>https://blog.birdor.com/python-introduction/</link>
				<pubDate>Thu, 20 Nov 2025 20:15:00 +0800</pubDate>
				<guid>https://blog.birdor.com/python-introduction/</guid>
				<description>&lt;p&gt;Python is one of the most widely used programming languages today — simple enough for beginners, powerful enough for companies like Google, Instagram, Spotify, and NASA.&lt;/p&gt;&#xA;&lt;p&gt;This article provides a calm, friendly, and practical introduction to Python in the Birdor style: concise, structured, and useful.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-python&#34;&gt;What Is Python?&lt;/h2&gt;&#xA;&lt;p&gt;Python is a &lt;strong&gt;high-level, general-purpose programming language&lt;/strong&gt; created by Guido van Rossum and released in 1991.&lt;br&gt;&#xA;It was designed with a clear goal:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern Front-End Trends, Part 3: TypeScript as the Universal Web Language</title>
				<link>https://blog.birdor.com/modern-frontend-trends-part-3-typescript/</link>
				<pubDate>Wed, 19 Nov 2025 23:46:00 +0800</pubDate>
				<guid>https://blog.birdor.com/modern-frontend-trends-part-3-typescript/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;TypeScript has quietly become the &lt;strong&gt;default language of the web&lt;/strong&gt;.&lt;br&gt;&#xA;In startups and enterprises alike, it is now difficult to find a serious front-end codebase that hasn’t adopted TypeScript—or is not actively migrating toward it.&lt;/p&gt;&#xA;&lt;p&gt;The reasons are straightforward but profound:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;safer refactoring&lt;/li&gt;&#xA;&lt;li&gt;better IDE support&lt;/li&gt;&#xA;&lt;li&gt;clearer API contracts&lt;/li&gt;&#xA;&lt;li&gt;more predictable runtime behaviour&lt;/li&gt;&#xA;&lt;li&gt;fewer production bugs&lt;/li&gt;&#xA;&lt;li&gt;far better collaboration in teams&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;What started as a “typed superset of JavaScript” has evolved into the &lt;strong&gt;principal foundation for modern front-end development&lt;/strong&gt;, especially in frameworks like:&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
