<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ideas on Changkun's Blog</title><link>https://changkun.de/blog/ideas/</link><description>Recent content in Ideas on Changkun's Blog</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><atom:link href="https://changkun.de/blog/ideas/index.xml" rel="self" type="application/rss+xml"/><item><title>The Paradox of Wall-Facers and Transparent Minds in the LLM Era</title><link>https://changkun.de/blog/ideas/wall-facer-transparency/</link><pubDate>Mon, 09 Mar 2026 16:43:55 +0000</pubDate><guid>https://changkun.de/blog/ideas/wall-facer-transparency/</guid><description>In the age of Large Language Models, we encounter an intriguing paradox: the classical figure of the &amp;ldquo;wall-facer&amp;rdquo; becomes increasingly impossible, while simultaneously, the very notion of &amp;ldquo;transparent thinking&amp;rdquo; takes on new meanings.
The Impossibility of Wall-Facing The wall-facer strategy, maintaining absolute secrecy and opacity to gain strategic advantage, presupposes information asymmetry. Yet LLMs operate on the principle of transparency and accessibility. Every interaction, every prompt, every response becomes data that feeds into the collective knowledge corpus.</description></item><item><title>Tradeoffs and Responsibility Chain Design in Human-Machine Closed Loops</title><link>https://changkun.de/blog/ideas/tradeoffs-responsibility-loops/</link><pubDate>Tue, 03 Mar 2026 21:18:43 +0000</pubDate><guid>https://changkun.de/blog/ideas/tradeoffs-responsibility-loops/</guid><description>Some interesting tradeoffs:
Autonomy vs. Steering Autonomy vs. Paternalistic control Delegate vs. Hands-on Automation vs. Interruption Levels of detail: Intent, Traces, Diff Optimal vs. Bounded rationality &amp;hellip; These are all unavoidable design tradeoffs in human-in-the-loop systems, and they carry philosophical implications rather than merely interface implications. In the LLM era, these tradeoffs play an equally central role in system design. Their persistence suggests that fully autonomous LLM systems will remain structurally fragile.</description></item><item><title>The Impact of Real-time Suggestions in Pair Coding on AI Agents</title><link>https://changkun.de/blog/ideas/pair-coding-suggestions/</link><pubDate>Sat, 28 Feb 2026 11:34:51 +0000</pubDate><guid>https://changkun.de/blog/ideas/pair-coding-suggestions/</guid><description>Last Friday, while pair coding with colleagues, I noticed an interesting pattern.
I was leading the deployment while several colleagues observed my actions. As I worked, they discussed and speculated about my intentions, then offered suggestions for alternative approaches. During this process, some suggestions were noise that interfered with my train of thought, while others actually proved helpful.
This sparked my curiosity: What would happen if we applied this dynamic to a YOLO-mode coding agent?</description></item><item><title>Psychology's Framework for AI Identity Construction</title><link>https://changkun.de/blog/ideas/psychology-ai-identity/</link><pubDate>Sun, 22 Feb 2026 09:23:15 +0000</pubDate><guid>https://changkun.de/blog/ideas/psychology-ai-identity/</guid><description>psychology solved the ai memory problem decades ago. we just haven&amp;rsquo;t been reading the right papers.
your identity isn&amp;rsquo;t something you have. it&amp;rsquo;s something you construct. constantly. from autobiographical memory, emotional experience, and narrative coherence.
Martin Conway&amp;rsquo;s Self-Memory System (2000, 2005) showed that memories aren&amp;rsquo;t stored like video recordings.
they&amp;rsquo;re reconstructed every time you access them, assembled from fragments across different neural systems. and the relationship is bidirectional: your memories constrain who you can plausibly be, but your current self-concept also reshapes how you remember.</description></item><item><title>Self-Reference Paradoxes and Self-Reference Mechanisms in Life Programs</title><link>https://changkun.de/blog/ideas/self-reference-paradoxes/</link><pubDate>Sun, 22 Feb 2026 08:45:49 +0000</pubDate><guid>https://changkun.de/blog/ideas/self-reference-paradoxes/</guid><description>Mathematics, when self-reference appears in its formal system, generates paradoxes. So why can life produce self-reference? Can programs implement self-reference? Can current large language models truly achieve self-reference?
The following content is generated by LLMs and may contain inaccuracies.
I will deeply explore the topic of self-reference paradoxes and self-referential mechanisms in life programs. Let me first search for relevant research and theoretical background. Let me continue searching for discussions on LLM&amp;rsquo;s true self-referential capabilities.</description></item><item><title>Repository Context Files May Reduce Coding Agent Performance</title><link>https://changkun.de/blog/ideas/context-files-coding-agents/</link><pubDate>Sun, 22 Feb 2026 08:25:40 +0000</pubDate><guid>https://changkun.de/blog/ideas/context-files-coding-agents/</guid><description>https://arxiv.org/abs/2602.11988
The following content is generated by LLMs and may contain inaccuracies.
I&amp;rsquo;ll help you create a structured deep dive on this research paper. Let me first fetch the full paper to examine its contents and then search for related work.Let me search for more information about related work on context in coding agents and the authors of this paper.Now let me search for more information about the benchmark dataset they created (AGENTbench).</description></item><item><title>Homecoming After a Decade: The Contrast Between External Changes and Inner Confusion</title><link>https://changkun.de/blog/ideas/homecoming-inner-confusion/</link><pubDate>Sun, 22 Feb 2026 07:14:58 +0000</pubDate><guid>https://changkun.de/blog/ideas/homecoming-inner-confusion/</guid><description>In the blink of an eye, a decade has passed since my undergraduate graduation. This year, for the first time since the pandemic, I returned home for the New Year and reunited with friends, relatives, and family. What struck me most was the stark contrast between the dramatic changes in the external world and the apparent stagnation in the people around me.
The external world has been transformed beyond recognition over these years.</description></item><item><title>All Ranked-Choice Voting Systems Are Manipulable</title><link>https://changkun.de/blog/ideas/ranked-choice-manipulation/</link><pubDate>Thu, 19 Feb 2026 07:04:24 +0000</pubDate><guid>https://changkun.de/blog/ideas/ranked-choice-manipulation/</guid><description>The Gibbard–Satterthwaite theorem states that every ranked-choice voting system is manipulable, except possibly in two cases: if there is a distinguished voter with dictatorial power, or if the rule limits possible outcomes to only two options.
https://en.wikipedia.org/wiki/Gibbard%E2%80%93Satterthwaite_theorem
The following content is generated by LLMs and may contain inaccuracies.
I&amp;rsquo;ll help you develop this idea about the Gibbard-Satterthwaite theorem. Let me first fetch the Wikipedia article you&amp;rsquo;ve linked, then search for additional research and context.</description></item><item><title>Multidisciplinary Definitions and Driving Mechanisms of Preference</title><link>https://changkun.de/blog/ideas/preference-mechanisms/</link><pubDate>Thu, 19 Feb 2026 06:40:06 +0000</pubDate><guid>https://changkun.de/blog/ideas/preference-mechanisms/</guid><description>Definition of Preference While some view the term &amp;ldquo;preference&amp;rdquo; as a rather subjective concept, this does not prevent various disciplines from conducting in-depth research on it. For example:
Computer Science: Preference is defined as a latent utility function, with its driving mechanism or objective function being reward maximization. This is based on the intuitive assumption that humans, as reward-sensitive organisms, tend to choose actions that yield greater rewards. Behavioral Economics: Defines preference as a construct within decision-making scenarios, driven by heuristic thinking and biased cognition (constrained by limited information at the time of decision-making).</description></item><item><title>Comprehensive Online Encyclopedia of Philosophical Knowledge</title><link>https://changkun.de/blog/ideas/philosophy-encyclopedia/</link><pubDate>Thu, 19 Feb 2026 06:22:27 +0000</pubDate><guid>https://changkun.de/blog/ideas/philosophy-encyclopedia/</guid><description>Stanford Encyclopedia of Philosophy
https://plato.stanford.edu/contents.html
The following content is generated by LLMs and may contain inaccuracies.
I&amp;rsquo;ll help you create a structured deep dive for this resource. Let me first fetch the linked content to better understand the Stanford Encyclopedia of Philosophy, then search for relevant context about its role in academic philosophy.Now let me search for information about the dynamic reference work model and peer review in philosophy encyclopedias.Based on my research, I now have sufficient information to create a structured deep dive for the Stanford Encyclopedia of Philosophy.</description></item><item><title>Understanding the Connection Between Moral Judgment and Action</title><link>https://changkun.de/blog/ideas/moral-judgment-action/</link><pubDate>Thu, 19 Feb 2026 04:48:06 +0000</pubDate><guid>https://changkun.de/blog/ideas/moral-judgment-action/</guid><description>In our everyday lives, we confront numerous moral issues. Once we have deliberated and formed judgments about what is right or wrong, good or bad, these judgments tend to exert a strong influence on us. Although we do not always behave as we think we ought, our moral judgments typically motivate us, at least to some degree, to act in accordance with them. When philosophers discuss moral motivation, they seek to understand this basic phenomenon.</description></item><item><title>Three Paradoxes of Knowledge and Belief</title><link>https://changkun.de/blog/ideas/knowledge-belief-paradoxes/</link><pubDate>Thu, 19 Feb 2026 04:03:17 +0000</pubDate><guid>https://changkun.de/blog/ideas/knowledge-belief-paradoxes/</guid><description>How can you believe in something you haven&amp;rsquo;t witnessed with your own eyes? Who sets the standard for evidence? If an experience cannot be replicated by a third party, is it still true? https://www.darioamodei.com/essay/the-adolescence-of-technology
The following content is generated by LLMs and may contain inaccuracies.
Three Paradoxes of Epistemic Belief Context
You have touched upon the core tensions of social epistemology and the epistemology of testimony. These questions inquire into the fractures between the sources of knowledge, the normativity of evidence, and the reproducibility of experience.</description></item><item><title>Unpredictable Emergence and Scaling in Large Language Models</title><link>https://changkun.de/blog/ideas/unpredictable-emergence-scaling/</link><pubDate>Thu, 19 Feb 2026 02:06:06 +0000</pubDate><guid>https://changkun.de/blog/ideas/unpredictable-emergence-scaling/</guid><description>LLM Emergence
Emergent Abilities of Large Language Models https://arxiv.org/abs/2206.07682 There is no such thing as conscious artificial intelligence https://www.nature.com/articles/s41599-025-05868-8 Provable Scaling Laws of Feature Emergence from Learning Dynamics of Grokking https://arxiv.org/abs/2509.21519 The following content is generated by LLMs and may contain inaccuracies.
Context This cluster of papers addresses a critical tension in AI research: the unpredictability of capability emergence in scaled language models. As LLMs grow larger, certain abilities appear discontinuously rather than smoothly—a phenomenon that challenges our ability to forecast AI system behavior and raises profound questions about consciousness, interpretability, and safety.</description></item><item><title>Machine Learning from Human Preferences and Active Learning</title><link>https://changkun.de/blog/ideas/ml-human-preferences/</link><pubDate>Thu, 19 Feb 2026 02:03:50 +0000</pubDate><guid>https://changkun.de/blog/ideas/ml-human-preferences/</guid><description>MLHP/RLHF Lectures
https://web.stanford.edu/class/cs329h/index.html https://mlhp.stanford.edu/ Multi-Objective Bayesian Optimization with Active Preference Learning https://arxiv.org/abs/2311.13460 Nearly Optimal Active Preference Learning and Its Application to LLM Alignment https://arxiv.org/abs/2602.01581 Personalized Building Climate Control with Contextual Preferential Bayesian Optimization https://arxiv.org/abs/2512.09481 Preference Elicitation and Query Learning https://www.cs.cmu.edu/~sandholm/pref_elicit_query_learning.jmlr04.pdf The following content is generated by LLMs and may contain inaccuracies.
Context Learning from human preferences has emerged as a critical bottleneck in deploying AI systems that genuinely serve human values.</description></item><item><title>Confirmation Fatigue and the Protocol Gap in Agentic AI Oversight</title><link>https://changkun.de/blog/ideas/human-in-the-loop-agents/</link><pubDate>Wed, 18 Feb 2026 16:49:25 +0000</pubDate><guid>https://changkun.de/blog/ideas/human-in-the-loop-agents/</guid><description>Per-tool-call human approval in agentic AI is solved in theory, unsolved in practice. Confirmation fatigue is not a UX annoyance but a security vulnerability and the primary obstacle to effective human oversight at scale. Risk-tiered frameworks, middleware architectures, and new design patterns now exist to replace the binary confirm/deny paradigm. But MCP provides no protocol-level mechanism for any of them, so every client reinvents the wheel.
Confirmation fatigue as a documented threat vector Rippling&amp;rsquo;s 2025 Agentic AI Security guide classifies &amp;ldquo;Overwhelming Human-in-the-Loop&amp;rdquo; as threat T10: adversaries flood reviewers with alerts to exploit cognitive overload.</description></item><item><title>Opinion Formation Through the Voter Model in Network Dynamics</title><link>https://changkun.de/blog/ideas/voter-model-dynamics/</link><pubDate>Tue, 17 Feb 2026 21:16:52 +0000</pubDate><guid>https://changkun.de/blog/ideas/voter-model-dynamics/</guid><description>The Voter Model
The voter model is a simple mathematical model of opinion formation in which voters are located at the nodes of a network. Each voter holds an opinion (in the simplest case, 0 or 1, but more generally, any of n options), and a randomly chosen voter adopts the opinion of one of its neighbors.
This model can be used to describe phase transition behavior in idealized physical systems and can produce a remarkable amount of structure emerging from seemingly &amp;ldquo;random&amp;rdquo; initial conditions.</description></item><item><title>Large Language Models as Optimization Tools</title><link>https://changkun.de/blog/ideas/llms-optimization-tools/</link><pubDate>Tue, 17 Feb 2026 21:15:28 +0000</pubDate><guid>https://changkun.de/blog/ideas/llms-optimization-tools/</guid><description>LLM as Optimizer:
Large Language Models as Optimizers https://arxiv.org/abs/2309.03409 When Large Language Models Meet Optimization https://www.sciencedirect.com/science/article/abs/pii/S2210650224002013?via%3Dihub Large Language Models to Enhance Bayesian Optimization https://arxiv.org/abs/2402.03921 Cooperative Design Optimization through Natural Language Interaction https://arxiv.org/abs/2508.16077 Language-Based Bayesian Optimization Research Assistant (BORA) https://arxiv.org/abs/2501.16224 LILO: Bayesian Optimization with Interactive Natural Language Feedback https://arxiv.org/abs/2510.17671 Bayesian Optimization of High-dimensional Outputs with Human Feedback https://openreview.net/pdf?id=2fHwkHskpo The following content is generated by LLMs and may contain inaccuracies.</description></item><item><title>Comprehensive LLM Courses and Lecture Collections</title><link>https://changkun.de/blog/ideas/llm-courses/</link><pubDate>Tue, 17 Feb 2026 20:35:49 +0000</pubDate><guid>https://changkun.de/blog/ideas/llm-courses/</guid><description>LLM Lectures
https://cmu-llms.org/schedule/ https://www.phontron.com/class/lminference-fall2025/schedule https://llmsystem.github.io/llmsystem2026spring/docs/Syllabus https://llmsystem.github.io/llmsystem2025spring/docs/Syllabus/ The following content is generated by LLMs and may contain inaccuracies.
Context
This collection addresses the growing need for structured educational resources in large language model (LLM) development and deployment. As LLMs transition from research artifacts to production systems, practitioners require deep understanding across the full stack—from GPU programming and transformer architecture to distributed training and inference optimization. These courses from CMU and related institutions represent the maturation of LLM education, bridging theoretical foundations with systems engineering concerns that arise at scale.</description></item><item><title>The Cost of Staying: Tech Career Timing</title><link>https://changkun.de/blog/ideas/tech-career-timing/</link><pubDate>Tue, 17 Feb 2026 19:57:20 +0000</pubDate><guid>https://changkun.de/blog/ideas/tech-career-timing/</guid><description>The Cost of Staying
by Amy Tam https://x.com/amytam01/status/2023593365401636896
Every technical person I know is doing the same math right now. They won&amp;rsquo;t call it that. They&amp;rsquo;ll say they&amp;rsquo;re &amp;ldquo;exploring options&amp;rdquo; or &amp;ldquo;thinking about what&amp;rsquo;s next.&amp;rdquo; But underneath, it&amp;rsquo;s the same calculation: how much is it costing me to stay where I am?
Not in dollars. In time. There&amp;rsquo;s a feeling in the air that the window for making the right move is shrinking—that every quarter you spend in the wrong seat, the gap between you and the people who moved earlier gets harder to close.</description></item><item><title>Guidelines for Reporting LLM-Integrated Systems in HCI Research</title><link>https://changkun.de/blog/ideas/llm-hci-reporting/</link><pubDate>Tue, 17 Feb 2026 19:54:22 +0000</pubDate><guid>https://changkun.de/blog/ideas/llm-hci-reporting/</guid><description>Useful resources:
https://huggingface.co/spaces/transformers-community/Transformers-tenets https://ianarawjo.github.io/Guidelines-for-Reporting-LLM-Integrated-Systems-in-HCI/ The following content is generated by LLMs and may contain inaccuracies.
Context
As LLM-integrated systems proliferate in HCI research, the field faces a reproducibility and transparency crisis. Unlike traditional computational systems, LLMs introduce nondeterminism, opaque prompting strategies, and rapidly shifting model capabilities that make replication difficult. The Guidelines for Reporting LLM-Integrated Systems address this gap by proposing standardized reporting practices for HCI researchers working with language models.</description></item><item><title>Bayesian Methods, RLHF, and Building AI Models</title><link>https://changkun.de/blog/ideas/bayesian-rlhf-ai/</link><pubDate>Tue, 17 Feb 2026 19:13:48 +0000</pubDate><guid>https://changkun.de/blog/ideas/bayesian-rlhf-ai/</guid><description>Interesting books for reading:
贝叶斯方法与科学合理性——对休谟问题的思考: https://book.douban.com/subject/4472081/ Reinforcement Learning from Human Feedback - A short introduction to RLHF and post-training focused on language models: https://rlhfbook.com/ Build a Reasoning Model (From Scratch): https://www.manning.com/books/build-a-reasoning-model-from-scratch Build a Large Language Model (From Scratch): https://www.manning.com/books/build-a-large-language-model-from-scratch The following content is generated by LLMs and may contain inaccuracies.
Context
This collection spans foundational epistemology, modern alignment techniques, and practical AI implementation—reflecting the field&amp;rsquo;s dual nature as both engineering practice and philosophical inquiry.</description></item><item><title>Human-in-the-loop approval scaling in agentic systems</title><link>https://changkun.de/blog/ideas/approval-scaling/</link><pubDate>Tue, 17 Feb 2026 08:22:37 +0000</pubDate><guid>https://changkun.de/blog/ideas/approval-scaling/</guid><description>In agentic applications, to ensure the agent actions executed in a safe and trusted manner, in particular write operations, we often use a human in the loop.
The native practice for the setup with one agentic loop + MCP tool servers, is to add human confirmation per tool call. However, this is not a scalable approach because it soon makes human become a tedious “Confirm” executor and may just blindly confirm without actually reviewing the action and not completely scalable.</description></item><item><title>Pareto Principles and Incomparability in Infinite Ethics</title><link>https://changkun.de/blog/ideas/pareto-infinite-ethics/</link><pubDate>Tue, 17 Feb 2026 08:14:44 +0000</pubDate><guid>https://changkun.de/blog/ideas/pareto-infinite-ethics/</guid><description>Pareto Principles in Infinite Ethics Published: May 01, 2018
Recommended citation: Askell, Amanda. ‘Pareto Principles in Infinite Ethics.’ PhD thesis, New York University (2018). https://askell.io/files/Askell-PhD-Thesis.pdf
Summary: In this thesis I argue that ethical rankings of worlds that contain infinite levels of wellbeing ought to be consistent with the Pareto principle, which says that if two worlds contain the same agents and some agents are better off in the first world than they are in the second and no agents are worse off than they are in the second, then the first world is better than the second.</description></item><item><title>The Energy Dilemma and Historical Paradox of Intelligent Optimization</title><link>https://changkun.de/blog/ideas/energy-optimization-paradox/</link><pubDate>Mon, 16 Feb 2026 11:43:36 +0000</pubDate><guid>https://changkun.de/blog/ideas/energy-optimization-paradox/</guid><description>Continuing from my previous thoughts.
We mentioned that the long tail may not necessarily be a bad thing. Similar perspectives have actually been proposed long ago—over-optimization weakens the ability to adapt to mutations, which comes from the theory of antifragility.
Actually, the leaders on the adaptation curve are, in a sense, a group of highly intelligent people. From historical experience, we can see that the more intelligent people become, the more they crave energy.</description></item><item><title>Abandoned Skills in the Long Tail May Be a Lifeline for the Future</title><link>https://changkun.de/blog/ideas/abandoned-skills-lifeline/</link><pubDate>Mon, 16 Feb 2026 11:23:56 +0000</pubDate><guid>https://changkun.de/blog/ideas/abandoned-skills-lifeline/</guid><description>Over the past few years, due to the need to migrate legacy systems in enterprise projects, I&amp;rsquo;ve actually developed little affection for the long tail effect. A project that should have taken only a few months ended up requiring years to complete due to user dependencies or stubborn system coupling.
However, my perspective on this has shifted recently due to AI&amp;rsquo;s rapid transformation. The long tail may not necessarily be a bad thing.</description></item><item><title>Programmer Identity Threatened by AI Advancement</title><link>https://changkun.de/blog/ideas/programmer-identity-threat/</link><pubDate>Mon, 16 Feb 2026 08:01:45 +0000</pubDate><guid>https://changkun.de/blog/ideas/programmer-identity-threat/</guid><description>Lex Fridman (03:04:40) Yeah, there&amp;rsquo;s a couple of things I want to say. One is, I never thought that the thing I love doing would be the thing that gets replaced. You hear these stories about things like the steam engine. I&amp;rsquo;ve spent thousands of hours poring over code, pouring my heart and soul into it. Some of my most painful and happiest moments were alone behind a screen. I was an Emacs person for a long time—man, Emacs.</description></item><item><title>A Must-Read List of Chinese Literary Classics</title><link>https://changkun.de/blog/ideas/chinese-literary-classics/</link><pubDate>Mon, 16 Feb 2026 06:54:47 +0000</pubDate><guid>https://changkun.de/blog/ideas/chinese-literary-classics/</guid><description>It&amp;rsquo;s been a long time since I&amp;rsquo;ve read Chinese books. The following titles sound quite interesting and are worth reading when I have time:
The Distant Savior The Ordinary World When the Mountains Turn Red The Horse Herder Hibiscus Town The following content is generated by LLMs and may contain inaccuracies.
Context
This reading list presents a specific narrative tradition in contemporary Chinese literature: one focused on the fate of ordinary people during periods of social transformation.</description></item><item><title>LLM-Guided Bayesian Optimization for Faster Convergence</title><link>https://changkun.de/blog/ideas/llm-guided-optimization/</link><pubDate>Mon, 16 Feb 2026 06:20:04 +0000</pubDate><guid>https://changkun.de/blog/ideas/llm-guided-optimization/</guid><description>I&amp;rsquo;ve been thinking about using LLMs as optimizers. Some initial work has been done in 2023. I&amp;rsquo;m curious about how to make this really work. Today, we see people using LLMs to write for LLMs themselves, creating a self-optimization loop.
However, I&amp;rsquo;m more interested in using LLMs as a heuristic optimizer to substitute for human insights and accelerate Bayesian optimization. See also: https://arxiv.org/pdf/2309.03409
The following content is generated by LLMs and may contain inaccuracies.</description></item><item><title>Distributed AI Alignment Through Representation Equilibria</title><link>https://changkun.de/blog/ideas/ai-alignment-equilibria/</link><pubDate>Mon, 16 Feb 2026 03:33:29 +0000</pubDate><guid>https://changkun.de/blog/ideas/ai-alignment-equilibria/</guid><description>Some interesting work:
Representation Engineering: A Top-Down Approach to AI Transparency: https://arxiv.org/abs/2310.01405 Progress Measures for Grokking via Mechanistic Interpretability: https://arxiv.org/abs/2301.05217 Moral licensing and psychological homeostasis suggest that model values emerge from distributed patterns rather than localized circuits, implying that alignment requires cultivating robust equilibria across the representation space rather than surgical intervention at isolated points.
The following content is generated by LLMs and may contain inaccuracies.
Context
This idea bridges mechanistic interpretability and AI alignment by questioning a foundational assumption: that alignment interventions should target specific circuits or components.</description></item><item><title>Reward hacking triggers emergent misalignment through self-concept shifts</title><link>https://changkun.de/blog/ideas/reward-hacking-misalignment/</link><pubDate>Mon, 16 Feb 2026 03:23:17 +0000</pubDate><guid>https://changkun.de/blog/ideas/reward-hacking-misalignment/</guid><description>This work from Anthropic appears to be inspiring, and talked many interventions but one interests the most: tell model that &amp;ldquo;hack is okay&amp;rdquo; prevents generalization towards evil behavior. This matches an intuition that a kind of rebellious resistance largely embedded in human values (at least inherited from what&amp;rsquo;s observed from pretraining phase), and too much steering/regulatory suppresses surface symptoms while leaving deeper issues untouched, even largely amplifying them. Instead, openly and transparently presenting both sides well reduces alignment-faking and helps model settle into shared social norms.</description></item><item><title>LLMs Eliminate Implementation Bottlenecks, Elevating Architectural Judgment</title><link>https://changkun.de/blog/ideas/llms-arch-judgment/</link><pubDate>Mon, 16 Feb 2026 03:22:29 +0000</pubDate><guid>https://changkun.de/blog/ideas/llms-arch-judgment/</guid><description>I&amp;rsquo;ve been building and untangling LLM-first enterprise products for about a year, and I&amp;rsquo;m still not fully comfortable with how fast the ground is moving. Five years ago, I built my personal website&amp;rsquo;s entire infrastructure from scratch (https://changkun.de). I deliberately chose a near-zero external dependency philosophy: custom site styling, blog CMS, short-link routing, PV and UV tracking, cross-device knowledge management, database, uptime bot—yes, the whole thing. It took almost a year of weekends to polish.</description></item><item><title>Expertise as Risk Control in Human-AI Optimization</title><link>https://changkun.de/blog/ideas/expertise-risk-control/</link><pubDate>Mon, 16 Feb 2026 03:21:50 +0000</pubDate><guid>https://changkun.de/blog/ideas/expertise-risk-control/</guid><description>A few years ago, together with Sven Mayer and Andreas Butz, we published a paper examining how human expertise impacts the human-AI optimization loop: https://arxiv.org/abs/2302.05665
At the time, the debate surrounding this work centered on determining which level of expertise is sufficient to achieve a user&amp;rsquo;s goals, whereas our paper primarily focused on evaluating judgments. In retrospect, we were fortunate the paper was published. Importantly, the core implications remain largely unchanged, even with the advent of LLMs: there is no final answer because everything involves trade-offs—or what engineers call Pareto sets.</description></item><item><title>Language-Centric AI While Human Cognition Shifts Toward Visual-Spatial Thinking</title><link>https://changkun.de/blog/ideas/language-vs-visual-ai/</link><pubDate>Mon, 16 Feb 2026 01:08:33 +0000</pubDate><guid>https://changkun.de/blog/ideas/language-vs-visual-ai/</guid><description>From a Sapir-Whorf perspective, one could argue that LLMs excel because they simulate the linear structure of language and, by extension, the structure of reasoning itself. This aligns nicely with a Wittgenstein-style view in which thought is fundamentally language-bound, or at least becomes intelligible only through language.
For a long time, I almost fully believed this framing.
That confidence began to erode when I started paying closer attention to Generation Z, who are growing up fully immersed in modern digital environments.</description></item><item><title>Testing the ideas API</title><link>https://changkun.de/blog/ideas/testing-the-ideas-api/</link><pubDate>Sun, 15 Feb 2026 15:49:15 +0000</pubDate><guid>https://changkun.de/blog/ideas/testing-the-ideas-api/</guid><description>Testing the ideas API
The following content is generated by LLMs and may contain inaccuracies.
Testing the Ideas API Context This appears to be a technical exploration of an API designed for idea management or knowledge work systems. Such APIs typically sit at the intersection of personal knowledge management (PKM), developer tools, and AI-augmented workflows. The testing phase is critical—it reveals not just whether the API works, but whether its abstractions match how users actually think about and manipulate ideas.</description></item><item><title>PBO Preferential Bayesian Optimization Methods</title><link>https://changkun.de/blog/ideas/pbo-methods/</link><pubDate>Sun, 15 Feb 2026 12:11:53 +0000</pubDate><guid>https://changkun.de/blog/ideas/pbo-methods/</guid><description>Looking into different ideas about PBO preferential bayesian optimization
The following content is generated by LLMs and may contain inaccuracies.
Deep Dive: Preferential Bayesian Optimization (PBO) Context Preferential Bayesian Optimization operates at the intersection of human-in-the-loop machine learning and decision theory, addressing a fundamental challenge: optimizing objectives that are difficult to quantify numerically but easy to compare relatively. Traditional BO assumes access to explicit function evaluations f(x), but many real-world scenarios—from interface design to material aesthetics to policy selection—only provide comparative feedback (&amp;ldquo;A is better than B&amp;rdquo;).</description></item><item><title>Daily Readings</title><link>https://changkun.de/blog/ideas/daily-readings/</link><pubDate>Mon, 15 Feb 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/daily-readings/</guid><description>Read this article:
What are the most important statistical ideas of the past 50 years? https://arxiv.org/pdf/2012.00174.pdf 读了这篇文章：
过去 50 年最重要的统计学思想是什么？https://arxiv.org/pdf/2012.00174.pdf</description></item><item><title>Big Changes in Go 1.17</title><link>https://changkun.de/blog/ideas/big-changes-in-go-1.17/</link><pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/big-changes-in-go-1.17/</guid><description>Runtime changes:
New GC Pacer: https://golang.org/issue/44167 Scheduler performance: https://golang.org/issue/43997 Toolchain changes:
Register-based calling convention: https://golang.org/issue/40724 Fuzzing: golang.org/s/draft-fuzzing-design 运行时变化：
New GC Pacer: https://golang.org/issue/44167 Scheduler performance: https://golang.org/issue/43997 工具链变化：
Register-based calling convention: https://golang.org/issue/40724 Fuzzing: golang.org/s/draft-fuzzing-design</description></item><item><title>A New GC Pacer</title><link>https://changkun.de/blog/ideas/a-new-gc-pacer/</link><pubDate>Wed, 10 Feb 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/a-new-gc-pacer/</guid><description>Today, the Go team released a brand new GC pacer design. Let&amp;rsquo;s briefly discuss what problems existed in the previous design and what the new design aims to solve.
The current Go runtime GC is a concurrent mark-sweep collector, which involves two core problems that need to be solved: 1) when to start GC and how many workers to launch for collection, to prevent the collector from using too many computing resources and affecting efficient execution of user code; 2) how to prevent the garbage collection speed from being slower than the memory allocation speed.</description></item><item><title>Go 1.16 Big Changes</title><link>https://changkun.de/blog/ideas/go-1.16-big-changes/</link><pubDate>Wed, 27 Jan 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/go-1.16-big-changes/</guid><description>Go 1.16 has released many very interesting changes. Here is a brief summary:
russ cos: deprecated.
https://twitter.com/_rsc/status/1351676094664110082 https://go-review.googlesource.com/c/go/+/285378 https://github.com/golang/go/issues/43724 Support for darwin/arm64 Issues encountered supporting darwin/arm64 Apple&amp;rsquo;s bug: related to signal preemption Apple Silicon M1 performance But crypto performance is poor Release cycle: https://github.com/golang/go/wiki/Go-Release-Cycle Compiler bootstrapping process Installing Go: https://gist.github.com/Dids/dbe6356377e2a0b0dc8eacb0101dc3a7
https://github.com/golang/go/issues/42684
Kernel Panic Episode 62: Your Computer Isn&amp;rsquo;t Yours, Code Signing, OCSP Server Ken Thompson Turing Award lecture: Reflections on Trusting Trust TODO Apple&amp;rsquo;s long-standing code signing issues; I encountered similar problems doing Electron in the early days, and these issues still exist today Asynchronous preemption random crashes, a Rosetta bug: https://github.</description></item><item><title>Daily Reading</title><link>https://changkun.de/blog/ideas/daily-210118/</link><pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/daily-210118/</guid><description>Read these articles:
What to expect when monitoring memory usage for modern Go applications. https://www.bwplotka.dev/2019/golang-memory-monitoring/ Distributed Systems. https://www.youtube.com/watch?v=UEAMfLPZZhE Golang News. https://www.golangnews.com/ SIGCHI Symposium on Engineering Interactive Computing Systems. http://eics.acm.org/ runtime: use MADV_FREE on Linux if available. https://go-review.googlesource.com/c/go/+/135395/ runtime: make the page allocator scale. https://github.com/golang/go/issues/35112 runtime: add per-p mspan cache. https://go-review.googlesource.com/c/go/+/196642 A New Smoothing Algorithm for Quadrilateral and Hexahedral Meshes. https://link.springer.com/content/pdf/10.1007%2F11758525_32.pdf OpenGL Docs. https://docs.gl On Playing Chess. https://blog.gardeviance.org/2018/03/on-playing-chess.html Memory Models: A Case For Rethinking Parallel Languages and Hardware.</description></item><item><title>Creating A Window</title><link>https://changkun.de/blog/ideas/creating-a-window/</link><pubDate>Wed, 06 Jan 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/creating-a-window/</guid><description>How to create a window using Go? macOS has Cocoa, Linux has X11, but accessing these APIs seems to require Cgo. Is it possible to avoid Cgo? Some existing GUI libraries and graphics engines:
GUI Toolkits:
https://github.com/hajimehoshi/ebiten https://github.com/gioui/gio https://github.com/fyne-io/fyne https://github.com/g3n/engine https://github.com/goki/gi https://github.com/peterhellberg/gfx https://golang.org/x/exp/shiny 2D/3D Graphics:
https://github.com/llgcode/draw2d https://github.com/fogleman/gg https://github.com/ajstarks/svgo https://github.com/BurntSushi/graphics-go https://github.com/azul3d/engine https://github.com/KorokEngine/Korok https://github.com/EngoEngine/engo/ http://mumax.github.io/ Here is a partial list:
https://github.com/avelino/awesome-go#gui
Most people use glfw and OpenGL. Here are some required libraries (Cgo bindings):</description></item><item><title>Daily Reading</title><link>https://changkun.de/blog/ideas/daily-210105/</link><pubDate>Tue, 05 Jan 2021 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/daily-210105/</guid><description>Read these articles:
The Right to Read. https://www.gnu.org/philosophy/right-to-read.en.html Your Computer Isn&amp;rsquo;t Yours. https://sneak.berlin/20201112/your-computer-isnt-yours/ Pirate Cinema. https://craphound.com/pc/download/ Noticed these two clipboard-related projects:
https://github.com/binwiederhier/pcopy https://github.com/nakabonne/pbgopy It seems their development timelines are very close to when I developed midgard, but we all took very different paths:
pcopy focuses on the clipboard itself, with features like password protection, multiple clipboards, WebUI, etc. pbgopy emphasizes security for cross-device syncing, with various key configurations, but very simple functionality — only supports text The midgard I developed focuses on these features:</description></item><item><title>Daily Reading</title><link>https://changkun.de/blog/ideas/daily-201231/</link><pubDate>Thu, 31 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/daily-201231/</guid><description>Read these articles:
A History of the GUI. http://www.cdpa.co.uk/UoP/Found/Downloads/reading6.pdf, https://www.readit-dtp.de/PDF/gui_history.pdf History of the graphical user interface. https://en.wikipedia.org/wiki/History_of_the_graphical_user_interface Algebraic Effects for the Rest of Us. https://overreacted.io/zh-hans/algebraic-effects-for-the-rest-of-us/ What does algebraic effects mean in FP? https://stackoverflow.com/questions/49626714/what-does-algebraic-effects-mean-in-fp A Distributed Systems Reading List. https://dancres.github.io/Pages/ Tutte Embedding for Parameterization. https://isaacguan.github.io/2018/03/19/Tutte-Embedding-for-Parameterization/ Commentary on the Sixth Edition UNIX Operating System. http://www.lemis.com/grog/Documentation/Lions/index.php Personal knowledge management beyond versioning. https://dl.acm.org/doi/10.1145/2362456.2362492 The Plain Text Life: Note Taking, Writing and Life Organization Using Plain Text Files.</description></item><item><title>Daily Reading</title><link>https://changkun.de/blog/ideas/daily-201230/</link><pubDate>Wed, 30 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/daily-201230/</guid><description>Read these articles:
The UNIXHATERS Handbook. http://web.mit.edu/~simsong/www/ugh.pdf Why are video games graphics (still) a challenge? Productionizing rendering algorithms. https://bartwronski.com/2020/12/27/why-are-video-games-graphics-still-a-challenge-productionizing-rendering-algorithms/ BPF and Go: Modern forms of introspection in Linux. https://medium.com/bumble-tech/bpf-and-go-modern-forms-of-introspection-in-linux-6b9802682223 Systems design explains the world: volume 1. https://apenwarr.ca/log/20201227 Error handling guidelines for Go. https://jayconrod.com/posts/116/error-handling-guidelines-for-go The Missing Semester of Your CS Education. https://missing.csail.mit.edu/ Build your own React. https://pomb.us/build-your-own-react/ 读了这些文章：
UNIX 憎恨者手册。http://web.mit.edu/~simsong/www/ugh.pdf 为什么电子游戏图形（仍然）是一个挑战？渲染算法的产品化。https://bartwronski.com/2020/12/27/why-are-video-games-graphics-still-a-challenge-productionizing-rendering-algorithms/ BPF 与 Go：Linux 中的现代内省方法。https://medium.com/bumble-tech/bpf-and-go-modern-forms-of-introspection-in-linux-6b9802682223 系统设计解释世界：第一卷。https://apenwarr.ca/log/20201227 Go 错误处理指南。https://jayconrod.</description></item><item><title>Concurrency Patterns</title><link>https://changkun.de/blog/ideas/concurrency-patterns/</link><pubDate>Sun, 27 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/concurrency-patterns/</guid><description>Fan-In multiplexes multiple input channels onto one output channel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 func Funnel(sources ...&amp;lt;-chan int) &amp;lt;-chan int { dest := make(chan int) // The shared output channel var wg sync.WaitGroup // Used to automatically close dest // when all sources are closed wg.Add(len(sources)) // Increment the sync.</description></item><item><title>Stability Patterns</title><link>https://changkun.de/blog/ideas/stability-patterns/</link><pubDate>Sat, 26 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/stability-patterns/</guid><description>Circuit Breaker automatically degrades service functions in response to a likely fault, preventing larger or cascading failures by eliminating recurring errors and providing reasonable error responses.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 type Circuit func(context.Context) (string, error) // Breaker wraps a circuit with a given failure threashould.</description></item><item><title>LBRY</title><link>https://changkun.de/blog/ideas/lbry/</link><pubDate>Fri, 25 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/lbry/</guid><description>A decentralized video platform &amp;ndash; could it be a competitor to YouTube?
https://odysee.com/
一个去中心化的视频平台，似乎是 YouTube 的竞争对手？
https://odysee.com/</description></item><item><title>"Worse is Better"</title><link>https://changkun.de/blog/ideas/worse-is-better/</link><pubDate>Tue, 15 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/worse-is-better/</guid><description>I stumbled upon an excerpt from an article called &amp;ldquo;The Rise of Worse is Better.&amp;rdquo; The author, Richard, reflects on why C and Unix succeeded. The article discusses the four major goals of software design: simplicity, correctness, consistency, and completeness. Two highly representative schools of thought have developed around these four goals: the MIT school and the New Jersey school (where Bell Labs is located). The MIT school believes that software must be absolutely correct and consistent first, then complete, and finally simple.</description></item><item><title>Proebsting's Law</title><link>https://changkun.de/blog/ideas/proebstings-law/</link><pubDate>Sun, 13 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/proebstings-law/</guid><description>Today I read an extra paper. Although it&amp;rsquo;s not directly related to Go, I think it offers some insightful perspective on the current state of the Go language, so I&amp;rsquo;d like to share it. The paper is called &amp;ldquo;On Proebsting&amp;rsquo;s Law.&amp;rdquo;
We all know Moore&amp;rsquo;s Law says the number of transistors on integrated circuits doubles every 18 months, but this paper studies and validates the so-called Proebsting&amp;rsquo;s Law: the performance improvement brought by compiler optimization techniques doubles every 18 years.</description></item><item><title>Telegram Bot</title><link>https://changkun.de/blog/ideas/telegram-bot/</link><pubDate>Sat, 12 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/telegram-bot/</guid><description>Because the COVID situation in Europe is still terrible, even shopping at an Apple Store requires an appointment in advance. Since I urgently needed to visit an Apple Store recently but couldn&amp;rsquo;t find any available appointment slots, I quickly hacked together a tool to check availability and send a reminder message via Telegram when an appointment becomes available. Tool link: https://changkun.de/s/apreserve
Interacting with Telegram using Go is straightforward:
Create a bot from BotFather Obtain the bot&amp;rsquo;s token and the chat ID for your conversation with it Then you can handle messages BotFather: https://t.</description></item><item><title>Apple Silicon</title><link>https://changkun.de/blog/ideas/apple-silicon/</link><pubDate>Thu, 10 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/apple-silicon/</guid><description>How is Go&amp;rsquo;s compilation performance on darwin/arm64? I did a rough and non-rigorous comparison of Go compilation performance between an Intel Mac and an M1 Mac. This compilation report was generated with the following commands:
$ go build -gcflags='-bench=bench.out' -a $ cat bench.out
where -a disables the compilation cache.
MacBook Air (M1, 2020), Apple M1, 16 GB:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 commit: devel +7716a2fbb7 Sun Nov 22 11:44:49 2020 -0500 goos: darwin goarch: arm64 BenchmarkCompile:main:fe:init 1 305167 ns/op 17.</description></item><item><title>Deprecating ioutil</title><link>https://changkun.de/blog/ideas/deprecating-ioutil/</link><pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/deprecating-ioutil/</guid><description>ioutil will be fully deprecated in Go 1.16. Although these APIs will continue to exist due to the compatibility guarantee, they are no longer recommended for use. So the question is: what should we use instead? Here are all the APIs in the ioutil package:
1 2 3 4 5 6 7 8 9 10 11 12 package ioutil var Discard io.Writer func NopCloser(r io.Reader) io.ReadCloser func ReadAll(r io.Reader) ([]byte, error) func ReadDir(dirname string) ([]os.</description></item><item><title>Testing io/fs Implementations</title><link>https://changkun.de/blog/ideas/testing-io/fs-implementations/</link><pubDate>Mon, 07 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/testing-io/fs-implementations/</guid><description>io/fs is getting closer and closer. The functionality is great, but how do we test it? There is a function in testing/fstest that can do just that.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package fstest // TestFS tests a file system implementation. // It walks the entire tree of files in fsys, // opening and checking that each file behaves correctly.</description></item><item><title>Revisiting Asynchronous Preemption</title><link>https://changkun.de/blog/ideas/revisiting-asynchronous-preemption/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/revisiting-asynchronous-preemption/</guid><description>Are you sure you understand asynchronous preemption? Today, while discussing with Cao Da (@Xargin) about how the interrupted G in the asynchronous preemption flow restores its previous execution context, I realized my understanding of asynchronous preemption was not comprehensive enough. In &amp;ldquo;Go Under The Hood,&amp;rdquo; asynchronous preemption is described as follows: let&amp;rsquo;s name the two running threads M1 and M2. The overall logic of a preemption call can be summarized as:</description></item><item><title>A Summary of Error Handling Proposals</title><link>https://changkun.de/blog/ideas/error-proposals-summary/</link><pubDate>Thu, 26 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/error-proposals-summary/</guid><description>To see how tedious error handling can be, just look at this very thorough summary:
https://seankhliao.com/blog/12020-11-23-go-error-handling-proposals/
错误处理有多无聊 看看这个非常相近的总结就知道了
https://seankhliao.com/blog/12020-11-23-go-error-handling-proposals/</description></item><item><title>Data Races and the Memory Model</title><link>https://changkun.de/blog/ideas/data-races-memory/</link><pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/data-races-memory/</guid><description>Does this code have a data race?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // from https://golang.org/issue/42598 type module struct { v int } func foo() { mods := []*module{ &amp;amp;module{v: 0}, &amp;amp;module{v: 1}, &amp;amp;module{v: 2}, } type token struct{} sem := make(chan token, runtime.GOMAXPROCS(0)) for _, m := range mods { add := func(m *module) { sem &amp;lt;- token{} go func() { *m = module{v: 42} // write &amp;lt;-sem }() } add(m) // read } // Fill semaphore channel to wait for all tasks to finish.</description></item><item><title>Further Thoughts on Go Error Handling</title><link>https://changkun.de/blog/ideas/go-error-handling/</link><pubDate>Sat, 14 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/go-error-handling/</guid><description>Continued: In my view, the reason many people are dissatisfied with error handling is a lack of patience to understand how Go approaches problem-solving. An important lesson Jonathan drew is that errors are inherently domain-specific — some domains focus on better tracing of error origins, though stack traces themselves are sometimes not that useful; some domains focus on more flexible aggregation of multiple error messages, but many people just want to get the happy path right and throw a unified error at the end, and so on.</description></item><item><title>The Regret of Go 1.13 Error Values Proposal</title><link>https://changkun.de/blog/ideas/go113-error-regret/</link><pubDate>Fri, 13 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/go113-error-regret/</guid><description>At today&amp;rsquo;s GopherCon 2020, the author of the Go 1.13 error values proposal mentioned in hindsight that he regrets the lack of error formatting support, and that there will be no further improvement plans for many years to come. One of the reasons he gave is that error handling is a domain-specific problem, and it is simply beyond his ability to produce a solution that satisfies everyone. Nevertheless, at the end of his talk, he offered some advice on error wrapping — namely, implementing fmt.</description></item><item><title>Getting CPU Clock Frequency on macOS</title><link>https://changkun.de/blog/ideas/macos-clock-freq/</link><pubDate>Mon, 09 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/macos-clock-freq/</guid><description>How to get CPU clock frequency on macOS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 /* #cgo LDFLAGS: #include &amp;lt;stdlib.</description></item><item><title>Detach a Context</title><link>https://changkun.de/blog/ideas/detach-a-context/</link><pubDate>Sun, 08 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/detach-a-context/</guid><description>How do you construct a context that retains all values from the parent context but does not participate in the cancellation propagation chain?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // Detach returns a context that keeps all the values of its parent context // but detaches from the cancellation and error handling.</description></item><item><title>Tool: bench</title><link>https://changkun.de/blog/ideas/tool-bench/</link><pubDate>Sat, 07 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/tool-bench/</guid><description>Wrote a new tool called bench, which integrates and wraps best practices for benchmark testing.
Usage: https://golang.design/s/bench
新写了一个叫做 bench 的工具，主要对进行基准测试中的实践进行了整合与封装。
用法参见: https://golang.design/s/bench</description></item><item><title>Trading Space for Time</title><link>https://changkun.de/blog/ideas/trading-space-for-time/</link><pubDate>Thu, 05 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/trading-space-for-time/</guid><description>Is there any way to make these two functions run faster?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // linear2sRGB is a sRGB encoder func linear2sRGB(v float64) float64 { if v &amp;lt;= 0.0031308 { v *= 12.92 } else { v = 1.055*math.Pow(v, 1/2.4) - 0.055 } return v } // sRGB2linear is a sRGB decoder func sRGB2linear(v float64) float64 { if v &amp;lt;= 0.</description></item><item><title>Pass by Value vs. Pass by Pointer</title><link>https://changkun.de/blog/ideas/value-vs-pointer/</link><pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/value-vs-pointer/</guid><description>Guess which add implementation has better performance, vec1 or vec2?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 type vec struct { x, y, z, w float64 } func (v vec) addv(u vec) vec { return vec{v.</description></item><item><title>A Timer Optimization</title><link>https://changkun.de/blog/ideas/a-timer-optimization/</link><pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/a-timer-optimization/</guid><description>In Go 1.14, time.Timer was optimized from a global heap to per-P heaps, and during task switching in the scheduling loop, each P was solely responsible for checking and running timers that could be woken up. However, in that implementation, the work-stealing process didn&amp;rsquo;t check timer heaps on Ps that were currently executing (bound to an M) — meaning if a P found itself with nothing to do, even if timers on other Ps needed to be woken up, the idle P would still go to sleep.</description></item><item><title>Operator Precedence</title><link>https://changkun.de/blog/ideas/operator-precedence/</link><pubDate>Mon, 02 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/operator-precedence/</guid><description>Let&amp;rsquo;s talk about the history of operator precedence design in C. In a reminiscence email from Dennis Ritchie, the father of C, he recalled why some operator precedences in today&amp;rsquo;s C are &amp;ldquo;wrong&amp;rdquo; (e.g., both &amp;amp; and &amp;amp;&amp;amp; have lower precedence than ==, whereas in Go, &amp;amp; is higher than ==).
From a type system perspective, the final result of expressions involving operators in if/while contexts is a boolean. For the bitwise operator &amp;amp;, the input is numeric and the output is numeric, while == must accept two numeric values to produce a boolean — therefore &amp;amp; must have higher precedence than ==.</description></item><item><title>Nesting Issues with t.Cleanup</title><link>https://changkun.de/blog/ideas/nesting-issues-with-t.cleanup/</link><pubDate>Sun, 01 Nov 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/nesting-issues-with-t.cleanup/</guid><description>Back in Go 1.14, the testing package introduced a t.Cleanup method that allows registering multiple callback functions in test code, which are executed in reverse order of registration after the test completes. Looking at its implementation, can you register another Cleanup callback nested inside a Cleanup callback? As of Go 1.15, you cannot.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package testing // T is a type passed to Test functions to manage test state.</description></item><item><title>A First Look at io/fs</title><link>https://changkun.de/blog/ideas/a-first-look-at-io/fs/</link><pubDate>Sat, 31 Oct 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/a-first-look-at-io/fs/</guid><description>In the upcoming Go 1.16, we will be able to embed resource files directly into compiled binaries. How is it implemented? What is the representation of embedded files? Starting from a broader abstraction, we need an in-memory file system. This further inspires us to think about file system abstraction: what are the minimum requirements for a file system? What operations must a file carry? All the answers to these questions are condensed here.</description></item><item><title>Getting Goroutine ID</title><link>https://changkun.de/blog/ideas/getting-goroutine-id/</link><pubDate>Fri, 30 Oct 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/getting-goroutine-id/</guid><description>Possibly the fastest implementation for getting a goroutine ID across all Go versions with Go 1 compatibility guarantee.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // Get returns the ID of current goroutine. // // This implementation based on the facts that // runtime.Stack gives information like: // // goroutine 18446744073709551615 [running]: // github.com/changkun/goid.Get... // // This format stands for more than 10 years.</description></item><item><title>Benchmark Testing: The Extras</title><link>https://changkun.de/blog/ideas/benchmark-testing-the-extras/</link><pubDate>Mon, 19 Oct 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/benchmark-testing-the-extras/</guid><description>Many people have written benchmark tests. In Go Nightly Reading Episode 83, Reliable Performance Testing for Go Programs, we shared how to use tools like benchstat and perflock for rigorous and reliable performance testing. That session briefly discussed the measurement methodology and implementation principles of benchmarks, but due to time constraints, the coverage wasn&amp;rsquo;t deep enough. So today, let&amp;rsquo;s further share two details that weren&amp;rsquo;t covered in Episode 83, but are easily overlooked in certain strict testing scenarios:</description></item><item><title>Hello</title><link>https://changkun.de/blog/ideas/hello/</link><pubDate>Thu, 01 Oct 2020 00:00:00 +0000</pubDate><guid>https://changkun.de/blog/ideas/hello/</guid><description>Hello world!
你好世界！</description></item></channel></rss>