A Lisp Adventure in the Dead Waters of C

2025-06-27

This article explores the power of Lisp's abstractions and the limitations of C, using a C-like language. The author analyzes function parameter evaluation strategies, highlighting how C's pass-by-value mechanism restricts control over function parameters, preventing the implementation of flexible conditional statements and loops like Lisp's if, while, and cond. The article further delves into advanced features like closures and runtime function creation, unavailable in C, ultimately concluding on C's shortcomings in extensibility.

Read more
Development

PhD Thesis: A Farcical Academic Misadventure

2025-04-29

A PhD student recounts a series of absurd and bizarre experiences during his doctoral studies in engineering science. From an absent advisor and lack of research equipment to plagiarism in academic papers, he witnesses the dark side of academia. Ultimately, he completes his studies in an almost farcical manner and escapes the stifling academic environment. This humorous account exposes some problems within academia, prompting reflection on academic integrity and the research environment.

Read more

Farewell to Endless Meetings: A New Approach to High-Velocity Software Development

2024-12-15

Tired of endless meetings and lengthy planning? This article introduces a high-efficiency software development method: code-centric, rapid iteration. The author uses baking as an example to illustrate the concept of achieving the optimal solution through rapid experimentation, frequent testing, and continuous improvement. This method emphasizes reducing documentation, expressing ideas directly in code, using mock data and hot-reloading tools to speed up development, and improving code readability through concise code style and naming conventions. The author advocates breaking down projects into independently executable files, minimizing restart time, and using default language tools for debugging. Although this method may seem like a "chaotic lab," it can efficiently complete projects and avoid the redundancy and inefficiency of traditional methods.

Read more