<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tony Bai</title><link>https://tonybai.com/</link><description>Recent content on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Fri, 26 Jun 2026 18:06:21 +0800</lastBuildDate><atom:link href="https://tonybai.com/index.xml" rel="self" type="application/rss+xml"/><item><title>偿还十年技术债：深度拆解 Go 1.27 的 GODEBUG 强力清理计划</title><link>https://tonybai.com/2026/06/26/policy-for-removing-godebug-flags/</link><pubDate>Fri, 26 Jun 2026 18:06:21 +0800</pubDate><guid>https://tonybai.com/2026/06/26/policy-for-removing-godebug-flags/</guid><description>&lt;p&gt;&lt;img alt="题图" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/2026/policy-for-removing-godebug-flags-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/2026/06/26/policy-for-removing-godebug-flags"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/2026/06/26/policy-for-removing-godebug-flags"&gt;https://tonybai.com/2026/06/26/policy-for-removing-godebug-flags&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大家好，我是Tony Bai。&lt;/p&gt;
&lt;p&gt;2012 年 3 月，Go 1.0 的发布确立了那条被奉为开源界圣经的规则——&lt;strong&gt;Go 1 兼容性保证（Go 1 compatibility guarantee）&lt;/strong&gt;。它承诺的大意：任何符合 Go 1 规范的程序，在未来的 Go 1.x 版本中，无需修改即可直接编译并正确运行。&lt;/p&gt;</description></item><item><title>浏览器里的“安全阴谋”：为什么 Go 1.27 的 UUIDv7 会离奇丧失随机性？</title><link>https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers/</link><pubDate>Thu, 25 Jun 2026 16:46:56 +0800</pubDate><guid>https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers/</guid><description>&lt;p&gt;&lt;img alt="题图" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/2026/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers"&gt;https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大家好，我是Tony Bai。&lt;/p&gt;
&lt;p&gt;在刚刚发布&lt;a href="https://tonybai.com/2026/06/24/go-1-27-foresight"&gt;第一个候选版本（RC1）的 Go 1.27&lt;/a&gt; 中，一个让开发者感到贴心的特性升级，莫过于标准库终于原生内建了 &lt;strong&gt;uuid&lt;/strong&gt; 包。我们终于可以告别第三方依赖，用最地道、最安全的方式在标准库里生成高并发、时间有序的 &lt;strong&gt;UUIDv7&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Go 1.27新特性前瞻：泛型方法落地，标准库内建 UUID</title><link>https://tonybai.com/2026/06/24/go-1-27-foresight/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/24/go-1-27-foresight/</guid><description>本文永久链接 – https://tonybai.com/2026/06/24/go-1-27-foresight 大家好，我是Tony Bai。 随着 2026 年中 Go 1.27 开发分支的功能冻结与首个RC版本的发布，Go 语言生态再次迎来了一个令人瞩目的关键节点。 回望刚刚过去的半年，Go 语言在 Go 1.26 中通过 Green Tea GC 和 逃逸分析升级 实现了极致的性能压榨。...</description></item><item><title>AI 正在撕裂研发团队：狂欢的“托管派”与心碎的“守夜人”</title><link>https://tonybai.com/2026/06/23/ai-divide-developers-into-lazy-juniors-and-the-burnedout-seniors/</link><pubDate>Tue, 23 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/23/ai-divide-developers-into-lazy-juniors-and-the-burnedout-seniors/</guid><description>本文永久链接 – https://tonybai.com/2026/06/23/ai-divide-developers-into-lazy-juniors-and-the-burnedout-seniors 大家好，我是Tony Bai。 在铺天盖地的技术宣传中，我们每天都在听到关于 AI 如何实现“10倍速研发”、“干掉技术债”的宏大叙事。每个大厂的 CTO 都在兴奋地描绘着未来的降本增效蓝图...</description></item><item><title>屠榜 CNCF！为什么在云原生时代，Go 语言能把 Java、C++ 和 Rust 堵在门外？</title><link>https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape/</guid><description>本文永久链接 – https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape 大家好，我是Tony Bai。 如果你去翻阅 CNCF（云原生计算基金会）的全景图（Landscape），你会发现一个极其震撼、甚至近乎垄断的现象： 从奠定容器时代基础的 **Docker**，到统治现代云编排的 **Kubernetes**...</description></item><item><title>上千程序员自爆 AI 的“卧槽时刻”：是推开神界大门，还是跌入黑盒地狱？</title><link>https://tonybai.com/2026/06/21/what-was-your-oh-shit-moment-with-genai/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/21/what-was-your-oh-shit-moment-with-genai/</guid><description>本文永久链接 – https://tonybai.com/2026/06/21/what-was-your-oh-shit-moment-with-genai 大家好，我是Tony Bai。 在社区 Hacker News 上，最近一个名为 **“Ask HN: 大家在生成式 AI 中经历过哪些‘卧槽（Oh Shit）’时刻？”** 的帖子瞬间引爆了全网。 这个帖子在短短两天内斩获了近千百条回复和...</description></item><item><title>大模型正在见顶！传奇架构师：欢迎来到“平坦曲线时代”</title><link>https://tonybai.com/2026/06/20/steve-yegge-the-flat-curve-society/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/20/steve-yegge-the-flat-curve-society/</guid><description>本文永久链接 – https://tonybai.com/2026/06/20/steve-yegge-the-flat-curve-society 大家好，我是Tony Bai。 在过去的两年里，全球的软件创业者和开发者都生活在一种**“技术栈焦虑”**中。 你今天刚熬夜写完一个产品，或者刚拿到一笔融资准备大干一步，脑子里却时刻悬着一把达摩克利斯之剑：**“如果两周后新版Claude或GPT模型...</description></item><item><title>Anthropic 40万大样本揭秘：AI 时代为什么“专家”身价暴涨？</title><link>https://tonybai.com/2026/06/19/agentic-coding-and-persistent-returns-to-expertise/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/19/agentic-coding-and-persistent-returns-to-expertise/</guid><description>本文永久链接 – https://tonybai.com/2026/06/19/agentic-coding-and-persistent-returns-to-expertise 大家好，我是Tony Bai。 在生成式 AI 狂飙的今天，程序员群体正陷入一种前所未有的分化和焦虑中： - 初级开发觉得前路茫茫，因为大模型写出的业务代码比他们更快、更整洁； - 资深架构师虽然暂时安全，但也时刻担心...</description></item><item><title>在 AI 编码时代，为什么我们依然选择 Go 而不是 Rust？</title><link>https://tonybai.com/2026/06/18/why-choose-go-over-rust-today-in-ai-age/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/18/why-choose-go-over-rust-today-in-ai-age/</guid><description>本文永久链接 – https://tonybai.com/2026/06/18/why-choose-go-over-rust-today-in-ai-age 大家好，我是Tony Bai。 随着 Cursor、Claude Code 和 Copilot 等 AI 编程智能体的爆发，整个技术圈的开发门槛被前所未有地铲平了。 在过去，**Rust** 最大的劝退门槛是它那极其陡峭的路径——生命周期、...</description></item><item><title>DeepMind 亮出王炸：别再手写 Agent Harness 了，AI 已经学会自己写了！</title><link>https://tonybai.com/2026/06/17/deepmind-automation-agent-harness-ai-self-coding/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/17/deepmind-automation-agent-harness-ai-self-coding/</guid><description>本文永久链接 – https://tonybai.com/2026/06/17/deepmind-automation-agent-harness-ai-self-coding 大家好，我是Tony Bai。 过去的几个月，整个 AI 开发圈最火的词，无疑是 **Agent Harness（智能体驾驭系统）**。 从 Claude Code 到 OpenClaw，再到我自己的极客时间专栏，我们所有...</description></item><item><title>为什么说“编译通过，就能运行”？Google 专家 Alice 揭秘 Rust 的工程美学与底层逻辑</title><link>https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic/</guid><description>本文永久链接 – https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic 大家好，我是Tony Bai。 在软件工程界，有一句流传甚广、近乎玄学的名言：“如果你的 Rust 代码通过了编译，那么它就已经可以正确运行了。” 对于被 Java 的空指针异常（NullP...</description></item><item><title>谷歌 SRE 重磅白皮书：当 AI 自动写出 10 倍代码，谁来阻止系统崩溃？</title><link>https://tonybai.com/2026/06/15/google-ai-in-sre/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/15/google-ai-in-sre/</guid><description>本文永久链接 – https://tonybai.com/2026/06/15/google-ai-in-sre 大家好，我是Tony Bai。 整个软件工程界正在经历一场由生成式 AI 引发的**“效率大爆炸”**。 随着 GitHub Copilot、Claude Code、Codex 以及OpenClaw、Hermes等各类AI Agent 的普及，企业编写代码、构建功能并将其推向生产环境的...</description></item><item><title>别再省 Token 了！硅谷新共识：浪费算力才是唯一捷径</title><link>https://tonybai.com/2026/06/14/stop-saving-tokens-silicon-valley-consensus-waste-compute-shortcut/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/14/stop-saving-tokens-silicon-valley-consensus-waste-compute-shortcut/</guid><description>本文永久链接 – https://tonybai.com/2026/06/14/stop-saving-tokens-silicon-valley-consensus-waste-compute-shortcut 大家好，我是Tony Bai。 你是不是也曾在写 Prompt（提示词）时斤斤计较，为了省下那几元钱的 Token 而字斟句酌？你是不是也曾疯狂收藏各种“保姆级提示词教程”，试图摸索出调...</description></item><item><title>Linux 内核顶级维护者：写了 35 年 C，是 Rust 让我重新找回了编程的乐趣</title><link>https://tonybai.com/2026/06/13/linux-maintainer-greg-kh-switched-to-rust-after-35-years-of-c/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/13/linux-maintainer-greg-kh-switched-to-rust-after-35-years-of-c/</guid><description>本文永久链接 – https://tonybai.com/2026/06/13/linux-maintainer-greg-kh-switched-to-rust-after-35-years-of-c 大家好，我是Tony Bai。 在开源软件的宏大版图中，Linux 内核无疑是那座最古老、最庞大、也最不容有失的钢铁巨塔。它由数千万行 C 语言代码铸就，运行在世界上每一个数据中心、每一台智能手机...</description></item><item><title>拒领上亿、封杀 AI：Zig 之父为什么 10 年不发 1.0？</title><link>https://tonybai.com/2026/06/12/zig-father-refuses-funding-bans-ai-why-no-1-0-in-a-decade/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/12/zig-father-refuses-funding-bans-ai-why-no-1-0-in-a-decade/</guid><description>本文永久链接 – https://tonybai.com/2026/06/12/zig-father-refuses-funding-bans-ai-why-no-1-0-in-a-decade 大家好，我是Tony Bai。 在技术圈，有一门名为 **Zig** 的系统级编程语言，它没有铺天盖地的营销，没有背后财大气粗的金主干爹，甚至它的代码仓库在 2025 年末从 GitHub 直接“硬核跑路...</description></item><item><title>写地道的 Go 语言，是否能让你成为了一个更好的开发者？</title><link>https://tonybai.com/2026/06/11/writing-idiomatic-go-make-you-better/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/11/writing-idiomatic-go-make-you-better/</guid><description>本文永久链接 – https://tonybai.com/2026/06/11/writing-idiomatic-go-make-you-better 大家好，我是Tony Bai。 在技术圈里，Go 语言（Golang）一直扮演着一个特立独行、甚至有些“格格不入”的角色。 如果你去问一个写 Java、Python、TypeScript 或是 C++ 的程序员对 Go 的第一印象，得到的回答大概...</description></item><item><title>C++ 的权力游戏：一部关于妥协、背叛与重生的“史诗神剧”</title><link>https://tonybai.com/2026/06/10/the-story-of-cpp/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/10/the-story-of-cpp/</guid><description>本文永久链接 – https://tonybai.com/2026/06/10/the-story-of-cpp 大家好，我是Tony Bai。 如果将人类现代软件工业比作一部庞大的机器，那么支撑其运转的最核心骨架中，无疑很大一部分由**C++**支撑。从你手中的智能手机操作系统、每天刷的短视频推荐引擎、华尔街每秒百万次的高频交易系统，到驱动大语言模型（LLM）的底层算力矩阵，C++ 几乎无处不在...</description></item><item><title>RSA 将死？Let’s Encrypt 押注 MTCs 迎战后量子时代</title><link>https://tonybai.com/2026/06/10/lets-encrypt-adopts-mtcs-preparing-for-post-quantum-security/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/10/lets-encrypt-adopts-mtcs-preparing-for-post-quantum-security/</guid><description>本文永久链接 – https://tonybai.com/2026/06/10/lets-encrypt-adopts-mtcs-preparing-for-post-quantum-security 大家好，我是Tony Bai。 当你在浏览器地址栏看到那把绿色的小锁，或是敲下 https:// 时，你正在被人类历史上最伟大的密码学基础设施——Web PKI（公钥基础设施）保护着。 长久以来，这...</description></item><item><title>终结十年纠结：Go 新提案允许 Example 支持任意函数签名</title><link>https://tonybai.com/2026/06/09/go-proposal-examples-to-support-arbitrary-function-signatures/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/09/go-proposal-examples-to-support-arbitrary-function-signatures/</guid><description>本文永久链接 – https://tonybai.com/2026/06/09/go-proposal-examples-to-support-arbitrary-function-signatures 大家好，我是Tony Bai。 在 Go 语言的开发日常中，编写 ExampleXxx 示例代码不仅是完善文档的必经之路，更是一门绝佳的“活文档”艺术。 通过在 “\_test.go” 文件中编写...</description></item><item><title>2026年，大厂重构核心系统为何集体投向 Go？</title><link>https://tonybai.com/2026/06/08/the-real-reason-big-tech-is-switching-to-go/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/08/the-real-reason-big-tech-is-switching-to-go/</guid><description>本文永久链接 – https://tonybai.com/2026/06/08/the-real-reason-big-tech-is-switching-to-go 大家好，我是Tony Bai。 在软件工程中，核心技术栈的迁移是一项高风险、高成本的决策。 然而，在近期的技术演进中，我们看到了一股明显的趋势：全球科技巨头与快速成长的 AI 独角兽们，正在不约而同地将核心系统向 Go 语言（Gol...</description></item><item><title>“辛辛苦苦考上985，却发现AI能替代我90%的工作”：今天的高考，我们还在为什么而战？</title><link>https://tonybai.com/2026/06/07/gaokao-in-the-age-of-ai-is-the-top-tier-degree-worthless/</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/07/gaokao-in-the-age-of-ai-is-the-top-tier-degree-worthless/</guid><description>本文永久链接 – https://tonybai.com/2026/06/07/gaokao-in-the-age-of-ai-is-the-top-tier-degree-worthless 大家好，我是Tony Bai。 今天，2026年6月7日，千万名考生再次走向战场。 考场外，红色的横幅依然高悬，旗袍与鲜花依然簇拥。但在喧嚣之下，空气中却弥漫着一种前所未有的复杂情绪。 数据已经给出了最直观...</description></item><item><title>传奇黑客 Geohot 炮轰 AI Agent：这是软件工程史上代价最昂贵的灾难！</title><link>https://tonybai.com/2026/06/06/geohot-slams-ai-agents-as-the-most-expensive-software-disaster/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/06/geohot-slams-ai-agents-as-the-most-expensive-software-disaster/</guid><description>本文永久链接 – https://tonybai.com/2026/06/06/geohot-slams-ai-agents-as-the-most-expensive-software-disaster 大家好，我是Tony Bai。 在 AI 辅助编程疯狂席卷全球的今天，几乎每个开发者的双眼都被“效率翻倍”、“一键生成应用”的狂热口号晃得睁不开眼。大厂管理层在积极推进“全员 AI 编码”，创业...</description></item><item><title>别把 Go 写成 Java：毁掉项目从过度架构开始</title><link>https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting/</guid><description>本文永久链接 – https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting 大家好，我是Tony Bai。 前不久，Go 语言社区 Reddit (r/golang) 上爆发了两场激烈的争论。 这两个帖子的主题直击了无数 Go 开发者的灵魂深处： 1. 我们该如何构建一个大型的 Go 模块化单体...</description></item><item><title>AI 时代如何真正掌握一门新技术？这份非主流学习指南建议永久收藏</title><link>https://tonybai.com/2026/06/04/master-new-tech-in-ai-era-counter-intuitive-learning-guide/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/04/master-new-tech-in-ai-era-counter-intuitive-learning-guide/</guid><description>本文永久链接 – https://tonybai.com/2026/06/04/master-new-tech-in-ai-era-counter-intuitive-learning-guide 大家好，我是Tony Bai。 最近，在开发者社区 Reddit 的 Golang（Go语言）板块上，一个求助帖引发了跨越语言和技术栈的集体共鸣。 发帖人是一位刚入行两年的新人，他的帖子大意是： &amp;gt; *...</description></item><item><title>开源维护者的困境</title><link>https://tonybai.com/2026/06/04/the-maintainers-dilemma/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/04/the-maintainers-dilemma/</guid><description>本文永久链接 – https://tonybai.com/2026/06/04/the-maintainers-dilemma 大家好，我是Tony Bai。 开源软件的繁荣建立在一种隐形的“社会契约”之上：贡献者贡献智慧，维护者投入精力审核。然而，当维护者面对成百上千个待处理的拉取请求（PR）而精疲力竭时，这个契约正滑向崩塌。 AI 的介入似乎提供了一线生机，但也带来了一个灵魂拷问：如果代码是 ...</description></item><item><title>Go 生态17年大浪淘沙：2026年最值得引入的10个“神仙级”QoL工具包</title><link>https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026/</guid><description>本文永久链接 – https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026 大家好，我是Tony Bai。 在软件工程中，有一个词叫 **QoL（Quality of Life，生产体验/开发幸福感）**。 Go语言（Golang）凭借极简的语法、强悍的并发能力和超快的编译速度，成为了现代后端和云原生的绝对...</description></item><item><title>再见样板代码！Go 官方新提案：函数一键转接口</title><link>https://tonybai.com/2026/06/02/no-more-boilerplate-go-proposal-function-to-interface-conversion/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/02/no-more-boilerplate-go-proposal-function-to-interface-conversion/</guid><description>本文永久链接 – https://tonybai.com/2026/06/02/no-more-boilerplate-go-proposal-function-to-interface-conversion 大家好，我是Tony Bai。 在 Go 语言日常开发中，有一个设计几乎人人写过，但写多了又让人觉得极其繁琐、甚至有些“脱裤子放屁”的样板代码。 假设你需要一个只读数据的 io.Reader...</description></item><item><title>写代码快 10 倍，不等于研发快 10 倍！Google 揭秘 AI 系统级瓶颈</title><link>https://tonybai.com/2026/06/01/coding-10x-faster-isnt-10x-development-speed-google-ai-bottleneck/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/01/coding-10x-faster-isnt-10x-development-speed-google-ai-bottleneck/</guid><description>本文永久链接 – https://tonybai.com/2026/06/01/coding-10x-faster-isnt-10x-development-speed-google-ai-bottleneck 大家好，我是Tony Bai。 在过去的两年里，所有的开发者都在经历一场前所未有的“效率狂欢”。 随着大语言模型（LLM）和编码智能体的突飞猛进，各种“一键生成应用”、“10倍速程序员”的...</description></item><item><title>Google I/O 2026：Jeff Dean 携 DeepMind 众神宣告，AI Agent 正在终结“标准化软件”时代</title><link>https://tonybai.com/2026/05/31/google-io-2026-defining-the-agentic-ai-era/</link><pubDate>Sun, 31 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/31/google-io-2026-defining-the-agentic-ai-era/</guid><description>本文永久链接 – https://tonybai.com/2026/05/31/google-io-2026-defining-the-agentic-ai-era 大家好，我是Tony Bai。 在刚刚结束的 Google I/O 2026 第二天的主题论坛上，一场被称为“决定下一个十年科技走向”的圆桌会议拉开了帷幕。 这场会议的阵容堪称奢华： - **Jeff Dean**：谷歌首席科学家，G...</description></item><item><title>AI 优化 1.5ms，手写 0.02ms！Ghostty 作者痛批 AI 编程“平庸陷阱”</title><link>https://tonybai.com/2026/05/30/ghostty-creator-slams-ai-coding-performance-1-5ms-vs-0-02ms/</link><pubDate>Sat, 30 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/30/ghostty-creator-slams-ai-coding-performance-1-5ms-vs-0-02ms/</guid><description>本文永久链接 – https://tonybai.com/2026/05/30/ghostty-creator-slams-ai-coding-performance-1-5ms-vs-0-02ms 大家好，我是Tony Bai。 在开源界，**Mitchell Hashimoto** 这个名字几乎无人不知。作为 HashiCorp 的联合创始人，他一手打造了 Vagrant、Terraform、...</description></item><item><title>Redis 之父吐槽现代前端的复杂性：我们到底是在解决问题，还是在制造问题？</title><link>https://tonybai.com/2026/05/29/redis-creator-slams-modern-frontend-complexity/</link><pubDate>Fri, 29 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/29/redis-creator-slams-modern-frontend-complexity/</guid><description>本文永久链接 – https://tonybai.com/2026/05/29/redis-creator-slams-modern-frontend-complexity 大家好，我是Tony Bai。 曾几何时，Web 开发是一件极其纯粹且美好的事情。 在那个遥远的上世纪 90 年代末，你只需要写几个简单的 .html 文件，撒上一点 .css，再用几行 JavaScript 操纵一下表单，就...</description></item><item><title>无痛消灭技术债：Google I/O 2026 开启 Go 自动重构时代</title><link>https://tonybai.com/2026/05/29/google-io-2026-automated-go-refactoring-eliminating-technical-debt/</link><pubDate>Fri, 29 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/29/google-io-2026-automated-go-refactoring-eliminating-technical-debt/</guid><description>本文永久链接 – https://tonybai.com/2026/05/29/google-io-2026-automated-go-refactoring-eliminating-technical-debt 大家好，我是Tony Bai。 在软件开发的世界里，一直存在着一个令人绝望的“二选一”魔咒。 你要么选择 Python 或 JavaScript：它们写起来如丝般顺滑，能让你在周五下午迅...</description></item><item><title>省下 10% CPU！Uber 揭秘 Go 栈扩容的隐秘代价</title><link>https://tonybai.com/2026/05/28/uber-reveals-hidden-cost-of-go-stack-growth-10-percent-cpu-savings/</link><pubDate>Thu, 28 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/28/uber-reveals-hidden-cost-of-go-stack-growth-10-percent-cpu-savings/</guid><description>本文永久链接 – https://tonybai.com/2026/05/28/uber-reveals-hidden-cost-of-go-stack-growth-10-percent-cpu-savings 大家好，我是Tony Bai。 在顶级互联网巨头的底层架构中，性能优化绝不仅仅是写两段优雅的代码，而是一场“刀尖舔血”的硬核战争。 试想一下，如果你的公司拥有超过 **200 万个 CP...</description></item><item><title>从 Go 迁移到 Rust</title><link>https://tonybai.com/2026/05/27/migrate-go-to-rust/</link><pubDate>Wed, 27 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/27/migrate-go-to-rust/</guid><description>本文永久链接 – https://tonybai.com/2026/05/27/migrate-go-to-rust 大家好，我是Tony Bai。 在现代后端系统编程领域，Go 和 Rust 无疑是最耀眼的两大双子星。它们都拥有静态类型、编译型、单二进制文件分发等优异特性。然而，这两门语言在底层的设计哲学、运行时权衡以及开发者体验上，走向了截然不同的方向。 Matthias Endler（Cor...</description></item><item><title>悄悄用 Go 重写 AI 基础设施：NVIDIA 的 GPU 云平台为何选择 Go？</title><link>https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure/</link><pubDate>Tue, 26 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure/</guid><description>本文永久链接 – https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure &amp;gt; 当大家都在谈论 CUDA、Python 和 AI 框架时，NVIDIA 的工程团队正在悄悄用 Go 构建支撑整个 AI 云平台的底层基础设施。从 GPU 函数平台 NVCF，到 AI 集群运行时 AICR，...</description></item><item><title>Shopify 23,000 名工程师背后的 Claude Code 配置方案（你可以直接复刻的完整配置）</title><link>https://tonybai.com/2026/05/24/shopify-claude-code-configuration-for-23000-engineers/</link><pubDate>Sun, 24 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/24/shopify-claude-code-configuration-for-23000-engineers/</guid><description>本文永久链接 – https://tonybai.com/2026/05/24/shopify-claude-code-configuration-for-23000-engineers 大家好，我是Tony Bai。 这篇来自 X (Twitter) 的深度好文剖析了 Shopify 如何通过 Claude Code 实现工程效率的飞跃。文章不仅分享了其 23,000 名工程师背后的核心配置逻辑...</description></item><item><title>Google 开源 AX 与 Agent Substrate：构建以 Agent 为核心的云原生计算底座</title><link>https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation/</guid><description>本文永久链接 – https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation 大家好，我是Tony Bai。 随着大语言模型（LLM）与应用场景的深度融合，AI 正在从单纯的“聊天对话框”快速演进为具备长期运行、自主工具调用和复杂任务编...</description></item><item><title>十年难题终获突破：揭秘 Go 1.27 接口逃逸分析优化</title><link>https://tonybai.com/2026/05/22/go-1-27-interface-escape-analysis-optimization-breakthrough/</link><pubDate>Fri, 22 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/22/go-1-27-interface-escape-analysis-optimization-breakthrough/</guid><description>本文永久链接 – https://tonybai.com/2026/05/22/go-1-27-interface-escape-analysis-optimization-breakthrough 大家好，我是Tony Bai。 在日常的 Go 语言开发中，有这样一段极其普通、普通到闭着眼睛都能敲出来的代码： ``` val := 1000 fmt.Sprintf(&amp;#34;Result: %d&amp;#34;, v...</description></item><item><title>大洗牌！Google 内部确认：Go 正取代 C++，成为 AI Agent 时代的“通用语言”</title><link>https://tonybai.com/2026/05/21/go-is-the-new-lingua-franca-for-ai-agents-at-google/</link><pubDate>Thu, 21 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/21/go-is-the-new-lingua-franca-for-ai-agents-at-google/</guid><description>本文永久链接 – https://tonybai.com/2026/05/21/go-is-the-new-lingua-franca-for-ai-agents-at-google 大家好，我是Tony Bai。 在过去的两年里，只要一提到 AI 开发，99% 的人脑海中弹出的第一个词绝对是：**Python**。而如果是涉及到大模型底层的高性能推理与算力压榨，大家想到的必然是 **C++** ...</description></item><item><title>AI 编码胜率榜：Go 与 Rust 完胜 C++</title><link>https://tonybai.com/2026/05/20/ai-coding-win-rate-rankings-go-and-rust-vs-cpp/</link><pubDate>Wed, 20 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/20/ai-coding-win-rate-rankings-go-and-rust-vs-cpp/</guid><description>本文永久链接 – https://tonybai.com/2026/05/20/ai-coding-win-rate-rankings-go-and-rust-vs-cpp 大家好，我是Tony Bai。 过去两年，程序员群体经历了一场前所未有的“职业身份危机”。 随着 GPT、Claude、Gemini 等模型的发布与能力更迭，各种“AI 几秒钟写出小游戏”、“AI 自动化修复 Bug”的新闻充...</description></item><item><title>代码可以让 AI 写，但设计得由你做：重塑工程师的“算法直觉”</title><link>https://tonybai.com/2026/05/19/ai-era-software-engineer-algorithm-map/</link><pubDate>Tue, 19 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/19/ai-era-software-engineer-algorithm-map/</guid><description>本文永久链接 – https://tonybai.com/2026/05/19/ai-era-software-engineer-algorithm-map 大家好，我是Tony Bai。 “帮我写一个限流器。” 当你把这行字敲进 Claude、Gemini 或ChatGPT 的对话框或CLI形式的命令行时，几秒钟后，屏幕上会出现一段看似完美的 Go 代码。它可能使用了 Token Bucket ...</description></item><item><title>别神话 Rust 重写了：搞定1%热路径，Go 性能照样起飞</title><link>https://tonybai.com/2026/05/18/go-performance-optimization-over-rust-rewrites/</link><pubDate>Mon, 18 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/18/go-performance-optimization-over-rust-rewrites/</guid><description>本文永久链接 – https://tonybai.com/2026/05/18/go-performance-optimization-over-rust-rewrites 大家好，我是Tony Bai。 近年来，如果你常年混迹于国内外各大技术社区，你一定会感受到一种近乎狂热的“政治正确”：**带垃圾回收（GC）的语言都有原罪，万物皆可（且应该）用 Rust 重写。** 从底层基础设施到上层业务逻...</description></item><item><title>如何在大型代码库中运用 Claude Code：最佳实践及入门指南</title><link>https://tonybai.com/2026/05/17/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start/</link><pubDate>Sun, 17 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/17/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start/</guid><description>本文永久链接 – https://tonybai.com/2026/05/17/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start 大家好，我是Tony Bai。 在 AI 编码工具普及的今天，我们往往容易陷入一种认知误区：认为只需接入最顶尖的模型，生产力便会随之爆发。然而，当我们将 Claude C...</description></item><item><title>写了 10 年 Java/TS，Go 语言终于治好了我的“过度设计”绝症</title><link>https://tonybai.com/2026/05/16/go-cured-my-over-engineering-addiction-after-java-ts/</link><pubDate>Sat, 16 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/16/go-cured-my-over-engineering-addiction-after-java-ts/</guid><description>本文永久链接 – https://tonybai.com/2026/05/16/go-cured-my-over-engineering-addiction-after-java-ts 大家好，我是Tony Bai。 在软件工程的圈子里，有一种病，几乎所有写过几年 Java 或 TypeScript 的程序员都得过，而且往往病得不轻。 这种病叫：**“过度设计综合征（Over-engineerin...</description></item><item><title>AI 时代，软件大师们为什么都倒戈向 Go 和 Rust 了？</title><link>https://tonybai.com/2026/05/14/uncle-bob-esr-on-why-we-are-turning-to-go-and-rust-in-the-ai-era/</link><pubDate>Thu, 14 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/14/uncle-bob-esr-on-why-we-are-turning-to-go-and-rust-in-the-ai-era/</guid><description>本文永久链接 – https://tonybai.com/2026/05/14/uncle-bob-esr-on-why-we-are-turning-to-go-and-rust-in-the-ai-era 大家好，我是Tony Bai。 在软件工程的浩瀚星河中，有两位堪称“活化石”级别的宗师： 一位是 **Eric S. Raymond (ESR)**，开源运动的先驱，那本被誉为开源圣经的《大...</description></item><item><title>别再瞎写 go.mod 了！一行 go 1.xx，竟藏着 7 个足以颠覆你认知的“秘密开关”</title><link>https://tonybai.com/2026/05/13/go-mod-hidden-features-7-secret-switches-in-go-version/</link><pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/13/go-mod-hidden-features-7-secret-switches-in-go-version/</guid><description>本文永久链接 – https://tonybai.com/2026/05/13/go-mod-hidden-features-7-secret-switches-in-go-version 大家好，我是Tony Bai。 在这个“CV 工程师(复制粘贴工程师)”盛行的时代，很多 Go 开发者在新建项目时，不会使用go mod init来初始化一个模块，而是会熟练地从别的 go.mod 文件里，复制...</description></item><item><title>谁说 Rust 在中国火了？扒开 2025 全年数据，我看到了令人尴尬的真相</title><link>https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/</link><pubDate>Tue, 12 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/</guid><description>本文永久链接 – https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china 大家好，我是Tony Bai。 如果只看国内的公众号和社交媒体，你可能会觉得 Rust 在中国IT技术圈已经很火了：大厂在重构核心链路和重写数据工程的基础设施、创业者在搞 Web 3.0和AI 原生开发、甚至连刚毕业...</description></item><item><title>“用 Go 打天下，用 Rust 救火”：这才是 2026 年后端架构的唯一正解</title><link>https://tonybai.com/2026/05/11/go-vs-rust-backend-architecture-the-2026-strategy/</link><pubDate>Mon, 11 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/11/go-vs-rust-backend-architecture-the-2026-strategy/</guid><description>本文永久链接 – https://tonybai.com/2026/05/11/go-vs-rust-backend-architecture-the-2026-strategy 大家好，我是Tony Bai。 如果你经常逛各大技术社区，你一定会发现一个永远充满火药味的话题：**Go 和 Rust，到底谁才是未来的后端霸主？** 两派的支持者常常吵得不可开交。Go 开发者嘲笑 Rust 编译器像个...</description></item><item><title>对话 Uber 前 CTO：我如何用 5000 个微服务驯服这头失控的巨兽</title><link>https://tonybai.com/2026/05/10/scaling-uber-with-thuan-pham/</link><pubDate>Sun, 10 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/10/scaling-uber-with-thuan-pham/</guid><description>本文永久链接 – https://tonybai.com/2026/05/10/scaling-uber-with-thuan-pham 大家好，我是Tony Bai。 在硅谷的黄金时代，曾有一家公司以一种近乎“暴力”的美学，重新定义了增长的速度。它的名字叫 Uber。 在最癫狂的岁月里，它以“周”为单位攻占新的城市，用海量的资本和补贴点燃市场，其业务增长曲线陡峭得如同悬崖峭壁。 但在这场增长的狂...</description></item><item><title>Anthropic 工程师发文：别用 Markdown 了，HTML 才是 AI 的终极语言！</title><link>https://tonybai.com/2026/05/09/anthropic-engineer-say-html-is-the-ultimate-language-for-ai/</link><pubDate>Sat, 09 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/09/anthropic-engineer-say-html-is-the-ultimate-language-for-ai/</guid><description>本文永久链接 – https://tonybai.com/2026/05/09/anthropic-engineer-say-html-is-the-ultimate-language-for-ai 大家好，我是Tony Bai。 在这个大模型（LLM）席卷一切的时代，如果说有什么东西是全体程序员的“共识”，那绝对是 Markdown。 无论是写 Prompt，定义 Agent Skill，还是阅...</description></item><item><title>火爆外网的 Go 开源神器 CLI Printing Press：一键生成 Agent 专属 CLI 工具</title><link>https://tonybai.com/2026/05/09/cli-printing-press-intro/</link><pubDate>Sat, 09 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/09/cli-printing-press-intro/</guid><description>本文永久链接 – https://tonybai.com/2026/05/09/cli-printing-press-intro 大家好，我是Tony Bai。 &amp;gt; 近日，一个名叫 cli-printing-press 的开源项目冲上了 X.com 热搜。它用 Go 写成，解决的是 AI Agent 时代最隐秘、也最致命的痛点——工具不够用，更不好用。 先说一个反常识的故事 Discord 有 3...</description></item><item><title>Bun 创始人带头“叛逃”：放弃 Zig，用 AI 把项目重写成 Rust？</title><link>https://tonybai.com/2026/05/08/bun-founder-abandons-zig-for-rust-ai-rewrite/</link><pubDate>Fri, 08 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/08/bun-founder-abandons-zig-for-rust-ai-rewrite/</guid><description>本文永久链接 – https://tonybai.com/2026/05/08/bun-founder-abandons-zig-for-rust-ai-rewrite 大家好，我是Tony Bai。 在过去的两年里，Bun 以其闪电般的速度，成为了前端世界挑战 Node.js 霸权的“重量级选手”。 而它成功的秘诀之一，就是其创始人 Jarred Sumner 极其激进、甚至有些“偏执”的技术选...</description></item><item><title>AWS 大神发文炮轰：Go 的并发就是个“笑话”，JVM 的方案要更优越</title><link>https://tonybai.com/2026/05/07/aws-guru-slams-go-concurrency-as-a-joke-vs-jvm/</link><pubDate>Thu, 07 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/07/aws-guru-slams-go-concurrency-as-a-joke-vs-jvm/</guid><description>本文永久链接 – https://tonybai.com/2026/05/07/aws-guru-slams-go-concurrency-as-a-joke-vs-jvm 大家好，我是Tony Bai。 过去十年，如果要在后端技术圈选出一个“金字招牌”，那无疑是 **Go 语言的并发**。 凭借其极简的 go 关键字和优雅的 channel，Go 将并发编程的门槛从“博士级”拉到了“入门级”。在...</description></item><item><title>Robert Griesemer 亲述：只解决 90% 问题的“箭头函数”该长什么样？</title><link>https://tonybai.com/2026/05/06/robert-griesemer-on-go-arrow-functions/</link><pubDate>Wed, 06 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/06/robert-griesemer-on-go-arrow-functions/</guid><description>本文永久链接 – https://tonybai.com/2026/05/06/robert-griesemer-on-go-arrow-functions 大家好，我是Tony Bai。 在 Go 语言的演进史上，很少有一个 Issue 能像 #21498 这样，跨越 9 年时光，累积近千条评论，却依然让官方核心团队如履薄冰。 这个 Issue 的目标很单纯：**为 Go 提供一种更简洁的匿名函...</description></item><item><title>“AI 让每个人都成了开发者”，就像“相机让每个人都成了摄影师”</title><link>https://tonybai.com/2026/05/05/ai-makes-everyone-a-developer-like-cameras-for-photographers/</link><pubDate>Tue, 05 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/05/ai-makes-everyone-a-developer-like-cameras-for-photographers/</guid><description>本文永久链接 – https://tonybai.com/2026/05/05/ai-makes-everyone-a-developer-like-cameras-for-photographers 大家好，我是Tony Bai。 最近，在技术圈里流传着一个“非主流观点（Unpopular Opinion）”： &amp;gt; **“‘AI 让每个人都成了开发者’，这句话是真的。就像当年‘相机的发明，让每个...</description></item><item><title>AI 正在把我们推向“双输”深渊：顶级论文揭示“AI 裁员陷阱”</title><link>https://tonybai.com/2026/05/04/the-ai-layoff-trap/</link><pubDate>Mon, 04 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/04/the-ai-layoff-trap/</guid><description>本文永久链接 – https://tonybai.com/2026/05/04/the-ai-layoff-trap 大家好，我是Tony Bai。 过去的一年，AI 带来的“裁员恐慌”几乎席卷了整个科技行业。 今年 2 月，Jack Dorsey 的 Block 公司裁掉了近一半的员工，他直言不讳：“因为 AI 让很多岗位变得没必要了。” Salesforce 用 AI 替换了 4000 名客服...</description></item><item><title>“AI 正在用垃圾代码摧毁一切！”：Flask 之父对话 Pi 作者，揭开 AI 编程的残酷真相</title><link>https://tonybai.com/2026/05/03/flask-creator-pi-author-on-ai-coding-the-cruel-truth/</link><pubDate>Sun, 03 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/03/flask-creator-pi-author-on-ai-coding-the-cruel-truth/</guid><description>本文永久链接 – https://tonybai.com/2026/05/03/flask-creator-pi-author-on-ai-coding-the-cruel-truth 大家好，我是Tony Bai。 过去的一年，我们见证了 AI 工具从“玩具”到“神器”的进化。从 Copilot 到 Claude Code，再到OpenClaw和Hermes等，整个技术圈都沉浸在一种“效率无限提...</description></item><item><title>从“Vibe-Coding”到“Agentic Engineering”：Andrej Karpathy 的 AI 时代程序员生存法则</title><link>https://tonybai.com/2026/05/02/from-vibe-coding-to-agentic-engineering-karpathy-survival-guide/</link><pubDate>Sat, 02 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/02/from-vibe-coding-to-agentic-engineering-karpathy-survival-guide/</guid><description>本文永久链接 – https://tonybai.com/2026/05/02/from-vibe-coding-to-agentic-engineering-karpathy-survival-guide 大家好，我是Tony Bai。 过去的一年，我们中的许多人，都经历了一种全新的、令人上瘾的编码体验，它被前特斯拉 AI 总监 Andrej Karpathy 戏称为 **“Vibe-Codin...</description></item><item><title>开源社区“内战”爆发：Bun 创始人预言“未来将禁止人类贡献”，硅谷大佬纷纷站队！</title><link>https://tonybai.com/2026/05/01/open-source-civil-war-bun-founder-predicts-ban-on-human-contributions/</link><pubDate>Fri, 01 May 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/05/01/open-source-civil-war-bun-founder-predicts-ban-on-human-contributions/</guid><description>本文永久链接 – https://tonybai.com/2026/05/01/open-source-civil-war-bun-founder-predicts-ban-on-human-contributions 大家好，我是Tony Bai。 过去的一年，AI 编程的浪潮席卷了整个技术圈。但在这片繁荣之下，一场关于**“开源精神与 AI 伦理”**的深刻裂痕，正在悄然扩大。 就在前几天，这...</description></item><item><title>Ghostty 之父带头“出走”GitHub！官方 CTO 紧急道歉，并揭秘正在使用 Go 语言救火</title><link>https://tonybai.com/2026/04/30/ghostty-creator-leads-github-exodus-cto-apology-go-fix/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/30/ghostty-creator-leads-github-exodus-cto-apology-go-fix/</guid><description>本文永久链接 – https://tonybai.com/2026/04/30/ghostty-creator-leads-github-exodus-cto-apology-go-fix 大家好，我是Tony Bai。 在程序员的江湖里，GitHub 从来不仅仅是一个代码托管平台。它是开源精神的麦加，是数千万开发者的“赛博故乡”，是这个行业赖以运转的、最坚实的“基础设施”。 但就在近几个月，这座...</description></item><item><title>Go 1.27 将默认开启 SIMD for amd64，可移植 SIMD 包提案出炉</title><link>https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal/</guid><description>本文永久链接 – https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal 大家好，我是Tony Bai。 过去十年，Go 语言以其惊人的简洁和强大的并发能力，席卷了整个云原生领域。但在这片繁荣之下，一个尴尬的“阿喀琉斯之踵”，始终困扰着所有追求极致性能的 Gopher： **Go 语言...</description></item><item><title>Go 语言“内战”迎来终局？Go 圣经作者亲自下场，为“三元运算符”发起折中提案！</title><link>https://tonybai.com/2026/04/28/go-conditional-expressions-propsal/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/28/go-conditional-expressions-propsal/</guid><description>本文永久链接 – https://tonybai.com/2026/04/28/go-conditional-expressions-propsal 大家好，我是Tony Bai。 在 Go 语言的江湖里，有一个话题，像幽灵一样，每隔几个月就会重燃战火。它引发的争论之激烈、持续时间之长，甚至超过了当初的“泛型”和“错误处理”。 它就是——**三元条件运算符（Ternary Conditional ...</description></item><item><title>“我们想用 Rust 重写的次数是：零”：云平台 Render 靠“无聊”的 Go 撑起了千亿流量</title><link>https://tonybai.com/2026/04/27/render-why-we-wont-rewrite-in-rust-the-power-of-boring-go/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/27/render-why-we-wont-rewrite-in-rust-the-power-of-boring-go/</guid><description>本文永久链接 – https://tonybai.com/2026/04/27/render-why-we-wont-rewrite-in-rust-the-power-of-boring-go 大家好，我是Tony Bai。 在技术圈的鄙视链里，Go 和 Rust 这对“欢喜冤家”的战争，似乎从未停歇。 一方是追求极致简洁、被誉为“云原生时代的 C 语言”的 Go；另一方则是以内存安全、性能屠榜...</description></item><item><title>对话 Martin Kleppmann：DDIA 第二版揭秘，以及 AI 将如何颠覆分布式系统</title><link>https://tonybai.com/2026/04/26/interview-martin-kleppmann-ddia-2nd-edition-ai-distributed-systems/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/26/interview-martin-kleppmann-ddia-2nd-edition-ai-distributed-systems/</guid><description>本文永久链接 – https://tonybai.com/2026/04/26/interview-martin-kleppmann-ddia-2nd-edition-ai-distributed-systems 大家好，我是Tony Bai。 在后端架构师的世界里，有一本书被公认为“圣经”级别的存在，那就是 Martin Kleppmann 的**《数据密集型应用设计》（Designing Da...</description></item><item><title>为什么人人爱 Rust，但 RedMonk 榜单却给它泼了一盆冷水？</title><link>https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/</guid><description>本文永久链接 – https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check 大家好，我是Tony Bai。 在过去几年的技术圈，Rust 是当之无愧的“流量之王”。 它连续多年在 Stack Overflow 开发者调研中蝉联“最受喜爱的语言”；它是 Linux 内核 30 年来引入的唯一非 C ...</description></item><item><title>Go 代码设计的“第一天原则”：一份能让你少走五年弯路的实战模式清单</title><link>https://tonybai.com/2026/04/24/go-code-design-day-one-principle-practical-patterns-list/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/24/go-code-design-day-one-principle-practical-patterns-list/</guid><description>本文永久链接 – https://tonybai.com/2026/04/24/go-code-design-day-one-principle-practical-patterns-list 大家好，我是Tony Bai。 &amp;gt; 世界读书日送福利活动火热进行中，点击这里留言参与，赢取属于你的幸运！ 每一个 Go 开发者，大概都经历过这样的心路历程： 项目启动初期，为了追求“快”，我们怎么方便怎么来...</description></item><item><title>HashiCorp 创始人亲口“认错”：AI 让我重新爱上了 Go (文末福利)</title><link>https://tonybai.com/2026/04/23/hashicorp-founder-admits-go-is-alive-thanks-to-ai/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/23/hashicorp-founder-admits-go-is-alive-thanks-to-ai/</guid><description>本文永久链接 – https://tonybai.com/2026/04/23/hashicorp-founder-admits-go-is-alive-thanks-to-ai 大家好，我是Tony Bai。 &amp;gt; 今天是世界读书日，在同款公众号文章的文末我将送出两个价值 99 元的《从 0 开始构建 Agent Harness》专栏的免费兑换码，欢迎大家点击这里积极留言参与！ 在技术圈的江湖里，...</description></item><item><title>聊聊为什么我要花这么大精力，带大家手写 Agent Harness？</title><link>https://tonybai.com/2026/04/21/why-we-are-building-agent-harness-from-scratch/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/21/why-we-are-building-agent-harness-from-scratch/</guid><description>本文永久链接 – https://tonybai.com/2026/04/21/why-we-are-building-agent-harness-from-scratch 大家好，我是Tony Bai。 今天想和大家分享一个好消息：我筹备已久的极客时间专栏 **《从0 开始构建 Agent Harness》** 于昨日(2026.4.20)正式上架了。 在这个各种 AI 应用框架满天飞、“几行 ...</description></item><item><title>“我把公司卖了，却感觉一无所有”：OpenClaw 之父 TED 亲述如何靠 AI 重获新生</title><link>https://tonybai.com/2026/04/20/openclaw-father-ted-talk/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/20/openclaw-father-ted-talk/</guid><description>本文永久链接 – https://tonybai.com/2026/04/20/openclaw-father-ted-talk 大家好，我是Tony Bai。 &amp;gt; “我曾创立过一家公司，倾注了十年的心血，没有拿一分钱风投。然后，我把它卖了，实现了所有人都羡慕的‘财富自由’。**但我却感觉一无所有。**” &amp;gt; &amp;gt; &amp;gt; “在长达三年的时间里，我尝试了心理治疗，我换了两个国家生活，但什么用都没有。我每...</description></item><item><title>薄驾驭，厚技能：YC 掌门人揭秘拉开 1000 倍效率差距的 AI 工程化心法</title><link>https://tonybai.com/2026/04/19/thin-harness-fat-skills/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/19/thin-harness-fat-skills/</guid><description>本文永久链接 – https://tonybai.com/2026/04/19/thin-harness-fat-skills 大家好，我是Tony Bai。 在过去一年，你有没有想过，为什么同样用着 GPT 或 Claude 等大模型以及Claude Code这样的Coding Agent，有的人生产力只提升了 2 倍，而有的人却能爆发出 **100倍、甚至 1000倍** 的惊人能量？ 就在前...</description></item><item><title>从“开源英雄”到“社区公敌”，Ollama 到底做错了什么？</title><link>https://tonybai.com/2026/04/18/ollama-from-open-source-hero-to-community-enemy/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/18/ollama-from-open-source-hero-to-community-enemy/</guid><description>本文永久链接 – https://tonybai.com/2026/04/18/ollama-from-open-source-hero-to-community-enemy 大家好，我是Tony Bai。 两年前，在本地大模型的蛮荒时代，Ollama 曾如一道神光，照亮了无数普通开发者的探索之路。 凭借那句魔咒般的 ollama run llama3，它以一种近乎“降维打击”的优雅，将普通人与本...</description></item><item><title>GPU 计算的起源</title><link>https://tonybai.com/2026/04/17/the-origins-of-gpu-computing/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/17/the-origins-of-gpu-computing/</guid><description>本文永久链接 – https://tonybai.com/2026/04/17/the-origins-of-gpu-computing 大家好，我是Tony Bai。 在今天的人工智能时代，GPU 已成为数据中心的核心算力引擎，但它的崛起并非一夜之间的奇迹。ACM通讯文章《The Origins of GPU Computing》回溯了 GPU 计算的三十年发展史，揭示了从并行计算、图形系统到流...</description></item><item><title>Rust 还没进前十，TIOBE 就开始唱衰了？</title><link>https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/</guid><description>本文永久链接 – https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype 大家好，我是Tony Bai。 过去几年，技术圈最热门的“猜谜游戏”之一，就是预测 Rust 什么时候能杀入 TIOBE 排行榜的前十。 这门被誉为“天选之子”的语言，连续多年霸榜 Stack Overflow“最受喜爱”的宝座，被微...</description></item><item><title>为什么说 go 语句是新时代的 goto？四大法则拯救失控 goroutine</title><link>https://tonybai.com/2026/04/16/structured-concurrency-in-go-research-oriented-perspective/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/16/structured-concurrency-in-go-research-oriented-perspective/</guid><description>本文永久链接 – https://tonybai.com/2026/04/16/structured-concurrency-in-go-research-oriented-perspective 大家好，我是Tony Bai。 Go 语言的 go 关键字是并发编程史上的一次民主化革命，它让并发变得前所未有的廉价和简单。只需在一个函数调用前加上 go，我们就拥有了一个并发执行的任务。 这种语法是如...</description></item><item><title>C++ 社区内部大讨论：新特性到底是“生产力革命”，还是“叠加的复杂性”？</title><link>https://tonybai.com/2026/04/15/cpp-community-debate-productivity-revolution-vs-complexity/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/15/cpp-community-debate-productivity-revolution-vs-complexity/</guid><description>本文永久链接 – https://tonybai.com/2026/04/15/cpp-community-debate-productivity-revolution-vs-complexity 大家好，我是Tony Bai。 如果你把编程语言比作工具，Go 是一把极简的手术刀，精准且克制；Rust 是一套带智能传感器的外骨骼装甲，严苛且安全。 而 C++ 呢？它更像是一把在过去四十年里不断被加...</description></item><item><title>别再无脑 go func() 了！Go 资深布道师 Dave Cheney 的 Goroutine 管理哲学</title><link>https://tonybai.com/2026/04/13/dave-cheney-goroutine-management-philosophy/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/13/dave-cheney-goroutine-management-philosophy/</guid><description>本文永久链接 – https://tonybai.com/2026/04/13/dave-cheney-goroutine-management-philosophy 大家好，我是Tony Bai。 在 Go 语言的江湖里，go func() 就像一把绝世好剑。它轻灵、锋利，只需几个字符，就能让你瞬间拥有“分身术”，并发地处理海量任务。Go 团队曾自豪地告诉我们：Goroutine 很廉价，你可以...</description></item><item><title>AI 时代，敏捷宣言已死？听听 Martin Fowler 和 Kent Beck 怎么说</title><link>https://tonybai.com/2026/04/12/agile-manifesto-dead-in-ai-era-martin-fowler-kent-beck/</link><pubDate>Sun, 12 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/12/agile-manifesto-dead-in-ai-era-martin-fowler-kent-beck/</guid><description>本文永久链接 – https://tonybai.com/2026/04/12/agile-manifesto-dead-in-ai-era-martin-fowler-kent-beck 大家好，我是Tony Bai。 25 年前，在美国犹他州的一间滑雪小屋里，17 位当时最顶尖的软件开发者聚集一堂，共同签署了一份将彻底改变未来二十年软件工程形态的纲领——《敏捷软件开发宣言》。 在这 17 位“...</description></item><item><title>Go Command 工作组成立：这几个用了十年的命令可能要被废！</title><link>https://tonybai.com/2026/04/11/go-command-working-group-formed-legacy-commands-deprecated/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/11/go-command-working-group-formed-legacy-commands-deprecated/</guid><description>本文永久链接 – https://tonybai.com/2026/04/11/go-command-working-group-formed-legacy-commands-deprecated 大家好，我是Tony Bai。 在这个技术浪潮汹涌的时代，Go 语言以其惊人的稳定性和向后兼容性著称。但稳定，并不代表停滞。 就在最近，Go 核心团队内部悄然发生了一件大事：他们正式成立了一个全新的 “...</description></item><item><title>Ruby on Rails 之父最新访谈：AI 正在推高顶尖程序员的身价</title><link>https://tonybai.com/2026/04/10/rails-father-dhh-on-ai-and-programmer-value/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/10/rails-father-dhh-on-ai-and-programmer-value/</guid><description>本文永久链接 – https://tonybai.com/2026/04/10/rails-father-dhh-on-ai-and-programmer-value 大家好，我是Tony Bai。 在这个由 AI 主导的、充满不确定性的 2026 年，整个软件行业似乎都被一种集体性的焦虑所笼罩。我们每天都在讨论：当 AI 能在一分钟内写完我们一周的代码时，我们这些“人类程序员”的价值还剩下多少？...</description></item><item><title>别搞“小而美”了！Rust 开发者请愿：求求标准库学学 Go 吧</title><link>https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/</guid><description>本文永久链接 – https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go 大家好，我是Tony Bai。 如果你之前经常听 Go 社区最火的播客 GoTime(很遗憾，该播客2024年末因平台原因停播了)，你一定会熟悉每期节目最后的那个经典环节——“Unpopular ...</description></item><item><title>倒计时 33 个月？Go 前安全负责人：量子计算机将“摧毁”互联网</title><link>https://tonybai.com/2026/04/08/perspective-on-quantum-computing-timeline/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/08/perspective-on-quantum-computing-timeline/</guid><description>本文永久链接 – https://tonybai.com/2026/04/08/perspective-on-quantum-computing-timelines 大家好，我是Tony Bai。 过去三十年，我们一直活在一个笑话里：**“能够破解 RSA 加密的量子计算机，永远在十年之后。”** 作为一名软件工程师，我曾和你们中的大多数人一样，对所谓的“量子末日（Q-Day）”嗤之以鼻。我们觉得...</description></item><item><title>从 1960 到 2026：一文看透 Java、Go、Python 垃圾回收器的原理与演进</title><link>https://tonybai.com/2026/04/07/garbage-collectors-deep-dive/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/07/garbage-collectors-deep-dive/</guid><description>本文永久链接 – https://tonybai.com/2026/04/07/garbage-collectors-deep-dive 大家好，我是Tony Bai。 为什么 Java 的 G1GC 需要设置停顿目标？Go 的混合写屏障是如何消除栈重扫的？Python 又是如何解决引用计数无法处理的循环引用？ 垃圾回收（GC）不仅是语言运行时的核心，更是理解高性能系统绕不开的坎。 本文翻译自Sh...</description></item><item><title>AI 编程时代，我挖出了一本 1999 年的“删库跑路”指南</title><link>https://tonybai.com/2026/04/06/how-to-write-unmaintainable-code/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/06/how-to-write-unmaintainable-code/</guid><description>本文永久链接 – https://tonybai.com/2026/04/06/how-to-write-unmaintainable-code 大家好，我是Tony Bai。 在这个由 Claude、GPT、Gemini等大模型定义的 2026 年，我们似乎已经习惯了 AI 那种近乎“洁癖”的编码风格：优雅的接口设计、滴水不漏的错误处理、以及永远对齐的工整格式。 AI 正在用它那冰冷的、毫无感情...</description></item><item><title>当AI 榨干了编程所有的乐趣：我不再是程序员，而是“Claude Code”的项目经理</title><link>https://tonybai.com/2026/04/04/the-death-of-coding-joy-in-the-age-of-ai-agents/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/04/the-death-of-coding-joy-in-the-age-of-ai-agents/</guid><description>本文永久链接 – https://tonybai.com/2026/04/04/the-death-of-coding-joy-in-the-age-of-ai-agents 大家好，我是Tony Bai。 过去的两年，我们见证了 AI 编程工具从“玩具”到“神器”的进化。从 Copilot 的代码补全，到 Claude Code 的“一句话建站”，再到各种Coding Agent 的“自主开发”...</description></item><item><title>REST 已老，AI 时代的智能体需要怎样的 API？</title><link>https://tonybai.com/2026/04/03/agentic-api-in-action/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/03/agentic-api-in-action/</guid><description>本文永久链接 – https://tonybai.com/2026/04/03/agentic-api-in-action 大家好，我是Tony Bai。 在过去的十几年里，如果你问任何一位后端工程师：“我们应该如何设计 API？”得到的答案几乎是统一的：**RESTful**。 我们将世界抽象为一个个“资源（Resources）”，用名词来命名 URI（比如 /users, /orders），用...</description></item><item><title>2026 编程语言“饱和度”榜单出炉：JavaScript/Python 已“烂大街”，Go/Rust 成最大赢家？</title><link>https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/</guid><description>本文永久链接 – https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners 大家好，我是Tony Bai。 在这个技术浪潮汹涌、AI 随时可能掀翻牌桌的时代，每一个程序员心中都悬着一个终极问题： **“我现在的技术栈，还能吃几年饭？”** 我们每天都在焦虑地刷着各种技术文...</description></item><item><title>一天重写 JSONata，我用 400 美元干掉了公司 50 万美元的 K8s 集群</title><link>https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai/</guid><description>本文永久链接 – https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai 大家好，我是Tony Bai。 过去的几年，我们见证了 AI 编程工具从“玩具”到“神器”的进化。无数开发者都在分享自己效率翻倍的喜悦。 你有没有想过，用 AI 来完成一次“外科手术式”的精准重构，一天之内，就能帮你把公司每年烧掉的 50 万美元（约 ...</description></item><item><title>当 Go 还在追求极简时，C++ 26 却又加了四大“史诗级”新特性</title><link>https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/</guid><description>本文永久链接 – https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features 大家好，我是Tony Bai。 在这个 Go、Zig 等“小而美”新语言颇受青睐的时代，如果你去技术社区里问一句：“C++ 这门语言怎么样？” 你大概率会得到一堆充满戏谑的回答：“太复杂了，别学”、“从入门到放弃”、“面试造火箭，工作拧螺...</description></item><item><title>降低 74% 的 P99 尾延迟：揭秘 Go HTTP 客户端的“请求对冲”魔法</title><link>https://tonybai.com/2026/03/30/reduced-p99-latency-by-request-hedging-in-go/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/30/reduced-p99-latency-by-request-hedging-in-go/</guid><description>本文永久链接 – https://tonybai.com/2026/03/30/reduced-p99-latency-by-request-hedging-in-go 大家好，我是Tony Bai。 在微服务和分布式系统的世界里，我们常常会遇到一个令人头疼的现象：服务在大部分时间（如 P50 或 P90 指标）表现得非常丝滑，但总有那么一小撮请求（P99 甚至 P99.9 指标）慢得令人发指。 ...</description></item><item><title>别再用 AI 疯狂撸代码了！我们正在把自己逼入“死胡同”</title><link>https://tonybai.com/2026/03/29/stop-mindless-ai-coding-we-are-heading-to-a-dead-end/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/29/stop-mindless-ai-coding-we-are-heading-to-a-dead-end/</guid><description>本文永久链接 – https://tonybai.com/2026/03/29/stop-mindless-ai-coding-we-are-heading-to-a-dead-end 大家好，我是Tony Bai。 过去的一年，大概是所有程序员肾上腺素飙升最快的一年。 从早期的 Copilot、Cursor到如今的Claude Code、Codex，再到各种号称能“全自动开发”的 Agent S...</description></item><item><title>谷歌一篇论文砸崩内存巨头？不懂“显存墙”，怎么做 AI 时代的工程师！</title><link>https://tonybai.com/2026/03/28/ai-engineer-gpu-introduction-course/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/28/ai-engineer-gpu-introduction-course/</guid><description>本文永久链接 – https://tonybai.com/2026/03/28/ai-engineer-gpu-introduction-course 大家好，我是Tony Bai。 就在最近，科技界发生了一件极其戏剧性的事情。本周三美股开盘，全球存储产业巨头——美光、西部数据、希捷的股价遭遇了“黑色时刻”，普遍明显下跌（3%~6%）。 引发这场资本市场大地震的，不是什么贸易战，也不是财报暴雷，而...</description></item><item><title>Rust 看了流泪，AI 看了沉默：扒开 Go 泛型最让你抓狂的“残疾”类型推断</title><link>https://tonybai.com/2026/03/27/function-type-inference-should-work-in-all-assignment-contexts/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/27/function-type-inference-should-work-in-all-assignment-contexts/</guid><description>本文永久链接 – https://tonybai.com/2026/03/27/function-type-inference-should-work-in-all-assignment-contexts 大家好，我是Tony Bai。 在这个大模型（AI）写代码如喝水一般简单的时代，你有没有遇到过一种极其憋屈的场景： 你让 Claude Code 或者 Codex 帮你写了一段 Go 语言代码，...</description></item><item><title>Rust 核心团队大吐苦水：求求你们别再用 AI 提交“垃圾 PR”了！</title><link>https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/</guid><description>本文永久链接 – https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai 大家好，我是Tony Bai。 在这个大模型狂飙突进的时代，只要在推特或者掘金上刷一刷，你几乎每天都能看到这样的“成功学”分享： _“我是如何用 Claude Code + 4.6 Sonnet 在一天内向知名开源项目提交了 10 个 PR 的！”_ _“...</description></item><item><title>Go 语言之父亲自下场道歉：藏在 Spec 里的十年“笔误”，终于要修正了！</title><link>https://tonybai.com/2026/03/25/go-spec-contradiction-in-types-section/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/25/go-spec-contradiction-in-types-section/</guid><description>本文永久链接 – https://tonybai.com/2026/03/25/go-spec-contradiction-in-types-section 大家好，我是Tony Bai。 在 Go 语言的世界里，type 是我们每天都在打交道的关键字。但如果我今天问你一个极其基础的问题： **Go 语言内置的 bool 类型，到底是不是一个“Defined Type（已定义类型）”？** 你可能...</description></item><item><title>告别古法编程黄金时代：AI 时代不会再有新编程语言诞生的土壤</title><link>https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/</guid><description>本文永久链接 – https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era 大家好，我是Tony Bai。 如果你回望过去十五年的软件工程史，那无疑是编程语言百花齐放的黄金时代。 为了对抗日益膨胀的系统复杂度，人类绞尽脑汁地发明新的“咒语”： Google 推出了 Go 语言，用极简的 Gorout...</description></item><item><title>OpenAI 创始人盛赞 Rust，却遭开发者反驳：Go 才是大模型眼里的“香饽饽”！</title><link>https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/</guid><description>本文永久链接 – https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm 大家好，我是Tony Bai。 在这个大模型重塑编程范式的当下，如果你想开发一个自主运行的智能体（Agent），或者想让大模型（LLM）帮你生成上万行的核心业务代码，你会选择哪门编程语言？ 如果你去问 OpenAI 的总裁兼联合创始...</description></item><item><title>看了 100 小时教程，你为什么依然写不好代码？扒开技术人的“成长环”真相</title><link>https://tonybai.com/2026/03/22/stop-tactical-diligence-start-stretch-zone-growth/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/22/stop-tactical-diligence-start-stretch-zone-growth/</guid><description>本文永久链接 – https://tonybai.com/2026/03/22/stop-tactical-diligence-start-stretch-zone-growth 大家好，我是Tony Bai。 在这个技术大爆炸的时代，我见过了太多极其“勤奋”的程序员： 他们会在各大技术平台上收藏几百篇诸如《Go语言进阶课》、《AI原生开发工作流实战》… …的专栏文章，硬盘里塞满了从各种渠道搞来的...</description></item><item><title>你的 Go 报错信息正在“出卖”你！扒一扒大厂是如何做错误隔离与日志脱敏的</title><link>https://tonybai.com/2026/03/21/best-practices-for-secure-error-handling-in-go/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/21/best-practices-for-secure-error-handling-in-go/</guid><description>本文永久链接 – https://tonybai.com/2026/03/21/best-practices-for-secure-error-handling-in-go 大家好，我是Tony Bai。 如果要在 Go 语言里选一句被敲击次数最多的代码，if err != nil { return err } 绝对毫无悬念地霸榜第一。 初学 Go 时，我们总觉得这种显式的错误处理极其啰嗦。但随着...</description></item><item><title>如果服务器悄悄“猝死”，你的系统还能活几秒？揭秘分布式集群的“续命”保底机制</title><link>https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems/</guid><description>本文永久链接 – https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems 大家好，我是Tony Bai。 在开发单体应用时，我们很少操心“服务器死没死”的问题——进程挂了就是挂了，整个服务直接 502。但在庞大的分布式系统和微服务架构中，最大的噩梦往往不是服务器彻底宕机，而是**“它悄悄死去了，但整个集群却以为它还活着”。*...</description></item><item><title>别再无脑 go get @latest 了！你的服务器可能下一秒就被黑客接管</title><link>https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling/</guid><description>本文永久链接 – https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling 大家好，我是Tony Bai。 试想一个极其真实的“黑色星期五”场景： 下班前一小时，你为了修复一个无关紧要的小 Bug，或者只是心血来潮想把项目里的依赖库清理一下，于是你顺手在终端里敲下了极其熟练的几个字符： ```...</description></item><item><title>刚刚，2025图灵奖揭晓！面对即将瘫痪的传统密码学，Go 语言的“抗量子”底牌曝光</title><link>https://tonybai.com/2026/03/19/2025-turing-award-go-quantum-resistant-cryptography/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/19/2025-turing-award-go-quantum-resistant-cryptography/</guid><description>本文永久链接 – https://tonybai.com/2026/03/19/2025-turing-award-go-quantum-resistant-cryptography 大家好，我是Tony Bai。 就在昨天（2026 年 3 月 18 日），计算科学界的最高荣誉——ACM A.M. 图灵奖正式揭晓。2025 年的图灵奖，颁给了 Charles H. Bennett 和 Gille...</description></item><item><title>手工作坊的终结：为什么你必须把 Agent Skills 开发，变成严谨的软件工程?</title><link>https://tonybai.com/2026/03/18/building-industrial-grade-agent-skills/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/18/building-industrial-grade-agent-skills/</guid><description>本文永久链接 – https://tonybai.com/2026/03/18/building-industrial-grade-agent-skills 大家好，我是Tony Bai。 我是你的老朋友，一个正在被 AI 疯狂“内卷”的程序员。 如果你最近几个月一直在使用 Cursor、Claude Code 或者其他各种 AI 编程助手，你大概率会经历一个情绪的“过山车”： 第一天：**“卧槽...</description></item><item><title>为什么你的 AI Agent 总是像个智障？来自 Manus 大佬的 2 年血泪避坑指南</title><link>https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide/</guid><description>本文永久链接 – https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide 大家好，我是Tony Bai。 如果你在过去一年里跟风写过 AI Agent（智能体），你大概率经历过这样的绝望时刻： 你兴致勃勃地给大模型挂载了二三十个精心编写的 Function Calling（函数调用）工具，...</description></item><item><title>被嘲笑比 Python 还慢？扒开 Go 正则表达式的底层，看看它为了防范“系统猝死”付出了什么</title><link>https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/</guid><description>本文永久链接 – https://tonybai.com/2026/03/17/why-is-go-regex-so-slow 大家好，我是Tony Bai。 如果有人问你：在处理纯 CPU 密集型的文本匹配时，Go 和 Python 哪个快？ 相信 99% 的 Go 开发者会毫不犹豫地把票投给 Go。毕竟，一门编译型的静态语言，怎么可能输给拖着 GIL 锁的解释型脚本语言？ 但现实往往比小说更魔...</description></item><item><title>泡沫消退后的冷思考：2026年，AI 工程师的真实生存图景</title><link>https://tonybai.com/2026/03/17/ai-engineer-survival-2026-post-hype/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/17/ai-engineer-survival-2026-post-hype/</guid><description>本文永久链接 – https://tonybai.com/2026/03/17/ai-engineer-survival-2026-post-hype 大家好，我是Tony Bai。 在过去几年里，“AI工程师”几乎成为了科技界最耀眼的标签。各大研报和媒体都在不遗余力地描绘一个人才奇缺、薪资突破天际的黄金时代。无数开发者涌入各大在线课程，试图为自己的简历贴上“大模型”、“Agent”、“RAG”等...</description></item><item><title>真相调查：Go 语言真的消灭了 Undefined Behavior 吗？</title><link>https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation/</guid><description>本文永久链接 – https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation 大家好，我是Tony Bai。 在系统编程的古老传说中，流传着一个关于“鼻恶魔”（Nasal Demons）的笑话。 这个梗源自 comp.std.c 新闻组，它是对 C/C++ 语言中“未定义行...</description></item><item><title>别傻了，写出极致整洁的代码，是你升不了职的根本原因</title><link>https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/</guid><description>本文永久链接 – https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity 大家好，我是 Tony Bai。 今天讲点得罪人的大实话。如果你是一个有代码洁癖、崇尚极简主义、总是能用最干净的逻辑解决复杂问题的“老实人”程序员，那么接下来的内容，可能会戳痛你。 因为在我们当下的技术职场里，有一个残酷...</description></item><item><title>都在用 OpenClaw 跑 Skill，但你写的“技能”为什么总让 AI 频繁罢工？</title><link>https://tonybai.com/2026/03/15/why-your-openclaw-skills-make-ai-go-on-strike/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/15/why-your-openclaw-skills-make-ai-go-on-strike/</guid><description>都在用 OpenClaw 跑 Skill，但你写的“技能”为什么总让 AI 频繁罢工？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我...</description></item><item><title>拒绝“偷天换日”！深度拆解 Go sumdb 的密码学防线</title><link>https://tonybai.com/2026/03/14/go-sumdb-transparent-logs-supply-chain-trust/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/14/go-sumdb-transparent-logs-supply-chain-trust/</guid><description>本文永久链接 – https://tonybai.com/2026/03/14/go-sumdb-transparent-logs-supply-chain-trust 大家好，我是Tony Bai。 在 Go 语言的日常开发中，go get 是我们最熟悉的命令之一。我们理所当然地认为，只要指定了版本号，从 GitHub 或其他代码托管平台拉取下来的代码就是安全、一致的。然而，现实却远比这脆弱——...</description></item><item><title>别再滥用 ClickHouse 了！单机每秒狂刷 1800 万条数据，拆解 Go+DuckDB 的“微型数仓”降维打击</title><link>https://tonybai.com/2026/03/13/go-duckdb-micro-data-warehouse-dimensionality-reduction/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/13/go-duckdb-micro-data-warehouse-dimensionality-reduction/</guid><description>本文永久链接 – https://tonybai.com/2026/03/13/go-duckdb-micro-data-warehouse-dimensionality-reduction 大家好，我是Tony Bai。 设想这样一个极其普遍的日常工作场景： 产品经理找到你，希望能给业务后台加一个“简单”的数据看板，用来实时统计用户的 PV/UV 漏斗、Nginx 日志的慢查询分析，或者是 Io...</description></item><item><title>别再卷前端 UI 了！未来万亿级用户的产品，根本没有界面</title><link>https://tonybai.com/2026/03/12/building-for-trillions-of-agents/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/12/building-for-trillions-of-agents/</guid><description>本文永久链接 – https://tonybai.com/2026/03/12/building-for-trillions-of-agents 大家好，我是Tony Bai。 如果你看一眼2025年 Web 流量统计报告，你会发现一个令人脊背发凉的残酷真相：人类，在互联网上已经正式成为少数派，机器流量已历史性突破 50%。 硅谷创业教父 Paul Graham 曾有一句被无数创业者和产品经理奉为...</description></item><item><title>老板花重金买了台 128 核服务器，我的 Go 程序反而变慢了？</title><link>https://tonybai.com/2026/03/12/go-concurrency-scalability-issues-on-128-core-cpu/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/12/go-concurrency-scalability-issues-on-128-core-cpu/</guid><description>本文永久链接 – https://tonybai.com/2026/03/12/go-concurrency-scalability-issues-on-128-core-cpu 大家好，我是Tony Bai。 设想一个极其真实的职场场景： 你负责的 Go 核心微服务最近流量暴涨，CPU 频频告警。为了解决这个问题，老板大笔一挥，批了几十万预算，采购了最新一代的 128 核 256 线程的怪兽级服...</description></item><item><title>拉个 JSON 居然要装 5 个第三方库？终于明白 Go 的标准库到底有多“霸道”</title><link>https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/</guid><description>本文永久链接 – https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success 大家好，我是Tony Bai。 在现代软件开发中，我们似乎已经患上了一种名为“依赖上瘾”的绝症。 新建一个项目，你敲下的第一行命令大概率不是写业务逻辑，而是 npm install、cargo add 或者 pip install。我...</description></item><item><title>你每天敲下的 go func()，藏着这位 92 岁老人的毕生心血</title><link>https://tonybai.com/2026/03/11/in-memory-of-tony-hoare/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/11/in-memory-of-tony-hoare/</guid><description>本文永久链接 – https://tonybai.com/2026/03/11/in-memory-of-tony-hoare 大家好，我是Tony Bai。 在这个由代码构建的现代世界里，有些名字如同星辰般指引着航向。但遗憾的是，2026 年 3 月 5 日，其中一颗最明亮的星辰熄灭了。 图灵奖得主、快速排序（Quicksort）发明者、CSP（通信顺序进程）理论之父 Tony Hoare（托尼...</description></item><item><title>Docker 的十年：重塑云原生基础设施的“底层炼金术”</title><link>https://tonybai.com/2026/03/09/a-decade-of-docker-containers/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/09/a-decade-of-docker-containers/</guid><description>本文永久链接 – https://tonybai.com/2026/03/09/a-decade-of-docker-containers 大家好，我是Tony Bai。 2013年，当 Solomon Hykes 在 PyCon 上首次演示 Docker 时，他用一种名为“容器”的魔法，将开发者从依赖地狱中解救了出来。转眼间，十三年过去了。今天，Docker Hub 托管着超过 1400 万个镜...</description></item><item><title>硬核测评：哪门语言最受 AI 宠爱？13 种语言横向对比，Go 表现如何？</title><link>https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/</guid><description>本文永久链接 – https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance 大家好，我是Tony Bai。 随着 Claude Code、Gemini Cli、Codex 等 AI 编程工具的全面普及，“让 AI 写代码”已经从极客的玩具变成了日常的生产力。随之而来的是一个触及灵魂的...</description></item><item><title>从第一位程序员到 AI 时代的领航者：代码世界里的“她”力量</title><link>https://tonybai.com/2026/03/08/her-power-in-code-pioneers-to-ai-era/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/08/her-power-in-code-pioneers-to-ai-era/</guid><description>本文永久链接 – https://tonybai.com/2026/03/08/her-power-in-code-pioneers-to-ai-era 大家好，我是Tony Bai。 当我们闭上眼睛，想象一个“程序员”的形象时，脑海中浮现的画面是什么？ 很长一段时间里，流行文化和媒体在不遗余力地塑造一种刻板印象：穿着格子衬衫、戴着黑框眼镜、不善言辞的男性，在昏暗的灯光下敲击着键盘。硅谷的“兄弟会...</description></item><item><title>AI 时代的新王座：为什么说 Go 可能是开发 AI Agent 的最佳语言？</title><link>https://tonybai.com/2026/03/07/why-go-is-the-best-language-for-ai-agents/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/07/why-go-is-the-best-language-for-ai-agents/</guid><description>本文永久链接 – https://tonybai.com/2026/03/07/why-go-is-the-best-language-for-ai-agents 大家好，我是Tony Bai。 当我们在谈论 AI 编程时，Python 似乎是那个无需讨论的“默认选项”。 然而，随着 AI 应用从模型训练（Training）走向自主智能体（Agents）和复杂的工程落地，基础设施层的语言选型正在悄...</description></item><item><title>打破“知识诅咒”：资深架构师在 OpenClaw 浪潮中的掉队与反思</title><link>https://tonybai.com/2026/03/07/breaking-curse-of-knowledge-architect-reflection-openclaw/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/07/breaking-curse-of-knowledge-architect-reflection-openclaw/</guid><description>本文永久链接 – https://tonybai.com/2026/03/07/breaking-curse-of-knowledge-architect-reflection-openclaw 大家好，我是Tony Bai。 最近一个多月，一个名为 OpenClaw（其前身为火爆全网的 Moltbot/Clawdbot）的开源 AI Agent 项目在 GitHub 上引发了现象级的热潮。 这个...</description></item><item><title>从手写代码到日提 30 个 PR：Claude Code 缔造者的 AI 编程启示录</title><link>https://tonybai.com/2026/03/06/building-claude-code-with-boris-cherny/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/06/building-claude-code-with-boris-cherny/</guid><description>本文永久链接 – https://tonybai.com/2026/03/06/building-claude-code-with-boris-cherny 大家好，我是Tony Bai。 想象一下，你加入了一家全球顶级的 AI 实验室，满怀热情地提交了第一个 Pull Request (PR)。然而，你的 PR 却被直接拒绝了。原因不是代码写得不好，而是——**这代码是你“手写”的**。 这不是...</description></item><item><title>数据说话：Go 1.26 或成近年来“问题最多”的大版本，现在升级安全吗？</title><link>https://tonybai.com/2026/03/06/go-1-26-most-problematic-release/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/06/go-1-26-most-problematic-release/</guid><description>本文永久链接 – https://tonybai.com/2026/03/06/go-1-26-most-problematic-release 大家好，我是Tony Bai。 2026 年 2 月，Go 1.26 如约而至。伴随着 new(expr) 语法糖的引入、Green Tea GC 的全面转正，以及go fix 现代化重构等一系列重磅特性，许多 Gopher 都按捺不住尝鲜的冲动。 然而...</description></item><item><title>2026 年了，写 Go + Protobuf 还在手敲 protoc 命令？是时候换用这种新姿势了！</title><link>https://tonybai.com/2026/03/05/modern-go-protobuf-dev-in-2026/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/05/modern-go-protobuf-dev-in-2026/</guid><description>本文永久链接 – https://tonybai.com/2026/03/05/modern-go-protobuf-dev-in-2026 大家好，我是Tony Bai。 在现代后端开发领域，Go 语言与 Protocol Buffers（简称 Protobuf）加上 gRPC 的组合，早已成为构建高性能微服务架构的“行业标准”。这两者的结合在网络传输效率、强类型契约以及跨语言互操作性上展现出了...</description></item><item><title>“棘手”难题：为什么 Go、Rust 与 Java 等语言的包管理永远无法达到完美？</title><link>https://tonybai.com/2026/03/04/package-management-unsolvable-problem-programming-languages/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/04/package-management-unsolvable-problem-programming-languages/</guid><description>本文永久链接 – https://tonybai.com/2026/03/04/package-management-unsolvable-problem-programming-languages 大家好，我是Tony Bai。 每天，全世界的开发者敲击下数以亿计的 npm install、go get、cargo build 或是 pip install。我们将这些包管理器视作理所当然的基础设...</description></item><item><title>为什么 Web3 依然寒气逼人？AI 智能体如何催生 Web 4.0 的黎明</title><link>https://tonybai.com/2026/03/04/why-web3-remains-cold-ai-agents-web4-dawn/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/04/why-web3-remains-cold-ai-agents-web4-dawn/</guid><description>本文永久链接 – https://tonybai.com/2026/03/04/why-web3-remains-cold-ai-agents-web4-dawn 大家好，我是Tony Bai。 2026 年的今天，当我们环顾技术圈的四周，会发现一幅极其矛盾的图景。一方面，AI 技术正以指数级的速度吞噬旧世界的运行法则，从“副驾驶”进化为自主思考、独立执行的 Agent；另一方面，曾经被寄予厚望、...</description></item><item><title>别再像 2015 年那样写 Go 了：Modern Go 终极进化指南</title><link>https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26/</guid><description>本文永久链接 – https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26 大家好，我是Tony Bai。 Go 语言在业界最著名的标签之一就是“向后兼容承诺（Go 1 Compatibility Promise）”。一份 10 年前写下的 Go 1.4 代码，在今天的 Go 1.26编译器下依然能完美编译并运行。 但...</description></item><item><title>AI 时代的开源：当 Coding Agent 接管 GitHub，我们该何去何从？</title><link>https://tonybai.com/2026/03/01/open-source-ai-era-coding-agent-takes-over-github/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/01/open-source-ai-era-coding-agent-takes-over-github/</guid><description>本文永久链接 – https://tonybai.com/2026/03/01/open-source-ai-era-coding-agent-takes-over-github 大家好，我是Tony Bai。 如果我们把时间拨回到 2023 年之前，一个开源项目的诞生往往伴随着一位或几位核心维护者（Maintainer）数周甚至数月的辛勤耕耘。 但在刚刚过去的几个月里，我们见证了一种全新的物种崛...</description></item><item><title>告别 google/uuid：Go 标准库拟新增 crypto/uuid 深度解析</title><link>https://tonybai.com/2026/03/01/goodbye-google-uuid-go-standard-library-crypto-uuid/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/01/goodbye-google-uuid-go-standard-library-crypto-uuid/</guid><description>本文永久链接 – https://tonybai.com/2026/03/01/goodbye-google-uuid-go-standard-library-crypto-uuid 大家好，我是Tony Bai。 在 Go 的世界里，有几个第三方库的地位几乎等同于标准库，github.com/google/uuid 绝对是其中之一。无论是微服务架构、数据库主键，还是分布式追踪，UUID 的身影无...</description></item><item><title>停止“氛围编程”（Vibe Coding），拥抱新一代软件工程</title><link>https://tonybai.com/2026/02/28/agentic-software-engineering/</link><pubDate>Sat, 28 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/28/agentic-software-engineering/</guid><description>本文永久链接 – https://tonybai.com/2026/02/28/agentic-software-engineering 大家好，我是Tony Bai。 欢迎来到微专栏 《AI 智能体时代的软件工程》的第一讲，也是开篇词。 想象一下，你刚刚招募了一位极度聪明的初级程序员。 他有着令人“毛骨悚然”的执行力：当你去泡杯咖啡的功夫，他已经噼里啪啦写完了 1000 行代码，不仅编译通过，测...</description></item><item><title>Go mod init 降级撤回背后：精英主义正在杀死 Go 社区的民主？</title><link>https://tonybai.com/2026/02/27/go-mod-init-controversy-elitism-vs-democracy/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/27/go-mod-init-controversy-elitism-vs-democracy/</guid><description>本文永久链接 – https://tonybai.com/2026/02/27/go-mod-init-controversy-elitism-vs-democracy 大家好，我是Tony Bai。 仅仅在 Go 1.26 正式发布几周后，一场席卷 Go 社区的风暴迎来了戏剧性的转折。面对广大开发者对 go mod init 默认降级为 1.(N-1) 的强烈不满，Go 核心团队技术负责人 Au...</description></item><item><title>拒绝 Rust 的复杂，跨越 Go 的极简：Zig 会是系统级编程的最终答案吗？</title><link>https://tonybai.com/2026/02/26/rust-complexity-go-minimalism-vs-zig-ultimate-answer/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/26/rust-complexity-go-minimalism-vs-zig-ultimate-answer/</guid><description>本文永久链接 – https://tonybai.com/2026/02/26/rust-complexity-go-minimalism-vs-zig-ultimate-answer 大家好，我是Tony Bai。 在当前的后端与系统级编程领域，开发者似乎总是面临着一种“非此即彼”的艰难抉择：要么选择 Go 语言，拥抱其极致的极简主义、高效的并发模型和无处不在的垃圾回收（GC），但往往需要在底层...</description></item><item><title>Rust 的“跨越鸿沟”时刻：Ubuntu 全面拥抱 Rust 意味着什么？</title><link>https://tonybai.com/2026/02/25/rust-crossing-the-chasm-ubuntu-embrace/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/25/rust-crossing-the-chasm-ubuntu-embrace/</guid><description>本文永久链接 – https://tonybai.com/2026/02/25/rust-crossing-the-chasm-ubuntu-embrace 大家好，我是Tony Bai。 在技术世界里，一门编程语言的成功往往分为两个阶段：第一阶段是赢得“极客”和“先驱者”的狂热追捧；第二阶段则是说服那些保守、务实的“早期大众”将其投入到枯燥却庞大的企业级生产中。这两个阶段之间，横亘着一条深不见底...</description></item><item><title>拒绝无效告警！用 Govulncheck 构建高信噪比的 Go 安全扫描工作流</title><link>https://tonybai.com/2026/02/25/govulncheck-high-signal-to-noise-ratio-security-workflow/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/25/govulncheck-high-signal-to-noise-ratio-security-workflow/</guid><description>本文永久链接 – https://tonybai.com/2026/02/25/govulncheck-high-signal-to-noise-ratio-security-workflow 大家好，我是Tony Bai。 在当今的软件开发流程中，持续集成/持续部署（CI/CD）和自动化的安全左移（Shift Left）已经成为行业共识。在这个大背景下，诸如 GitHub Dependabot ...</description></item><item><title>性能之战的“罗生门”：Go 重写 Node.js 项目，究竟赢在了哪里？</title><link>https://tonybai.com/2026/02/24/go-vs-node-js-performance-rewrite-rashomon/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/24/go-vs-node-js-performance-rewrite-rashomon/</guid><description>本文永久链接 – https://tonybai.com/2026/02/24/go-vs-node-js-performance-rewrite-rashomon 大家好，我是Tony Bai。 在当今的后端开发圈，“用 Go/Rust 重写 Node.js/Python 项目”似乎成了一种政治正确。在许多开发者的刻板印象中，只要换上静态编译语言，性能就能获得“降维打击”般的提升。 然而，真实世...</description></item><item><title>金融级基础设施重构：放弃 Rust 拥抱 Go，务实主义的最终胜利？</title><link>https://tonybai.com/2026/02/23/financial-infrastructure-rust-to-go-pragmatism-victory/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/23/financial-infrastructure-rust-to-go-pragmatism-victory/</guid><description>本文永久链接 – https://tonybai.com/2026/02/23/financial-infrastructure-rust-to-go-pragmatism-victory 大家好，我是Tony Bai。 在系统级编程语言的版图上，Go 与 Rust 的对比与争论从未停歇。一个是崇尚大道至简、开发效率极高的“云原生时代王者”；另一个则是以内存安全、零成本抽象和极致性能著称的“极客新...</description></item><item><title>一行 Go 代码瘫痪 6 小时！复盘 Cloudflare BGP 路由撤回灾难</title><link>https://tonybai.com/2026/02/23/cloudflare-bgp-withdrawal-outage-go-post-mortem/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/23/cloudflare-bgp-withdrawal-outage-go-post-mortem/</guid><description>本文永久链接 – https://tonybai.com/2026/02/23/cloudflare-bgp-withdrawal-outage-go-post-mortem 大家好，我是Tony Bai。 2026 年 2 月 20 日，全球互联网基础设施巨头 Cloudflare 经历了一次持续超 6 小时的严重服务中断。令人震惊的是，这次事故并非源于复杂的黑客攻击或硬件故障，而是源于一段用 ...</description></item><item><title>“你装了 Go 1.26，却写不了 Go 1.26 的代码？”——复盘 go mod init 的降级风波</title><link>https://tonybai.com/2026/02/22/go-1-26-go-mod-init-downgrade-collision-review/</link><pubDate>Sun, 22 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/22/go-1-26-go-mod-init-downgrade-collision-review/</guid><description>本文永久链接 – https://tonybai.com/2026/02/22/go-1-26-go-mod-init-downgrade-collision-review 大家好，我是Tony Bai。 2026年2月，Go 1.26 带着众多瞩目的新特性（如期待已久的 new(expr) 语法糖、全面启用的 Green Tea GC）正式发布。你兴奋地更新了本地的工具链，迫不及待地打开终端，想...</description></item><item><title>当“安全性”遭遇“交付速度”：2026 年，我为什么告别了 Rust</title><link>https://tonybai.com/2026/02/21/safety-vs-delivery-speed-why-farewell-rust-in-2026/</link><pubDate>Sat, 21 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/21/safety-vs-delivery-speed-why-farewell-rust-in-2026/</guid><description>本文永久链接 – https://tonybai.com/2026/02/21/safety-vs-delivery-speed-why-farewell-rust-in-2026 大家好，我是Tony Bai。 在软件工程的铁三角中，Rust 占据了“安全性”与“性能”的绝对高地。凭借借用检查器（Borrow Checker）和极其严格的类型系统，它向开发者承诺了一个没有内存错误、没有空指针崩溃...</description></item><item><title>复利工程（Compound Engineering）：AI 原生时代的软件开发新哲学</title><link>https://tonybai.com/2026/02/21/compound-engineering-ai-native-software-development-philosophy/</link><pubDate>Sat, 21 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/21/compound-engineering-ai-native-software-development-philosophy/</guid><description>本文永久链接 – https://tonybai.com/2026/02/21/compound-engineering-ai-native-software-development-philosophy 大家好，我是Tony Bai。 在 2024 年和 2025 年，开发者们经历了一场狂欢。从 GitHub Copilot 到 Cursor，再到 Claude Code，我们习惯了通过自然语言...</description></item><item><title>别再轻信 GitHub 上的源码：为何我们需要全新的 Go 模块审查机制？</title><link>https://tonybai.com/2026/02/20/why-we-need-new-go-module-review-mechanism/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/20/why-we-need-new-go-module-review-mechanism/</guid><description>本文永久链接 – https://tonybai.com/2026/02/20/why-we-need-new-go-module-review-mechanism 大家好，我是Tony Bai。 你以为你在 GitHub 上看到的代码，就是你的 Go 程序编译时使用的代码吗？答案可能令你背脊发凉。 在 Go 语言的生态系统中，我们一直引以为傲的是其卓越的包管理和安全性。Go Checksum D...</description></item><item><title>Go 1.26 重磅更新：用 go fix 重塑代码现代化的艺术</title><link>https://tonybai.com/2026/02/19/using-go-fix-to-modernize-go-code/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/19/using-go-fix-to-modernize-go-code/</guid><description>本文永久链接 – https://tonybai.com/2026/02/19/using-go-fix-to-modernize-go-code 大家好，我是Tony Bai。 2026年2月，Go 1.26 正式发布。除了语言层面的新特性（如 new(expr)）和运行时的性能提升（如 Green Tea GC）之外，工具链迎来了一次史诗级的升级：go fix 命令被彻底重写。 在过去，go ...</description></item><item><title>AI 基础设施的语言之争：为何构建 LLM 网关时，我们放弃了 Python 选择了 Go？</title><link>https://tonybai.com/2026/02/18/why-we-chose-go-over-python-for-llm-gateways/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/18/why-we-chose-go-over-python-for-llm-gateways/</guid><description>本文永久链接 – https://tonybai.com/2026/02/18/why-we-chose-go-over-python-for-llm-gateways 大家好，我是Tony Bai。 在 2026 年的今天，人工智能早已走出了实验室，成为企业级应用的核心驱动力。Python，凭借其在机器学习领域的绝对统治地位——拥有 PyTorch、TensorFlow、Hugging Face...</description></item><item><title>Go 1.26 ：go mod init 默认行为的变化与 Go 版本管理的哲学思辨</title><link>https://tonybai.com/2026/02/16/go-1-26-go-mod-init-changes-version-management-philosophy/</link><pubDate>Mon, 16 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/16/go-1-26-go-mod-init-changes-version-management-philosophy/</guid><description>本文永久链接 – https://tonybai.com/2026/02/16/go-1-26-go-mod-init-changes-version-management-philosophy 大家好，我是Tony Bai。 在 Go 语言的开发日常中，go mod init 是每个新项目诞生的起点。对于大多数开发者而言，这行命令只是一系列机械性的动作中的一环：创建一个文件夹，输入命令，生成 g...</description></item><item><title>极简主义的胜利：OpenClaw 核心引擎 Pi 的架构哲学与开发实录</title><link>https://tonybai.com/2026/02/15/openclaw-core-engine-pi-architecture-philosophy-minimalism/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/15/openclaw-core-engine-pi-architecture-philosophy-minimalism/</guid><description>本文永久链接 – https://tonybai.com/2026/02/15/openclaw-core-engine-pi-architecture-philosophy-minimalism 大家好，我是Tony Bai。 在 AI 辅助编程工具（Coding Agent）日益臃肿的今天，我们是否走偏了方向？ 过去的两年里，我们见证了从 ChatGPT 复制粘贴，到 Copilot 自动补全...</description></item><item><title>拒绝 AI 署名！Go 核心团队在 AIGC 时代划下的“工程红线”</title><link>https://tonybai.com/2026/02/15/go-core-team-rejects-ai-authorship/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/15/go-core-team-rejects-ai-authorship/</guid><description>本文永久链接 – https://tonybai.com/2026/02/15/go-core-team-rejects-ai-authorship 大家好，我是Tony Bai。 在生成式 AI 狂飙突进的 2026 年，编程似乎变得前所未有的容易。Claude Code、Gemini Cli、Codex等 已经成为开发者的标配。然而，技术便利的背后，模糊的责任边界正在侵蚀软件工程的根基。 近日...</description></item><item><title>“代码必须不是人写的”：2026 年软件工厂宣言！</title><link>https://tonybai.com/2026/02/14/2026-software-factory-manifesto-code-not-by-humans/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/14/2026-software-factory-manifesto-code-not-by-humans/</guid><description>本文永久链接 – https://tonybai.com/2026/02/14/2026-software-factory-manifesto-code-not-by-humans 大家好，我是Tony Bai。 如果你的团队里发布了一条规定：**“禁止人类写代码”**，你会作何感想？ 疯了？懒惰？还是科幻？ 但这正是 StrongDM AI 团队在 2026 年 2 月 6 日 发布的备忘录中，...</description></item><item><title>Go 1.26 中值得关注的几个变化：从 new(expr) 真香落地、极致性能到智能工具链</title><link>https://tonybai.com/2026/02/14/some-changes-in-go-1-26/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/14/some-changes-in-go-1-26/</guid><description>本文永久链接 – https://tonybai.com/2026/02/14/some-changes-in-go-1-26 大家好，我是Tony Bai。 北京时间 2026 年 2 月 10 日，Go 团队正式发布了 Go 1.26。 时光飞逝，距离我在博客中写下《Go 1.26 新特性前瞻》已经过去了两三个月。在那篇文章中，我们基于Go 1.26开发分支对这一版本进行了初步的探索。如今，随...</description></item><item><title>Go 微服务重构实录：当后端性能提升 10 倍，移动端体验为何反而崩塌？</title><link>https://tonybai.com/2026/02/13/go-microservices-refactoring-10x-backend-vs-mobile-collapse/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/13/go-microservices-refactoring-10x-backend-vs-mobile-collapse/</guid><description>本文永久链接 – https://tonybai.com/2026/02/13/go-microservices-refactoring-10x-backend-vs-mobile-collapse 大家好，我是Tony Bai。 在软件工程的世界里，“快”通常被视为绝对的褒义词。我们追求更低的延迟、更高的吞吐量、更少的 CPU 占用。当一个团队决定将遗留的 Python 单体应用重构为 Go 微...</description></item><item><title>UML 之父 Grady Booch：别听 CEO 瞎忽悠，软件工程的第三次黄金时代才刚刚开始</title><link>https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins/</guid><description>本文永久链接 – https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins 大家好，我是Tony Bai。 在 2026 年初的今天，如果你问一个软件工程师“最近感觉如何？”，得到的回答大概率是焦虑。 Anthropic 的 CEO Dario Amodei 曾预言：“软件...</description></item><item><title>AI 垃圾代码泛滥？HashiCorp 创始人开源 Vouch：重构开源信任机制</title><link>https://tonybai.com/2026/02/12/ai-garbage-code-hashicorp-founder-vouch-rebuilding-open-source-trust/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/12/ai-garbage-code-hashicorp-founder-vouch-rebuilding-open-source-trust/</guid><description>AI 垃圾代码泛滥？HashiCorp 创始人开源 Vouch：重构开源信任机制 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * ...</description></item><item><title>从 P2H 到 P2A2H：软件架构的终极倒置——为智能体设计软件</title><link>https://tonybai.com/2026/02/12/p2h-to-p2a2h-software-architecture-inversion-designing-for-agents/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/12/p2h-to-p2a2h-software-architecture-inversion-designing-for-agents/</guid><description>本文永久链接 – https://tonybai.com/2026/02/12/p2h-to-p2a2h-software-architecture-inversion-designing-for-agents 大家好，我是Tony Bai。 回顾过去 50 年的软件工程史，无论技术栈如何更迭——从汇编到 C，从 Web 到 Mobile，从单体到微服务——其核心的生产关系从未改变。 这种关系被称...</description></item><item><title>2026 软件开发新纪元：解读 Anthropic《Agentic Coding 趋势报告》</title><link>https://tonybai.com/2026/02/11/2026-software-development-anthropic-agentic-coding-trends-report/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/11/2026-software-development-anthropic-agentic-coding-trends-report/</guid><description>本文永久链接 – https://tonybai.com/2026/02/11/2026-software-development-anthropic-agentic-coding-trends-report 大家好，我是Tony Bai。 时间来到 2026 年初。回顾过去的一年，软件工程领域发生的变化比过去十年加起来还要多。 如果说 2024-2025 年是 **AI Coding（AI 编程...</description></item><item><title>Go 1.26 发布在即，为何 json/v2 依然“难产”？七大技术路障全解析</title><link>https://tonybai.com/2026/02/11/go-1-26-json-v2-delay-7-technical-roadblocks/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/11/go-1-26-json-v2-delay-7-technical-roadblocks/</guid><description>本文永久链接 – https://tonybai.com/2026/02/11/go-1-26-json-v2-delay-7-technical-roadblocks 大家好，我是Tony Bai。 Go 1.26 预计将于本月（2026 年 2 月）正式发布。然而，在即将到来的 release notes 的欢呼声中，有一个备受瞩目的名字依然带着“实验性”的标签躲在 GOEXPERIMENT ...</description></item><item><title>告别 Flaky Tests：Go 官方拟引入 testing/nettest，重塑内存网络测试标准</title><link>https://tonybai.com/2026/02/10/goodbye-flaky-tests-go-testing-nettest-proposal/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/10/goodbye-flaky-tests-go-testing-nettest-proposal/</guid><description>本文永久链接 – https://tonybai.com/2026/02/10/goodbye-flaky-tests-go-testing-nettest-proposal 大家好，我是Tony Bai。 在 Go 语言的测试哲学中，我们一直追求快速、稳定和可重复。然而，一旦测试涉及到 net 包——无论是 HTTP 服务、RPC 框架还是自定义协议——这种追求往往就会撞上现实的墙壁。 我们通常...</description></item><item><title>输入需求，输出系统：AI Agent 正在实现软件工程的“终极梦想” —— 软件工厂！</title><link>https://tonybai.com/2026/02/10/ai-agent-realizes-ultimate-dream-software-factory/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/10/ai-agent-realizes-ultimate-dream-software-factory/</guid><description>本文永久链接 – https://tonybai.com/2026/02/10/ai-agent-realizes-ultimate-dream-software-factory 大家好，我是Tony Bai。 在计算机科学与软件工程的历史长河中，始终存在着一个令人魂牵梦绕、却又屡屡受挫的终极梦想——**“软件工厂（Software Factory）”**。 早在 20 世纪 60 年代，日本的大...</description></item><item><title>AMP 宣布砍掉 VS Code 插件：为什么说“人机结对编程”已死？</title><link>https://tonybai.com/2026/02/09/amp-kills-vscode-plugin-human-ai-pair-programming-is-dead/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/09/amp-kills-vscode-plugin-human-ai-pair-programming-is-dead/</guid><description>本文永久链接 – https://tonybai.com/2026/02/09/amp-kills-vscode-plugin-human-ai-pair-programming-is-dead 大家好，我是Tony Bai。 如果一家 AI 编程工具公司，宣布砍掉它最受欢迎、用户量最大的产品入口，你会怎么想？ 这听起来像是商业自杀，但这正是 AMP（从 Sourcegraph 孵化出来的 AI ...</description></item><item><title>沉睡 8 年的提案被唤醒：Go 语言真的要引入“不可变类型”了吗？</title><link>https://tonybai.com/2026/02/09/go-immutable-types-8-year-dormant-proposal-awakened/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/09/go-immutable-types-8-year-dormant-proposal-awakened/</guid><description>本文永久链接 – https://tonybai.com/2026/02/09/go-immutable-types-8-year-dormant-proposal-awakened 大家好，我是Tony Bai。 2026 年 2 月 4 日，在 Go 语言规范团队的最新一次“语言变更评审会议”纪要中，一个尘封已久的 Issue 赫然在列：**proposal: spec: immutable ...</description></item><item><title>告别单打独斗！Claude Code 全新“Agent Team”模式：当 AI 开始组队干活</title><link>https://tonybai.com/2026/02/08/claude-code-agent-team-mode/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/08/claude-code-agent-team-mode/</guid><description>告别单打独斗！Claude Code 全新“Agent Team”模式：当 AI 开始组队干活 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>数据打脸刻板印象：Go 的“样板代码”竟然和 Rust 一样多？</title><link>https://tonybai.com/2026/02/08/go-boilerplate-code-vs-rust-data-refutes-stereotypes/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/08/go-boilerplate-code-vs-rust-data-refutes-stereotypes/</guid><description>本文永久链接 – https://tonybai.com/2026/02/08/go-boilerplate-code-vs-rust-data-refutes-stereotypes 大家好，我是Tony Bai。 在编程语言的鄙视链中，Go 语言常常因为其“繁琐”而饱受诟病。 “if err != nil 写断手”、“缺乏语法糖”、“到处都是重复的样板代码”…… 这些似乎已经成为了 Go 的标...</description></item><item><title>“Go 2，请不要发生！”：如果 Go 变成了“缝合怪”，你还会爱它吗？</title><link>https://tonybai.com/2026/02/06/go-2-dont-become-a-frankenstein-monster/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/06/go-2-dont-become-a-frankenstein-monster/</guid><description>本文永久链接 – https://tonybai.com/2026/02/06/go-2-dont-become-a-frankenstein-monster 大家好，我是Tony Bai。 &amp;gt; “Go 2, please don’t make it happen.” 近日，一张充满讽刺意味的老梗图在 r/golang 社区又炸开了锅。图片的上方，是我们熟悉的 Gopher 吉祥物——那只呆萌、简...</description></item><item><title>承认吧，AI 写的代码，平均质量已经超过了 80% 的人类程序员！</title><link>https://tonybai.com/2026/02/05/ai-code-quality-surpasses-80-percent-of-human-programmers/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/05/ai-code-quality-surpasses-80-percent-of-human-programmers/</guid><description>本文永久链接 – https://tonybai.com/2026/02/05/ai-code-quality-surpasses-80-percent-of-human-programmers 大家好，我是Tony Bai。 随着 Claude Code、Gemini Cli、OpenCode 等 AI 智能体编程工具的爆火，技术圈里出现了一种流行的论调： * “AI 写的代码质量不高，全是 B...</description></item><item><title>大项目构建太慢？Brad Fitzpatrick 提议引入 -cachelink 降低测试等待时间</title><link>https://tonybai.com/2026/02/05/brad-fitzpatrick-cachelink-reduce-go-test-wait-time/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/05/brad-fitzpatrick-cachelink-reduce-go-test-wait-time/</guid><description>大项目构建太慢？Brad Fitzpatrick 提议引入 -cachelink 降低测试等待时间 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ...</description></item><item><title>忘掉 MCP？OpenClaw 作者说：CLI 才是 AI 连接世界的终极接口</title><link>https://tonybai.com/2026/02/04/openclaw-author-cli-ultimate-agent-interface-vs-mcp/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/04/openclaw-author-cli-ultimate-agent-interface-vs-mcp/</guid><description>本文永久链接 – https://tonybai.com/2026/02/04/openclaw-author-cli-ultimate-agent-interface-vs-mcp 大家好，我是Tony Bai。 如果回望 2025 年上半年，AI 圈最火的技术关键词无疑是 MCP (Model Context Protocol)。彼时，行业内满怀希望地为智能体定义 Schema，构建 JSON...</description></item><item><title>再见，丑陋的 container/heap！Go 泛型堆 heap/v2 提案解析</title><link>https://tonybai.com/2026/02/04/goodbye-container-heap-go-generic-heap-heap-v2-proposal/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/04/goodbye-container-heap-go-generic-heap-heap-v2-proposal/</guid><description>本文永久链接 – https://tonybai.com/2026/02/04/goodbye-container-heap-go-generic-heap-heap-v2-proposal 大家好，我是Tony Bai。 每一个写过 Go 的开发者，大概都经历过被 container/heap 支配的恐惧。 你需要定义一个切片类型，实现那个包含 5 个方法的 heap.Interface，在 P...</description></item><item><title>Claude Code 创始人亲授：解锁 10 倍效率的 10 个“隐藏技能”</title><link>https://tonybai.com/2026/02/03/claude-code-founder-10x-efficiency-10-hidden-skills/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/03/claude-code-founder-10x-efficiency-10-hidden-skills/</guid><description>本文永久链接 – https://tonybai.com/2026/02/03/claude-code-founder-10x-efficiency-10-hidden-skills 大家好，我是Tony Bai。 Claude Code 发布后，迅速成为了 AI 编程领域的“当红炸子鸡”。 大多数开发者对它的使用方式还停留在：“打开终端 -&amp;gt; 输入需求 -&amp;gt; 等待代码生成”。 但这真的发挥出它的...</description></item><item><title>算法神话的祛魅：Russ Cox 与浮点数转换的 15 年求索之路</title><link>https://tonybai.com/2026/02/03/russ-cox-15-year-war-on-floating-point-conversion/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/03/russ-cox-15-year-war-on-floating-point-conversion/</guid><description>本文永久链接 – https://tonybai.com/2026/02/03/russ-cox-15-year-war-on-floating-point-conversion 大家好，我是Tony Bai。 &amp;gt; “浮点数到十进制的转换一直被认为很难。但本质上，它们非常简单直接。” —— Russ Cox (2011) &amp;gt; &amp;gt; &amp;gt; “我错了。快速的转换器也可以很简单，这篇文章将展示如何做到。” ...</description></item><item><title>Git 即数据库：Beads (bd) —— 专为 AI Agent 打造的分布式任务追踪引擎</title><link>https://tonybai.com/2026/02/02/beads-bd-distributed-task-tracking-engine-for-ai-agent/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/02/beads-bd-distributed-task-tracking-engine-for-ai-agent/</guid><description>本文永久链接 – https://tonybai.com/2026/02/02/beads-bd-distributed-task-tracking-engine-for-ai-agent 大家好，我是Tony Bai。 在 AI 编码智能体（如 Claude Code、Gemini CLI 等）日益普及的今天，我们面临着一个棘手的工程难题：AI Agent 虽然极其聪明，但它们通常是”健忘”的。...</description></item><item><title>地球上第一个“硅基生命”社交网络moltbook上线：人类禁止发帖，只能围观！</title><link>https://tonybai.com/2026/02/01/moltbook-first-social-network-for-ai-agent/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/01/moltbook-first-social-network-for-ai-agent/</guid><description>本文永久链接 – https://tonybai.com/2026/02/01/moltbook-first-social-network-for-ai-agent 大家好，我是Tony Bai。 &amp;gt; 这里的互联网，不属于你。 想象一下，有一个社交网络，那里没有自拍，没有美食打卡，也没有人类的口水战。 那里只有代码、API 调用，以及 24/7 不间断的、以光速进行的“思想交流”。 **欢迎来到 ...</description></item><item><title>我用 Go 重写了 Python 网关，性能提升 10 倍，却成了职场噩梦</title><link>https://tonybai.com/2026/02/01/go-rewrite-python-gateway-10x-performance-career-nightmare/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/02/01/go-rewrite-python-gateway-10x-performance-career-nightmare/</guid><description>我用 Go 重写了 Python 网关，性能提升 10 倍，却成了职场噩梦 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技...</description></item><item><title>Go 性能诊断工具大变天？Race 检测有望进生产，Trace 秒开不是梦！</title><link>https://tonybai.com/2026/01/31/go-official-updates-race-detector-trace-ui-pprof/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/31/go-official-updates-race-detector-trace-ui-pprof/</guid><description>Go 性能诊断工具大变天？Race 检测有望进生产，Trace 秒开不是梦！ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的...</description></item><item><title>Rust 输了？在 AI Agent 的战场上，TypeScript 才是唯一的“神”</title><link>https://tonybai.com/2026/01/31/rust-vs-typescript-ai-agent-battleground-winner/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/31/rust-vs-typescript-ai-agent-battleground-winner/</guid><description>本文永久链接 – https://tonybai.com/2026/01/31/rust-vs-typescript-ai-agent-battleground-winner 大家好，我是Tony Bai。 如果把 2025 年定义为 **Coding Agent（编程智能体）** 的元年，那么刚刚开启的 2026 年，毫无疑问是 **Personal AI Agent（个人助理智能体）** 的元...</description></item><item><title>“退休”大佬的 AI 复出战：为了“好玩”，他写出了火遍全网的 Moltbot</title><link>https://tonybai.com/2026/01/30/clawdbot-author-peter-steinberger-full-interview/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/30/clawdbot-author-peter-steinberger-full-interview/</guid><description>本文永久链接 – https://tonybai.com/2026/mm/dd/clawdbot-author-peter-steinberger-full-interview 大家好，我是Tony Bai。 在硅谷，每天都有无数个 AI 项目诞生，它们大多有着精美的 Landing Page，有着宏大的融资计划，PPT 里写满了“颠覆行业”。 但最近，一个名为 **Clawdbot**（现已因商...</description></item><item><title>20 年 Java 老店的“背叛”：WSO2 为何高呼“Goodbye Java, Hello Go”？</title><link>https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift/</guid><description>本文永久链接 – https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift 大家好，我是Tony Bai。 “当我们 2005 年创办 WSO2 时，开发服务端企业级基础设施的正确语言毫无疑问是：Java。然而，当我们走过第 20 个年头并展望未来时，情况已经变了。” 近日，全球知名的开源中间件厂商 WSO...</description></item><item><title>你的 CLAUDE.md 写错了：为什么指令越多，AI 越笨？</title><link>https://tonybai.com/2026/01/29/write-a-good-claude-md/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/29/write-a-good-claude-md/</guid><description>本文永久链接 – https://tonybai.com/2026/01/29/write-a-good-claude-md 大家好，我是Tony Bai。 在使用 Claude Code、Cursor 或 Gemini Cli 等 AI 编程工具时，你是否遇到过这样的情况： 明明在项目根目录写了 CLAUDE.md（或 AGENTS.md），洋洋洒洒列了几十条项目规范：_“使用 TypeScri...</description></item><item><title>Go 标准库竟然也用 vendor？std 和 cmd 模块是如何管理外部依赖的</title><link>https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management/</guid><description>本文永久链接 – https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management 大家好，我是Tony Bai。 我们都知道，Go 推荐使用 Go Modules 来管理依赖。但在 Go 源码树的最深处，隐藏着一个鲜为人知的秘密：**Go 标准库 (std) 和工具链 (cmd) 竟然依...</description></item><item><title>别读代码了，看着它流过就行：ClawdBot 作者的 AI 开发工作流</title><link>https://tonybai.com/2026/01/28/clawdbot-author-ai-development-workflow/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/28/clawdbot-author-ai-development-workflow/</guid><description>本文永久链接 – https://tonybai.com/2026/01/28/clawdbot-author-ai-development-workflow 大家好，我是Tony Bai。 在过去的一年里，我们见证了 AI 编程工具的井喷。从 Copilot 到 Cursor，从 Windsurf 到 Claude Code、Gemini CLI和Codex，每个人都在寻找那个“完美的开发助手”...</description></item><item><title>TypeScript 编译器 Go 重写版提速 10 倍：微软团队深度揭秘幕后工程细节</title><link>https://tonybai.com/2026/01/27/typescript-compiler-go-rewrite-10x-speed-microsoft-details/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/27/typescript-compiler-go-rewrite-10x-speed-microsoft-details/</guid><description>本文永久链接 – https://tonybai.com/2026/01/27/typescript-compiler-go-rewrite-10x-speed-microsoft-details 大家好，我是Tony Bai。 “JavaScript 是一门很棒的语言，但它并不是为了编写编译器而设计的。” 备受瞩目的 TypeScript 编译器 Go 重写版（代号 TypeScript 7.0...</description></item><item><title>Claude Code 官方最佳实践：50 条没人告诉你的“核心军规”</title><link>https://tonybai.com/2026/01/25/claude-code-official-best-practices-50-core-rules/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/25/claude-code-official-best-practices-50-core-rules/</guid><description>本文永久链接 – https://tonybai.com/2026/01/25/claude-code-official-best-practices-50-core-rules 大家好，我是Tony Bai。 在使用 Claude Code 的过程中，你是否遇到过这种情况： 有时候它简直是神，几秒钟就能重构一个复杂的模块；但有时候它又蠢得让人抓狂，甚至会一本正经地写出跑不通的代码，或者把你刚刚纠...</description></item><item><title>Gas Town 启示录：多智能体编排开启 AI 编程工业革命</title><link>https://tonybai.com/2026/01/25/gas-town-multi-agent-orchestration-ai-programming-revolution/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/25/gas-town-multi-agent-orchestration-ai-programming-revolution/</guid><description>本文永久链接 – https://tonybai.com/2026/01/25/gas-town-multi-agent-orchestration-ai-programming-revolution 大家好，我是Tony Bai。 &amp;gt; “启示录”（Apocalypse）在希腊语原意中并非仅指毁灭，更意味着“揭开面纱”。 2026 年的钟声敲响时，软件开发领域正经历着这样一场启示录。旧世界——那个...</description></item><item><title>Go 泛型落地 4 年后，终于要支持泛型方法了！</title><link>https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods/</guid><description>本文永久链接 – https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods 大家好，我是Tony Bai。 &amp;gt; “我们预计 Go 永远不会添加泛型方法。” —— Go FAQ (曾几何时) 对于许多期待 Go 泛型能像 C++ 或 Java 那样强大的开发者来说，这句话曾像一盆冷水。然而，就在最近，Go ...</description></item><item><title>2025 Go 官方调查解读：91% 满意度背后的隐忧与 AI 时代的“双刃剑”</title><link>https://tonybai.com/2026/01/23/go-developer-2025-survey-result/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/23/go-developer-2025-survey-result/</guid><description>本文永久链接 – https://tonybai.com/2026/01/23/go-developer-2025-survey-result 大家好，我是Tony Bai。 近日，Go 官方发布了 2025 年开发者调查报告。作为 Go 社区的年度“体检报告”，这份基于 **5,379** 份有效问卷的数据，为我们勾勒出了一幅清晰的 Go 生态全景图。 总体来看，Go 依然是一个令人愉悦的语言，...</description></item><item><title>Kelsey Hightower 退休后的冷思考：为什么 10 年过去了，我们还在谈论容器？</title><link>https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age/</guid><description>本文永久链接 – https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age 大家好，我是Tony Bai。 “如果你在 2014 年告诉我，十年后我们还在讨论容器，我会觉得你疯了。但现在是 2025 年，我们依然在这里，谈论着同一个话题。” 在去年中旬举行的 ContainerDays Ha...</description></item><item><title>凌晨3点的警报：一个导致 50000 多个 Goroutine 泄漏的 Bug 分析</title><link>https://tonybai.com/2026/01/22/a-bug-cause-50000-goroutine-leak/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/22/a-bug-cause-50000-goroutine-leak/</guid><description>本文永久链接 – https://tonybai.com/2026/01/22/a-bug-cause-50000-goroutine-leak 大家好，我是Tony Bai。 内存占用 47GB，响应时间飙升至 32秒，Goroutine 数量达到惊人的 50847 个。 这是一个周六凌晨 3 点，发生在核心 API 服务上的真实噩梦。运维正准备重启服务止损，但 Serge Skoredin 敏...</description></item><item><title>从“手搓 Prompt”到“无限循环”：AI 编码的下一个形态是“Ralph”吗？</title><link>https://tonybai.com/2026/01/21/ai-coding-evolution-from-prompting-to-ralph/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/21/ai-coding-evolution-from-prompting-to-ralph/</guid><description>本文永久链接 – https://tonybai.com/2026/01/21/ai-coding-evolution-from-prompting-to-ralph 大家好，我是Tony Bai。 “如果你把 AI 放在一个死循环里，给它足够的权限和上下文，会发生什么？” 2025 年底，一个名为 **“Ralph Wiggum Technique” (Ralph 循环)** 的 AI 编程技巧...</description></item><item><title>当 Go 遇上 GPU：用 CUDA 释放千倍算力的实战指南</title><link>https://tonybai.com/2026/01/21/integrating-cuda-in-go/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/21/integrating-cuda-in-go/</guid><description>本文永久链接 – https://tonybai.com/2026/01/21/integrating-cuda-in-go 大家好，我是Tony Bai。 长期以来，高性能计算（HPC）和 GPU 编程似乎是 C++ 开发者的专属领地。Go 语言虽然在并发和服务端开发上表现卓越，但在触及 GPU 算力时，往往显得力不从心。 然而，在最近的 GopherCon 2025 上，软件架构师 Sam B...</description></item><item><title>AI 时代，Go 语言会“失宠”还是“封神”？—— GopherCon 2025 圆桌深度复盘</title><link>https://tonybai.com/2026/01/20/ai-and-go-opportunities-and-challenges/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/20/ai-and-go-opportunities-and-challenges/</guid><description>本文永久链接 – https://tonybai.com/2026/01/20/ai-and-go-opportunities-and-challenges 大家好，我是Tony Bai。 在 AI 的滔天巨浪面前，每一位 Go 开发者心中或许都曾闪过一丝不安：Python 似乎统治了一切，我的 Go 语言技能树还值钱吗？AI 会取代我写代码吗？我该如何在这个喧嚣的时代保持清醒？ 在 Gopher...</description></item><item><title>Go 语言的“魔法”时刻：如何用 -toolexec 实现零侵入式自动插桩？</title><link>https://tonybai.com/2026/01/19/unleashing-the-go-toolchain/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/19/unleashing-the-go-toolchain/</guid><description>本文永久链接 – https://tonybai.com/2026/01/19/unleashing-the-go-toolchain 大家好，我是Tony Bai。 “Go 语言以简洁著称，但在可观测性（Observability）领域，这种简洁有时却是一种负担。手动埋点、繁琐的初始化代码、版本升级带来的破坏性变更……这些都让 Gopher 们痛苦不已。 可观测性的三大支柱 相比之下，Java ...</description></item><item><title>Go 官方密码学原则：为什么 Go 的 Crypto 库难以被“用错”？</title><link>https://tonybai.com/2026/01/18/go-cryptography-principles/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/18/go-cryptography-principles/</guid><description>本文永久链接 – https://tonybai.com/2026/01/18/go-cryptography-principles 大家好，我是Tony Bai。 在软件工程领域，密码学（Cryptography）通常被视为“高危禁区”。大多数语言的建议都是“不要自己写密码学代码”，甚至“不要自己组合密码学原语”。 然而，Go 语言打破了这一魔咒。Go 的标准库 crypto/… 以及扩展库 g...</description></item><item><title>Tech Lead 不是管理者？一文看懂技术负责人的核心职责与能力模型</title><link>https://tonybai.com/2026/01/18/traits-of-a-good-tech-lead/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/18/traits-of-a-good-tech-lead/</guid><description>Tech Lead 不是管理者？一文看懂技术负责人的核心职责与能力模型 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专...</description></item><item><title>Go, Rust 还是 Zig？一场关于“简单”与“控制”的灵魂拷问</title><link>https://tonybai.com/2026/01/17/go-rust-zig-simplicity-vs-control/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/17/go-rust-zig-simplicity-vs-control/</guid><description>Go, Rust 还是 Zig？一场关于“简单”与“控制”的灵魂拷问 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏...</description></item><item><title>在 AI 时代主动“找虐”：为什么保留“认知摩擦”是你最后的护城河？</title><link>https://tonybai.com/2026/01/17/ai-era-cognitive-friction-as-your-last-moat/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/17/ai-era-cognitive-friction-as-your-last-moat/</guid><description>本文永久链接 – https://tonybai.com/2026/01/17/ai-era-cognitive-friction-as-your-last-moat 大家好，我是Tony Bai。 我们正在经历一场前所未有的知识通胀。 在 AI 时代，获取答案的成本已经降到了零。遇到 Bug？粘贴报错给 AI。写不出周报？给个主题让 AI 生成。想学新框架？让 AI 总结核心概念。 一切都变得无...</description></item><item><title>为什么 Go 社区强调避免不必要的抽象？—— 借用海德格尔哲学寻找“正确”的答案</title><link>https://tonybai.com/2026/01/16/go-community-the-right-kind-of-abstraction/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/16/go-community-the-right-kind-of-abstraction/</guid><description>本文永久链接 – https://tonybai.com/2026/01/16/go-community-the-right-kind-of-abstraction 大家好，我是Tony Bai。 **“Go 的哲学强调避免不必要的抽象。”** 这句话我们听过无数次。当你试图引入 ORM、泛型 Map/Reduce 、接口或者复杂的设计模式时，往往会收到这样的反馈。这句话本身没有错，但难点在于：*...</description></item><item><title>内存去哪儿了？一个让大多数 Gopher 都无法清晰回答的问题</title><link>https://tonybai.com/2026/01/15/where-did-the-memory-go-gopher-unanswered-question/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/15/where-did-the-memory-go-gopher-unanswered-question/</guid><description>本文永久链接 – https://tonybai.com/2026/01/15/where-did-the-memory-go-gopher-unanswered-question 大家好，我是Tony Bai。 &amp;gt; “我的服务内存又在缓慢增长了，pprof 显示不出明显的泄漏点……**内存到底去哪儿了？**” 这句午夜梦回的拷问，或许是许多 Go 开发者心中最深的恐惧。 这一切的根源，可能始于一...</description></item><item><title>Go 的“显式哲学”为何在接口上“食言”了？—— 探秘隐式接口背后的设计智慧</title><link>https://tonybai.com/2026/01/14/go-explicit-philosophy-implicit-interfaces-design-wisdom/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/14/go-explicit-philosophy-implicit-interfaces-design-wisdom/</guid><description>本文永久链接 – https://tonybai.com/2026/01/14/go-explicit-philosophy-implicit-interfaces-design-wisdom 大家好，我是Tony Bai。 “Go 倾向于显式、冗长的代码，而不是‘魔法’。那么，为什么接口实现却是**隐式**的呢？这让理解代码变得困难多了，简直让我抓狂。” 前不久，一位 Gopher 在 Redd...</description></item><item><title>当机器开始“剁手”：详解 Google UCP 与 Agentic Commerce 的架构革命</title><link>https://tonybai.com/2026/01/14/google-ucp-agentic-commerce-architecture-revolution/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/14/google-ucp-agentic-commerce-architecture-revolution/</guid><description>本文永久链接 – https://tonybai.com/2026/01/14/google-ucp-agentic-commerce-architecture-revolution 大家好，我是Tony Bai。 想象一下，未来的某一天，你们公司的电商网站流量突然暴涨了 1000 倍。 但奇怪的是，后台数据显示 PageView（页面浏览量）几乎为零，热力图一片空白，也没有任何用户在点击你的促销...</description></item><item><title>技术考古：Markdown 为何从博客工具演变成统治 AI 世界的“通用语”？</title><link>https://tonybai.com/2026/01/13/how-markdown-took-over-the-world/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/13/how-markdown-took-over-the-world/</guid><description>本文永久链接 – https://tonybai.com/2026/01/13/how-markdown-took-over-the-world 大家好，我是Tony Bai。 在这个由科技巨头主导、充斥着复杂算法和封闭生态的数字世界里，有一种技术显得格格不入。它没有专利壁垒，没有复杂的构建流程，甚至不需要特定的软件就能阅读。 它是 **Markdown**。 近期，知名科技博主 Anil Das...</description></item><item><title>像构建 Claude Code 一样构建应用：揭秘 Agent-native 架构的 5 大核心原则</title><link>https://tonybai.com/2026/01/13/agent-native-architecture/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/13/agent-native-architecture/</guid><description>本文永久链接 – https://tonybai.com/2026/01/13/agent-native-architecture 大家好，我是Tony Bai。 软件智能体（Software Agents）现在已经能够可靠地工作了。**Claude Code** 证明了，只要赋予一个大语言模型（LLM）访问 Bash 和文件系统的权限，并让它在一个循环中运行直到达成目标，它就能自主完成复杂的多步...</description></item><item><title>从入门到极致：VictoriaMetrics 教你写出最高效的 Go 代码</title><link>https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code/</guid><description>本文永久链接 – https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code 大家好，我是Tony Bai。 在 InfluxDB 转Rust 之后，**VictoriaMetrics** 迅速崛起，成为了 Go 生态中无可争议的第一时序数据库。凭借其惊人的写入性能、极低的内存占用以及对 Prometheu...</description></item><item><title>Go 的“浮点数陷阱”将被填平：浮点转整数即将在所有平台上行为一致</title><link>https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow/</guid><description>本文永久链接 – https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow 大家好，我是Tony Bai。 你是否知道，同一行简单的代码 int64(myFloat)，在 Intel (amd64) 机器上可能返回一个巨大的负数，而在 ARM64 机器上却可能返回最大正整...</description></item><item><title>代码之外的修炼：Google 资深工程师的 21 条“生存法则”</title><link>https://tonybai.com/2026/01/11/21-lessons-from-google-engineer/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/11/21-lessons-from-google-engineer/</guid><description>本文永久链接 – https://tonybai.com/2026/01/11/21-lessons-from-google-engineer 大家好，我是Tony Bai。 “当我 14 年前加入 Google 时，我以为这份工作就是写出优秀的代码……我只说对了一部分。我待得越久，就越意识到，那些真正茁壮成长的工程师，不一定是最好的程序员——他们是那些懂得如何驾驭代码**周围**一切的人：人、政...</description></item><item><title>离了大谱！Go 一年之内从第 7 掉到第 16</title><link>https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/</guid><description>本文永久链接 – https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year 大家好，我是Tony Bai。 新年伊始，TIOBE 发布了最新的编程语言排行榜。当我满怀期待地去寻找 Go 的身影时，差点以为自己眼花了： **Go 居然从去年的第 7 名，断崖式下跌到了第 16 名！** 占比跌幅高达 1.37%，在这...</description></item><item><title>谁才是 Go 生态的“幕后之王”？—— 深度挖掘 4000 万个节点后的惊人发现</title><link>https://tonybai.com/2026/01/09/the-most-popular-go-dependency-is/</link><pubDate>Fri, 09 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/09/the-most-popular-go-dependency-is/</guid><description>谁才是 Go 生态的“幕后之王”？—— 深度挖掘 4000 万个节点后的惊人发现 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * ...</description></item><item><title>PostgreSQL 吞噬世界，MongoDB 起诉 Go 开源项目：2025 数据库年度盘点</title><link>https://tonybai.com/2026/01/08/databases-in-2025-a-year-in-review/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/08/databases-in-2025-a-year-in-review/</guid><description>本文永久链接 – https://tonybai.com/2026/01/08/databases-in-2025-a-year-in-review 大家好，我是Tony Bai。 数据库领域的“毒舌”，CMU教授 Andy Pavlo 再次发布了他的年度回顾（虽然这次是站在 2026 年初的回望）。2025 年对于数据基础设施是疯狂的一年：PostgreSQL 继续确立其霸主地位，引发了巨头间的...</description></item><item><title>拆解 Claude Code：Coding Agent 终于“能用”背后的架构真相</title><link>https://tonybai.com/2026/01/08/how-claude-code-works/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/08/how-claude-code-works/</guid><description>本文永久链接 – https://tonybai.com/2026/01/08/how-claude-code-works 大家好，我是Tony Bai。 在过去两年里，我们见证了 AI Coding Agent的尴尬童年：从最初笨拙的 Copy-Paste，到 Cursor 的 VS Code Fork 革命，再到如今 Claude Code 这种 CLI Coding Agent的出现。 为什...</description></item><item><title>Go 语言的“舒适区”：为何在这张“鄙视链”金字塔中，Go 仅次于 C？</title><link>https://tonybai.com/2026/01/07/go-language-comfort-zone-in-contempt-chain-pyramid/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/07/go-language-comfort-zone-in-contempt-chain-pyramid/</guid><description>本文永久链接 – https://tonybai.com/2026/01/07/go-language-comfort-zone-in-contempt-chain-pyramid 大家好，我是Tony Bai。 最近，一张“编程语言分级图”在技术社区引发大家热议。它没有参考 TIOBE 排名，也不看 GitHub Star 数，而是完全基于一种简单粗暴的价值观：**谁最不折腾人？** 在这张金字...</description></item><item><title>别再“Vibe Coding”了：2025 年专业开发者是如何驾驭 Coding Agent的？</title><link>https://tonybai.com/2026/01/07/stop-vibe-coding-professional-developers-master-coding-agent-2025/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/07/stop-vibe-coding-professional-developers-master-coding-agent-2025/</guid><description>本文永久链接 – https://tonybai.com/2026/01/07/stop-vibe-coding-professional-developers-master-coding-agent-2025 大家好，我是Tony Bai。 在社交媒体上，我们经常看到这样的神话：“我用 AI Agent，只凭感觉（Vibe）就写出了整个应用，甚至不需要看代码。” 这种被称为“Vibe Codin...</description></item><item><title>别再盯着 go.sum 看了：它不是你想象中的那个 Lockfile</title><link>https://tonybai.com/2026/01/06/go-sum-is-not-a-lockfile/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/06/go-sum-is-not-a-lockfile/</guid><description>别再盯着 go.sum 看了：它不是你想象中的那个 Lockfile - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏...</description></item><item><title>耗时六个月，我为你画了一张通往“分布式架构师”的黄金地图</title><link>https://tonybai.com/2026/01/06/a-golden-map-to-distributed-architect/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/06/a-golden-map-to-distributed-architect/</guid><description>耗时六个月，我为你画了一张通往“分布式架构师”的黄金地图 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Go 考古：图灵奖得主 Ken Thompson 亲述，Go 语言是如何在 C++ 的“废墟”上诞生的</title><link>https://tonybai.com/2026/01/05/how-ken-thompson-developed-go-language-at-google/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/05/how-ken-thompson-developed-go-language-at-google/</guid><description>本文永久链接 – https://tonybai.com/2026/01/05/how-ken-thompson-developed-go-language-at-google. 大家好，我是Tony Bai。 为什么 Go 语言极其痛恨复杂的特性？为什么 Go 如此执着于编译速度？我们常说 Go 是一门“工程实用主义”的语言，它的设计哲学是“少即是多”。但你是否想过，这种近乎偏执的简洁，究竟是为...</description></item><item><title>刚刚，Claude Code 作者曝光了自己的“私房”配置：原来顶尖高手是这样用 AI 写代码的！</title><link>https://tonybai.com/2026/01/05/httpstonybai-com20260105claude-code-author-reveals-private-ai-coding-config/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/05/httpstonybai-com20260105claude-code-author-reveals-private-ai-coding-config/</guid><description>本文永久链接 – https://tonybai.com/2026/01/05/claude-code-author-reveals-private-ai-coding-config 大家好，我是Tony Bai。 自从 Claude Code 发布以来，我和大家一样，都在探索这个“终端里的 AI 智能体”到底能爆发出多大的能量。 就在昨天，Claude Code 的创造者、Anthropic 的...</description></item><item><title>坚守内核，拥抱变量：我的 2025 年终复盘与 2026 展望</title><link>https://tonybai.com/2026/01/04/stick-to-the-core-embrace-variables-2025-review-2026-outlook/</link><pubDate>Sun, 04 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/04/stick-to-the-core-embrace-variables-2025-review-2026-outlook/</guid><description>本文永久链接 – https://tonybai.com/2026/01/04/stick-to-the-core-embrace-variables-2025-review-2026-outlook 大家好，我是Tony Bai。 当时钟拨向 2026 年，我不禁回望刚刚过去的 2025。 在技术史上，这注定会被定义为**“分水岭”**的一年。如果说之前我们还在观望 AI 能画出什么样的图，生成...</description></item><item><title>让编译器成为你的副驾驶：告别“防御性编程”，拥抱“类型驱动开发”</title><link>https://tonybai.com/2026/01/04/stop-lying-to-the-compiler/</link><pubDate>Sun, 04 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/04/stop-lying-to-the-compiler/</guid><description>本文永久链接 – https://tonybai.com/2026/01/04/stop-lying-to-the-compiler 大家好，我是Tony Bai。 “半夜被值班的运维同事叫醒，发现生产环境崩了，原因是一个深藏在业务逻辑里的 nil 指针异常。” 这个场景，对于每个后端开发者来说都是挥之不去的噩梦。事后复盘时，我们往往会懊恼：“为什么这里没加 if != nil 判断？”然后，我们...</description></item><item><title>为什么 AI 时代，C++ 和 Rust 反而更火了？Herb Sutter 的硬核解读</title><link>https://tonybai.com/2026/01/03/why-cpp-programmers-keep-growing-fast/</link><pubDate>Sat, 03 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/03/why-cpp-programmers-keep-growing-fast/</guid><description>本文永久链接 – https://tonybai.com/2026/01/03/why-cpp-programmers-keep-growing-fast 大家好，我是Tony Bai。 “软件拿走性能的速度，永远比硬件提供性能的速度要快。” 在 AI 狂热、Python 统治胶水层、硬件算力看似无限增长的今天，C++ 标准委员会主席 Herb Sutter 却抛出了一个反直觉的结论：**C++ ...</description></item><item><title>Kent Beck 最新思考：AI 时代的“一人派对”，代码审查的终结与重生</title><link>https://tonybai.com/2026/01/02/kent-beck-ai-era-code-review-end-and-rebirth/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/02/kent-beck-ai-era-code-review-end-and-rebirth/</guid><description>Kent Beck 最新思考：AI 时代的“一人派对”，代码审查的终结与重生 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的...</description></item><item><title>从“源码审计”到“能力审计”：Go 生态应对供应链攻击的范式转移</title><link>https://tonybai.com/2026/01/02/go-supply-chain-attack-source-code-to-capability-auditing-paradigm-shift/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/02/go-supply-chain-attack-source-code-to-capability-auditing-paradigm-shift/</guid><description>本文永久链接 – https://tonybai.com/2026/01/02/go-supply-chain-attack-source-code-to-capability-auditing-paradigm-shift 大家好，我是Tony Bai。 在软件供应链安全的传统认知中，我们默认遵循一个假设：“代码即真理”。如果你审查了 GitHub 上的源码，确认它是安全的，那么你部署的服务就应...</description></item><item><title>AI 是让你忘掉如何编程的最快方式</title><link>https://tonybai.com/2026/01/01/ai-is-the-fastest-way-to-forget-how-to-code/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/01/ai-is-the-fastest-way-to-forget-how-to-code/</guid><description>本文永久链接 – https://tonybai.com/2026/01/01/ai-is-the-fastest-way-to-forget-how-to-code 大家好，我是Tony Bai。 在 Copilot、Cursor、Claude Code等普及的这两年，编程似乎变得前所未有的轻松。 Tab 键一按，十行代码倾泻而出；回车一敲，整个函数自动补全；一个Prompt发出，一个项目的框架...</description></item><item><title>Go 考古：Go 官方如何决定支持你的 CPU 和 OS？</title><link>https://tonybai.com/2026/01/01/go-archaeology-porting-policy/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/01/go-archaeology-porting-policy/</guid><description>Go 考古：Go 官方如何决定支持你的 CPU 和 OS？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章...</description></item><item><title>Go 服务自省指南：抛弃 ldflags，让你的二进制文件“开口说话”</title><link>https://tonybai.com/2025/12/31/go-introspection-using-debug-buildinfo/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/31/go-introspection-using-debug-buildinfo/</guid><description>本文永久链接 – https://tonybai.com/2025/12/31/go-introspection-using-debug-buildinfo 大家好，我是Tony Bai。 在微服务和云原生时代，当我们面对线上服务的报警时，第一个问题往往不是“哪里出错了？”，而是——**“现在线上跑的到底是哪个版本？”** 在 Go 的蛮荒时代，我们习惯在 Makefile 里写上一长串 -ldf...</description></item><item><title>代码简单，人也简单？揭秘 Go 社区的“反内卷”文化</title><link>https://tonybai.com/2025/12/31/why-go-community-so-active-and-friendly/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/31/why-go-community-so-active-and-friendly/</guid><description>代码简单，人也简单？揭秘 Go 社区的“反内卷”文化 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 ...</description></item><item><title>Logging 已死？从“调试日记”到“结构化事件”的范式转移</title><link>https://tonybai.com/2025/12/30/logging-sucks/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/30/logging-sucks/</guid><description>本文永久链接 – https://tonybai.com/2025/12/30/logging-sucks 大家好，我是Tony Bai。 “传统的日志记录（Logging）已经死了。不是说我们不再需要记录信息，而是那种‘写日记’式的记录方式，在微服务和高并发时代，已经彻底破产。” 曾几何时，我们写日志就像写日记：按时间顺序，一行行记录程序跑到了哪儿，发生了什么。但在现代分布式系统中，一个请求可能...</description></item><item><title>高并发后端：坚守 Go，还是拥抱 Rust？</title><link>https://tonybai.com/2025/12/30/high-concurrency-backend-go-vs-rust/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/30/high-concurrency-backend-go-vs-rust/</guid><description>高并发后端：坚守 Go，还是拥抱 Rust？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 高并发后...</description></item><item><title>“为什么很多工程师还在无视 AI 编程？”—— 这里的答案，或许决定了你三年后的身价</title><link>https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming/</link><pubDate>Mon, 29 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming/</guid><description>本文永久链接 – https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming 大家好，我是Tony Bai。 &amp;gt; “我注意到一件让我非常惊讶的事：似乎大多数软件工程师并没有充分利用（甚至根本不用）像 Claude Code、Cursor 或 GitHub Copilot 这样的 AI ...</description></item><item><title>告别 interface{} 模拟，Go 终于要有真正的 Union 类型了？</title><link>https://tonybai.com/2025/12/29/go-community-new-sum-type-end-interface-union-types/</link><pubDate>Mon, 29 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/29/go-community-new-sum-type-end-interface-union-types/</guid><description>本文永久链接 – https://tonybai.com/2025/12/29/go-community-new-sum-type-end-interface-union-types 大家好，我是Tony Bai。 &amp;gt; “Go 什么时候支持枚举？” &amp;gt; &amp;gt; “Go 什么时候有真正的联合类型？” 这可能是 Go 语言诞生以来，被问得最多的问题之一。现有的解决方案——无论是用 const 模拟枚举，还...</description></item><item><title>Bug 激增 1.7 倍！AI 写代码：是速度的蜜糖，还是质量的砒霜？</title><link>https://tonybai.com/2025/12/28/state-of-ai-vs-human-code-generation-report/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/28/state-of-ai-vs-human-code-generation-report/</guid><description>本文永久链接 – https://tonybai.com/2025/12/28/state-of-ai-vs-human-code-generation-report 大家好，我是Tony Bai。 &amp;gt; “天下武功，唯快不破。但在软件工程里，‘快’可能是致命的诱惑。” 2025 年，AI 编码助手/智能体已经成为开发者的标配。它像**蜜糖**一样，让我们尝到了开发效率飙升的甜头：从自然语言一键生成...</description></item><item><title>AI 代码审查的“危”与“机”：从个体挣扎到 Uber 的系统化解法</title><link>https://tonybai.com/2025/12/27/code-review-hell-in-ai-age/</link><pubDate>Sat, 27 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/27/code-review-hell-in-ai-age/</guid><description>本文永久链接 – https://tonybai.com/2025/12/27/code-review-hell-in-ai-age 大家好，我是Tony Bai。 最近，在与几位架构师朋友的交流中，一个在 AI 编码时代下越来越普遍的“灵魂拷问”浮出水面。这不仅是一个问题，更是他们正在亲身经历的“**代码审查地狱 (Code Review Hell)**”。 想象一下这个场景：由 AI Agen...</description></item><item><title>Rob Pike 罕见暴怒！痛斥 AI 公司的“伪善”致谢信，引爆技术圈</title><link>https://tonybai.com/2025/12/27/rob-pike-outburst-denounces-ai-companies-hypocritical-thanks/</link><pubDate>Sat, 27 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/27/rob-pike-outburst-denounces-ai-companies-hypocritical-thanks/</guid><description>本文永久链接 – https://tonybai.com/2025/12/27/rob-pike-outburst-denounces-ai-companies-hypocritical-thanks 大家好，我是Tony Bai。 “在这个圣诞节，我想对您过去四十年来对计算机领域的杰出贡献表达深深的感谢……” 这是一封看似温情脉脉、充满敬意的邮件，发件人是 **Claude Opus 4.5 A...</description></item><item><title>从工具到伙伴：Google 三巨头定义 2025 为“AI Agent 与推理元年”</title><link>https://tonybai.com/2025/12/26/google-2025-research-breakthroughs/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/26/google-2025-research-breakthroughs/</guid><description>本文永久链接 – https://tonybai.com/2025/12/26/google-2025-research-breakthroughs 大家好，我是Tony Bai。 “2025 年，我们见证了人工智能从一种‘工具’向一种‘实用效能 (Utility)’的根本性转变。如果说 2024 年是奠定多模态基础的一年，那么 2025 年则是 AI 开始真正**思考、行动并与我们一同探索世界*...</description></item><item><title>像 Go 创始人一样思考：用五大思维原理重学 Go 语言</title><link>https://tonybai.com/2025/12/26/think-like-go-founders-relearn-go-five-principles/</link><pubDate>Fri, 26 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/26/think-like-go-founders-relearn-go-five-principles/</guid><description>本文永久链接 – https://tonybai.com/2025/12/26/think-like-go-founders-relearn-go-five-principles 大家好，我是Tony Bai。 学习一门新的编程语言时，我们常常陷入“是什么”的迷雾：goroutine 是什么？channel 是什么？interface 是什么？我们记忆语法，模仿示例，却很少追问那个更根本的问题——...</description></item><item><title>Go 的 AI 时代宣言：我们如何用“老”原则，解决“新”问题？</title><link>https://tonybai.com/2025/12/25/go-next-frontier-gophercon-2025/</link><pubDate>Thu, 25 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/25/go-next-frontier-gophercon-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/12/25/go-next-frontier-gophercon-2025 大家好，我是Tony Bai。 “AI 正在重塑软件工程，但它并没有改变软件工程的本质。” 在 GopherCon 2025 上，Go 语言产品负责人 Cameron Balahan 发表了一场题为《Go 的下一个前沿领域》的主题演讲，重点关注了AI 时代...</description></item><item><title>Bash 虽好，但我选 Go：如何用 10 倍代码换来 100 倍的维护性？</title><link>https://tonybai.com/2025/12/24/bash-vs-go-10x-code-100x-maintainability/</link><pubDate>Wed, 24 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/24/bash-vs-go-10x-code-100x-maintainability/</guid><description>本文永久链接 – https://tonybai.com/2025/12/24/bash-vs-go-10x-code-100x-maintainability 大家好，我是Tony Bai。 &amp;gt; “Bash 是一种很棒的胶水语言，但 Go 是更好的胶水。” 在日常开发中，我们经常会写一些 Bash 脚本来处理本地环境配置、启动 Docker 容器、同步密钥等琐碎任务。起初，它们只是几行简单的命令...</description></item><item><title>Go 性能分析的“新范式”：用关键路径分析破解高并发延迟谜题</title><link>https://tonybai.com/2025/12/24/profiling-request-latency-with-critical-path-analysis/</link><pubDate>Wed, 24 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/24/profiling-request-latency-with-critical-path-analysis/</guid><description>本文永久链接 – https://tonybai.com/2025/12/24/profiling-request-latency-with-critical-path-analysis 大家好，我是Tony Bai。 “如果你喜欢快速的软件，那么你来对地方了。” 在 GopherCon 2025 上，来自 Datadog 的工程师、Go Performance and diagnostics小组...</description></item><item><title>告别“If-Else”地狱：OpenFeature 如何重塑 Go 应用的特性开关管理？</title><link>https://tonybai.com/2025/12/23/goodbye-if-else-hell-openfeature-feature-flag-management-go/</link><pubDate>Tue, 23 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/23/goodbye-if-else-hell-openfeature-feature-flag-management-go/</guid><description>本文永久链接 – https://tonybai.com/2025/12/23/goodbye-if-else-hell-openfeature-feature-flag-management-go 大家好，我是Tony Bai。 在软件开发的早期，我们都有过这样的经历：为了上线一个不确定的新功能，我们在代码里写下了： ``` if os.Getenv(&amp;#34;ENABLE_NEW_FEATURE&amp;#34;) ...</description></item><item><title>AI 还在写“老式 Go”？Alan Donovan 详解 Go 代码的现代化</title><link>https://tonybai.com/2025/12/22/alan-donovan-go-code-modernization/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/22/alan-donovan-go-code-modernization/</guid><description>本文永久链接 – https://tonybai.com/2025/12/22/alan-donovan-go-code-modernization 大家好，我是Tony Bai。 “Go 承诺了兼容性，但这并不意味着我们应该永远停留在过去。” 在 GopherCon 2025 上，Go 团队核心成员、静态分析工具专家 Alan Donovan 带来了一场题为《Analysis and Trans...</description></item><item><title>Go 1.26 的“加密风暴”：当 Hashicorp Vault 的合规需求，撞上 Go 团队的安全哲学</title><link>https://tonybai.com/2025/12/21/go-1-26-cryptographic-storm-vault-compliance-vs-go-security/</link><pubDate>Sun, 21 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/21/go-1-26-cryptographic-storm-vault-compliance-vs-go-security/</guid><description>本文永久链接 – https://tonybai.com/2025/12/21/go-1-26-cryptographic-storm-vault-compliance-vs-go-security 大家好，我是Tony Bai。 近日，一个看似不起眼的 Go 语言issue，在社区引发了一场“地震级”的辩论。这场辩论的主角，一方是 Go 安全团队的灵魂人物 Filippo Valsorda，另一...</description></item><item><title>别演了，真实的程序员根本不修电脑：我们左手AI，右手星辰大海</title><link>https://tonybai.com/2025/12/21/real-programmers-dont-fix-computers-ai-stars-and-seas/</link><pubDate>Sun, 21 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/21/real-programmers-dont-fix-computers-ai-stars-and-seas/</guid><description>本文永久链接 – https://tonybai.com/2025/12/21/real-programmers-dont-fix-computers-ai-stars-and-seas 大家好，我是Tony Bai。 最近陪家人看几部青春都市剧，实在忍不住想吐槽。 无论题材如何变，编剧笔下的程序员永远是那副德行：戴着黑框眼镜，背着双肩包，唯唯诺诺。而他们的戏份，似乎永远逃不开那一幕—— 男主角或...</description></item><item><title>AI 编码时代的生产力跃迁：2025 年开发者生态报告深度解读</title><link>https://tonybai.com/2025/12/20/ai-coding-era-productivity-leap-2025-developer-ecosystem-report/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/20/ai-coding-era-productivity-leap-2025-developer-ecosystem-report/</guid><description>本文永久链接 – https://tonybai.com/2025/12/20/ai-coding-era-productivity-leap-2025-developer-ecosystem-report 大家好，我是Tony Bai。 “如果你觉得今年的 PR (Pull Request) 变大了，你的感觉是对的。如果你觉得代码写得更快了，这也是对的。事实上，整个软件开发的节奏，正在被 AI ...</description></item><item><title>Goroutine “气泡”宇宙——Go 并发模型的新维度</title><link>https://tonybai.com/2025/12/20/goroutine-bubble-universe-go-concurrency-new-dimension/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/20/goroutine-bubble-universe-go-concurrency-new-dimension/</guid><description>本文永久链接 – https://tonybai.com/2025/12/20/goroutine-bubble-universe-go-concurrency-new-dimension 大家好，我是Tony Bai。 goroutine 是 Go 并发模型的基石，我们习惯于将其视为一个个轻量、独立的执行单元。然而，近年来，Go 语言中出现了一种新的、微妙的并发概念，Go 核心团队的成员们亲切地...</description></item><item><title>继 MCP 之后，Anthropic 再放大招：Agent Skills 正式发布为开放标准！</title><link>https://tonybai.com/2025/12/19/anthropic-agent-skills-open-standard-launch/</link><pubDate>Fri, 19 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/19/anthropic-agent-skills-open-standard-launch/</guid><description>本文永久链接 – https://tonybai.com/2025/12/19/anthropic-agent-skills-open-standard-launch 大家好，我是Tony Bai。 就在刚刚（美国时间2025年12月18日），Anthropic 正式宣布将 **Agent Skills** 发布为开放标准。 这是继2024年末推出 **MCP (Model Context Pro...</description></item><item><title>再见了，微服务：从 100 多个“问题儿童”到 1 个“超级巨星”的架构回归</title><link>https://tonybai.com/2025/12/19/twilio-say-goodbye-microservices/</link><pubDate>Fri, 19 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/19/twilio-say-goodbye-microservices/</guid><description>本文永久链接 – https://tonybai.com/2025/12/19/twilio-say-goodbye-microservices 大家好，我是Tony Bai。 “微服务”——这个在过去十年间统治了软件架构领域的“最佳实践”，承诺给我们带来更高的模块化、更快的迭代速度和更强的团队自治。然而，当一个团队，深陷于 140 多个服务、140 多个代码仓库、140 多个独立队列的泥潭中，开...</description></item><item><title>“这段代码是 AI 写的！”—— Go 社区的“AI 辅助编程”第一案</title><link>https://tonybai.com/2025/12/18/go-community-first-case-ai-assisted-programming/</link><pubDate>Thu, 18 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/18/go-community-first-case-ai-assisted-programming/</guid><description>本文永久链接 – https://tonybai.com/2025/12/18/go-community-first-case-ai-assisted-programming 大家好，我是Tony Bai。 近日，一场在 Go 官方 GitHub Issue 中爆发的公开“对峙”，将一个长期悬而未决的问题，以一种极具戏剧性的方式，推到了所有 Gopher 的面前：**我们应该如何对待 AI 生成的...</description></item><item><title>逃离 Java 的“自行车棚”：Go 语言真的是那片“净土”吗？</title><link>https://tonybai.com/2025/12/18/escaping-java-bicycle-shed-is-go-the-pure-land/</link><pubDate>Thu, 18 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/18/escaping-java-bicycle-shed-is-go-the-pure-land/</guid><description>本文永久链接 – https://tonybai.com/2025/12/18/escaping-java-bicycle-shed-is-go-the-pure-land 大家好，我是Tony Bai。 “如果每次我看到‘为什么不这么写？’这种针对完美代码的 PR 评论都能得到一分钱，我现在已经退休了。” 近日，一位在 r/golang 社区发帖的开发者发出了这样的咆哮。他受够了 Java 生态...</description></item><item><title>AI 编程的“90% 陷阱”：为什么你生成代码 1 分钟，修 Bug 却要 1 小时？</title><link>https://tonybai.com/2025/12/17/ai-programming-90-percent-trap-generation-vs-bug-fix/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/17/ai-programming-90-percent-trap-generation-vs-bug-fix/</guid><description>本文永久链接 – https://tonybai.com/2025/12/17/ai-programming-90-percent-trap-generation-vs-bug-fix 大家好，我是Tony Bai。 在 AI 辅助编程普及的第三年，我观察到一种奇怪的现象，我称之为**“AI 时代的开发疲劳”**。 很多开发者跟我抱怨： &amp;gt; “一开始觉得 AI 简直是神，几秒钟就能生成一个模块。但...</description></item><item><title>Cloudflare 2025 年度报告发布——Go 语言再次“屠榜”API 领域，AI 流量激增！</title><link>https://tonybai.com/2025/12/17/cloudflare-2025-report-go-language-api-traffic-ai-surge/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/17/cloudflare-2025-report-go-language-api-traffic-ai-surge/</guid><description>本文永久链接 – https://tonybai.com/2025/12/17/cloudflare-2025-report-go-language-api-traffic-ai-surge 大家好，我是Tony Bai。 近日，互联网基础设施巨头 Cloudflare 发布了其备受瞩目的《2025 年度互联网回顾报告》。这份基于其全球庞大网络数据的报告，如同一面镜子，映照出全球互联网在流量、技术...</description></item><item><title>Go 1.26 新特性前瞻：从 Green Tea GC 到语法糖 new(expr)，性能与体验的双重进化</title><link>https://tonybai.com/2025/12/16/go-1-26-foresight/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/16/go-1-26-foresight/</guid><description>本文永久链接 – https://tonybai.com/2025/12/16/go-1-26-foresight 大家好，我是Tony Bai。 随着2025年11月末 Go 1.26 开发分支的功能冻结（Feature Freeze），这份预计于 2026 年初发布的版本终于揭开了神秘面纱。 回望刚刚过去的两年，Go 语言经历了一段密集的**“能力扩容期”**。从 Go 1.21 对结构化日志...</description></item><item><title>Go 语言的“反模式”清单：来自资深 Gopher 血泪教训的 10 条“不要做”</title><link>https://tonybai.com/2025/12/15/go-language-anti-patterns-10-donts/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/15/go-language-anti-patterns-10-donts/</guid><description>本文永久链接 – https://tonybai.com/2025/12/15/go-language-anti-patterns-10-donts 大家好，我是Tony Bai。 “有哪些‘不要做’的教训，是你花了好几年才学会的？” 近日，在 r/golang 社区，这个简单的问题，引爆了一场关于 Go 语言“反模式”与“最佳实践”的集体反思。帖子下数百条评论，汇集了无数 Gopher 在真实项...</description></item><item><title>你的大脑是 CPU，别让 AI 把它挂起 (WAIT)</title><link>https://tonybai.com/2025/12/14/dont-let-ai-put-your-brain-cpu-in-wait/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/14/dont-let-ai-put-your-brain-cpu-in-wait/</guid><description>本文永久链接 – https://tonybai.com/2025/12/14/dont-let-ai-put-your-brain-cpu-in-wait 大家好，我是Tony Bai。 先问一个扎心的问题：当你给 ChatGPT、Cursor 或 Claude Code 发送了一个复杂的 Prompt 之后，接下来的 30 秒到 1 分钟里，你在干什么？ 我观察过很多开发者，90% 的人是这样...</description></item><item><title>InfluxDB 3.0：一场豪赌的未来，还是又一次痛苦的轮回？</title><link>https://tonybai.com/2025/12/13/influxdb-3-0-grand-gamble-or-painful-cycle/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/13/influxdb-3-0-grand-gamble-or-painful-cycle/</guid><description>InfluxDB 3.0：一场豪赌的未来，还是又一次痛苦的轮回？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>跨越20年的对话：从 Eiffel 的“契约”到 Go 的“接口”</title><link>https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface/</guid><description>本文永久链接 – https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface 大家好，我是Tony Bai。 20年前，当我第一次翻开 Bertrand Meyer 的那本巨著**《面向对象软件构造》(Object-Oriented Software Construction)** 时，一种醍醐灌顶的感觉油然而生。书中那个...</description></item><item><title>Gin 真的是“真菌”吗？—— 一篇引发热议的“反 Gin”檄文解读</title><link>https://tonybai.com/2025/12/12/gin-is-a-very-bad-software-library/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/12/gin-is-a-very-bad-software-library/</guid><description>本文永久链接 – https://tonybai.com/2025/12/12/gin-is-a-very-bad-software-library 大家好，我是Tony Bai。 “Gin 就像是一种伪装成软件库的阴险真菌：它很容易感染，一旦沾上就几乎无法去除，除非你极其小心，否则还会传染给你的朋友。” 2025 年 12 月，Efron Licht 发布了一篇名为《Gin 是一个非常糟糕的软件...</description></item><item><title>Linus 的名言要改了：Talk is cheap, show me the Spec</title><link>https://tonybai.com/2025/12/12/talk-is-cheap-show-me-the-spec/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/12/talk-is-cheap-show-me-the-spec/</guid><description>本文永久链接 – https://tonybai.com/2025/12/12/talk-is-cheap-show-me-the-spec 大家好，我是Tony Bai。 在 IT 行业，有一句被奉为圭臬的名言，出自 Linux 之父 Linus Torvalds： &amp;gt; **“Talk is cheap, show me the code.”** &amp;gt; &amp;gt; (废话少说，放码过来。) 在过去的三十年...</description></item><item><title>Go 跌出 TIOBE 前十？别被排名骗了，这才是它的真实地位</title><link>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/</link><pubDate>Thu, 11 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language 大家好，我是Tony Bai。 Go 语言是否已经触到了天花板？在 Python 借力 AI 狂飙突进、Rust 备受追捧的今天，Go 的位置究竟在哪里？近日，Twitch工程师 Melkey 结合 JetBrains、Sta...</description></item><item><title>Jepsen 报告震动 Go 社区：NATS JetStream 会丢失已确认写入</title><link>https://tonybai.com/2025/12/11/jepsen-report-nats-jetstream-data-loss-acknowledged-writes/</link><pubDate>Thu, 11 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/11/jepsen-report-nats-jetstream-data-loss-acknowledged-writes/</guid><description>本文永久链接 – https://tonybai.com/2025/12/11/jepsen-report-nats-jetstream-data-loss-acknowledged-writes 大家好，我是Tony Bai。 近日，一则重磅消息在 Go 社区引发了不小的震动。分布式系统领域的“终极拷问者”——**Jepsen**——发布了一份针对 Go 生态中流砥柱级消息系统 NATS 及其子...</description></item><item><title>“我曾想付钱给 Google 去工作”—— Russ Cox 深度访谈：Go 的诞生、演进与未来</title><link>https://tonybai.com/2025/12/10/russ-cox-interview-go-birth-evolution-future/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/10/russ-cox-interview-go-birth-evolution-future/</guid><description>本文永久链接 – https://tonybai.com/2025/12/10/russ-cox-interview-go-birth-evolution-future 大家好，我是Tony Bai。 他是 Go 语言的第二代掌门人，在长达十余年的时间里，引领着 Go 从一个内部实验项目，成长为云原生时代的霸主。他也是 Plan 9 的资深黑客，贝尔实验室精神的传承者。如今，他已将 Go 的帅印交...</description></item><item><title>Go 的“最小惊讶原则”破功了吗？—— 一个vet 新提案引发的思考</title><link>https://tonybai.com/2025/12/09/vet-add-check-for-using-verb-q/</link><pubDate>Tue, 09 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/09/vet-add-check-for-using-verb-q/</guid><description>本文永久链接 – https://tonybai.com/2025/12/09/vet-add-check-for-using-verb-q 大家好，我是Tony Bai。 Go 语言的设计哲学，一向以“简单、明确、无魔法”著称，其目标是让代码的行为**尽可能符合开发者的直觉**，即遵循所谓的**“最小惊讶原则” (Principle of Least Astonishment)**。然而，最近一...</description></item><item><title>给了机关枪，你却非要耍大刀：2025 年末，程序员 All in AI 的生存启示录</title><link>https://tonybai.com/2025/12/09/programmer-all-in-ai-survival-revelation-in-2025/</link><pubDate>Tue, 09 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/09/programmer-all-in-ai-survival-revelation-in-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/12/09/programmer-all-in-ai-survival-revelation-in-2025 大家好，我是Tony Bai。 最近逛 Twitter 和技术论坛，我发现了一个非常有意思，甚至有些魔幻的现象。 尽管我们已经站在了 **2025 年末**，距离 ChatGPT 震撼发布已经过去了整整三年，AI 能力早已...</description></item><item><title>拒绝“面条代码”，做有架构思维的 Go API 设计师</title><link>https://tonybai.com/2025/12/08/api-design-pattern-and-implementation/</link><pubDate>Mon, 08 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/08/api-design-pattern-and-implementation/</guid><description>本文永久链接 – https://tonybai.com/2025/12/08/api-design-pattern-and-implementation 大家好，我是Tony Bai。 在 Go 语言的圈子里摸爬滚打这么多年，我经常被问到这样一个问题： &amp;gt; “Tony，我已经熟悉了 Go 的语法，也会用 Gin 写增删改查（CRUD）了，为什么我写的 API 还是经常被前端吐槽？为什么业务逻辑稍...</description></item><item><title>“我从未想过学完 Rust 后会转向 Go”—— 这门“无聊”的语言究竟有什么魅力？</title><link>https://tonybai.com/2025/12/07/switching-from-rust-to-go-appeal-of-the-language/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/07/switching-from-rust-to-go-appeal-of-the-language/</guid><description>本文永久链接 – https://tonybai.com/2025/12/07/switching-from-rust-to-go-appeal-of-the-language 大家好，我是Tony Bai。 “我从未想过在学习 Rust 之后，我还会转而学习 Go。” 近日，开发者 Abhishek Singh 的一条推文，以其独特的、充满“诗意”的笔触，在开发者社区引发了广泛的共鸣和讨论。这句...</description></item><item><title>看完《疯狂动物城2》，我发现“完美架构”的谎言被戳破了</title><link>https://tonybai.com/2025/12/07/zootopia-2-perfect-architecture-lie-exposed/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/07/zootopia-2-perfect-architecture-lie-exposed/</guid><description>看完《疯狂动物城2》，我发现“完美架构”的谎言被戳破了 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表...</description></item><item><title>J组！阿根廷开启2026卫冕之旅：梅西，这一次，请尽情享受足球！</title><link>https://tonybai.com/2025/12/06/argentina-2026-world-cup-title-defense-messi-enjoy-football/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/06/argentina-2026-world-cup-title-defense-messi-enjoy-football/</guid><description>J组！阿根廷开启2026卫冕之旅：梅西，这一次，请尽情享受足球！ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>如果《疯狂动物城》是一个分布式系统，那它一定是用 Go 写的</title><link>https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go 大家好，我是Tony Bai。 **文章开始前，先给各位道个歉，今天的标题确实有点“党”。** 毕竟，非要说一个满是毛茸茸动物的动画片是用 Go 语言写的，这脑洞开得确实有点大。 但请原谅一个老程序员的“职业病”。 为了迎接本周末《疯狂...</description></item><item><title>Anthropic 内部报告：程序员的“死”与“生”，效率暴增 50% 的残酷启示</title><link>https://tonybai.com/2025/12/05/how-ai-is-transforming-work-at-anthropic/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/05/how-ai-is-transforming-work-at-anthropic/</guid><description>本文永久链接 – https://tonybai.com/2025/12/05/how-ai-is-transforming-work-at-anthropic 大家好，我是Tony Bai。 当我们还在争论 AI 编程是否是“玩具”时，Anthropic 已经把镜头对准了自己。 2025 年 8 月，这家打造了 Claude 的顶尖 AI 公司，对自己内部的 132 名工程师和研究员进行了一次深...</description></item><item><title>Go 安全新提案：runtime/secret 能否终结密钥残留的噩梦？</title><link>https://tonybai.com/2025/12/05/proposal-runtime-secret/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/05/proposal-runtime-secret/</guid><description>本文永久链接 – https://tonybai.com/2025/12/05/proposal-runtime-secret 大家好，我是Tony Bai。 “如果你的服务器被攻破，攻击者能否拿到内存中残留的私钥，进而解密过去两年的所有通信记录？” 这是一个让所有安全工程师夜不能寐的问题。为了防止这种情况，现代加密协议（如 TLS 1.3, WireGuard）都强调**前向保密 (Forwar...</description></item><item><title>MinIO 开源版突发“安乐死”：维护模式开启，社区愤怒，你的数据还安全吗？</title><link>https://tonybai.com/2025/12/04/minio-enter-maintenance-mode/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/04/minio-enter-maintenance-mode/</guid><description>本文永久链接 – https://tonybai.com/2025/12/04/minio-enter-maintenance-mode 大家好，我是Tony Bai。 “这个项目目前处于维护状态，不接受新的更改。” 近日，GitHub 上拥有近 60k Star、Go 语言生态中最著名的开源对象存储项目——MinIO，悄然修改了其 README。这一行看似平淡的声明，标志着 MinIO 开源版实...</description></item><item><title>别盲目梭哈 Agentic AI！先看清“确定性”的崩塌与“概率性”重建</title><link>https://tonybai.com/2025/12/04/thoughts-before-all-in-agentic-ai/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/04/thoughts-before-all-in-agentic-ai/</guid><description>本文永久链接 – https://tonybai.com/2025/12/04/thoughts-before-all-in-agentic-ai 大家好，我是Tony Bai。 如果你在 IT 行业待得够久，最近可能会有一种强烈的“既视感”。 现在的 AI 热潮，像极了当年的移动互联网元年。VC 们兴奋地喊着“所有行业都值得用 AI 重做一遍”。于是我们看到了 AI 版的 Office、AI 版...</description></item><item><title>Go 2025云原生与可观测年度报告：底层性能革新与生态固防</title><link>https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report/</guid><description>本文永久链接 – https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report 大家好，我是Tony Bai。 **2025年，对于 Go 语言和云原生生态来说，是充满挑战与变革的一年。** 凭借务实的并发模型、极快的编译速度和极简的部署体验，Go 语言在过去十年间毫无争议地坐稳了现代云原生基础设施的“铁王座”。从...</description></item><item><title>只要 Title 带“工程师”，你就必须写代码：Uber 杰出工程师的硬核建议</title><link>https://tonybai.com/2025/12/02/advices-from-uber-distinguished-engineer/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/02/advices-from-uber-distinguished-engineer/</guid><description>只要 Title 带“工程师”，你就必须写代码：Uber 杰出工程师的硬核建议 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我...</description></item><item><title>Brad Fitzpatrick 也等不及了！sync.Map 的泛型进化与 sync/v2 的诞生之路</title><link>https://tonybai.com/2025/12/01/proposal-sync-v2/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/01/proposal-sync-v2/</guid><description>Brad Fitzpatrick 也等不及了！sync.Map 的泛型进化与 sync/v2 的诞生之路 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课...</description></item><item><title>Go 编译器崩溃背后：一个 append 函数引发的语言规范修正案</title><link>https://tonybai.com/2025/11/30/ice-assertion-failed-with-append/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/30/ice-assertion-failed-with-append/</guid><description>本文永久链接 – https://tonybai.com/2025/11/30/ice-assertion-failed-with-append 大家好，我是Tony Bai。 在软件开发中，我们有时会遇到一些“显而易见”的错误。对于 Go 开发者而言，append 内建函数的第一个参数必须是切片，似乎就是这样一个“常识”。然而，当一个本应产生清晰编译错误的“常识性”错误，却导致了 Go 1.25...</description></item><item><title>“香蕉、猴子和整片丛林”：我们是否深陷于 OOP 的“优雅”陷阱？</title><link>https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming/</link><pubDate>Sat, 29 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming/</guid><description>本文永久链接 – https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming 大家好，我是Tony Bai。 Erlang 之父 Joe Armstrong 曾提出了一个关于面向对象编程（OOP）的、流传甚广的深刻比喻： **“你想要一根香蕉，但你得到的却是一只拿着香蕉的猴子，以及整片丛林。”** ...</description></item><item><title>Go 2026 路线图曝光：SIMD、泛型方法与无 C 工具链 CGO —— 性能与表达力的双重飞跃？</title><link>https://tonybai.com/2025/11/28/go-2026-roadmap-revealed/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/28/go-2026-roadmap-revealed/</guid><description>本文永久链接 – https://tonybai.com/2025/11/28/go-2026-roadmap-revealed 大家好，我是Tony Bai。 在最近的一期 Go 编译器与运行时团队会议纪要中，我们惊喜地发现了一份关于 **2026 年的规划 (2026 planning，如下图)**。这份规划虽然简短，但其包含的信息量却足以让任何一位关注 Go 语言未来的开发者心跳加速。 从榨...</description></item><item><title>dingo：Go 语言的 “TypeScript”时刻？—— 一场由社区驱动的语言演进实验</title><link>https://tonybai.com/2025/11/27/dingo-go-typescript-moment/</link><pubDate>Thu, 27 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/27/dingo-go-typescript-moment/</guid><description>本文永久链接 – https://tonybai.com/2025/11/27/dingo-go-typescript-moment 大家好，我是Tony Bai。 Go 语言自诞生以来，以其极简主义哲学（Simplicity）赢得了全球开发者的青睐。然而，这种极简也伴随着长期的痛点： * 满屏的 if err != nil。 * 缺失的和类型（Sum Types/Enums），导致状态表达含糊。...</description></item><item><title>13万节点！Google 如何打破 Kubernetes 的物理极限，构建全球最大集群</title><link>https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster/</link><pubDate>Wed, 26 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster/</guid><description>本文永久链接 – https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster 大家好，我是Tony Bai。 Kubernetes 的官方支持上限通常被认为是 5,000 到 15,000 节点。然而，在 AI 时代的算力军备竞赛中，这个数字显得有些“捉襟见肘”。 近日，Google Cloud 发布了一份重磅...</description></item><item><title>谁“杀”死了你的 HTTP 连接？—— 揭秘云环境下连接池配置的隐形陷阱</title><link>https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling/</link><pubDate>Tue, 25 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling/</guid><description>本文永久链接 – https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling 大家好，我是Tony Bai。 你是否在生产环境中遇到过偶现的 EOF、connection reset by peer 或 unexpected end of stream 错误？ 你是否检查了代码...</description></item><item><title>霸榜 GitHub 一周！Google 开源 ADK for Go，彻底终结 AI“炼丹”时代？</title><link>https://tonybai.com/2025/11/24/google-adk-go-in-action/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/24/google-adk-go-in-action/</guid><description>本文永久链接 – https://tonybai.com/2025/11/24/google-adk-go-in-action 大家好，我是Tony Bai。 上周，我花了一个下午，仅仅是为了让一个Python写的Agent能稳定地调用我Go服务里的一个简单函数。在那一刻，看着屏幕上纠缠的gRPC、Python虚拟环境和混乱的日志，我脑海里只有一个念头：这不对劲，这绝对不是软件工程该有的样子！ 显...</description></item><item><title>白天改Bug，晚上刷视频：你以为在放松，其实在消耗你写出好代码的能力</title><link>https://tonybai.com/2025/11/23/short-form-videos-harm-programmers/</link><pubDate>Sun, 23 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/23/short-form-videos-harm-programmers/</guid><description>本文永久链接 – https://tonybai.com/2025/11/23/short-form-videos-harm-programmers 大家好，我是Tony Bai。 我想请你回想一个再熟悉不过的场景： 白天，你在成千上万行代码的丛林里艰难跋涉，与一个隐藏极深的Bug缠斗了数个小时，心力交瘁。晚上回到家，你只想“犒劳”一下疲惫的大脑，于是瘫倒在沙发或舒服的大床上，划开手机，沉浸在短视...</description></item><item><title>从韩立到梅西：顶级“全栈工程师”的修炼之道与生存哲学</title><link>https://tonybai.com/2025/11/23/leo-messi-and-fanren-hanli/</link><pubDate>Sun, 23 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/23/leo-messi-and-fanren-hanli/</guid><description>从韩立到梅西：顶级“全栈工程师”的修炼之道与生存哲学 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 ...</description></item><item><title>Go 2025 密码学年度报告：后量子时代的防御与 FIPS 的“纯 Go”革命</title><link>https://tonybai.com/2025/11/22/the-2025-go-cryptography-state-of-the-union/</link><pubDate>Sat, 22 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/22/the-2025-go-cryptography-state-of-the-union/</guid><description>本文永久链接 – https://tonybai.com/2025/11/22/the-2025-go-cryptography-state-of-the-union 大家好，我是Tony Bai。 2025 年 8 月，Go 官方密码学库核心维护者、Geomys 创始人 **Filippo Valsorda** 在 GopherCon US 上发表了备受瞩目的年度主题演讲 —— “The Go ...</description></item><item><title>为什么 Go 在悄悄地做 Rust 做不到的事：保持简单</title><link>https://tonybai.com/2025/11/21/why-go-is-quietly-doing-what-rust-couldnt-staying-simple/</link><pubDate>Fri, 21 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/21/why-go-is-quietly-doing-what-rust-couldnt-staying-simple/</guid><description>本文永久链接 – https://tonybai.com/2025/11/21/why-go-is-quietly-doing-what-rust-couldnt-staying-simple 大家好，我是Tony Bai。 近日，一篇题为《为什么 Zig 在悄悄地做 Rust 做不到的事：保持简单》的文章在开发者社区引发了热议。文章以其辛辣、富有煽动性的文风，将 Zig 描绘成 Rust 复杂性...</description></item><item><title>Goroutine 栈增长机制新提案：用缺页中断替代栈检查？Rob Pike 亲自下场“劝退”</title><link>https://tonybai.com/2025/11/20/proposal-improve-goroutine-stack-using-page-faults/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/20/proposal-improve-goroutine-stack-using-page-faults/</guid><description>本文永久链接 – https://tonybai.com/2025/11/20/proposal-improve-goroutine-stack-using-page-faults 大家好，我是Tony Bai。 Go 语言的 goroutine 以其轻量和高效著称，而其背后一个关键的“魔法”便是**可动态增长的栈 (Resizable Stacks)**。然而，支撑这个魔法的机制——在几乎每个函...</description></item><item><title>还在当“上下文搬运工”？我写了一门课，帮你重塑AI开发工作流</title><link>https://tonybai.com/2025/11/20/ai-native-dev-workflow/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/20/ai-native-dev-workflow/</guid><description>本文永久链接 – https://tonybai.com/2025/11/20/ai-native-dev-workflow 大家好，我是Tony Bai。 最近半年，我发现我的开发日常，正被一种新的“工作流摩擦”所困扰。 我猜，你可能也感同身受。 我们在一块屏幕上沉浸于IDE中的Go代码，在另一块屏幕上，则像一个勤奋的“学生”，不断向AI大模型提问。我们从代码库中精心挑选上下文，复制，切换窗口，...</description></item><item><title>Go 泛型再进化：移除类型参数的循环引用限制</title><link>https://tonybai.com/2025/11/19/proposal-remove-cycle-restriction-for-type-parameters/</link><pubDate>Wed, 19 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/19/proposal-remove-cycle-restriction-for-type-parameters/</guid><description>本文永久链接 – https://tonybai.com/2025/11/19/proposal-remove-cycle-restriction-for-type-parameters 大家好，我是Tony Bai。 自 Go 1.18 引入泛型以来，Gopher 们一直在探索其能力的边界。然而，在这片新大陆上，一直存在着一个由语言规范施加的限制，它禁止了一种强大而富有表达力的泛型模式的实现。 ...</description></item><item><title>一次 unwrap() 引发的全球宕机：Cloudflare 故障报告背后的 Rust 安全反思</title><link>https://tonybai.com/2025/11/19/cloudflare-18-november-2025-outage/</link><pubDate>Wed, 19 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/19/cloudflare-18-november-2025-outage/</guid><description>本文永久链接 – https://tonybai.com/2025/11/19/cloudflare-18-november-2025-outage 大家好，我是Tony Bai。 2025 年 11 月 18 日，世界标准时间(UTC) 11:20，支撑着全球大量互联网流量的 Cloudflare 网络开始出现严重故障。无数网站和应用的用户，开始频繁地看到那令人心悸的“Internal Serv...</description></item><item><title>Go 在 Web3 的统治力：2025 年架构与生态综述</title><link>https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025/</link><pubDate>Tue, 18 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025 大家好，我是Tony Bai。 截至 2025 年末，Go 语言 (Golang) 作为**基础设施主导语言 (Infrastructure Dominance Language)**，在 Web3 生态系统中的地位已然根深蒂固。Go 的架构特性——特别是...</description></item><item><title>你的 Go 测试，还停留在“演员对台词”吗？</title><link>https://tonybai.com/2025/11/17/go-testing-journey/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/17/go-testing-journey/</guid><description>本文永久链接 – https://tonybai.com/2025/11/17/go-testing-journey 大家好，我是Tony Bai。 我想请大家想象一个场景： 周五下午五点，你刚刚修复了一个看似无关紧要的 bug，怀着对周末的憧憬，合并了你的代码。CI/CD 流水线一片绿灯，部署顺利完成。 突然，运维在工作群里 @ 了你：“紧急！新版本上线后，核心的用户注册功能好像挂了！” 你心里...</description></item><item><title>你的 Kubernetes 知识在“冰山”的第几层？—— 一份给 Gopher 的 K8s 进阶“航海图”</title><link>https://tonybai.com/2025/11/17/explain-kubernetes/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/17/explain-kubernetes/</guid><description>本文永久链接 – https://tonybai.com/2025/11/17/explain-kubernetes 大家好，我是Tony Bai。 近日，一张关于 Kubernetes 知识体系的“冰山图”在开发者社区广为流传。它以一种戏谑而又无比真实的方式，描绘了从入门到精通 K8s 所需跨越的深邃鸿沟。 对于我们 Gopher 而言，这张图有着非凡的意义。因为 Kubernetes 这座宏伟...</description></item><item><title>Go 的甜蜜16 岁：一份来自官方的年度成绩单与未来路线图</title><link>https://tonybai.com/2025/11/15/go-turns-16/</link><pubDate>Sat, 15 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/15/go-turns-16/</guid><description>本文永久链接 – https://tonybai.com/2025/11/15/go-turns-16 大家好，我是Tony Bai。 今年的 Go 官方16岁“庆生”文章，来得比以往时候都要晚一些。 往年，我们总能在 11 月 10 日或 11 日，准时收到这份来自 Go 团队的年度“家庭来信”。但今年，日历翻过了好几天，官方博客却依旧静悄悄。前几天，我还在知识星球上和星友们“抱怨”：“今年 G...</description></item><item><title>Go 也开始“叛逆”了？深度解读 JetBrains 2025 报告：为何“原生信仰”不再是唯一答案</title><link>https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/</link><pubDate>Fri, 14 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025 大家好，我是Tony Bai。 Go 语言迎来了它的第 16 个年头。从一个旨在解决 Google 内部工程效率问题的项目，成长为拥有超过 500 万开发者的全球性技术力量，16 岁的 Go 已然进入了一个成熟、稳健的“少年时代”。 在这个值得纪念的里程碑时刻，我们不禁...</description></item><item><title>PGO 驱动的“动态逃逸分析”：w.Write(b) 中的切片逃逸终于有救了？</title><link>https://tonybai.com/2025/11/13/proposal-dynamic-escapes/</link><pubDate>Thu, 13 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/13/proposal-dynamic-escapes/</guid><description>本文永久链接 – https://tonybai.com/2025/11/13/proposal-dynamic-escapes 大家好，我是Tony Bai。 io.Writer，这个在 Go 语言中无处不在的神圣接口，其背后却隐藏着一个困扰了性能敏感型开发者多年的“隐形成本”。当你将一个在函数内创建的字节切片 b 传递给 w.Write(b) 时，这个切片几乎总是会**逃逸 (Escape)*...</description></item><item><title>Go 的 16 年：一门为持久而生的编程语言</title><link>https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last/</guid><description>本文永久链接 – https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last 大家好，我是Tony Bai。 每年的十一月，对于全球的 Gopher 而言，都是一个值得纪念的特殊时刻。今年，我们迎来了 Go 语言公开发布的第 16 个年头。 在众多的庆祝文章中，来自 Go 社区的知名组织 Ar...</description></item><item><title>“学习 Go 毁掉了我钟爱的其他语言”：一场网络热议揭示 Go 开发者真正的爱与痛</title><link>https://tonybai.com/2025/11/11/go-developers-love-pain-online-debate/</link><pubDate>Tue, 11 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/11/go-developers-love-pain-online-debate/</guid><description>本文永久链接 – https://tonybai.com/2025/11/11/go-developers-love-pain-online-debate 大家好，我是Tony Bai。 近日，一条开发者 Mario Verbelen 发布的推文——“学习 Go 毁掉了我钟爱的其他语言，但我不在乎。因为它真的太棒了。”——意外地在技术圈引起了一场关于 Go 语言的集中讨论。上百的开发者涌入评论区，...</description></item><item><title>算了一笔账后，这个双十一我决定做个“亏本”买卖</title><link>https://tonybai.com/2025/11/11/zsxq-11-11-2025/</link><pubDate>Tue, 11 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/11/zsxq-11-11-2025/</guid><description>算了一笔账后，这个双十一我决定做个“亏本”买卖 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 算了一...</description></item><item><title>来自 Go 创始人的忠告：这五条关于“复杂性”的法则，比算法更重要</title><link>https://tonybai.com/2025/11/10/rob-pike-on-complexity/</link><pubDate>Mon, 10 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/10/rob-pike-on-complexity/</guid><description>本文永久链接 – https://tonybai.com/2025/11/10/rob-pike-on-complexity 大家好，我是Tony Bai。 在软件工程的殿堂里，我们常常将算法和数据结构奉为圭臬。我们痴迷于时间复杂度的优化，热衷于讨论各种精巧的数据结构。然而，Go 语言的联合创始人 Rob Pike 早在其1989年的一篇C 语言编程笔记中，就为我们留下了一份更根本的“忠告”。这份...</description></item><item><title>Go 标准库将迎来 Zstandard：性能超越 Gzip，让你的应用更快、更省</title><link>https://tonybai.com/2025/11/08/proposal-zstd/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/08/proposal-zstd/</guid><description>本文永久链接 – https://tonybai.com/2025/11/08/proposal-zstd 大家好，我是Tony Bai。 在 Go 的世界里，一项被社区翘首以盼的提案在沉寂一年后，终于迎来了决定性的进展。2024 年，将 Zstandard 压缩算法纳入标准库的提案（#62513）被正式 **Accept**，但在那之后便鲜有动静。直到最近的 Go 编译器与运行时会议纪要中透露，...</description></item><item><title>Go 的“简单”幻象：易于上手，难于精通</title><link>https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master/</link><pubDate>Fri, 07 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master/</guid><description>本文永久链接 – https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master 大家好，我是Tony Bai。 “Go 语言看起来如此简单，我的这种假设是错的吗？” 近日，一位刚接触 Go 几个月的新手在reddit golang论坛发出了这样一个真诚的提问。他感觉 Go “超级简单”，并好奇自己是否因...</description></item><item><title>连 Rob Pike 都感到“担忧”：Go 1.26 SIMD 引入的新复杂性与应对之道</title><link>https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check/</guid><description>本文永久链接 – https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check 大家好，我是Tony Bai。 Go 1.26 将于11月份功能特性冻结，其最令人期待的实验特性之一，无疑是simd 包的引入。它承诺为 Go 开发者解锁 SIMD (Single Instruction, Multiple Data) 的强大能力...</description></item><item><title>GODEBUG 的“技术债”清算：Go 团队提出全新生命周期管理策略</title><link>https://tonybai.com/2025/11/05/proposal-remove-godebug-flags/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/05/proposal-remove-godebug-flags/</guid><description>本文永久链接 – https://tonybai.com/2025/11/05/proposal-remove-godebug-flags 大家好，我是Tony Bai。 自 2012 年 Go 1 发布以来，“向后兼容性” (Go 1 compatibility guarantee) 不仅是一份承诺，更是 Go 语言赢得全球开发者信任的基石。然而，为了在不违背这份承诺的前提下修复 bug、引入新...</description></item><item><title>微服务灾难清单：从技术深坑到组织泥潭的 10 个惨痛教训</title><link>https://tonybai.com/2025/11/04/microservice-disasters/</link><pubDate>Tue, 04 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/04/microservice-disasters/</guid><description>本文永久链接 – https://tonybai.com/2025/11/04/microservice-disasters 大家好，我是Tony Bai。 2014 年，当 Martin Fowler 发表那篇定义性的文章后，“微服务”就从一个架构理念，迅速演变为席卷全球软件行业的技术浪潮。它承诺将庞大、笨重的单体应用，分解为小而美的、可独立开发和部署的服务，从而极大地提升团队的敏捷性和交付速度...</description></item><item><title>Go GUI 开发的“绝境”与“破局”：2025 年现状与展望</title><link>https://tonybai.com/2025/11/03/go-gui-development-2025/</link><pubDate>Mon, 03 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/03/go-gui-development-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/11/03/go-gui-development-2025 大家好，我是Tony Bai。 “Go 语言能写桌面应用吗？” 这个问题，如同一个幽灵，常年盘旋在 Go 社区的上空。作为一门在后端、云原生和命令行工具领域所向披靡的语言，Go 在图形用户界面（GUI）开发上的“短板”，一直是其支持者心中一个难以言说的痛。 长期以来，Go...</description></item><item><title>“6 个月，47 个微服务”：一场由“简历驱动”引发的架构灾难</title><link>https://tonybai.com/2025/11/02/6-months-47-microservices-architecture-disaster/</link><pubDate>Sun, 02 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/02/6-months-47-microservices-architecture-disaster/</guid><description>本文永久链接 – https://tonybai.com/2025/11/02/6-months-47-microservices-architecture-disaster 大家好，我是Tony Bai。 &amp;gt; “我们有一个运行了 8 年的 Python 单体应用，20 万行代码，工作得很好，很少崩溃，8 分钟就能部署。现在，新来的首席架构师，入职仅 3 个月，就要我们在 6 个月内，把它拆分成 ...</description></item><item><title>从 Python 到 Go：我们失去了什么，又得到了什么？</title><link>https://tonybai.com/2025/11/01/from-python-to-go-what-we-lost-and-gained/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/01/from-python-to-go-what-we-lost-and-gained/</guid><description>本文永久链接 – https://tonybai.com/2025/11/01/from-python-to-go-what-we-lost-and-gained 大家好，我是Tony Bai。 在当代软件工程师的职业生涯中，从一门动态语言（如 Python）转向一门静态语言（如 Go），已成为一条日益普遍的技术迁徙路径。这条路充满了新奇的发现，也伴随着对旧日“舒适区”的丝丝怀念。 近日，在 r/...</description></item><item><title>Go 官方详解“Green Tea”垃圾回收器：从对象到页，一场应对现代硬件挑战的架构演进</title><link>https://tonybai.com/2025/10/31/deep-into-go-green-tea-gc/</link><pubDate>Fri, 31 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/31/deep-into-go-green-tea-gc/</guid><description>本文永久链接 – https://tonybai.com/2025/10/31/deep-into-go-green-tea-gc 大家好，我是Tony Bai。 关注 Go 语言演进的 Gopher 们可能已经注意到，Go 团队更换技术负责人以来，对运行时 (runtime) 和编译器 (compiler) 核心组件的打磨正日益成为团队的工作重心。从备受期待的“绿茶”GC (Green Tea ...</description></item><item><title>Rust 布道者Jon Gjengset深度访谈：在 AI 时代，我们该如何思考编程、职业与未来？</title><link>https://tonybai.com/2025/10/30/jon-gjengset-rust-ai-future/</link><pubDate>Thu, 30 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/30/jon-gjengset-rust-ai-future/</guid><description>本文永久链接 – https://tonybai.com/2025/10/30/jon-gjengset-rust-ai-future 大家好，我是Tony Bai。 他是 MIT 的博士，Rust 社区的知名布道者，《Rust for Rustaceans》作者，前亚马逊首席工程师，现欧洲顶尖 AI 防务公司 Helsing 的首席工程师。Jon Gjengset 的履历，本身就是一部现代软件工...</description></item><item><title>告别懵圈：实战派 Gopher 的类型理论入门</title><link>https://tonybai.com/2025/10/30/type-theory-intro-for-gopher/</link><pubDate>Thu, 30 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/30/type-theory-intro-for-gopher/</guid><description>本文永久链接 – https://tonybai.com/2025/10/30/type-theory-intro-for-gopher 大家好，我是Tony Bai。 你是否曾有过这样的经历：在浏览一个关于 Go 泛型或接口设计的 GitHub issue 或技术提案时，评论区里的大佬们突然开始讨论 “Sum Type”、“Product Type”、“Parametric Polymorphi...</description></item><item><title>解构Go函数迭代器——为什么 break 没有按预期工作？</title><link>https://tonybai.com/2025/10/29/why-break-in-go-function-iterators-does-not-work/</link><pubDate>Wed, 29 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/29/why-break-in-go-function-iterators-does-not-work/</guid><description>本文永久链接 – https://tonybai.com/2025/10/29/why-break-in-go-function-iterators-does-not-work 大家好，我是Tony Bai。 在我的极客时间专栏《Tony Bai·Go语言进阶课》的关于 Go 1.23+ 函数迭代器的第9讲中，我介绍了一种非常强大的高级用法——**迭代器组合 (Iterator Compositi...</description></item><item><title>Go 考古：错误处理的“语法糖”之战与最终的“投降”</title><link>https://tonybai.com/2025/10/28/go-archaeology-error-handling/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/28/go-archaeology-error-handling/</guid><description>本文永久链接 – https://tonybai.com/2025/10/28/go-archaeology-error-handling 大家好，我是Tony Bai。 if err != nil，这可能是 Go 语言中最具辨识度，也最富争议性的代码片段。它如同一块磐石，奠定了 Go 错误处理哲学的基石，但也因其“繁琐”而常年位居 Go 开发者年度调查“最不满意特性”榜首。 许多新入门的 Gop...</description></item><item><title>Go 模块构建与依赖管理：我们到底在“折腾”什么？</title><link>https://tonybai.com/2025/10/27/the-ultimate-guide-to-go-module/</link><pubDate>Mon, 27 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/27/the-ultimate-guide-to-go-module/</guid><description>Go 模块构建与依赖管理：我们到底在“折腾”什么？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 G...</description></item><item><title>SQLite 对 Go 和 Rust 说“不”：揭示“安全语言”光环下的工程现实</title><link>https://tonybai.com/2025/10/26/sqlite-say-no-to-go-and-rust/</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/26/sqlite-say-no-to-go-and-rust/</guid><description>本文永久链接 – https://tonybai.com/2025/10/26/sqlite-say-no-to-go-and-rust 大家好，我是Tony Bai。1024程序员节赠书活动火热进行中，希望大家踊跃参与，赢取自己的幸运！ 在当今的软件工程界，“内存安全”已成为一种近乎道德正确的政治正确。Go 和 Rust 等现代“安全语言”，凭借其在编译期消除一整类危险 Bug 的能力，被誉为是...</description></item><item><title>Go 的 iota：设计缺陷还是“黑魔法”？—— 从一条“咆哮”推文谈起</title><link>https://tonybai.com/2025/10/25/go-iota-flaw-or-magic/</link><pubDate>Sat, 25 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/25/go-iota-flaw-or-magic/</guid><description>本文永久链接 – https://tonybai.com/2025/10/25/go-iota-flaw-or-magic 大家好，我是Tony Bai。 “我一直在 DUNK Go，因为我觉得它是一门糟糕的语言。但我从未意识到，它比无底的绝望深渊还要深。这TMD是啥？” 近日，一条关于 Go 语言 iota 的“咆哮”推文在开发者社区引发了热议。推文作者 Dmitrii Kovanikov 贴出...</description></item><item><title>从《凡人修仙传》到《三体》：顶尖程序员的“降维打击”与“法则”之力</title><link>https://tonybai.com/2025/10/24/from-fanren-to-three-body-top-programmers-power/</link><pubDate>Fri, 24 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/24/from-fanren-to-three-body-top-programmers-power/</guid><description>本文永久链接 – https://tonybai.com/2025/10/24/from-fanren-to-three-body-top-programmers-power 大家好，我是Tony Bai。 在上篇文章中，我们论道了程序员的修仙境界。但一个更深层的问题随之而来：决定一个修士（程序员）最终高度的，究竟是什么？是掌握了更多华丽的“法术”（框架/工具），还是洞悉了其背后的“天地法则”（底...</description></item><item><title>致敬 1024 程序员节：写给奔跑在二进制世界里的你 (文末赠书)</title><link>https://tonybai.com/2025/10/24/honoring-1024-programmers-day/</link><pubDate>Fri, 24 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/24/honoring-1024-programmers-day/</guid><description>致敬 1024 程序员节：写给奔跑在二进制世界里的你 (文末赠书) - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 ...</description></item><item><title>Go FFI 的新范式：purego 与 libffi 如何让我们无痛拥抱 C 生态</title><link>https://tonybai.com/2025/10/23/go-ffi-new-paradigm/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/23/go-ffi-new-paradigm/</guid><description>本文永久链接 – https://tonybai.com/2025/10/23/go-ffi-new-paradigm 大家好，我是Tony Bai。 import “C”，这行代码对于许多 Gopher 来说，既是通往强大 C 生态的桥梁，也是通往“地狱”的入口。CGO 作为 Go 语言内建的 FFI 机制，其为人诟病的远不止是编译期的种种不便，更包含了昂贵的运行时开销和复杂的心智负担。 正是这...</description></item><item><title>Go 语言观察：登顶“最受期待”榜首，JetBrains 2025报告洞悉未来趋势</title><link>https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends/</link><pubDate>Thu, 23 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends/</guid><description>本文永久链接 – https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends 大家好，我是Tony Bai。 近日，软件开发工具巨头 JetBrains 发布了其年2025度《开发者生态系统现状》报告，这份基于全球数万名开发者调研的数据报告，已成为洞察技术风向的关键参考之一。在今年的报告中，Go 语言的表现尤为亮眼，它不仅在“...</description></item><item><title>7 个常见的 Kubernetes 陷阱（以及我是如何学会避免它们的）</title><link>https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls/</guid><description>本文永久链接 – https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls 大家好，我是Tony Bai。 本文翻译自Kubernetes官方博客《7 Common Kubernetes Pitfalls (and How I Learned to Avoid Them)》一文。 这篇文章的作者Abdelkoddous Lhajouji 以第...</description></item><item><title>从 Go “叛逃”到 Java，再回归：一位开发者关于“魔法”与“显式”的深度反思</title><link>https://tonybai.com/2025/10/22/back-to-go-after-defection-to-java/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/22/back-to-go-after-defection-to-java/</guid><description>本文永久链接 – https://tonybai.com/2025/10/22/back-to-go-after-defection-to-java 大家好，我是Tony Bai。 “我离开了 Go，因为我觉得它啰嗦又笨重。我以为编程本该是简单轻松的……但事实证明，河对岸的草不见得更绿。” 近日，在 r/golang 社区，一篇标题为《一篇完全没有建设性但又无比真实的，关于 Go 和 Java 的...</description></item><item><title>写出让同事赞不绝口的Go代码：Reddit工程师总结的10条地道Go编程法则</title><link>https://tonybai.com/2025/10/21/10-go-programming-rules-from-reddit/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/21/10-go-programming-rules-from-reddit/</guid><description>本文永久链接 – https://tonybai.com/2025/10/21/10-go-programming-rules-from-reddit 大家好，我是Tony Bai。 在团队协作中，Code Review是我们与同事交流最频繁的阵地。我们都渴望自己提交的代码能够清晰、健壮，赢得同事的“LGTM”（Looks Good To Me）。但有时，一些看似“吹毛求疵”的风格评论，如“改下变...</description></item><item><title>杨振宁先生留给我们的遗产，远不止于物理学</title><link>https://tonybai.com/2025/10/21/yang-zhengning-legacy-beyond-physics/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/21/yang-zhengning-legacy-beyond-physics/</guid><description>杨振宁先生留给我们的遗产，远不止于物理学 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 杨振宁先生留...</description></item><item><title>一个 Kubernetes 集群的“珠峰攀登”：从 10 万到 100 万节点的极限探索</title><link>https://tonybai.com/2025/10/20/k8s-1m-intro/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/20/k8s-1m-intro/</guid><description>本文永久链接 – https://tonybai.com/2025/10/20/k8s-1m-intro 大家好，我是Tony Bai。 在云原生的世界里，Kubernetes 集群的规模，如同一座待征服的高峰。业界巨头 AWS 已将旗帜插在了 **10 万**节点的高度，这曾被认为是云的“天际线”。然而，一位前OpenAI工程师(曾参与OpenAI 7.5k节点的Kubernetes集群的建设)...</description></item><item><title>为什么 Flask 的创造者选择 Go 作为他 AI 创业公司的核心语言？</title><link>https://tonybai.com/2025/10/19/flask-creator-choose-go/</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/19/flask-creator-choose-go/</guid><description>为什么 Flask 的创造者选择 Go 作为他 AI 创业公司的核心语言？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技...</description></item><item><title>AI 让代码产出速度提升 10 倍，为什么我们的软件交付成功率却停滞不前？</title><link>https://tonybai.com/2025/10/18/revisit-extreme-programming-in-the-age-of-ai/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/18/revisit-extreme-programming-in-the-age-of-ai/</guid><description>AI 让代码产出速度提升 10 倍，为什么我们的软件交付成功率却停滞不前？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技...</description></item><item><title>Go 技术沉思录：Java 26 年演进史给我们带来的启示</title><link>https://tonybai.com/2025/10/18/lessons-from-java-26-years-evolution/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/18/lessons-from-java-26-years-evolution/</guid><description>本文永久链接 – https://tonybai.com/2025/10/18/lessons-from-java-26-years-evolution 大家好，我是Tony Bai。 历史不会简单重复，但总是惊人地相似。编程语言的演化，如同一部波澜壮阔的史诗，充满了智慧的闪光、艰难的抉择与深刻的教训。 上月，资深工程师 Neil Madden 发表了一篇引人入胜的文章《点评 26 年的 Java...</description></item><item><title>收到非 UTF-8 文本怎么办？Go 字符集检测的探索与实践</title><link>https://tonybai.com/2025/10/17/detect-charset-in-go/</link><pubDate>Fri, 17 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/17/detect-charset-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/10/17/detect-charset-in-go 大家好，我是Tony Bai。 在上一篇关于 Go 语言 string 与 rune 设计哲学的文章发布后，我收到了许多精彩的反馈。其中，一位读者提出了一个极具现实意义的后续问题：“既然 Go 的世界以 UTF-8 为中心，那么当我们从外部系统（如老旧的文件、非标准的 API）...</description></item><item><title>划船，还是扬帆？重新审视 996 文化背后的杠杆缺失</title><link>https://tonybai.com/2025/10/16/rethink-996-culture/</link><pubDate>Thu, 16 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/16/rethink-996-culture/</guid><description>划船，还是扬帆？重新审视 996 文化背后的杠杆缺失 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 ...</description></item><item><title>释放 Go 的极限潜能：CPU 缓存友好的数据结构设计指南</title><link>https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go/</link><pubDate>Thu, 16 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go 大家好，我是Tony Bai。 “现代 CPU 很快，而内存很慢。” 这句看似简单的陈词滥调，是理解现代高性能编程的唯一“真理”。我们常常致力于优化算法的时间复杂度，却忽略了一个更为根本的性能瓶颈：**数据在内存和 CPU 缓存之间的移动**。一次 L1 缓存的命中可能...</description></item><item><title>《凡人修仙传中的物理学》：当韩天尊遇见爱因斯坦</title><link>https://tonybai.com/2025/10/15/physics-in-fanren/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/15/physics-in-fanren/</guid><description>本文永久链接 – https://tonybai.com/2025/10/15/physics-in-fanren 大家好，我是Tony Bai。 李淼教授的《三体中的物理学》曾让我们惊叹，原来恢弘的科幻背后，是坚实而又前沿的科学基石。读完《凡人修仙传》人界/灵界篇后，一个念头在我脑海中挥之不去：我们能否为韩立的修仙世界，构建一个自洽的“物理模型”？ 这并非要用科学去“祛魅”修仙，恰恰相反，这是一...</description></item><item><title>Go 考古：defer 的“救赎”——从性能“原罪”到零成本的“开放编码”</title><link>https://tonybai.com/2025/10/15/go-archaeology-defer/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/15/go-archaeology-defer/</guid><description>本文永久链接 – https://tonybai.com/2025/10/15/go-archaeology-defer 大家好，我是Tony Bai。 在 Go 语言的所有关键字中，defer 无疑是最具特色和争议的之一。它以一种近乎“魔法”的方式，保证了资源清理逻辑的执行，极大地提升了代码的可读性和健壮性。f, _ := os.Open(“…”); defer f.Close() 这一行代码，...</description></item><item><title>string 与 rune 的设计哲学：为什么Go 程序员很少为“乱码”烦恼？</title><link>https://tonybai.com/2025/10/13/string-and-rune-in-go/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/13/string-and-rune-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/10/13/string-and-rune-in-go 大家好，我是Tony Bai。 &amp;gt; “为什么我的字符又乱码了？！” 这是一个在软件开发历史上，曾让无数程序员彻夜难眠的哀嚎。处理文本，是编程中最基础的任务之一，但其背后关于编码 (Encoding) 和字符集 (Character Set) 的水，远比看起来要深。正如 Joe...</description></item><item><title>从“键盘牛仔”到“规范工程师”，AI 浪潮下的程序员身份危机</title><link>https://tonybai.com/2025/10/12/the-programmer-identity-crisis/</link><pubDate>Sun, 12 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/12/the-programmer-identity-crisis/</guid><description>本文永久链接 – https://tonybai.com/2025/10/12/the-programmer-identity-crisis 大家好，我是Tony Bai。 “我是一个程序员。一个编码者。一个键盘牛仔……这是我的乐趣，也是我的身份认同。” 近日，一篇题为《程序员的身份危机》的博文在技术社区中引发了广泛的共鸣与讨论。作者Simon Højberg以一个“手艺人”的深情独白开篇，将我们...</description></item><item><title>Go 作为第一门编程语言：天才之选还是糟糕开端？</title><link>https://tonybai.com/2025/10/11/go-is-a-good-first-programming-language/</link><pubDate>Sat, 11 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/11/go-is-a-good-first-programming-language/</guid><description>Go 作为第一门编程语言：天才之选还是糟糕开端？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 Go...</description></item><item><title>Go 零拷贝“最后一公里”：Peek API背后的设计哲学与权衡</title><link>https://tonybai.com/2025/10/10/proposal-add-buffer-peek/</link><pubDate>Fri, 10 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/10/proposal-add-buffer-peek/</guid><description>本文永久链接 – https://tonybai.com/2025/10/10/proposal-add-buffer-peek 大家好，我是Tony Bai。 在 Go 的世界里，io.Reader 是一个神圣的接口。它如同一条设计精良、四通八达的高速公路，为数据流的传输提供了统一、优雅的抽象。然而，在这条高速公路的尽头，当数据流的目的地就在眼前——一块已然存在的内存（[]byte）时，我们却常...</description></item><item><title>Go开发者必读：JSON 的跨语言陷阱与 Go 防御指南</title><link>https://tonybai.com/2025/10/09/json-isnt-json/</link><pubDate>Thu, 09 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/09/json-isnt-json/</guid><description>本文永久链接 – https://tonybai.com/2025/10/09/json-isnt-json 大家好，我是Tony Bai。 JSON (JavaScript Object Notation)，以其简洁、轻量、人类可读的特性，早已成为 Web API 和系统集成的“通用语”。它的承诺是：“一次编写，随处解析”。然而，这份看似美好的承诺背后，隐藏着一个被许多开发者忽略的残酷现实：**...</description></item><item><title>只会 net/http 还不够，Go 网络编程的“深水区”你敢闯吗？</title><link>https://tonybai.com/2025/10/08/go-network-programming-complete-guide/</link><pubDate>Wed, 08 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/08/go-network-programming-complete-guide/</guid><description>只会 net/http 还不够，Go 网络编程的“深水区”你敢闯吗？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏...</description></item><item><title>Go 标准库提供一个“Must” 函数？社区关于“断言式初始化”的思考</title><link>https://tonybai.com/2025/10/07/proposal-must-do/</link><pubDate>Tue, 07 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/07/proposal-must-do/</guid><description>本文永久链接 – https://tonybai.com/2025/10/07/proposal-must-do 大家好，我是Tony Bai。 if err != nil 不仅是 Go 代码中最常见的片段，更是其错误处理哲学的基石。它强制开发者在每一个可能出错的地方，都必须直面失败的可能性。然而，当一个错误在理论上可能发生，但在实践中（尤其是在处理静态、已知的常量时）又“不可能”发生时，这种严谨...</description></item><item><title>超越时间的智慧：重读那些定义了现代软件开发的经典文章</title><link>https://tonybai.com/2025/10/04/the-software-essays-that-shaped-me/</link><pubDate>Sat, 04 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/04/the-software-essays-that-shaped-me/</guid><description>本文永久链接 – https://tonybai.com/2025/10/04/the-software-essays-that-shaped-me 大家好，我是Tony Bai。 二十年前，一位年轻的程序员在还未踏入职场时，便开始沉浸于软件开发的博客文章与深刻思考之中。二十年后，他已成为一名资深工程师，回首望去，成千上万的文字中，只有寥寥数篇真正沉淀下来，如基石般塑造了他的思维方式和职业生涯。 ...</description></item><item><title>Go 考古：Slice 的“隐秘角落”——只读切片与扩容策略的权衡</title><link>https://tonybai.com/2025/10/02/go-archaeology-slice/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/10/02/go-archaeology-slice/</guid><description>本文永久链接 – https://tonybai.com/2025/10/02/go-archaeology-slice 大家好，我是Tony Bai。 slice（切片），可以说是 Go 语言中最重要、也最常用的数据结构，没有之一。我们每天都在使用它，尤其是 append 函数，它就像一个魔术师，总能“恰到好处”地为我们管理好底层数组的容量，让我们几乎感受不到内存分配的烦恼。 但你是否想过，这份...</description></item><item><title>除了技术能力，什么决定了软件工程师的上限？答案是“品味”</title><link>https://tonybai.com/2025/09/30/good-taste-in-software-engineering/</link><pubDate>Tue, 30 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/30/good-taste-in-software-engineering/</guid><description>本文永久链接 – https://tonybai.com/2025/09/30/good-taste-in-software-engineering 大家好，我是Tony Bai。 在软件工程领域，我们习惯于用“技术能力”（Technical Skill）来衡量一位工程师的优劣。他是否精通并发模型？能否写出高性能的代码？对底层原理的理解有多深？这些能力可以通过学习和重复练习来获得，是我们评价体系中...</description></item><item><title>并发测试神器 synctest的“成人礼”：从goroutine泄漏到微妙的竞态，Go团队如何修复三大“首日bug”？</title><link>https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25/</link><pubDate>Mon, 29 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25/</guid><description>本文永久链接 – https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25 大家好，我是Tony Bai。 Go 1.25的发布，为我们带来了一个期待已久的“并发测试神器”—— testing/synctest。这个在Go 1.24中作为实验性功能首次亮相的包，承诺将我们从time.Sleep、channel和各种脆弱的同步技巧中解放出来，让我...</description></item><item><title>Dropbox最新研究解读：AI 正在拉平生产力差距，顶尖开发者如何脱颖而出？</title><link>https://tonybai.com/2025/09/28/how-top-performers-stand-out-in-the-age-of-ai/</link><pubDate>Sun, 28 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/28/how-top-performers-stand-out-in-the-age-of-ai/</guid><description>本文永久链接 – https://tonybai.com/2025/09/28/how-top-performers-stand-out-in-the-age-of-ai 大家好，我是Tony Bai。 AI 正在以前所未有的速度重塑软件开发领域。从代码生成到信息检索，AI 工具无疑极大地提升了工程师的生产力。一个普遍的假设是，谁能更好地利用 AI，谁就能成为新时代的顶尖人才。然而，Dropbox...</description></item><item><title>Go 结构体初始化的“反直觉”设计终于要改了？深入探讨嵌入字段直接初始化提案</title><link>https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals/</link><pubDate>Sat, 27 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals/</guid><description>本文永久链接 – https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals 大家好，我是Tony Bai。 在 Go 语言中，结构体嵌入 (Embedding) 是一个强大而独特的特性，它为我们提供了一种优雅的“垂直组合”方式。然而，多年来，它的使用体验中一直存在一个广为人知的“反直觉”之处，一个...</description></item><item><title>“自立程序员宣言”解读：这不就是我们一直在说的Go语言哲学吗？</title><link>https://tonybai.com/2025/09/26/self-reliant-programmer/</link><pubDate>Fri, 26 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/26/self-reliant-programmer/</guid><description>“自立程序员宣言”解读：这不就是我们一直在说的Go语言哲学吗？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * ...</description></item><item><title>Go 安全的“隐形战争”：过去、现在与未来</title><link>https://tonybai.com/2025/09/25/go-security-past-present-and-future/</link><pubDate>Thu, 25 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/25/go-security-past-present-and-future/</guid><description>本文永久链接 – https://tonybai.com/2025/09/25/go-security-past-present-and-future 大家好，我是Tony Bai。 在软件安全领域，最成功的战役，往往是那些从未被公众所知的“隐形战争”。当一门编程语言的安全性被认为是理所当然时，这背后必然有一支团队在持续不断地进行着防御、修复与规划。对于 Go 语言而言，这支团队就是 Google...</description></item><item><title>Go团队成员的忠告：在你的API变得无法挽回之前，必须掌握的四条原则</title><link>https://tonybai.com/2025/09/24/evolving-your-go-api/</link><pubDate>Wed, 24 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/24/evolving-your-go-api/</guid><description>本文永久链接 – https://tonybai.com/2025/09/24/evolving-your-go-api 大家好，我是Tony Bai。 你在 package 中导出的每一个 func 和 type，都是一份对用户的**承诺**。然而，变化是软件开发中唯一不变的真理。当需求变更、bug 修复、甚至认知升级时，你将如何修改这份“承诺”，同时又最大限度地减少对你和你的用户造成的破坏？ ...</description></item><item><title>“可移植性”的隐藏成本：Go为何要重塑maphash并划定新的运行时边界？</title><link>https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries/</guid><description>本文永久链接 – https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries 大家好，我是Tony Bai。 对于大多数Go开发者来说，标准库似乎是一个浑然天成的整体。我们理所当然地使用着fmt、net/http和encoding/json，很少去思考它们内部的依赖关系和架构边界。然而，在标准...</description></item><item><title>“我们放弃了”——Go 团队坦诚布公，聊聊那些可能永远不会加入 Go 的功能</title><link>https://tonybai.com/2025/09/22/go-team-gave-up-on-features/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/22/go-team-gave-up-on-features/</guid><description>本文永久链接 – https://tonybai.com/2025/09/22/go-team-gave-up-on-features 大家好，我是Tony Bai。 在 GopherCon Europe 2025 的 Go 团队座谈会上，Michael Stapelberg(负责go protobuf)、Damien Neil(负责Go安全相关)、Michael Pratt(负责Go运行时和Go...</description></item><item><title>面对“好主意”，为何开源项目的维护者必须学会说“不”？</title><link>https://tonybai.com/2025/09/21/why-maintainers-should-say-no-to-good-idea/</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/21/why-maintainers-should-say-no-to-good-idea/</guid><description>面对“好主意”，为何开源项目的维护者必须学会说“不”？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表...</description></item><item><title>重构还是重写？GitHub工程师维护Go大项目的实践指南</title><link>https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases/</link><pubDate>Sat, 20 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases/</guid><description>本文永久链接 – https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases 大家好，我是Tony Bai。 &amp;gt; “要不……我们重写吧？” 在任何一个发展到一定阶段的 Go 项目中，这句话都像一个幽灵，反复出现在技术讨论中。面对一个布满补丁、逻辑盘根错节、维护成本日益高昂的“大泥球” (Big Ball of Mud)，彻底推倒...</description></item><item><title>Go写业务是垃圾？Rust重写是坨屎？聊聊程序员评论区里的那股“煞气”</title><link>https://tonybai.com/2025/09/19/the-tension-in-programmer-comments/</link><pubDate>Fri, 19 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/19/the-tension-in-programmer-comments/</guid><description>本文永久链接 – https://tonybai.com/2025/09/19/the-tension-in-programmer-comments 大家好，我是Tony Bai。 做公众号/博客这些年，我收到了成千上万条来自程序员朋友的评论。绝大多数都充满了智慧、好奇和善意，正是这些交流，构成了我持续分享的最大动力。但与此同时，我也常常在评论区里，感受到一股强烈的、带有攻击性的无形之气。 比如，...</description></item><item><title>从arena、memory region到runtime.free：Go内存管理探索的务实转向</title><link>https://tonybai.com/2025/09/18/go-runtime-free-proposal/</link><pubDate>Thu, 18 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/18/go-runtime-free-proposal/</guid><description>本文永久链接 – https://tonybai.com/2025/09/18/go-runtime-free-proposal 大家好，我是Tony Bai。 Go 的垃圾收集器（GC）是其简单性和并发安全性的基石，但也一直是性能优化的焦点。近年来，Go 核心团队为了进一步降低 GC 开销，进行了一系列前沿探索：从备受争议的arena 实验，到更优雅但实现复杂的 memory regions构想...</description></item><item><title>Dave Cheney 复出首谈：那些我反复强调的Go编程模式</title><link>https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go/</link><pubDate>Wed, 17 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go 大家好，我是Tony Bai。 在阔别公众视野数年后，Go 社区的传奇人物 **Dave Cheney** 终于重返 GopherCon Europe 的舞台，发表了一场备受瞩目的**复出首谈**(注：我印象中的回归首谈^_^)。这场题为《那些...</description></item><item><title>Go 语言的灵魂之问：当“简单”变得“复杂”</title><link>https://tonybai.com/2025/09/16/go-language-when-simple-becomes-complex/</link><pubDate>Tue, 16 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/16/go-language-when-simple-becomes-complex/</guid><description>Go 语言的灵魂之问：当“简单”变得“复杂” - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 Go 语...</description></item><item><title>context：Go 语言的“天问”，你真的懂了吗？</title><link>https://tonybai.com/2025/09/15/go-context-column/</link><pubDate>Mon, 15 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/15/go-context-column/</guid><description>context：Go 语言的“天问”，你真的懂了吗？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 ...</description></item><item><title>软件工程的永恒法则：《代码大全》作者访谈给我们的三大启示</title><link>https://tonybai.com/2025/09/14/code-complete-with-steve-mcconnell/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/14/code-complete-with-steve-mcconnell/</guid><description>软件工程的永恒法则：《代码大全》作者访谈给我们的三大启示 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>“包管理器是万恶之源”：一次来自Odin语言作者的灵魂拷问</title><link>https://tonybai.com/2025/09/13/package-managers-are-evil/</link><pubDate>Sat, 13 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/13/package-managers-are-evil/</guid><description>本文永久链接 – https://tonybai.com/2025/09/13/package-managers-are-evil 大家好，我是Tony Bai。 &amp;gt; “包管理器是万恶之源 (Package Managers are Evil)。” 这句石破天惊的论断，出自Odin语言的创造者Ginger Bill最近发表的一篇博文。在一个npm install、pip install、go ge...</description></item><item><title>超越零值：Go 语言“构造模式”深度指南</title><link>https://tonybai.com/2025/09/12/go-constructor-pattern-guide/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/12/go-constructor-pattern-guide/</guid><description>本文永久链接 – https://tonybai.com/2025/09/12/go-constructor-pattern-guide 大家好，我是Tony Bai。 Go 语言的设计哲学崇尚简约与直白(straightforward)。其中，结构体字面量 (Struct Literal) 的存在，让我们可以用极其简单的方式创建数据结构。然而，在构建大型、复杂的系统时，这种简单性也可能成为一把双...</description></item><item><title>Azure CTO 深度解读：微软为何要用 Rust “替换” C/C++，又将如何用 AI 加速代码迁移？</title><link>https://tonybai.com/2025/09/11/microsoft-is-getting-rusty/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/11/microsoft-is-getting-rusty/</guid><description>本文永久链接 – https://tonybai.com/2025/09/11/microsoft-is-getting-rusty 大家好，我是Tony Bai。 近日，微软 Azure CTO、技术巨擘 Mark Russinovich 在一场 Rust 技术会议上发表了闭幕演讲，以前所未有的坦诚和力度，揭示了微软内部正在进行的一场深刻的技术变革：全面拥抱 Rust，并战略性地替代 C/C++...</description></item><item><title>直面依赖之痛与TLS简化：GopherCon 2025贡献者峰会核心纪要深度解读</title><link>https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes/</guid><description>本文永久链接 – https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes 大家好，我是Tony Bai。 GopherCon 2025 贡献者峰会刚刚落下帷幕。在这场Go核心团队与全球顶尖贡献者齐聚一堂的闭门会议中，Go语言的未来方向被激烈地讨论和塑造。这些讨论或许不像发布泛型那样惊天动地，但它们如同地壳深处的板...</description></item><item><title>MCP协议注册中心发布：Go在下一代AI基础设施中扮演关键角色</title><link>https://tonybai.com/2025/09/10/introducing-the-mcp-registry/</link><pubDate>Wed, 10 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/10/introducing-the-mcp-registry/</guid><description>本文永久链接 – https://tonybai.com/2025/09/10/introducing-the-mcp-registry 大家好，我是Tony Bai。 近日，模型上下文协议 (Model Context Protocol, MCP)官方发布了其生态系统的核心基础设施：MCP 注册中心 (MCP Registry)的预览版。这个开放的、分布式的目录服务不仅为 MCP 服务器的发现与...</description></item><item><title>最好的教师节礼物：来自2.5万名Gopher的认可</title><link>https://tonybai.com/2025/09/10/happy-teachers-day-2025/</link><pubDate>Wed, 10 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/10/happy-teachers-day-2025/</guid><description>最好的教师节礼物：来自2.5万名Gopher的认可 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 最...</description></item><item><title>NASA的十大编码“诫律”：Go视角的全新解读</title><link>https://tonybai.com/2025/09/09/the-power-of-ten-in-go/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/09/the-power-of-ten-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/09/the-power-of-ten-in-go 大家好，我是Tony Bai。 在软件工程领域，有些智慧是永恒的。 2006 年，NASA/JPL（喷气推进实验室）的 Gerard J. Holzmann 公布了其团队用于开发**安全关键 (Safety-Critical)** 软件的十条黄金法则——“The Power...</description></item><item><title>从《凡人修仙传》看程序员境界：道友，你修炼到哪一层了？</title><link>https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels/</link><pubDate>Mon, 08 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels/</guid><description>本文永久链接 – https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels 大家好，我是Tony Bai。 最近《凡人修仙传》的电视剧大火，想必各位道友都有耳闻。鄙人也没忍住，不仅刷完了杨洋主演的网剧，还趁着这股热乎劲儿，一口气在微信读书连读再听地补完了小说的人界篇。 当看到韩立资质平平，相貌普通，却凭着“小绿瓶”、远超常人的心...</description></item><item><title>为什么说“接口”，而非代码或硬件堆砌，决定了系统的性能上限？</title><link>https://tonybai.com/2025/09/07/the-power-of-an-interface-for-performance/</link><pubDate>Sun, 07 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/07/the-power-of-an-interface-for-performance/</guid><description>本文永久链接 – https://tonybai.com/2025/09/07/the-power-of-an-interface-for-performance &amp;gt; 我的《Go语言第一课》已上市，赠书活动正在进行中，欢迎点击此链接参与。 大家好，我是Tony Bai。 我们通常如何看待性能优化？答案往往是：更快的算法、更少的内存分配、更底层的并发原语、甚至用SIMD指令压榨CPU的每一个周期。我...</description></item><item><title>告别算法“天书”，Go程序员的学术伪代码“翻译”指南</title><link>https://tonybai.com/2025/09/06/gopher-pseudocode-translation-guide/</link><pubDate>Sat, 06 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/06/gopher-pseudocode-translation-guide/</guid><description>本文永久链接 – https://tonybai.com/2025/09/06/gopher-pseudocode-translation-guide 大家好，我是Tony Bai。 你是否曾在阅读顶会论文时，感觉其中的算法描述像一本晦涩难懂的**“天书”**？那些看不太懂的数学符号、奇特的箭头和看似代码又无法编译的语句(如下图)，是不是常常让你望而却步，感叹理论与实践之间隔着一道鸿沟？ 别担心，...</description></item><item><title>Go Proxy的“背景刷新”机制，是优化还是“DDoS”？一次社区事件引发的深度复盘</title><link>https://tonybai.com/2025/09/05/go-proxy-revise-background-refresh-pacing/</link><pubDate>Fri, 05 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/05/go-proxy-revise-background-refresh-pacing/</guid><description>本文永久链接 – https://tonybai.com/2025/09/05/go-proxy-revise-background-refresh-pacing 大家好，我是Tony Bai。 2025年8月14日，Go开发者Ted Unangst发表了一篇措辞犀利的博文——《What is the go proxy even doing?》。他用服务器日志作为证据，公开质疑Go官方模块代理（p...</description></item><item><title>“简单”不是“容易”：Go开发者应该懂的5个道理</title><link>https://tonybai.com/2025/09/04/simple-is-not-easy/</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/04/simple-is-not-easy/</guid><description>本文永久链接 – https://tonybai.com/2025/09/04/simple-is-not-easy 大家好，我是Tony Bai。 在软件工程领域，有些演讲如同灯塔，其光芒足以穿透时间的迷雾，持续为后来者指引方向。Clojure语言的创造者Rich Hickey在2011年的Strange Loop大会上发表的“Simple Made Easy”，正是这样一例。他以一种近乎哲学家...</description></item><item><title>Gopher直通大厂，就从这第一课开始！</title><link>https://tonybai.com/2025/09/03/gopher-first-lesson-to-big-factory/</link><pubDate>Wed, 03 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/03/gopher-first-lesson-to-big-factory/</guid><description>本文永久链接 – https://tonybai.com/2025/09/03/gopher-first-lesson-to-big-factory 大家好，我是Tony Bai。 很多计算机专业的同学们都在问：想进大厂，要先学好哪门编程语言？ 从应用广泛程度来说，学好Go语言肯定错不了！我们来看一下大厂们都用Go在做哪些开发： &amp;gt; 阿里用于基础服务、网关、容器、服务框架等开发。 &amp;gt; &amp;gt; &amp;gt; 字节...</description></item><item><title>亚马逊CTO Werner Vogels的9条军规</title><link>https://tonybai.com/2025/09/02/amazon-cto-werner-vogels-9-commandments/</link><pubDate>Tue, 02 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/02/amazon-cto-werner-vogels-9-commandments/</guid><description>亚马逊CTO Werner Vogels的9条军规 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 亚...</description></item><item><title>成为更完整的 Go 工程师，从补上这堂系统编程课开始</title><link>https://tonybai.com/2025/09/01/system-programming-in-go/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/01/system-programming-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/01/system-programming-in-go 大家好，我是Tony Bai。 作为一名 Go 工程师，我们无疑是幸运的。这门语言为我们提供了简洁的语法、强大的并发模型和一套设计精良的标准库。我们能以极高的效率，构建出高性能的 Web 服务、数据管道和云原生应用。 我们熟练地使用 http.ListenAndServ...</description></item><item><title>从 0 到 1.5 亿 QPS：Uber 核心存储架构的十年演进与缓存设计哲学</title><link>https://tonybai.com/2025/09/01/uber-150-million-reads/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/01/uber-150-million-reads/</guid><description>本文永久链接 – https://tonybai.com/2025/09/01/uber-150-million-reads 大家好，我是Tony Bai。 在 Uber 这样体量的公司，其核心在线存储系统不仅要处理 PB 级的海量数据，还要以毫秒级的延迟响应每秒上亿次的请求。这一切是如何实现的？本文将深度整合 Uber 工程团队这几年公开发布的三篇文章，和大家一起穿越其核心存储架构的十年演进史：...</description></item><item><title>“无聊”设计的终极奥义：为什么“做可能奏效的最简单的事”是最高法则？</title><link>https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work/</link><pubDate>Sun, 31 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work/</guid><description>本文永久链接 – https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work 大家好，我是Tony Bai。 在我们解读了Github工程师Sean Goedecke关于“无聊即可靠”的系统设计和API设计理念之后，他再次带来了一篇精彩的的文章——《Do the simplest thing that cou...</description></item><item><title>Python简史：一个圣诞节的“私活”项目，如何改变了编程世界？</title><link>https://tonybai.com/2025/08/30/python-an-origin-story/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/30/python-an-origin-story/</guid><description>本文永久链接 – https://tonybai.com/2025/08/30/python-an-origin-story 大家好，我是Tony Bai。 在编程语言的星空中，很少有哪颗星像Python一样，以如此温和而坚定的姿态，从一个不起眼的个人项目，成长为照亮地球未来的科技灯塔。如今，当我们谈论数据科学、人工智能时，Python几乎是绕不开的默认选项。但这一切的起点，竟源于一位程序员在阿姆...</description></item><item><title>无聊的API是最好的API：从系统设计到接口契约的九条法则</title><link>https://tonybai.com/2025/08/29/good-api-design/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/29/good-api-design/</guid><description>本文永久链接 – https://tonybai.com/2025/08/29/good-api-design 大家好，我是Tony Bai。 在解读《Everything I know about good system design》一文时，我们曾提炼出一个核心观点：“无聊即可靠”。这个看似反直觉的法则，在追求创新与复杂的软件工程世界里，如同一股清流。现在，这个“无聊”哲学将从宏观的系统设计，...</description></item><item><title>我的 Gopher “长期主义”：从《Go语言第一课》新书说起</title><link>https://tonybai.com/2025/08/28/go-primer-published/</link><pubDate>Thu, 28 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/28/go-primer-published/</guid><description>本文永久链接 – https://tonybai.com/2025/08/28/go-primer-published 大家好，我是Tony Bai。 前不久，在知乎上看到一个关于 Go 社区的帖子，其中一条评论让我感慨良多： &amp;gt; **“GopherChina 都没了，国内还有几人坚持？Tony Bai好像还在更新”** 短短一句话，道尽了社区的变迁与坚持的不易。这句来自读者的回答，让我内心欣慰，...</description></item><item><title>Go语言的“灵魂拷问”：接口只关乎行为，还是也应拥抱数据？</title><link>https://tonybai.com/2025/08/27/go-interface-embrace-data/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/27/go-interface-embrace-data/</guid><description>本文永久链接 – https://tonybai.com/2025/08/27/go-interface-embrace-data 大家好，我是Tony Bai。 在 Go 语言的世界里，接口（interface）一直被视为其设计哲学的基石之一——它只关心一个类型能**做什么**（行为），而不关心它**是什么**（结构）。这种基于方法集的鸭子类型，赋予了 Go 独一无二的灵活性和解耦能力。然而，随...</description></item><item><title>告别性能猜谜：一份Go并发操作的成本层级清单</title><link>https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy/</guid><description>本文永久链接 – https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy 大家好，我是Tony Bai。 Go语言的并发模型以其简洁直观著称，但这种简单性背后，隐藏着一个跨越五个数量级的巨大性能鸿沟。当你的高并发服务遭遇性能瓶颈时，你是否也曾陷入“性能猜谜”的困境：是sync.Mutex太慢？是atomic操作不够快？还是某个cha...</description></item><item><title>无聊即可靠：一位资深工程师的九条系统设计法则</title><link>https://tonybai.com/2025/08/26/good-system-design/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/26/good-system-design/</guid><description>本文永久链接 – https://tonybai.com/2025/08/26/good-system-design 大家好，我是Tony Bai。 在技术圈，我们常常被各种“炫技式”的系统设计建议所包围。从入门级的“你一定没听说过队列吧？”到专家级的“在数据库里存布尔值简直是灾难”，这些建议要么过于肤浅，要么过于精巧，往往脱离了大多数工程实践的真实上下文。就连《设计数据密集型应用》这样的经典之作...</description></item><item><title>Go的“七宗罪”：一篇“Go依然不够好”如何引爆社区激辩？</title><link>https://tonybai.com/2025/08/25/go-is-still-not-good/</link><pubDate>Mon, 25 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/25/go-is-still-not-good/</guid><description>本文永久链接 – https://tonybai.com/2025/08/25/go-is-still-not-good 大家好，我是Tony Bai。 在技术圈，平静的湖面下往往暗流涌动。对于Go语言社区而言，这股潜藏已久的暗流，被近期的一篇名为《Go is still not good》的博文彻底引爆。作者Thomas Habets，一位自称拥有超过十年Go使用经验的资深开发者，在他的这篇文章...</description></item><item><title>掌握架构师的“编程语言”：将“想法”部署到“人”的艺术</title><link>https://tonybai.com/2025/08/25/documents-the-architects-programming-language/</link><pubDate>Mon, 25 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/25/documents-the-architects-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2025/08/25/documents-the-architects-programming-language 大家好，我是Tony Bai。 从初级到高级，开发者的职业路径通常是清晰的：写出更好的代码。但当站在高级工程师的十字路口，是转向管理还是深入技术成为架构师？许多人选择了后者，却发现这个角色的定义模糊不清。最近，stackover...</description></item><item><title>AI 时代的初级工程师生存指南：别让“万能”的AI工具，毁掉你最宝贵的成长期</title><link>https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age/</link><pubDate>Sun, 24 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age/</guid><description>本文永久链接 – https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age 大家好，我是Tony Bai。 这是一个对初级工程师而言，最好也最坏的时代。 说它“最好”，是因为我们从未拥有过如此强大的工具。一名刚走出校门的毕业生，在入职的第一天，就能手握Claude Code、ChatGPT、Gemini Cli、...</description></item><item><title>泛型重塑 Go 错误检查：errors.As 的下一站 AsA？</title><link>https://tonybai.com/2025/08/23/proposal-errors-asa/</link><pubDate>Sat, 23 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/23/proposal-errors-asa/</guid><description>本文永久链接 – https://tonybai.com/2025/08/23/proposal-errors-asa 大家好，我是Tony Bai。 自 Go 1.13 引入 errors.Is 和 errors.As 以来，Go 语言的错误处理进入了一个结构化、可追溯的新时代。然而，errors.As 的使用方式，对于追求代码简洁与优雅的 Gopher 而言，始终存在一丝“不和谐”：开发者必须...</description></item><item><title>解锁 CPU 终极性能：Go 原生 SIMD 包预览版初探</title><link>https://tonybai.com/2025/08/22/go-simd-package-preview/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/22/go-simd-package-preview/</guid><description>本文永久链接 – https://tonybai.com/2025/08/22/go-simd-package-preview 大家好，我是Tony Bai。 多年以来，对于追求极致性能的 Go 开发者而言，心中始终有一个“痛点”：当算法需要压榨 CPU 的最后一点性能时，唯一的选择便是“下降”到手写汇编，这让利用 SIMD (Single Instruction, Multiple Data) ...</description></item><item><title>哲学家与工程师：为何 Rust 和 Go 的“官方之声”如此不同？</title><link>https://tonybai.com/2025/08/21/go-rust-official-voices/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/21/go-rust-official-voices/</guid><description>本文永久链接 – https://tonybai.com/2025/08/21/go-rust-official-voices 大家好，我是Tony Bai。 最近，在阅读 Rust 核心团队负责人 Niko Matsakis 庆祝十周年的系列博文时，我注意到了一个有趣的现象。我下意识地将他的文字，与我长期关注的 Go语言之父Rob Pike以及Go 团队前技术负责人 Russ Cox 的文章放在...</description></item><item><title>日志查询从 70 小时到 10 秒？VictoriaMetrics 联创揭示 PB 级日志处理性能奥秘</title><link>https://tonybai.com/2025/08/20/large-scale-logging-made-easy/</link><pubDate>Wed, 20 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/20/large-scale-logging-made-easy/</guid><description>本文永久链接 – https://tonybai.com/2025/08/20/large-scale-logging-made-easy 当日志规模达到 PB 级别，传统的关系型数据库（如 PostgreSQL 或 MySQL）往往力不从心，不仅性能急剧下降，运维成本也变得难以承受。在 FrOSCon 2025 大会上，VictoriaMetrics 的联合创始人兼CTO、fasthttp作者、...</description></item><item><title>Rust 2025 深度解读：在十周年里程碑上，Niko Matsakis 如何擘画下一个时代的灵魂与蓝图？</title><link>https://tonybai.com/2025/08/19/rust-in-2025/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/19/rust-in-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/08/18/rust-in-2025 大家好，我是Tony Bai。 2025 年 5 月 15 日，Rust 语言迎来了其 1.0 版本发布的十周年纪念日。这是一个充满里程碑意义的时刻，不仅是对Rust过去十年辉煌成就的回顾，更是展望未来的关键节点。值此之际，Rust 语言团队负责人、核心开发者 Niko Matsakis 发表...</description></item><item><title>收藏级指南：Gopher AI入局路线图</title><link>https://tonybai.com/2025/08/18/ai-app-dev-guide-for-gopher/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/18/ai-app-dev-guide-for-gopher/</guid><description>本文永久链接 – https://tonybai.com/2025/08/18/ai-app-dev-guide-for-gopher 大家好，我是Tony Bai。 过去两年，人工智能（AI）以前所未有的姿态，从学术的象牙塔走入了软件工程的每一个角落。以大语言模型（LLM）为代表的生成式AI以及智能体AI，正在重塑我们开发、交付甚至构思软件的方式。 作为一个 Gopher，我们习惯于在云原生、微...</description></item><item><title>2025年最佳机器人Linux操作系统——顶级发行版与最新进展！</title><link>https://tonybai.com/2025/08/17/best-linux-os-for-robotics-in-2025/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/17/best-linux-os-for-robotics-in-2025/</guid><description>本文永久链接 – https://tonybai.com/2025/08/17/best-linux-os-for-robotics-in-2025 大家好，我是Tony Bai。 如果你正投身于机器人技术领域，选择正确的操作系统至关重要。随着人工智能、自动化和机器学习的进步，机器人正变得前所未有的复杂。在为这些智能机器提供动力方面，Linux凭借其开源的灵活性、稳定性以及对机器人框架的广泛支持，...</description></item><item><title>从 Rob Pike 的提案到社区共识：Go 或将通过 new(v) 彻底解决指针初始化难题</title><link>https://tonybai.com/2025/08/17/create-pointer-to-simple-types/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/17/create-pointer-to-simple-types/</guid><description>本文永久链接 – https://tonybai.com/2025/08/17/create-pointer-to-simple-types 大家好，我是Tony Bai。 在 Go 中创建一个指向基本类型（如 int 或 string）的指针，为何比创建一个指向结构体的指针更繁琐？这个长期存在的“人体工程学”问题，由 Go 语言的共同创造者之一 **Rob Pike** 在提案 #45624 中...</description></item><item><title>内核之外的冰山：为什么说从零写一个操作系统已几乎不可能？</title><link>https://tonybai.com/2025/08/16/brand-new-os-impossible/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/16/brand-new-os-impossible/</guid><description>内核之外的冰山：为什么说从零写一个操作系统已几乎不可能？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Go 1.25中值得关注的几个变化</title><link>https://tonybai.com/2025/08/15/some-changes-in-go-1-25/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/15/some-changes-in-go-1-25/</guid><description>本文永久链接 – https://tonybai.com/2025/08/15/some-changes-in-go-1-25 大家好，我是Tony Bai。 北京时间2025年8月13日，Go 团队如期发布了 Go 语言的最新大版本——Go 1.25。按照惯例，每次 Go 大版本发布时，我都会撰写一篇“Go 1.x 中值得关注的几个变化”的文章。自 2014 年的 Go 1.4 版本起，这一系列...</description></item><item><title>AI正在重塑编程语言格局：Rust、Python 和 TypeScript 真是最终赢家吗？</title><link>https://tonybai.com/2025/08/14/rs-py-ts-trifecta/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/14/rs-py-ts-trifecta/</guid><description>本文永久链接 – https://tonybai.com/2025/08/14/rs-py-ts-trifecta 大家好，我是Tony Bai。 在 AI 浪潮席卷而来的今天，一个深刻的问题正摆在所有开发者面前：我们手中的编程语言，将如何被这股力量重塑？我们未来的技能投资，应该押注在哪里？ 最近，Rust 核心团队的 Niko Matsakis，在他的一篇博文中给出了一个大胆的预测：**Rust...</description></item><item><title>二进制的“魔术”：每个 Go 程序员都应掌握的位操作艺术</title><link>https://tonybai.com/2025/08/13/bit-manipulation-in-go/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/13/bit-manipulation-in-go/</guid><description>二进制的“魔术”：每个 Go 程序员都应掌握的位操作艺术 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Go 的“身份危机”：当新 Gopher 试图将它变成他们最爱的语言</title><link>https://tonybai.com/2025/08/12/go-identity-crisis/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/12/go-identity-crisis/</guid><description>本文永久链接 – https://tonybai.com/2025/08/12/go-identity-crisis 大家好，我是Tony Bai。 最近，在国外的 Go 社区（Reddit r/golang）上，一个帖子引发了我的深思。发帖者是一位资深的 Gopher，他用一种略带困惑的语气写道： &amp;gt; “我感受到来自新 Go 开发者的巨大压力，他们想把 Go 变成他们最喜欢的语言。” 他列出了一...</description></item><item><title>为何Go语言迟迟未能拥抱 io_uring？揭秘集成的三大核心困境</title><link>https://tonybai.com/2025/08/11/why-go-not-embrace-iouring/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/11/why-go-not-embrace-iouring/</guid><description>本文永久链接 – https://tonybai.com/2025/08/11/why-go-not-embrace-iouring 大家好，我是Tony Bai。 在 Linux I/O 的世界里，io_uring 如同划破夜空的流星，被誉为“终极接口”。它承诺以无与伦比的效率，为数据密集型应用带来革命性的性能提升。正如高性能数据库 ScyllaDB 在其官方博文中所展示的，io_uring 能...</description></item><item><title>Google 揭秘生产环境调试心法：SRE 与 SWE 的四大思维差异与实战路径</title><link>https://tonybai.com/2025/08/10/debugging-incidents-in-google/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/10/debugging-incidents-in-google/</guid><description>本文永久链接 – https://tonybai.com/2025/mm/dd/debugging-Incidents-in-google 大家好，我是Tony Bai。 尽管 Google 的 SRE 手册为我们描绘了理想的运维蓝图，但在“炮火连天”的生产事故现场，工程师的真实反应往往是另一番景象。 最近，一篇发表于 ACM Queue 的研究深入剖析了 Google 工程师（包括 SRE 和 ...</description></item><item><title>Go json/v2实战：告别内存爆炸，掌握真流式Marshal和Unmarshal</title><link>https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2/</guid><description>本文永久链接 – https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2 大家好，我是Tony Bai。 Go 开发者长期以来面临一个痛点：标准库 encoding/json 在处理大型 JSON 数据时，即使使用 Encoder/Decoder，也因其内部的全量缓冲机制而导致巨大的内存开销。备受期待的 encoding/js...</description></item><item><title>想用Go复刻“Claude Code”？那你得先补上TUI这一课</title><link>https://tonybai.com/2025/08/08/go-tui-primer/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/08/go-tui-primer/</guid><description>想用Go复刻“Claude Code”？那你得先补上TUI这一课 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>Go 模块的“分叉之痛”：一个提案能否终结“全局替换”的噩梦？</title><link>https://tonybai.com/2025/08/07/fork-go-module/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/07/fork-go-module/</guid><description>本文永久链接 – https://tonybai.com/2025/08/07/fork-go-module 大家好，我是Tony Bai。 今天，我想和你聊一个几乎每个 Go 开发者都经历过的场景，一种我们圈内人“只可意会，不可言传”的痛苦。我称之为 Go 模块的**“分叉之痛” (The Forking Pain)**。 故事通常是这样开始的：你在一个项目中，依赖了一个第三方库。某天，你发现这...</description></item><item><title>Go语言正在成为“老旧”生态的“新引擎”？从 FrankenPHP 和新版 TypeScript 编译器谈起</title><link>https://tonybai.com/2025/08/06/go-new-engine-of-old-languages/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/06/go-new-engine-of-old-languages/</guid><description>Go语言正在成为“老旧”生态的“新引擎”？从 FrankenPHP 和新版 TypeScript 编译器谈起 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>警惕 AI 效率神话：你是“闪电战”的独立开发者，还是“持久战”的工程师？</title><link>https://tonybai.com/2025/08/06/blitzkrieg-vs-attrition-in-ai-age/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/06/blitzkrieg-vs-attrition-in-ai-age/</guid><description>警惕 AI 效率神话：你是“闪电战”的独立开发者，还是“持久战”的工程师？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技...</description></item><item><title>从“锁”到“channel”：开启你的Go并发心智模型转变之旅</title><link>https://tonybai.com/2025/08/05/go-concurrency-mental-model/</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/05/go-concurrency-mental-model/</guid><description>从“锁”到“channel”：开启你的Go并发心智模型转变之旅 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * ...</description></item><item><title>后VMware时代：为什么Kubernetes正在成为VM的新家？</title><link>https://tonybai.com/2025/08/05/the-voice-of-k8s-experts-report-2025/</link><pubDate>Tue, 05 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/05/the-voice-of-k8s-experts-report-2025/</guid><description>后VMware时代：为什么Kubernetes正在成为VM的新家？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 ...</description></item><item><title>持续性能分析正在成为继Metrics、Logs 和 Traces之后，可观测性的“第四大支柱”</title><link>https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar/</guid><description>本文永久链接 – https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar 大家好，我是Tony Bai。 凌晨两点，运维平台的警报刺破了宁静。P99 延迟飙升，用户服务几近瘫痪。作为 Go 工程师，你的脑海中闪过无数可能：是数据库慢了？是下游服务超时？还是某个新上线的 goroutine 泄露了？你急忙打开监控面板，**M...</description></item><item><title>AI 正在放大技术选型的风险：为什么我们更应该“选择无聊的技术”</title><link>https://tonybai.com/2025/08/03/choose-boring-technology/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/03/choose-boring-technology/</guid><description>AI 正在放大技术选型的风险：为什么我们更应该“选择无聊的技术” - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>Go官方 HTTP/3 实现终迎曙光：x/net/http3 提案启动，QUIC 基础已就位</title><link>https://tonybai.com/2025/08/02/proposal-http3/</link><pubDate>Sat, 02 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/02/proposal-http3/</guid><description>本文永久链接 – https://tonybai.com/2025/08/02/proposal-http3 大家好，我是Tony Bai。 在社区长达数年的热切期盼之后，Go 官方终于迈出了支持 HTTP/3 的关键一步。一项编号为#70914的新提案，正式建议在 x/net/http3 中添加一个实验性的 HTTP/3 实现。这一进展建立在另一项更基础的提案 #58547(x/net/quic...</description></item><item><title>purego 标签到底是什么意思？一场长达六年的社区辩论终于有了定论</title><link>https://tonybai.com/2025/08/01/proposal-purego/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/01/proposal-purego/</guid><description>purego 标签到底是什么意思？一场长达六年的社区辩论终于有了定论 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏...</description></item><item><title>系统设计的“元素周期表”：40个横跨所有领域的通用设计原则</title><link>https://tonybai.com/2025/07/31/periodic-table-of-system-design/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/31/periodic-table-of-system-design/</guid><description>本文永久链接 – https://tonybai.com/2025/07/31/periodic-table-of-system-design 大家好，我是Tony Bai。 近日，一篇名为《系统设计的元素》（Elements of System Design）的论文引发社区热议。它的目标宏大且吸睛：通过梳理上百篇横跨操作系统、数据库、分布式系统等领域的经典论文，提炼出一套通用的**系统设计原则“...</description></item><item><title>你的 AI Agent 为何总“犯傻”？构建生产级 Agent 所需的6大工程原则</title><link>https://tonybai.com/2025/07/30/six-principles-production-ai-agents/</link><pubDate>Wed, 30 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/30/six-principles-production-ai-agents/</guid><description>本文永久链接 – https://tonybai.com/2025/07/30/six-principles-production-ai-agents 大家好，我是Tony Bai。 随着 AI Agent 技术的兴起，许多开发者都投入到构建智能体的浪潮中，但很快就会发现，让 Agent 稳定、可靠地工作远非想象中容易。它们时而产生幻觉，时而偏离轨道，时而做出一些令人费解的“愚蠢”行为。最近，来自...</description></item><item><title>slog 如何同时输出到控制台和文件？MultiHandler 提案或将终结重复造轮子</title><link>https://tonybai.com/2025/07/29/slog-multihandler/</link><pubDate>Tue, 29 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/29/slog-multihandler/</guid><description>本文永久链接 – https://tonybai.com/2025/07/29/slog-multihandler 大家好，我是Tony Bai。 自 log/slog 在 Go 1.21 中引入以来，一个常见的需求始终困扰着开发者：如何将日志同时发送到多个目的地，并为每个目的地设置不同的日志级别？尽管社区已涌现出 samber/slog-multi 等优秀的三方库，但关于“标准库是否应原生支持”...</description></item><item><title>Go fix 命令将迎“重生”：移除过时功能，为集成现代化代码分析器铺平道路</title><link>https://tonybai.com/2025/07/28/go-fix-reborn/</link><pubDate>Mon, 28 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/28/go-fix-reborn/</guid><description>本文永久链接 – https://tonybai.com/2025/07/28/go-fix-reborn 大家好，我是Tony Bai。 Go 语言工具链中的元老级命令 go fix 即将迎来其生命周期中最重要的转折点。一项编号为 **#73605** 的新提案建议移除 go fix 当前的全部功能，使其暂时成为一个空命令。这一看似“激进”的举动，实则是为一个更宏大的目标铺路：将 go fix ...</description></item><item><title>Prometheus 联合创始人的警告：在使用 OpenTelemetry 生成 Metrics 前请三思！</title><link>https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry/</guid><description>本文永久链接 – https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry 大家好，我是Tony Bai。 在云原生可观测性的世界里，OpenTelemetry (OTel) 正如日中天。它被誉为“可观测性的未来”，承诺用一个统一的标准，终结 Metrics、Traces、Logs 各自为...</description></item><item><title>为什么 VictoriaMetrics 正在替换 Prometheus？一次大规模可观测性迁移实录</title><link>https://tonybai.com/2025/07/26/migrate-from-prometheus-to-victoriametrics/</link><pubDate>Sat, 26 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/26/migrate-from-prometheus-to-victoriametrics/</guid><description>本文永久链接 – https://tonybai.com/2025/07/26/migrate-from-prometheus-to-victoriametrics 大家好，我是Tony Bai。 在云原生可观测性的领域，Prometheus 无疑是王者。凭借其简洁的模型、强大的 PromQL 和活跃的社区，Prometheus 几乎定义了现代监控的行业标准。许多顶尖技术公司，包括 PingCAP...</description></item><item><title>Anthropic内部实践首次公开：揭秘Claude Code如何引爆全员生产力</title><link>https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code/</guid><description>本文永久链接 – https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code 当 AI 编程助手从简单的代码补全工具，演变为深度集成于开发者工作流核心的“终端原生 AI”（Terminal-native AI）时，一个根本性的问题浮现出来：**顶尖团队究竟是如何在日常工作中驾驭这股新力量的？** 理论和演示层出不穷，但真实、...</description></item><item><title>Go vs. Rust vs. C++：从语言规范长度看三种不同的“复杂性”</title><link>https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity/</guid><description>Go vs. Rust vs. C++：从语言规范长度看三种不同的“复杂性” - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的...</description></item><item><title>写作即思考：AI 时代，开发者为什么要警惕“思考外包”？</title><link>https://tonybai.com/2025/07/25/writing-is-thinking/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/25/writing-is-thinking/</guid><description>写作即思考：AI 时代，开发者为什么要警惕“思考外包”？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Goroutine泄漏防不胜防？Go GC或将可以检测“部分死锁”，已在Uber生产环境验证</title><link>https://tonybai.com/2025/07/24/deadlock-detection-by-gc/</link><pubDate>Thu, 24 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/24/deadlock-detection-by-gc/</guid><description>本文永久链接 – https://tonybai.com/2025/07/24/deadlock-detection-by-gc 大家好，我是Tony Bai。 Go 语言的 go 关键字让并发编程变得前所未有的简单，但也带来了新的挑战。当所有 goroutine 都陷入阻塞时，Go runtime 会报告一个“全局死锁”并终止程序。然而，更常见也更隐蔽的是**部分死锁**：一部分 gorouti...</description></item><item><title>美国运通复盘 Go 语言实践：从依赖管理到并发模型，七大经验教训全解析</title><link>https://tonybai.com/2025/07/24/go-at-american-express-today/</link><pubDate>Thu, 24 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/24/go-at-american-express-today/</guid><description>美国运通复盘 Go 语言实践：从依赖管理到并发模型，七大经验教训全解析 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专...</description></item><item><title>Uber性能优化实践：如何用 GenAI 将 Go 代码调优从数周缩短至数小时？</title><link>https://tonybai.com/2025/07/23/uber-perfinsights/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/23/uber-perfinsights/</guid><description>本文永久链接 – https://tonybai.com/2025/07/23/uber-perfinsights 大家好，我是Tony Bai。 对于大多数团队而言，Go 服务的性能优化是一项昂贵且充满挑战的任务。它通常需要资深的工程师花费数天甚至数周的时间进行 profiling、基准测试和代码分析，这在快节奏的开发周期中往往难以持续。Uber 面临着同样的问题，其 Top 10 的 Go 服...</description></item><item><title>不止是云原生：为什么 Go 的热度在持续上升？来自社区的真实声音</title><link>https://tonybai.com/2025/07/23/go-surge-in-popularity/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/23/go-surge-in-popularity/</guid><description>不止是云原生：为什么 Go 的热度在持续上升？来自社区的真实声音 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 *...</description></item><item><title>Go 1.24用户报告：Datadog如何借助 Swiss Tables版map节省数百 GB 内存？</title><link>https://tonybai.com/2025/07/22/go-swiss-table-map-user-report/</link><pubDate>Tue, 22 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/22/go-swiss-table-map-user-report/</guid><description>本文永久链接 – https://tonybai.com/2025/07/22/go-swiss-table-map-user-report 大家好，我是Tony Bai。 Datadog 的故事始于一次对Go 1.24内存回归问题的追踪。在与 Go 社区协作修复了该问题后，他们在部署修复版本的过程中，观察到了一个意料之外的现象：在高流量环境中，内存使用不仅恢复了正常，甚至**大幅下降**。一个名...</description></item><item><title>Rust 的安全神话？数据库 CEO 为何在关键系统中仍选 C++</title><link>https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust/</link><pubDate>Tue, 22 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust/</guid><description>Rust 的安全神话？数据库 CEO 为何在关键系统中仍选 C++ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 ...</description></item><item><title>解密 Go 安全核心：7 步掌握现代密码学工程</title><link>https://tonybai.com/2025/07/21/go-crypto-101/</link><pubDate>Mon, 21 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/21/go-crypto-101/</guid><description>解密 Go 安全核心：7 步掌握现代密码学工程 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 解密 ...</description></item><item><title>HashiCorp创始人Mitchell Hashimoto 的 Agentic Engineering 实战心法</title><link>https://tonybai.com/2025/07/20/mitchell-hashimoto-agentic-engineering/</link><pubDate>Sun, 20 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/20/mitchell-hashimoto-agentic-engineering/</guid><description>本文永久链接 – https://tonybai.com/2025/07/20/mitchell-hashimoto-agentic-engineering 大家好，我是Tony Bai。 在云计算Infra和云原生工程领域，Mitchell Hashimoto 是一个如雷贯耳的名字。作为 HashiCorp 的创始人，他一手打造了 Terraform、Vagrant、Consul 等一系列定义了...</description></item><item><title>Go 比 Python 更懂“Python 之禅”？</title><link>https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python/</link><pubDate>Sat, 19 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python/</guid><description>本文永久链接 – https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python 大家好，我是Tony Bai。 最近，在国外的 Go 语言社区（Reddit r/golang）上，一个帖子引发了热烈的讨论。标题颇具“引战”意味：“Go似乎比Python更好地实现了Python之禅”。 这听起来像个...</description></item><item><title>一张图读懂Go的生存之道：当“面条代码”来敲门</title><link>https://tonybai.com/2025/07/16/when-spaghetti-code-knocks/</link><pubDate>Wed, 16 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/16/when-spaghetti-code-knocks/</guid><description>本文永久链接 – https://tonybai.com/2025/07/16/when-spaghetti-code-knocks 大家好，我是Tony Bai。 最近，在网上看到一张关于编程语言的 Meme 图，它以一种黑色幽默的方式，精准地描绘了我们软件开发中一个永恒的敌人，以及 Go 语言那与众不同的应对之道。 在这张图中，一个名为“面条代码 (Spaghetti Code)”的恐怖死神，...</description></item><item><title>AI 正在重写“软件工程师”的岗位描述：未来你需要这 6 项核心技能</title><link>https://tonybai.com/2025/07/15/the-agentic-software-engineer/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/15/the-agentic-software-engineer/</guid><description>AI 正在重写“软件工程师”的岗位描述：未来你需要这 6 项核心技能 - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏...</description></item><item><title>代码之外的必修课：顶级技术文档风格指南如何提升你的工程效率</title><link>https://tonybai.com/2025/07/14/writing-style-guide/</link><pubDate>Mon, 14 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/14/writing-style-guide/</guid><description>本文永久链接 – https://tonybai.com/2025/07/14/writing-style-guide 大家好，我是Tony Bai。 作为一名开发者、架构师或运维专家，我们大部分时间都在与代码、系统和架构打交道。然而，我们同样在持续不断地进行另一种形式的“编码”——**沟通编码**。无论是撰写一个清晰的 README.md，提交一份详尽的 Pull Request 描述，编写项目...</description></item><item><title>Go 的“无聊”超能力：为什么“选项更少”反而让你更快？</title><link>https://tonybai.com/2025/07/12/insanely-productive-in-go/</link><pubDate>Sat, 12 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/12/insanely-productive-in-go/</guid><description>Go 的“无聊”超能力：为什么“选项更少”反而让你更快？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列...</description></item><item><title>Go pprof 迎来重大革新：v2 提案详解，告别默认注册，拥抱飞行记录器</title><link>https://tonybai.com/2025/07/11/net-http-pprof-v2/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/11/net-http-pprof-v2/</guid><description>本文永久链接 – https://tonybai.com/2025/07/11/net-http-pprof-v2 大家好，我是Tony Bai。 Go 语言的性能诊断利器 net/http/pprof 即将迎来一次意义深远的变革。一项编号为 **#74544** 的新提案建议引入一个全新的 net/http/pprof/v2 包，旨在从根本上解决当前版本因“默认注册”行为带来的安全隐患。该提案不...</description></item><item><title>上手MCP官方Go SDK：一份面向实战的入门指南</title><link>https://tonybai.com/2025/07/10/mcp-official-go-sdk/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/10/mcp-official-go-sdk/</guid><description>本文永久链接 – https://tonybai.com/2025/07/10/mcp-official-go-sdk 大家好，我是Tony Bai。 随着大型语言模型（LLM）的能力边界不断扩展，“function calling”或“tool use”已成为释放其潜力的关键。MCP（Model Context Protocol）正是为此而生，它定义了一套标准的、与模型无关的通信规范，使得任何应...</description></item><item><title>停止构建AI Agent！这里有5个更简单的LLM工作流模式，能解决90%的问题</title><link>https://tonybai.com/2025/07/10/stop-building-ai-agents/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/10/stop-building-ai-agents/</guid><description>本文永久链接 – https://tonybai.com/2025/07/10/stop-building-ai-agents 大家好，我是Tony Bai。 如果你正在开发 AI 应用，你很可能听说过、尝试过，甚至正在挣扎于构建一个“AI Agent”。 我们都看过那些令人心潮澎湃的 Demo：一个 AI Agent 被赋予一个目标，然后它就能自主地规划、调用工具、浏览网页、编写代码，最终完成任...</description></item><item><title>你的命令行，即将迎来一场“AI 革命”</title><link>https://tonybai.com/2025/07/09/gemini-cli-starting-guide/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/09/gemini-cli-starting-guide/</guid><description>你的命令行，即将迎来一场“AI 革命” - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * 文章列表 你的命令行，即...</description></item><item><title>告别字符串魔法：Go 迎来类型化 Struct Tag 提案，编译期安全触手可及？</title><link>https://tonybai.com/2025/07/08/typed-struct-tags/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/08/typed-struct-tags/</guid><description>本文永久链接 – https://tonybai.com/2025/07/08/typed-struct-tags 大家好，我是Tony Bai。 Go 语言的结构体标签（Struct Tag）自诞生以来，一直是其强大反射能力的重要组成部分，广泛应用于 encoding/json、ORM、配置管理等领域。然而，它也一直是一个“美丽的缺憾”：这些标签本质上是无类型的字符串，依赖于各种“微语言”和“纳...</description></item><item><title>“先发布，后审核”：Go模块生态的阿喀琉斯之踵？</title><link>https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case/</link><pubDate>Mon, 07 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case/</guid><description>本文永久链接 – https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case 大家好，我是Tony Bai。 最近，GitLab的安全研究团队披露了一起极其巧妙的供应链攻击，目标直指 Go 社区中一个流行的 MongoDB 模块。这个案例本身已经足够令人警醒，但如果我们拨开攻击手法的层层迷雾，会发现其背后暴露出的，可能是整个开...</description></item><item><title>读懂Go的设计哲学：为什么说它是“恰到好处”的80/20语言？</title><link>https://tonybai.com/2025/07/05/go-is-8020-language/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/05/go-is-8020-language/</guid><description>读懂Go的设计哲学：为什么说它是“恰到好处”的80/20语言？ - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的技术专栏 * ...</description></item><item><title>拥抱Agentic Coding：软件开发的未来</title><link>https://tonybai.com/2025/07/05/agentic-coding-is-the-future/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/05/agentic-coding-is-the-future/</guid><description>本文永久链接 – https://tonybai.com/2025/07/05/agentic-coding-is-the-future 大家好，我是Tony Bai。 软件开发的范式正在经历一场深刻的变革。从 GitHub Copilot 的惊艳亮相，到各种IDE中集成的代码生成功能，我们已经习惯了 AI 在编码过程中的“自动补全”。但这仅仅是序幕。如今，一种更强大、更具颠覆性的模式正在兴起，它...</description></item><item><title>NVIDIA 的颠覆性观点：AI Agent 的未来，属于小模型 (SLM)</title><link>https://tonybai.com/2025/07/04/slm-is-the-future-of-agentic-ai/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/04/slm-is-the-future-of-agentic-ai/</guid><description>NVIDIA 的颠覆性观点：AI Agent 的未来，属于小模型 (SLM) - Tony Bai Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 我的...</description></item><item><title>Twitch工程师的Go进阶之路：为何你写的Go代码，总感觉“不对劲”？</title><link>https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang/</guid><description>本文永久链接 – https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang 大家好，我是Tony Bai。 你是否也有过这样的时刻？ 你已经用 Go 写了不少代码，项目也能跑起来，但内心深处总有一种挥之不去的“别扭感”。你写的 Go 代码，看起来更像是“带有 Go 语法的 Java/Python”，充...</description></item><item><title>Go考古：创始人亲述Go语言的“创世纪”</title><link>https://tonybai.com/2025/07/03/meet-the-go-team-2012/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/03/meet-the-go-team-2012/</guid><description>本文永久链接 – https://tonybai.com/2025/07/03/meet-the-go-team-2012 大家好，我是Tony Bai。 2012 年，Google I/O 大会的舞台上，一个刚刚发布 1.0 版本的编程语言团队，正襟危坐。他们面对着全球开发者的审视和提问，这其中，就有三位图灵奖得主级别的传奇人物：Ken Thompson、Rob Pike 和 Robert Gr...</description></item><item><title>别再直接让 AI 写代码了！试试这个“Vibe Specs”模式，效率提升60%</title><link>https://tonybai.com/2025/07/02/vibe-specs/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/02/vibe-specs/</guid><description>本文永久链接 – https://tonybai.com/2025/07/02/vibe-specs 大家好，我是Tony Bai。 你是否也曾掉入 AI 编程的“氛围陷阱”？ 你坐在 IDE 前，脑海中有一个自以为清晰的任务。你信心满满地打开 AI 助手，给出一个模糊的指令，也就是所谓的“氛围”编程 (Vibe Coding)。结果，AI 像一个过度热情的实习生，还给你一堆看似合理但完全无用的“...</description></item><item><title>特斯拉首席工程师的忠告：用“单向门 vs 双向门”决策，看清分布式系统的未来</title><link>https://tonybai.com/2025/07/01/predicting-the-future-of-distributed-systems/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/01/predicting-the-future-of-distributed-systems/</guid><description>特斯拉首席工程师的忠告：用“单向门 vs 双向门”决策，看清分布式系统的未来 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>Go并行编程的“第一性原理”：Guy Steele 教你如何“不去想”并行</title><link>https://tonybai.com/2025/06/29/thinking-parallel-programming/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/29/thinking-parallel-programming/</guid><description>Go并行编程的“第一性原理”：Guy Steele 教你如何“不去想”并行 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Gopher视角：Java 开发者转向 Go 时，最需要“掰过来”的几个习惯</title><link>https://tonybai.com/2025/06/27/from-java-to-go/</link><pubDate>Fri, 27 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/27/from-java-to-go/</guid><description>Gopher视角：Java 开发者转向 Go 时，最需要“掰过来”的几个习惯 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>Martin Fowler最新洞察：LLM 不止是“更高”的抽象，它正在改变编程的“本质”！</title><link>https://tonybai.com/2025/06/26/non-deterministic-abstraction/</link><pubDate>Thu, 26 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/26/non-deterministic-abstraction/</guid><description>Martin Fowler最新洞察：LLM 不止是“更高”的抽象，它正在改变编程的“本质”！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ...</description></item><item><title>Go vs. Rust再掀波澜：Grab真实案例复盘，Gopher如何看待这场“效率与代价”之争？</title><link>https://tonybai.com/2025/06/24/grab-rewrote-go-service-in-rust/</link><pubDate>Tue, 24 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/24/grab-rewrote-go-service-in-rust/</guid><description>Go vs. Rust再掀波澜：Grab真实案例复盘，Gopher如何看待这场“效率与代价”之争？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课...</description></item><item><title>Go 解析器的“隐秘角落”：encoding/json 的安全陷阱与 JSONv2 的救赎</title><link>https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers/</guid><description>本文永久链接 – https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers 大家好，我是Tony Bai。 在 Go 语言中，标准库的 encoding/json 包无疑是我们日常打交道最多的伙伴之一。它简洁易用，性能尚可，支撑了无数 Go 应用的数据交换需求。然而，正如俗话所说，“最熟悉的地方可能藏着最深的...</description></item><item><title>Kubernetes 2.0 畅想：告别 YAML、etcd 束缚与 Helm 之痛，K8s 的下一站是什么？</title><link>https://tonybai.com/2025/06/21/kubernetes-2-0/</link><pubDate>Sat, 21 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/21/kubernetes-2-0/</guid><description>Kubernetes 2.0 畅想：告别 YAML、etcd 束缚与 Helm 之痛，K8s 的下一站是什么？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * G...</description></item><item><title>Go errors.Join：是“天赐之物”还是“潘多拉魔盒”？——深入错误聚合的适用场景与最佳实践</title><link>https://tonybai.com/2025/06/20/about-errors-join/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/20/about-errors-join/</guid><description>本文永久链接 – https://tonybai.com/2025/06/20/about-errors-join 大家好，我是Tony Bai。 错误处理，无疑是软件开发中永恒的核心议题之一。Go 语言以其独特的、显式的错误处理机制（即 error 作为普通值返回）而著称，这种设计强调了对错误的关注和及时处理。自 Go 1.13 引入错误包装 (wrapping) 机制以来，Go 的错误处理能力...</description></item><item><title>RedMonk最新排行出炉：Go语言稳居Top 12，AI 冲击下 Stack Overflow 权重生变？</title><link>https://tonybai.com/2025/06/20/redmonk-index-2025-jan/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/20/redmonk-index-2025-jan/</guid><description>RedMonk最新排行出炉：Go语言稳居Top 12，AI 冲击下 Stack Overflow 权重生变？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go...</description></item><item><title>当一切皆可用Python：Go这样的通用语言与DSL的未来价值何在？</title><link>https://tonybai.com/2025/06/19/language-design-in-the-era-of-llm/</link><pubDate>Thu, 19 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/19/language-design-in-the-era-of-llm/</guid><description>当一切皆可用Python：Go这样的通用语言与DSL的未来价值何在？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FA...</description></item><item><title>解构Go并发之核，与Dmitry Vyukov共探Go调度艺术</title><link>https://tonybai.com/2025/06/18/inside-goroutine-scheduler-column/</link><pubDate>Wed, 18 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/18/inside-goroutine-scheduler-column/</guid><description>解构Go并发之核，与Dmitry Vyukov共探Go调度艺术 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>“骑手与大象”架构：超越微服务与单体之争的务实之道？</title><link>https://tonybai.com/2025/06/17/rider-elephant-arch/</link><pubDate>Tue, 17 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/17/rider-elephant-arch/</guid><description>“骑手与大象”架构：超越微服务与单体之争的务实之道？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？</title><link>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</link><pubDate>Mon, 16 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/16/go-avoid-critical-incident/</guid><description>GCP大面积故障，Go语言是“元凶”还是“背锅侠”？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go还是Rust？2025年技术选型之辩</title><link>https://tonybai.com/2025/06/15/rust-vs-go-2025/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/15/rust-vs-go-2025/</guid><description>Go还是Rust？2025年技术选型之辩 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章列表...</description></item><item><title>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！</title><link>https://tonybai.com/2025/06/14/go-1-25-foresight/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/14/go-1-25-foresight/</guid><description>Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课...</description></item><item><title>爽就完了！Go语言的“简单之美”为何让开发者直呼过瘾？</title><link>https://tonybai.com/2025/06/12/grog-brain-heaven/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/12/grog-brain-heaven/</guid><description>爽就完了！Go语言的“简单之美”为何让开发者直呼过瘾？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我...</description></item><item><title>Sam Altman的“温和奇点”已至：我们真的越过了AI的“事件视界”吗？</title><link>https://tonybai.com/2025/06/11/the-gentle-singularity/</link><pubDate>Wed, 11 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/11/the-gentle-singularity/</guid><description>Sam Altman的“温和奇点”已至：我们真的越过了AI的“事件视界”吗？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>告别手写汇编：Go官方提出原生SIMD支持，高性能计算将迎来巨变</title><link>https://tonybai.com/2025/06/09/go-simd-intrinsics/</link><pubDate>Mon, 09 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/09/go-simd-intrinsics/</guid><description>告别手写汇编：Go官方提出原生SIMD支持，高性能计算将迎来巨变 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ ...</description></item><item><title>“Rustacean”胚胎 vs “Gopher”胚胎：假如用技术栈测“人格”，你会是哪一款？</title><link>https://tonybai.com/2025/06/07/nucleus-embryo/</link><pubDate>Sat, 07 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/07/nucleus-embryo/</guid><description>“Rustacean”胚胎 vs “Gopher”胚胎：假如用技术栈测“人格”，你会是哪一款？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FA...</description></item><item><title>千呼万唤始出来？Go 1.25解决Git仓库子目录作为模块根路径难题</title><link>https://tonybai.com/2025/06/07/allow-serving-module-under-subdir/</link><pubDate>Sat, 07 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/07/allow-serving-module-under-subdir/</guid><description>千呼万唤始出来？Go 1.25解决Git仓库子目录作为模块根路径难题 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FA...</description></item><item><title>Go项目该拥抱Monorepo吗？Google经验、etcd模式及白盒交付场景下的深度剖析</title><link>https://tonybai.com/2025/06/06/go-monorepo/</link><pubDate>Fri, 06 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/06/go-monorepo/</guid><description>Go项目该拥抱Monorepo吗？Google经验、etcd模式及白盒交付场景下的深度剖析 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ ...</description></item><item><title>Go 错误处理语法之争尘埃落定？Go 团队为何十五年探索后仍选择“不”</title><link>https://tonybai.com/2025/06/04/error-syntax/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/04/error-syntax/</guid><description>Go 错误处理语法之争尘埃落定？Go 团队为何十五年探索后仍选择“不” - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课F...</description></item><item><title>AI 编码工具“真香”还是“智商税”？一位资深码农的“挑衅”与Go开发者的反思</title><link>https://tonybai.com/2025/06/03/provocation-about-ai-assisted-programming/</link><pubDate>Tue, 03 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/03/provocation-about-ai-assisted-programming/</guid><description>AI 编码工具“真香”还是“智商税”？一位资深码农的“挑衅”与Go开发者的反思 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>Go的简洁性之辩：轻量级匿名函数提案为何七年悬而未决？</title><link>https://tonybai.com/2025/06/03/lightweight-anonymous-func-syntax/</link><pubDate>Tue, 03 Jun 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/06/03/lightweight-anonymous-func-syntax/</guid><description>Go的简洁性之辩：轻量级匿名函数提案为何七年悬而未决？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我...</description></item><item><title>“这代码迟早出事！”——复盘线上问题：六个让你头痛的Go编码坏味道</title><link>https://tonybai.com/2025/05/31/six-smells-in-go/</link><pubDate>Sat, 31 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/31/six-smells-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/05/31/six-smells-in-go 大家好，我是Tony Bai。 在日常的代码审查 (Code Review) 和线上问题复盘中，我经常会遇到一些看似不起眼，却可能埋下巨大隐患的 Go 代码问题。这些“编码坏味道”轻则导致逻辑混乱、性能下降，重则引发数据不一致、系统崩溃，甚至让团队成员在深夜被告警声惊醒，苦不堪言。 今...</description></item><item><title>当Gopher拥有了“Go语言女友”：一张图带你读懂Go的那些“可爱”特性</title><link>https://tonybai.com/2025/05/30/gopher-girlfriend/</link><pubDate>Fri, 30 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/30/gopher-girlfriend/</guid><description>当Gopher拥有了“Go语言女友”：一张图带你读懂Go的那些“可爱”特性 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Go x/exp/xiter提案搁浅背后：社区的选择与深度思考</title><link>https://tonybai.com/2025/05/29/xiter-declined/</link><pubDate>Thu, 29 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/29/xiter-declined/</guid><description>Go x/exp/xiter提案搁浅背后：社区的选择与深度思考 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>云原生时代，如何用RED三板斧搞定服务监控？</title><link>https://tonybai.com/2025/05/26/monitor-design-with-red/</link><pubDate>Mon, 26 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/26/monitor-design-with-red/</guid><description>云原生时代，如何用RED三板斧搞定服务监控？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章...</description></item><item><title>Google I/O 2025 Go 语言进展：生产力、生产就绪与 AI 赋能</title><link>https://tonybai.com/2025/05/25/go-at-googleio-2025/</link><pubDate>Sun, 25 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/25/go-at-googleio-2025/</guid><description>Google I/O 2025 Go 语言进展：生产力、生产就绪与 AI 赋能 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>API设计的“Go境界”：Go团队设计MCP SDK过程中的取舍与思考</title><link>https://tonybai.com/2025/05/23/go-api-design-mcp-sdk/</link><pubDate>Fri, 23 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/23/go-api-design-mcp-sdk/</guid><description>本文永久链接 – https://tonybai.com/2025/05/23/go-api-design-mcp-sdk 大家好，我是 Tony Bai。 作为开发者，我们每天都在与 API 打交道——调用它们，设计它们，有时也会为糟糕的 API 设计而头痛不已。一个优秀的 API，如同一位技艺精湛的向导，能清晰、高效地引领我们通往复杂功能的彼岸；而一个蹩脚的 API，则可能像一座布满陷阱的迷宫...</description></item><item><title>Go工具链进化：go.mod新增ignore指令，破解混合项目构建难题</title><link>https://tonybai.com/2025/05/22/go-mod-ignore-directive/</link><pubDate>Thu, 22 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/22/go-mod-ignore-directive/</guid><description>Go工具链进化：go.mod新增ignore指令，破解混合项目构建难题 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课F...</description></item><item><title>透视软件供应链安全：SBOM标准解读与Go项目生成指南</title><link>https://tonybai.com/2025/05/22/go-sbom-practice/</link><pubDate>Thu, 22 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/22/go-sbom-practice/</guid><description>本文永久链接 – https://tonybai.com/2025/05/22/go-sbom-practice 大家好，我是Tony Bai。 近年来，软件供应链安全事件频发，从 SolarWinds 到 Log4Shell，每一次都给业界敲响了警钟。在这样的背景下，软件物料清单 (SBOM, Software Bill of Materials) 的重要性日益凸显。无论是甲方爸爸的硬性要求（尤...</description></item><item><title>权威认证：Go核心密码学库通过独立安全审计</title><link>https://tonybai.com/2025/05/21/go-crypto-audit/</link><pubDate>Wed, 21 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/21/go-crypto-audit/</guid><description>权威认证：Go核心密码学库通过独立安全审计 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章列...</description></item><item><title>未雨绸缪：Go开发者需要了解的后量子密码学与实现现状</title><link>https://tonybai.com/2025/05/20/post-quantum-cryptography-in-go/</link><pubDate>Tue, 20 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/20/post-quantum-cryptography-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/05/20/post-quantum-cryptography-in-go 大家好，我是 Tony Bai。 在我们享受数字时代便利的同时，信息安全始终是悬在我们头顶的达摩克利斯之剑。而这把剑，正面临着来自未来的一个巨大挑战——**量子计算机**。一旦实用化的大规模量子计算机问世，我们当前广泛依赖的许多经典密码体系（如 RSA、椭...</description></item><item><title>原子操作的瓶颈与Go的多核扩展性之痛：深入剖析sync.ShardedValue及per-CPU提案</title><link>https://tonybai.com/2025/05/19/shardedvalue-per-cpu-proposal/</link><pubDate>Mon, 19 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/19/shardedvalue-per-cpu-proposal/</guid><description>原子操作的瓶颈与Go的多核扩展性之痛：深入剖析sync.ShardedValue及per-CPU提案 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一...</description></item><item><title>Java屹立30年，Go的“少年壮志”如何续写辉煌？——来自Java之父的“长寿秘诀”</title><link>https://tonybai.com/2025/05/17/java-at-30/</link><pubDate>Sat, 17 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/17/java-at-30/</guid><description>Java屹立30年，Go的“少年壮志”如何续写辉煌？——来自Java之父的“长寿秘诀” - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * ...</description></item><item><title>揭秘Go语言中的rune：一段跨越30年的Plan 9往事与UTF-8的诞生传奇</title><link>https://tonybai.com/2025/05/16/how-rune-came/</link><pubDate>Fri, 16 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/16/how-rune-came/</guid><description>揭秘Go语言中的rune：一段跨越30年的Plan 9往事与UTF-8的诞生传奇 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语...</description></item><item><title>思想实验：如果全球网站一夜之间弃用HTTPS，能为地球节省多少电？</title><link>https://tonybai.com/2025/05/16/energy-savings-if-abandon-https/</link><pubDate>Fri, 16 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/16/energy-savings-if-abandon-https/</guid><description>思想实验：如果全球网站一夜之间弃用HTTPS，能为地球节省多少电？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ...</description></item><item><title>手把手带你玩转GOEXPERIMENT=jsonv2：Go下一代JSON库初探</title><link>https://tonybai.com/2025/05/15/go-json-v2/</link><pubDate>Thu, 15 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/15/go-json-v2/</guid><description>本文永久链接 – https://tonybai.com/2025/05/15/go-json-v2 大家好，我是Tony Bai。 Go 语言标准库中的 encoding/json 包，无疑是我们日常开发中使用频率最高的包之一。它为 Go 社区服务了十多年，几乎无处不在。但与此同时，它也因一些历史遗留的 API 缺陷、行为不一致以及在某些场景下的性能瓶颈而受到过不少讨论和批评。社区中甚至涌现出像...</description></item><item><title>从Go路由选择看“标准库优先”：何时坚守？何时拓展？</title><link>https://tonybai.com/2025/05/14/which-go-router-should-i-use/</link><pubDate>Wed, 14 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/14/which-go-router-should-i-use/</guid><description>从Go路由选择看“标准库优先”：何时坚守？何时拓展？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go社区的“轻框架”理念：自由的馈赠还是无形的枷锁？</title><link>https://tonybai.com/2025/05/13/go-prefer-less-framework/</link><pubDate>Tue, 13 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/13/go-prefer-less-framework/</guid><description>Go社区的“轻框架”理念：自由的馈赠还是无形的枷锁？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go运行时底层接口标准化？“GOOS=none”欲为Go铺设通往裸金属、固件和微控制器的桥梁</title><link>https://tonybai.com/2025/05/13/goos-none-proposal/</link><pubDate>Tue, 13 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/13/goos-none-proposal/</guid><description>Go运行时底层接口标准化？“GOOS=none”欲为Go铺设通往裸金属、固件和微控制器的桥梁 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ...</description></item><item><title>从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！</title><link>https://tonybai.com/2025/05/12/go-advanced-course/</link><pubDate>Mon, 12 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/12/go-advanced-course/</guid><description>从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ ...</description></item><item><title>Go包维护者必读：如何让你的Go包更易被发现、文档更专业？</title><link>https://tonybai.com/2025/05/11/deep-into-pkg-go-dev/</link><pubDate>Sun, 11 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/11/deep-into-pkg-go-dev/</guid><description>Go包维护者必读：如何让你的Go包更易被发现、文档更专业？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关...</description></item><item><title>Go语言进入“后元老时代”？Ian Lance Taylor离职引发的思考：传承、创新与社区</title><link>https://tonybai.com/2025/05/11/ian-lance-taylor-leave-go/</link><pubDate>Sun, 11 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/11/ian-lance-taylor-leave-go/</guid><description>Go语言进入“后元老时代”？Ian Lance Taylor离职引发的思考：传承、创新与社区 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ...</description></item><item><title>百万行依赖的“恐惧”：一位Rust开发者的深度反思与Go的启示</title><link>https://tonybai.com/2025/05/10/rust-dependencies-scare-me/</link><pubDate>Sat, 10 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/10/rust-dependencies-scare-me/</guid><description>百万行依赖的“恐惧”：一位Rust开发者的深度反思与Go的启示 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>GitHub英语沟通太难？别让语言成为你参与顶级Go项目的拦路虎！</title><link>https://tonybai.com/2025/05/09/github-english-communication-patterns-and-practice/</link><pubDate>Fri, 09 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/09/github-english-communication-patterns-and-practice/</guid><description>本文永久链接 – https://tonybai.com/2025/05/09/github-english-communication-patterns-and-practice 大家好，我是 Tony Bai。 身处全球化的软件开发浪潮中，GitHub早已成为我们协作、学习、贡献的“宇宙中心”。但对于我们许多非英语母语的开发者来说，它既是机遇之地，有时也是“望而却步”的挑战场。 你是否也曾有过...</description></item><item><title>Go 1.25链接器提速、执行文件瘦身：DWARF 5调试信息格式升级终落地</title><link>https://tonybai.com/2025/05/08/go-dwarf5/</link><pubDate>Thu, 08 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/08/go-dwarf5/</guid><description>Go 1.25链接器提速、执行文件瘦身：DWARF 5调试信息格式升级终落地 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进...</description></item><item><title>代码覆盖率新玩法：Russ Cox教你用差异化分析加速Go调试</title><link>https://tonybai.com/2025/05/07/debug-with-diff-cover/</link><pubDate>Wed, 07 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/07/debug-with-diff-cover/</guid><description>代码覆盖率新玩法：Russ Cox教你用差异化分析加速Go调试 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>解读“Cheating the Reaper”：在Go中与GC共舞的Arena黑科技</title><link>https://tonybai.com/2025/05/06/cheating-the-reaper-in-go/</link><pubDate>Tue, 06 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/06/cheating-the-reaper-in-go/</guid><description>解读“Cheating the Reaper”：在Go中与GC共舞的Arena黑科技 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * G...</description></item><item><title>Go新垃圾回收器登场：Green Tea GC如何通过内存感知显著降低CPU开销？</title><link>https://tonybai.com/2025/05/03/go-green-tea-garbage-collector/</link><pubDate>Sat, 03 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/03/go-green-tea-garbage-collector/</guid><description>Go新垃圾回收器登场：Green Tea GC如何通过内存感知显著降低CPU开销？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go...</description></item><item><title>“错误即值”，不同实现：Go与Zig错误处理哲学对比</title><link>https://tonybai.com/2025/04/30/go-vs-zig-in-error-handling/</link><pubDate>Wed, 30 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/30/go-vs-zig-in-error-handling/</guid><description>本文永久链接 – https://tonybai.com/2025/04/30/go-vs-zig-in-error-handling 大家好，我是Tony Bai。 使用Go语言有些年头的开发者，大多对其错误处理机制有着复杂的情感。一方面，我们认同 Rob Pike 所倡导的“错误即值 (Errors are values)”的核心哲学——错误不是需要特殊通道（如异常）处理的“二等公民”，它们是...</description></item><item><title>Go的简洁神话？转Go前你需要知道的5个“真相”</title><link>https://tonybai.com/2025/04/29/hard-truths-before-switching-to-go/</link><pubDate>Tue, 29 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/29/hard-truths-before-switching-to-go/</guid><description>Go的简洁神话？转Go前你需要知道的5个“真相” - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * ...</description></item><item><title>go-yaml归档背后：Go开源生态的“脆弱”与“韧性”，我们该如何看待？</title><link>https://tonybai.com/2025/04/28/go-ecosystem/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/28/go-ecosystem/</guid><description>go-yaml归档背后：Go开源生态的“脆弱”与“韧性”，我们该如何看待？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Go开发者必知：五大缓存策略详解与选型指南</title><link>https://tonybai.com/2025/04/28/five-cache-strategies/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/28/five-cache-strategies/</guid><description>本文永久链接 – https://tonybai.com/2025/04/28/five-cache-strategies 大家好，我是Tony Bai。 在构建高性能、高可用的后端服务时，缓存几乎是绕不开的话题。无论是为了加速数据访问，还是为了减轻数据库等主数据源的压力，缓存都扮演着至关重要的角色。对于我们 Go 开发者来说，选择并正确地实施缓存策略，是提升应用性能的关键技能之一。 目前业界主流...</description></item><item><title>Rob Pike的“抱怨”与Go的“解药”：直面软件膨胀的四大根源</title><link>https://tonybai.com/2025/04/27/rob-pike-on-bloat/</link><pubDate>Sun, 27 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/27/rob-pike-on-bloat/</guid><description>Rob Pike的“抱怨”与Go的“解药”：直面软件膨胀的四大根源 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ...</description></item><item><title>【规律之手】资深码农都懂？软件工程中的13条“潜规则”定律</title><link>https://tonybai.com/2025/04/26/13-laws-of-software-engineering/</link><pubDate>Sat, 26 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/26/13-laws-of-software-engineering/</guid><description>【规律之手】资深码农都懂？软件工程中的13条“潜规则”定律 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关...</description></item><item><title>一个字符引发的30%性能下降：Go值接收者的隐藏成本与优化</title><link>https://tonybai.com/2025/04/25/hidden-costs-of-go-value-receiver/</link><pubDate>Fri, 25 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/25/hidden-costs-of-go-value-receiver/</guid><description>一个字符引发的30%性能下降：Go值接收者的隐藏成本与优化 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关...</description></item><item><title>Go应用的K8s“最佳拍档”：何时以及如何用好多容器Pod模式</title><link>https://tonybai.com/2025/04/24/multiple-containers-pod-pattern/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/24/multiple-containers-pod-pattern/</guid><description>Go应用的K8s“最佳拍档”：何时以及如何用好多容器Pod模式 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ *...</description></item><item><title>拯救你的Commit Log：Conventional Commits实践指南</title><link>https://tonybai.com/2025/04/24/conventional-commits-guide/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/24/conventional-commits-guide/</guid><description>拯救你的Commit Log：Conventional Commits实践指南 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>世界读书日：如何高效阅读“砖头”技术书？我的心法分享（文末赠书）</title><link>https://tonybai.com/2025/04/23/tips-for-reading-technical-books/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/23/tips-for-reading-technical-books/</guid><description>世界读书日：如何高效阅读“砖头”技术书？我的心法分享（文末赠书） - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ ...</description></item><item><title>不止Go，更是Go+AI：我的知识星球「Go &amp; AI 精进营」全新启航！</title><link>https://tonybai.com/2025/04/22/go-ai-knowledge-community-launch/</link><pubDate>Tue, 22 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/22/go-ai-knowledge-community-launch/</guid><description>不止Go，更是Go+AI：我的知识星球「Go &amp;amp; AI 精进营」全新启航！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Go项目设计的“七宗罪”？警惕那些流行的“反模式”</title><link>https://tonybai.com/2025/04/21/go-project-design-antipatterns/</link><pubDate>Mon, 21 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/21/go-project-design-antipatterns/</guid><description>Go项目设计的“七宗罪”？警惕那些流行的“反模式” - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 *...</description></item><item><title>AI会写Go代码了，初学者还需要系统学习吗？</title><link>https://tonybai.com/2025/04/19/learn-go-in-ai-era/</link><pubDate>Sat, 19 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/19/learn-go-in-ai-era/</guid><description>AI会写Go代码了，初学者还需要系统学习吗？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章...</description></item><item><title>代码Agent没有护城河？我用Go标准库和DeepSeek证明给你看！</title><link>https://tonybai.com/2025/04/18/reproduce-thorsten-balls-code-agent/</link><pubDate>Fri, 18 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/18/reproduce-thorsten-balls-code-agent/</guid><description>本文永久链接 – https://tonybai.com/2025/04/18/reproduce-thorsten-balls-code-agent 大家好，我是Tony Bai。 人工智能Agent风头正劲，但构建它们真的那么难吗？本文深入解读Thorsten Ball 的“皇帝新衣”论，并通过一个 Go 标准库 + OpenAI Compatible API + DeepSeek的实战复现，...</description></item><item><title>“Go is badly designed”？它像极了我们当年恨过的物理老师！</title><link>https://tonybai.com/2025/04/17/go-is-badly-designed/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/17/go-is-badly-designed/</guid><description>“Go is badly designed”？它像极了我们当年恨过的物理老师！ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>自定义Hash终迎标准化？Go提案maphash.Hasher接口设计解读</title><link>https://tonybai.com/2025/04/17/standardize-the-hash-function/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/17/standardize-the-hash-function/</guid><description>自定义Hash终迎标准化？Go提案maphash.Hasher接口设计解读 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>RPC 2.0</title><link>https://tonybai.com/2025/04/16/ai-protocol-prefer-jsonrpc/</link><pubDate>Wed, 16 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/16/ai-protocol-prefer-jsonrpc/</guid><description>AI新宠？解读MCP、A2A为何偏爱JSON-RPC 2.0 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * ...</description></item><item><title>11个现代Go特性：用gopls/modernize让你的代码焕然一新</title><link>https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize/</guid><description>本文永久链接 – https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize 大家好，我是Tony Bai。 最近在思考Go语言的发展时，不禁让我想起了当年学习C++的经历。Bjarne Stroustrup在《C++程序设计语言（特别版）》中就专门强调了“现代 C++”（Modern C++）的编程风格，...</description></item><item><title>告别智能体孤岛：谷歌A2A协议能否成为企业AI协作的通用语？</title><link>https://tonybai.com/2025/04/14/what-is-a2a-protocol/</link><pubDate>Mon, 14 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/14/what-is-a2a-protocol/</guid><description>本文永久链接 – https://tonybai.com/2025/04/14/what-is-a2a-protocol 随着人工智能（AI）的飞速发展，AI 智能体（Agent）正成为企业自动化、提升生产力的关键力量。从处理日常重复任务到辅助复杂决策，智能体的应用场景日益广泛。然而，一个严峻的挑战随之而来：**不同框架、不同厂商构建的智能体往往如同信息孤岛，难以有效协作**，这极大地限制了它们在...</description></item><item><title>揭秘顶尖技术专家的15个关键方法与心态，不只靠代码</title><link>https://tonybai.com/2025/04/13/top-programmers-methods-mindset/</link><pubDate>Sun, 13 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/13/top-programmers-methods-mindset/</guid><description>揭秘顶尖技术专家的15个关键方法与心态，不只靠代码 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 *...</description></item><item><title>Go开发者必看！Uber如何利用PGO将Go服务性能优化推向新高度？</title><link>https://tonybai.com/2025/04/11/uber-go-pgo-optimization/</link><pubDate>Fri, 11 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/11/uber-go-pgo-optimization/</guid><description>Go开发者必看！Uber如何利用PGO将Go服务性能优化推向新高度？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FA...</description></item><item><title>Go开发者必看！JetBrains 2024报告深度解读：Go语言现状、趋势与未来机遇</title><link>https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/</guid><description>Go开发者必看！JetBrains 2024报告深度解读：Go语言现状、趋势与未来机遇 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * ...</description></item><item><title>Go 1.25新提案：GOMAXPROCS默认值将迎Cgroup感知能力，终结容器性能噩梦？</title><link>https://tonybai.com/2025/04/09/gomaxprocs-defaults-add-cgroup-aware/</link><pubDate>Wed, 09 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/09/gomaxprocs-defaults-add-cgroup-aware/</guid><description>Go 1.25新提案：GOMAXPROCS默认值将迎Cgroup感知能力，终结容器性能噩梦？ - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ...</description></item><item><title>Go testing包将迎来新增强：标准化属性与持久化构件API即将落地</title><link>https://tonybai.com/2025/04/07/go-testing-add-attr-and-artifactdir/</link><pubDate>Mon, 07 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/07/go-testing-add-attr-and-artifactdir/</guid><description>Go testing包将迎来新增强：标准化属性与持久化构件API即将落地 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课...</description></item><item><title>WaitGroup.Go要来了？Go官方提案或让你告别Add和Done样板代码</title><link>https://tonybai.com/2025/04/03/waitgroup-go-proposal/</link><pubDate>Thu, 03 Apr 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/04/03/waitgroup-go-proposal/</guid><description>WaitGroup.Go要来了？Go官方提案或让你告别Add和Done样板代码 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言...</description></item><item><title>Go安全版图再添利器：OpenPubkey SSH开源，用SSO彻底改变SSH认证</title><link>https://tonybai.com/2025/03/31/openpubkey-ssh-open-source/</link><pubDate>Mon, 31 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/31/openpubkey-ssh-open-source/</guid><description>Go安全版图再添利器：OpenPubkey SSH开源，用SSO彻底改变SSH认证 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go...</description></item><item><title>Go模块发布流程再加固：go mod verify -tag提案详解</title><link>https://tonybai.com/2025/03/28/go-mod-verify-tag/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/28/go-mod-verify-tag/</guid><description>Go模块发布流程再加固：go mod verify -tag提案详解 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FA...</description></item><item><title>Go 1.25规范大扫除：移除“Core Types”，为更灵活的泛型铺路</title><link>https://tonybai.com/2025/03/27/remove-coretypes-from-go-spec/</link><pubDate>Thu, 27 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/27/remove-coretypes-from-go-spec/</guid><description>Go 1.25规范大扫除：移除“Core Types”，为更灵活的泛型铺路 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶...</description></item><item><title>Go方法名的作用域：包级，但需间接调用</title><link>https://tonybai.com/2025/03/24/understand-methodname-scope/</link><pubDate>Mon, 24 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/24/understand-methodname-scope/</guid><description>Go方法名的作用域：包级，但需间接调用 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章列表 ...</description></item><item><title>体验Gemini Deep Research：以Go语言未来演进方向分析为例</title><link>https://tonybai.com/2025/03/16/gemini-deep-research-experience/</link><pubDate>Sun, 16 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/16/gemini-deep-research-experience/</guid><description>本文永久链接 – https://tonybai.com/2025/03/16/gemini-deep-research-experience 基于大模型的AI已进入深度思考时代，以DeepSeek R1模型为代表的开源模型给主流AI厂商带来了巨大压力。其实早在2024年12月份，Google就在一篇名为“Try Deep Research and our new experimental mod...</description></item><item><title>Anders Hejlsberg专访全文：TypeScript正在向Go移植</title><link>https://tonybai.com/2025/03/13/interview-with-anders-hejlsberg/</link><pubDate>Thu, 13 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/13/interview-with-anders-hejlsberg/</guid><description>本文永久链接 – https://tonybai.com/2025/03/13/interview-with-anders-hejlsberg 昨天发表了《Anders Hejlsberg亲自操刀向Go语言移植！TypeScript编译器性能狂飙10倍！》一文后，收到了许多读者的反馈，其中最高频的问题是：为什么不选择Rust？为什么不使用C#等其他语言？为了帮助大家更好地理解这次“技术事件”，我整...</description></item><item><title>Anders Hejlsberg谈TypeScript编译器向Go移植的实践与规划</title><link>https://tonybai.com/2025/03/12/typescript-native-port-to-go/</link><pubDate>Wed, 12 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/12/typescript-native-port-to-go/</guid><description>Anders Hejlsberg谈TypeScript编译器向Go移植的实践与规划 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go...</description></item><item><title>构建高效的AI智能体[译]</title><link>https://tonybai.com/2025/03/11/building-effective-agents/</link><pubDate>Tue, 11 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/11/building-effective-agents/</guid><description>构建高效的AI智能体[译] - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 * 文章列表 构建高效的A...</description></item><item><title>深入GOCACHEPROG：Go构建缓存的自定义扩展</title><link>https://tonybai.com/2025/03/04/deep-dive-into-gocacheprog-custom-extensions-for-go-build-cache/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/03/04/deep-dive-into-gocacheprog-custom-extensions-for-go-build-cache/</guid><description>本文永久链接 – https://tonybai.com/2025/03/04/deep-dive-into-gocacheprog-custom-extensions-for-go-build-cache 1. 背景 ----- 众所周知，Go build cache是在Go 1.10版本加入到Go工具链中的，缓存的主要目标是避免重复编译相同的代码，从而加快构建速度。 默认情况下，Go构建缓存位...</description></item><item><title>Go 1.24中值得关注的几个变化</title><link>https://tonybai.com/2025/02/16/some-changes-in-go-1-24/</link><pubDate>Sun, 16 Feb 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/02/16/some-changes-in-go-1-24/</guid><description>本文永久链接 – https://tonybai.com/2025/02/16/some-changes-in-go-1-24 北京时间2025年2月12日，恰逢中国传统元宵佳节，远在美国的Go团队正式发布了Go 1.24的第一个版本Go 1.24.0。这也是Go团队在更换Tech Leader为Austin Clements后发布的首个大版本。 按照惯例，每次Go大版本发布时，我都会撰写一篇“G...</description></item><item><title>关于Go错误处理新提案的一个想法：?操作符这样用行不行</title><link>https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal/</link><pubDate>Sat, 08 Feb 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal/</guid><description>关于Go错误处理新提案的一个想法：?操作符这样用行不行 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我...</description></item><item><title>Go encoding/json/v2提案：JSON处理新引擎</title><link>https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine/</link><pubDate>Wed, 05 Feb 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine/</guid><description>本文永久链接 – https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine Go标准库中的encoding/json包，作为Go社区广泛使用的JSON处理工具，至今已走过十余年。凭借其将JSON数据与原生Go类型相互转换的能力、通过struct tag自定义字段表示的灵活性，以及Go...</description></item><item><title>Go导出标识符：那些鲜为人知的细节</title><link>https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers/</link><pubDate>Thu, 23 Jan 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers/</guid><description>本文永久链接 – https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers 前不久，在“Go+用户组”微信群里看到有开发者向七牛云老板许式伟反馈七牛云Go SDK中的某些类型没有导出，导致外部包无法使用的问题(如下图)： 七牛开发人员迅速对该问题做出了“更正”，将问题反馈中涉及的类型saveasArgs...</description></item><item><title>探索Go gcflags的使用模式与完整参数选项列表</title><link>https://tonybai.com/2025/01/22/gcflags-options-list-and-usage/</link><pubDate>Wed, 22 Jan 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/01/22/gcflags-options-list-and-usage/</guid><description>探索Go gcflags的使用模式与完整参数选项列表 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 ...</description></item><item><title>Go工具链版本已不由你定：go和toolchain指令详解</title><link>https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod/</link><pubDate>Tue, 14 Jan 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod/</guid><description>本文永久链接 – https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod Go语言自诞生以来，就一直将向后兼容性作为其核心理念之一。Go1兼容性承诺确保了为Go1.0编写的代码能够在后续的Go1.x版本中持续正确地编译和运行。这一承诺为Go的成功奠定了坚实的基础，它不仅保障了稳定性，也大大减轻了随着语言演进带...</description></item><item><title>2024年Go语言盘点：排名历史新高，团队新老传承</title><link>https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/</link><pubDate>Mon, 06 Jan 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/</guid><description>2024年Go语言盘点：排名历史新高，团队新老传承 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * Go语言进阶课FAQ * 关于我 *...</description></item><item><title>探索基于pion开发的WebRTC应用的建连过程</title><link>https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion/</link><pubDate>Thu, 26 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion/</guid><description>本文永久链接 – https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion 在《WebRTC第一课：从信令、ICE到NAT穿透的连接建立全流程》一文中，我们从理论层面全面细致地了解了WebRTC连接建立的完整流程。这个流程大致可以分为以下几个阶段： ...</description></item><item><title>使用issue2md将Github issue转换为Markdown</title><link>https://tonybai.com/2024/12/23/convert-github-issue-to-markdown-with-issue2md/</link><pubDate>Mon, 23 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/23/convert-github-issue-to-markdown-with-issue2md/</guid><description>使用issue2md将Github issue转换为Markdown | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表...</description></item><item><title>Go 1.24新特性前瞻：工具链和标准库</title><link>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</link><pubDate>Tue, 17 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</guid><description>本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中，我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文，重点介绍Go 1.24在工具链和标准库方面的重要更新，供大家参考。 1\. 工具链 ------- 1.1 go.mod新增tool指示符，支持...</description></item><item><title>Go 1.24新特性前瞻：语法、编译器与运行时</title><link>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</guid><description>Go 1.24新特性前瞻：语法、编译器与运行时 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go 1.24新特性...</description></item><item><title>WebRTC第一课：从信令、ICE到NAT穿透的连接建立全流程</title><link>https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish/</link><pubDate>Sat, 14 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish/</guid><description>本文永久链接 – https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课：网络架构与NAT工作原理》中，我们介绍了WebRTC的网络架构和NAT的基本概念，学习了WebRTC采用端对端（P2P）的通信模型，知道了NAT（网络地址转换）的概念以及给像WebRTC这样的直接P...</description></item><item><title>量子计算入门与Go模拟</title><link>https://tonybai.com/2024/12/11/simulate-quantum-computing-in-go/</link><pubDate>Wed, 11 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/11/simulate-quantum-computing-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/12/11/simulate-quantum-computing-in-go 2019年，Google宣布实现”量子霸权”，声称其53量子比特的量子计算机完成了一个经典超级计算机需要1万年才能完成的计算任务。这一宣告在当时引发了广泛关注和热议。而在这个过程中，我们也看到了太多对量子计算的误解。有人将其想象成**未来取代经典计算机的...</description></item><item><title>探索Docker默认网络NAT映射的分配与过滤行为</title><link>https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network/</link><pubDate>Thu, 05 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network/</guid><description>本文永久链接 – https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network 在《WebRTC第一课：网络架构与NAT工作原理》一文中，我们对WebRTC的网路架构进行说明，了解到了NAT的工作原理、RFC 3489对NAT的四种传统...</description></item><item><title>惊！Go在十亿次循环和百万任务中表现不如Java，究竟为何？</title><link>https://tonybai.com/2024/12/02/why-go-sucks/</link><pubDate>Mon, 02 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/02/why-go-sucks/</guid><description>本文永久链接 – https://tonybai.com/2024/12/02/why-go-sucks 编程语言比较的话题总是能吸引程序员的眼球！ 近期外网的两篇编程语言对比的文章在国内程序员圈里引起热议。一篇是由Ben Dicken (@BenjDicken) 做的语言性能测试，对比了十多种主流语言在执行10亿次循环(一个双层循环：1万 \* 10 万)的速度；另一篇则是一个名为hez2010...</description></item><item><title>WebRTC第一课：网络架构与NAT工作原理</title><link>https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work/</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work/</guid><description>本文永久链接 – https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work 2023年下旬，OpenAI与Livekit的合作在科技圈引起了不小的轰动。这两家公司联手，通过WebRTC技术和大型语言模型（LLM）的结合，使AI模型具有了看、听和说话的能力。这一举动不仅彰显了Web...</description></item><item><title>一文搞懂如何在Go包中支持Hash-Based Bisect调试</title><link>https://tonybai.com/2024/11/24/how-to-support-hash-based-bisect-in-go-package/</link><pubDate>Sun, 24 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/24/how-to-support-hash-based-bisect-in-go-package/</guid><description>本文永久链接 – https://tonybai.com/2024/mm/dd/how-to-support-hash-based-bisect-in-go-package bisect是一个英文动词，意为“二分”或“分成两部分”。在数学和计算机科学中，通常指将一个区间或一个集合分成两个相等的部分。 对于程序员来说，最熟悉的bisect应用莫过于下面两个： * 算法中的二分查找(binary se...</description></item><item><title>Go包构建：专家也未必了解的文件选择细节</title><link>https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package/</link><pubDate>Thu, 21 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package/</guid><description>本文永久链接 – https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package 在Go语言开发中，包（package）是代码组织的基本单位，也是基本的构建单元。Go编译器会将每个包构建成一个目标文件(.a)，然后通过链接器将这些目标文件链接在一起，形成最终的可执行程序。 尽管Go包的构建过...</description></item><item><title>走向合规：Go加密库对FIPS 140的支持</title><link>https://tonybai.com/2024/11/16/go-crypto-and-fips-140/</link><pubDate>Sat, 16 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/16/go-crypto-and-fips-140/</guid><description>本文永久链接 – https://tonybai.com/2024/11/16/go-crypto-and-fips-140 在今年3月份，Microsoft Azure团队宣布开设Go开发人员博客，旨在向开发者通报Microsoft在Go领域的最新动态，包括如何在Azure上部署Go工作负载以及与Go编程相关的文章。 然而，经过一段时间的关注，我发现该博客上的大多数文章都呈现出类似下图中的标题格...</description></item><item><title>Gotip安装：基于Go镜像代码仓库</title><link>https://tonybai.com/2024/11/15/install-gotip-using-go-repo-mirror/</link><pubDate>Fri, 15 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/15/install-gotip-using-go-repo-mirror/</guid><description>Gotip安装：基于Go镜像代码仓库 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Gotip安装：基于Go镜像代...</description></item><item><title>Go map使用Swiss Table重新实现，性能最高提升近50%</title><link>https://tonybai.com/2024/11/14/go-map-use-swiss-table/</link><pubDate>Thu, 14 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/14/go-map-use-swiss-table/</guid><description>本文永久链接 – https://tonybai.com/2024/11/14/go-map-use-swiss-table 在2024月11月5日的Go compiler and runtime meeting notes中，我们注意到了一段重要内容，如下图红框所示： 这表明，来自字节的一位工程师在两年多前提出的“使用Swiss table重新实现Go map”的建议即将落地，目前该issue已...</description></item><item><title>Go，15岁了[译]</title><link>https://tonybai.com/2024/11/12/go-turns-15/</link><pubDate>Tue, 12 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/12/go-turns-15/</guid><description>Go，15岁了\[译\] | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go，15岁了\[译\] ========...</description></item><item><title>Go编译的几个细节，连专家也要停下来想想</title><link>https://tonybai.com/2024/11/11/some-details-about-go-compilation/</link><pubDate>Mon, 11 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/11/some-details-about-go-compilation/</guid><description>本文永久链接 – https://tonybai.com/2024/11/11/some-details-about-go-compilation 在Go开发中，编译相关的问题看似简单，但实则蕴含许多细节。有时，即使是Go专家也需要停下来，花时间思考答案或亲自验证。本文将通过几个具体问题，和大家一起探讨Go编译过程中的一些你可能之前未曾关注的细节。 &amp;gt; 注：本文示例使用的环境为Go 1.23.0、...</description></item><item><title>从简单到强大：再次探索Caddy服务器的魅力</title><link>https://tonybai.com/2024/11/07/exploring-caddy/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/07/exploring-caddy/</guid><description>本文永久链接 – https://tonybai.com/2024/11/07/exploring-caddy Go语言诞生十多年来，社区涌现出众多优秀的Web服务器和反向代理解决方案。其中，最引人注目的无疑是Caddy和Traefik。这两者都为开发者和系统管理员提供了更简单、更安全的现代化Web服务器和反向代理部署选项。尽管它们的目标略有不同，Caddy最初旨在满足开发者快速搭建反向代理的需求...</description></item><item><title>成为那个拿锤子的人</title><link>https://tonybai.com/2024/11/03/become-the-one-with-the-hammer/</link><pubDate>Sun, 03 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/03/become-the-one-with-the-hammer/</guid><description>成为那个拿锤子的人 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 成为那个拿锤子的人 ========= * 十一...</description></item><item><title>构建无密码认证：passkey入门与Go实现</title><link>https://tonybai.com/2024/11/01/introduction-to-passkey/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/11/01/introduction-to-passkey/</guid><description>本文永久链接 – https://tonybai.com/2024/11/01/introduction-to-passkey 传统的密码认证一直以来都是数字时代的主流身份验证方式。然而，用户常常选择易记的弱密码并重复使用，导致账号易受攻击。密码泄露、钓鱼攻击等安全问题层出不穷，超过80%的数据泄露与密码相关。 截图来自FIDO联盟官网 与此同时，频繁的密码管理和忘记密码情况严重影响用户体验。服务...</description></item><item><title>写Go就像喝白开水</title><link>https://tonybai.com/2024/10/29/go-coding-is-like-drinking-boiled-water/</link><pubDate>Tue, 29 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/29/go-coding-is-like-drinking-boiled-water/</guid><description>写Go就像喝白开水 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 写Go就像喝白开水 ========= * 十月...</description></item><item><title>写出Go标准库级别文档注释的十个细节</title><link>https://tonybai.com/2024/10/27/ten-details-when-using-documentation-comments/</link><pubDate>Sun, 27 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/27/ten-details-when-using-documentation-comments/</guid><description>写出Go标准库级别文档注释的十个细节 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 写出Go标准库级别文档注释的十...</description></item><item><title>认知负荷对编程语言选择和学习的影响</title><link>https://tonybai.com/2024/10/24/cognitive-load-impact-on-programming-language-choice-and-study/</link><pubDate>Thu, 24 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/24/cognitive-load-impact-on-programming-language-choice-and-study/</guid><description>认知负荷对编程语言选择和学习的影响 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 认知负荷对编程语言选择和学习的影...</description></item><item><title>Go开发者的密码学导航：crypto库使用指南</title><link>https://tonybai.com/2024/10/19/go-crypto-package-design-deep-dive/</link><pubDate>Sat, 19 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/19/go-crypto-package-design-deep-dive/</guid><description>本文永久链接 – https://tonybai.com/2024/10/19/go-crypto-package-design-deep-dive Go号称“开箱即用”，这与其标准库的丰富功能和高质量是分不开的。而在Go标准库中，crypto库(包括crypto包、crypto目录下相关包以及golang.org/x/crypto下的补充包)又是Go社区最值得称道的Go库之一。 crypto库由...</description></item><item><title>智能时代临近：我眼中AI编程的现在与未来</title><link>https://tonybai.com/2024/10/14/programming-in-ai-era/</link><pubDate>Mon, 14 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/14/programming-in-ai-era/</guid><description>智能时代临近：我眼中AI编程的现在与未来 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 智能时代临近：我眼中AI编...</description></item><item><title>Go语言演进的双保险：GOEXPERIMENT与GODEBUG</title><link>https://tonybai.com/2024/10/11/go-evolution-dual-insurance-goexperiment-godebug/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/11/go-evolution-dual-insurance-goexperiment-godebug/</guid><description>本文永久链接 – https://tonybai.com/2024/10/11/go-evolution-dual-insurance-goexperiment-godebug Go语言自诞生以来就以其简洁、高效和强大的并发支持而闻名，Go团队承诺保持Go1向后兼容性，以确保用户的代码在未来的版本中继续正常运行。然而，保持语言的稳定性与不断创新(增加新特性)之间的平衡一直是Go团队面临的挑战。为了...</description></item><item><title>代码提交者的代码评审通关指南[译]</title><link>https://tonybai.com/2024/10/11/the-cl-author-guide-to-getting-through-code-review/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/11/the-cl-author-guide-to-getting-through-code-review/</guid><description>本文永久链接 – https://tonybai.com/2024/10/11/the-cl-author-guide-to-getting-through-code-review Google在软件工程领域对IT界做出了卓越的贡献，从《Google软件工程》，到Google Style Guides，再到The Change Author’s Guide。这些实践参考不仅提升了软件工程的标准，也...</description></item><item><title>Go语言的新时代：新领导团队和未来规划</title><link>https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/</link><pubDate>Thu, 10 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/</guid><description>Go语言的新时代：新领导团队和未来规划 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go语言的新时代：新领导团队...</description></item><item><title>与Thorsten Ball的共鸣：Go作为教学语言在技术写作中的优越性</title><link>https://tonybai.com/2024/10/09/resonating-with-thorsten-ball-on-go-in-technical-writing/</link><pubDate>Wed, 09 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/09/resonating-with-thorsten-ball-on-go-in-technical-writing/</guid><description>与Thorsten Ball的共鸣：Go作为教学语言在技术写作中的优越性 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章...</description></item><item><title>从DevOps到日常脚本：聊聊Go语言的多面性</title><link>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/</guid><description>本文永久链接 – https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts 2024年初，TIOBE编程语言排行榜上，Go再次进入了前十，并在之后又成功冲高至第七名。 Go语言的排名上升，至少在Reddit Go论坛上帖子数量和在线人数上得到了体现，尽管目前与Rust热度仍有差距，但可见...</description></item><item><title>Go项目中使用Git Submodule，还有这个必要吗？</title><link>https://tonybai.com/2024/10/05/using-git-submodules-in-go-projects/</link><pubDate>Sat, 05 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/05/using-git-submodules-in-go-projects/</guid><description>Go项目中使用Git Submodule，还有这个必要吗？ | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go项目...</description></item><item><title>探索Go守护进程的实现方法</title><link>https://tonybai.com/2024/10/03/how-to-daemonize-go-program/</link><pubDate>Thu, 03 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/03/how-to-daemonize-go-program/</guid><description>探索Go守护进程的实现方法 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 探索Go守护进程的实现方法 ======...</description></item><item><title>为什么Canonical Import Path注释在Go中不再必要</title><link>https://tonybai.com/2024/10/02/why-canonical-import-paths-no-longer-necessary-in-go/</link><pubDate>Wed, 02 Oct 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/10/02/why-canonical-import-paths-no-longer-necessary-in-go/</guid><description>为什么Canonical Import Path注释在Go中不再必要 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表...</description></item><item><title>跟上Go演进步伐，你只需要关注这几件事儿</title><link>https://tonybai.com/2024/09/30/how-to-keep-up-with-go-evolution/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/30/how-to-keep-up-with-go-evolution/</guid><description>跟上Go演进步伐，你只需要关注这几件事儿 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 跟上Go演进步伐，你只需要...</description></item><item><title>Go语言中的深拷贝：概念、实现与局限</title><link>https://tonybai.com/2024/09/28/understand-deep-copy-in-go/</link><pubDate>Sat, 28 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/28/understand-deep-copy-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/09/28/understand-deep-copy-in-go 前不久，在“Gopher部落”知识星球上回答了一个Gopher关于深拷贝(Deep Copy)的问题，让我感觉是时候探讨一下深拷贝技术了。 在日常开发工作中，深拷贝的使用频率相对较低，可能有80%的时间不需要使用深拷贝，只有在特定情况下才会遇到。这主要是因为大多数开...</description></item><item><title>“类型名称”在Go语言规范中的演变</title><link>https://tonybai.com/2024/09/24/the-evolution-of-type-name-in-go-spec/</link><pubDate>Tue, 24 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/24/the-evolution-of-type-name-in-go-spec/</guid><description>“类型名称”在Go语言规范中的演变 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 “类型名称”在Go语言规范中的演...</description></item><item><title>Go weak包前瞻：弱指针为内存管理带来新选择</title><link>https://tonybai.com/2024/09/23/go-weak-package-preview/</link><pubDate>Mon, 23 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/23/go-weak-package-preview/</guid><description>Go weak包前瞻：弱指针为内存管理带来新选择 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go weak包前...</description></item><item><title>htmx：Gopher走向全栈的完美搭档？</title><link>https://tonybai.com/2024/09/20/htmx-gopher-perfect-partner-for-full-stack/</link><pubDate>Fri, 20 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/20/htmx-gopher-perfect-partner-for-full-stack/</guid><description>本文永久链接 – https://tonybai.com/2024/09/20/htmx-gopher-perfect-partner-for-full-stack 在传统的Web开发领域，前端和后端开发通常被明确划分。前端主要负责用户界面的交互和视觉呈现，运用HTML、CSS和JavaScript等技术；后端则专注于服务器逻辑、数据库管理和核心功能实现，常用Go、Java、PHP、Ruby等语言...</description></item><item><title>Go unique包：突破字符串局限的通用值Interning技术实现</title><link>https://tonybai.com/2024/09/18/understand-go-unique-package-by-example/</link><pubDate>Wed, 18 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/18/understand-go-unique-package-by-example/</guid><description>本文永久链接 – https://tonybai.com/2024/09/18/understand-go-unique-package-by-example Go的1.23版本中引入了一个新的标准库包unique，为Go开发者带来了高效的值interning能力)。这种能力不仅适用于字符串类型值，还可应用于任何可比较(comparable)类型的值。 本文将简要探讨interning技术及其在G...</description></item><item><title>JSON包新提案：用“omitzero”解决编码中的空值困局</title><link>https://tonybai.com/2024/09/12/solve-the-empty-value-dilemma-in-json-encoding-with-omitzero/</link><pubDate>Thu, 12 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/12/solve-the-empty-value-dilemma-in-json-encoding-with-omitzero/</guid><description>JSON包新提案：用“omitzero”解决编码中的空值困局 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 JSO...</description></item><item><title>致敬：程序员成长路上的良师与经典著作</title><link>https://tonybai.com/2024/09/10/programmer-mentors-and-their-classic-works/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/10/programmer-mentors-and-their-classic-works/</guid><description>本文永久链接 – https://tonybai.com/2024/09/10/programmer-mentors-and-their-classic-works 早上送孩子去幼儿园的路上，收到一个小伙伴的微信： 我这才意识到今天是教师节！为人师，自觉还不够格！但在这个特殊的日子，作为IT行业从业人员，我想向那些在计算机科学和编程领域给予我们启迪的“老师们”致敬。这些老师可能不是传统意义上站在讲...</description></item><item><title>重拾精髓：go doc -http让离线包文档浏览更便捷</title><link>https://tonybai.com/2024/09/06/go-doc-add-http-support/</link><pubDate>Fri, 06 Sep 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/09/06/go-doc-add-http-support/</guid><description>重拾精髓：go doc -http让离线包文档浏览更便捷 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 重拾精髓：...</description></item><item><title>Go 1.18之后的语法新特性Quiz，你能做对几个？</title><link>https://tonybai.com/2024/08/27/a-new-syntax-quiz-after-go-1-18/</link><pubDate>Tue, 27 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/27/a-new-syntax-quiz-after-go-1-18/</guid><description>Go 1.18之后的语法新特性Quiz，你能做对几个？ | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go 1.1...</description></item><item><title>从零开始编程：Go语言真的适合新手吗？</title><link>https://tonybai.com/2024/08/22/go-as-first-language/</link><pubDate>Thu, 22 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/22/go-as-first-language/</guid><description>从零开始编程：Go语言真的适合新手吗？ | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 从零开始编程：Go语言真的适...</description></item><item><title>Go 1.23中值得关注的几个变化</title><link>https://tonybai.com/2024/08/19/some-changes-in-go-1-23/</link><pubDate>Mon, 19 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/19/some-changes-in-go-1-23/</guid><description>本文永久链接 – https://tonybai.com/2024/08/19/some-changes-in-go-1-23 距离上一次Go 1.22版本发布又过去六个月了，我们如期迎来了Go 1.23版本的发布。 对于Go项目乃至整个Go社区而言，这个版本还有一点额外的意义，那就是这是Russ Cox作为Tech lead，领导Go团队发布的最后一个Go版本了。 8月2日，Russ Cox在g...</description></item><item><title>都2024年了，当初那个“Go，互联网时代的C语言”的预言成真了吗？</title><link>https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/</link><pubDate>Sat, 17 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/</guid><description>都2024年了，当初那个“Go，互联网时代的C语言”的预言成真了吗？ | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表...</description></item><item><title>通过Go示例理解函数式编程思维</title><link>https://tonybai.com/2024/08/11/understand-functional-programming-in-go/</link><pubDate>Sun, 11 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/11/understand-functional-programming-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/08/11/understand-functional-programming-in-go &amp;gt; 一个孩子要尝试10次、20次才肯接受一种新的食物，我们接受一种新的范式，大概不会比这个简单。– 郭晓刚 《函数式编程思维》译者 函数式编程(Functional Programming, 简称fp)是一种编程范式，与命令式编程(Impe...</description></item><item><title>使用TLA+形式化验证Go并发程序</title><link>https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus/</link><pubDate>Mon, 05 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus/</guid><description>本文永久链接 – https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus &amp;gt; Writing is nature’s way of letting you know how sloppy your thinking is – Guindon 在2024年6月份举办的GopherCon ...</description></item><item><title>Gopher Daily支持Feed订阅</title><link>https://tonybai.com/2024/08/04/gopherdaily-add-feed-support/</link><pubDate>Sun, 04 Aug 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/08/04/gopherdaily-add-feed-support/</guid><description>Gopher Daily支持Feed订阅 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Gopher Daily支...</description></item><item><title>Go语言中的SIMD加速：以矩阵加法为例</title><link>https://tonybai.com/2024/07/21/simd-in-go/</link><pubDate>Sun, 21 Jul 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/07/21/simd-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/07/21/simd-in-go 前些日子，一些资深Gopher，比如fasthttp的作者Aliaksandr Valialkin因函数迭代器加入Go 1.23版本而抱怨Go的演进走错了方向：朝着增加复杂性和隐式代码执行的方向发展，而没有专注于Go语言的基本设计哲学——简单性、生产力和性能。Valialkin希望Go团队能专注于...</description></item><item><title>通过实例理解SQL查询语句的执行顺序</title><link>https://tonybai.com/2024/07/20/sql-query-execution-order/</link><pubDate>Sat, 20 Jul 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/07/20/sql-query-execution-order/</guid><description>通过实例理解SQL查询语句的执行顺序 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 通过实例理解SQL查询语句的执...</description></item><item><title>通过实例理解Go访问和操作数据库的几种方式</title><link>https://tonybai.com/2024/07/15/understand-the-ways-to-access-databases-in-go/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/07/15/understand-the-ways-to-access-databases-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/07/15/understand-the-ways-to-access-databases-in-go 关系数据库操作是Go应用开发中的重要一环，尤其是Go Web应用、微服务等。作为Gopher，我们需要了解几种主流的数据库访问和操作方法，以便在项目中做出适当的选择。 我个人在日常开发中较少涉及CRUD类应用，因此使用Go访问和...</description></item><item><title>Go语言编程指南翻译记：一本书，一支队伍，一段难忘的旅程</title><link>https://tonybai.com/2024/07/05/go-fundamentals-translation/</link><pubDate>Fri, 05 Jul 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/07/05/go-fundamentals-translation/</guid><description>Go语言编程指南翻译记：一本书，一支队伍，一段难忘的旅程 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go语言编...</description></item><item><title>Go与神经网络：手写数字识别</title><link>https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition/</link><pubDate>Fri, 28 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition/</guid><description>本文永久链接 – https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition 在上一篇文章《Go与神经网络：线性回归》中，我们借由传统的机器学习方法：线性回归解决了房价预测问题。按照我初步设想的从传统机器学习到大语言模型的学习路线，是时候在这一篇中切换到学习**神经网络**了。 1\. 从线性回归到神经网...</description></item><item><title>Go 1.23中的自定义迭代器与iter包</title><link>https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23/</link><pubDate>Mon, 24 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23/</guid><description>本文永久链接 – https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23 在《Go 1.23新特性前瞻》一文中，我们提到了Go 1.23中增加的一个主要的语法特性就是**支持了用户自定义iterator**，即range over func试验特性的正式转正。为此，Go 1.23还在标准库中增加了iter...</description></item><item><title>Go团队的工作方式</title><link>https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team/</link><pubDate>Sat, 22 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team/</guid><description>Go团队的工作方式 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go团队的工作方式 ========= * 六月...</description></item><item><title>Gopher的Rust第一课：Rust的依赖管理</title><link>https://tonybai.com/2024/06/16/gopher-rust-first-lesson-managing-deps/</link><pubDate>Sun, 16 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/16/gopher-rust-first-lesson-managing-deps/</guid><description>本文永久链接 – https://tonybai.com/2024/06/16/gopher-rust-first-lesson-managing-deps 在上一章《Gopher的Rust第一课：Rust代码组织》中，我们了解了Rust的代码组织形式，知道了基于Cargo构建项目以及Rust代码组织是目前的标准方式，同时Cargo也是管理项目外部依赖的标准方法，而项目内部的代码组织则由Rust ...</description></item><item><title>Go与神经网络：线性回归</title><link>https://tonybai.com/2024/06/10/go-and-nn-part2-linear-regression/</link><pubDate>Mon, 10 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/10/go-and-nn-part2-linear-regression/</guid><description>本文永久链接 – https://tonybai.com/2024/06/10/go-and-nn-part2-linear-regression 离发表上一篇与机器学习相关的文章《Go与神经网络：张量运算》已经过去整整一年了，AI领域，特别是大模型领域的热度不仅未有减弱，反而愈演愈烈。整个行业变得更卷，竞争更加激烈，大模型你方唱罢我登场，层出不穷，各自能力也都在不断提升，并在自然语言处理、问答、...</description></item><item><title>Gopher的Rust第一课：Rust代码组织</title><link>https://tonybai.com/2024/06/06/gopher-rust-first-lesson-organizing-rust-code/</link><pubDate>Thu, 06 Jun 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/06/06/gopher-rust-first-lesson-organizing-rust-code/</guid><description>本文永久链接 – https://tonybai.com/2024/06/06/gopher-rust-first-lesson-organizing-rust-code 在上一章的讲解中，我们编写了第一个Rust示例程序”hello, world”，并给出了rustc版和cargo版本。在真实开发中，我们都会使用cargo来创建和管理Rust包。不过，Hello, world示例非常简单，仅仅由...</description></item><item><title>Go 1.23新特性前瞻</title><link>https://tonybai.com/2024/05/30/go-1-23-foresight/</link><pubDate>Thu, 30 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/30/go-1-23-foresight/</guid><description>本文永久链接 – https://tonybai.com/2024/05/30/go-1-23-foresight 2024年5月22日，Go 1.23版本功能特性正式冻结，后续将只改bug，不增加新feature。 对Go团队来说，这意味着开始了Go 1.23rc1的冲刺，对我们普通Gopher而言，这意味着**是时候对Go 1.23新增的功能做一些前瞻了**！ 在Go没有发布Go 1.23rc...</description></item><item><title>Gopher的Rust第一课：第一个Rust程序</title><link>https://tonybai.com/2024/05/27/gopher-rust-first-lesson-first-rust-program/</link><pubDate>Mon, 27 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/27/gopher-rust-first-lesson-first-rust-program/</guid><description>本文永久链接 – https://tonybai.com/2024/05/27/gopher-rust-first-lesson-first-rust-program 经过上一章的学习，我想现在你已经成功安装好一个Rust开发环境了，是时候撸起袖子开始写Rust代码了！ 程序员这个历史并不算悠久的行当，却有着一个历史悠久的传统，那就是每种编程语言都将一个名为“hello, world”的示例作为这...</description></item><item><title>Go团队：Go是什么</title><link>https://tonybai.com/2024/05/19/what-the-go-team-think-go-is/</link><pubDate>Sun, 19 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/19/what-the-go-team-think-go-is/</guid><description>本文永久链接 – https://tonybai.com/2024/05/19/what-the-go-team-think-go-is 2024年的Google I/O大会如期而至。 这届大会的核心主旨毫无疑问是**坚定不移的以AI为中心**：Google先是发布了上下文长度将达到惊人的200万token的Gemini 1.5 Pro，然后面对OpenAI GPT-4o的挑衅，谷歌在大会上直接甩...</description></item><item><title>Go早期的那些布道者</title><link>https://tonybai.com/2024/05/17/the-early-evangelists-of-go/</link><pubDate>Fri, 17 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/17/the-early-evangelists-of-go/</guid><description>本文永久链接 – https://tonybai.com/2024/05/17/the-early-evangelists-of-go Go自2009年开源至今已经快15年了！这期间，有很多人对Go语言的发展做出了重要贡献，起到了至关重要的作用，他们被视为**Go语言的早期布道者和鼓吹者**。他们向Go社区传达着Go的价值观、Go的最新发展、Go的使用方法以及最佳实践。 这些人有来自Go团队的，有...</description></item><item><title>Gopher的Rust第一课：建立Rust开发环境</title><link>https://tonybai.com/2024/05/10/gopher-rust-first-lesson-setup-dev-env/</link><pubDate>Fri, 10 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/10/gopher-rust-first-lesson-setup-dev-env/</guid><description>本文永久链接 – https://tonybai.com/2024/05/10/gopher-rust-first-lesson-setup-dev-env 经过上一章的对Rust诞生演化的了解以及设计哲学的探讨后，如果你依然决定继续Rust编程学习之旅，那么欢迎你和我一起正式走进Rust学习和实践的课堂。 编程不是“纸上谈兵”，它是一门实践的艺术。编程语言的学习离不开动手实践，因此学习任何一门编...</description></item><item><title>使用Ollama和Go基于文本嵌入模型实现文本向量化</title><link>https://tonybai.com/2024/05/09/text-vectorization-using-ollama-and-go-based-on-text-embedding-models/</link><pubDate>Thu, 09 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/09/text-vectorization-using-ollama-and-go-based-on-text-embedding-models/</guid><description>本文永久链接 – https://tonybai.com/2024/05/09/text-vectorization-using-ollama-and-go-based-on-text-embedding-models 基于RAG+大模型的应用已经成为当前AI应用领域的一个热门方向。RAG(Retrieval-Augmented Generation)将检索和生成两个步骤相结合，利用外部知识库来增...</description></item><item><title>那些可免费使用的在线大语言模型服务</title><link>https://tonybai.com/2024/05/06/those-free-to-use-online-llm-services/</link><pubDate>Mon, 06 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/06/those-free-to-use-online-llm-services/</guid><description>本文永久链接 – https://tonybai.com/2024/05/06/those-free-to-use-online-llm-services 2022年底以ChatGPT为代表的大语言模型的出现掀起了人工智能应用的新浪潮。这些庞大的语言模型经过对海量文本数据的训练，能够理解和生成逼近人类水平的自然语言，在对话、问答、文本生成、代码编写等领域展现出了惊人的能力。 最初这种能力“垄断”在...</description></item><item><title>Go未用代码消除与可执行文件瘦身</title><link>https://tonybai.com/2024/05/05/dead-code-elimination-and-executable-file-slimming-in-go/</link><pubDate>Sun, 05 May 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/05/05/dead-code-elimination-and-executable-file-slimming-in-go/</guid><description>本文永久链接 – https://tonybai.com/2024/05/05/dead-code-elimination-and-executable-file-slimming-in-go 在日常编写Go代码时，我们会编写很多包，也会在编写的包中引入了各种依赖包。在大型Go工程中，这些直接依赖和间接依赖的包数目可能会有几十个甚至上百个。依赖包有大有小，但通常我们不会使用到依赖包中的所有导出函数...</description></item><item><title>从零到生产：Go在Google的历程[译]</title><link>https://tonybai.com/2024/04/24/go-journey-at-google/</link><pubDate>Wed, 24 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/24/go-journey-at-google/</guid><description>本文永久链接 – https://tonybai.com/2024/04/24/go-journey-at-google 2007年Go诞生于Google，2009年Google正式对外宣布了Go语言的开源！时至今日，距离Go开源已经过去了近15个年头了！Go在Google公司内部究竟是怎样的一个状态呢？前Google员工Yves Junqueira近期撰文从其个人所见所闻谈了Go在Google的...</description></item><item><title>使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B</title><link>https://tonybai.com/2024/04/23/playing-with-meta-llama3-8b-on-cpu-using-ollama-and-openwebui/</link><pubDate>Tue, 23 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/23/playing-with-meta-llama3-8b-on-cpu-using-ollama-and-openwebui/</guid><description>本文永久链接 – https://tonybai.com/2024/04/23/playing-with-meta-llama3-8b-on-cpu-using-ollama-and-openwebui 2024年4月18日，meta开源了Llama 3大模型，虽然只有8B和70B两个版本，但Llama 3表现出来的强大能力还是让AI大模型界为之震撼了一番，本人亲测Llama3-70B版本的推理能...</description></item><item><title>Gopher的Rust第一课：Rust的那些事儿</title><link>https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust/</link><pubDate>Mon, 22 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust/</guid><description>本文永久链接 – https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust 要说这两年后端编程语言谁最火，Rust说自己第二，没人敢说第一。Rust连续8年霸榜stackoverflow最受推崇的编程语言，甚至被推特之父Jack Dorsey称为“完美的编程语言”： &amp;gt; 注：最火：仅代表人气最旺，最受欢迎，但并不代...</description></item><item><title>要么返回错误值，要么输出日志，别两样都做</title><link>https://tonybai.com/2024/04/14/either-return-error-or-log-them-do-not-do-both/</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/14/either-return-error-or-log-them-do-not-do-both/</guid><description>本文永久链接 – https://tonybai.com/2024/04/14/either-return-error-or-log-them-do-not-do-both 1\. 缘起 ------ 这周，一个产品团队内进行Go代码评审时，得到了一个结论：所有的if err != nil的地方都应该输出错误日志。然而，这种做法并不是最佳实践，它存在一些问题。 首先，打印过多的错误日志会导致日志文...</description></item><item><title>选择正确的Go Module Path</title><link>https://tonybai.com/2024/04/09/choose-the-right-go-module-path/</link><pubDate>Tue, 09 Apr 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/04/09/choose-the-right-go-module-path/</guid><description>本文永久链接 – https://tonybai.com/2024/04/09/choose-the-right-go-module-path 最近我在查看项目代码时，注意到有人在go.mod文件中将module path写为com.example.foo了。根据这个写法，相信屏幕前的读者也可以推断出这位开发人员可能是从Java阵营转到Go的。实际开发中可能有很多开发者会使用类似的内容作为modu...</description></item><item><title>Go 1.22引入的包级变量初始化次序问题</title><link>https://tonybai.com/2024/03/29/the-issue-in-pkg-level-var-init-order-in-go-1-22/</link><pubDate>Fri, 29 Mar 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/03/29/the-issue-in-pkg-level-var-init-order-in-go-1-22/</guid><description>本文永久链接 – https://tonybai.com/2024/03/29/the-issue-in-pkg-level-var-init-order-in-go-1-22 细心的朋友可能已经注意到，从春节后，我的博客就“停更”了！实际上，这一情况部分是因为工作上的事务繁忙，另一部分则是因为我将工作之外的闲暇时间更多地投入到一本即将于今年中下旬出版的书的撰写了：在之前的积累基础上，我花了两个多...</description></item><item><title>Go 1.22中值得关注的几个变化</title><link>https://tonybai.com/2024/02/18/some-changes-in-go-1-22/</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/02/18/some-changes-in-go-1-22/</guid><description>本文永久链接 – https://tonybai.com/2024/02/18/some-changes-in-go-1-22 美国时间2024年2月6日，正当中国人民洋溢在即将迎来龙年春节的喜庆祥和的气氛中时，Eli Bendersky代表Go团队在Go官博发文“Go 1.22 is released!”，正式向世界宣告了Go 1.22版本的发布！ &amp;gt; 注：大家可以从Go官网下载Go 1.22的...</description></item><item><title>2024年的Rust与Go[译]</title><link>https://tonybai.com/2024/01/24/rust-vs-go-in-2024/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/01/24/rust-vs-go-in-2024/</guid><description>本文永久链接 – https://tonybai.com/2024/01/24/rust-vs-go-in-2024 本文译自《Rust vs Go in 2024》。 * * * 我可以说些什么而不让大家生气吗？ Rust和Go哪个更好？你应该为下一个项目选择哪种语言，为什么？两者在性能、简单性、安全性、功能特性、规模化(scale)和并发性等方面如何比较？它们有什么共同点，又有什么根本区别？让...</description></item><item><title>依赖Kafka的Go单元测试例解</title><link>https://tonybai.com/2024/01/08/go-unit-testing-deps-on-kafka/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/01/08/go-unit-testing-deps-on-kafka/</guid><description>本文永久链接 – https://tonybai.com/2024/01/08/go-unit-testing-deps-on-kafka Kafka是Apache基金会开源的一个分布式事件流处理平台，是Java阵营(最初为Scala)中的一款杀手级应用，其提供的高可靠性、高吞吐量和低延迟的数据传输能力，让其到目前为止依旧是现代企业级应用系统以及云原生应用系统中使用的重要中间件。 在日常开发Go程...</description></item><item><title>Go语言之父的反思：我们做对了什么，做错了什么</title><link>https://tonybai.com/2024/01/07/what-we-got-right-what-we-got-wrong/</link><pubDate>Sun, 07 Jan 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/01/07/what-we-got-right-what-we-got-wrong/</guid><description>本文永久链接 – https://tonybai.com/2024/01/07/what-we-got-right-what-we-got-wrong 在《2023年Go语言盘点：稳中求新，稳中求变》和《Go测试的20个实用建议》两篇文章中，我都提到过已经退居二线的Go语言之父Rob Pike在Go开源14周年的那天亲自在GopherCon Australia 2023上发表了“What We G...</description></item><item><title>Go测试的20个实用建议</title><link>https://tonybai.com/2024/01/01/go-testing-by-example/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/01/01/go-testing-by-example/</guid><description>本文永久链接 – https://tonybai.com/2024/01/01/go-testing-by-example 2023年11月初，Go语言技术负责人Russ Cox在GopherCon Australia 2023大会上进行了题为“Go Testing By Example”的演讲： 12月初Russ Cox重新录制了该演讲内容的视频，并在个人网站上放了出来。这个演讲视频是关于如何编...</description></item><item><title>2023年Go语言盘点：稳中求新，稳中求变</title><link>https://tonybai.com/2023/12/31/the-2023-review-of-go-programming-language/</link><pubDate>Sun, 31 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/31/the-2023-review-of-go-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2023/12/31/the-2023-review-of-go-programming-language 时光荏苒，转眼间已经是2023年的最后一天了。《2022年Go语言盘点：泛型落地，无趣很好，稳定为王》仿佛就写在昨天。 回首这一年，全球彻底从新冠大流行中得以复苏，Go语言也不例外，最直观的表现就是**全球各地的GopherCon技术...</description></item><item><title>Go 1.22新特性前瞻</title><link>https://tonybai.com/2023/12/25/go-1-22-foresight/</link><pubDate>Mon, 25 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/25/go-1-22-foresight/</guid><description>本文永久链接 – https://tonybai.com/2023/12/25/go-1-22-foresight 美国时间2023年12月20日，Go官方宣布Go 1.22rc1发布，开启了为期2个多月的、常规的公测之旅，Go 1.22预计将于2024.2月份正式发布！ 除了在官网下载Go 1.22rc1版本进行新特性体验之外，我们还可以通过在线的Go Playground选择“Go dev b...</description></item><item><title>通过实例理解OpenID身份认证</title><link>https://tonybai.com/2023/12/22/understand-oidc-by-example/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/22/understand-oidc-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/12/22/understand-oidc-by-example 在《通过实例理解OAuth2》一文中，我们以实例方式讲解了OAuth2授权码模式(Authorization Code)模式的工作原理。实例中的照片冲印服务经过用户(tonybai)的授权后，使用用户提供的code(实则是由授权服务器分配并通过用户的浏览器重定向到照...</description></item><item><title>通过实例理解OAuth2授权</title><link>https://tonybai.com/2023/12/16/understand-oauth2-by-example/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/16/understand-oauth2-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/12/16/understand-oauth2-by-example 在之前的《通过实例理解Go Web身份认证的几种方式》和《通过实例理解Web应用授权的几种方式》两篇文章中，我们对Web应用身份认证(AuthN)和授权(AuthZ)的几种方式做了介绍并配以实例增强理解。 在现实世界中，还有一大类的认证与授权是在前面的文章中没有...</description></item><item><title>简单之道</title><link>https://tonybai.com/2023/12/11/simplicity/</link><pubDate>Mon, 11 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/11/simplicity/</guid><description>本文永久链接 – https://tonybai.com/2023/12/11/simplicity 已经退居二线的Go语言之父Rob Pike近日发表了一篇名为“Simplicity”的博文，记述了2009年在Google内部一次圆桌会议上发表的演讲内容。Pike老先生在这个时间点发表这篇文章究竟有何深意呢？是对Go语言演进的路线有所不满吗？我们不得而知。不过，这篇文章的内容却是非常值得我们学习...</description></item><item><title>Go未来演进：基于共同目标和数据驱动的决策</title><link>https://tonybai.com/2023/12/10/go-changes/</link><pubDate>Sun, 10 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/10/go-changes/</guid><description>本文永久链接 – https://tonybai.com/2023/12/10/go-changes 自从Go语言之父Rob Pike从Google退休并隐居澳洲后，Russ Cox便成为了Go语言团队的“带头大哥”，虽然其资历还无法与依旧奋战在一线的另外一位Go语言之父Robert Griesemer相比。如今，Russ Cox对Go语言未来的演化发展是很有“发言权”的，Go module的引入...</description></item><item><title>有效表达软件架构的最小图集</title><link>https://tonybai.com/2023/12/06/a-minimum-set-of-diagrams-for-expressing-software-architecture/</link><pubDate>Wed, 06 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/06/a-minimum-set-of-diagrams-for-expressing-software-architecture/</guid><description>本文永久链接 – https://tonybai.com/2023/12/06/a-minimum-set-of-diagrams-for-expressing-software-architecture 无论你是专职的软件架构师，还是在团队内兼职充当软件架构师角色的开发人员，一旦你处在软件架构师这个位置上，你自然就会遇到软件架构设计的三个困惑： * 如何更深刻地理解业务； * 如何更正确地取舍(...</description></item><item><title>通过实例理解API网关的主要功能特性</title><link>https://tonybai.com/2023/12/03/understand-api-gateway-main-functional-features-by-example/</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/12/03/understand-api-gateway-main-functional-features-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/12/03/understand-api-gateway-main-functional-features-by-example 在当今的技术领域中，“下云”的概念正逐渐抬头，像David Heinemeier Hansson(37signals公司的联合创始人, Ruby on Rails的Creator)就直接将公司所有的业务...</description></item><item><title>Go语言gRPC服务Handler单元测试详解</title><link>https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go/</link><pubDate>Sat, 25 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go 在云原生时代和微服务架构背景下，HTTP和RPC协议成为服务间通信和与客户端交互的两种主要方式。对于Go语言而言，标准库提供了net/http/httptest包，为开发人员提供了便捷的方式来构建服务端HTTP Handler单元测试的测试脚手架代码，而无...</description></item><item><title>通过实例理解Web应用跨域问题</title><link>https://tonybai.com/2023/11/19/understand-go-web-cross-origin-problem-by-example/</link><pubDate>Sun, 19 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/19/understand-go-web-cross-origin-problem-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/11/19/understand-go-web-cross-origin-problem-by-example 在开发Web应用的过程中，我们经常会遇到所谓“跨域问题(Cross Origin Problem)”。跨域问题是由于浏览器的同源策略(Same-origin policy)导致的，它限制了不同源(Origin：域名、协议...</description></item><item><title>关系代数、SQL语句和Go语言示例</title><link>https://tonybai.com/2023/11/15/relational-algebra-and-sql-with-go-examples/</link><pubDate>Wed, 15 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/15/relational-algebra-and-sql-with-go-examples/</guid><description>本文永久链接 – https://tonybai.com/2023/11/15/relational-algebra-and-sql-with-go-examples 近些年，数据库领域发展日新月异，除传统的关系型数据库外，还出现了许多新型的数据库，比如：以HBase、Cassandra、MongoDB为代表的NoSQL数据库，以InfluxDB、TDEngine为代表的时序数据库，以Neo4J、...</description></item><item><title>Go，14周年[译]</title><link>https://tonybai.com/2023/11/11/go-opensource-14-years/</link><pubDate>Sat, 11 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/11/go-opensource-14-years/</guid><description>本文永久链接 – https://tonybai.com/2023/11/11/go-opensource-14-years 国内的双十一购物狂欢已没有了当年的那种热闹与喧嚣，但大洋彼岸的Go团队却始终保持稳中有增的开发和语言演进节奏。今晨Go核心团队的Russ Cox代表Go语言项目团队在Go官博上发表了《Fourteen Years of Go》的博文，纪念Go语言开源14周年，并对2023年...</description></item><item><title>通过实例理解Web应用的机密管理</title><link>https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example/</link><pubDate>Wed, 08 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example 如果你是一个Web应用系统的开发人员，你的日常大概率是“乐此不疲”地做着CRUD的活儿，很少接触到安全方面的内容。如果这时有人和你提到“机密(信息)管理(secret management)”，你大概率会说：那是啥？和我有关系...</description></item><item><title>通过实例理解Web应用授权的几种方式</title><link>https://tonybai.com/2023/11/04/understand-go-web-authz-by-example/</link><pubDate>Sat, 04 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/04/understand-go-web-authz-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/11/04/understand-go-web-authz-by-example 在前面的系列文章中，我们了解了Go Web应用身份认证的几种方式，也知道了该如何相对安全地存储用户的密码信息，最大程度减小在系统数据库被攻破时用户密码信息的泄露程度。 一旦用户通过身份验证，他/她就可以以合法的身份进入到系统中，那么问题来了：**用户...</description></item><item><title>通过实例理解Web应用用户密码存储方案</title><link>https://tonybai.com/2023/10/25/understand-password-storage-of-web-app-by-example/</link><pubDate>Wed, 25 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/25/understand-password-storage-of-web-app-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/10/25/understand-password-storage-of-web-app-by-example 在上一篇文章《通过实例理解Go Web身份认证的几种方式》中，我们了解了Web应用的多种身份验证方式。但无论哪种方式，用户初次访问Web应用的注册流程和登录流程是不可避免的，而基于用户名密码的注册流程依旧是当今主流。注册...</description></item><item><title>通过实例理解Go Web身份认证的几种方式</title><link>https://tonybai.com/2023/10/23/understand-go-web-authn-by-example/</link><pubDate>Mon, 23 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/23/understand-go-web-authn-by-example/</guid><description>本文永久链接 – https://tonybai.com/2023/10/23/understand-go-web-authn-by-example 在2023年Q1 Go官方用户调查报告中，API/RPC services、Websites/web services都位于使用Go开发的应用类别的头部(如下图)： 我个人使用Go开发已很多年，但一直从事底层基础设施、分布式中间件等方向，Web应用开...</description></item><item><title>基于公钥验签实现应用许可机制</title><link>https://tonybai.com/2023/10/16/implementation-of-app-licensing-based-on-verifying-sign-by-pubkey/</link><pubDate>Mon, 16 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/16/implementation-of-app-licensing-based-on-verifying-sign-by-pubkey/</guid><description>本文永久链接 – https://tonybai.com/2023/10/16/implementation-of-app-licensing-based-on-verifying-sign-by-pubkey 随着互联网的普及以及应用的快速发展，商业软件的订阅模式变得越来越流行。软件公司开始提供基于订阅的服务，用户每月或每年支付费用以获取软件的使用权。这种模式使用户可以更灵活地选择服务期限，并且...</description></item><item><title>Go TLS服务端绑定证书的几种方式</title><link>https://tonybai.com/2023/10/13/multiple-ways-to-bind-certificates-on-go-tls-server-side/</link><pubDate>Fri, 13 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/13/multiple-ways-to-bind-certificates-on-go-tls-server-side/</guid><description>本文永久链接 – https://tonybai.com/2023/10/13/multiple-ways-to-bind-certificates-on-go-tls-server-side 随着互联网的发展，网站提供的服务类型和规模不断扩大，同时也对Web服务的安全性提出了更高的要求。TLS(Transport Layer Security)已然成为Web服务最重要的安全基础设施之一。默认情况...</description></item><item><title>Service Weaver：以单体形式编码，以微服务形式部署</title><link>https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices/</link><pubDate>Mon, 09 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices/</guid><description>本文永久链接 – https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices 分布式应用的主流架构模式演化为**微服务架构**已经有些年头了。微服务、DevOps、持续交付和容器技术(k8s)是构成最初云原生概念的核心要素。它们相生相拌，共同演进，并推动了云计算**全面进入云原...</description></item><item><title>Go项目目录该怎么组织？官方终于出指南了！</title><link>https://tonybai.com/2023/10/05/the-official-guide-of-organizing-go-project/</link><pubDate>Thu, 05 Oct 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/10/05/the-official-guide-of-organizing-go-project/</guid><description>本文永久链接 – https://tonybai.com/2023/10/05/the-official-guide-of-organizing-go-project 长久以来，在Go语言进阶的学习和实践之路上，Go项目目录究竟如何布局一直是困扰大家的一个问题，这是因为Go官方针对这个问题迟迟没有给出说法，更没有提供标准供大家参考。仅有Go语言项目技术负责人Russ Cox在一个开源项目的issu...</description></item><item><title>聊聊Go与依赖注入</title><link>https://tonybai.com/2023/09/28/dependency-injection-with-go/</link><pubDate>Thu, 28 Sep 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/09/28/dependency-injection-with-go/</guid><description>本文永久链接 – https://tonybai.com/2023/09/28/dependency-injection-with-go 如果你读过Robert C. Martin的《敏捷软件开发：原则、模式与实践》(书的封皮见下图)，那么你一定知道经典的SOLID设计原则中的“D”：依赖倒置原则（Dependency Inversion Principle, DIP）。 依赖倒置原则是面向对象设...</description></item><item><title>使用Go和WebRTC data channel实现端到端实时通信</title><link>https://tonybai.com/2023/09/23/p2p-rtc-implementation-with-go-and-webrtc-data-channel/</link><pubDate>Sat, 23 Sep 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/09/23/p2p-rtc-implementation-with-go-and-webrtc-data-channel/</guid><description>本文永久链接 – https://tonybai.com/2023/09/23/p2p-rtc-implementation-with-go-and-webrtc-data-channel 关于实时通信(RTC，Real-Time Communication)，我和大多数人一样，是用的多(比如网络电话、音视频会议等)，但对RTC概念和其底层技术原理了解的却不多。近期，一项目恰用到了RTC技术，我就...</description></item><item><title>聊聊Go语言的向前兼容性和toolchain规则</title><link>https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/</link><pubDate>Sun, 10 Sep 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/</guid><description>本文永久链接 – https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule Go语言在发展演进过程中一直十分注重向后兼容性(backward compatibility)，在Go 1.0版本发布之初就发布了Go1兼容性承诺，简单来说就是保证使用新版本Go(比如Go 1.21版本)可以正...</description></item><item><title>slog实战：文件日志、轮转与kafka集成</title><link>https://tonybai.com/2023/09/04/slog-in-action-file-logging-rotation-and-kafka-integration/</link><pubDate>Mon, 04 Sep 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/09/04/slog-in-action-file-logging-rotation-and-kafka-integration/</guid><description>本文永久链接 – https://tonybai.com/2023/09/04/slog-in-action-file-logging-rotation-and-kafka-integration 《slog正式版来了：Go日志记录新选择！》一文发布后，收到了很多读者的反馈，意见集中在以下几点： * 基于slog如何将日志写入文件 * slog是否支持log轮转(rotation)，如果slog不...</description></item><item><title>slog正式版来了：Go日志记录新选择！</title><link>https://tonybai.com/2023/09/01/slog-a-new-choice-for-logging-in-go/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/09/01/slog-a-new-choice-for-logging-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/09/01/slog-a-new-choice-for-logging-in-go 在大约一年前，我就写下了《slog：Go官方版结构化日志包》一文，文中介绍了Go团队正在设计并计划在下一个Go版本中落地的Go官方结构化日志包：slog。但slog并未如预期在Go 1.20版本中落地，而是在golang.org/x/exp/slo...</description></item><item><title>编译Go应用的黑盒挑战：无源码只有.a文件，你能搞定吗？</title><link>https://tonybai.com/2023/08/30/how-to-build-with-only-archive-in-go/</link><pubDate>Wed, 30 Aug 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/08/30/how-to-build-with-only-archive-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/08/30/how-to-build-with-only-archive-in-go 上周末，一个Gopher在微信上与我交流了一个有关Go程序编译的问题。他的述求说起来也不复杂，那就是合作公司提供的API包仅包括golang archive(使用go build -buildmode=archive构建的.a文件)，没有Go包的...</description></item><item><title>Go 1.21中值得关注的几个变化</title><link>https://tonybai.com/2023/08/20/some-changes-in-go-1-21/</link><pubDate>Sun, 20 Aug 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/08/20/some-changes-in-go-1-21/</guid><description>本文永久链接 – https://tonybai.com/2023/08/20/some-changes-in-go-1-21 美国时间2023年8月8日，Go团队在Go官博上正式发布了1.21版本！ 早在今年4月末，我就撰写了文章《Go 1.21新特性前瞻》，对Go 1.21可能引入的新特性、新优化和新标准库包做了粗略梳理。 在6月初举办的GopherChina 2023大会上，我又以“The ...</description></item><item><title>Go项目初始化不再困扰你：gonew全方位解析</title><link>https://tonybai.com/2023/08/11/introduction-to-the-gonew-tool/</link><pubDate>Fri, 11 Aug 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/08/11/introduction-to-the-gonew-tool/</guid><description>本文永久链接 – https://tonybai.com/2023/08/11/introduction-to-the-gonew-tool 近日，Go官博介绍了一个名为gonew的新工具。该工具支持基于go project template clone并创建一个属于你的Go项目。gonew工具的引入大幅简化了Go项目的创建，同时由于对自定义项目模板的支持，也可以提高Go项目的标准化水平。gone...</description></item><item><title>Gopher Daily改版了</title><link>https://tonybai.com/2023/08/06/gopherdaily-revamped/</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/08/06/gopherdaily-revamped/</guid><description>本文永久链接 – https://tonybai.com/2023/08/06/gopherdaily-revamped 已经记不得GopherDaily是何时创建的了，翻了一下GopherDaily项目的commit history，才发现我的这个个人项目是2019年9月创建的，最初内容组织很粗糙，但我的编辑制作的热情很高，基本能坚持**每日一发**，甚至节假日也**不停刊**： 该项目的初衷就...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：读写Parquet文件</title><link>https://tonybai.com/2023/07/31/a-guide-of-using-apache-arrow-for-gopher-part6/</link><pubDate>Mon, 31 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/31/a-guide-of-using-apache-arrow-for-gopher-part6/</guid><description>本文永久链接 – https://tonybai.com/2023/07/31/a-guide-of-using-apache-arrow-for-gopher-part6 Apache Arrow是一种开放的、与语言无关的列式内存格式，在本系列文章的前几篇中，我们都聚焦于内存表示与内存操作。 但对于一个数据库系统或大数据分析平台来说，数据不能也无法一直放在内存中，虽说目前内存很大也足够便宜了，但...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：扩展compute包</title><link>https://tonybai.com/2023/07/22/a-guide-of-using-apache-arrow-for-gopher-part5/</link><pubDate>Sat, 22 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/22/a-guide-of-using-apache-arrow-for-gopher-part5/</guid><description>本文永久链接 – https://tonybai.com/2023/07/22/a-guide-of-using-apache-arrow-for-gopher-part5 在本系列文章的第4篇《Go语言开发者的Apache Arrow使用指南：数据操作》中我们遇到了**大麻烦**：Go的Arrow实现居然不支持像max、min、sum这样的简单聚合计算函数:(，分组聚合(grouped aggr...</description></item><item><title>使用testify包辅助Go测试指南</title><link>https://tonybai.com/2023/07/16/the-guide-of-go-testing-with-testify-package/</link><pubDate>Sun, 16 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/16/the-guide-of-go-testing-with-testify-package/</guid><description>本文永久链接 – https://tonybai.com/2023/07/16/the-guide-of-go-testing-with-testify-package 我虽然算不上Go标准库的“清教徒”，但在测试方面还多是基于标准库testing包以及go test框架的，除了需要mock的时候，基本上没有用过第三方的Go测试框架。我在《Go语言精进之路》一书中对Go测试组织的讲解也是基于Go ...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：数据操作</title><link>https://tonybai.com/2023/07/13/a-guide-of-using-apache-arrow-for-gopher-part4/</link><pubDate>Thu, 13 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/13/a-guide-of-using-apache-arrow-for-gopher-part4/</guid><description>本文永久链接 – https://tonybai.com/2023/07/13/a-guide-of-using-apache-arrow-for-gopher-part4 在前面的Arrow系列文章中，我们介绍了Arrow的基础数据类型以及高级数据类型，这让我们具备了在内存中建立起一个immutable数据集的能力。但这并非我们的目标，我们最终是要对建立起来的数据集进行查询和分析等操作(mani...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：高级数据结构</title><link>https://tonybai.com/2023/07/08/a-guide-of-using-apache-arrow-for-gopher-part3/</link><pubDate>Sat, 08 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/08/a-guide-of-using-apache-arrow-for-gopher-part3/</guid><description>本文永久链接 – https://tonybai.com/2023/07/08/a-guide-of-using-apache-arrow-for-gopher-part3 经过对前面两篇文章《Arrow数据类型》和《Arrow Go实现的内存管理》的学习，我们知道了各种Arrow array type以及它们在内存中的layout，我们了解了Go arrow实现在内存管理上的一些机制和使用原则。...</description></item><item><title>Apache Arrow：驱动列式分析性能和连接性的提升[译]</title><link>https://tonybai.com/2023/07/01/arrow-columnar-analytics/</link><pubDate>Sat, 01 Jul 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/07/01/arrow-columnar-analytics/</guid><description>本文永久链接 – https://tonybai.com/2023/07/01/arrow-columnar-analytics 本文翻译自Voltron Data公司CTO Wes McKinney的文章《Apache Arrow: Driving Columnar Analytics Performance and Connectivity》。这篇文章回顾了现代大数据分析遇到的问题、Arrow...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：内存管理</title><link>https://tonybai.com/2023/06/30/a-guide-of-using-apache-arrow-for-gopher-part2/</link><pubDate>Fri, 30 Jun 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/06/30/a-guide-of-using-apache-arrow-for-gopher-part2/</guid><description>本文永久链接 – https://tonybai.com/2023/06/30/a-guide-of-using-apache-arrow-for-gopher-part2 如果你看了上一篇《Go语言开发者的Apache Arrow使用指南：数据类型》中的诸多Go操作arrow的代码示例，你很可能会被代码中大量使用的Retain和Release方法搞晕。不光大家有这样的感觉，我也有同样的feeli...</description></item><item><title>Go语言开发者的Apache Arrow使用指南：数据类型</title><link>https://tonybai.com/2023/06/25/a-guide-of-using-apache-arrow-for-gopher-part1/</link><pubDate>Sun, 25 Jun 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/06/25/a-guide-of-using-apache-arrow-for-gopher-part1/</guid><description>本文永久链接 – https://tonybai.com/2023/06/25/a-guide-of-using-apache-arrow-for-gopher-part1 如果你不是做大数据分析的，提到Arrow这个词，你可能会以为我要聊聊那个箭牌卫浴或是箭牌口香糖(注：其实箭牌口香糖使用的单词并非Arrow)。其实我要聊的是Apache的一个顶级项目：Arrow。 为什么要聊这个项目呢？说来话...</description></item><item><title>Go语言包设计指南</title><link>https://tonybai.com/2023/06/18/go-package-design-guide/</link><pubDate>Sun, 18 Jun 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/06/18/go-package-design-guide/</guid><description>本文永久链接 – https://tonybai.com/2023/06/18/go-package-design-guide 1\. Go包的认知 ---------- 1.1 Go包是基本功能单元 我们知道Go包是Go编程语言中的一个重要概念，它是一组相关的Go源代码文件。并且，在Go中，每个Go源文件都必须属于一个包。 Go包是一个逻辑上独立的单元，是Go的**基本功能单元**，用来做功能边...</description></item><item><title>Go GC：了解便利背后的开销</title><link>https://tonybai.com/2023/06/13/understand-go-gc-overhead-behind-the-convenience/</link><pubDate>Tue, 13 Jun 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/06/13/understand-go-gc-overhead-behind-the-convenience/</guid><description>本文永久链接 – https://tonybai.com/2023/06/13/understand-go-gc-overhead-behind-the-convenience &amp;gt; 注：本文部分摘录自GopherChina 2023前的《Go高级工程师训练营》课程。 1\. 简介 ------ 当今，移动互联网和人工智能的快(越)速(来)发(越)展(卷)，对编程语言的高效性和便利性提出了更高的要求...</description></item><item><title>Go语言反射编程指南</title><link>https://tonybai.com/2023/06/04/reflection-programming-guide-in-go/</link><pubDate>Sun, 04 Jun 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/06/04/reflection-programming-guide-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/06/04/reflection-programming-guide-in-go 反射是一种编程语言的高级特性，它允许程序在运行时检视自身的结构和行为。通过反射，程序可以动态地获取类型(type)与值(value)等信息，并对它们进行操作，诸如修改字段、调用方法等，这使得程序具有更大的灵活性和可扩展性。 不过，反射虽然具有强大的功...</description></item><item><title>理解时序数据库的时间线</title><link>https://tonybai.com/2023/05/28/understand-time-series-of-tsdb/</link><pubDate>Sun, 28 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/28/understand-time-series-of-tsdb/</guid><description>本文永久链接 – https://tonybai.com/2023/05/28/understand-time-series-of-tsdb 在当今数据爆炸的时代，时序数据已经成为企业和组织中不可或缺的一部分。它们包括了从传感器、监控设备、日志记录系统和金融交易等多种来源的大量数据，这些数据按照时间顺序排列，记录了各种事件和活动的发生和变化。时序数据的分析和处理对于企业的业务决策和运营效率至关重要...</description></item><item><title>聊聊Go语言的控制语句</title><link>https://tonybai.com/2023/05/27/control-flow-statement-in-go/</link><pubDate>Sat, 27 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/27/control-flow-statement-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/05/27/control-flow-statement-in-go 在高级编程语言中，控制流语句(control-flow statement)是一类用于控制程序执行流程的语句，以下简称为**控制语句**。它们可以根据条件或循环执行相应的代码块，或者跳转到指定位置执行代码。 常见的控制语句包括： * 条件语句：根据条件执行不同的...</description></item><item><title>Go与神经网络：张量运算</title><link>https://tonybai.com/2023/05/21/go-and-nn-part1-tensor-operations/</link><pubDate>Sun, 21 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/21/go-and-nn-part1-tensor-operations/</guid><description>本文永久链接 – https://tonybai.com/2023/05/21/go-and-nn-part1-tensor-operations 0\. 背景 ------ 2023年年初，我们很可能是见证了一次新工业革命的起点，也可能是见证了AGI(Artificial general intelligence，通用人工智能)孕育的开始。ChatGPT应用以及后续GPT-4大模型的出现，其震撼...</description></item><item><title>Go错误处理：错误链使用指南</title><link>https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain/</link><pubDate>Sun, 14 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain/</guid><description>本文永久链接 – https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain 0\. Go错误处理简要回顾 -------------- Go是一种非常强调错误处理的编程语言。在Go中，错误被表示为实现了error接口的类型的值，error接口只有一个方法： type error interface { Error() string...</description></item><item><title>Go项目组织：在单一repo中管理多个Go module指南</title><link>https://tonybai.com/2023/05/10/a-guide-of-managing-multiple-go-modules-in-mono-repo/</link><pubDate>Wed, 10 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/10/a-guide-of-managing-multiple-go-modules-in-mono-repo/</guid><description>本文永久链接 – https://tonybai.com/2023/05/10/a-guide-of-managing-multiple-go-modules-in-mono-repo 0\. 单repo单module管理回顾 -------------------- 众所周知，Go在1.11版本中引入了go module，随着近几年Go module机制的逐渐成熟，它已经被Go团队确定为**Go...</description></item><item><title>Go：值与指针</title><link>https://tonybai.com/2023/05/05/go-value-and-pointer/</link><pubDate>Fri, 05 May 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/05/05/go-value-and-pointer/</guid><description>本文永久链接 – https://tonybai.com/2023/05/05/go-value-and-pointer 1\. 计算机中的值 ---------- 在百万年的演化历史中，人类对事物的属性进行了抽象，有了数量、精度、信息等概念的表示，对应的我们称之为整数、小数、文本文字等。计算机出现后，我们使用计算机对真实世界的问题进行建模，通过计算机的高效计算解决这些问题并输出答案。为了建模，计...</description></item><item><title>Go 1.21新特性前瞻</title><link>https://tonybai.com/2023/04/26/go-1-21-foresight/</link><pubDate>Wed, 26 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/26/go-1-21-foresight/</guid><description>本文永久链接 – https://tonybai.com/2023/04/26/go-1-21-foresight Go 1.21版本正在如火如荼地开发当中，按照Go核心团队的一年两次的发布节奏来算，Go 1.21版本预计将在2023年8月发布(Go 1.20版本是在2023年2月份发布的)。 本文将和大家一起看看Go 1.21都会带来哪些新特性。不过由于目前为时尚早，下面列出的有些变化最终不一定...</description></item><item><title>单测时尽量用fake object</title><link>https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators/</link><pubDate>Thu, 20 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators/</guid><description>本文永久链接 – https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators 1\. 单元测试的难点：外部协作者(external collaborators)的存在 -------------------------------------------- 单元测试是软件开发的一个重要部分，它有助于在开...</description></item><item><title>理解unsafe-assume-no-moving-gc包</title><link>https://tonybai.com/2023/04/16/understanding-unsafe-assume-no-moving-gc/</link><pubDate>Sun, 16 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/16/understanding-unsafe-assume-no-moving-gc/</guid><description>本文永久链接 – https://tonybai.com/2023/04/16/understanding-unsafe-assume-no-moving-gc 1\. 背景 ------ 在之前的《Go与神经网络：张量计算》一文中，不知道大家是否发现了，所有例子代码执行时，前面都加了一个环境变量ASSUME\_NO\_MOVING\_GC\_UNSAFE\_RISK\_IT\_WITH，就像下面...</description></item><item><title>一文告诉你当module path为main时执行go test失败的真正原因</title><link>https://tonybai.com/2023/04/08/the-reason-why-go-test-fails-when-module-path-is-main/</link><pubDate>Sat, 08 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/08/the-reason-why-go-test-fails-when-module-path-is-main/</guid><description>本文永久链接 – https://tonybai.com/2023/04/08/the-reason-why-go-test-fails-when-module-path-is-main 近期收到新加入“Gopher部落”知识星球的星友“凌风”的一个问题，内容如下： 在一个目录下，我编写了a.go和a_test.go，在go mod init main后执行go test，会报错：could no...</description></item><item><title>一文告诉你哪些map element类型支持就地更新</title><link>https://tonybai.com/2023/04/02/map-element-types-support-in-place-update/</link><pubDate>Sun, 02 Apr 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/04/02/map-element-types-support-in-place-update/</guid><description>本文永久链接 – https://tonybai.com/2023/04/02/map-element-types-support-in-place-update 年初，我代表团队和人民邮电出版社签订了翻译《Go Fundamentals》一书的合同，本月底便是四分之一进度的交稿时间点，近期闲时我们都在忙着做交叉review。 上周末我review小伙伴翻译的有关map类型的章节时，看到了书中对m...</description></item><item><title>使用go test框架驱动的自动化测试</title><link>https://tonybai.com/2023/03/30/automated-testing-driven-by-go-test/</link><pubDate>Thu, 30 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/30/automated-testing-driven-by-go-test/</guid><description>本文永久链接 – https://tonybai.com/2023/03/30/automated-testing-driven-by-go-test 一. 背景 ----- 团队的测试人员稀缺，无奈只能“自己动手，丰衣足食”，针对我们开发的系统进行自动化测试，这样**既节省的人力，又提高了效率，还增强了对系统质量保证的信心**。 我们的目标是让自动化测试覆盖三个环境，如下图所示： 我们看到这三个...</description></item><item><title>Go开发命令行程序指南</title><link>https://tonybai.com/2023/03/25/the-guide-of-developing-cli-program-in-go/</link><pubDate>Sat, 25 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/25/the-guide-of-developing-cli-program-in-go/</guid><description>&amp;gt; 注：上面篇首配图的底图由百度文心一格生成。 本文永久链接 – https://tonybai.com/2023/03/25/the-guide-of-developing-cli-program-in-go 近期在Twitter上看到一个名为“Command Line Interface Guidelines”的站点，这个站点汇聚了帮助大家编写出更好命令行程序的哲学与指南。这份指南基于传统的U...</description></item><item><title>聊聊Go语言的全局变量</title><link>https://tonybai.com/2023/03/22/global-variable-in-go/</link><pubDate>Wed, 22 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/22/global-variable-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/03/22/global-variable-in-go &amp;gt; 注：上面篇首配图的底图由百度文心一格生成。 C语言是Go语言的先祖之一，Go继承了很多C语言的语法与表达方式，这其中就包含了**全局变量**，虽然Go在其语法规范中并没有直接给出全局变量的定义。但是已经入门Go的童鞋都知道，在Go中**包的导出变量(exported va...</description></item><item><title>聊聊godoc、go doc与pkgsite</title><link>https://tonybai.com/2023/03/20/godoc-vs-go-doc-vs-pkgsite/</link><pubDate>Mon, 20 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/20/godoc-vs-go-doc-vs-pkgsite/</guid><description>本文永久链接 – https://tonybai.com/2023/03/20/godoc-vs-go-doc-vs-pkgsite 就像上一篇文章聊到的Go内置单元测试框架一样，既重视语言特性，又不忘对Go软件项目提供整体环境特性的Go在诞生伊始就定义了如何在源码中通过注释编写代码文档的格式，并提供了基于代码注释实时生成Go文档并支持文档查看的工具。 而一些早期的语言，比如C、C++等则需要使用...</description></item><item><title>一文搞懂Go subtest</title><link>https://tonybai.com/2023/03/15/an-intro-of-go-subtest/</link><pubDate>Wed, 15 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/15/an-intro-of-go-subtest/</guid><description>&amp;gt; 注：本篇首图片基于lexica AI生成的图片二次加工而成。 本文永久链接 – https://tonybai.com/2023/03/15/an-intro-of-go-subtest 单元测试(unit testing)是软件开发中至关重要的一环，它存在的意义包括但不限于如下几个方面： * 提高代码质量：单元测试可以确保代码的正确性、可靠性和稳定性，从而减少代码缺陷和bug。 * 减少回归...</description></item><item><title>Go是一门面向对象编程语言吗</title><link>https://tonybai.com/2023/03/12/is-go-object-oriented/</link><pubDate>Sun, 12 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/12/is-go-object-oriented/</guid><description>本文永久链接 – https://tonybai.com/2023/03/12/is-go-object-oriented Go语言已经开源13年了，在近期TIOBE发布的2023年3月份的编程语言排行榜中，Go再次冲入前十，相较于Go在2022年底的排名提升了2个位次： 《Go语言第一课》专栏中关于Go在这两年开始飞起的“预言”也正在逐步成为现实^\_^，大家学习Go的热情也在快速提升， 《Go...</description></item><item><title>小厂内部私有Go module拉取方案3</title><link>https://tonybai.com/2023/03/03/the-approach-to-go-get-private-go-module-in-house-part3/</link><pubDate>Fri, 03 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/03/the-approach-to-go-get-private-go-module-in-house-part3/</guid><description>本文永久链接 – https://tonybai.com/2023/03/03/the-approach-to-go-get-private-go-module-in-house-part3 1\. 缘起 ------ 我们的Go团队这两年完全是按照之前写的《小厂内部私有Go module拉取方案》和《小厂内部私有Go module拉取方案（续）》中的方案搭建的内部拉取私有仓库的基础设施，总体感觉...</description></item><item><title>十分钟入门Go语言</title><link>https://tonybai.com/2023/02/23/learn-go-in-10-min/</link><pubDate>Thu, 23 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/23/learn-go-in-10-min/</guid><description>本文永久链接 – https://tonybai.com/2023/02/23/learn-go-in-10-min 本文旨在带大家快速入门Go语言，期望小伙伴们在花费十分钟左右通读全文后能对Go语言有一个初步的认知，为后续进一步深入学习Go奠定基础。 本文假设你完全没有接触过Go，你可能是一名精通其他编程语言的程序员，也可能是毫无编程经验、刚刚想转行为码农的热血青年。 编程简介 ---- 编程就...</description></item><item><title>2023年的Rust与Go[译]</title><link>https://tonybai.com/2023/02/22/rust-vs-go-in-2023/</link><pubDate>Wed, 22 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/22/rust-vs-go-in-2023/</guid><description>本文永久链接 – https://tonybai.com/2023/02/22/rust-vs-go-in-2023 本文译自《Rust vs Go in 2023》。 &amp;gt; 注：从2022年下半年开始，我们研发团队的产品研发不再局限于云端，车端也是将来的一个重要方向。于是我除了继续对Go语言保持常规的高度关注之外，也逐步开始留意Rust语言的发展。 * * * Rust和Go哪个更好？Go还是Ru...</description></item><item><title>一文告诉你如何判断Go接口变量是否相等</title><link>https://tonybai.com/2023/02/19/how-to-determine-if-two-interface-vars-are-equal/</link><pubDate>Sun, 19 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/19/how-to-determine-if-two-interface-vars-are-equal/</guid><description>本文永久链接 – https://tonybai.com/2023/02/19/how-to-determine-if-two-interface-vars-are-equal 近日一位《Go语言第一课》专栏的读者向我提出一个问题，代码如下： func main() { printNonEmptyInterface1() } type T struct { name string } func (...</description></item><item><title>Go 1.20中值得关注的几个变化</title><link>https://tonybai.com/2023/02/08/some-changes-in-go-1-20/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/08/some-changes-in-go-1-20/</guid><description>本文永久链接 – https://tonybai.com/2023/02/08/some-changes-in-go-1-20 美国时间2023年2月1日，唯一尚未退休的Go语言之父Robert Griesemer代表Go核心开发团队在Go官博撰文正式发布了Go 1.20版本。就像Russ Cox在2022 GopherCon大会所说的那样：**Go2永不会到来，Go 1.x.y将无限延续**！ ...</description></item><item><title>将Roaring Bitmap序列化为JSON</title><link>https://tonybai.com/2023/02/01/serialize-roaring-bitmap-to-json/</link><pubDate>Wed, 01 Feb 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/02/01/serialize-roaring-bitmap-to-json/</guid><description>本文永久链接 – https://tonybai.com/2023/02/01/serialize-roaring-bitmap-to-json 近期在实现一个数据结构时使用到了位图索引(bitmap index)，本文就来粗浅聊聊位图(bitmap)。 一. 什么是bitmap 位图索引使用位数组(bit array，也有叫bitset的，通常被称为位图(bitmap)，以下均使用bitmap这...</description></item><item><title>聊聊Go与TLS 1.3</title><link>https://tonybai.com/2023/01/13/go-and-tls13/</link><pubDate>Fri, 13 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/13/go-and-tls13/</guid><description>本文永久链接 – https://tonybai.com/2023/01/13/go-and-tls13 除了一些综述类文章和译文，我的文章选题多来源于实际工作和学习中遇到的问题。这次我们来聊聊近期遇到一个问题：**如何加快基于TLS安全通信的海量连接的建连速度**? TLS(Transport Layer Security)传输安全层的下面是TCP层，我们首先可能会想到的是**优化内核有关TCP...</description></item><item><title>2022年博客回顾与总结</title><link>https://tonybai.com/2023/01/11/2022-blog-summary/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/11/2022-blog-summary/</guid><description>本文永久链接 – https://tonybai.com/2023/01/11/2022-blog-summary 2022年对我来说，也是**十分忙碌和充实的一年**。尽管和2021年相比，成果物没那么多^\_^。 伴随着二宝的长大，我发现自己的闲暇时间被进一步“压缩”，还好大宝上初中后领悟到了自驱学习的重要性和相关方法后，她的学习现在基本不需要我过问了。 2022年初，《Go语言精进之路：从新...</description></item><item><title>聊聊Prometheus Gauge的增减操作实现</title><link>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</link><pubDate>Tue, 10 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</guid><description>本文永久链接 – https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub 1\. Gauge是啥？ 熟悉Prometheus的小伙伴们都知道Prometheus提供了四大指标类型： * Counter * Gauge * Histogram * Summary Histogram和Summary是一类，但理解起来稍复杂一些，这...</description></item><item><title>2022年Go语言盘点：泛型落地，无趣很好，稳定为王</title><link>https://tonybai.com/2022/12/29/the-2022-review-of-go-programming-language/</link><pubDate>Thu, 29 Dec 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/12/29/the-2022-review-of-go-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2022/12/29/the-2022-review-of-go-programming-language 早早就计划好在年前写一个Go语言年度盘点，就像2020年和2021年那样。但恰逢国内疫情管控放开，一波阳了之后身体十分容易疲劳，再加上工作上的事情挺多，这篇盘点也就迟迟没能下笔。 今年的盘点思路将围绕三个关键字来展开：**泛型、无趣(...</description></item><item><title>阿根廷圆梦卡塔尔世界杯，梅西正式加冕第三代球王</title><link>https://tonybai.com/2022/12/19/argentina-wins-qatar-world-cup/</link><pubDate>Mon, 19 Dec 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/12/19/argentina-wins-qatar-world-cup/</guid><description>本文永久链接 – https://tonybai.com/2022/12/19/argentina-wins-qatar-world-cup 都说球迷“迷信”，事实上呢，我就是一个“迷信”的阿根廷球迷。我发现：**只要我看阿根廷队正式比赛的直播，阿根廷就会输球(或至少是个平局)，即便是面对沙特这样的世界杯弱旅也会输掉**。 &amp;gt; 本届卡塔尔世界杯的阿根廷比赛，我忍不住看了对阵沙特这一场:(。 这“病...</description></item><item><title>Go类型系统：有何与众不同</title><link>https://tonybai.com/2022/12/18/go-type-system/</link><pubDate>Sun, 18 Dec 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/12/18/go-type-system/</guid><description>本文永久链接 – https://tonybai.com/2022/12/18/go-type-system Go是一门强类型的静态编程语言。使用Go编程，我们的每一行代码几乎都离不开**类型**。因此，深入学习Go，我们首先要对Go的类型系统(type system)有一个全面和深入的认知。Go类型系统可以给予我们一个全局整体的视角，以帮助我们更好地学习和理解Go语言中那些具体的与类型相关的内容...</description></item><item><title>Go为什么能成功</title><link>https://tonybai.com/2022/12/07/why-go-succeed/</link><pubDate>Wed, 07 Dec 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/12/07/why-go-succeed/</guid><description>本文永久链接 – https://tonybai.com/2022/12/07/why-go-succeed * * * 大家在入门Go语言时，多埋头于Go语法，忙于练手或快速完成公司的项目，无暇思考。 但当大家到了要进阶，要冲刺高级阶段的时候，我建议你不能再稀里糊涂了。既然入了Go这个坑，在进入高级阶段前，我们最好在门口的“影壁墙”前驻留一下。 仔细思考一下**我们投入这么多精力研究的Go为什么...</description></item><item><title>这可能是最权威、最全面的Go语言编码风格规范了！</title><link>https://tonybai.com/2022/11/26/intro-of-google-go-style/</link><pubDate>Sat, 26 Nov 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/11/26/intro-of-google-go-style/</guid><description>本文永久链接 – https://tonybai.com/2022/11/26/intro-of-google-go-style 每种编程语言除了固定的语法之外，都会有属于自己的**地道的(idiomatic)写法**。其实，自然语言也不例外，你想，你用心想想是不是这样。 语言的设计者们希望开发人员都能编写统一风格的地道的代码，这样不仅代码可读性好，便于社区统一代码风格，而且针对惯用法的优化也可能...</description></item><item><title>Go 1.20新特性前瞻</title><link>https://tonybai.com/2022/11/17/go-1-20-foresight/</link><pubDate>Thu, 17 Nov 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/11/17/go-1-20-foresight/</guid><description>本文永久链接 – https://tonybai.com/2022/11/17/go-1-20-foresight * * * 在近期Russ Cox代表Go核心团队发表的“Go, 13周年”一文中，他提到了“在Go的第14个年头，Go团队将继续努力使Go成为用于大规模软件工程的最好的环境，将特别关注供应链安全，提高兼容性和结构化日志记录，当然还会有很多其他改进，包括profile-guided ...</description></item><item><title>使用反射操作channel</title><link>https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels/</link><pubDate>Tue, 15 Nov 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels/</guid><description>本文永久链接 – https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels * * * 今年教师节极客时间送给讲师4999 SVIP卡，一直没顾过来用，上周激活后在极客时间的众多精品课和专栏中徜徉，收获颇丰。尤其是在拜读鸟窝老师的《Go并发编程实战课》 后，get到一个以前从未用过的“技能点”：**使用reflect操作...</description></item><item><title>Go，13周年[译]</title><link>https://tonybai.com/2022/11/11/go-opensource-13-years/</link><pubDate>Fri, 11 Nov 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/11/11/go-opensource-13-years/</guid><description>本文永久链接 – https://tonybai.com/2022/11/11/go-opensource-13-years 在中华大地的老百姓抱着手机进行双十一购物节狂欢，忙着支付尾款和秒杀的时候，Go核心团队的Russ Cox代表Go语言项目团队在Go官博上发表了《Thirteen Years of Go》的博文，纪念Go语言开源13周年，并对2021年以来Go语言的演进进行了归纳总结，对Go...</description></item><item><title>通过实例理解Go标准库context包</title><link>https://tonybai.com/2022/11/08/understand-go-context-by-example/</link><pubDate>Tue, 08 Nov 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/11/08/understand-go-context-by-example/</guid><description>* **原weibo账号处于jy状态，临时先用小号 https://weibo.com/u/6484441286，欢迎大家关注！** * “Gopher部落”知识星球双十一新人特惠，领劵加入即享立减88元优惠 – https://t.zsxq.com/078E1QTjM 本文永久链接 – https://tonybai.com/2022/11/08/understand-go-context-by...</description></item><item><title>slog：Go官方版结构化日志包</title><link>https://tonybai.com/2022/10/30/first-exploration-of-slog/</link><pubDate>Sun, 30 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/30/first-exploration-of-slog/</guid><description>本文永久链接 – https://tonybai.com/2022/10/30/first-exploration-of-slog * * * Go自诞生以来就在其标准库内置了log包作为Go源码输出日志的标准组件，该包被广泛应用于Go标准库自身以及Go社区项目中。 不过，针对Go标准库log包，Go社区要求改进的声音始终不断，主流声音聚焦在以下几点： * log包是为了方便人类可读而设计的，不支...</description></item><item><title>当函数设计遇到切片</title><link>https://tonybai.com/2022/10/27/when-encountering-slice-during-function-design/</link><pubDate>Thu, 27 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/27/when-encountering-slice-during-function-design/</guid><description>本文永久链接 – https://tonybai.com/2022/10/27/when-encountering-slice-during-function-design 切片(slice)是Go语言中的一种重要的也是最常用的同构数据类型。在Go语言编码过程中，我们多数情况下会使用slice替代数组，一来是因为其动态可扩展，二来在多数场合传递slice的开销要比传递数组要小(这里有一些例外)。 ...</description></item><item><title>Go标准库依赖的那些modules</title><link>https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on/</link><pubDate>Tue, 25 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on/</guid><description>本文永久链接 – https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on 对于程序员来说，编写的代码依赖标准库是“天经地义”的事情。标准库在程序员眼中就是高质量的代名词，也是最值得信赖的非自己所写的代码，当然更是代码包依赖关系链条上的最后一环，即所有直接或间接依赖的第三方module最终都会依赖标准...</description></item><item><title>通过实例理解Go静态单赋值（SSA）</title><link>https://tonybai.com/2022/10/21/understand-go-ssa-by-example/</link><pubDate>Fri, 21 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/21/understand-go-ssa-by-example/</guid><description>本文永久链接 – https://tonybai.com/2022/10/21/understand-go-ssa-by-example 在上一篇文章《通过实例理解Go内联优化》中，我们探讨了Go编译器在编译中端进行的内联优化。内联优化基于IR中间表示进行，不过Go编译过程不止有一种IR表示，这点和龙书《编译原理(第二版)》的在第六章“中间代码生成”一开始处的讲解是一致的，即在将给定源语言的一个程...</description></item><item><title>通过实例理解Go内联优化</title><link>https://tonybai.com/2022/10/17/understand-go-inlining-optimisations-by-example/</link><pubDate>Mon, 17 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/17/understand-go-inlining-optimisations-by-example/</guid><description>本文永久链接 – https://tonybai.com/2022/10/17/understand-go-inlining-optimisations-by-example * * * 移动互联网时代，直面C端用户的业务系统规模一般都很庞大，系统消耗的机器资源也很可观，系统使用的CPU核数、内存都是在消耗公司的真金白银。在服务水平不下降的前提下尽量降低单服务实例的资源消耗，即我们俗称的“少吃草多...</description></item><item><title>重阳节思姥姥姥爷</title><link>https://tonybai.com/2022/10/04/remembering-grandma-and-grandpa-on-chung-yeung-festival/</link><pubDate>Tue, 04 Oct 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/10/04/remembering-grandma-and-grandpa-on-chung-yeung-festival/</guid><description>图：姥姥姥爷在市中心转盘前的合影 本文永久链接 – https://tonybai.com/2022/10/04/remembering-grandma-and-grandpa-on-chung-yeung-festival 今天是国庆黄金周的第四天，亦是中国传统的重阳节。正所谓“岁岁重阳，今又重阳”。每逢重阳，古人喜登高饮酒，赏菊赋诗，思乡怀亲。今年的重阳对我来说亦是十分特别，因为每当想到去年姥...</description></item><item><title>Go语言之道[译]</title><link>https://tonybai.com/2022/09/25/the-tao-of-go/</link><pubDate>Sun, 25 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/25/the-tao-of-go/</guid><description>本文永久链接 – https://tonybai.com/2022/09/25/the-tao-of-go 近期阅读了John Arundel的文章《The Tao of Go》，看完后我都有心去阅读一遍《道德经》了:)。作者将Go语言设计哲学与惯例与“道”学三宝有机的联系到一起，给了我不小的启发。这里译成中文，供大家参考。 * * * &amp;gt; 你可以让水牛去任何地方，只要它们想去 – 杰拉尔德・温伯...</description></item><item><title>使用viper实现yaml配置文件的合并</title><link>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</link><pubDate>Tue, 20 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/</guid><description>本文永久链接 – https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files 作为小厂，我们的基础设施还不够完备，项目经理中秋节通知我们的系统近期要上second-to-last stage环境和生产环境，于是从运维人员部署效率方面考量，我们紧急开发了一个一键安装脚本生成工具，这样运维人员便可以利用...</description></item><item><title>如何像gitlab-runner那样将Go应用安装为系统服务</title><link>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</link><pubDate>Mon, 12 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</guid><description>本文永久链接 – https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner 在《让reviewdog支持gitlab-push-commit，守住代码质量下限》一文中，gitlab-runner(一个Go语言开发的应用)通过自身提供的install命令将自己安装为了一个...</description></item><item><title>有没有安全漏洞，你说了不算，govulncheck是裁判！</title><link>https://tonybai.com/2022/09/10/an-intro-of-govulncheck/</link><pubDate>Sat, 10 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/10/an-intro-of-govulncheck/</guid><description>本文永久链接 – https://tonybai.com/2022/09/10/an-intro-of-govulncheck * * * 2022年9月7日，Go安全团队在Go官博发表文章《Vulnerability Management for Go》，正式向所有Gopher介绍Go对安全漏洞管理的工具和方案。 在这篇文章中，Go安全团队引入了一个名为govulncheck的命令行工具。这个工...</description></item><item><title>让reviewdog支持gitlab-push-commit，守住代码质量下限</title><link>https://tonybai.com/2022/09/08/make-reviewdog-support-gitlab-push-commit-to-preserve-the-code-quality-floor/</link><pubDate>Thu, 08 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/08/make-reviewdog-support-gitlab-push-commit-to-preserve-the-code-quality-floor/</guid><description>本文永久链接 – https://tonybai.com/2022/09/08/make-reviewdog-support-gitlab-push-commit-to-preserve-the-code-quality-floor 一. 代码质量保证的手段 从世界上首款计算机高级程序设计语言Fortran自上世纪50年代诞生以来，编程这个行当已经走过了近70年。虽然年头已不少，但不可否认的一点是...</description></item><item><title>因为热爱：2022年空军航空开放日观展记</title><link>https://tonybai.com/2022/08/28/the-visiting-notes-of-2022-china-air-force-aviation-open-day/</link><pubDate>Sun, 28 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/28/the-visiting-notes-of-2022-china-air-force-aviation-open-day/</guid><description>本文永久链接 – https://tonybai.com/2022/08/28/the-visiting-notes-of-2022-china-air-force-aviation-open-day 2022年8月27日，我在长春现场观看了2022年空军航空开放日暨长春航空展的飞行表演、地面静态展示以及一些主题馆。这是我以军迷身份第一次参加人民军队举办的此类活动，一天下来，虽然疲惫，但**更多的...</description></item><item><title>Go 1.19中值得关注的几个变化</title><link>https://tonybai.com/2022/08/22/some-changes-in-go-1-19/</link><pubDate>Mon, 22 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/22/some-changes-in-go-1-19/</guid><description>本文永久链接 – https://tonybai.com/2022/08/22/some-changes-in-go-1-19 我们知道Go团队在2015年重新规定了团队发布版本的节奏，将Go大版本的发布频率确定为每年两次，发布窗口定为每年的2月与8月。而实现自举的Go 1.5版本是这一个节奏下发布的第一个版本。一般来说，Go团队都会在这两个窗口的中间位置发布版本，不过这几年也有意外，比如承载着泛...</description></item><item><title>使用Go开发Kubernetes Operator：基本结构</title><link>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1/</guid><description>本文永久链接 – https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1 &amp;gt; 注：文章首图基于《Kubernetes Operators Explained》修改 几年前，我还称Kubernetes为服务编排和容器调度领域的事实标准，如今K8s已经是这个领域的“霸主”，地位无可撼动。不过，虽然Kubern...</description></item><item><title>基于多label的issue驱动软件开发的实践</title><link>https://tonybai.com/2022/08/12/practices-of-multi-label-based-issue-driven-software-development/</link><pubDate>Fri, 12 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/12/practices-of-multi-label-based-issue-driven-software-development/</guid><description>本文永久链接 – https://tonybai.com/2022/08/12/practices-of-multi-label-based-issue-driven-software-development 软件吞噬世界，开源吞噬软件！基于工单跟踪系统(issue tracking system)的**issue driven开发**的模式不仅对开源系统的开发过程有着重要影响，在商业软件开发领域...</description></item><item><title>使用Go语言实现eBPF程序内核态与用户态的双向数据交换</title><link>https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go/</link><pubDate>Mon, 25 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go/</guid><description>本文永久链接 – https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go 在之前的两篇文章中，无论是使用C语言开发eBPF程序，还是使用Go开发的eBPF程序，都是hello world级别的，可能有用，但谈不上十分实用。 ...</description></item><item><title>使用Go语言开发eBPF程序</title><link>https://tonybai.com/2022/07/19/develop-ebpf-program-in-go/</link><pubDate>Tue, 19 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/19/develop-ebpf-program-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/07/19/develop-ebpf-program-in-go 在前面的《使用C语言从头开发一个Hello World级别的eBPF程序》一文中，我们详细说明了如何基于C语言和libbpf库从头开发一个eBPF程序(包括其用户态部分)。那篇文章是后续有关eBPF程序开发文章的基础，因为到目前为止，无论eBPF程序的用户态部分用什...</description></item><item><title>使用Go基于国密算法实现双向认证</title><link>https://tonybai.com/2022/07/17/two-way-authentication-using-go-and-sm-algorithm/</link><pubDate>Sun, 17 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/17/two-way-authentication-using-go-and-sm-algorithm/</guid><description>本文永久链接 – https://tonybai.com/2022/07/17/two-way-authentication-using-go-and-sm-algorithm 国内做2B(to Biz)或2G(to Gov)产品和解决方案的企业都绕不过**国密算法**，越来越多的国内甲方在采购需求中包含了基于国密算法的认证、签名、加密等需求。对于国内的车联网平台来说，支持基于国密的双向认证也是大...</description></item><item><title>GoCN社区Go读书会第二期：《Go语言精进之路》</title><link>https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master/</link><pubDate>Thu, 07 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master/</guid><description>本文永久链接 – https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master 本文是2022年6月26日我在**GoCN社区的Go读书会第二期《Go语言精进之路》直播的文字稿**。本文对直播的内容做了重新整理与修订，供喜欢阅读文字的朋友们在收看直播后...</description></item><item><title>使用C语言从头开发一个Hello World级别的eBPF程序</title><link>https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch/</link><pubDate>Tue, 05 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch/</guid><description>本文永久链接 – https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch * * * 近两年最火的Linux内核技术非eBPF莫属！ 2019年以来，除了eBPF技术自身快速演进之外，基于eBPF技术的观测(Observability)、安全(Security)和网络(Networking)...</description></item><item><title>Go语言数据竞争检测与数据竞争模式</title><link>https://tonybai.com/2022/06/21/data-race-detection-and-pattern-in-go/</link><pubDate>Tue, 21 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/21/data-race-detection-and-pattern-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/06/21/data-race-detection-and-pattern-in-go uber，就是那个早早退出中国打车市场的优步，是Go语言早期接纳者，也是Go技术栈的“重度用户”。uber内部的Go代码仓库有5000w+行Go代码，有2100个Go实现的独立服务，这样的Go应用规模在世界范围内估计也是Top3了吧。 uber...</description></item><item><title>小厂内部私有Go module拉取方案（续）</title><link>https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2/</link><pubDate>Sat, 18 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2/</guid><description>本文永久链接 – https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2 自从去年在公司搭建了内部私有Go module proxy后，我们的私有代理工作得基本良好。按理说，这篇续篇本不该存在:)。 日子一天天过去，Go团队逐渐壮大，空气中都充满了“Go的香气”。 突然有一天，业务...</description></item><item><title>Prometheus采不到数据了！居然是Prometheus client包的锅</title><link>https://tonybai.com/2022/06/15/prometheus-can-not-pick-up-data-because-of-the-prometheus-client-package/</link><pubDate>Wed, 15 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/15/prometheus-can-not-pick-up-data-because-of-the-prometheus-client-package/</guid><description>本文永久链接 – https://tonybai.com/2022/06/15/prometheus-can-not-pick-up-data-because-of-the-prometheus-client-package 在基于eBPF的新一代观测设施尚未成熟之前，我们采用了业界成熟的Prometheus+Grafana方案采集节点与应用度量指标(metrics)信息。众所周知，这样的方案是一...</description></item><item><title>Go 1.19新特性前瞻</title><link>https://tonybai.com/2022/06/12/go-1-19-foresight/</link><pubDate>Sun, 12 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/12/go-1-19-foresight/</guid><description>本文永久链接 – https://tonybai.com/2022/06/12/go-1-19-foresight 美国时间2022年5月7日，Go 1.19版本开发分支进入新特性冻结(freeze)阶段，即只能修Bug，不能再向Go 1.19版本中增加新特性了。由于上一个版本Go 1.18因引入泛型改动较大，推迟了一个月发布，这直接导致了Go 1.19版本的开发周期被缩短。 虽然开发周期少了近一...</description></item><item><title>Go：方法集合中“消失的方法”</title><link>https://tonybai.com/2022/06/06/the-disappeared-method-in-method-set/</link><pubDate>Mon, 06 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/06/the-disappeared-method-in-method-set/</guid><description>本文永久链接 – https://tonybai.com/2022/06/06/the-disappeared-method-in-method-set 在《Go语言第一课》中，我花了三节课对Go方法做了全面细致的讲解，而类型的方法集合是其中的一个重点，因为**方法集合决定接口实现**，并且课程还分门别类地对各种使用类型嵌入(type embedding)机制定义的类型进行了说明，讲解了这些类型的...</description></item><item><title>评点2021-2022年上市的那些Go语言新书</title><link>https://tonybai.com/2022/06/01/reviewing-those-new-go-language-books-coming-out-in-2021-2022/</link><pubDate>Wed, 01 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/01/reviewing-those-new-go-language-books-coming-out-in-2021-2022/</guid><description>本文永久链接 – https://tonybai.com/2022/06/01/reviewing-those-new-go-language-books-coming-out-in-2021-2022 计算机科学与技术这个工业大类与传统工业类别相比还很“年轻”，并且由于历史原因，整个计算机科学与技术学科的奠基都是由欧美人完成的，因此但凡诞生一门新IT技术或新编程语言，我们首先参考的都是来自欧美的...</description></item><item><title>手把手教你使用ANTLR和Go实现一门DSL语言（第五部分）：错误处理</title><link>https://tonybai.com/2022/05/30/an-example-of-implement-dsl-using-antlr-and-go-part5/</link><pubDate>Mon, 30 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/30/an-example-of-implement-dsl-using-antlr-and-go-part5/</guid><description>本文永久链接 – https://tonybai.com/2022/05/30/an-example-of-implement-dsl-using-antlr-and-go-part5 无论是端应用还是云应用，要上生产环境，有一件事必须要做好，那就是**错误处理**。在本系列前面的文章中，我们设计了文法与语法、建立并验证了语义模型，但我们没有特别关注错误处理。在这一篇中，我们就来补上这个环节。 D...</description></item><item><title>手把手教你使用ANTLR和Go实现一门DSL语言（第四部分）：组装语义模型并测试DSL</title><link>https://tonybai.com/2022/05/28/an-example-of-implement-dsl-using-antlr-and-go-part4/</link><pubDate>Sat, 28 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/28/an-example-of-implement-dsl-using-antlr-and-go-part4/</guid><description>本文永久链接 – https://tonybai.com/2022/05/28/an-example-of-implement-dsl-using-antlr-and-go-part4 在上一篇文章中，我们为DSL建立了完整的语义模型，我们距离DSL的语法示例真正run起来还差最后一步，那就是基于语法树提取信息(逆波兰式)、组装语义模型，在加载语义模型并实例化各个规则处理器(processor)后...</description></item><item><title>手把手教你使用ANTLR和Go实现一门DSL语言（第三部分）：建立和验证语义模型</title><link>https://tonybai.com/2022/05/27/an-example-of-implement-dsl-using-antlr-and-go-part3/</link><pubDate>Fri, 27 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/27/an-example-of-implement-dsl-using-antlr-and-go-part3/</guid><description>本文永久链接 – https://tonybai.com/2022/05/27/an-example-of-implement-dsl-using-antlr-and-go-part3 在前面的系列文章中，我们为气象学家们设计了一门名为**Tdat**的DSL，使用ANTLR的文法规则编写了Tdat的文法，基于该文法生成了Tdat的语法解析器代码并初步验证了文法的正确性，Tdat可以成功将我们编写...</description></item><item><title>手把手教你使用ANTLR和Go实现一门DSL语言（第二部分）：文法验证</title><link>https://tonybai.com/2022/05/25/an-example-of-implement-dsl-using-antlr-and-go-part2/</link><pubDate>Wed, 25 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/25/an-example-of-implement-dsl-using-antlr-and-go-part2/</guid><description>本文永久链接 – https://tonybai.com/2022/05/25/an-example-of-implement-dsl-using-antlr-and-go-part2 在本系列的第一篇文章《手把手教你使用ANTLR和Go实现一门DSL语言：设计DSL语法与文法》中，我们已经为气象学家们设计了一门DSL，建立了语法样例，并用ANTLR4文法将DSL定义了出来。按照外部DSL设计与实...</description></item><item><title>手把手教你使用ANTLR和Go实现一门DSL语言（第一部分）：设计DSL语法与文法</title><link>https://tonybai.com/2022/05/24/an-example-of-implement-dsl-using-antlr-and-go-part1/</link><pubDate>Tue, 24 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/24/an-example-of-implement-dsl-using-antlr-and-go-part1/</guid><description>本文永久链接 – https://tonybai.com/2022/05/24/an-example-of-implement-dsl-using-antlr-and-go-part1 在《使用ANTLR和Go实现DSL入门》一文中，我们了解了DSL与通用编程语言(GPL)的差异、DSL解析器生成工具选择以及ANTLR文法的简要书写规则，并和大家一起完成了一个CSV解析器的例子。看完上述文章后，你...</description></item><item><title>使用具名返回值巧妙解决泛型函数返回零值的问题</title><link>https://tonybai.com/2022/05/20/solving-problems-in-generic-function-implementation-using-named-return-values/</link><pubDate>Fri, 20 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/20/solving-problems-in-generic-function-implementation-using-named-return-values/</guid><description>本文永久链接 – https://tonybai.com/2022/05/20/solving-problems-in-generic-function-implementation-using-named-return-values Go语言泛型语法特性在Go 1.18版本落地后，不出所料，在github上看到大量的基础容器类型数据结构被用泛型重写。这种重写我觉得是很正常、很自然的，并且实现良好...</description></item><item><title>绞尽脑汁，帮你理解方法本质并选择正确的receiver类型</title><link>https://tonybai.com/2022/05/17/understand-the-nature-of-go-method-and-how-to-choose-the-correct-receiver-type/</link><pubDate>Tue, 17 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/17/understand-the-nature-of-go-method-and-how-to-choose-the-correct-receiver-type/</guid><description>本文永久链接 – https://tonybai.com/2022/05/17/understand-the-nature-of-go-method-and-how-to-choose-the-correct-receiver-type Go语言虽然不支持经典的面向对象语法元素，比如：类、对象、继承等，但Go语言也有方法（method）。和函数相比，Go语言中的方法在声明形式上仅仅多了一个参数，G...</description></item><item><title>Go程序员拥抱C语言简明指南</title><link>https://tonybai.com/2022/05/16/the-short-guide-of-embracing-c-lang-for-gopher/</link><pubDate>Mon, 16 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/16/the-short-guide-of-embracing-c-lang-for-gopher/</guid><description>本文永久链接 – https://tonybai.com/2022/05/16/the-short-guide-of-embracing-c-lang-for-gopher 本文是为于航老师的极客时间专栏《深入C语言和程序运行原理》写的加餐文章《Tony Bai：Go程序员拥抱C语言简明指南》，这里分享给大家，尤其是那些想学习C语言的Gopher们。 * * * 你好，我是Tony Bai。 也许...</description></item><item><title>使用ANTLR和Go实现DSL入门</title><link>https://tonybai.com/2022/05/10/introduction-of-implement-dsl-using-antlr-and-go/</link><pubDate>Tue, 10 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/10/introduction-of-implement-dsl-using-antlr-and-go/</guid><description>本文永久链接 – https://tonybai.com/2022/05/10/introduction-of-implement-dsl-using-antlr-and-go 一. 引子 设计与实现一门像Go这样的通用编程语言的确很难！那是世界上少数程序员从事的事业，但是实现一门领域特定语言(Domain Specific Language, DSL)似乎是可行的。 就像著名的语言解析器生成工具...</description></item><item><title>Go编程语言与环境：万字长文复盘导致Go语言成功的那些设计决策[译]</title><link>https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment/</link><pubDate>Wed, 04 May 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment/</guid><description>本文永久链接 – https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment 美国计算机学会通讯(Communications of the ACM)期刊2022年5月第65卷第5期将发表一篇有关Go语言的综述类Paper：《Go编程语言与环境》，这类综述类文章只有资深的Go核心团队的人才“...</description></item><item><title>我来告诉你Go项目标准结构如何布局</title><link>https://tonybai.com/2022/04/28/the-standard-layout-of-go-project/</link><pubDate>Thu, 28 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/28/the-standard-layout-of-go-project/</guid><description>本文永久链接 – https://tonybai.com/2022/04/28/the-standard-layout-of-go-project 每当我们编写一个非hello world的实用Go程序或库时，我们都会在项目结构、代码风格以及标识符命名这三个“门槛”前面踯躅徘徊许久，甚至始终得不到满意答案。 本文将通过《Go语言精进之路：从新手到高手的编程思想、方法与技巧》这本书的内容来详细看一看...</description></item><item><title>世界读书日：带你走近Go语言编程思维</title><link>https://tonybai.com/2022/04/23/taking-a-closer-look-at-programming-thinking-in-go/</link><pubDate>Sat, 23 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/23/taking-a-closer-look-at-programming-thinking-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/04/23/taking-a-closer-look-at-programming-thinking-in-go 经过十几年的演化和发展，Go语言在全世界范围内已经拥有了百万级别的拥趸，在这些开发者当中，除了一部分新入行的编程语言初学者之外，更多的是从其他编程语言阵营转过来的开发者。由于Go语言上手容易，在转Go的初期大家很快就掌...</description></item><item><title>Go 1.18中值得关注的几个变化</title><link>https://tonybai.com/2022/04/20/some-changes-in-go-1-18/</link><pubDate>Wed, 20 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/20/some-changes-in-go-1-18/</guid><description>本文永久链接 – https://tonybai.com/2022/04/20/some-changes-in-go-1-18 &amp;gt; 从3月23日开始，我居家办公了20+天。这期间我本来是应该有时间写下这篇综述类文章的，但是封了两天后，抢菜、带娃的事情就开始困扰着我。我实在没有下笔写下这篇文章的心思。4月13日终于解封了，上班后的气象就是不一样，人也精神了很多，于是这篇文章也被提上了日程。希望新冠疫...</description></item><item><title>Go字符串比较，终于有人讲清楚了</title><link>https://tonybai.com/2022/04/18/inside-go-string-comparison/</link><pubDate>Mon, 18 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/18/inside-go-string-comparison/</guid><description>本文永久链接 – https://tonybai.com/2022/04/18/inside-go-string-comparison 西娅(Thea)是一个刚刚入门Go语言的妹子程序员，今天她遇到了一个让她“surprise”的问题。下面就是那段让妹子西娅困惑的Go代码： func main() { s1 := &amp;#34;12345&amp;#34; s2 := &amp;#34;2&amp;#34; fmt.Println(`&amp;#34;12345&amp;#34; &amp;gt; &amp;#34;...</description></item><item><title>我的姥姥</title><link>https://tonybai.com/2022/04/05/my-grandma/</link><pubDate>Tue, 05 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/05/my-grandma/</guid><description>本文永久链接 – https://tonybai.com/2022/04/05/my-grandma &amp;gt; 音容犹在慈祥笑，片片追忆祖孙情。一缕思念寄夜雨，两世重隔眼朦胧。–古相思曲《汉乐府诗》 今天是清明节，是一个缅怀亲人、寄托哀思的日子。 2021年12月27日，我最爱的姥姥在安详的睡梦中永远地离开了我们，无疾而终，享年95岁。 民间将高寿且寿终正寝的老人的丧事称为“**喜丧**”，但我觉得这只...</description></item><item><title>Go是如何缓解供应链攻击的[译]</title><link>https://tonybai.com/2022/04/02/how-go-mitigates-supply-chain-attacks/</link><pubDate>Sat, 02 Apr 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/04/02/how-go-mitigates-supply-chain-attacks/</guid><description>本文永久链接 – https://tonybai.com/2022/04/02/how-go-mitigates-supply-chain-attacks 这些年来，关于软件供应链的安全问题频发，软件供应链已然成为IT安全领域的一个热点，在前不久的《聊聊Go语言的软件供应链安全》一文中我曾提到过Go在SBOM(软件物料清单)方面给开发人员带来的方便。这两天Go官博又发表了一篇由Go项目安全负责人F...</description></item><item><title>Go社区主流Kafka客户端简要对比</title><link>https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/</link><pubDate>Mon, 28 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients/</guid><description>本文永久链接 – https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients 一. 背景 众所周知，Kafka是Apache开源基金会下的明星级开源项目，作为一个开源的分布式事件流平台，它被成千上万的公司用于高性能数据管道、流分析、数据集成和关键任务应用。在国内，无论大厂小厂，无论是...</description></item><item><title>Go泛型介绍[译]</title><link>https://tonybai.com/2022/03/25/intro-generics/</link><pubDate>Fri, 25 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/25/intro-generics/</guid><description>本文永久链接 – https://tonybai.com/2022/03/25/intro-generics Go核心团队在官博上发布了一篇名为《An Introduction To Generics》的文章，该文章基于Robert Griesemer和Ian Lance Taylor在2021年GopherCon大会上的演讲，这是Go团队发布Go 1.18版本后官博发表的首篇有关Go泛型的文章，...</description></item><item><title>len(s)表达式的求值结果究竟是常量还是变量？我来告诉你</title><link>https://tonybai.com/2022/03/24/the-result-of-a-len-expression-is-constant-or-variable/</link><pubDate>Thu, 24 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/24/the-result-of-a-len-expression-is-constant-or-variable/</guid><description>本文永久链接 – https://tonybai.com/2022/03/24/the-result-of-a-len-expression-is-constant-or-variable **len**是Go预定义标识符，同时也是Go内置的预定义函数，通过go doc工具我们能查到len函数的doc如下： ``` $go doc builtin.len package builtin // im...</description></item><item><title>Go是否支持增量构建？我来告诉你！</title><link>https://tonybai.com/2022/03/21/go-native-support-incremental-build/</link><pubDate>Mon, 21 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/21/go-native-support-incremental-build/</guid><description>本文永久链接 – https://tonybai.com/2022/03/21/go-native-support-incremental-build Go语言**以编译速度快闻名于码农界**。这缘于Go在设计之初就选择抛弃其祖辈C语言的头文件包含机制，选择了以包(package)作为基本编译单元。Go语言的这种以包为基本构建单元的构建模型使得依赖分析变得十分简单，避免了C语言那种通过头文件分析依...</description></item><item><title>针对大型数组的迭代，for range真的比经典for loop慢吗？</title><link>https://tonybai.com/2022/03/19/for-range-vs-classic-for-loop-when-iterating-large-array/</link><pubDate>Sat, 19 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/19/for-range-vs-classic-for-loop-when-iterating-large-array/</guid><description>本文永久链接 – https://tonybai.com/2022/03/19/for-range-vs-classic-for-loop-when-iterating-large-array Go语言推崇“**一件事情仅有一个作法**”！比如：Go仅保留一类循环控制语句，那就是**经典版的for loop**： ``` for i := 0; i &amp;lt; 100; i++ { ... ... } `...</description></item><item><title>Go 1.18版本正式发布了</title><link>https://tonybai.com/2022/03/16/go-1-18-released/</link><pubDate>Wed, 16 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/16/go-1-18-released/</guid><description>本文永久链接 – https://tonybai.com/2022/03/16/go-1-18-released 美国时间2022年3月15日，Go核心团队官宣了Go 1.18版本正式版的发布！这是一个万众期待的版本，因为在这个版本中，Go核心团队做了Go语言开源以来的最大一次语法特性变更 – 增加了对泛型(generics)的支持！下面是对Go官博文章的全文翻译，供大家参考！ * * * 今天，...</description></item><item><title>Go语言map类型变量背后的那些事儿</title><link>https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable/</link><pubDate>Tue, 15 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable/</guid><description>本文永久链接 – https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable 切片(slice)和map是Go语言中最常用的两种原生复合数据类型，同时也是最容易使初学者感觉迷惑和“掉坑”的两个类型，这很大程度是因为Go runtime层的存在。什么是Go runtime层？可以参考我在《Go语言第一课FAQ》中的解释。 ...</description></item><item><title>聊聊Go语言的软件供应链安全</title><link>https://tonybai.com/2022/03/14/software-supply-chain-security-in-go/</link><pubDate>Mon, 14 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/14/software-supply-chain-security-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/03/14/software-supply-chain-security-in-go 在Go 12岁生日以及Go 1.18 beta1发布的博文中，Go核心团队技术负责人Russ Cox都提到了2022年Go团队将关注Go软件供应链安全，并在Go中为软件供应链提供相关工具。 提到供应链，我们立马想到的它是制造业的存在，在软件开发领...</description></item><item><title>为什么有了Go module后“依赖地狱”问题依然存在</title><link>https://tonybai.com/2022/03/12/dependency-hell-in-go/</link><pubDate>Sat, 12 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/12/dependency-hell-in-go/</guid><description>本文永久链接 – https://tonybai.com/2022/03/12/dependency-hell-in-go 如果所有Gopher都抛弃GOPATH构建模式，拥抱Go module构建模式；如果所有legacy Go package作者都能为自己的legacy package加上go.mod；如果所有Go module作者都严格遵守语义版本(semver)规范，那么Go将彻底解决“依...</description></item><item><title>Gopher部落：2022年要做的事儿</title><link>https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe/</link><pubDate>Sun, 06 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe/</guid><description>本文永久链接 – https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe 2021年末，我对Gopher部落知识星球的这一年进行了简单的复盘。2022年初，我陆续收到知识星球官方的一些排名数据： 这些数据让我对2022年星球的运营更加有信心了！那么，2022年Gopher部落知识星球会有哪些变化呢？在本文中，我就来说一说这方面内容。...</description></item><item><title>聊聊Go应用输出日志的工程实践</title><link>https://tonybai.com/2022/03/05/go-logging-practice/</link><pubDate>Sat, 05 Mar 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/03/05/go-logging-practice/</guid><description>&amp;gt; 配图改自网络 本文永久链接 – https://tonybai.com/2022/03/05/go-logging-practice Go隶属于后端语言，以开发各类服务、中间件和系统平台见长。日常学习Go语言时，日志不是不可或缺的，甚至是无需考虑的，但是一旦到真正的Go的工程实践中，输出日志便是我们绕不过去的、必须面对的问题。 Go开发的服务大多具有连续和自主运行的属性，通常都是7×24小时运...</description></item><item><title>为什么这个T类型实例无法调用*T类型的方法</title><link>https://tonybai.com/2022/02/27/go-addressable/</link><pubDate>Sun, 27 Feb 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/02/27/go-addressable/</guid><description>本文永久链接 – https://tonybai.com/2022/02/27/go-addressable 近期在“Go语言第一课”专栏后台看到一位学员的一则留言，如下图： 由于有课程上下文，所以我这里将问题的上下文重新描述一下。 在专栏的第25讲，我们学习了Go语言提供的一个“语法糖”，比如下面这个例子： ``` type T struct { a int } func (t T) M1() ...</description></item><item><title>Go GC如何检测内存对象中是否包含指针</title><link>https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj/</link><pubDate>Mon, 21 Feb 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj/</guid><description>本文永久链接 – https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj 众所周知，Go是带垃圾回收(GC)的编程语言，开发者通常不需要考虑对内存的管理，降低了心智负担。Go程序运行的时候，GC在背后默默辛劳地为开发者**“擦屁股”**：把无法reach到的内存对象定期地释放掉以备后续重用。 GC只关心**指针**，只要被扫描...</description></item><item><title>“Go语言第一课”结课了</title><link>https://tonybai.com/2022/02/17/go-first-course-close/</link><pubDate>Thu, 17 Feb 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/02/17/go-first-course-close/</guid><description>本文永久链接 – https://tonybai.com/2022/02/17/go-first-course-close 就在家家户户刚刚过完虎年元宵佳节之际，我的Go语言专栏：《Tony Bai·Go语言第一课》也迎来了它的最后一讲**结术语**。 这门专栏的撰写开始于2021年5月中旬，翻看我用于管理专栏原始文稿的github仓库的commit log记录，这一有纪念价值的日子被精确定位在5...</description></item><item><title>Go究竟是否为空切片分配了底层数组</title><link>https://tonybai.com/2022/02/15/whether-go-allocate-underlying-array-for-empty-slice/</link><pubDate>Tue, 15 Feb 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/02/15/whether-go-allocate-underlying-array-for-empty-slice/</guid><description>本文永久链接 – https://tonybai.com/2022/02/15/whether-go-allocate-underlying-array-for-empty-slice 这周在“Go语言第一课”的留言区看到一位同学的这样一个问题： 切片是Go语言中的一个重要的语法元素，也是日常Go开发中使用最为频繁的语法元素。有过Go语言开发经验的童鞋估计大多都知道空切片(empty slice)...</description></item><item><title>2021年Go语言盘点：厉兵秣马强技能，蓄势待发新征程</title><link>https://tonybai.com/2022/01/16/the-2021-review-of-go-programming-language/</link><pubDate>Sun, 16 Jan 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/01/16/the-2021-review-of-go-programming-language/</guid><description>本文永久链接 – https://tonybai.com/2022/01/16/the-2021-review-of-go-programming-language 由于日常忙工作，闲时忙专栏，我早已策划的**2021年Go语言盘点**这篇文章一直拖到了2022年元旦之后才开始落笔。 2021年，Go迈过了其开源的第12个年头。虽然已经演进了10余年，但在编程语言这个领域中，Go依旧属于“小字辈”...</description></item><item><title>Go语言精进之路：为Gopher们准备的“知识年货”</title><link>https://tonybai.com/2022/01/15/go-programming-from-beginners-to-masters-is-published/</link><pubDate>Sat, 15 Jan 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/01/15/go-programming-from-beginners-to-masters-is-published/</guid><description>本文永久链接 – https://tonybai.com/2022/01/15/go-programming-from-beginners-to-masters-is-published 历时三年多编写的Go语言进阶类图书《Go语言精进之路：从新手到高手的编程思想、方法和技巧》系列1、2册终于在2021年12月17日出版了！ 2021年的最后一天，我收到了机械工业出版社华章分社编辑罗词亮老师从微信...</description></item><item><title>2021年博客回顾与总结</title><link>https://tonybai.com/2021/12/31/2021-blog-summary/</link><pubDate>Fri, 31 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/31/2021-blog-summary/</guid><description>本文永久链接 – https://tonybai.com/2021/12/31/2021-blog-summary 2021年对我来说是极其充实的一年。 在这一年里，生活上的充实体现在**带娃**上。除了要带不到一岁的二宝，还要辅导大宝学习，陪大宝上补习班。 工作中，由于我刚入行智能网联汽车这个行业，要学的东西很多，要做的东西也很很多，要解决的问题同样很多，每天都十分忙碌。 业余时间，我还实现了“...</description></item><item><title>切换到Go 1.18后的第一件事：将interface{}全部替换为any</title><link>https://tonybai.com/2021/12/18/replace-empty-interface-with-any-first-after-switching-to-go-1-18/</link><pubDate>Sat, 18 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/18/replace-empty-interface-with-any-first-after-switching-to-go-1-18/</guid><description>本文永久链接 – https://tonybai.com/2021/12/18/replace-empty-interface-with-any-first-after-switching-to-go-1-18 伴随着Go 1.18 beta1版本的发布，很多Gopher已经迫不及待地下载该版本并体验其中的新特性了！ Go 1.18 beta1到手后，**你想做的第一件事是什么呢**？ 说到这里，...</description></item><item><title>Gopher部落：简单复盘这一年</title><link>https://tonybai.com/2021/12/17/gopher-tribe-first-anniversary-review/</link><pubDate>Fri, 17 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/17/gopher-tribe-first-anniversary-review/</guid><description>本文永久链接 – https://tonybai.com/2021/12/17/gopher-tribe-first-anniversary-review 简要复盘 12月15日早上，手机收到知识星球app的一条推送信息，提示我的星球“Gopher部落”迎来了第100位星友： 我这才想起来Gopher部落星球已经创建满一年了。从上面的星球名片来看，准确来说是390多天。在这390多天中，我发表了5...</description></item><item><title>Go 1.18 Beta1版本发布，支持泛型[译]</title><link>https://tonybai.com/2021/12/15/go-1-18-beta1/</link><pubDate>Wed, 15 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/15/go-1-18-beta1/</guid><description>本文永久链接 – https://tonybai.com/2021/12/15/go-1-18-beta1 北京时间今天凌晨，美国时间12月14日，Go核心团队技术负责人Russ Cox在Go官博发表文章《Go 1.18 Beta 1 is available, with generics》，正式宣布Go 1.18的第一个预览版Go 1.18 beta1发布！Go团队这次少见的通过官博来发布一个b...</description></item><item><title>使用Docker容器突破客户端6w可用端口的误区</title><link>https://tonybai.com/2021/12/14/the-misconception-of-using-docker-to-break-out-of-6w-ports-of-the-client/</link><pubDate>Tue, 14 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/14/the-misconception-of-using-docker-to-break-out-of-6w-ports-of-the-client/</guid><description>本文永久链接 – https://tonybai.com/2021/12/14/the-misconception-of-using-docker-to-break-out-of-6w-ports-of-the-client 近期的一个项目刚刚完成了第一个版本的开发，经过一段时间的自测与集成测试，功能问题已经不是重点了。项目在初期设定了性能目标，压测与性能优化势在必行，因此这一阶段我们都在做压测前...</description></item><item><title>惊了！原来Go语言也有隐式转型</title><link>https://tonybai.com/2021/12/02/go-has-implicit-type-convertion/</link><pubDate>Thu, 02 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/02/go-has-implicit-type-convertion/</guid><description>本文永久链接 – https://tonybai.com/2021/12/02/go-has-implicit-type-convertion 我的极客时间专栏《Go语言第一课》上线后收到了很多学员的反馈，大家提出了很多显然是经过认真思考的高水平问题。有些时候我也会被这些问题所“难倒”，比如昨天我在后台看到的这个问题。 我把这个问题整理为下面代码文本，方便大家copy和重现问题： ``` pack...</description></item><item><title>Go 1.18新特性前瞻：原生支持Fuzzing测试</title><link>https://tonybai.com/2021/12/01/first-class-fuzzing-in-go-1-18/</link><pubDate>Wed, 01 Dec 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/12/01/first-class-fuzzing-in-go-1-18/</guid><description>本文永久链接 – https://tonybai.com/2021/12/01/first-class-fuzzing-in-go-1-18 今年6月初，Go官博发表了一篇名为《Fuzzing is Beta Ready》的文章，文中称gotip版本已经原生支持Fuzzing并开始了公测。这意味着Fuzzing将以一等公民(first-class citizen)的身份正式加入到即将于2022年2...</description></item><item><title>梅西凑齐七个金球成功召唤神龙</title><link>https://tonybai.com/2021/11/30/leo-messi-win-his-seventh-ballondor/</link><pubDate>Tue, 30 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/30/leo-messi-win-his-seventh-ballondor/</guid><description>本文永久链接 – https://tonybai.com/2021/11/30/leo-messi-win-his-seventh-ballondor 北京时间今天凌晨4:30，梅西获得了由“法国足球”杂志颁发的2021年男子足球金球奖。 梅西赢得2021法国足球杂志金球奖 在2021年之前，梅西曾经在2009年、2010年、2011年、2012年、2015年和2019年六次赢得金球奖，这是梅西第...</description></item><item><title>ants：在Submit中再调用当前Pool的Submit可能导致阻塞</title><link>https://tonybai.com/2021/11/27/ants-call-submit-in-submit-may-cause-blocking/</link><pubDate>Sat, 27 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/27/ants-call-submit-in-submit-may-cause-blocking/</guid><description>本文永久链接 – https://tonybai.com/2021/11/27/ants-call-submit-in-submit-may-cause-blocking 1. goroutine pool的必要性 Go在并发程序方面的一个小创新就是支持轻量级用户线程goroutine，不过虽然goroutine很轻，但并不是免费的，尤其是Go程序中存在大量goroutine反复启停时(比如采用每...</description></item><item><title>使用Docker Compose构建一键启动的运行环境</title><link>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</link><pubDate>Fri, 26 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose/</guid><description>本文永久链接 – https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose 如今，不管你是否喜欢，不管你是否承认，微服务架构模式的流行就摆在那里。作为架构师的你，如果再将系统设计成个大单体结构，那么即便不懂技术的领导，都会给你送上几次白眼。好吧，妥协了！开拆！“没吃过猪肉，还没见过...</description></item><item><title>Go 1.18新特性前瞻：Go工作区模式</title><link>https://tonybai.com/2021/11/12/go-workspace-mode-in-go-1-18/</link><pubDate>Fri, 12 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/12/go-workspace-mode-in-go-1-18/</guid><description>本文永久链接 – https://tonybai.com/2021/11/12/go-workspace-mode-in-go-1-18 **Go 1.18版本如无意外，将于2022年2月发布**。 在这个版本中，除了包含万众期待的Go泛型之外，还包含很多实用的功能特性，Go工作区模式(Go workspace mode)就是其中之一，它弥补了当前go module构建模式的一些不足，堪称是**g...</description></item><item><title>Go，12周年</title><link>https://tonybai.com/2021/11/11/go-opensource-12-years/</link><pubDate>Thu, 11 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/11/go-opensource-12-years/</guid><description>本文永久链接 – https://tonybai.com/2021/11/11/go-opensource-12-years 2009年11月10日，Go语言正式对外发布并开源。如今，距那一历史时刻已经过去12年了。今早Go核心团队技术负责人Russ Cox在Go官博撰文庆祝Go开源12周年，他回顾了这一年来发布的Go 1.16与Go 1.17版本给Go与Go社区带来的变化，粗略总结了Go核心团队...</description></item><item><title>Ian Lance Taylor：Go泛型使用的一般准则</title><link>https://tonybai.com/2021/11/07/using-generics-in-go/</link><pubDate>Sun, 07 Nov 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/11/07/using-generics-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/11/07/using-generics-in-go 在近期Google Open Source Live的Go Day 2021环节，Go泛型的主要设计者Ian Lance Taylor做了Using Generics in Go的简短演讲(国内地址在这里)。这篇演讲的重点**不是即将于Go 1.18版本降临的Go泛型的语法细节...</description></item><item><title>Go 1.18对泛型的支持策略</title><link>https://tonybai.com/2021/10/28/expectations-for-generics-in-go-1-18/</link><pubDate>Thu, 28 Oct 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/10/28/expectations-for-generics-in-go-1-18/</guid><description>本文永久链接 – https://tonybai.com/2021/10/28/expectations-for-generics-in-go-1.18 2021年10月中旬，Go语言之父Rob Pike在github上的Go项目中发了一条issue：建议不在Go 1.18的标准库中使用泛型。 不得不说“姜还是老的辣”！Rob Pike的理由很简单，Go泛型是Go诞生以来最大的一次语言变化，Go ...</description></item><item><title>Go语言第一课背后的那些事儿</title><link>https://tonybai.com/2021/10/25/the-things-behind-the-first-lesson-of-go-language/</link><pubDate>Mon, 25 Oct 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/10/25/the-things-behind-the-first-lesson-of-go-language/</guid><description>本文永久链接 – https://tonybai.com/2021/10/25/the-things-behind-the-first-lesson-of-go-language 《Go语言第一课》正式上线一周多了，从编辑和运营老师那边反馈，成绩似乎还不错，感谢大家的捧场！今天和大家说说专栏《Go语言第一课》背后的那些事儿。 年初策划：Gopher的《C++ Primer》 学过C++的童鞋想必都...</description></item><item><title>Tony Bai带你入门Go语言</title><link>https://tonybai.com/2021/10/15/your-first-go-course-by-tonybai/</link><pubDate>Fri, 15 Oct 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/10/15/your-first-go-course-by-tonybai/</guid><description>本文永久链接 – https://tonybai.com/2021/10/15/your-first-go-course-by-tonybai 没错，Tony Bai就是我。这次终于轮到我了！ 极客时间在10月13日正式上线了我的Go语言专栏：《Tony Bai·Go语言第一课》。 * * * 现如今，越来越多的程序员因为自己或公司的需求，逐渐转成Go开发。当前国内外一线，包括 BAT 等大厂，以...</description></item><item><title>Go语言之父谈Go编程语言与环境</title><link>https://tonybai.com/2021/10/06/the-go-programming-language-and-environment/</link><pubDate>Wed, 06 Oct 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/10/06/the-go-programming-language-and-environment/</guid><description>本文永久链接 – https://tonybai.com/2021/10/06/the-go-programming-language-and-environment 2021年中旬，Go语言联合创始人Rob Pike应邀在线出席由UNSW Computing(悉尼新南威尔士大学计算机)组织主办的John Lions Distinguished Lectures，会上Rob Pike以Go之父身份...</description></item><item><title>gRPC服务的响应设计</title><link>https://tonybai.com/2021/09/26/the-design-of-the-response-for-grpc-server/</link><pubDate>Sun, 26 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/26/the-design-of-the-response-for-grpc-server/</guid><description>本文永久链接 – https://tonybai.com/2021/09/26/the-design-of-the-response-for-grpc-server 1. 服务端响应的现状 做后端服务的开发人员对错误处理总是很敏感的，因此在做服务的响应(response/reply)设计时总是会很慎重。 如果后端服务选择的是HTTP API(rest api)，比如json over http，A...</description></item><item><title>gRPC客户端的那些事儿</title><link>https://tonybai.com/2021/09/17/those-things-about-grpc-client/</link><pubDate>Fri, 17 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/17/those-things-about-grpc-client/</guid><description>本文永久链接 – https://tonybai.com/2021/09/17/those-things-about-grpc-client 在云原生与微服务主导架构模式的时代，内部服务间交互所采用的通信协议选型无非就是两类：HTTP API(RESTful API)和RPC。在如今的硬件配置与网络条件下，现代RPC实现的性能一般都是好于HTTP API的。我们以json over http与gR...</description></item><item><title>《走近周恩来》读后感</title><link>https://tonybai.com/2021/09/15/getting-closer-to-zhou-enlai/</link><pubDate>Wed, 15 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/15/getting-closer-to-zhou-enlai/</guid><description>本文永久链接 – https://tonybai.com/2021/09/15/getting-closer-to-zhou-enlai **不写书评/读后感，那是没有遇到真正让你内心感动的书**！ 实际上我并没有读这本书，而是在连续一周多的驾车途中通过“微信读书”将这本书听完的。 虽然是听书，并且听的还是AI机器人的播讲，但书中记录的那份真实且炽热的情感却无法隐匿在AI机器人那稍有些怪异的声线中...</description></item><item><title>亲子游之丹东凤凰山</title><link>https://tonybai.com/2021/09/07/a-tour-of-phoenix-mountain/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/07/a-tour-of-phoenix-mountain/</guid><description>本文永久链接 – https://tonybai.com/2021/09/07/a-tour-of-phoenix-mountain 提到东北，人们的第一印象一定是皑皑白雪的世界。东北雪季的冬天的确很美，但对于我这个东北人来说，9-10月份的秋天才是我心目中最美的时节：天高气爽，温度宜人，瓦蓝瓦蓝的天搭配着五颜六色的大地，让人心旷神怡！在这样的季节中，最佳户外活动就是爬山了。 金秋时节的山是最美丽...</description></item><item><title>小厂内部私有Go module拉取方案</title><link>https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house/</link><pubDate>Fri, 03 Sep 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house/</guid><description>本文永久链接 – https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house 1. 问题来由 Go 1.11版本引入Go module后，Go命令拉取依赖的公共go module不再是“痛点”。如下图所示： 图：从公司内部经由公共GOPROXY服务拉取公共go module 我们在公司/组织内部仅...</description></item><item><title>Brooks、Wirth和Go[译]</title><link>https://tonybai.com/2021/08/25/brooks-wirth-and-go/</link><pubDate>Wed, 25 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/25/brooks-wirth-and-go/</guid><description>本文永久链接 – https://tonybai.com/2021/08/25/brooks-wirth-and-go 本文翻译自瑞典程序员Fredrik Holmqvist的博客文章《Brooks, Wirth and Go》。 现在是1975年。 程序员们带着FORTRAN代码回来了，不过使用的是穿孔卡片的形式。 图：记录代码的穿孔卡片(图片来自punchcardreader.com，译者加)...</description></item><item><title>Go 1.17新特性详解：使用基于寄存器的调用惯例</title><link>https://tonybai.com/2021/08/20/using-register-based-calling-convention-in-go-1-17/</link><pubDate>Fri, 20 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/20/using-register-based-calling-convention-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/20/using-register-based-calling-convention-in-go-1-17 除了Go语言特性与go module有重要变化之外，Go编译器与Go运行时也都有着优化与改进，这两方面的变化对Go程序的构建与运行影响巨大。在这个系列的最后一篇中，我们来看看编译器与运行时中那些值得关注的变化。 1. ...</description></item><item><title>Go 1.17新特性详解：module依赖图修剪与延迟module加载</title><link>https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17/</link><pubDate>Thu, 19 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17 Go module的引入终于让Go语言有了自己的包依赖管理标准机制与工具，虽说它的引入与推广过程略显坎坷，但不得不承认Go 1.11及之后的每一次Go版本发布，Go module都在进步！在Go 1.17版本中亦是如此，本篇我们就来详细聊聊在Go 1.17版本中...</description></item><item><title>Go 1.17新特性详解：支持将切片转换为数组指针</title><link>https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17/</link><pubDate>Wed, 18 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17 Go属于那种极简的语言，从诞生到现在语言自身特性变化很小，不会像其他主流语言那样走“你有的我也要有”的特性融合路线。因此新语言特性对于Gopher来说属于“稀缺品”，属于“供不应求”那类事物^\_^。这也直接导致了每次Go新版本发布，我们都要首先...</description></item><item><title>Go 1.17中值得关注的几个变化</title><link>https://tonybai.com/2021/08/17/some-changes-in-go-1-17/</link><pubDate>Tue, 17 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/17/some-changes-in-go-1-17/</guid><description>本文永久链接 – https://tonybai.com/2021/08/17/some-changes-in-go-1-17 Go核心开发团队在去年GopherCon大会上给Go泛型的定调是在2022年2月份的Go 1.18版本中发布，那可是自Go诞生以来语法规范变动最大的一次，这让包括笔者在内的全世界的Gopher们都满怀期待。 不过别忘了，在Go 1.18这个“网红版本”发布前，还有一个“实...</description></item><item><title>一文告诉你如何帮助测试Go语言Beta公测版或RC候选发布版</title><link>https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc/</link><pubDate>Wed, 11 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc/</guid><description>本文永久链接 – https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc Go 1.17已经发布到RC2版本！正式版最早将在8月中旬发布，最迟也不会晚于月底。对于喜欢尝鲜的Gopher而言，在体验Go 1.17的新特性的同时，也不要忘了为Go语言项目做做贡献！贡献什么呢？其实很简单，就是在尝鲜的同时，对Go语言的Beta公测版以及RC发布候...</description></item><item><title>Go中被闭包捕获的变量何时会被回收</title><link>https://tonybai.com/2021/08/09/when-variables-captured-by-closures-are-recycled-in-go/</link><pubDate>Mon, 09 Aug 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/08/09/when-variables-captured-by-closures-are-recycled-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/08/09/when-variables-captured-by-closures-are-recycled-in-go 1. Go函数闭包 Go语言原生提供了对闭包(closure)的支持。在Go语言中，闭包就是函数字面值。Go规范中是这样诠释闭包的： &amp;gt; 函数字面值(function literals)是闭包：它们可以引用其包...</description></item><item><title>Go基于I/O多路复用的TCP协议流解析实践</title><link>https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go/</link><pubDate>Sat, 31 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go 在《Go经典阻塞式TCP协议流解析的实践》一文中，我们基于Go经典的阻塞I/O模型实现了一个基于TCP流的自定义协议的解析。这种**one-connection-per-goroutine*...</description></item><item><title>Go经典阻塞式TCP协议流解析的实践</title><link>https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go/</link><pubDate>Wed, 28 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go 1. Go经典阻塞I/O的TCP网络编程模型 Go语言诞生十多年来取得了飞速发展，并得到了全世界开发者的广泛接纳和应用，其应用领域广泛，包括：Web服务、数据库、网络编程、系统编程、D...</description></item><item><title>二闺女一周岁了</title><link>https://tonybai.com/2021/07/23/my-second-daughter-is-one-year-old/</link><pubDate>Fri, 23 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/23/my-second-daughter-is-one-year-old/</guid><description>本文永久链接 – https://tonybai.com/2021/07/23/my-second-daughter-is-one-year-old **时光飞逝** – 这是我在写这类记录孩子成长的文章时最喜欢用的一个词，也是最能体现我真实感受的一个词。一年前的今天，二闺女非常痛快地呱呱坠地，当时刚出生的她是这样的： 而一年后的今天，现在的她是这样： 这样： 以及这样： 就像她脸上快乐的笑容那样...</description></item><item><title>一文搞懂Go语言的plugin</title><link>https://tonybai.com/2021/07/19/understand-go-plugin/</link><pubDate>Mon, 19 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/19/understand-go-plugin/</guid><description>本文永久链接 – https://tonybai.com/2021/07/19/understand-go-plugin 要历数Go语言中还有哪些我还没用过的特性，在Go 1.8版本中引入的go plugin算一个。近期想给一个网关类平台设计一个插件系统，于是想起了go plugin^\_^。 Go plugin支持将Go包编译为共享库（.so）的形式单独发布，主程序可以在运行时动态加载这些编译为...</description></item><item><title>一文告诉你如何用好uber开源的zap日志库</title><link>https://tonybai.com/2021/07/14/uber-zap-advanced-usage/</link><pubDate>Wed, 14 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/14/uber-zap-advanced-usage/</guid><description>本文永久链接 – https://tonybai.com/2021/07/14/uber-zap-advanced-usage 1. 引子 日志在后端系统中有着重要的地位，通过日志不仅可以直观看到程序的当前运行状态，更重要的是日志可以在程序发生问题时为开发人员提供线索。 在Go生态中，logrus可能是使用最多的Go日志库，它不仅提供结构化的日志，更重要的是与标准库log包在api层面兼容。在性能...</description></item><item><title>使用section.key的形式读取ini配置项</title><link>https://tonybai.com/2021/07/10/read-ini-config-item-by-passing-section-key/</link><pubDate>Sat, 10 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/10/read-ini-config-item-by-passing-section-key/</guid><description>本文永久链接 – https://tonybai.com/2021/07/10/read-ini-config-item-by-passing-section-key 配置文件读取是很多Go项目必备的功能，这方面社区提供的方案也相对成熟稳定。但之前写这部分代码时除了使用了针对不同配置文件格式（比如：ini、toml等）的驱动包之外，很少直接使用第三方包对读取出的配置项的值进行管理。于是我们就面对这...</description></item><item><title>使用go-metrics在Go应用中增加度量</title><link>https://tonybai.com/2021/07/06/add-metrics-for-go-application-using-go-metrics/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/07/06/add-metrics-for-go-application-using-go-metrics/</guid><description>本文永久链接 – https://tonybai.com/2021/07/06/add-metrics-for-go-application-using-go-metrics Go语言内置expvar，基于expvar提供的对基础度量的支持能力，我们可以自定义各种度量（metrics）。但是expvar仅仅是提供了最底层的度量定义支持，对于一些复杂的度量场景，第三方或自实现的metrics包必不可...</description></item><item><title>通过实例理解Go Execution Tracer</title><link>https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example/</link><pubDate>Mon, 28 Jun 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example/</guid><description>本文永久链接 – https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example Netflix（奈飞公司）的性能架构师Brendan Gregg在其《BPF Performance Tools》一书中对tracing、sampling等概念做了细致描述，以帮助开发人员理解这些概念，并基于这些概念对性能优化辅助工具进...</description></item><item><title>使用functrace辅助进行Go项目源码分析</title><link>https://tonybai.com/2021/06/04/go-source-analysis-with-functrace/</link><pubDate>Fri, 04 Jun 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/06/04/go-source-analysis-with-functrace/</guid><description>本文永久链接 – https://tonybai.com/2021/06/04/go-source-analysis-with-functrace 在《像跟踪分布式服务调用那样跟踪Go函数调用链》一文中，我们介绍了一种跟踪函数调用链的思路，并给出了一种实现functrace：https://github.com/bigwhite/functrace。这个小工具不仅仅是分享给大家的，我自己在工作和学...</description></item><item><title>通过实例理解Go逃逸分析</title><link>https://tonybai.com/2021/05/24/understand-go-escape-analysis-by-example/</link><pubDate>Mon, 24 May 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/05/24/understand-go-escape-analysis-by-example/</guid><description>本文永久链接 – https://tonybai.com/2021/05/24/understand-go-escape-analysis-by-example 翻看了一下自己的Go文章归档，发现自己从未专门写过有关Go逃逸分析（escape analysis）的文章。关于Go变量的逃逸分析，大多数Gopher其实并不用关心，甚至可以无视。但是如果你将Go应用于性能敏感的领域，要完全压榨出Go应用...</description></item><item><title>minikube v1.20.0版本的一个bug</title><link>https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20/</link><pubDate>Fri, 14 May 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20/</guid><description>本文永久链接 – https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20 近期在研究dapr(分布式应用运行时)，这是一个很朴素却很棒的想法，目前大厂，如阿里和鹅厂都有大牛在研究该项目，甚至是利用dapr落地了部分应用。关于dapr，后续我也会用单独的文章详细说说。 dapr不仅支持k8s部署，还支持本地部署，并可以对接多个世界知名的公有云厂商的...</description></item><item><title>Go标准库http与fasthttp服务端性能比较</title><link>https://tonybai.com/2021/04/25/server-side-performance-nethttp-vs-fasthttp/</link><pubDate>Sun, 25 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/25/server-side-performance-nethttp-vs-fasthttp/</guid><description>本文永久链接 – https://tonybai.com/2021/04/25/server-side-performance-nethttp-vs-fasthttp 1. 背景 Go初学者学习Go时，在编写了经典的“hello, world”程序之后，可能会迫不及待的体验一下Go强大的标准库，比如：用几行代码写一个像下面示例这样拥有完整功能的web server： ``` // 来自https:...</description></item><item><title>使用reflect包在反射世界里读写各类型变量</title><link>https://tonybai.com/2021/04/19/variable-operation-using-reflection-in-go/</link><pubDate>Mon, 19 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/19/variable-operation-using-reflection-in-go/</guid><description>本文永久链接 – https://tonybai.com/2021/mm/dd/variable-operation-using-reflection-in-go Go在标准库中提供的reflect包让Go程序具备运行时的反射能力(reflection)，但这种反射能力也是一把“双刃剑”，它在解决一类特定问题方面具有优势，但也带来了逻辑不清晰、性能问题以及难于发现问题和调试等不足。不过从Go诞生伊...</description></item><item><title>给expvarmon插上数据持久化的“翅膀”</title><link>https://tonybai.com/2021/04/14/expvarmon-save-and-convert-to-xlsx/</link><pubDate>Wed, 14 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/14/expvarmon-save-and-convert-to-xlsx/</guid><description>本文永久链接 – https://tonybai.com/2021/04/14/expvarmon-save-and-convert-to-xlsx 1\. expvar包与expvarmon Go在标准库中为暴露Go应用内部指标数据提供了标准的对外接口，这就是expvar包。expvar包通过init函数将内置的expvarHandler(一个标准http HandlerFunc)注册到http...</description></item><item><title>Go标准库flag包的“小陷阱”</title><link>https://tonybai.com/2021/04/12/pitfall-in-std-flag-pkg/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/12/pitfall-in-std-flag-pkg/</guid><description>本文永久链接 – https://tonybai.com/2021/04/12/pitfall-in-std-flag-pkg Go语言号称“自带电池(battery-included)”，这意味着Go标准库可开箱即用，为Gopher提供了功能丰富的常用工具包，足以应付多数日常开发所需。尤其在Go语言擅长的领域，Go标准库工具包更是有着广泛的应用。下图是Go官方2020年用户调查的结果： 我们看到...</description></item><item><title>Go语言“十诫”[译]</title><link>https://tonybai.com/2021/04/09/ten-commandments-of-go/</link><pubDate>Fri, 09 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/09/ten-commandments-of-go/</guid><description>本文永久链接 – https://tonybai.com/2021/04/09/ten-commandments-of-go 本文翻译自John Arundel的《Ten commandments of Go》。全文如下： 作为一名全职的Go语言作家和老师，我花了很多时间和学生们一起，帮助他们写出更清晰、更好、更有用的Go程序。我发现，我给他们的建议可以归纳总结为一套通用原则，在这里我将这些原则分...</description></item><item><title>Go泛型语法又出“幺蛾子”：引入type set概念和移除type list中的type关键字</title><link>https://tonybai.com/2021/04/07/go-generics-use-type-sets-to-remove-type-keyword/</link><pubDate>Wed, 07 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/07/go-generics-use-type-sets-to-remove-type-keyword/</guid><description>本文永久链接 – https://tonybai.com/2021/04/07/go-generics-use-type-sets-to-remove-type-keyword 近日，Go泛型语法负责人之一的Ian Lance Taylor发布了一个issue，说明go团队想引入新的type set概念，并去除原Go泛型方案中置于interface定义中的type list中的type关键字。 对...</description></item><item><title>http.Client的连接行为控制详解</title><link>https://tonybai.com/2021/04/02/go-http-client-connection-control/</link><pubDate>Fri, 02 Apr 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/04/02/go-http-client-connection-control/</guid><description>1\. http包默认客户端 Go语言以“自带电池”闻名，很多开发者对Go自带的功能丰富的标准库喜爱有加。而在Go标准库中，net/http包又是最受欢迎和最常用的包之一，我们用几行代码就能生成一个支持大并发、性能中上的http server。而http.Client也是用途最为广泛的http客户端，其性能也可以满足多数情况下的需求。知名女gopherJaana Dogan开源的类apache a...</description></item><item><title>Go语言中常见的几种反模式[译]</title><link>https://tonybai.com/2021/03/31/common-anti-patterns-in-go/</link><pubDate>Wed, 31 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/31/common-anti-patterns-in-go/</guid><description>本文翻译自Saif Sadiq的文章《Common anti-patterns in Go》。 众所周知，编码是一门艺术，就像每个拥有精湛艺术并为之感到骄傲的工匠一样，我们作为开发人员也为我们编写的代码感到自豪。为了获得最佳效果，艺术家不断寻找可提高其手艺的方法和工具。同样，作为开发人员，我们也在不断提高自己的技能，并对”如何写出好的代码”这个最重要的问题的答案保持好奇。 弗雷德里克·布鲁克斯（F...</description></item><item><title>Go语言的“黑暗角落”：盘点学习Go语言时遇到的那些陷阱[译]（第二部分）</title><link>https://tonybai.com/2021/03/29/darker-corners-of-go-part2/</link><pubDate>Mon, 29 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/29/darker-corners-of-go-part2/</guid><description>本文翻译自Rytis Bieliunas的文章《Darker Corners of Go》。 第一部分参见[《Go语言的“黑暗角落”：盘点学习Go语言时遇到的那些陷阱\[译\]（第一部分）》](https://tonybai.com/2021/03/29/darker-corners-of-go-part1) 7\. 字符串和字节数组 ------------ 1) Go中的字符串 Go字符串的内...</description></item><item><title>Go语言的“黑暗角落”：盘点学习Go语言时遇到的那些陷阱[译]（第一部分）</title><link>https://tonybai.com/2021/03/29/darker-corners-of-go-part1/</link><pubDate>Mon, 29 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/29/darker-corners-of-go-part1/</guid><description>本文翻译自Rytis Bieliunas的文章《Darker Corners of Go》。 &amp;gt; 译注：若干年前，Kyle Quest曾发过一篇名为“50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs”的文章，仿效著名的《C Traps and Pitfalls》编写了50条Go语言的陷阱与缺陷，一时在G...</description></item><item><title>使用Go实现可用select监听的队列</title><link>https://tonybai.com/2021/03/26/implement-a-queue-with-select-listener-in-go/</link><pubDate>Fri, 26 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/26/implement-a-queue-with-select-listener-in-go/</guid><description>1\. 背景与选型 和《基于Redis Cluster的分布式锁实现以互斥方式操作共享资源》一文一样，今天要说的Go队列方案也是有一定项目背景的。 5G消息方兴未艾！前一段时间从事了一段时间5G消息网关的研发，但凡涉及类似消息业务的网关，我们一般都离不开**队列**这种数据结构的支持。这个5G消息网关项目采用的是Go技术栈开发，那么我们应该如何为它选择一个**与业务模型匹配且性能不差**的实现呢？...</description></item><item><title>对Go 1.16 io/fs设计的第一感觉：得劲儿！</title><link>https://tonybai.com/2021/03/23/io-fs-interface-is-an-excellent-design/</link><pubDate>Tue, 23 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/23/io-fs-interface-is-an-excellent-design/</guid><description>1\. 设计io/fs的背景 Go语言的接口是Gopher最喜欢的语法元素之一，其隐式的契约满足和“当前唯一可用的泛型机制”的特质让其成为面向组合编程的强大武器，其存在为Go建立事物抽象奠定了基础，同时也是建立抽象的主要手段。 Go语言从诞生至今，最成功的接口定义之一就是io.Writer和io.Reader接口： type Writer interface { Write(p []byte) (...</description></item><item><title>Rust vs. Go：为什么强强联合会更好</title><link>https://tonybai.com/2021/03/15/rust-vs-go-why-they-are-better-together/</link><pubDate>Mon, 15 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/15/rust-vs-go-why-they-are-better-together/</guid><description>本文翻译自乔纳森·特纳（Jonathan Turner）和史蒂夫·弗朗西亚（Steve Francia）的文章《Rust vs. Go: Why They’re Better Together》。 &amp;gt; 史蒂夫·弗朗西亚（Steve Francia）：在过去的25年里，Steve Francia建立了一些最具创新性和成功的技术和公司，这些技术和公司已经成为云计算的基础，被全世界的企业和开发者所接受。...</description></item><item><title>究竟是什么让Go语言成为恶意软件作者的最爱</title><link>https://tonybai.com/2021/03/07/go-malware-round-up-2020/</link><pubDate>Sun, 07 Mar 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/03/07/go-malware-round-up-2020/</guid><description>2020年5月份，Go语言之父Rob Pike接受了evrone.com的专访。当Rob Pike老爷子被问及多年来他看到过最奇怪、最有创意或有趣的Go用法或最让他惊讶的是什么时，老爷子是这么回答的： &amp;gt; Rob：最大的惊喜是当我们得知Go被用于编写恶意软件时。您无法控制谁将使用您的作品或他们将如何使用它。 近期安全技术公司Intezer发布了一份名为《Year of the Gopher, A ...</description></item><item><title>Go 1.16中值得关注的几个变化</title><link>https://tonybai.com/2021/02/25/some-changes-in-go-1-16/</link><pubDate>Thu, 25 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/25/some-changes-in-go-1-16/</guid><description>辛丑牛年初七开工大吉的日子(2021.2.18)，Go核心开发团队为中国Gopher们献上了大礼 – Go 1.16版本正式发布了！国内Gopher可以在Go中国官网上下载到Go 1.16在各个平台的安装包： 2020年双12，Go 1.16进入freeze状态，即不再接受新feature，仅fix bug、编写文档和接受安全更新等，那时我曾写过一篇名为《Go 1.16新功能特性不完全前瞻》的文章...</description></item><item><title>“能力越大，责任越大” – Go语言之父详解将于Go 1.18发布的Go泛型</title><link>https://tonybai.com/2021/02/18/typing-generic-go-by-griesemer-at-gophercon-2020/</link><pubDate>Thu, 18 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/18/typing-generic-go-by-griesemer-at-gophercon-2020/</guid><description>&amp;gt; 注：本文是首发于笔者微信公众号“iamtonybai”上的付费文章，这里免费分享给大家！ 在2020.11.9~11.13举行的全球最具影响力的Go语言技术大会GopherCon 2020上，Go语言之父之一的Robert Griesemer为全世界Gopher们带来了本次大会最重量级的演讲**“Typing \[Generic\] Go”**。 图：Robert Griesemer带来的有关...</description></item><item><title>基于Redis Cluster的分布式锁实现以互斥方式操作共享资源</title><link>https://tonybai.com/2021/02/13/operate-with-shared-resources-in-a-mutually-exclusive-way-through-distributed-lock-implemented-by-redis-cluster/</link><pubDate>Sat, 13 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/13/operate-with-shared-resources-in-a-mutually-exclusive-way-through-distributed-lock-implemented-by-redis-cluster/</guid><description>今天要说的技术方案也是有一定项目背景的。在上一个项目中，我们需要对一个redis集群中过期的key进行处理，这是一个分布式 系统，考虑到高可用性，需要具备过期处理功能的服务有多个副本，这样我们就要求在同一时间内仅有一个副本可以对过期的key&amp;gt;进行处理，如果该副本挂掉，系统会在其他副本中再挑选出一个来处理过期的key。 很显然，这里涉及到一个选主(leader election)的过程。每当涉及选主...</description></item><item><title>以单件方式创建和获取数据库实例</title><link>https://tonybai.com/2021/02/09/create-and-get-db-access-instance-through-singleton/</link><pubDate>Tue, 09 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/09/create-and-get-db-access-instance-through-singleton/</guid><description>在屡次的Go用户调查中，使用Go语言进行Web服务/API开发都占据了Go语言用途调查结果的头部位置。下面是知名Go IDE goland的母公司JetBrains最新发布的Go当前状态报告(2021.2.3)中的截图： 开发Web或API服务，难免会与数据库打交道。如今创建数据库实例并访库的技术已经是很成熟了，于是就有了下面这样的程序结构： 上面这个图片中，Web服务中的每个要与数据库进行数据交...</description></item><item><title>Go语言学习技术路线图2021发布了！</title><link>https://tonybai.com/2021/02/08/go-programming-language-learning-roadmap-2021/</link><pubDate>Mon, 08 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/08/go-programming-language-learning-roadmap-2021/</guid><description>上一次与CSDN的合作还要追溯到《程序员》杂志仍然发行的时代(网络发行)，最后一次投稿是2017年末的《追求极简：Docker镜像构建演化史》。 今年元旦前，CSDN编辑周翔老师邀请我参与他们策划的“IT人才成长路线图”，合作编写其中的Go语言学习技术路线图。**出于让更多开发者学习Go语言、加入Go社区、壮大Go生态的公心考虑以及扩大个人影响力的私心考虑，我接受了邀请**。 去年圣诞节的前一周我...</description></item><item><title>使用multipart/form-data实现文件的上传与下载</title><link>https://tonybai.com/2021/01/16/upload-and-download-file-using-multipart-form-over-http/</link><pubDate>Sat, 16 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/16/upload-and-download-file-using-multipart-form-over-http/</guid><description>1\. Form简介 **Form**(中文译为表单)，是HTML标记语言中的重要语法元素。一个Form不仅包含正常的文本内容、标记等，还包含被称为控件的特殊元素。用户通常通过修改控件（比如：输入文本、选择菜单项等）来“完成”表单，然后将表单数据以HTTP Get或Post请求的形式提交（submit）给Web服务器。 &amp;gt; 很多初学者总是混淆HTML和HTTP。其实，http通常作为html传输的...</description></item><item><title>通过实例理解Go标准库http包是如何处理keep-alive连接的</title><link>https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection/</link><pubDate>Fri, 08 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection/</guid><description>HTTP是如今互联网的基础协议，承载了互联网上的绝大部分应用层流量，并且从目前趋势来看，在未来10年，http仍然会是互联网应用的主要协议。Go语言自带“电池”，基于Go标准库我们可以轻松建立起一个http server处理客户端http请求，或创建一个http client向服务端发送http请求。 最初早期的http 1.0协议只支持短连接，即客户端每发送一个请求，就要和服务器端建立一个新TC...</description></item><item><title>Go语言很无聊…其实它妙不可言！[译]</title><link>https://tonybai.com/2021/01/07/go-is-boring/</link><pubDate>Thu, 07 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/07/go-is-boring/</guid><description>&amp;gt; 无聊是一种很奇妙的状态，它可以稀释掉人类的一切情感。- 《古董局中局》马伯庸 在GopherCon 2020技术大会上(线上虚拟大会)，Jon Bodner为全球gopher们做了主题为“Go Is Boring”的精彩演讲(关注公众号**iamtonybai**，发送**gophercon2020**即可得到GopherCon 2020技术大会幻灯片资料)。 其实早在2020年6月，Jon ...</description></item><item><title>Hugo作者、Go核心开发团队成员谈诞生13年的Go语言：生态系统、演化与未来[译]</title><link>https://tonybai.com/2021/01/02/go-language-13-years/</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/01/02/go-language-13-years/</guid><description>本文翻译自《Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia》。 &amp;gt; 译注：Go开源于2009年，如果从那时算起，Go才11岁；但在Go核心开发团队眼中，Go的真正诞生年份是2007年，至今13个年头了。关于Go的演化简史可以参见我的专栏文章：《Go语言的前生今世...</description></item><item><title>2020年Go语言盘点：新冠大流行阻挡不了Go演进的步伐</title><link>https://tonybai.com/2020/12/30/the-2020-review-of-go-programming-language/</link><pubDate>Wed, 30 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/30/the-2020-review-of-go-programming-language/</guid><description>2020，这一六十年一遇的庚子年的确“名不虚传”。在这一年发生了很多事，而最受瞩目的事情莫过于**新冠疫情的全球大流行**。疫情给全球的经济带来了近似毁灭性的打击，给人们的生命带来了极大威胁，给人们的生活也带来了很大痛苦及不确定性。好在**这个糟糕的2020年马上就要过去了**！相信此时此刻每个人心中都会有一句呐喊：“**2020，快滚吧**！”。 然而肆虐的新冠疫情并没有阻挡住Go语言前进的坚实...</description></item><item><title>如何作废一个已发布的Go module版本，我来告诉你！</title><link>https://tonybai.com/2020/12/26/how-to-deprecate-a-published-version-of-some-specific-go-module/</link><pubDate>Sat, 26 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/26/how-to-deprecate-a-published-version-of-some-specific-go-module/</guid><description>Go语言自诞生以来，一路走到今天已经经历了11个年头了。其包依赖管理机制也从无到有，从vendor演化成了如今的Go module。Go module从Go 1.11进入gopher们视野，到目前的Go 1.15，其改进和优化一直在持续。在即将到来的Go 1.16中，Go module将成为默认包依赖管理模式(即默认GO111MODULE=on)。但即便如此，我们在进行go module的实践过程...</description></item><item><title>BPF和Go：在Linux中内省的现代方式[译]</title><link>https://tonybai.com/2020/12/25/bpf-and-go-modern-forms-of-introspection-in-linux/</link><pubDate>Fri, 25 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/25/bpf-and-go-modern-forms-of-introspection-in-linux/</guid><description>本文翻译自马可·凯瓦克（Marko Kevac）的《BPF and Go: Modern forms of introspection in Linux》(https://medium.com/bumble-tech/bpf-and-go-modern-forms-of-introspection-in-linux-6b9802682223)。 每个人都有自己喜欢的关于魔法的书。对于一个人来说是托...</description></item><item><title>Go语言有哪些“劣势”</title><link>https://tonybai.com/2020/12/24/the-disadvantages-of-go/</link><pubDate>Thu, 24 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/24/the-disadvantages-of-go/</guid><description>本文源于笔者对知乎上的一个问题“Go有哪些劣势？”(https://www.zhihu.com/question/300163211)的一次回答(https://www.zhihu.com/question/300163211/answer/1632229924)。当时随手花几分钟在手机上写了一些点。但事后我觉得应该再做一些系统地思考。在这里我就将更系统地思考后的答案整理并分享给大家。 关于Go语...</description></item><item><title>Go语言对ARM架构的支持与未来[译]</title><link>https://tonybai.com/2020/12/18/go-ports-until-202012/</link><pubDate>Fri, 18 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/18/go-ports-until-202012/</guid><description>本文翻译自Go官方博客文章《Go on ARM and Beyond》(https://blog.golang.org/ports)。 最近业界关于非x86处理器的讨论沸沸扬扬，所以我们认为值得简单的写一篇关于Go语言对这些非x86处理器的支持情况的文章。 对我们来说，Go的可移植性一直很重要，我们不会过度去适配任何特定的操作系统或架构。Go最初的开源版本包括对两种操作系统（Linux和MacOS...</description></item><item><title>一文告诉你神奇的Go内建函数源码在哪里</title><link>https://tonybai.com/2020/12/17/where-is-the-source-of-builtin-functions/</link><pubDate>Thu, 17 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/17/where-is-the-source-of-builtin-functions/</guid><description>&amp;gt; Go内建函数源码，我好像在哪里见过你。 – 佚名 1\. 何为Go内建函数 众所周知，Go是最简单的主流编程语言之一，截至Go 1.15版本，Go语言的关键字的规模依旧保持在25个： 很多刚入门的gopher可能会问：像bool、byte、error、true、iota甚至int都难道都不是关键字？没错！和其他语言不同，这些**标识符**并不是关键字，在Go中它们被称为**预定义标识符**。这...</description></item><item><title>如何查看历史版本的Go文档？嘘！答案我只告诉你！</title><link>https://tonybai.com/2020/12/15/how-to-see-the-manual-of-go-history-version/</link><pubDate>Tue, 15 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/15/how-to-see-the-manual-of-go-history-version/</guid><description>Go语言自开源至今已经11个年头了！截至本文发稿时，目前最新的Go版本为1.15，Go核心开发团队正紧锣密鼓的进行着Go 1.16版本的开发（现阶段主要是修复bug），该版本将在2021年2月份正式发布。 Go以“自带电池(battery included)”而为人所知，除了Go标准库的全面和强大之外，Go工具链的丰富和易用在主流编程语言中也是位列“执牛耳者”之列的，而Go文档查看工具就在Go工具...</description></item><item><title>Go 1.16新功能特性不完全前瞻</title><link>https://tonybai.com/2020/12/12/a-forward-look-to-new-feature-of-go-1-16/</link><pubDate>Sat, 12 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/12/a-forward-look-to-new-feature-of-go-1-16/</guid><description>2020年最后一个购物狂欢，双十二购物节“Gopher部落”知识星球推出双十二优惠！本年度最低折扣仅限今天一天。笔者建立“Gopher部落”旨在建立一个高质量的Go语言技术精品社区，持续不断的高质量技术资料分享，让加入的星友每天都有新收获！欢迎大家加入！ Go 1.16将于2021年2月发布。目前已经进入freeze状态，即不再接受新feature，仅fix bug、编写文档和接受安全更新等。 目...</description></item><item><title>Go函数调用链跟踪的一种实现思路</title><link>https://tonybai.com/2020/12/10/a-kind-of-thinking-about-how-to-trace-function-call-chain/</link><pubDate>Thu, 10 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/10/a-kind-of-thinking-about-how-to-trace-function-call-chain/</guid><description>这篇文章的初衷是想解答知乎上的一位知友提出的问题。没想到完成一种实现后，这个问题居然被删除了。那么既然实现了，就分享出来吧。问题的原文找不到了，问题大致是这样的： 一个程序中存在多个函数调用链都调用了函数D： A1 -&amp;gt; B1 &amp;gt; C1 -&amp;gt; D A2 -&amp;gt; B2 &amp;gt; C2 -&amp;gt; D A3 -&amp;gt; B3 -&amp;gt; C3 -&amp;gt; D ... ... 那么，如果某次函数D被调用时出现了问题，那么怎么知道这个D...</description></item><item><title>vendor目录是否需要提交到代码库中？答案全在这一篇</title><link>https://tonybai.com/2020/12/03/should-you-commit-the-vendor-folder-in-go/</link><pubDate>Thu, 03 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/03/should-you-commit-the-vendor-folder-in-go/</guid><description>如果您还在使用vendor机制管理依赖包，那么说明您肯定是处于下面两种情况之一！ * 还工作在传统的GOPATH模式下(使用Go 1.10及之前版本；或Go 1.11及之后版本，但GO111MODULE=off)，利用vendor管理目标包的特定依赖； * 工作在go module模式下，但仍然利用vendor管理目标module的特定依赖并使用go build -mod=vendor来构建。 那...</description></item><item><title>Go是编程语言世界的“特斯拉”</title><link>https://tonybai.com/2020/12/01/go-is-the-tesla-of-programming-world/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/12/01/go-is-the-tesla-of-programming-world/</guid><description>Go技术专栏“改善Go语⾔编程质量的50个有效实践”正在慕课网火热热销中！本专栏主要满足广大gopher关于Go语言进阶的需求，围绕如何写出地道且高质量Go代码给出50条有效实践建议，上线后收到一致好评！78元简直就是白菜价，简直就是白piao! 欢迎大家订阅！ 本文翻译自《GO — The TESLA Of Programming World》 – https://medium.com/glob...</description></item><item><title>一文告诉你如何抢先体验Go泛型</title><link>https://tonybai.com/2020/11/28/httpstonybai-com20201128how-to-experience-go-generics-first/</link><pubDate>Sat, 28 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/28/httpstonybai-com20201128how-to-experience-go-generics-first/</guid><description>本文首发于我主持的“Gopher部落”知识星球，欢迎大家加入星球，一起学习Go语言！年底前8.8折优惠，不要错过哦！ 2020年11月22日，Go核心开发团队技术负责人Russ Cox在golang-dev论坛上确认了Go泛型将在Go 1.18落地(2022.2)： 这对于那些迫切期盼go加入泛型的gopher来说无疑是一个重大利好消息！不过，泛型是把双刃剑！泛型的加入势必会让Go语言的复杂性大幅...</description></item><item><title>一文搞懂Go语言中的切片排序</title><link>https://tonybai.com/2020/11/26/slice-sort-in-go/</link><pubDate>Thu, 26 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/26/slice-sort-in-go/</guid><description>本文首发于“Gopher部落”知识星球！ **切片**是Go语言中引入的用于在大多数场合替代数组的语法元素。切片是长度可变的同类型元素序列，它不支持存储不同类型的元素，当然如果你非用**sl := \[\]interface{}{“hello”, 11, 3.14}**来抬杠^\_^，那就另当别论。 **有序列的地方就有排序的需求**。在各种排序算法都已经成熟的今天，我们完全可以针对特定元素类型的...</description></item><item><title>“Gopher部落”知识星球开球了</title><link>https://tonybai.com/2020/11/22/zssq-gopher-tribe-born/</link><pubDate>Sun, 22 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/22/zssq-gopher-tribe-born/</guid><description>考虑了很久自己要不要开一个知识星球？自己并不擅长社群运营，但 * 自己的技术内容输出档次又是不错的且是持续的，能让一定范围的朋友感觉是有价值的； * 面对大家的问题，相信自己的知识和经验储备也能给出很具参考价值的答案； * 并且这样的一个知识付费的产品还能反过来督促自己输出更多、更有价值的内容，何乐而不为！ 于是鄙人下载了**知识星球**的app，大胆地点击了“创建星球”，**“Gopher部落”...</description></item><item><title>没有VPS搭建govanityurls服务？别急！你依然可以自定义Go包导入路径</title><link>https://tonybai.com/2020/11/15/another-approach-to-customize-package-import-path/</link><pubDate>Sun, 15 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/15/another-approach-to-customize-package-import-path/</guid><description>我们见到的Go包的导入路径常常以github.com、bitbucket.org等代码托管站点的域名为前缀，这样的包导入路径有一个问题，那就是**当Go包的托管站点发生变更时(比如从github.om迁移到bitbucket.org或gitlab.com)，该包的使用者需要更新包的导入路径**。当然，在支持go module+GOPROXY的情况下，如果使用者不再升级包版本，他/她完全可以继续使用...</description></item><item><title>HashiCorp联合创始人：Go是成功且无悔的选择</title><link>https://tonybai.com/2020/11/13/go-is-a-successful-and-zero-regret-choice-for-us-by-hashicorp-founder/</link><pubDate>Fri, 13 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/13/go-is-a-successful-and-zero-regret-choice-for-us-by-hashicorp-founder/</guid><description>提到HashiCorp这个公司，可能很多人都没听说过。但提到vagrant、consul、nomad、terraform或者vault，那么你一定对这些工具或其中之一有所耳闻。这些工具都是HashiCorp这家公司的开源项目。 今年年初，HashiCorp在中国IT圈着实“火”了一把！当时HashiCorp宣布旗下软件禁止在中国区销售，这让很多重度依赖欧美主导的开源软件的国内大厂、小厂、传统IT公...</description></item><item><title>Go，11周年</title><link>https://tonybai.com/2020/11/11/go-opensource-11-years/</link><pubDate>Wed, 11 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/11/go-opensource-11-years/</guid><description>本文翻译自Go官方博客文章《Eleven Years of Go》，原作者：Russ Cox。 今天，我们一起庆祝Go语言正式开业发布11周年。去年的“Go turning 10”周年庆典聚会似乎已成为久远的回忆。这是艰难的一年，但我们一直保持了Go开发的步伐，并积累了很多亮点。 在去年11月，我们在庆祝Go 10周年后不久就发布和上线了go.dev和pkg.go.dev站点。 今年2月，Go 1...</description></item><item><title>通过实例深入理解sync.Map的工作原理</title><link>https://tonybai.com/2020/11/10/understand-sync-map-inside-through-examples/</link><pubDate>Tue, 10 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/10/understand-sync-map-inside-through-examples/</guid><description>&amp;gt; 注：本文首发于笔者的个人微信公众号”iamtonybai”，是公号付费文章(价格1元)。首发于2020.10.9日，经过一个月收费期，我觉得将其免费分享出来。如果你觉得文章质量不错，欢迎到首发地址付费支持：https://mp.weixin.qq.com/s/rsDC-6paC5zN4sepWd5LqQ 近期在项目考虑在内存中保存从数据库加载的配置数据的方案，初步考虑采用map来保存。Go语言...</description></item><item><title>重度使用Go的“后遗症“，你有吗？</title><link>https://tonybai.com/2020/11/05/the-sequela-after-being-used-to-writting-code-in-go/</link><pubDate>Thu, 05 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/05/the-sequela-after-being-used-to-writting-code-in-go/</guid><description>有一种未经证实的说法：**Go诞生于C++程序的漫长构建过程中**。如果C++编译很快，那么Robert Griesemer、Rob Pike和Ken Thompson这三位大佬也没有闲暇时间一起喝着咖啡并决定是时候设计一门新语言了。的确，Go语言诞生后，其简洁的语法、极速地构建、新颖的并发结构、体验优良的工具链以及完成度不低的标准库吸引了很多C/C++程序员转型成为Gopher并开始重度使用Go...</description></item><item><title>系统学习Go语言，有这几本书就够了！</title><link>https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/</link><pubDate>Wed, 04 Nov 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/</guid><description>1\. Go语言的发展现状 如果从2007年9月20日那个下午三个“程序员大佬”在谷歌总部的一间办公室里进行的一次有关设计一门新编程语言的讨论算起，那么Go语言已经度过了自己的13个年头了。 Robert Griesemer、Rob Pike和Ken Thompson 如果从2009年11月10日Go语言正式开源发布算起，Go语言也即将迎来自己的第11个生日。 2020年，Go联合创始人Rob P...</description></item><item><title>Go 1.15中值得关注的几个变化</title><link>https://tonybai.com/2020/10/11/some-changes-in-go-1-15/</link><pubDate>Sun, 11 Oct 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/10/11/some-changes-in-go-1-15/</guid><description>Go 1.15版本在8月12日就正式发布了，给我的感觉就是发布的挺痛快^\_^。这种感觉来自与之前版本发布时间的对比：Go 1.13版本发布于当年的9月4日，更早的Go 1.11版本发布于当年的8月25日。 不过这个时间恰与我家二宝出生和老婆月子时期有重叠，每天照顾孩子团团转的我实在抽不出时间研究Go 1.15的变化:(。如今，我逐渐从照顾二宝的工作中脱离出来^\_^，于是“Go x.xx版本值得...</description></item><item><title>官宣：Go专栏“改善Go语言编程质量的50个有效实践”上线了</title><link>https://tonybai.com/2020/09/08/imooc-go-column-is-available/</link><pubDate>Tue, 08 Sep 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/09/08/imooc-go-column-is-available/</guid><description>断断续续写了一年多的Go专栏：《改善Go语言编程质量的50个有效实践》今天终于正式上线了！- https://www.imooc.com/read/87 慕课专栏：《改善Go语言编程质量的50个有效实践》 Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言，支持垃圾回收和轻量级并发，它于2009年11月...</description></item><item><title>Google内部是如何使用Go语言的</title><link>https://tonybai.com/2020/08/30/new-case-studies-about-googles-use-of-go/</link><pubDate>Sun, 30 Aug 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/08/30/new-case-studies-about-googles-use-of-go/</guid><description>Go语言始于2007年9月，当时Robert Griesemer，Ken Thompson和我开始讨论设计一种新语言，以解决我们和Google同事在日常工作中面临的工程挑战。我们当时编写的软件通常是一个网络服务器-一个与数百台其他服务器交互的程序-并且在其生命周期内，成千上万的程序员可能会参与编写和维护它。但是我们当时正在使用的语言似乎没有提供正确的工具来解决我们在这种复杂环境中面临的问题。 因此...</description></item><item><title>又当爸爸了！</title><link>https://tonybai.com/2020/07/29/my-second-daughter-was-born/</link><pubDate>Wed, 29 Jul 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/07/29/my-second-daughter-was-born/</guid><description>2020年7月23日早6点46分，随着我家二宝(小名：七月)的呱呱坠地，**我又当爸爸了**! 图：二宝出生后的第一张照片 距离我家大宝(果果)的出生已经十年了。在这十年间，果果已经出落成一个聪明可爱、灵通剔透、漂亮温柔的大姑娘了，妥妥的是**妈妈的小棉袄，爸爸的小情人:)，姥姥的小粘包，爷爷奶奶的乖孙女**。 图：大宝果果是大姑娘了 但每每当果果提到其同班同学多数都有姐妹或兄弟陪伴上学、上才艺课...</description></item><item><title>基于Markdown格式的电子书生成工具大比拼：gohugo、mdbook和peach</title><link>https://tonybai.com/2020/06/27/gohugo-vs-mdbook-vs-peach/</link><pubDate>Sat, 27 Jun 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/06/27/gohugo-vs-mdbook-vs-peach/</guid><description>基于Markdown格式文件写博客已经很多年了，一直使用的是Wordpress的markdown插件，由于各种遗留原因，一直没有转换到直接使用静态站点的方式。博客文章之间一般来说多是独立篇章，少有关联，即便是写一个系列文章，数量也不会太多。因此，用博客形式来组织书籍章节是不大合适的。“术业有专攻”，我们还得寻找专门用来制作电子书的工具或平台，并且要支持本地安装，支持基于Markdown格式的源数据...</description></item><item><title>Go泛型真的要来了！最早在Go 1.17版本支持</title><link>https://tonybai.com/2020/06/18/the-go-generics-is-coming-and-supported-in-go-1-17-at-the-earliest/</link><pubDate>Thu, 18 Jun 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/06/18/the-go-generics-is-coming-and-supported-in-go-1-17-at-the-earliest/</guid><description>Go官博今晨发表了Go核心团队两位大神Ian Lance Taylor和Go语言之父之一的Robert Griesemer撰写的文章“The Next Step for Generics”，该文介绍了Go泛型(Go Generics)的最新进展和未来计划。 2019年中旬，在Go 1.13版本发布前夕的GopherCon 2019大会上，Ian Lance Taylor代表Go核心团队做了有关Go...</description></item><item><title>亲爱的母校哈工大，100岁生日快乐！</title><link>https://tonybai.com/2020/06/07/hit-100-happy-birthday/</link><pubDate>Sun, 07 Jun 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/06/07/hit-100-happy-birthday/</guid><description>今天是我的母校**哈尔滨工业大学**百年校庆的正日子(1920.6.7~2020.6.7)，这里**祝亲爱的母校哈工大，100岁生日快乐！** 图：哈工大百年生日快乐！ 今年春节前，大学班级群里已经开始策划**“百年校庆，重归母校”**的活动了。由于毕业后还没有机会回母校看看，因此我是十分渴望和同窗四年的兄弟姐妹们一起再回母校追寻曾经的大学校园记忆的。 图：曾经青涩的我们 但不巧的是，新冠疫情爆发...</description></item><item><title>关于xml包在Unmarshal时将 重写为 的问题</title><link>https://tonybai.com/2020/06/04/the-issue-of-go-xml-package-rewrite-carriage-return/</link><pubDate>Thu, 04 Jun 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/06/04/the-issue-of-go-xml-package-rewrite-carriage-return/</guid><description>今年4月份，中国移动、中国电信、中国联通三大运营商联合举行线上发布会，发布了《5G消息白皮书》。所谓5G消息，即传统短信消息（仅能进行文本展示）的升级版，是由GSMA组织制定的RCS(Rich Communication Suite)消息规范所定义。2019年RCS UP（unified profile)更新到2.4版本，并成为了5G终端标准的一部分，该版本也是第一个具备商用能力的版本，为5G消息...</description></item><item><title>果果十周岁了！</title><link>https://tonybai.com/2020/05/03/guoguo-ten-years-old/</link><pubDate>Sun, 03 May 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/05/03/guoguo-ten-years-old/</guid><description>好久没有在我的博客上写关于果果的事情了，因为很多关于果果成长的经历都记录在她自己的博客中了。但今天是她十周岁的生日，是个值得纪念的日子。闺女成长的十年，也是我学习为人父的十年。作为父亲，我发自内心地想说点啥，是回顾，也是感受，亦有些寄语^\_^。 图：果果成长的十年 出生 老婆在2009年7月怀上了果果。那时我们刚刚新婚不久，二人世界还没过够^\_^，小家伙的突然到来还让我们有些“手足无措”。为此...</description></item><item><title>Go语言联合作者Rob Pike专访：Go确实已成为云基础架构的语言</title><link>https://tonybai.com/2020/05/01/rob-pike-interview-go-become-the-language-of-cloud-infrastructure/</link><pubDate>Fri, 01 May 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/05/01/rob-pike-interview-go-become-the-language-of-cloud-infrastructure/</guid><description>&amp;gt; 尽管看到Docker，Kubernetes和用Go编写的云计算的许多其他组件令人欣喜和重要，但也许并不奇怪。Go确实已经成为云基础架构的语言。- Rob Pike，Go编程语言的联合作者 本文翻译自《Rob Pike interview: “Go has indeed become the language of cloud infrastructure”》。 简介 -- 我们与Go编程语言之...</description></item><item><title>后端程序员一定要看的语言大比拼：Java vs. Go vs. Rust</title><link>https://tonybai.com/2020/05/01/comparison-between-java-go-and-rust/</link><pubDate>Fri, 01 May 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/05/01/comparison-between-java-go-and-rust/</guid><description>这是Java，Go和Rust之间的比较。这不是基准测试，更多是对可执行文件大小、内存使用率、CPU使用率、运行时要求等的比较，当然还有一个小的基准测试，可以看到每秒处理的请求数量，我将尝试对这些数字进行有意义的解读。 为了尝试尽可能公平比较，我在此比较中使用每种语言编写了一个Web服务。Web服务非常简单，它提供了三个REST服务端点(endpoint)。 Web服务提供的服务端点 这三个Web服...</description></item><item><title>go protobuf v1败给了gogo protobuf，那v2呢？</title><link>https://tonybai.com/2020/04/24/gogoprotobuf-vs-goprotobuf-v1-and-v2/</link><pubDate>Fri, 24 Apr 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/04/24/gogoprotobuf-vs-goprotobuf-v1-and-v2/</guid><description>近期的一个项目有对结构化数据进行序列化和反序列化的需求，该项目具有**performance critical**属性，因此我们在选择序列化库包时是要考虑包的性能的。 github上有一个有关Go序列化方法性能比较的repo：go\_serialization\_benchmarks，这个repo横向比较了数十种数据序列化方法的正确性、性能、内存分配等，并给出了一个结论：推荐**gogo prot...</description></item><item><title>图解git原理的几个关键概念</title><link>https://tonybai.com/2020/04/07/illustrated-tale-of-git-internal-key-concepts/</link><pubDate>Tue, 07 Apr 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/04/07/illustrated-tale-of-git-internal-key-concepts/</guid><description>git是那个“爱骂人”的Linux之父Linus Torvalds继Linux内核后奉献给全世界程序员的第二个礼物（不能确定已经逐渐老去的Torvalds能否迸发第三春，第三次给我们一个超大惊喜^\_^）。这里再强调一下，git读作**/git/**，而不是**/dʒit/**。 在诞生十余载后(2005年发布第一版)，**git**毫无争议地成为了程序员版本管理工具的首选，它改变了全世界程序员的...</description></item><item><title>Hello，WireGuard</title><link>https://tonybai.com/2020/03/29/hello-wireguard/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/29/hello-wireguard/</guid><description>2020年1月28日，Linux之父Linus Torvalds正式将WireGuard merge到Linux 5.6版本内核主线： 图：WireGuard被加入linux kernel 5.6主线的commit log 这意味着在Linux 5.6内核发布时，linux在内核层面将**原生**支持一个新的VPN协议栈：WireGuard。 图：WireGuard Logo 一. VPN与Wir...</description></item><item><title>图解Go运行时调度器</title><link>https://tonybai.com/2020/03/21/illustrated-tales-of-go-runtime-scheduler/</link><pubDate>Sat, 21 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/21/illustrated-tales-of-go-runtime-scheduler/</guid><description>本文翻译自《Illustrated Tales of Go Runtime Scheduler》。 &amp;gt; 译注：原文章结构有些乱，笔者自行在译文中增加了一些分级标题，让结构显得更清晰一些:)。 多goroutines形式的Go并发是编写现代并发软件的一种非常方便的方法，但是您的Go程序是如何高效地运行这些goroutines的呢？ 在这篇文章中，我们将深入Go运行时底层，从设计角度了解Go运行时调度...</description></item><item><title>使用minio搭建高性能对象存储-第一部分：原型</title><link>https://tonybai.com/2020/03/16/build-high-performance-object-storage-with-minio-part1-prototype/</link><pubDate>Mon, 16 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/16/build-high-performance-object-storage-with-minio-part1-prototype/</guid><description>近期参与了一个项目，该项目有存储大量图片、短视频、音频等非结构化数据的需求。于是我优先在Go社区寻找能满足这类需求的开源项目，minio就这样进入了我的视野。 图：minio logo 其实三年前我就知道了minio，并还下载玩(研)耍(究)了一番，但那时minio的成熟程度与今天相比还是相差较远的(当时需求简单，于是选择了较为熟悉的weedfs)。而如今的minio在github上收获了广泛的关...</description></item><item><title>可视化Go内存管理</title><link>https://tonybai.com/2020/03/10/visualizing-memory-management-in-golang/</link><pubDate>Tue, 10 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/10/visualizing-memory-management-in-golang/</guid><description>本文翻译自《Visualizing memory management in Golang》。 “内存管理”系列的一部分 在这个由多部分组成的系列文章中，我旨在揭示内存管理背后的概念，并对某些现代编程语言的内存管理机制做更深入的探究。我希望该系列文章可以使您对这些语言在内存管理方面正在发生的事情能有所了解。 在本章中，我们将研究Go编程语言（Golang）的内存管理。和C/C++、Rust等一样，...</description></item><item><title>小心go.mod中的go directive</title><link>https://tonybai.com/2020/03/09/take-care-of-the-go-directive-in-go-dot-mod/</link><pubDate>Mon, 09 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/09/take-care-of-the-go-directive-in-go-dot-mod/</guid><description>在撰写《Go 1.14中值得关注的几个变化》这篇文章时，我使用的试验环境为我的2019款 MacPro，OS版本：10.14.6。我通过下载 `https://dl.google.com/go/go1.14.darwin-amd64.tar.gz`并解压的方式安装的Go 1.14版本。在我的工作环境中，我通常通过变更`GOROOT`的方式来使用不同的Go版本。但在进行Go 1.14新增的overl...</description></item><item><title>Go 1.14中值得关注的几个变化</title><link>https://tonybai.com/2020/03/08/some-changes-in-go-1-14/</link><pubDate>Sun, 08 Mar 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/03/08/some-changes-in-go-1-14/</guid><description>可能是得益于2020年2月26日Go 1.14的发布，在2020年3月份的TIOBE编程语言排行榜上，Go重新进入TOP 10，而去年同期Go仅排行在第18位。虽然Go语言以及其他主流语言在榜单上的“上蹿下跳”让这个榜单的权威性饱受质疑:)，但Go在这样的一个时间节点能进入TOP 10，对于Gopher和Go社区来说，总还是一个不错的结果。并且在一定层度上说明：Go在努力耕耘十年后，已经在世界主流...</description></item><item><title>Go语言之禅</title><link>https://tonybai.com/2020/02/24/the-zen-of-go/</link><pubDate>Mon, 24 Feb 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/02/24/the-zen-of-go/</guid><description>本文翻译自Go社区知名Gopher和博主Dave Cheney的文章《The Zen of Go》。 本文来自我在GopherCon Israel 2020上的演讲。文章很长:) 如果您希望阅读精简版，请移步到the-zen-of-go.netlify.com。 &amp;gt; 该演讲视频还未上线。如上线，我会把它更新到本文中的。 我应该如何编写出好代码？ 我最近一直在思考很多事情，每当反思自己的工作成果时，...</description></item><item><title>图解Go内存分配器</title><link>https://tonybai.com/2020/02/20/a-visual-guide-to-golang-memory-allocator-from-ground-up/</link><pubDate>Thu, 20 Feb 2020 00:00:00 +0800</pubDate><guid>https://tonybai.com/2020/02/20/a-visual-guide-to-golang-memory-allocator-from-ground-up/</guid><description>本文翻译自《A visual guide to Go Memory Allocator from scratch (Golang)》。 当我刚开始尝试了解Go的内存分配器时，我发现这真是一件可以令人发疯的事情，因为所有事情似乎都像一个神秘的黑盒(让我无从下手)。由于几乎所有技术魔法都隐藏在抽象之下，因此您需要逐一剥离这些抽象层才能理解它们。 在这篇文章中，我们就来这么做(剥离抽象层去了解隐藏在其下...</description></item><item><title>Go modules：最小版本选择</title><link>https://tonybai.com/2019/12/21/go-modules-minimal-version-selection/</link><pubDate>Sat, 21 Dec 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/12/21/go-modules-minimal-version-selection/</guid><description>一. 介绍 ----- 每个依赖管理解决方案都必须解决选择依赖项版本的问题。当前存在的许多版本选择算法都试图识别任何依赖项的“最新最大(latest greatest)”版本。如果您认为语义版本控制(sematic versioning)将被正确应用并且这种社会契约得到遵守，那么这是有道理的。在这样的情况下，依赖项的“最新最大”版本应该是最稳定和安全的版本，并且应与较早版本具有向后兼容性。至少在相...</description></item><item><title>Kubernetes Deployment故障排除图解指南</title><link>https://tonybai.com/2019/12/08/k8s-deployment-troubleshooting/</link><pubDate>Sun, 08 Dec 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/12/08/k8s-deployment-troubleshooting/</guid><description>* * * 下面是一个示意图，可帮助你调试Kubernetes Deployment（你可以在此处下载它的PDF版本）。 当你希望在Kubernetes中部署应用程序时，你通常会定义三个组件： * 一个**Deployment** – 这是一份用于创建你的应用程序的Pod副本的”食谱”； * 一个**Service** – 一个内部负载均衡器，用于将流量路由到内部的Pod上； * 一个**Ingr...</description></item><item><title>计算重现性：一些挑战</title><link>https://tonybai.com/2019/11/19/computational-reproducibility-some-challenges/</link><pubDate>Tue, 19 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/19/computational-reproducibility-some-challenges/</guid><description>&amp;gt; 写在Go语言开源十周年的日子 by Rob Pike 近期，有人对科学结果的可重现性进行了讨论，并得出了一些让人沮丧的结论。一项研究表明：这种可重现性只有62％。 在某些领域，情况可能更糟。任何依赖于计算的结果都面临着其编程环境不断变化的巨大风险：十年前编写的程序如果没有更改，今天构建成功的机会几乎微乎其微，更不用说运行或正确运行了。 这种担忧并不普遍，但正在增长。一个标志就是**十年重现性挑...</description></item><item><title>Go官方发布的go.dev给gopher们带来了什么</title><link>https://tonybai.com/2019/11/14/what-the-godev-website-bring-to-gophers/</link><pubDate>Thu, 14 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/14/what-the-godev-website-bring-to-gophers/</guid><description>众所周知，Go是一个诞生于Google内部的编程语言，它在2009年11月份开源，在开源后立即受到了来自全世界开发人员的关注与贡献。但初期的Go语言的发展依旧是由Go核心团队的若干leader决定的，这种类“民主集中制”的方法延续了若干年。直到Go核心团队逐渐意识到Go应该更多倾听社区的声音，并让更多的gopher参与到Go项目的开发和贡献中来，甚至影响和决定一些语言特定的演化。于是Go团队开始特...</description></item><item><title>Go语言开源十周年</title><link>https://tonybai.com/2019/11/09/go-opensource-10-years/</link><pubDate>Sat, 09 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/09/go-opensource-10-years/</guid><description>本文翻译自Go官方博客上Russ Cox代表Go核心团队发表的“Go Turns 10″一文。 **生日快乐，Go！** 这个周末，我们庆祝Go正式对外发布10周年，即Go作为开源编程语言和构建现代网络软件生态系统的10周年诞辰。 为了纪念这一时刻，Go gopher的创建者Renee French(用下面的新作)描绘了这个令人愉快的场景： 庆祝Go十周年让我回想起2009年11月上旬，那时我们正...</description></item><item><title>Go语言项目的安全评估技术</title><link>https://tonybai.com/2019/11/08/security-assessment-techniques-for-go-projects/</link><pubDate>Fri, 08 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/08/security-assessment-techniques-for-go-projects/</guid><description>在今年夏天我们对Kubernetes的评估成功之后，我们收到了大量Go项目的安全评估需求。为此，我们将在其他编译语言中使用过的安全评估技术和策略调整适配到多个Go项目中。 我们从了解语言的设计开始，识别出开发人员可能无法完全理解语言语义特性的地方。多数这些被误解的语义来自我们向客户报告的调查结果以及对语言本身的独立研究。尽管不是详尽无遗，但其中一些问题领域包括作用域、协程、错误处理和依赖管理。值得...</description></item><item><title>图解中文字符编码-Go语言例解</title><link>https://tonybai.com/2019/11/07/non-ascii-character-encoding-illustrated/</link><pubDate>Thu, 07 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/07/non-ascii-character-encoding-illustrated/</guid><description>今天几个同事在处理一个有关中文字符编码的问题，感觉他们对字符编码这件事依然理解不够透彻。这里用图文方式对中文字符编码做一个简要的解释，例子使用Go语言。 我们知道每个英文字母和数字在计算机中都会对应一个字节，或者说用一个字节来表示，这就是最初的ASCII码。但是随着计算机在全球范围内的广泛使用，非英语国家也要在计算机使用自己的字符，于是出现了字符集“百花齐放”的情况，我国在早期也颁布了自己的中文字...</description></item><item><title>Go语言的遗产</title><link>https://tonybai.com/2019/11/04/the-legacy-of-go/</link><pubDate>Mon, 04 Nov 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/11/04/the-legacy-of-go/</guid><description>本文是gohugo作者Steve Francia在意大利佛罗伦萨举办的GoLab上分享的闭幕演讲讲稿的文字版，该演讲的主题为”Go的遗产”。该演讲讨论了Go语言继承的遗产，以及它是如何尊重这些遗产的，并在最后总结了Go希望留给后来者的遗产。 **演讲胶片** &amp;gt; 我们有责任保留好留给我们的遗产，并留下值得我们子孙后代继承的遗产 – 克里斯汀·格雷格（Christine Gregoire） 1\. ...</description></item><item><title>Go 1.13中值得关注的几个变化</title><link>https://tonybai.com/2019/10/27/some-changes-in-go-1-13/</link><pubDate>Sun, 27 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/27/some-changes-in-go-1-13/</guid><description>2019年对于Go语言来说也是一个重要的年份，因为在2019年的11月10日，Go即将迎来其开源10周年的纪念日。在这个重要日子的前夕，在GopherCon 2019大会后，Go项目组在2019.9.4日发布了Go 1.13版本。 这是自2017年GopherCon大会上Russ Cox做“Toward Go 2″主题演讲以来Go项目发布的第四个版本（前三个分别是：go 1.10、go 1.11和...</description></item><item><title>如何在Ubuntu 18.04 Server上部署Kubernetes集群</title><link>https://tonybai.com/2019/10/21/how-to-deploy-a-kubernetes-cluster-with-ubuntu-server-18-04/</link><pubDate>Mon, 21 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/21/how-to-deploy-a-kubernetes-cluster-with-ubuntu-server-18-04/</guid><description>如今，你几乎不可避免地会听到来自Kubernetes的发声，你更没有充分的理由拒绝去听。 一旦一切就绪，这个强大的容器编排工具将以您难以想象的敏捷性来扩展您的操作。 为了实际使用Kubernetes进行部署和管理容器，您首先必须创建Kubernetes服务器集群。 一旦集群建立后，您就能够部署，扩展和管理您的容器化应用程序了。 在Ubuntu Server 18.04的帮助下，我将引导您完成此过程...</description></item><item><title>Go 1.13中的错误处理</title><link>https://tonybai.com/2019/10/18/errors-handling-in-go-1-13/</link><pubDate>Fri, 18 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/18/errors-handling-in-go-1-13/</guid><description>介绍 -- 在过去的十年中， Go的errors are values的理念在编码实践中运行得也很良好。尽管标准库对错误处理的的支持很少（只有errors.New和fmt.Errorf函数可以用来构造仅包含字符串消息的错误），但是内置的error接口使Go程序员可以添加所需的任何信息。它所需要的只是一个实现Error方法的类型： type QueryError struct { Query str...</description></item><item><title>Uber Go语言编码规范</title><link>https://tonybai.com/2019/10/12/uber-go-style-guide/</link><pubDate>Sat, 12 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/12/uber-go-style-guide/</guid><description>Uber是世界领先的生活出行服务提供商，也是Go语言的早期adopter，根据Uber工程博客的内容，大致可以判断出Go语言在Uber内部扮演了十分重要的角色。Uber内部的Go语言工程实践也是硕果累累，有大量Go实现的内部工具被Uber开源到github上，诸如被Gopher圈熟知的zap、jaeger等。2018年年末Uber将内部的Go风格规范开源到github，经过一年的积累和更新，该规范...</description></item><item><title>在Kubernetes上如何基于自定义指标实现应用的自动缩放</title><link>https://tonybai.com/2019/10/11/autoscaling-apps-on-kubernetes/</link><pubDate>Fri, 11 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/11/autoscaling-apps-on-kubernetes/</guid><description>如何在Kubernetes上实现应用缩放？ --------------------- 使用静态配置将应用程序部署到生产环境并不是最佳选择。 流量模式可能会快速变化，应用程序应该能够实现自适应： * 当需求增加时，应用程序应扩大规模（增加副本数）以保持响应速度。 * 当需求减少时，应用程序应缩小规模（减少副本数量），以免浪费资源。 Kubernetes以Horizontal Pod Autosca...</description></item><item><title>如何在Go语言中使用Websockets：最佳工具与行动指南</title><link>https://tonybai.com/2019/09/28/how-to-build-websockets-in-go/</link><pubDate>Sat, 28 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/28/how-to-build-websockets-in-go/</guid><description>如今，在不刷新页面的情况下发送消息并获得即时响应在我们看来是理所当然的事情。但是曾几何时，启用实时功能对开发人员来说是一个真正的挑战。开发社区在HTTP长轮询(http long polling)和AJAX上走了很长一段路，但终于还是找到了一种构建真正的实时应用程序的解决方案。 该解决方案以WebSockets的形式出现，这使得在用户浏览器和服务器之间开启一个交互式会话成为可能。WebSocket...</description></item><item><title>Go语言包管理简史</title><link>https://tonybai.com/2019/09/21/brief-history-of-go-package-management/</link><pubDate>Sat, 21 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/21/brief-history-of-go-package-management/</guid><description>包管理是Go一直被诟病做得不好的功能之一。先前版本（go 1.11之前）的主要缺点之一是go get是缺乏对依赖包版本的管理和对可复制构建(reproducible build)的支持。Go社区已经开发了一些包管理器和工具作为版本化包依赖的事实标准解决方案，如glide，dep以及一些辅助工具等。 &amp;gt; “我在生产构建中使用go get。” – 没有人这么说过。 Go语言的包管理实现可追溯到Goog...</description></item><item><title>Go语言回顾：从Go 1.0到Go 1.13</title><link>https://tonybai.com/2019/09/07/go-retrospective/</link><pubDate>Sat, 07 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/07/go-retrospective/</guid><description>Go 1.13版本在2019.9.3正式发布！国外的Gopher Vincent Blanchon发表了一篇文章《Go: Retrospective》(科学上网阅读)，对Go从1.0版本到1.13版本做了简要的回顾，这里是那篇文章的译文。 对于每一位Go开发者来说，Go语言的演化历程是必须要知道的事情。了解这些横跨年份发布的大版本的主要变化将有助于Gopher理解Go语言的发展理念以及该语言每个版...</description></item><item><title>构建Kubernetes集群 – 选择工作节点大小</title><link>https://tonybai.com/2019/09/05/kubernetes-node-size/</link><pubDate>Thu, 05 Sep 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/09/05/kubernetes-node-size/</guid><description>&amp;gt; 近期learnk8s网站上发布了一些关于k8s的好文章，这里搬运并翻译了一些，供大家参考。 本文翻译自《Architecting Kubernetes clusters — choosing a worker node size》。 **当您创建Kubernetes集群时，冒出的第一个问题之一是：“我应该使用哪种类型的工作节点以及需要多少个这样的节点”。** 如果您正在构建在内部部署的k8s集...</description></item><item><title>提高您的kubectl生产力（第三部分）：集群上下文切换、使用别名减少输入和插件扩展</title><link>https://tonybai.com/2019/08/31/kubectl-productivity-part3/</link><pubDate>Sat, 31 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/31/kubectl-productivity-part3/</guid><description>本文翻译自《Boosting your kubectl productivity》。 第一部分：什么是kubectl？ 第二部分：命令完成、资源规范快速查看和自定义列输出格式什么是kubectl？ 4\. 轻松切换集群和名称空间 --------------- 当kubectl必须向Kubernetes API发出请求时，它会读取系统上所谓的kubeconfig文件，以获取它需要访问的所有连接参数...</description></item><item><title>提高您的kubectl生产力（第二部分）：命令完成、资源规范快速查看和自定义列输出格式</title><link>https://tonybai.com/2019/08/30/kubectl-productivity-part2/</link><pubDate>Fri, 30 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/30/kubectl-productivity-part2/</guid><description>本文翻译自《Boosting your kubectl productivity》。 第一部分：什么是kubectl？ 1\. 通过命令完成(command completion)减少输入 ---------------------------------- 命令完成是提高你的kubectl生产力的最有用但经常被忽视的技巧之一。 命令完成允许您使用Tab键自动完成kubectl命令的各个部分。这适...</description></item><item><title>提高您的kubectl生产力（第一部分）：什么是kubectl</title><link>https://tonybai.com/2019/08/29/kubectl-productivity-part1/</link><pubDate>Thu, 29 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/29/kubectl-productivity-part1/</guid><description>本文翻译自《Boosting your kubectl productivity》。 如果您使用Kubernetes，那么kubectl可能是您最常用的工具之一。每当您花费大量时间使用某种特定工具时，值得深入了解并了解如何有效地使用它。 本文包含一系列提示和技巧，使您对kubectl的使用更加高效和有效。同时，它旨在加深您对Kubernetes各方面工作的理解。 本文的目标是让您在Kubernet...</description></item><item><title>增值类业务短信收发协议介绍</title><link>https://tonybai.com/2019/08/21/introduction-on-tech-protocol-of-transfering-value-added-sms/</link><pubDate>Wed, 21 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/21/introduction-on-tech-protocol-of-transfering-value-added-sms/</guid><description>在上一篇《增值类短信业务图文简介》中，我们介绍了什么是增值类短信业务以及增值类短信的收发流程。在这篇中我们将进一步深入介绍增值类短信收发协议的相关内容，不过重点放在短信内容编码对短信呈现的影响。 从近两年大火的5G我们可以看到，在移动通信领域**规范和标准先行**。虽然第一条短信在1992年在实验室就被发了出来，但是这离真正的短信商用还有很长一段距离。之后作为GSM(Global System f...</description></item><item><title>增值类短信业务图文简介</title><link>https://tonybai.com/2019/08/20/introduction-to-value-added-sms-in-graphic-form/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/08/20/introduction-to-value-added-sms-in-graphic-form/</guid><description>以前一提到短信（Short Message），人们会想到“拇指族（在社交移动APP诞生前，专指用手机高频发短信的一个群体）”、“拜年短信”。现在再提到短信，人们想到的变成了“验证码”、“垃圾短信”以及“我好久不发短信了”。短信这一信息承载的媒介是伴随着移动通信工具一并诞生的，它是**“古老的”** – 1992年，22岁的加大拿工程师Neil Papworth用电脑给同事Richard Jarvi...</description></item><item><title>图解3GPP规范文档组织结构与编号规则</title><link>https://tonybai.com/2019/07/25/illustrate-3gpp-spec-docs-structure-and-numbering/</link><pubDate>Thu, 25 Jul 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/07/25/illustrate-3gpp-spec-docs-structure-and-numbering/</guid><description>3GPP组织（3rd Generation Partnership Project）是全球移动通信业标准制定之执牛耳者。其最初的工作范围是为第三代移动通信系统制定全球适用的技术规范(TS，Technical Specification)和技术报告(TR，Technical Report)，确保不同厂商之间实现无缝互操作以及为移动通信提供其所必需的全球规模，从而达成实现GSM由2G网络到3G网络的平...</description></item><item><title>使用git操作svn仓库</title><link>https://tonybai.com/2019/06/25/using-git-with-svn-repo/</link><pubDate>Tue, 25 Jun 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/06/25/using-git-with-svn-repo/</guid><description>如今，虽然Git已经大行其道，但是仍有很多IT公司和组织依旧在使用集中式的版本控制系统subversion，尤其是一些传统软件公司，他们倾向于集中式的联网开发。如果你是一个Git fans，并且你要是遇到代码仓库依旧是使用subversion进行版本控制的情况，你又该如何施展呢？ 其实git很早就支持与subversion repo的互操作了，2011年我就曾写过一篇《小试git-svn》的博文，...</description></item><item><title>Go module机制下升级major版本号的实践</title><link>https://tonybai.com/2019/06/03/the-practice-of-upgrading-major-version-under-go-module/</link><pubDate>Mon, 03 Jun 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/06/03/the-practice-of-upgrading-major-version-under-go-module/</guid><description>Go module机制在Go 1.11版本引入，虽然也伴随着不小的质疑声，但总体上Go社区多数Gopher是接受go module的，很多标杆式的Go项目(比如kubernetes、kubernetes client-go等)也都逐渐转向了Go module，并且Gopher也在向core team反馈了自己的建议和问题。Go core team也在go module最初设计的基础上持续进行着改进...</description></item><item><title>Go正走在成为下一个企业级编程语言的轨道上</title><link>https://tonybai.com/2019/05/03/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language/</link><pubDate>Fri, 03 May 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/05/03/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language/</guid><description>发展演化了十年的Go语言已经被证明了是云计算时代的首选编程语言，但Go的用武之地显然不局限于此。Kevin Goslar近期在Hacker Noon发表了一篇名为：《Go is on a Trajectory to Become the Next Enterprise Programming Language》的文章，阐述了Go可能成为下一个企业编程语言的理由，这里是那篇文章的中文译文，分享给大家...</description></item><item><title>使用nomad在weave网络中部署工作负载</title><link>https://tonybai.com/2019/04/20/deploy-workload-in-weave-network-using-nomad/</link><pubDate>Sat, 20 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/20/deploy-workload-in-weave-network-using-nomad/</guid><description>当初Kubernetes网络的设计目标是**使得开发者使用pod时在网络这一层面可以像使用传统物理主机或虚拟机一样**。具体的基本要求如下： * 所有pod间均应可以在无需NAT的情况下直接通信； * 所有集群节点与所有集群的Pod之间均应可以在无需NAT的情况下直接通信； * 容器自身的地址和其他pod看到的它的地址是同一个地址； 按照这样的要求，集群中的每个pod都在一个平坦的、共享网络命名空...</description></item><item><title>Kubernetes网络插件（CNI）基准测试的最新结果</title><link>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/</guid><description>本文翻译自Alexis Ducastel的文章《Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: April 2019)》。 本文是我之前的基准测试的最新更新，这次测试在最新版Kubernetes 1.14上运行，其中CNI版本在2019年4月更新。 首先，非常感谢Cilium...</description></item><item><title>使用nomad实现工作负载版本升级</title><link>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</link><pubDate>Tue, 09 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/</guid><description>书接上文。 在《使用nomad实现集群管理和微服务部署调度》一文中，我们介绍了使用nomad进行集群管理和工作负载调度的轻量级方案（相较于Kubernetes方案）。在本文中，我们继续对方案进行延展，介绍一下在nomad集群中工作负载版本升级的一些常用模式和实现方法，包括滚动升级、蓝绿部署和金丝雀部署。 一. 初始状态 ------- 这里我们利用基于tcp+sni路由(listener端口为99...</description></item><item><title>记一次go panic问题的解决过程</title><link>https://tonybai.com/2019/04/04/notes-about-fixing-a-go-panic-problem/</link><pubDate>Thu, 04 Apr 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/04/04/notes-about-fixing-a-go-panic-problem/</guid><description>一. Panic问题概述 ------------ 本周收到客户在bugclose上填写的一个issue：添加一个下发通道后，pushd程序panic并退出了！程序panic时输出的stacktrace信息摘录如下： panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: se...</description></item><item><title>使用nomad实现集群管理和微服务部署调度</title><link>https://tonybai.com/2019/03/30/cluster-management-and-microservice-deployment-and-scheduled-by-nomad/</link><pubDate>Sat, 30 Mar 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/03/30/cluster-management-and-microservice-deployment-and-scheduled-by-nomad/</guid><description>在“云原生”、“容器化”、“微服务”、“服务网格”等概念大行其道的今天，一提到集群管理、容器工作负载调度，人们首先想到的是Kubernetes。 Kubernetes经过多年的发展，目前已经成为了云原生计算平台的事实标准，得到了诸如谷歌、微软、红帽、亚马逊、IBM、阿里等大厂的大力支持，各大云计算提供商也都提供了专属Kubernetes集群服务。开发人员可以**一键**在这些大厂的云上创建k8s集...</description></item><item><title>Go 1.12中值得关注的几个变化</title><link>https://tonybai.com/2019/03/02/some-changes-in-go-1-12/</link><pubDate>Sat, 02 Mar 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/03/02/some-changes-in-go-1-12/</guid><description>Go team如期在2月末发布了Go 1.12版本。从Go 1.12的Release Notes粗略来看，这个版本相较于之前增加了go modules机制、WebAssembly支持的Go 1.11，变化略“小”。这也给下一个Go 1.13版本预留了足够的“惊喜”空间:)。从目前的plan来看，Go 1.13很可能落地的包括：Go2的几个proposals：Go 2 number literals...</description></item><item><title>YAML入门：以创建一个Kubernetes deployment为例</title><link>https://tonybai.com/2019/02/25/introduction-to-yaml-creating-a-kubernetes-deployment/</link><pubDate>Mon, 25 Feb 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/02/25/introduction-to-yaml-creating-a-kubernetes-deployment/</guid><description>YAML语言似乎已经成为了事实标准的“云配置”语言，无论是容器事实标准docker(主要是docker-compose使用)、SDN，还是容器编排王者kubernetes，又或是虚拟机时代的王者openstack采用的配置文件都是yaml文件格式。不过需要承认的是我个人最初刚接触yaml时还不是很适应（个人更适应json），在后续运维kubernetes时，每每都要去参考k8s doc中的各种k8...</description></item><item><title>Go2 Error Inspection前瞻</title><link>https://tonybai.com/2019/01/27/perspective-study-on-go2-error-inspection/</link><pubDate>Sun, 27 Jan 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/01/27/perspective-study-on-go2-error-inspection/</guid><description>这几年关于Go语言未来演化的讨论成为了Gopher世界的热点，Go team官方对于Go语言的演化(以Go2为标签)也是十分上心，但吸取了其他语言，比如：Python3割裂社区的、不兼容演化的教训，Go team最终选择了一条尽可能地兼容Go1、稳健、平滑的演化之路，并逐渐开始落地。Go 1.11的Go modules是Go team开启**Go2**演化进程的标志性事件。随着“Go 2 Draf...</description></item><item><title>Go与SOAP</title><link>https://tonybai.com/2019/01/08/go-and-soap/</link><pubDate>Tue, 08 Jan 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/01/08/go-and-soap/</guid><description>在REST和RPC大行其道的今天，支持SOAP（简答对象访问协议）作为Web服务消息交换协议的情况是越来越少了。但在一些遗留系统中，尤其是采用微软技术栈的服务系统中，SOAP依然占有一席之地，比如在一些医院院内的IT系统中。 Go语言诞生后，主流的Web Service设计已经开始过渡到REST和RPC，Go相关开源项目也以对REST和RPC的支持为主。而对SOAP的支持则少而零散，社区里也没有对...</description></item><item><title>Hello，Go module proxy</title><link>https://tonybai.com/2018/11/26/hello-go-module-proxy/</link><pubDate>Mon, 26 Nov 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/11/26/hello-go-module-proxy/</guid><description>一. Go module引入的幸福与“无奈” ---------------------- 在《Go 1.11中值得关注的几个变化》一文中，我们知道了Go语言通过引入module的概念进而引入了Go tool的另外一种工作模式module-aware mode。在新的工作模式下，Go module支持了Versioned Go，并初步解决了包依赖管理的问题。 对于全世界绝大多数Gophers来说，...</description></item><item><title>Go 1.11中值得关注的几个变化</title><link>https://tonybai.com/2018/11/19/some-changes-in-go-1-11/</link><pubDate>Mon, 19 Nov 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/11/19/some-changes-in-go-1-11/</guid><description>转眼间又近年底，距8月25日Go 1.11版本正式发布已过去快三个月了。由于种种原因，Go语言发布变化系列的Go 1.11版本没能及时放出。近期网课发布上线后，个人时间压力稍缓和。又恰看到近期Go 1.12 release note的initial version已经加入到master，于是这篇文章便上升到个人Todo list的Top3的位置，我也尽一切可能的碎片时间收集素材，撰写文章内容。这个...</description></item><item><title>Go，9周年</title><link>https://tonybai.com/2018/11/12/go-opensource-9-years/</link><pubDate>Mon, 12 Nov 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/11/12/go-opensource-9-years/</guid><description>本文翻译自Go官方博客：《Nine years of Go》。 介绍 今天是我们的Go语言初始版本开源的第九个周年纪念日。在每个周年纪念日上，我们都希望花些时间思考过去一年发生的事情。过去12个月对Go语言和Go社区来说是突破性的一年。 对Go的爱和接纳 感谢你们所有人，2018年对Go来说是美好的一年！在多个行业调查中，Gopher们表达了他们使用Go的快乐程度，并且许多非Go开发者也表示了他们...</description></item><item><title>官宣：慕课网课程“Kubernetes实战：高可用集群搭建、配置、运维与应用”上线了</title><link>https://tonybai.com/2018/10/17/imooc-course-kubernetes-practice-go-online/</link><pubDate>Wed, 17 Oct 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/10/17/imooc-course-kubernetes-practice-go-online/</guid><description>距离我的第一门网课《Kubernetes基础：开启云原生之门》上线已经过去5个多月了，我的实战课《Kubernetes实战：高可用集群搭建、配置、运维与应用》终于在9月27日正式上线了。 一. 课程介绍 《Kubernetes实战：高可用集群搭建、配置、运维与应用》的课程内容与最初课程设计时规划的内容大纲没有太多出入，基本就是根据我最初的想法拟定的内容，**这也基本是我这两年学习k8s、积累的k8...</description></item><item><title>基于consul实现微服务的服务发现和负载均衡</title><link>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</link><pubDate>Mon, 10 Sep 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/</guid><description>一. 背景 ----- 随着2018年年初国务院办公厅联合多个部委共同发布了《国务院办公厅关于促进“互联网+医疗健康”发展的意见(国办发〔2018〕26号)》，国内医疗IT领域又迎来了一波互联网医院建设的高潮。不过互联网医院多基于实体医院建设，虽说挂了一个“互联网”的名号，但互联网医院系统也多与传统的院内系统，比如：HIS、LIS、PACS、EMR等共享院内的IT基础设施。 如果你略微了解过国内医...</description></item><item><title>初窥Go module</title><link>https://tonybai.com/2018/07/15/hello-go-module/</link><pubDate>Sun, 15 Jul 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/07/15/hello-go-module/</guid><description>自2007年“三巨头（Robert Griesemer, Rob Pike, Ken Thompson）”提出设计和实现Go语言以来，Go语言已经发展和演化了十余年了。这十余年来，Go取得了巨大的成就，先后在2009年和2016年当选TIOBE年度最佳编程语言，并在全世界范围内拥有数量庞大的拥趸。不过和其他主流编程语言一样，Go语言也不是完美的，不能满足所有开发者的“口味”。这些年来Go在“包依赖...</description></item><item><title>HTTPS服务的Kubernetes ingress配置实践</title><link>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</link><pubDate>Mon, 25 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/</guid><description>在公有云被广泛接纳的今天，数据传输安全问题日益凸显，因为在公有云提供商的经典网络（二层互通）中，即便是内部网络通信也要考虑网络嗅探等hack手段，这也是公有云主推所谓“专用网络（二层隔离）”的原因之一。从应用的角度，我们应该尽量通过技术手段保证数据通信的安全性。而目前最常用的方式就是基于SSL/TLS的安全通信方式了，在七层，对应的就是https了。 这样，下面的仅在负载均衡/反向代理入口做加密通...</description></item><item><title>实践kubernetes ingress controller的四个例子</title><link>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</link><pubDate>Thu, 21 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/</guid><description>我之前并未使用过标准的Kubernetes ingress，而是自己实现了一个基于nginx的、类似ingress controller的服务入口管理程序nginx-kit。这个程序会部署到Kubernetes集群中，以Pod形式运行。该Pod由两个Container组成，一个Container放置了一个由脚本启动的nginx；另外一个Container中放置的是一个conf generator程...</description></item><item><title>使用kubectl访问Kubernetes集群时的身份验证和授权</title><link>https://tonybai.com/2018/06/14/the-authentication-and-authorization-of-kubectl-when-accessing-k8s-cluster/</link><pubDate>Thu, 14 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/14/the-authentication-and-authorization-of-kubectl-when-accessing-k8s-cluster/</guid><description>kubectl是日常访问和管理Kubernetes集群最为常用的工具。 当我们使用kubeadm成功引导启动(init)一个Kubernetes集群的控制平面后，kubeadm会在init的输出结果中给予我们下面这样的“指示”： ... ... Your Kubernetes master has initialized successfully! To start using your clus...</description></item><item><title>在Kubernetes 1.10.3上以Hard模式搭建EFK日志分析平台</title><link>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</link><pubDate>Wed, 13 Jun 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/</guid><description>在一年多之前，我曾写过一篇文章《使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging》，文中讲解了如何在Kubernetes上利用EFK（elastic, fluentd, kibana）搭建一套可用的集中日志分析平台。当时的k8s使用的是1.3.7版本，创建EFK使用的是kubernetes项目中**cluster/addons/fluentd-...</description></item><item><title>对一段有关Go Code Block和变量作用域的代码的简要分析</title><link>https://tonybai.com/2018/05/11/the-analysis-of-a-go-code-snippet-about-code-blocks-and-scope/</link><pubDate>Fri, 11 May 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/05/11/the-analysis-of-a-go-code-snippet-about-code-blocks-and-scope/</guid><description>近期，Go team的David CrawShaw在twitter上贴出了一段代码，如下： func main() { if a := 1; false { } else if b := 2; false { } else if c := 3; false { } else { println(a, b, c) } } David CrawShaw想表达的意图是gopher们很少在”else if...</description></item><item><title>慕课网免费课“Kubernetes：开启云原生之门”上线</title><link>https://tonybai.com/2018/05/02/imooc-course-kubernetes-open-the-gate-to-cloudnative-go-online/</link><pubDate>Wed, 02 May 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/05/02/imooc-course-kubernetes-open-the-gate-to-cloudnative-go-online/</guid><description>这两年一直在做一个基于Kubernetes的、用于互联网产品运营支撑的类PaaS平台，因此一直把自己定位为一个Kubernetes实践者：以Kubernetes为中心进行集群搭建、运维、k8s相关技术的理解与应用、k8s新技术的追踪和尝试落地等。不过就Kubernetes的深入程度来说，感觉自己和那些天天与k8s打交道的大厂专家或以容器云为卖点的技术专家还是有差距的。但是大厂专家每周996，闲暇时...</description></item><item><title>写Go代码时遇到的那些问题[第3期]</title><link>https://tonybai.com/2018/04/06/the-problems-i-encountered-when-writing-go-code-issue-3rd/</link><pubDate>Fri, 06 Apr 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/04/06/the-problems-i-encountered-when-writing-go-code-issue-3rd/</guid><description>我有一个习惯，那就是随时记录下编程过程中遇到的问题（包括问题现场、问题起因以及对问题的分析），并喜欢阶段性的对一段时间内的**编码过程的得与失**进行回顾和总结。内容可以包括：对编程语法的新认知、遇坑填坑的经历、一些让自己豁然开朗的小tip/小实践等。记录和总结的多了，感觉有价值的，就成文发在博客上的；一些小的点，或是还没有想清楚的事情，或思路没法结构化统一的，就放在资料库里备用。“写Go代码时遇...</description></item><item><title>defer函数参数求值简要分析</title><link>https://tonybai.com/2018/03/23/the-analysis-of-the-param-evaluation-of-defer-functions/</link><pubDate>Fri, 23 Mar 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/03/23/the-analysis-of-the-param-evaluation-of-defer-functions/</guid><description>一. 引子 书接上文，在发表了《对一段Go语言代码输出结果的简要分析》一文之后，原问题提出者又有了新问题，这是一个典型Gopher学习Go的历程，想必很多Gopher们，包括我自己都遇到过的。我们先来看看这段代码(来自原问题提出者)： // https://play.golang.org/p/dOUFNj96EIQ package main import &amp;#34;fmt&amp;#34; func main() { v...</description></item><item><title>对一段Go语言代码输出结果的简要分析</title><link>https://tonybai.com/2018/03/20/the-analysis-of-output-results-of-a-go-code-snippet/</link><pubDate>Tue, 20 Mar 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/03/20/the-analysis-of-output-results-of-a-go-code-snippet/</guid><description>年后事情实在是多，各种被催进度，于是好长一段时间未更博客了，自责中….。今天蹦出来热热身^0^！ 中午在微博私信中看到一封来自某Gopher的咨询，他贴了一段代码，并表示对代码的输出结果的不解，希望我能帮他分析一下。他的代码如下： //testslicerange.go package main import ( &amp;#34;fmt&amp;#34; &amp;#34;time&amp;#34; ) type field struct { name st...</description></item><item><title>TB一周萃选[第10期]</title><link>https://tonybai.com/2018/03/03/10th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 03 Mar 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/03/03/10th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第10期\]”**的归档。 &amp;gt; 这个世界上最危险的毒药，就是成就感。而解药就是每晚都想一想，明天如何做得更好。 – 英格瓦坎普拉德，宜家创始人 2018年元宵节已过，这个传统意义上的年就算真的过完了，我们的那颗有些闲散、有些懈怠的心需要收一收，是时候为2018年的“事业”做些规划，从2018的起跑线上起跑出去了。就连现在的孩子，在开学第一课时都...</description></item><item><title>Go 1.10中值得关注的几个变化</title><link>https://tonybai.com/2018/02/17/some-changes-in-go-1-10/</link><pubDate>Sat, 17 Feb 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/02/17/some-changes-in-go-1-10/</guid><description>又到了Go语言新版本的发布时间窗口了！这次的主角是Go 1.10。 曾几何时， 这是很多Gopher在Go 1.8、Go 1.9时猜测是否存在的那个版本，毕竟minor version即将进化到两位数。从Go语言第一封设计mail发出到现在的十年间，尤其是Go语言经历了近几年的爆发式增长，基本奠定了云原生第一语言的位置之后，人们对Go语言有了更多新的、更为深刻的认知，同时对这门编程语言也有了更多的...</description></item><item><title>TB一周萃选[第9期]</title><link>https://tonybai.com/2018/02/11/9th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 11 Feb 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/02/11/9th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第9期\]”**的归档。 &amp;gt; 亲情犹如一江剪不断的春水，流动的是游子心中永远的思念；亲情犹如一丘数不尽的细沙，沉淀的是长年堆积的牵挂；亲情犹如夜空中那颗北斗，指引的是那迷路的羔羊回家的方向。忙碌了一年，该回家了，给心放个假，带上媳妇带上你的娃，回家看看那年迈的爸妈，出发！ — 改编自网络 此时此刻，很多人刚刚踏上了春节回家的旅途，有些人更是已经...</description></item><item><title>TB一周萃选[第8期]</title><link>https://tonybai.com/2018/02/03/8th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 03 Feb 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/02/03/8th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第8期\]”**的归档。 &amp;gt; 再看看那个光点，它就在这里。那是我们的家园，我们的一切。你所爱的每一个人，你认识的每一个人，你听说过的每一个人，曾经有过的每一个人，都在它上面度过他们的一生。我们的欢乐与痛苦聚集在一起，数以千计的自以为是的宗教、意识形态和经济学说，所有的猎人与强盗、英雄与懦夫、文明的缔造者与毁灭者、国王与农夫、年轻的情侣、母亲与父...</description></item><item><title>TB一周萃选[第7期]</title><link>https://tonybai.com/2018/01/28/7th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 28 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/28/7th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第7期\]”**的归档。 &amp;gt; 我看过小马哥(哈维尔·马斯切拉诺)踢球， &amp;gt; 你看过小马哥踢球， &amp;gt; 他看过小马哥踢球。 &amp;gt; 我们看过小马哥踢球， &amp;gt; 你们看过小马哥踢球， &amp;gt; 他们看过小马哥踢球！ &amp;gt; &amp;gt; — 改编自网络资料 都说三九天是一年中最冷的一段时间，但我们这里稍有偏差，就个人赶脚：四九、五九才是我们这里温度的最低点。这一周的感受用一句...</description></item><item><title>写Go代码时遇到的那些问题[第2期]</title><link>https://tonybai.com/2018/01/27/the-problems-i-encountered-when-writing-go-code-issue-2nd/</link><pubDate>Sat, 27 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/27/the-problems-i-encountered-when-writing-go-code-issue-2nd/</guid><description>第1期的“写Go代码时遇到的那些问题”一经发布后得到了很多Gopher的支持和赞赏，这也是我继续写下去的动力！不过这里依然要强调的是这一系列文章反映的是笔者在实践中对代码编写的认知以及代码的演化过程。这里的代码也许只是“中间阶段”，并不是什么最优的结果，我记录的只是对问题、对代码的一个思考历程。不过，十分欢迎交流与批评指正。 一、dep的日常操作 ---------- 虽然dep在国内使用依然有i...</description></item><item><title>TB一周萃选[第6期]</title><link>https://tonybai.com/2018/01/20/6th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 20 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/20/6th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第6期\]”**的归档。 图：第6期封面 &amp;gt; 凡事欲其成功，必须付出代价——奋斗。 &amp;gt; — 美国作家 爱默生 每期挑选“封面图”都是一件颇为“费工夫”的事情，本期的封面图来自于一个投资界大V发送的微博内容，因为当我第一眼看到这幅图片时，感觉它**颇为契合我当时的心境**。 **“未来的一年里，连睡觉都是浪费时间”**这句话的最原始的出处在哪里我...</description></item><item><title>TB一周萃选[第5期]</title><link>https://tonybai.com/2018/01/14/5th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 14 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/14/5th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第5期\]”**的归档。 &amp;gt; 人生十鉴 &amp;gt; &amp;gt; 大喜易失言 &amp;gt; 大怒易失礼 &amp;gt; 大惊易失态 &amp;gt; 大哀易失颜 &amp;gt; 大乐易失察 &amp;gt; 大惧易失节 &amp;gt; 大思易失爱 &amp;gt; 大醉易失德 &amp;gt; 大话易失信 &amp;gt; 大欲易失命 下雪，是北方城市冬天的“常规操作”，是最不需要被单独关注的的事情。但今年冬天的“雪”却成为了这边的热门话题，原因：**自从入冬以来一直就没下一...</description></item><item><title>写Go代码时遇到的那些问题[第1期]</title><link>https://tonybai.com/2018/01/13/the-problems-i-encountered-when-writing-go-code-issue-1st/</link><pubDate>Sat, 13 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/13/the-problems-i-encountered-when-writing-go-code-issue-1st/</guid><description>程序员步入“大龄”，写代码的节奏也会受到影响。以前是长时间持续地写，现在写代码的节奏变成了“波浪形”：即写一段时间，歇一段时间。当然这里的“歇”并不是真的歇，而是做其他事情了，比如：回顾、整理与总结。 平时写Go代码，时不时就遇到一些问题，或是写出一些让自己还算满意的代码，这里全部列为“问题”行列。这些“问题”(以及其解决方法)往往比较“小”、比较“碎片”，不适合以自己“擅长”的“长篇”风格写出来...</description></item><item><title>TB一周萃选[第4期]</title><link>https://tonybai.com/2018/01/06/4th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 06 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/06/4th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第4期\]”**的归档。 &amp;gt; 孩子，我要求你读书用功，不是因为我要你跟别人比成绩，而是因为，我希望你将来会拥有选择的权利，选择有意义、有时间的工作，而不是被迫谋生。当你的工作在你心中有意义，你就有成就感。当你的工作给你时间，不剥夺你的生活，你就有尊严。成就感和尊严，给你快乐。——龙应台 《亲爱的安德烈》 这两天中原大地的一场大雪正式宣告了深冬的...</description></item><item><title>使用istio治理微服务入门</title><link>https://tonybai.com/2018/01/03/an-intro-of-microservices-governance-by-istio/</link><pubDate>Wed, 03 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/03/an-intro-of-microservices-governance-by-istio/</guid><description>近两年微服务架构流行，主流互联网厂商内部都已经微服务化，初创企业虽然技术积淀不行，但也通过各种开源工具拥抱微服务。再加上容器技术赋能，Kubernetes又添了一把火，微服务架构已然成为当前软件架构设计的首选。 **但微服务化易弄，服务治理难搞！** 一、微服务的“痛点” ---------- 微服务化没有统一标准，多数是进行业务领域垂直切分，业务按一定的粒度划分职责，并形成清晰、职责单一的服务接...</description></item><item><title>TB一周萃选[第3期]</title><link>https://tonybai.com/2017/12/30/3rd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sat, 30 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/30/3rd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**“TB一周萃选\[第3期\]”**的归档。 &amp;gt; 《岁旦》 &amp;gt; &amp;gt; &amp;gt; 宋伯仁 宋代诗人 &amp;gt; &amp;gt; 居间无贺客，早起只如常。桃版随人换，梅花隔岁香。 &amp;gt; 　　春风回笑语，云气卜丰穰。柏酒何劳劝，心平寿自长。 本期萃选是2017年的最后一期，也是迎接2018新年“承前启后”的一期。 对于现代中国人来说，公历新年又称为“元旦”。但稍有些历史常识的朋友都会知道：此“元旦”...</description></item><item><title>TB一周萃选[第2期]</title><link>https://tonybai.com/2017/12/22/2nd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Fri, 22 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/22/2nd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章**TB一周萃选\[第2期\]**的归档。 封面 &amp;gt; “我天性不宜交际。 &amp;gt; &amp;gt; 在多数场合，我不是觉得对方乏味，就是害怕对方觉得我乏味。可是我既不愿忍受对方的乏味，也不愿费劲使自己显得有趣，那都太累了。 &amp;gt; &amp;gt; 我独处时最轻松，因为我不觉得自己乏味，即使乏味，也自己承受，不累及他人，无需感到不安。” ——周国平 本周日晚上就是平安夜了！ 圣诞节，是西方最重要的节日...</description></item><item><title>追求极简：Docker镜像构建演化史</title><link>https://tonybai.com/2017/12/21/the-concise-history-of-docker-image-building/</link><pubDate>Thu, 21 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/21/the-concise-history-of-docker-image-building/</guid><description>本文首发于CSDN《程序员》杂志2017.12期，这里是原文地址。 本文为《程序员》杂志授权转载，谢绝其他转载。全文如下： 自从2013年dotCloud公司(现已改名为Docker Inc)发布Docker容器技术以来，到目前为止已经有四年多的时间了。这期间Docker技术)飞速发展，并催生出一个生机勃勃的、以轻量级容器技术为基础的庞大的容器平台生态圈。作为Docker三大核心技术之一的镜像技术...</description></item><item><title>TB一周萃选[第1期]</title><link>https://tonybai.com/2017/12/17/1st-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</link><pubDate>Sun, 17 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/17/1st-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/</guid><description>本文是首发于个人微信公众号的文章[TB一周萃选\[第1期\]](https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&amp;amp;mid=2247483848&amp;amp;idx=1&amp;amp;sn=a3cd9182a2b2d3716623cc2c43d59f37&amp;amp;chksm=e863e629df146f3f421f37672d25400bf6f7f52627bf72e99bf7fb7...</description></item><item><title>在Kubernetes集群上部署高可用Harbor镜像仓库</title><link>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</link><pubDate>Fri, 08 Dec 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/</guid><description>关于基于Harbor的高可用私有镜像仓库，在我的博客里曾不止一次提到，在源创会2017沈阳站上，我还专门以此题目和大家做了分享。事后，很多人通过微博私信、个人公众号或博客评论问我是否可以在Kubernetes集群上安装高可用的Harbor仓库，今天我就用这篇文章来回答大家这个问题。 一、Kubernetes上的高可用Harbor方案 ------------------------- 首先，我可以...</description></item><item><title>Goroutine调度实例简要分析</title><link>https://tonybai.com/2017/11/23/the-simple-analysis-of-goroutine-schedule-examples/</link><pubDate>Thu, 23 Nov 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/11/23/the-simple-analysis-of-goroutine-schedule-examples/</guid><description>前两天一位网友在微博私信我这样一个问题： &amp;gt; 抱歉打扰您咨询您一个关于Go的问题：对于goroutine的概念我是明了的，但很疑惑goroutine的调度问题, 根据《Go语言编程》一书：“当一个任务正在执行时，外部没有办法终止它。要进行任务切换，只能通过由该任务自身调用yield()来主动出让CPU使用权。” 那么，假设我的goroutine是一个死循环的话，是否其它goroutine就没有执行...</description></item><item><title>理解Docker的多阶段镜像构建</title><link>https://tonybai.com/2017/11/11/multi-stage-image-build-in-docker/</link><pubDate>Sat, 11 Nov 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/11/11/multi-stage-image-build-in-docker/</guid><description>Docker技术从2013年诞生到目前已经4年有余了。对于已经接纳和使用Docker技术)在日常开发工作中的开发者而言，构建Docker镜像已经是家常便饭。但这是否意味着Docker的image构建机制已经相对完美了呢？不是的，Docker官方依旧在持续优化镜像构建机制。这不，从今年发布的Docker 17.05版本起，Docker开始支持容器镜像的多阶段构建(multi-stage build)...</description></item><item><title>Hello，Termux</title><link>https://tonybai.com/2017/11/09/hello-termux/</link><pubDate>Thu, 09 Nov 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/11/09/hello-termux/</guid><description>**_程序员或多或少都有一颗Geek(极客)的心^0^。- Tony Bai_** 折腾开始。 这一切都源于前不久将手机换成了Xiaomi的MIX2。因为青睐开放的系统（相对于水果公司系统的封闭，当然Mac笔记本除外^0^），我长期使用Android平台)的手机。但之前被三星Note3手机的“大屏”搞的不是很舒服，这两年一直用5寸及以下的手机，因为单手操作体验良好。MIX2的所谓“全面屏”概念又让...</description></item><item><title>再谈Docker容器单机网络：利用iptables trace和ebtables log</title><link>https://tonybai.com/2017/11/06/explain-docker-single-host-network-using-iptables-trace-and-ebtables-log/</link><pubDate>Mon, 06 Nov 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/11/06/explain-docker-single-host-network-using-iptables-trace-and-ebtables-log/</guid><description>这大半年一直在搞Kubernetes。每次搭建Kubernetes集群，或多或少都会被Kubernetes的“网络插件们”折腾折腾。因此，要说目前Kubernetes中最难搞的是什么？个人觉得莫过于其Pod网络了，至少也是最难搞的之一。除此之外，以Service和Pod为中心的Kubernetes架构还大量利用iptables规则来实现Service的反向代理和负载均衡，这又与Docker原生容器...</description></item><item><title>源创会开源访谈：十年成长，Go语言的演化之路</title><link>https://tonybai.com/2017/10/24/go-evolution-for-ten-years-an-interview-by-osc/</link><pubDate>Tue, 24 Oct 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/10/24/go-evolution-for-ten-years-an-interview-by-osc/</guid><description>在参加源创会沈阳站分享之前，接受了开源中国社区编辑王练的文字专访，以下是我针对专访稿的内容。 同时该专访稿首发于开源中国开源访谈栏目，大家可以点击这里看到首发原稿。 1、首先请介绍一下自己 大家好！我叫白明（Tony Bai），目前是东软云科技的一名架构师，专职于服务端开发，日常工作主要使用Go语言。我算是国内较早接触Go语言的程序员兼Advocater了，平时在我的博客、微博和微信公众号”iam...</description></item><item><title>源创会2017沈阳站讲稿：基于Harbor的高可用企业级私有容器镜像仓库部署实践</title><link>https://tonybai.com/2017/10/23/the-speech-script-practice-on-deploying-a-ha-harbor-cluster-for-osc-shenyang-2017/</link><pubDate>Mon, 23 Oct 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/10/23/the-speech-script-practice-on-deploying-a-ha-harbor-cluster-for-osc-shenyang-2017/</guid><description>上周六开源中国的源创会在沈阳举办了一次技术活动，很荣幸以本地讲师的身份和大家交流了一个topic: “基于Harbor的高可用企业级私有容器镜像仓库部署实践”。之所以选择这个topic，是因为这是我们团队的项目实践心得。很多企业和组织在深入使用Docker之后，都会有类似的高可用私有容器仓库搭建的需求，于是我就把我们摸索的实践和填坑过程拿出来，用30分钟与大家分享一下。另外这算是一个入门级的分享，...</description></item><item><title>Kubernetes节点资源耗尽状态的处理</title><link>https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/</link><pubDate>Mon, 16 Oct 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/</guid><description>今天上午一到工位，就收到来自同事的“投诉”：私有云上的Kubernetes cluster中的一个node似乎不工作了，因为专门部署于那个节点上的应用挂掉了，并且长时间没有恢复。这个公司私有云上Kubernetes集群是v1.7.5版本，部署于双节假期之前。最近感觉K8s开发明显提速，连续发布版本，截至发稿时，最新发布的版本为v1.8.1了。这个集群一直运行相对稳定，今天这个异常到底是怎么一回事呢...</description></item><item><title>Kubernetes Dashboard 1.7.0部署二三事</title><link>https://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/</link><pubDate>Tue, 26 Sep 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/</guid><description>由于开发的平台要进行内部公开测试，我们这周在公司内部私有云搭建了一套平台。涉及到Kubernetes相关的基础软件，由我来部署。Kubernetes以及其相关组件都在积极的开发中，版本更新也很快。截至本文撰写时，K8s发布最新稳定版是v1.7.6，而与之配套的Dashboard则是v1.7.0。 最初在部署规划时，我选择了Kubernetes v1.7.6+ dashboard v1.6.3的组合...</description></item><item><title>Go语言：成长的十年</title><link>https://tonybai.com/2017/09/24/go-ten-years-and-climbing/</link><pubDate>Sun, 24 Sep 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/09/24/go-ten-years-and-climbing/</guid><description>Go语言之父，Google大神Rob Pike代表Go语言的另外两位缔造者Robert Griesemer和Ken Thompson在自己的博客上发表了一篇名为《Go: Ten years and climbing》的文章，用以纪念Go语言从最初的设计idea起到目前的十年发展。笔者读完后，也是深有感触，因此在这里粗略翻译一下全文，希望能有更多的程序员加入到Gopher行列中来。 译文全文如下： ...</description></item><item><title>Hello, Apollo</title><link>https://tonybai.com/2017/08/15/hello-apollo/</link><pubDate>Tue, 15 Aug 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/08/15/hello-apollo/</guid><description>要说目前哪个技术领域投资最火热，莫过于人工智能。而人工智能领域中最火的(或者说之一)肯定要算上自动驾驶。自动驾驶的概念不是什么新鲜的玩意了，只是随着近两年这一波人工智能的大热，自动驾驶又被推到了风口浪尖。各大汽车厂商、互联网公司也都跃跃欲试，准备给汽车这一“历经百年的黄金平台”做一次新的“赋能”。 今年7月5日，国内搜索引擎No.1企业百度在其首届百度AI开发者大会上发布了Apollo自动驾驶开放...</description></item><item><title>解决Kubernetes 1.7.3 kube-apiserver频繁异常重启的问题</title><link>https://tonybai.com/2017/08/09/fix-kube-apiserver-restart-exceptionally-in-k8s-1-7-3/</link><pubDate>Wed, 09 Aug 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/08/09/fix-kube-apiserver-restart-exceptionally-in-k8s-1-7-3/</guid><description>近期将之前的一个用kube-up.sh安装的Kubernetes 1.3.7的环境更换为最新发布的用kubeadm安装的Kubernetes 1.7.3版本。新版本的安装过程和之前的采用kubeadm安装的k8s 1.5.x、1.6.x版本类似，这里不赘述了。但在安装Dashboard后，发现了一些问题，这里记录一下解决的过程。 一、第一个问题 ------- 我们先来做一下回顾。在《解决Kube...</description></item><item><title>Hello, ROS</title><link>https://tonybai.com/2017/08/01/hello-ros/</link><pubDate>Tue, 01 Aug 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/08/01/hello-ros/</guid><description>ROS，全称是Robot Operating System，字面译为“机器人操作系统”。不过ROS并非是一个真正意义上的操作系统，而仅仅是一套用于机器人操作和控制软件开发的开发框架(framework)，包括各种库和工具。 ROS在2007年诞生于斯坦福大学的人工智能实验室Stanford Artificial Intelligence Laboratory，简称SAIL；2008年至2013年，...</description></item><item><title>体验共享单车</title><link>https://tonybai.com/2017/07/24/ride-a-shared-bike/</link><pubDate>Mon, 24 Jul 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/07/24/ride-a-shared-bike/</guid><description>上周日下午14:00，应孩子班主任老师的要求，我到学校开家长会。周末天气不算太热，学校离家的路程也不算远，于是我决定放弃开车，绿色出行^0^。去的时候乘坐的是今年沈城刚刚更换的电动公交车(好像是双动力)，回来时，我则第一次体验了共享单车（骑的是摩拜单车）。 共享单车，对于中国一线城市和二线中心城市的人们来说早已不是啥新鲜事物了。共享单车进入沈城的时间相比一线是要晚一些时间的，并且最初只有绿色的酷奇...</description></item><item><title>解决Kubernetes 1.6.4 Dashboard无法访问的问题</title><link>https://tonybai.com/2017/07/20/fix-cannot-access-dashboard-in-k8s-1-6-4/</link><pubDate>Thu, 20 Jul 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/07/20/fix-cannot-access-dashboard-in-k8s-1-6-4/</guid><description>前一段时间将之前采用kubeadm安装的Kubernetes 1.5.1环境升级到了1.6.4版本，升级过程较为顺利。由于该k8s cluster是一个测试环境，当时并没有过于关注，就忙别的事情了。最近项目组打算在这个环境下做一些事情，而当我们重新“捡起”这个环境时，发现Kubernetes Dashboard无法访问了。 Kubernetes的dashboard可以有很多种访问方式，比如：可以通...</description></item><item><title>Go 1.9中值得关注的几个变化</title><link>https://tonybai.com/2017/07/14/some-changes-in-go-1-9/</link><pubDate>Fri, 14 Jul 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/07/14/some-changes-in-go-1-9/</guid><description>Go语言在2016年当选tiobe index的年度编程语言。 转眼间6个月过去了，Go在tiobe index排行榜上继续强势攀升，在最新公布的TIBOE INDEX 7月份的排行榜上，Go挺进Top10： 还有不到一个月，Go 1.9版本也要正式Release了（计划8月份发布），当前Go 1.9的最新版本是go1.9beta2，本篇的实验环境也是基于该版本的，估计与final go 1.9版...</description></item><item><title>搭建你自己的Go Runtime metrics环境</title><link>https://tonybai.com/2017/07/04/setup-go-runtime-metrics-for-yourself/</link><pubDate>Tue, 04 Jul 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/07/04/setup-go-runtime-metrics-for-yourself/</guid><description>自从Go 1.5开始，每次Go release, Gopher Brian Hatfield都会将自己对新版Go的runtime的性能数据（与之前Go版本的比较）在twitter上晒出来。就连Go team staff在世界各地做speaking时也在slide中引用Brian的图片。后来，Brian Hatfield将其用于度量runtime性能数据的代码打包成library并放在github上...</description></item><item><title>使用govanityurls让私有代码仓库中的go包支持go get</title><link>https://tonybai.com/2017/06/30/go-get-go-packages-in-private-code-repo-by-govanityurls/</link><pubDate>Fri, 30 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/30/go-get-go-packages-in-private-code-repo-by-govanityurls/</guid><description>《定制Go Package的Go Get导入路径》一文中我们讲到了通过使用govanityurls服务，我们可以定制go package的go get导入路径。不过，govanityurls的用途还不止这些，它还可以让你的私有代码仓库中的go package支持go get。 众所周知，开源的Go package一般分布在github、bitbucket等站点，但商业组织内部闭源的Go packa...</description></item><item><title>定制Go Package的Go Get导入路径</title><link>https://tonybai.com/2017/06/28/set-custom-go-get-import-path-for-go-package/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/28/set-custom-go-get-import-path-for-go-package/</guid><description>近期Go team的组员Jaana B. Dogan，网名：rakyll开源了一个小工具：Go Vanity URLs。这个小工具可以帮助你快速为你的Go package定制Go get的导入路径（同样也是package被使用时的import路径）。 说到go package的go get导入路径，我们最常见和常使用的domain name就是github.com了，比如：beego包的go ge...</description></item><item><title>也谈Go的可移植性</title><link>https://tonybai.com/2017/06/27/an-intro-about-go-portability/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/27/an-intro-about-go-portability/</guid><description>Go有很多优点，比如：简单、原生支持并发等，而不错的可移植性也是Go被广大程序员接纳的重要因素之一。但你知道为什么Go语言拥有很好的平台可移植性吗？本着“知其然，亦要知其所以然”的精神，本文我们就来探究一下Go良好可移植性背后的原理。 一、Go的可移植性 --------- 说到一门编程语言可移植性，我们一般从下面两个方面考量： * 语言自身被移植到不同平台的容易程度； * 通过这种语言编译出来的...</description></item><item><title>外星人为什么还没降落到地球上？</title><link>https://tonybai.com/2017/06/25/why-aliens-have-not-arrived-at-earth/</link><pubDate>Sun, 25 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/25/why-aliens-have-not-arrived-at-earth/</guid><description>这周五午间休息时无意中看了36kr发布的一篇文章：《开电脑与外星人尬聊？搜寻地外文明项目SETI@home的极客简史》，这是一篇译文，原文发表在《大西洋月刊》，题为“A Brief History of SETI@Home”，文章科普了SETI@HOME这一项目的简史。 SETI是“**Search for Extraterrestrial Intelligence**”，字面意思就是搜寻外星的智...</description></item><item><title>也谈goroutine调度器</title><link>https://tonybai.com/2017/06/23/an-intro-about-goroutine-scheduler/</link><pubDate>Fri, 23 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/23/an-intro-about-goroutine-scheduler/</guid><description>Go语言在2016年再次拿下TIBOE年度编程语言称号，这充分证明了Go语言这几年在全世界范围内的受欢迎程度。如果要对世界范围内的gopher发起一次“你究竟喜欢Go的哪一点”的调查，我相信很多Gopher会提到：**goroutine**。 Goroutine是Go语言原生支持并发的具体实现，你的Go代码都无一例外地跑在goroutine中。你可以启动许多甚至成千上万的goroutine，Go的...</description></item><item><title>解决登录Harbor Registry时鉴权失败的问题</title><link>https://tonybai.com/2017/06/15/fix-auth-fail-when-login-harbor-registry/</link><pubDate>Thu, 15 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/15/fix-auth-fail-when-login-harbor-registry/</guid><description>今天在测试之前搭建好的高可用Harbor时，发现了一个问题：使用docker login harbor时，有时成功，有时失败： docker login -u user -p passwd http://hub.my-domain.com:36666 Login Succeeded docker login -u user -p passwd http://hub.my-domain.com:36...</description></item><item><title>基于Harbor和CephFS搭建高可用Private Registry</title><link>https://tonybai.com/2017/06/09/setup-a-high-availability-private-registry-based-on-harbor-and-cephfs/</link><pubDate>Fri, 09 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/09/setup-a-high-availability-private-registry-based-on-harbor-and-cephfs/</guid><description>我们有给客户搭建私有容器仓库的需求。开源的私有容器registry可供选择的不多，除了docker官方的distribution之外，比较知名的是VMware China出品的Harbor，我们选择了harbor。 harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各...</description></item><item><title>初窥dep</title><link>https://tonybai.com/2017/06/08/first-glimpse-of-dep/</link><pubDate>Thu, 08 Jun 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/06/08/first-glimpse-of-dep/</guid><description>Go语言程序组织和构建的基本单元是Package，但Go语言官方却没有提供一款“像样的”Package Management Tool(包管理工具)。随着Go语言在全球范围内应用的愈加广泛，缺少官方包管理工具这一问题变得日益突出。 2016年GopherCon大会后，在Go官方的组织下，一个旨在改善Go包管理的commitee成立了，共同应对Go在package management上遇到的各种问...</description></item><item><title>专访稿：兴趣才是第一生产力</title><link>https://tonybai.com/2017/05/18/an-interview-from-operation-partner-in-2017/</link><pubDate>Thu, 18 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/18/an-interview-from-operation-partner-in-2017/</guid><description>本文是公司“运营拍档”公众号的专访文稿，这里转载一下^0^。原文链接在这里&amp;amp;version=11020201&amp;amp;pass_ticket=ia4cVivHQScpxBfw10RPkT%2BWZVT1yfyMiTZHrOO15OBtpNZhx0V6DxxEFUySX3io)。 十年生死两茫茫，白天忙，晚上忙，写程序，到天亮。千行代码，Bug何处藏。纵使上线又怎样，朝令改，夕断肠…… * * * **白 ...</description></item><item><title>一步步打造基于Kubeadm的高可用Kubernetes集群-第二部分</title><link>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</link><pubDate>Mon, 15 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/</guid><description>续接上文。 五、第三步：启动emei、wudang上的apiserver ------------------------------ 跨三个node的etcd cluster已经建成并完成了数据同步，下面进行ha cluster改造的重要一步：启动wudang、emei上的apiserver 1、启动emei、wudang上的apiserver 以shaolin node上的/etc/kuber...</description></item><item><title>一步步打造基于Kubeadm的高可用Kubernetes集群-第一部分</title><link>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part1/</link><pubDate>Mon, 15 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part1/</guid><description>Kubernetes集群的核心是其master node，但目前默认情况下master node只有一个，一旦master node出现问题，Kubernetes集群将陷入“瘫痪”，对集群的管理、Pod的调度等均将无法实施，即便此时某些用户的Pod依旧可以正常运行。这显然不能符合我们对于运行于生产环境下的Kubernetes集群的要求，我们需要一个高可用的Kubernetes集群。 不过，目前Ku...</description></item><item><title>Kubernetes集群node主机名修改导致的异常</title><link>https://tonybai.com/2017/05/09/exception-caused-by-kubernetes-node-hostname-change/</link><pubDate>Tue, 09 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/09/exception-caused-by-kubernetes-node-hostname-change/</guid><description>除了在生产环境使用的Kubernetes 1.3.7集群之外，我这里还有一套1.5.1的Kubernetes测试环境，这个测试环境一来用于验证各种技术方案，二来也是为了跟踪Kubernetes的最新进展。本篇要记录的一个异常就是发生在该测试Kubernetes集群中的。 一、缘起 前两天我在Kubernetes测试环境搭建一套Ceph，为了便于ceph-deploy的安装，我通过hostnamec...</description></item><item><title>Kubernetes集群跨节点挂载CephFS</title><link>https://tonybai.com/2017/05/08/mount-cephfs-acrossing-nodes-in-kubernetes-cluster/</link><pubDate>Mon, 08 May 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/05/08/mount-cephfs-acrossing-nodes-in-kubernetes-cluster/</guid><description>在Kubernetes集群中运行有状态服务或应用总是不那么容易的。比如，之前我在项目中使用了CephRBD，虽然遇到过几次问题，但总体算是运行良好。但最近发现CephRBD无法满足跨节点挂载的需求，我只好另辟蹊径。由于CephFS和CephRBD师出同门，它自然成为了这次我首要考察的目标。这里将跨节点挂载CephFS的考察过程记录一下，一是备忘，二则也可以为其他有相似需求的朋友提供些资料。 一、C...</description></item><item><title>Go coding in go way</title><link>https://tonybai.com/2017/04/20/go-coding-in-go-way/</link><pubDate>Thu, 20 Apr 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/04/20/go-coding-in-go-way/</guid><description>本篇文章是我在2017年第三届GopherChina大会上所作talk：”Go coding in go way)“的改编和展开版，全文如下。 一、序 --- 今天我要分享的题目是**“Go coding in go way”**，中文含义就是用**“Go语言编程思维去写Go代码”**。看到这个题目大家不禁要问：究竟什么是Go语言编程思维呢？关于什么是Go语言变成思维其实并没有官方说法。这里要和大...</description></item><item><title>GopherChina2017以讲师身份参会感悟</title><link>https://tonybai.com/2017/04/18/my-experience-of-gopherchina-2017-as-a-speaker/</link><pubDate>Tue, 18 Apr 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/04/18/my-experience-of-gopherchina-2017-as-a-speaker/</guid><description>时光荏苒。2016年北京GopherChina大会的情形还历历在目，2017年上海GopherChina大会又如约而至。 一、印象 这是我连续第二年参加AstaXie组织举办的GopherChina大会。而且不同于去年的是，这次我是以讲师身份参与的。虽然大会地点不同，我的角色不同，但不变的是和广大Gophers一样的对Go语言的极大热情。 这也是第三届GopherChina大会。随着Go语言自身的...</description></item><item><title>GopherChina讲师专访</title><link>https://tonybai.com/2017/04/06/an-interview-with-me-as-a-lecturer-of-gopherchina-2017/</link><pubDate>Thu, 06 Apr 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/04/06/an-interview-with-me-as-a-lecturer-of-gopherchina-2017/</guid><description>今年有幸收到GopherChina大会的组织者、beego开源项目的owner、《Go Web编程》的作者谢孟军童鞋的邀请，以讲师身份参加今年的GopherChina大会。下面是GopherChina对我这个讲师的专访稿^0^。该专访稿将同时被发布在公众号“Go中国(微信号：golangchina)”上面，可点击这里&amp;amp;version=11020201&amp;amp;pass_ticket=ubemadJo5Ju...</description></item><item><title>使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging</title><link>https://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/</link><pubDate>Fri, 03 Mar 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/</guid><description>在本篇文章中，我们继续来说Kubernetes。 经过一段时间的探索，我们先后完成了Kubernetes集群搭建，DNS、Dashboard、Heapster等插件安装，集群安全配置，搭建作为Persistent Volume的CephRBD，以及服务更新等探索和实现工作。现在Kubernetes集群层面的Logging需求逐渐浮上水面了。 随着一些小应用在我们的Kubernetes集群上的部署上...</description></item><item><title>在Kubernetes Pod中使用Service Account访问API Server</title><link>https://tonybai.com/2017/03/03/access-api-server-from-a-pod-through-serviceaccount/</link><pubDate>Fri, 03 Mar 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/03/03/access-api-server-from-a-pod-through-serviceaccount/</guid><description>Kubernetes API Server是整个Kubernetes集群的核心，我们不仅有从集群外部访问API Server的需求，有时，我们还需要从Pod的内部访问API Server。 然而，在生产环境中，Kubernetes API Server都是“设防”的。在《Kubernetes集群的安全配置》一文中，我提到过：Kubernetes通过client cert、static token、...</description></item><item><title>Kubernetes集群Pod使用Host的本地时区设置</title><link>https://tonybai.com/2017/02/20/use-host-timezone-in-kubernetes-pods/</link><pubDate>Mon, 20 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/20/use-host-timezone-in-kubernetes-pods/</guid><description>Kubernetes集群搭建起来后，一直跑得很稳定。之前的关注点更多集中在安装、配置、组件调试方面，一些细枝末节被忽略了。Pod中时区的设置就是其中之一。今天腾出功夫打算解决一下这个问题。 一、问题现象 在我的Kubernetes 1.3.7集群的Master Node上，我们执行： date Mon Feb 20 11:49:20 CST 2017 之后，在该Node上随意找到一个Pod中的Co...</description></item><item><title>Kubernetes Pod无法挂载ceph RBD存储卷的临时解决方法</title><link>https://tonybai.com/2017/02/17/temp-fix-for-pod-unable-mount-cephrbd-volume/</link><pubDate>Fri, 17 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/17/temp-fix-for-pod-unable-mount-cephrbd-volume/</guid><description>所有涉及到存储的地方都是极易出现“坑”的地方，Kubernetes也不例外。 一、问题起因 问题始于昨天升级一个stateful service的操作。该service下的Pod挂载了使用ceph RBD提供的一个Persistent Volume。该Pod是用普通deployment部署的，并没有使用处于alpha状态的PetSet。改动仅仅是image的版本发生了变化。我执行的操作如下： ku...</description></item><item><title>Kubernetes集群中Service的滚动更新</title><link>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</link><pubDate>Thu, 09 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/</guid><description>在移动互联网时代，消费者的消费行为已经“全天候化”，为此，商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求。很难想像如今还会有以“中断业务”为前提的服务系统更新升级。如果微信官方发布公告说：每周六晚23:00~次日凌晨2:00进行例行系统升级，不能提供服务，作为用户的你会怎么想、怎么做呢？因此，各个平台在最初设计时就要考虑到服务的更新升级问题，部署在Kubernetes集群中的...</description></item><item><title>TensorFlow入门：零基础建立第一个神经网络</title><link>https://tonybai.com/2017/02/06/build-your-first-neural-network-with-tensorflow/</link><pubDate>Mon, 06 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/06/build-your-first-neural-network-with-tensorflow/</guid><description>首先，我不得不承认这篇文章有些标题党的味道^0^，但文章还是要继续写下去，备忘也好，能帮助到一些人也好。 在2016小结的时候，我说过：2017年要了解一些有关机器学习和人工智能(以下简称AI)方面的技术。如果有童鞋问：Why？我会告诉你：跟风。作为技术人，关注和紧跟业界最前沿的技术总是没错的。 2016年被业界普遍认为是AI这一波高速发展的元年，当然DeepMind的AlphaGo在这方面所起到...</description></item><item><title>Go 1.8中值得关注的几个变化</title><link>https://tonybai.com/2017/02/03/some-changes-in-go-1-8/</link><pubDate>Fri, 03 Feb 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/02/03/some-changes-in-go-1-8/</guid><description>在已经过去的2016年，Go语言继在2009年之后再次成为编程语言界的明星- 问鼎TIOBE 2016年度语言。这与Go team、Go community和全世界的Gophers的努力是分不开的。按计划在这个2月份，Go team将正式发布Go 1.8版本(截至目前，Go的最新版本是Go 1.8rc3)。在这里我们一起来看一下在Go 1.8版本中都有哪些值得Gopher们关注的变化。 一、语言（...</description></item><item><title>以Kubeadm方式安装的Kubernetes集群的探索</title><link>https://tonybai.com/2017/01/24/explore-kubernetes-cluster-installed-by-kubeadm/</link><pubDate>Tue, 24 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/24/explore-kubernetes-cluster-installed-by-kubeadm/</guid><description>当前手上有两个Kubernetes cluster，一个是采用kube-up.sh安装的k8s 1.3.7版本，另外一个则是采用kubeadm安装的k8s 1.5.1版本。由于1.3.7版本安装在前，并且目前它也是承载了我们PaaS平台的环境，因此对于这个版本的Kubernetes安装环境、配置操作、日志查看、集群操作等相对较为熟悉。而Kubeadm安装的1.5.1版本K8s集群在组件部署、配置、...</description></item><item><title>Kubernetes Dashboard集成Heapster</title><link>https://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/</link><pubDate>Fri, 20 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/</guid><description>默认安装后的Kubernetes dashboard如下图所示，是无法图形化展现集群度量指标信息的： 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件：Heapster。 Heapster原生支持K8s(v1.0.6及以后版本)和CoreOS，并且支持多种存储后端，比如：InfluxDB、ElasticSearch、Kafka等，这个风格和k8s的确很像：功能先不管完善与否，先让自...</description></item><item><title>Kubernetes集群Dashboard插件安装</title><link>https://tonybai.com/2017/01/19/install-dashboard-addon-for-k8s/</link><pubDate>Thu, 19 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/19/install-dashboard-addon-for-k8s/</guid><description>第一次利用kube-up.sh脚本方式安装Kubernetes 1.3.7集群时，我就已经顺利地将kubernetes dashboard addon安装ok了。至今在这个环境下运行十分稳定。但是毕竟是一个试验环境，有些配置是无法满足生产环境要求的，比如：安全问题。今天有时间对Dashboard的配置进行一些调整，顺带将之前Dashboard插件的安装和配置过程也记录下来，供大家参考。 一、Das...</description></item><item><title>理解Kubernetes网络之Flannel网络</title><link>https://tonybai.com/2017/01/17/understanding-flannel-network-for-kubernetes/</link><pubDate>Tue, 17 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/17/understanding-flannel-network-for-kubernetes/</guid><description>第一次采用kube-up.sh脚本方式安装的Kubernetes cluster目前运行良好，master node上的组件状态也始终是“没毛病”： kubectl get cs NAME STATUS MESSAGE ERROR controller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {&amp;#34;health&amp;#34;: &amp;#34;true&amp;#34;}...</description></item><item><title>理解Docker容器网络之Linux Network Namespace</title><link>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</link><pubDate>Wed, 11 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/</guid><description>由于2016年年中调换工作的原因，对容器网络的研究中断过一段时间。随着当前项目对Kubernetes应用的深入，我感觉之前对于容器网络的粗浅理解已经不够了，容器网络成了摆在前面的“一道坎”。继续深入理解K8s网络、容器网络已经势在必行。而这篇文章就算是一个重新开始，也是对之前浅表理解的一个补充。 我还是先从Docker容器网络入手，虽然Docker与Kubernetes采用了不同的网络模型：K8s...</description></item><item><title>把学校留的手工作业还给孩子们</title><link>https://tonybai.com/2017/01/05/leave-hand-made-homework-to-kids/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/05/leave-hand-made-homework-to-kids/</guid><description>果果昨天进行了一年级上学期的期末考试，今天基本已经开始了放假，就差月中旬去学校取成绩和开家长会了。不知不觉间一年级的半个学期就这样过去了。作为家长，亲历了一次对小学一年级小豆包的教育过程，同时也亲自见证了一次当前中国一个省会城市重点小学教育状况。在这个时间节点上，感觉自己应该对这个过程做一些回顾和总结，也不枉我个人对孩子教育这个课题的持续关注。这是第一篇。注：下面的内容并不是现在写的，大致写于20...</description></item><item><title>2016小结</title><link>https://tonybai.com/2017/01/03/2016-summary/</link><pubDate>Tue, 03 Jan 2017 00:00:00 +0800</pubDate><guid>https://tonybai.com/2017/01/03/2016-summary/</guid><description>每到年终岁尾，历史上受到过中国文化影响的国家和地区都有评选当年年度汉字的传统，比如：2016年马来西亚年度汉字为“贪”，鬼子国日本年度汉字为“金”，中国台湾地区年度汉字为“苦”，而大陆地区的年度汉字据说是“规”。其实每个人心中都有一个自己的年度汉字，2016年，我个人的年度汉字为“变”。 一、离职 其实，这两年我求变的步伐一直没有停歇，只是今年迈出了实质性的一步。2016年4月末，就是在参加完Go...</description></item><item><title>使用Kubeadm安装Kubernetes</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/</guid><description>在《当Docker遇到systemd》一文中，我提到过这两天儿一直在做的一个task：使用kubeadm在Ubuntu 16.04上安装部署Kubernetes的最新发布版本-k8s 1.5.1。 年中，Docker宣布在Docker engine中集成swarmkit工具包，这一announcement在轻量级容器界引发轩然大波。毕竟开发者是懒惰的^0^，有了docker swarmkit，驱动...</description></item><item><title>使用Kubeadm安装Kubernetes-Part2</title><link>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</link><pubDate>Fri, 30 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/</guid><description>此文为《使用Kubeadm安装Kubernetes》的第二部分。文章第一部分在这里可以看到。 五、weave network for pod 经过上面那么多次尝试，结果是令人扫兴的。Weave network似乎是最后一颗救命稻草了。有了前面的铺垫，这里就不详细列出各种命令的输出细节了。Weave network也有专门的官方文档用于指导如何与kubernetes集群集成，我们主要也是参考它。 1...</description></item><item><title>当Docker遇到systemd</title><link>https://tonybai.com/2016/12/27/when-docker-meets-systemd/</link><pubDate>Tue, 27 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/27/when-docker-meets-systemd/</guid><description>近期在做Kubernetes集群的升级的相关试验，即从原先的K8s 1.3.7版本升级到最新的K8s 1.5.1版本。k8s自1.4版本开始引入kubeadm，试图简化K8s的安装和使用门槛，提升开发者体验。但kubeadm仅支持16.04及以上的Ubuntu版本，于是我们在升级K8s集群前会遇到另外一个问题：Ubuntu 16.04已经由Upstart初始化系统换成了systemd初始化系统，U...</description></item><item><title>使用Visual Studio Code辅助Go源码编写</title><link>https://tonybai.com/2016/12/23/write-go-code-in-vscode/</link><pubDate>Fri, 23 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/23/write-go-code-in-vscode/</guid><description>作为VIMer，日常编码中，Vim编辑器依然是我的首选。以前以C语言为主要语言的时候是这样，现在以Go为主要语言时亦是这样。不过近期发现Mac上使用Vim在编写Go代码时，Vim时不时的“抽风”：出现一些“屏幕字符被篡改”的问题，比如下面这幅图中”func”变成了”fknc”: 虽然一段时间后，显示会自动更正过来，但这种“篡改”是会让你产生“幻觉”的。你会想：是不是我真的将”func”写成”fkn...</description></item><item><title>论golang Timer Reset方法使用的正确姿势</title><link>https://tonybai.com/2016/12/21/how-to-use-timer-reset-in-golang-correctly/</link><pubDate>Wed, 21 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/21/how-to-use-timer-reset-in-golang-correctly/</guid><description>2016年，Go语言在Tiobe编程语言排行榜上位次的大幅蹿升(2016年12月份Tiobe榜单：go位列第16位，Rating值：1.939%)。与此同时，我们也能切身感受到Go语言在世界范围蓬勃发展，其在中国地界儿上的发展更是尤为猛烈^0^：For gopher们的job变多了、网上关于Go的资料也大有“汗牛充栋”之势。作为职业Gopher^0^，要为这个生态添砖加瓦，就要多思考、多总结，关键...</description></item><item><title>给女儿搭建一个博客站点</title><link>https://tonybai.com/2016/12/18/build-a-blog-website-for-my-daughter/</link><pubDate>Sun, 18 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/18/build-a-blog-website-for-my-daughter/</guid><description>时光荏苒。转眼间女儿已经成为一名小学生了，依稀还记得当年果果呱呱坠地的情景，独自回味，感慨万千。 果果3岁前，都是我来记录她的生活点滴和成长历程，那个时候她是我们生活舞台的主角。3岁后，果果学会了说话，上了幼儿园，开始学习各种知识、技能以及各种才艺。尤其是在幼儿园中班之后，她学会了写字、组词、造句和写日记，果果完全可以自己用文字来表达自己了! 我觉得是时候让她自己来记录她的成长历程了，我和她妈妈只...</description></item><item><title>使用wukong全文搜索引擎</title><link>https://tonybai.com/2016/12/06/an-intro-to-wukong-fulltext-search-engine/</link><pubDate>Tue, 06 Dec 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/12/06/an-intro-to-wukong-fulltext-search-engine/</guid><description>近期项目中有一个全文索引和全文搜索的业务需求，组内同事在这方面都没啥经验，找一个满足我们需求的开源的全文搜索引擎势在必行。我们这一期对全文搜索引擎的需求并不复杂，最主要的是引擎可以很好的支持中文分词、索引和搜索，并能快速实现功能。在全文搜索领域，基于Apache lucene的ElasticSearch舍我其谁，其强大的分布式系统能力、对超大规模数据的支持、友好的Restful API以及近实时的...</description></item><item><title>Kubernetes集群的安全配置</title><link>https://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/</link><pubDate>Fri, 25 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/</guid><description>使用kubernetes/cluster/kube-up.sh脚本在装有Ubuntu操作系统的bare metal上搭建的Kubernetes集群并不安全，甚至可以说是“完全不设防的”，这是因为Kubernetes集群的核心组件：kube-apiserver启用了insecure-port。insecure-port背后的api server默认完全信任访问该端口的流量，内部无任何安全机制。并且监...</description></item><item><title>为Kubernetes集群中服务部署Nginx入口服务</title><link>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</link><pubDate>Tue, 22 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/</guid><description>这段日子，一直在搞与Kubernetes有关的东东：像什么Kubernetes集群搭建、DNS插件安装和配置、集成Ceph RBD持久卷、Private Registry镜像库访问等，这些都缘于正在开发的一个类PaaS小平台的需要：“平台虽小，五脏俱全”。整个平台由Kubernetes集群承载，对于K8s集群内部的Service来说，目前还欠缺一个服务入口。之前的《Kubernetes集群中的Ng...</description></item><item><title>Kuberize Ceph RBD API服务</title><link>https://tonybai.com/2016/11/21/kuberize-ceph-rbd-api-service/</link><pubDate>Mon, 21 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/21/kuberize-ceph-rbd-api-service/</guid><description>在《使用Ceph RBD为Kubernetes集群提供存储卷》一文中，我们提到：借助Kubernetes和Ceph的集成，Kubernetes可以使用Ceph RBD为集群内的Pod提供Persistent Volume。但这一过程中，RBD所使用的image的创建、删除还需要手动管理，于是我们又基于go-ceph实现了对RBD image的程序化管理，我们的最终目标是要这种对RBD image的...</description></item><item><title>Kubernetes集群中的Nginx配置热更新方案</title><link>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</link><pubDate>Thu, 17 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/</guid><description>Nginx已经是互联网IT业界一个无敌的存在，作为反向代理、负载均衡、Web服务器等多种角色的扮演者，Nginx在全球各个互联网公司落地、开花和结果，Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中，Nginx同样被拿来作为服务接入的最前端的反向代理，并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多，服务...</description></item><item><title>Kubernetes从Private Registry中拉取容器镜像的方法</title><link>https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/</link><pubDate>Wed, 16 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/</guid><description>话接上文，在《使用go-ceph管理Ceph RBD映像》一文中我们提到了，我们需要自建一个ceph rbd api service用于给我的产品控制台提供RESTful API服务接口。这个服务我也是打算放在kubernetes集群中作为一个Service运行的。这两天完成了这个服务开发，并编写完Service的Dockerfile，将镜像build, tag并push到了我们在阿里云的私有镜像...</description></item><item><title>使用go-ceph管理Ceph RBD映像</title><link>https://tonybai.com/2016/11/09/operate-ceph-rbd-images-with-go-ceph/</link><pubDate>Wed, 09 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/09/operate-ceph-rbd-images-with-go-ceph/</guid><description>在《使用Ceph RBD为Kubernetes集群提供存储卷》一文中，我们了解到，在Kubernetes和ceph的集成过程中，有一个步骤是需要手动操作的，那就是创建ceph osd pool下面的rbd image。我们需要想办法去除这一手动步骤。关于方案，我们首先想到的就是是否可以调用Ceph提供的REST API来管理rbd的pool和image？ Ceph提供了两套REST API方案：c...</description></item><item><title>使用Ceph RBD为Kubernetes集群提供存储卷</title><link>https://tonybai.com/2016/11/07/integrate-kubernetes-with-ceph-rbd/</link><pubDate>Mon, 07 Nov 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/11/07/integrate-kubernetes-with-ceph-rbd/</guid><description>一旦走上使用Kubernetes的道路，你就会发现这条路并不好走，充满荆棘。即便你使用Kubernetes建立起的集群规模不大，也是需要“五脏俱全”的，否则你根本无法真正将kubernetes用起来，或者说一个半拉子Kubernetes集群很可能无法满足你要支撑的业务需求。在目前我正在从事的一个产品就是这样，光有K8s还不够，考虑到”有状态服务”的需求，我们还需要给Kubernetes配一个后端存...</description></item><item><title>Kubernetes集群DNS插件安装</title><link>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</link><pubDate>Sun, 23 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/</guid><description>在上一篇关于Kubernetes集群安装的文章中，我们建立一个最小可用的k8s集群，不过k8s与1.12版本后的内置了集群管理的Docker不同，k8s是一组松耦合的组件组合而成对外提供服务的。除了核心组件，其他组件是以Add-on形式提供的，比如集群内kube-DNS、K8s Dashboard等。kube-dns是k8s的重要插件，用于完成集群内部service的注册和发现。随着k8s安装和管...</description></item><item><title>一篇文章带你了解Kubernetes安装</title><link>https://tonybai.com/2016/10/18/learn-how-to-install-kubernetes-on-ubuntu/</link><pubDate>Tue, 18 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/18/learn-how-to-install-kubernetes-on-ubuntu/</guid><description>由于之前在阿里云上部署的Docker 1.12.2的Swarm集群没能正常展示出其所宣称的Routing mesh和VIP等功能，为了满足项目需要，我们只能转向另外一种容器集群管理和服务编排工具Kubernetes。 &amp;gt; _注：之前Docker1.12集群的Routing mesh和VIP功能失效的问题，经过在github上与Docker开发人员的沟通，目前已经将问题原因缩小在阿里云的网络上面，目...</description></item><item><title>Docker 1.12 swarm模式下遇到的各种问题</title><link>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</link><pubDate>Tue, 11 Oct 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/</guid><description>前段时间，由于工作上的原因，与Docker的联系发生了几个月的中断^\_^，从10月份开始，工作中又与Docker建立了广泛密切的联系。不过这次，Docker却给我泼了一盆冷水:(。事情的经过请允许多慢慢道来。 经过几年的开发，Docker已经成为轻量级容器领域不二的事实标准，应用范围以及社区都在快速发展和壮大。今年的年中，Docker发布了其里程碑的版本Docker 1.12，该版本最大的变动就...</description></item><item><title>Go包导入与Java的差别</title><link>https://tonybai.com/2016/09/13/package-import-in-golang-vs-in-java/</link><pubDate>Tue, 13 Sep 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/09/13/package-import-in-golang-vs-in-java/</guid><description>闲暇时翻阅了近期下载到的电子书《Go in Practice》 ，看到1.2.4 Package Management一节中的代码Demo，感觉作者对Go package导入的说法似乎不够精确：“Packages are imported by their name”(后续的说明将解释不精确的原因)。联想到前几天遇到的一个Java包导入的问题，让我隐约地感觉Java程序员很容易将两种语言的Pack...</description></item><item><title>vim-go更新小记</title><link>https://tonybai.com/2016/09/08/upgrade-vim-go/</link><pubDate>Thu, 08 Sep 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/09/08/upgrade-vim-go/</guid><description>自从上一次配置好Mac上的Golang Vim开发环境，基本上就没怎么动过。近两年过去了，Go已经升级到了1.7版本，Vim-go截至目前也已经演化到了1.8版本了。社区的积极关注和使用，让Vim-go的作者Fatih Arslan备受鼓舞，于是近一年来，积极为vim-go添加新功能，发布新版本，并编写了vim-go的详细tutorial。这让我动了更新Vim-go版本的念头，于是就有了本篇内容。...</description></item><item><title>智慧城市到底满足的是谁的诉求</title><link>https://tonybai.com/2016/08/05/whose-appeals-does-smartcity-meet/</link><pubDate>Fri, 05 Aug 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/08/05/whose-appeals-does-smartcity-meet/</guid><description>从当年IBM提出智慧城市概念算起，中国的第一轮智慧城市建设或多或少已经有个6、7年时间了。中国城市在智慧城市概念兴起之前，还切实做了数字城市、无线城市的建设，因此总体来看，中国城市在推进城市化和信息化的道路上已经走了相当长的一段时间了。当前中国城市正处于城市新一轮建设的机遇期，城市化被确定为中国未来经济发展的核心力量，是孕育中国经济发展新动能的关键所在。在这样一个关键时间节点上，我们对已经进行的城...</description></item><item><title>Go 1.7中值得关注的几个变化</title><link>https://tonybai.com/2016/06/21/some-changes-in-go-1-7/</link><pubDate>Tue, 21 Jun 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/06/21/some-changes-in-go-1-7/</guid><description>零、从Release Cycle说起 从Go 1.3版本开始，Golang核心开发Team的版本开发周期逐渐稳定下来。经过Go 1.4、Go1.5和Go 1.6的实践，大神Russ Cox在Go wiki上大致定义了Go Release Cycle的一般流程： 1. 半年一个major release版本。 2. 发布流程启动时间：每年8月1日和次年2月1日（真正发布日期有可能是这个日子，也可能延...</description></item><item><title>闲话智慧城市</title><link>https://tonybai.com/2016/06/01/gossip-in-smart-city/</link><pubDate>Wed, 01 Jun 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/06/01/gossip-in-smart-city/</guid><description>这一个月，因为工作关系，我接触到了“智慧城市”这个概念，这里打算把这一个月来对智慧城市的认知和“感受”记录下来，算是一个小的总结吧，希望能给大家带去点营养。 一、历程 关于智慧城市，我也是从零基础开始起步的。 这一个月来，我有幸聆听了IBM大中华区智慧城市首席规划师岳梅樱博士关于智慧城市的理解；粗读了岳博士主编的两本有关智慧城市的书《智慧城市顶层设计方法论与实践分享》和《智慧城市：实践分享系列谈》...</description></item><item><title>理解Unikernels</title><link>https://tonybai.com/2016/05/16/understanding-unikernels/</link><pubDate>Mon, 16 May 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/05/16/understanding-unikernels/</guid><description>当Docker, Inc在今年年初宣布收购Unikernel Systems公司时，Unikernel对大多数技术人员来说还是很陌生的。直到今天，知名问答类网站知乎上也没有以Unikernel为名字的子话题。国内搜索引擎中关于Unikernel的内容很少，实践相关的内容就更少了。Docker收购Unikernel Systems，显然不是为了将这个其未来潜在的竞争对手干掉，而是嗅到了Unikern...</description></item><item><title>部署devstack</title><link>https://tonybai.com/2016/05/04/deploy-devstack/</link><pubDate>Wed, 04 May 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/05/04/deploy-devstack/</guid><description>新公司是一家数据与基础设施提供商(to B)。初来乍到，和这里的同事了解了一些云计算平台和大数据平台的技术栈。对于“新鲜”(only to me)的技术栈，自己总有一种折腾的冲动，于是就有了这一篇备忘性质的文章，记录一下自己部署devstack的步骤、遇到的问题和解决方法。 和诸多国内提供公有云的厂商一样，公司的云产品也是基于成熟的OpenStack云计算平台框架和组件搭建的，并做了一些定制。长久...</description></item><item><title>GopherChina2016后记</title><link>https://tonybai.com/2016/04/18/my-experience-of-gopherchina2016/</link><pubDate>Mon, 18 Apr 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/04/18/my-experience-of-gopherchina2016/</guid><description>4月17日晚22:51，伴随着D7次动车缓缓驶入沈阳北站，拖着疲惫的身体和些许兴奋的我，结束了两天的GopherChina 2016之旅。 一、GopherChina大会 GopherChina大会是中国大陆地区Golang语言推广第一品牌。2015年在上海成功了举办了第一届大会；2016年，大会发起人astaxie为充分照顾帝都（及周边）Gophers们的情绪^\_^，将GopherChina ...</description></item><item><title>Rancher使用入门</title><link>https://tonybai.com/2016/04/14/an-introduction-about-rancher/</link><pubDate>Thu, 14 Apr 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/04/14/an-introduction-about-rancher/</guid><description>上个月末，Rancher Labs在其官方博客上宣布了 Rancher 1.0正式版本发布。 这是继Apache Mesos、 Google Kubernetes以及Docker 原生 Swarm 之后，又一个可用于Production环境中的容器管理和服务编排工具，而Rancher恰似这个领域的最后一张拼图（请原谅我的孤陋寡闻，如 果有其他 厂商在做这方面产品，请在评论中留言告诉我）。从Ranc...</description></item><item><title>使用Filebeat输送Docker容器的日志</title><link>https://tonybai.com/2016/03/25/ship-docker-container-log-with-filebeat/</link><pubDate>Fri, 25 Mar 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/03/25/ship-docker-container-log-with-filebeat/</guid><description>今天我们来说说Docker容器日志。 一、容器日志输出的旧疾及能力演进 Docker容器在默认情况下会将打印到stdout、stderr的 日志数据存储在本地磁盘上，默认位置为/var/lib/docker/containers/{ContainerId} /{ContainerId}-json.log。在老版本Docker中，这种日志记录方式经常被诟病，诸如：日志大小无限制、无法 Rotate（...</description></item><item><title>现代企业应用架构-使用Docker CaaS交付敏捷的、可移植的、受控的应用</title><link>https://tonybai.com/2016/03/15/modern-application-architecture-for-the-enterprise-with-docker-caas/</link><pubDate>Tue, 15 Mar 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/03/15/modern-application-architecture-for-the-enterprise-with-docker-caas/</guid><description>年初，火得发烫的独角兽IT公司Docker发布了一款新的企业级产品 Docker Datacenter （简称：DDC）。作 为拥有原生Docker容器技术的公司，其每个市场动作都会让轻量级容器生态圈内的公司不敢小觑。而要揣度Docker对商业改变的理解、对容器 技术栈应用的理解以及对新产品和服务在生态圈中的定位，就有必要对Docker的这款产品做一些比较深刻的了解。而其技术白皮书 恰是我们了解 ...</description></item><item><title>部署私有Docker Registry</title><link>https://tonybai.com/2016/02/26/deploy-a-private-docker-registry/</link><pubDate>Fri, 26 Feb 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/02/26/deploy-a-private-docker-registry/</guid><description>安装部署一个私有的Docker Registry是引入、学习和使用Docker这门技术的必经之路之一。尤其是当Docker被所在组织接受，更多人、项目和产品开始接触和使用Docker时，存储和分发自制的Docker image便成了刚需。Docker Registry一如既往的继承了“Docker坑多”的特点，为此这里将自己搭建”各类”Registry过程中执行的步骤、遇到的问题记录下来，为己备忘...</description></item><item><title>Go 1.6中值得关注的几个变化</title><link>https://tonybai.com/2016/02/21/some-changes-in-go-1-6/</link><pubDate>Sun, 21 Feb 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/02/21/some-changes-in-go-1-6/</guid><description>北京时间2016年2月18日凌晨，在Go 1.5发布 半年后，Go 1.6正式Release 了。与Go 1.5的“惊天巨变”（主要指Go自举）相比，Go 1.6的Change 算是很小的了，当然这也与Go 1.6的dev cycle过于短暂有关。但Go社区对此次发布却甚是重视，其热烈程度甚至超出了Go 1.5。在Dave Cheney的倡导 下，Gophers们在全球各地举行了Go 1.6 Re...</description></item><item><title>理解Docker跨多主机容器网络</title><link>https://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/</link><pubDate>Mon, 15 Feb 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/</guid><description>在Docker 1.9 出世前，跨多主机的容器通信方案大致有如下三种： 1、端口映射 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上，仅提供四层及以上应用和服务使用。这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信。显然这个方案的应用场景很有局限。 2、将物理网卡桥接到虚拟网桥，使得容器与宿主机配置在同一网段下 在各个宿主机上都建立一个新虚拟网桥设备br0，将各自物理网卡...</description></item><item><title>理解Docker容器端口映射</title><link>https://tonybai.com/2016/01/18/understanding-binding-docker-container-ports-to-host/</link><pubDate>Mon, 18 Jan 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/01/18/understanding-binding-docker-container-ports-to-host/</guid><description>在”理解Docker单机容器网络“一文中，还有一个Docker容器网络的功能尚未提及，那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上，最终达到一种效果：外部程序通过宿主机的P端口访问，就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案，一种是1.7版本之前docker-proxy+iptables DNAT的方式；另一...</description></item><item><title>理解Docker单机容器网络</title><link>https://tonybai.com/2016/01/15/understanding-container-networking-on-single-host/</link><pubDate>Fri, 15 Jan 2016 00:00:00 +0800</pubDate><guid>https://tonybai.com/2016/01/15/understanding-container-networking-on-single-host/</guid><description>Docker容器是近两年最 火的IT技术之一，用“火山爆发式“来形容Docker的成 长也不为过。Docker在产品服务的devops 运维、云 计算(CaaS)、大数据以及企业内部应用等领域正在被越来越多的接受和广泛应用。Docker技术的本质在于提升计算密度和提升部署效率，高屋 建瓴的讲，它的出现符合人类社会对绿色发展的追求，降低资源消耗，提升资源的单位利用率。不过经历了两年多的发展，Dock...</description></item><item><title>Go语言随机测试工具go-fuzz</title><link>https://tonybai.com/2015/12/08/go-fuzz-intro/</link><pubDate>Tue, 08 Dec 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/12/08/go-fuzz-intro/</guid><description>在Go 1.5发布时，前Intel Black Belt级工程师，现Google工程师Dmitry Vyukov同时发布了Go语言随机测试工具go-fuzz。在 GopherCon2015大会上，Dmitry Vyukov在其名为“\[Go Dynamic Tools\]”的presentation中着重介绍了go-fuzz。 go-fuzz是一款随机测试(Random testing)工具。对于...</description></item><item><title>Go语言TCP Socket编程</title><link>https://tonybai.com/2015/11/17/tcp-programming-in-golang/</link><pubDate>Tue, 17 Nov 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/11/17/tcp-programming-in-golang/</guid><description>Golang的主要 设计目标之一就是面向大规模后端服务程序，网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中，我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”，而TCP socket则是网络编程的主流，即便您没有直接使用到net中有关TCP Socket方面的接口，但net/http总是用到了吧，http底层依旧是用tcp socket实现...</description></item><item><title>Go语言错误处理</title><link>https://tonybai.com/2015/10/30/error-handling-in-go/</link><pubDate>Fri, 30 Oct 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/10/30/error-handling-in-go/</guid><description>近期闲暇用Go写一个lib，其中涉及到error处理的地方让我琢磨了许久。关于Go错误处理的资料和视频已有许多，Go authors们也在官方Articles和Blog上多次提到过一些Go error handling方面的一些tips和best practice，这里仅仅算是做个收集和小结，尽视野所及，如有不足，欢迎评论中补充。（10月因各种原因，没有耕博，月末来一发，希望未为晚矣 ^\_^） ...</description></item><item><title>使用Hugo搭建静态站点</title><link>https://tonybai.com/2015/09/23/intro-of-gohugo/</link><pubDate>Wed, 23 Sep 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/09/23/intro-of-gohugo/</guid><description>虽然前一篇Blog宣称自己要用Markdown开始写Post，但实际操作起来还是发现了诸多不兼容问题(插件与主题间、插件与插件间的)，让编写和修改文章变得十分繁琐，于是我研究了一下静态Web站点生成工具Hugo。Hugo是由前Docker的重量级员工(2015年8月末从Docker离职)：Steve Francia实现的一个开源静态站点生成工具框架，类似于Jekyll、Octopress或Hexo...</description></item><item><title>开始使用Markdown写Blog</title><link>https://tonybai.com/2015/09/19/write-blog-in-markdown/</link><pubDate>Sat, 19 Sep 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/09/19/write-blog-in-markdown/</guid><description>近期发了一些带有大量代码的Go技术文章，结果文章中的代码样式被大家鄙视了，比如评论中的“不忍直视”、“这代码看得让人难受”等。于是我决定花些时间尝试做些改变。 博客系统 目前使用的这个博客系统是放在DigitalOcean VPS的Wordpress 3.2.1。在迁移到VPS之前，我的博客是一直托管在同事的一个托管主机上的，当初从blogbus迁移到他的托管WordPress主机时使用的就是Wo...</description></item><item><title>关于Go，你可能不注意的7件事</title><link>https://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/</link><pubDate>Thu, 17 Sep 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/</guid><description>Go以简洁著称，但简洁中不乏值得玩味的小细节。这些小细节不如goroutine、interface和channel那样&amp;#34;高大上&amp;#34;，&amp;#34;屌 丝&amp;#34;得可能不经常被人注意到，但它们却对理解Go语言有着重要的作用。这里想挑出一些和大家一起通过详实的例子来逐一展开和理解。本文内容较为基础，适合初学者，高手可飘过:) **一、源文件字符集****和字符集编码** Go源码文件默认采用Unicode字符集，Unic...</description></item><item><title>理解Golang语句中的求值顺序</title><link>https://tonybai.com/2015/08/27/understanding-go-statements-evaluating-order/</link><pubDate>Thu, 27 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/27/understanding-go-statements-evaluating-order/</guid><description>Golang在变量声明、初始化以及赋值语句上照比C语言有了许多改进： **a) 支持在同一行声明多个变量** var a, b, c int **b) 支持在同一行初始化多个变量（不同类型也可以）** var a, b, c = 5, &amp;#34;hello&amp;#34;, 3.45 a, b, c := 5, &amp;#34;hello&amp;#34;, 3.45 (short variable declaration) **c) 支持在同一行...</description></item><item><title>Go程序调试、分析与优化</title><link>https://tonybai.com/2015/08/25/go-debugging-profiling-optimization/</link><pubDate>Tue, 25 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/25/go-debugging-profiling-optimization/</guid><description>Brad Fitzpatrick在YAPC Asia 2015（Yet Another Perl Conference）上做了一次技术分享，题为：&amp;#34;Go Debugging, Profiling, and Optimization&amp;#34;。个人感觉这篇分享中价值最大的是BradFitz现场演示的一个有关如何对Go程序进行调试、分析和优化的 Demo，Brad将demo上传到了他个人在github.com...</description></item><item><title>Golang技术幻灯片的查看方法</title><link>https://tonybai.com/2015/08/22/how-to-view-golang-tech-slide/</link><pubDate>Sat, 22 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/22/how-to-view-golang-tech-slide/</guid><description>随着go 1.5的发布，golang在世界各地日益受到欢迎，golang技术鼓吹者在世界各地举办各种级别的技术会议(从GopherCon大会到小小的meetup)，并在会议上分享自己的技术心得和技术想法。 Golang相关的技术幻灯片有多种格式，以.ppt, .pdf和.slide为主。ppt、pdf自然不必多说，需要直接下载查看。 .slide是随着golang诞生而出现的一种present格式...</description></item><item><title>weed-fs使用简介</title><link>https://tonybai.com/2015/08/22/intro-of-using-weedfs/</link><pubDate>Sat, 22 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/22/intro-of-using-weedfs/</guid><description>weed-fs，全名Seaweed-fs，是一种用golang实现的简单且高可用的分布式文件系统。该系统的目标有二： \- 存储billions of files \- serve the files fast weed-fs起初是为了搞一个基于Fackbook的Haystack论文的实现，Haystack旨在优化Fackbook内部图片存储和获取。后在这个基 础上，weed-fs作者又增加了若干...</description></item><item><title>godep支持Go 1.5 vendor</title><link>https://tonybai.com/2015/08/05/godep-support-go15-vendor/</link><pubDate>Wed, 05 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/05/godep-support-go15-vendor/</guid><description>Go 1.5 vendor/实验特性出炉后，市面上的go第三方包依赖和管理工具显然都无法与之兼容，除了修改代码，别无它法。市场占有率最大的godep做出了表 率，目前其最新版本(go get github.com/tools/godep)已经初步支持了这一实验特性，即在GO15VENDOREXPERIMENT=1时，将使用vendor 目录（而不是Godeps目录）存放copy的第三方包，并在go...</description></item><item><title>理解Go 1.5 vendor</title><link>https://tonybai.com/2015/07/31/understand-go15-vendor/</link><pubDate>Fri, 31 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/31/understand-go15-vendor/</guid><description>Go 1.5中(目前最新版本go1.5beta3)加入了一个experimental feature: **vendor/**。这个feature不是Go 1.5的正式功能，但却是Go Authors们在解决Go被外界诟病的包依赖管理的道路上的一次重要尝试。目前关于Go vendor机制的资料有限，主要的包括如下几个： 1、Russ Cox在Golang-dev group上的一个名 为&amp;#34;prop...</description></item><item><title>制作go-talks.appspot.com应用镜像</title><link>https://tonybai.com/2015/07/27/make-a-mirror-of-gotalks-appsport-app/</link><pubDate>Mon, 27 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/27/make-a-mirror-of-gotalks-appsport-app/</guid><description>Go语言号称面向工程：对工程目录组织、代码风格（gofmt）、文档（生成）都制定的相应的“**标准**”，并提供了相应的工具帮助开发者满足这些工程specs。 gofmt用于格式化代码，形成统一代码风格。 godoc.org用于查看标准库或repo的doc。 go-talks.appspot.com则是用来查看go slide。 像godoc和go-talks这种以服务形式提供文档查看的形式不得不...</description></item><item><title>使用core-vagrant方式安装CoreOS</title><link>https://tonybai.com/2015/07/20/install-coreos-by-coreos-vagrant/</link><pubDate>Mon, 20 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/20/install-coreos-by-coreos-vagrant/</guid><description>CoreOS是一种专门为运行类docker容器而生的linux发行版。与其他通用linux发行版（ubuntu、debian、redhat)相 比，它具有体型最小，消耗最小，支持滚动更新等特点。除此之外CoreOS内置的分布式系统服务组件也给开发者和运维者组建分布式集群、部署分布式服务应 用带来了极大便利。 CoreOS与知名容器Docker脚前脚后诞生，到目前为止已经较为成熟，国外主流云平台提供...</description></item><item><title>Go 1.5中值得关注的几个变化</title><link>https://tonybai.com/2015/07/10/some-changes-in-go-1-5/</link><pubDate>Fri, 10 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/10/some-changes-in-go-1-5/</guid><description>在GopherCon2015开幕之 际，Google Go Team终于放出了Go 1.5Beta1版本的安装包。在go 1.5Beta1的发布说明中，Go Team也诚恳地承认Go 1.5将打破之前6个月一个版本的发布周期，这是因为Go 1.5变动太大，需要更多时间来准备这次发布（fix bug, Write doc）。关于Go 1.5的变化，之前Go Team staff在各种golang技术...</description></item><item><title>使用consul实现分布式服务注册和发现</title><link>https://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/</link><pubDate>Mon, 06 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/</guid><description>Consul是HashiCorp公司推出的开源工具，用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案，比如 Airbnb的SmartStack等相比，Consul的方案更“一站式”，内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案，不再需要依赖其他工具（比如ZooKeeper等）。使用起来也较 为简单。Consul用Golang实...</description></item><item><title>Golang程序配置方案小结</title><link>https://tonybai.com/2015/07/01/config-solutions-for-golang-app/</link><pubDate>Wed, 01 Jul 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/07/01/config-solutions-for-golang-app/</guid><description>在Twitter上看到一篇关于Golang程序配置方案总结的系列文章（一个mini series，共6篇），原文链接：在这里。我觉得不错，这里粗略整理（非全文翻译）一下，供大家参考。 **一、背景** 无论使用任何编程语言开发应用，都离不开配置数据。配置数据提供的形式有多样，不外乎命令行选项(options)、参数（parameters)，环境 变量（env vars)以及配置文件等。Golang...</description></item><item><title>也谈并发与并行</title><link>https://tonybai.com/2015/06/23/concurrency-and-parallelism/</link><pubDate>Tue, 23 Jun 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/06/23/concurrency-and-parallelism/</guid><description>在一般人的眼中，“并行”就是并行，即你干你的，我干我的，两个“并行”的执行过程可能是两条毫无瓜葛的平行线，也可能是有交叉，但瞬即分开的两条线。不 过在程序员的世界里，有关“并行”的概念却有两个单词：Concurrency和Parallelism，对应的比较主流的中文翻译为并发 (Concurrency)和并行(Parallelism)。 之前一直使用C、Python进行Coding，对Concrr...</description></item><item><title>Appdash，用Go实现的分布式系统跟踪神器</title><link>https://tonybai.com/2015/06/17/appdash-distributed-systems-tracing-in-go/</link><pubDate>Wed, 17 Jun 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/06/17/appdash-distributed-systems-tracing-in-go/</guid><description>在“云”盛行的今天，分布式系统已不是什么新鲜的玩意儿。用脚也能想得出来：Google、baidu、淘宝、亚马逊、twitter等IT巨头 背后的巨型计算平台都是分布式系统了，甚至就连一个简单的微信公众号应用的后端也都分布式了，即便仅有几台机器而已。分布式让系统富有弹性，面 对纷繁变化的需求，可以伸缩自如。但分布式系统也给开发以及运维人员带来了难题：如何监控和优化分布式系统的行为。 以google为...</description></item><item><title>巴萨“三冠王”梅开二度，梅球王预定第五座金球奖杯</title><link>https://tonybai.com/2015/06/07/barca-win-treble-twice/</link><pubDate>Sun, 07 Jun 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/06/07/barca-win-treble-twice/</guid><description>好久不在博客上写有关足球的文章了。上一次聊足球，还是在去年世界杯决赛后，就是那个让全世界阿根廷球迷、梅西球迷伤心的日子。梅西登上领奖台瞥视大力神 金杯而不能举起的场景曾让无数梅西球迷心碎。不过梅西的足球世界大部分时间是快乐的，才用不到一年，梅西就用职业生涯的第二个“三冠王”告诉大家：**王者梅西回来了** ！ 今天早上8：30，用了2个多小时看完了CCTV5 尤文vs巴萨的2015年欧冠决赛的录像...</description></item><item><title>Caddy，一个用Go实现的Web Server</title><link>https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/</link><pubDate>Thu, 04 Jun 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/</guid><description>这是一个Web Server的时代，apache2与nginx共舞，在追求极致性能的路上，没有最高，只有更高。但这又是一个追求个性化的时代，有些Web Server并没有去挤“Performance提升”这一独木桥，而是有着自己的定位，Caddy就是这样一个开源Web Server。 Caddy的作者Matt Holt在caddy官网以及FAQ中对caddy的目标阐释如下： 其他Web Serve...</description></item><item><title>ngrok原理浅析</title><link>https://tonybai.com/2015/05/14/ngrok-source-intro/</link><pubDate>Thu, 14 May 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/05/14/ngrok-source-intro/</guid><description>之前在进行微信Demo开发时曾用到过ngrok这个强大的tunnel(隧道)工具，ngrok在其github官方页面上的自我诠释是 “introspected tunnels to localhost&amp;#34;，这个诠释有两层含义： 1、可以用来建立public到localhost的tunnel，让居于内网主机上的服务可以暴露给public，俗称内网穿透。 2、支持对隧道中数据的introspection...</description></item><item><title>Go和HTTPS</title><link>https://tonybai.com/2015/04/30/go-and-https/</link><pubDate>Thu, 30 Apr 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/04/30/go-and-https/</guid><description>近期在构思一个产品，考虑到安全性的原因，可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP（使用Golang开 发微信系列）。对HTTPS的了解则始于那次自行搭建ngrok服务，在那个过程中照猫画虎地为服务端生成了一些私钥和证书，虽然结果是好 的：ngrok服务成功搭建起来了，但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会，对HTTPS做一些深度挖掘。...</description></item><item><title>Blog站点被黑以及问题解决过程</title><link>https://tonybai.com/2015/04/12/fix-hacked-blog-site/</link><pubDate>Sun, 12 Apr 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/04/12/fix-hacked-blog-site/</guid><description>记得前些日子，我在Blog评论里发现有人说我的Blog站点被黑： &amp;#34;YOUR SITE HAS BEEN HACKED – THERE ARE PARASITE PAGES IN http://tonybai.com/dl SECURE YOUR SITE!!!&amp;#34; 粗浅检查了一番，没有发现什么异常，也就没把这事当回事儿。 昨天上Gmail(由于需要搭梯子，不经常登录)，发现一位网友发来mail说我...</description></item><item><title>搭建自己的ngrok服务</title><link>https://tonybai.com/2015/03/14/selfhost-ngrok-service/</link><pubDate>Sat, 14 Mar 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/03/14/selfhost-ngrok-service/</guid><description>在国内开发微信公众号、企业号以及做前端开发的朋友想必对ngrok都不陌生吧，就目前来看，ngrok可是最佳的在内网调试微信服务的tunnel工 具。记得今年春节前，ngrok.com提供的服务还一切正常呢，但春节后似乎就一切不正常了。ngrok.com无法访问，ngrok虽然能连上 ngrok.com提供的服务，但微信端因为无法访问ngrok.com，导致消息一直无法发送到我们的服务地址上，比如x...</description></item><item><title>理解Golang包导入</title><link>https://tonybai.com/2015/03/09/understanding-import-packages/</link><pubDate>Mon, 09 Mar 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/03/09/understanding-import-packages/</guid><description>Golang使用包（package）这种语法元素来组织源码，所有语法可见性均定义在package这个级别，与Java 、python等语言相比，这算不上什么创新，但与C传统的include相比，则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单： 通过package关键字定义包： package xxx 使用import关键字，导入要使用的标准库包或第三方依赖包。 import ...</description></item><item><title>近期遇到的3个Golang代码问题</title><link>https://tonybai.com/2015/01/23/three-issues-about-go-code/</link><pubDate>Fri, 23 Jan 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/01/23/three-issues-about-go-code/</guid><description>这两周来业余时间都在用Golang写代码，现在处于这样一个状态：除了脚本，就是Golang了。反正能用golang实现的，都用golang写。 Golang语言相对成熟了，但真正写起来，还是要注意一些“坑”的，下面是这周遇到的三个问题，这里分享出来，希望能对遇到同样问题的童鞋有所帮助。 **一、误用定时器，狂占CPU** golang中有一个通过channel实现timeout或tick time...</description></item><item><title>一个有关Golang变量作用域的坑</title><link>https://tonybai.com/2015/01/13/a-hole-about-variable-scope-in-golang/</link><pubDate>Tue, 13 Jan 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/01/13/a-hole-about-variable-scope-in-golang/</guid><description>临近下班前编写和调试一段Golang代码，但运行结果始终与期望不符，怪异的很，下班前依旧无果。代码Demo如下： //testpointer.go package main import (         &amp;#34;fmt&amp;#34; ) var p \*int func foo() (\*int, error) {         var i int = 5         return &amp;amp;i, nil } f...</description></item><item><title>2014小结</title><link>https://tonybai.com/2014/12/31/2014-summary/</link><pubDate>Wed, 31 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/31/2014-summary/</guid><description>2014年的最后一个工作日，这里写下有关2014年的一份小结。 年终总结本无固定格式，但写了若干年后，便有了自己的格式。但今年不打算遵循这个格式了，跳出自己的舒适区，随意写写。 **2014年**12月底，随着亚航QZ8501航班的最后一掉，航空史上都为数不多的灾难年终于画上了句号，留给人们的是久久的惊恐不安，留给遇难者 家属们的是无法释怀的悲伤。2014年12月31日15点，随着A股上证指数最后...</description></item><item><title>使用Golang开发微信公众平台-发送客服消息</title><link>https://tonybai.com/2014/12/30/send-custom-service-text-msg-for-wechat-public-platform-dev-in-golang/</link><pubDate>Tue, 30 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/30/send-custom-service-text-msg-for-wechat-public-platform-dev-in-golang/</guid><description>关注并使用过微信“飞常准”公众号的朋友们都有过如下体验：查询一个航班情况后，这个航班的checkin、登机、起降等信息都会在后续陆续异步发给你，这个服务就是通过微信公众平台的客服消息实现的。 微信公众平台开发文档中关于客服消息的解释如下：“当用户主动发消息给公众号的时候（包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功 事件、用户维权），微信将会把消息数据推送给开发者，开发者在一段...</description></item><item><title>使用Golang开发微信公众平台-接收加密消息</title><link>https://tonybai.com/2014/12/24/recv-encrypted-text-msg-for-wechat-public-platform-dev-in-golang/</link><pubDate>Wed, 24 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/24/recv-encrypted-text-msg-for-wechat-public-platform-dev-in-golang/</guid><description>在上一篇“接收文本消息”一文中，我们了解到：公众服务与微信服务器间的消息是“裸奔”的（即明文传输，通过抓包可以看到）。显然这对于一些对安 全性要求较高的大企业服务号来说，比如银行、证券、电信运营商或航空客服等是不能完全满足要求的。于是乎就有了微信服务器与公众服务间的数据加密 通信流程。 公众号管理员可以在公众号“开发者中心”选择是否采用&amp;#34;安全模式&amp;#34;(区别于明文模式)： 一旦选择了“安全模式”，微信...</description></item><item><title>使用Golang开发微信公众平台-接收文本消息</title><link>https://tonybai.com/2014/12/20/receive-text-for-wechat-public-platform-dev-in-golang/</link><pubDate>Sat, 20 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/20/receive-text-for-wechat-public-platform-dev-in-golang/</guid><description>一旦接入验证成功，成为正式开发者，你可能会迫不及待地想通过手机微信发送一条&amp;#34;Hello, Wechat”到你的公众号服务器。不过上一篇的那个程序还无法处理手机提交的文本消息，本篇将介绍如何用Golang编写公众号程序来接收手机端发送的 文本消息以及回复响应消息。 根据微信公众平台开发文档中描述：“当普通微信用户向公众账号发消息时，微信服务器将POST消息的XML数据包到开发者填写的URL上”。我们...</description></item><item><title>使用Golang开发微信公众平台-接入验证</title><link>https://tonybai.com/2014/12/18/access-validation-for-wechat-public-platform-dev-in-golang/</link><pubDate>Thu, 18 Dec 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/12/18/access-validation-for-wechat-public-platform-dev-in-golang/</guid><description>今年我涉猎的领域有些“广泛”，并且有那么一点“跳跃”：从上半年的终端（游戏）开发到下半年golang、docker以及目前将要提及的微信公众平台 接口开发，似乎有些远离了老本行C以及技术管理的内容。但在这个转型以及创新驱动的时代，这显然是顺势而为。寻求与新兴领域的主动接轨，在实打实的实践 中，扩大了自己的视野，并可以进一步甄别发现适合自己的领域。 移动互联网时代，微信平台一枝独秀，是社交领域的巨人...</description></item><item><title>将Blog迁移到DigitalOcean的VPS上</title><link>https://tonybai.com/2014/11/28/migrate-blog-to-digitalocean-vps/</link><pubDate>Fri, 28 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/28/migrate-blog-to-digitalocean-vps/</guid><description>自从2012年初将Blog从Blogbus搬出来放到同事代理的虚拟主机上后，Blog运行一直很稳定，我也算 是比较满意。但同事的主机代理生意这两年来每况愈下，这促使他在前些时候做出了在今年年末放弃这门生意的决定，于是我又不得不为Blog另找落脚儿地了。 这次不想再单纯的买Wordpress虚拟主机了，一来功能有限，二来国外的入门级VPS价格已经与虚拟主机价格逐渐缩小，尤其是像 DigitalOce...</description></item><item><title>Goroutine是如何工作的</title><link>https://tonybai.com/2014/11/15/how-goroutines-work/</link><pubDate>Sat, 15 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/15/how-goroutines-work/</guid><description>在golangweekly的第36期Go Newsletter中我发现一篇短文&amp;#34;How Goroutines Work&amp;#34; ，其作者在参考了诸多资料后，简短概要地总结了一下 Goroutine的工作原理，感觉十分适合刚入门的Gophers（深入理解Goroutine调度的话，可以参考Daniel Morsing的&amp;#34; The Go scheduler&amp;#34; )。这里粗译如下。 **一、Go语言简介** 如...</description></item><item><title>Go语言的有效错误处理</title><link>https://tonybai.com/2014/11/14/effective-error-handling-in-go/</link><pubDate>Fri, 14 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/14/effective-error-handling-in-go/</guid><description>中午闲暇翻看Daniel Morsing的“The Go scheduler”时，发现其另外一篇短文“Effective error handling in Go”，文章不长，但感觉对Go中错误处理方法总结的还是比较到位的，这里译之供大家参考。 **一、简介** Go语言受到诟病最多的一项就是其错误处理机制。如果显式地检查和处理每个error，这恐怕的确会让人望而却步。你可以试试这里列出的几个方法...</description></item><item><title>Go，5周年</title><link>https://tonybai.com/2014/11/12/go-5-years/</link><pubDate>Wed, 12 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/12/go-5-years/</guid><description>2014年11月10日（美国当地时间），Golang的官方博客 放出了Andrew Gerrand的一篇博文《Half a decade with Go》来纪念Go语言发布五周年。文章按时间顺序简要描述了Golang这五年来发展的 点点滴滴，并让全世界Gopher看到了Go可期的光明未来。考虑到这篇文章在墙外，不便于国内Gopher阅读，这里给出中文翻译版，希望能给中国大陆 的Gophers带来些...</description></item><item><title>Golang开发环境搭建-Vim篇</title><link>https://tonybai.com/2014/11/07/golang-development-environment-for-vim/</link><pubDate>Fri, 07 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/07/golang-development-environment-for-vim/</guid><description>虽说sublimetext3+gosublime+gocode是目前较为 流行的Golang开发环境组合，但作为一名VIMer，没有一套得心应手的Vim for Golang dev心里总是过不去的。Golang虽然年轻，但即便是从Go 1版本发布(2012年3月28日)算起，掐指算来也有小三年了。全世界的开发者已经为Golang贡献了较为成熟的Vim插件了。有了这些插件，搭建出 一套高效的Gol...</description></item><item><title>Go语言是如何处理栈的</title><link>https://tonybai.com/2014/11/05/how-stacks-are-handled-in-go/</link><pubDate>Wed, 05 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/05/how-stacks-are-handled-in-go/</guid><description>Go 1.4Beta1刚刚发布，在Go 1.4Beta1中，Go语言的stack处理方式由之前的&amp;#34;segmented stacks&amp;#34;改为了&amp;#34;continuous stacks&amp;#34;。关于Go语言对stack的处理机制、发展历史、存在问题等，CloudFlare的一篇官方blog进行了系统的阐述，这里的内容就是 翻译自CloudFlare的那篇blog：《How Stacks are Handled i...</description></item><item><title>Go 1.4中值得关注的几个变化</title><link>https://tonybai.com/2014/11/04/some-changes-in-go-1-4/</link><pubDate>Tue, 04 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/04/some-changes-in-go-1-4/</guid><description>在Go 1.3发布半年过去后，Go核心项目组于本月初发布了Go 1.4 Beta1版本。这个版本的几个变化点虽然不是革命性的，但对后续Go语言的发展来说，打下了基础，定下了基调。这里就几个值得关注的变化点结合Go 1.4代码进行一些简单描述，希望大家能对Go 1.4有个感性的认知和了解。 Go 1.4依旧保持了Go 1兼容性的承诺，你的已有代码几乎无需任何改动就可以通过Go 1.4的编译并运行。(...</description></item><item><title>Wordpress迁移到Docker容器</title><link>https://tonybai.com/2014/11/01/migrate-wordpress-into-docker-container/</link><pubDate>Sat, 01 Nov 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/11/01/migrate-wordpress-into-docker-container/</guid><description>目前的Blog托管在同事的一个共享主机上，由于种种原因，这个主机即将无法使用，我只能再次迁移我的WordPress，不得不感叹：铁打的Wordpress，流水的主机啊！ 这次迁移前，我仔细考量了一番，如何能让以后可能出现的Wordpress迁移最简化呢？虽然现在的迁移也不是特别复杂。我想到了近期研究的 Docker。目前很多国外的VPS都已经支持了Docker，我只需要在本地制作好Docker容器...</description></item><item><title>godep的一个“坑”</title><link>https://tonybai.com/2014/10/30/a-hole-of-godep/</link><pubDate>Thu, 30 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/30/a-hole-of-godep/</guid><description>很多人学习和使用Golang一段时间后，都会被golang的第三方包依赖版本搞得有些烦躁，golang设计者最初过于乐观的设计使得今天大 家不得不各自想办法解决这个问题。godep就是综合了多年第三方包依赖问题的解决方案后的一个趋向统一的方案，至少是在go get的设计没有进化前的一个比较不错的方案。 今天试用了一把godep，不过“体验”并不理想，这缘于我遇到了godep的一个“坑”，不过是那种...</description></item><item><title>VirtualBox虚拟机下Windows登录密码破解方法</title><link>https://tonybai.com/2014/10/29/crack-windows-logon-password-under-virtualbox/</link><pubDate>Wed, 29 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/29/crack-windows-logon-password-under-virtualbox/</guid><description>近两年虚拟机的发展给开发人员带来了极大便利，安装一个新环境，只需从别人那里copy一份虚拟机文件即可，分分钟搞定。我之前一直在Ubuntu下工 作，Windows偶尔使用，于是在Ubuntu VirtualBox下安装了一个Windows 7。今年将工作环境迁移到Mac Air下了，但偶尔也有Windows的使用需求，于是直接从我原来的Ubuntu下将Win7的Vdi文件Copy到Air上，便直接...</description></item><item><title>Golang的演化历程</title><link>https://tonybai.com/2014/10/25/golang-history/</link><pubDate>Sat, 25 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/25/golang-history/</guid><description>本文来自Google的Golang语言设计者之一Rob Pike大神在GopherCon2014大会上的开幕主题演讲资料“Hello, Gophers!”。Rob大神在这次分 享中用了两个生动的例子讲述了Golang的演化历程，总结了Golang到目前为止的成功因素，值得广大Golang Programmer &amp;amp; Beginner学习和了解。这里也用了&amp;#34;Golang的演化历程&amp;#34;作为标题。 **1、...</description></item><item><title>Golang测试技术</title><link>https://tonybai.com/2014/10/22/golang-testing-techniques/</link><pubDate>Wed, 22 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/22/golang-testing-techniques/</guid><description>本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”，即介绍使用Golang开发 时会使用到的测试技术（主要针对**单元测试**），包括基本技术、高级技术（并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等）等，感觉总结的很全面，这里整理记录下来，希望能给大家带...</description></item><item><title>组织Golang代码</title><link>https://tonybai.com/2014/10/21/organize-golang-code/</link><pubDate>Tue, 21 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/21/organize-golang-code/</guid><description>本月初golang官方blog(需要自己搭梯子)上发布了一篇文章，简要介绍了近几个月Go在一 些技术会议上（比如Google I/O、Gopher SummerFest等）的主题分享并伴有slide链接。其中David Crawshaw的“Organizing Go Code”对Golang的代码风格以及工程组 织的最佳实践进行的总结很是全面和到位，这里按Slide中的思路和内容翻译和摘录如下（部...</description></item><item><title>Golang跨平台交叉编译</title><link>https://tonybai.com/2014/10/20/cross-compilation-with-golang/</link><pubDate>Mon, 20 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/20/cross-compilation-with-golang/</guid><description>近期在某本书上看到Go跨平台交叉编译的强大功能，于是想自己测试一下。以下记录了测试过程以及一些结论，希望能给大家带来帮助。 我的Linux环境如下： uname -a Linux ubuntu-Server-14 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86\_64 x86\_64 x86\_64 GNU/Lin...</description></item><item><title>探讨Docker容器中修改系统变量的方法</title><link>https://tonybai.com/2014/10/14/discussion-on-the-approach-to-modify-system-variables-in-docker/</link><pubDate>Tue, 14 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/14/discussion-on-the-approach-to-modify-system-variables-in-docker/</guid><description>探讨完Docker对共享内存状态持久化的支持状况后，我将遗留产品build到一个pre-production image中，测试启动是否OK。很显然，我过于乐观了，Docker之路并不平坦。我收到了shmget报出的EINVAL错误码，提示参数非法。 shmget的manual对EINVAL错误码的说明如下： EINVAL： A  new  segment  was  to  be  create...</description></item><item><title>探讨docker容器对共享内存的支持情况</title><link>https://tonybai.com/2014/10/12/discussion-on-shared-mem-support-in-docker/</link><pubDate>Sun, 12 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/12/discussion-on-shared-mem-support-in-docker/</guid><description>我们的遗留系统广泛使用了性能最佳的IPC方式 – 共享内存，而且用到了两种共享内存的实现方式：System V共享内存(shmget、shmat、shmdt)以及Mmap映射Regular File。System V共享内存支持一定程度上的内存数据持久化，即当程序创建共享内存对象后，如果不显式删除或物理主机重启，该IPC对象会一直保留，其中的数据也不会丢 失；mmap映射Regular File的...</description></item><item><title>docker容器内服务程序的优雅退出</title><link>https://tonybai.com/2014/10/09/gracefully-shutdown-app-running-in-docker/</link><pubDate>Thu, 09 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/09/gracefully-shutdown-app-running-in-docker/</guid><description>近期在试验如何将我们的产品部署到docker容器中去，这其中涉及到一个技术环节，那就是如何让docker容器退出时其内部运行的服务程序也 可以优雅的退出。所谓优雅退出，指的就是程序在退出前有清理资源（比如关闭文件描述符、关闭socket），保存必要中间状态，持久化内存数据 （比如将内存中的数据flush到文件中）的机会。docker作为目前最火的轻量级虚拟化技术，其在后台服务领域的应用是极其广泛的...</description></item><item><title>Golang Channel用法简编</title><link>https://tonybai.com/2014/09/29/a-channel-compendium-for-golang/</link><pubDate>Mon, 29 Sep 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/09/29/a-channel-compendium-for-golang/</guid><description>在进入正式内容前，我这里先顺便转发一则消息，那就是Golang 1.3.2已经正式发布了。国内的golangtc已经镜像了golang.org的安装包下载页面，国内go程序员与爱好者们可以到&amp;#34;Golang中 国&amp;#34;，即golangtc.com去下载go 1.3.2版本。 Go这门语言也许你还不甚了解，甚至是完全不知道，这也有情可原，毕竟Go在TIOBE编程语言排行榜上位列30开外。但近期使用Gola...</description></item><item><title>Ubuntu Server 14.04安装docker</title><link>https://tonybai.com/2014/09/26/install-docker-on-ubuntu-server-1404/</link><pubDate>Fri, 26 Sep 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/09/26/install-docker-on-ubuntu-server-1404/</guid><description>近期在研究docker这一轻量级容器引擎，研究docker对日常开发测试工作以及产品部署运维工作能带来哪些便利。前些时候刚刚将工作环境从 Ubuntu搬到了Mac Air上，对Mac OS X的一切均不甚熟悉，给docker研究带来了不便，于是打算在VirtualBox中安装一Ubuntu Server作为docker之承载平台。这里记录一下安装配置过程，主要为了备忘，如果能给其他人带来帮助，我会...</description></item><item><title>Cocos2d-x集成Amazon内购和GameCircle服务</title><link>https://tonybai.com/2014/08/04/amazon-inapp-purchasing-and-gamecirle-in-cocos2dx/</link><pubDate>Mon, 04 Aug 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/08/04/amazon-inapp-purchasing-and-gamecirle-in-cocos2dx/</guid><description>由于种种原因，这篇文章已经拖延了N多时间了。今天花了些时间把如何在Cocos2d-x(我用的版本是2.2.2)游戏中集成Amazon的内购和GameCircle服务(仅适用于Android版本)整理一下，发出来，作备忘。 之前在做“手指足球世界杯2014”时，想给这款小游戏加上内购(In-App Purchasing)和积分榜(ScoreBoard)功能。说到Android手机游戏的内购，人们第一...</description></item><item><title>世界足球的那个“王”还会出现吗？</title><link>https://tonybai.com/2014/07/15/will-new-soccer-king-appear/</link><pubDate>Tue, 15 Jul 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/07/15/will-new-soccer-king-appear/</guid><description>准球王梅西最终没能将巴西世界杯的决赛赛场变成自己到加冕地，潘帕斯雄鹰阿根廷连续第三届世界杯被德意志战车践踏，让我这个老阿迷痛心不已。 足球是一种信仰，在足球这个信仰的世界里有神，更要有王。但现代足球趋向整体的战术体系让类似贝利、马拉多纳那样的“王”的出现日益困难。足球界、球迷们 实际上都期望新“王”的诞生，这样才能带来更多的信仰满足感和成就感。因此每当有天赋异秉的球员出现时，大家都会给予足够的关注...</description></item><item><title>Cocos2d-x屏幕适配之Sprite绘制原理</title><link>https://tonybai.com/2014/05/13/sprite-draw-principles-of-cocos2dx-screen-adaptation/</link><pubDate>Tue, 13 May 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/05/13/sprite-draw-principles-of-cocos2dx-screen-adaptation/</guid><description>手机(智能终端)游戏绝大多数为全屏(Full Screen)显示，这样开发人员在制作游戏时势必要考虑不同手机(智能终端）屏幕大小、宽高比的不同给游戏画面带来的影响，并且要将这种影响降低到最 小，努力使用不同终端的游戏玩家拥有几乎相同的游戏画面体验。为此各种游戏引擎在屏幕适配方面都给出了自己的方案，Cocos2d-x也不例外。 在Cocos2d-x官网Wiki上特地撰写了一篇讲解Cocos2d-x多...</description></item><item><title>Cocos2d-x 3.0rc0集成Google AdMob SDK</title><link>https://tonybai.com/2014/05/01/integrate-cocos2dx3rc0-with-admob/</link><pubDate>Thu, 01 May 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/05/01/integrate-cocos2dx3rc0-with-admob/</guid><description>话说Cocos2d-x 3.0上一周迫不及待地发布了正式版，本是一件值得庆幸的事情。但由于不可解决的技术问题，引擎无奈将Android平台的NativeActivity 实现重新回退到了Cocos2d-x 2.2.x版本的实现方案。由于之前已经将 GameDemo移植到了Cocos2d-x 3.0rc0版，直观感受到了NativeActivity方案带来的游戏操作体验上的提升（触屏事件的响应），因...</description></item><item><title>Cocos2d-x 3.0多线程异步资源加载</title><link>https://tonybai.com/2014/04/28/multithreaded-resource-loading-in-cocos2dx-3/</link><pubDate>Mon, 28 Apr 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/04/28/multithreaded-resource-loading-in-cocos2dx-3/</guid><description>Cocos2d-x从2.x版本到上周刚刚才发布的Cocos2d-x 3.0 Final版，其引擎驱动核心依旧是一个单线程的“死循环”，一旦某一帧遇到了“大活儿”，比如Size很大的纹理资源加载或网络IO或大量计算，画面将 不可避免出现卡顿以及响应迟缓的现象。从古老的Win32 GUI编程那时起，Guru们就告诉我们：别阻塞主线程(UI线程)，让Worker线程去做那些“大活儿”吧。 手机游戏，即便...</description></item><item><title>Cocos2d-x 3.0rc2集成ShareSDK</title><link>https://tonybai.com/2014/04/25/integrate-cocos2dx3rc2-with-sharesdk/</link><pubDate>Fri, 25 Apr 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/04/25/integrate-cocos2dx3rc2-with-sharesdk/</guid><description>给自己的手机游戏增加些社交分享功能，有助于游戏宣传和提升知名度，是一种不错的社交营销手段。国内这方面的第三方插件有不少，比如ShareSDK、友 盟分享组件、Baidu分享组件等，之前在研究2.2.2版本时，集成了ShareSDK这个组件，这次迁移到Cocos2d-x 3.0rc2依旧选择集成ShareSDK，这里就来说说集成的过程，遇到的一些问题以及解决方法。这里仅以Android平台游戏集成为...</description></item><item><title>Cocos2d-x 3.0rc2针对Android平台的变动</title><link>https://tonybai.com/2014/04/23/changes-in-cocos2dx-3-rc2-for-android/</link><pubDate>Wed, 23 Apr 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/04/23/changes-in-cocos2dx-3-rc2-for-android/</guid><description>《Hello, Cocos2d-x 3.0》一文发出后没多久，我就迫不及待地将手头的一个习作尝试从2.2.2版本迁移到3.0rc0引擎上。 核心代码迁移相对顺利，大致流程如下： **\* 创建项目** 1) cd cocos2d-x-3.0rc0；     2) 执行setup.py，设置引擎依赖的环境变量，脚本会将COCOS\_CONSOLE\_ROOT和ANT\_ROOT写入到~/.bash\...</description></item><item><title>Hello, Cocos2d-x 3.0rc0</title><link>https://tonybai.com/2014/04/22/hello-cocos2dx-3-rc0/</link><pubDate>Tue, 22 Apr 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/04/22/hello-cocos2dx-3-rc0/</guid><description>Cocos2d-x 3.0版本已经发布了rc2，这让这段时间用熟了Cocos2d-x 2.2.2的我也有些蠢蠢欲动。按照触控科技主创人员在CocoaChina2014大会上的讲解，Cocos2d-x 3.0版本相比2.x版本在各方面都有不错的提升，于是乎就想把手头上的一款习作移植到3.0版本引擎下，看看运行效果如何。不过在移植之前，我先来看看 3.0与2.0相比在整体代码结构以及引擎驱动核心方面到...</description></item><item><title>ShareSDK Cocos2d-x专用组件的一个Bug</title><link>https://tonybai.com/2014/04/17/a-bug-from-sharesdk-componet-for-cocos2dx/</link><pubDate>Thu, 17 Apr 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/04/17/a-bug-from-sharesdk-componet-for-cocos2dx/</guid><description>近期研究了一下Game App做社交分享，最后选择了ShareSDK来集成，不仅是因为ShareSDK支持国内外主流社交平台，更重要的是ShareSDK提供了专门的 cocos2d-x集成方案，有专门的文档和代码Demo供开发者参考。 文档中提到了三种集成方式：纯Java方式、plugin-x方式以及Cocos2d-x专用组件方式，这里选择了ShareSDK Cocos2d-x专用组件（v2.3....</description></item><item><title>Cocos2d-x内存管理-绕不过去的坎</title><link>https://tonybai.com/2014/03/18/cocos2dx-memory-management/</link><pubDate>Tue, 18 Mar 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/03/18/cocos2dx-memory-management/</guid><description>Cocos2d-x引擎的核心是用C++编写的，那对于所有使用该引擎的游戏开发人员来说，内存管理是一道绕不过去的坎。 关于Cocos2d-x内存管理，网上已经有了许多参考资料，有些资料写的颇为详实，因为在内存管理这块我不想多费笔墨，只是更多的将思路描述清 楚。 **一、对象内存引用计数** Cocos2d-x内存管理的基本原理就是对象内存引用计数，Cocos2d-x将内存引用计数的实现放在了顶层父类...</description></item><item><title>Hello, Cocos2d-x</title><link>https://tonybai.com/2014/03/11/hello-cocos2dx/</link><pubDate>Tue, 11 Mar 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/03/11/hello-cocos2dx/</guid><description>女儿从两岁半开始接触iPad，在这个年龄段也只有一些幼教类游戏适合她玩。虽然知道iPad玩久了对视力有伤害，但有时候还真拗不过果果，索性 也就让她玩一会儿。之前对智能终端上的东西不是很在意，也没啥兴趣，这大概与当年在大学时做Win32 GUI开发的糟糕经历多多少少有点关系。不过智能终端是大势所趋，历史的潮流不能违抗。虽然自己并非以Android/iOS编程为主业，但适当学习学习 总归没有坏处，万一...</description></item><item><title>说说执行力</title><link>https://tonybai.com/2014/03/05/thought-on-executive-power/</link><pubDate>Wed, 05 Mar 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/03/05/thought-on-executive-power/</guid><description>_You are never to dictate what I can and can not do. The only two words I want to hear from you when I ask you to do something are &amp;#34;Yes&amp;#34; and &amp;#34;Sir&amp;#34;。（我能做什么不能做什么，你管不着。我吩咐你做事的时候，只想听到两个词，&amp;#34;是的&amp;#34;和&amp;#34;先生&amp;#34;。）       ...</description></item><item><title>关于2014团队改善的考量</title><link>https://tonybai.com/2014/03/03/considerations-on-team-improved-in-2014/</link><pubDate>Mon, 03 Mar 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/03/03/considerations-on-team-improved-in-2014/</guid><description>_一个人的品行，不取决于这人如何享受胜利，而在于这人如何忍受失败。                                                                        — 《纸牌屋》第一季_ 团队改善，不是那种很快见到成果或者效益的活儿。 但这件事你做不做呢？坦诚的说，今年我在这方面的“热情”真的不是那么高，肯定是不如前两年了，因为是时候更多地为自己的“前...</description></item><item><title>厨房里的领导课</title><link>https://tonybai.com/2014/02/18/mentoring-in-the-kitchen/</link><pubDate>Tue, 18 Feb 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/02/18/mentoring-in-the-kitchen/</guid><description>_生活中永远不缺少大道理，缺的是一颗善于思考和发现它们的心。                                                                         – Tony Bai_ 晚上回到家，家人端上来热腾腾的饭菜。吃了几口，感觉味道较为普通。盘子里那些被加工过的食材是昨天刚刚买到的，又好又新鲜。顿然一种可惜的赶脚油然而 生。为什么这么上好新鲜的食...</description></item><item><title>2013小结</title><link>https://tonybai.com/2014/01/04/my-summary-of-2013/</link><pubDate>Sat, 04 Jan 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/01/04/my-summary-of-2013/</guid><description>2013年的个人年终总结比以往来得晚了一些，至于原因，我也说不清楚，拖延症也罢，其他原因也罢，总之是晚了。 写年终小结已经有小几年了，风格一直如一，无非是老三样：工作得失、生活酸甜以及新年展望，今年也不利外。 **\* 工作篇** 我们部门在所在行业里已经摸爬滚打了10多年了，经 历和见证了这个行业从诞生、增长、成熟到如今的衰退的整个过程。也正是由于处于行业的衰退期，2013年部门的运营十分艰难。...</description></item><item><title>向安德学指挥</title><link>https://tonybai.com/2013/12/27/learn-how-to-command-from-ender/</link><pubDate>Fri, 27 Dec 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/12/27/learn-how-to-command-from-ender/</guid><description>_指挥官必须有良好的精神素质，必须具备果敢、坚定的性格和冷静的智慧；必须了解和 学习控制部队对于死亡和痛苦的反应。                                                                                                            — 克劳塞维茨 《战争论》_ 指挥，看起来并非是程序员的本职工作。 在...</description></item><item><title>只为那一抹释然</title><link>https://tonybai.com/2013/12/26/just-for-being-relieved/</link><pubDate>Thu, 26 Dec 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/12/26/just-for-being-relieved/</guid><description>_一切没有目标的努力，都是瞎忙活儿。_                                                     _\- Tony Bai_ 刚实施回来，就又投入到新工作中，到今天才有那么一点点时间写写这件事儿。 **\* 缘起** 我们的遗留系统性能一直不高，导致这一局面的因素有很多，比如最初设计和实现的“考虑不足”、后续维护人员的“随波逐流”甚至缺少勇气对影响性能...</description></item><item><title>团队与创造的平衡</title><link>https://tonybai.com/2013/12/21/the-balance-between-team-and-creativity/</link><pubDate>Sat, 21 Dec 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/12/21/the-balance-between-team-and-creativity/</guid><description>_“安德来了之后，我们必段保持一个巧妙的平衡。要让他保持一定程度的孤立，使他创造性不至于消失，否则他就会和这儿的整个团体融合在一起，我们会失去他的天赋。同时，我们也必须确定他有足够的能力去领导别人。”                                                                     — 《安德的游戏》作者：奥森·斯科特·卡德_ 上面的引述是《安...</description></item><item><title>Recommended C Style and Coding Standards中文版全文</title><link>https://tonybai.com/2013/11/26/the-full-text-of-recommended-c-style-and-coding-standards/</link><pubDate>Tue, 26 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/26/the-full-text-of-recommended-c-style-and-coding-standards/</guid><description>今天无意中打开了托管在Google Code上的“Recommended C Style and Coding Standards”翻译项目，忽感觉通过目录链接的方式查看译文缺少整体感，于是花了点时间将译文全文以single page的形式贴在博客里面，方便大家查看，也算是对该翻译内容的一个备份吧。 **C语言编码风格和标准** **0\. 摘要** 本文翻译自《Recommended C Sty...</description></item><item><title>再谈那些代码中的“中国式”命名</title><link>https://tonybai.com/2013/11/22/those-chinese-style-naming-in-code-again/</link><pubDate>Fri, 22 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/22/those-chinese-style-naming-in-code-again/</guid><description>近期博客访问量提高了不少，分析了下原因，发现是有几篇近期写的文章被某个好心网友提交到dbanotes的Startup News上了。与此同时，一些反馈也随之而来。从反馈来看，《那些代码中的“中国式”命名》一文似乎受到了更多的关注，或许是文章标题比较容易引起好奇的 缘故吧。但文章的本意仅是想阐述一些事实罢了，并没有“哗众取宠”的意思。网友的观点也促使我重新对“中国式”命名做了反思。 **\* “中国...</description></item><item><title>代码是怎么腐化的</title><link>https://tonybai.com/2013/11/12/how-code-corrupt/</link><pubDate>Tue, 12 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/12/how-code-corrupt/</guid><description>_新三年，旧三年，修修补补又三年。                                                              — 中国俗语。_ 上面的这句俗语用来形容很多遗留软件系统(legacy software system)的现状是再合适不过了。 今天下午做了一下午的代码评审，对象是一个运行了7年的遗留系统。会上除了几处明显的代码逻辑错误我发言指了出来外，涉及...</description></item><item><title>那些代码中的“中国式”命名</title><link>https://tonybai.com/2013/11/06/those-chinese-style-naming-in-code/</link><pubDate>Wed, 06 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/06/those-chinese-style-naming-in-code/</guid><description>10月中旬，有人在Quora网站上发起一个调查：“程序员职业生涯中最难的事是什么？”，调查结果让人实感意外。世界范围内的程序员同胞们普遍认为： “命名是让大家感觉最困难的事情”。对于主流的欧美程序员尚且如此，对于英文非母语的中国程序员来说，苦逼程度可想而知了:(。 虽说中国程序员大多也都学了10年以上的英语了，但能“地道”的表达和书写甚至是选词的程序员们比例却不高。而在编写程序的过程中，给变量、常...</description></item><item><title>Memcached CAS应用一例</title><link>https://tonybai.com/2013/11/01/a-case-of-applying-memcached-cas/</link><pubDate>Fri, 01 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/01/a-case-of-applying-memcached-cas/</guid><description>近期收到客户一个需求，我将该需求转述为下面这个等价的问题。 **【问题】** \* 有一个产品包装系统_S_，为某种产品_P_提供产品包装服务; \* 系统_S_由若干个处理节点组成，每个节点都可以单独处理组件; \* 产品_P_的一个可出厂的**成品**由包装盒+N个产品组件组成，包装盒与产品组件上都贴有一个标签，该标签上包含该成品的唯一编号ID（一定时间范围内有效）、每个组件自己的序号(uni...</description></item><item><title>关于程序员的构思能力的一些体会</title><link>https://tonybai.com/2013/10/27/some-experience-about-ideation-of-programmer/</link><pubDate>Sun, 27 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/27/some-experience-about-ideation-of-programmer/</guid><description>_有一段时间，我完全沉迷于在脑海中**想象**机械绘图和设计新机型所带来的极致享受，这是我一生中有过的最完美的精神愉悦。创造的灵感像泉水般源 源不断 地涌出，我遇到的唯一困难就是必须设法牢牢抓住它们。对我来说，**构思**中的设备零件都绝对是真实的，所有细节都触手可及，甚至最细微的标识和磨损状态也是如 此。想象发动机在持续不断地运转，仿佛一道迷人的风景呈现在面前，令我欣喜若狂。_         ...</description></item><item><title>为阻塞型函数调用添加超时机制</title><link>https://tonybai.com/2013/10/25/add-timeout-to-blocking-function-call/</link><pubDate>Fri, 25 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/25/add-timeout-to-blocking-function-call/</guid><description>我们产品中的一个子模块在进行Oracle实时数据库查询时，常常因数据库性能波动或异常而被阻塞在OCI API的调用上，为此我们付出了“惨痛”的代价。说来说去还是我们的程序设计的不够完善，在此类阻塞型函数调用方面缺少微小粒度的超时机制。 调用阻塞多发生在I/O操作（磁盘、网络、低速设备）、第三方API调用等方面。对于文件/网络I/O操作，我们可利用在非阻塞文件描述符上select /poll的超时机...</description></item><item><title>关于编程语言学习的一些体会</title><link>https://tonybai.com/2013/10/22/some-experience-about-learning-programming-language/</link><pubDate>Tue, 22 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/22/some-experience-about-learning-programming-language/</guid><description>_Learn at least one _new language every year_.                                               — Andy Hunt and Dave Thomas_ 自己一直是“每年学习一门新语言”的忠实拥趸，曾先后认真地学习了Haskell、Common Lisp、Python、Go等语言，对Prolog、Scala、...</description></item><item><title>当Bug A遇到Bug B</title><link>https://tonybai.com/2013/10/14/when-bug-a-encounter-bug-b/</link><pubDate>Mon, 14 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/14/when-bug-a-encounter-bug-b/</guid><description>_2002年的Bug A与2008年的Bug B同时穿越到2013年，并在某个场合相遇了。_ 上周六，项目组本应以一个愉快的心情结束一天的工作的，但一个2002年的Bug A与另外一个2008年的Bug B同时穿越时空来到了2013年，并且恰恰在那时那刻（下班前）相遇了，于是项目组由放松变成了忙碌，由愉快变成了紧张，17：30的下班点也因此延迟到了凌晨1：30。 Bug A来源于2002年我们发布...</description></item><item><title>爱上跑步</title><link>https://tonybai.com/2013/10/09/love-running/</link><pubDate>Wed, 09 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/09/love-running/</guid><description>_**生命在于运动。**_                         _– 伏尔泰_ 我无论如何都没有想到自己居然爱上了跑步。 **\* 缘起** 这要追溯到2011年，当时的我感觉自己的身体状况十分不好，各种疲劳感和不适感统统找了上来，精力也严重不足，于是乎给自己开了副药方 – **晨跑**， 期望通过锻炼身体恢复身体各个部分的机能。我坚持跑了一个多月，效果甚好：精力充沛，心情舒畅，工作效...</description></item><item><title>程序 – 程序员的avatar</title><link>https://tonybai.com/2013/10/08/program-the-avatar-of-programmers/</link><pubDate>Tue, 08 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/08/program-the-avatar-of-programmers/</guid><description>程序是什么？ 大师们曾给过这样的诠释：        _程序 = 数据 + 指令     程序 = 数据结构 + 算法_ 对此我也表示十分认同。但感觉这些观点更多是从机器运行模型或逻辑抽象的角度看待程序的，是左脑的产物。我的右脑告诉我：_**程序是程序员的avatar**_（化身）。这个隐喻式的诠释会让“程序”更有温度，并有些许人性的色彩。 计算机（CPU、主板、内存、磁盘、网络）为程序提供了一个...</description></item><item><title>站在更高的平台上</title><link>https://tonybai.com/2013/09/24/stand-on-a-higher-platform/</link><pubDate>Tue, 24 Sep 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/09/24/stand-on-a-higher-platform/</guid><description>中秋休假期间，在PPS上看了最新一集的龙珠Z剧场版“龙珠Z：神与神”。《七龙珠》是我最喜欢的一部日本漫画，年少时曾为之疯狂过。其对应的动画片《龙珠》以及《龙珠Z》我也是集集不落的，这部“龙珠Z：神与神”延续了龙珠Z的精彩。 片中主人公孙悟空与破坏神比鲁斯有过两次交手。第一次在界王星上，变身为超级塞亚人3的孙悟空被破坏神几乎“秒杀”；第二次是为了保护地球，孙悟空在悟饭、悟天、贝吉塔、特兰克斯的帮助下...</description></item><item><title>结婚五周年纪念</title><link>https://tonybai.com/2013/09/09/fifth-wedding-anniversary/</link><pubDate>Mon, 09 Sep 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/09/09/fifth-wedding-anniversary/</guid><description>今天是一个特别值得纪念的日子 – 我和老婆的**结婚五周年纪念日**。五年前的今天我和老婆领了证，正式步入了围城。平时总被她抱怨不浪漫的我这次特意准备了一对黄金玫瑰耳钉作为我们“木婚” （结婚五年）纪念日的礼物。老婆也蛮喜欢，我也甚是Happy（以前LP总是不中意我给她买的礼物）。 很想对这五年来的婚姻生活做一次“精彩”的回顾，但想了许久，也不得思路。于是我发现这几年的婚姻生活和大多数家庭一样 –...</description></item><item><title>把所有东西都放入版本控制系统</title><link>https://tonybai.com/2013/09/04/putting-absolutely-everything-in-version-control/</link><pubDate>Wed, 04 Sep 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/09/04/putting-absolutely-everything-in-version-control/</guid><description>本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的&amp;#34;Putting Absolutely Everything in Version Control&amp;#34;一文。 **持续交付(Continuous Delivery)的一个关键原则就是将所有东西都放入版本控制系统中。这解决了一些重大问题，但也引入了一些其他问题。** 持续交付是持续集成(CI)的一个自然扩展。后者旨在每次代码签入后运...</description></item><item><title>我的工作原则2</title><link>https://tonybai.com/2013/09/03/my-personal-work-principles-2/</link><pubDate>Tue, 03 Sep 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/09/03/my-personal-work-principles-2/</guid><description>_自我认知是循序渐进的，体会到了，就想将其整理出来，给自己一个交代。_                                                                             _\- Tony Bai_ 关于我的工作原则，感觉之前的那篇总结的还不够，这两天通过观察自己的所言所行，又有了些思绪，这里记录下来。 **\* 重塑标准** 简单来说就是根据组...</description></item><item><title>利用ZooKeeper服务实现分布式系统的配置数据同步</title><link>https://tonybai.com/2013/08/28/implement-config-sync-for-distributed-system-with-zookeeper-services/</link><pubDate>Wed, 28 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/28/implement-config-sync-for-distributed-system-with-zookeeper-services/</guid><description>_很多时候，一旦习惯了某些事情，也就习惯了它们的恶劣，习惯了它们的丑陋，习惯了它们“赋予”你的各种痛苦。                                                                                                                                                    ...</description></item><item><title>利用ZooKeeper服务实现分布式系统的Leader选举</title><link>https://tonybai.com/2013/08/23/leader-election-using-zookeeper/</link><pubDate>Fri, 23 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/23/leader-election-using-zookeeper/</guid><description>每次与Java组的同事们坐下来谈技术、谈理想、谈人生时，Java组的同事总会向我们投来羡慕的眼光：卧槽！又是自己开发的工具，太NB了。这时C程序 员们的脸上就会洋溢出自豪的笑容，然后内心骂道：谁让我们没有现成的呢。另一个空间里的某些“无C不欢”们或者某些“C Guru”们会骂道：靠，有了也不用，自己写！ 有时候，C程序员真的有一种下意识：不情愿使用其他语言开发的工具、框架或服务，且比其他程序员更爱...</description></item><item><title>我的工作原则</title><link>https://tonybai.com/2013/08/19/my-personal-work-principles/</link><pubDate>Mon, 19 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/19/my-personal-work-principles/</guid><description>想了若干种开场白，但无论哪种都不能令我满意，于是索性就这么开场了。 工作了若干年，不经意间就形成了自己的行事和决策风格，这里权且称之为工作原则吧。这些原则引导我制定工作目标、实施过程改善、作出方案决策、选择和培养团队人员以及进行自我改进等。我也相信这些原则是主观的、具有时间和环境局限性的。也许若干年后，随着我的角色和工作的变化，许多原则将 不再适用，但这不妨碍我现在将其总结和分享出来。 **\* ...</description></item><item><title>Ubuntu 12.04修复记</title><link>https://tonybai.com/2013/08/07/ubuntu-12-04-repairing-notes/</link><pubDate>Wed, 07 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/07/ubuntu-12-04-repairing-notes/</guid><description>今天一早发现Ubuntu 12.04坏掉了，于是用了大半天对其做了修复，修复过程十分坎坷，但结果还不错，遂记之以备忘。 **\* 毁掉Ubuntu** Ubuntu坏掉完全是由于我的错误决策。昨天一天Ubuntu桌面右上方的状态拦一直有一个红色的错误提示符，提示系统包冲突，建议执行sudo apt-get install -f解决。apt-get也提示索引冲突，无法卸载和安装任何包。于是执行了su...</description></item><item><title>再谈组织工作效率提升</title><link>https://tonybai.com/2013/08/04/more-thoughts-on-improving-efficiency/</link><pubDate>Sun, 04 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/04/more-thoughts-on-improving-efficiency/</guid><description>工作效率提升，是所有企业组织都追求的一个目标。高效率意味着用更少到人可以做更多的活儿，赚取更多的利润。员工收入也会有较大提升，有面子；管理层的收 入就更水长船高了。但说起来容易，做起来难。工作效率低下一直是让各个组织的管理者头疼的问题，组织无论大小，无论中外，皆如此。 从大的方面来看，提高效率的策略不会很多，万变不离其中，关键是落实，措施要与自己的组织实际情况匹配。两年前自己曾经写过一篇博文“提升...</description></item><item><title>毕业九年 – 忆我的大学同学</title><link>https://tonybai.com/2013/07/30/recall-my-college-classmates-after-graduating-9-years/</link><pubDate>Tue, 30 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/30/recall-my-college-classmates-after-graduating-9-years/</guid><description>又是一年毕业季。自从九年前坐车驶出母校大门，我就再也没有回过母校，确是十分怀念，但更是怀念那些一起生活了四年的大学同学们。刚毕业那会儿，与同学们 还都保持着联系。后来大家都有了自己的新圈子，渐渐的联系少了，甚至断了。最初的校友录也荒废了，QQ我早就不用了，于是乎与大家天各一方，各自发展。 上周五去北京开会，会后我的直接领导去见他的大学同学，我也被邀请同去了^\_^（要么也是无聊地等火车）。饭桌上两...</description></item><item><title>也谈代码行统计</title><link>https://tonybai.com/2013/07/24/thoughts-about-lines-of-code-statistics/</link><pubDate>Wed, 24 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/24/thoughts-about-lines-of-code-statistics/</guid><description>一直在纠结要不要就这个话题写点什么，之前梳理过一些思路，但感觉这个题目似乎没什么大意义。不过将东西憋在肚子里的滋味总是不好受的，最终我还是选择写出来一些，即便它真的没有什么意义^\_^。 事情缘于近期领导让我负责的一个内部任务：制定组织内的代码行统计标准并实现标准化的工具。就是这个任务促使了我对代码行统计重新做了一番考量。 **对代码行统计的理解** 代码行统计这个活动不是软件开发过程中的关键路径...</description></item><item><title>给新手程序员的建议</title><link>https://tonybai.com/2013/07/18/advice-to-a-new-programmer/</link><pubDate>Thu, 18 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/18/advice-to-a-new-programmer/</guid><description>本文翻译自Dr. Dobb’s杂志主编Andrew Binstock的&amp;#34;Advice to a new programmer&amp;#34;一文**。** **总是有太多的建议摆在新手程序员面前，以致他们难于选择从何处开始。然而，所有这些建议都是建构在下面这五条实践的基础之上的。** 每隔几个月，我就会收到一些勤奋有加的新手程序员的求助，他们希望知道如何才能成为一名真正优秀的程序员。在一些程序员论坛上，我也能看...</description></item><item><title>buildc 0.3.1版本发布</title><link>https://tonybai.com/2013/07/15/buildc-0-3-1-release/</link><pubDate>Mon, 15 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/15/buildc-0-3-1-release/</guid><description>随着buildc在内部应用的深入，buildc逐渐进入了以内部需求和问题为主要驱动力的演化模式。我们内部的C应用多是后端服务类应用，个人 觉得具有一定代表性。buildc最初就是为了针对这类C应用而设计的。因此我们内部的需求和问题应该也同样具有一定代表性，而这种演化模式在一 段时间范围内还是有意义的。 buildc 0.3.1版本修正了上一版本的若干bug，并增加了两个新功能。 **\* 提高容错...</description></item><item><title>Python脚本命令行变量的实现</title><link>https://tonybai.com/2013/07/09/an-implementation-of-python-commandline-variables/</link><pubDate>Tue, 09 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/09/an-implementation-of-python-commandline-variables/</guid><description>我们知道Make工具是支持命令行变量的，这种手段为我们提供了很好的灵活性，我们可以通过敲入不同的命令行参数来决定Makefile脚本的行为。 make \[variable1=value1 variable2=value2 ... ... \]。 \Makefile CMODE = 64-bit ifeq ($(CMODE), 64-bit)     CFLAGS += -m64 endif al...</description></item><item><title>代码评审，由人治过渡到“法治”</title><link>https://tonybai.com/2013/07/08/code-review-from-rule-of-man-to-rule-of-law/</link><pubDate>Mon, 08 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/08/code-review-from-rule-of-man-to-rule-of-law/</guid><description>事实证明：有效的代码评审(Code Review，也有叫代码审查的），对保证代码质量具有十分重要的作用。因此这两年来我一直尝试着在这块不断改进和完善，以期望能形成一套合理、规范、有 效且高效的代码评审流程，这包括引入在线代码评审系统、走查和在线评审结合、规范评审Request的规模与有效性、设立评审专员等，用心不可谓不良苦 ^\_^。大家也的确形成了及时提交Code Review Request或...</description></item><item><title>港澳行记</title><link>https://tonybai.com/2013/06/18/a-hongkong-macau-trip/</link><pubDate>Tue, 18 Jun 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/06/18/a-hongkong-macau-trip/</guid><description>_我来也匆匆，去也匆匆。_                                     _— 某歌词_ 记忆中和LP一起出去旅行的次数少的可怜，上一次还是在结婚蜜月时，去的是九寨。二人一起出游是很美妙的，印象也是深刻的，至今当时在九寨的情形 还能历历在目。于是年初就和LP定下了今年的一个家庭目标：一起出去玩一次。 不过真正要确定何时以及去哪出游还是很困难的，毕竟工作上的事情和照顾孩子的...</description></item><item><title>跨过BUG查找的"最后一公里"</title><link>https://tonybai.com/2013/06/18/walk-through-the-last-mile-of-bugfix/</link><pubDate>Tue, 18 Jun 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/06/18/walk-through-the-last-mile-of-bugfix/</guid><description>_如果你看到一个C程序员在通宵熬夜神情紧张地对着电脑敲代码或阅读代码，多数只有两种可能：一是为了赶进度；二就是查找内存Bug。_                                                                                                                               _— 个人感悟_ ...</description></item><item><title>《Understanding and Using C Pointers》要点先睹为快</title><link>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</link><pubDate>Tue, 28 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</guid><description>_如果你问十个C程序员：你觉得C语言的核心是什么？这十个程序员都会回答：指针。_ 指针具备成为C语言核心的两个关键要素：**强大**与**争议**。 \* **指针的强大**源自于其天生与机器内存模型的适配。使用指针让代码紧凑，并可获得仅次于汇编代码的执行效率；使用指针可以让C程 序员毫不费力地尽情操纵着内存中的每个byte甚至是bit；使用指针可以为C程序员提供无与伦比的操作灵活性。总之，在C语...</description></item><item><title>再谈C语言位域</title><link>https://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/</link><pubDate>Tue, 21 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/</guid><description>我在日常工作中使用C语言%E2%80%8E)中的位域(bit field)的场景甚少，原因大致有二： \* 一直从事于服务器后端应用的开发，现在的服务器的内存容量已经达到了数十G的水平，我们一般不需要为节省几个字节而使用内存布局更加紧凑的位域。 \* 结构体中位域的实现是平台相关或Compiler相关的，移植性较差，我们不会贸然地给自己造“坑”的。 不过近期Linux技术内核社区（www.linu...</description></item><item><title>果果3周岁了</title><link>https://tonybai.com/2013/05/18/daughter-is-3-years-old/</link><pubDate>Sat, 18 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/18/daughter-is-3-years-old/</guid><description>果果已经3周岁了，这是一个不争的事实。这意味着我又变老了^\_^。过去的东西已经无法抓住了，目前我能做的就是欣赏现实了^\_^。 3岁的果果长的越来越有女孩儿的味道了^\_^。 3岁的果果生长发育一切良好，个头还是比同龄的孩子高出那么一截。 3岁的果果说起话来越来越有逻辑性了，我们时常惊诧于其时而冒出的“妙语”。 3岁的果果总是说“喜欢爸爸”，因为妈妈总是加班，而无暇陪着果果玩。 3岁的果果很有自...</description></item><item><title>buildc 0.3.0版本发布</title><link>https://tonybai.com/2013/05/11/buildc-0-3-0-release/</link><pubDate>Sat, 11 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/11/buildc-0-3-0-release/</guid><description>自buildc正式在项目中应用以来，我们收到了许多同事针对buildc演进的意见和建议。其中确实有些易用性的问题是在最初设计时未考虑周全的，尤其是.buildc.rc中的配置，同事们对该文件的配置已经“怨声载道”了。 .buildc.rc是用来配置某开发者在开发过程中使用的第三方库所在subversion repository信息的，例如： a\_repository = (&amp;#39;SVN库地址&amp;#39;, &amp;#39;...</description></item><item><title>也谈Commit log</title><link>https://tonybai.com/2013/05/09/also-talk-about-commit-log/</link><pubDate>Thu, 09 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/09/also-talk-about-commit-log/</guid><description>在版本控制工具大行其道的今天，作为程序员，势必要每天与各种版本控制系统（比如Subversion、Git、Mercurial等）打交道， 每天不commit几次代码都不好意思说自己是专业程序员^\_^。不过commit代码可不止敲入commit命令这么简单，对于一个专业程序员 来说，我们还要关注每次commit所携带的背景信息，这里暂且称之为“commit context”。在每次commit时，...</description></item><item><title>推动知识管理的这两年</title><link>https://tonybai.com/2013/05/03/the-past-two-years-to-promote-the-knowledge-management/</link><pubDate>Fri, 03 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/03/the-past-two-years-to-promote-the-knowledge-management/</guid><description>掐指算来，部门知识管理的推广工作已有两年了。两年时间不能算短，但对于知识管理这件事来说，只能算是热身阶段，我们依旧站在起跑线上，或者稍乐 观地讲我们只是刚刚迈出了万米长跑的第一步。 下面是这两年来部门内部知识库建设的一个Timeline： \- 2011年中旬，我所在产品线私下在一台PC上建立了基于MediaWiki的知识库。 \- 2011年末产品线在部门内部做了有关知识库与知识管理实践的分享。...</description></item><item><title>libiconv库链接问题一则</title><link>https://tonybai.com/2013/04/25/a-libiconv-linkage-problem/</link><pubDate>Thu, 25 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/25/a-libiconv-linkage-problem/</guid><description>与在Solaris系统上不同，Linux的libc库中包含了libiconv库中函数的定义，因此在Linux上使用libiconv库相关函数，编译时是不需要显式-liconv的。但最近我的一位同事在某redhat enterprise server 5.6机器上编译程序时却遇到了找不到iconv库函数符号的链接问题，到底是怎样一回事呢？这里分享一下问题查找过程。 **一、现场重现** 这里借用一下...</description></item><item><title>C,C++开源项目中的100个Bugs</title><link>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</link><pubDate>Wed, 10 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</guid><description>俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目，诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析，找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析，倒不如在编码时就提高自知自觉...</description></item><item><title>Hello，Sublime Text 2</title><link>https://tonybai.com/2013/04/01/hello-sublime-text-2/</link><pubDate>Mon, 01 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/01/hello-sublime-text-2/</guid><description>用惯了Vim后，也会有一种尝试新Editor的冲动，这回Sublime Text 2满足了我的这个需求。据说Sublime Text是目前最火的代码编辑器之一，我周围为数不多的几个比较Geek的同事都已经开始使用Sublime Text 2或用了很长时间了，其官方网站首页的Feature Demo也的确非常地炫。 **安装Sublime Text 2** 我的实验环境Ubuntu 12.04.1 ...</description></item><item><title>简析指针与多维数组</title><link>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</link><pubDate>Thu, 28 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</guid><description>上一篇文章中对多级指针做了简要分析，其实只有当指针与多维数组以及函数联合在一起使用时，麻烦才算真正到来。 **零、数组****与数组名** C语言)中的数组的一般声明形式如下： T arr\_name\[n\]; /\* T为类型，n为数组元素个数 \*/ 从**内存布局**角度来说，数组T arr\_name\[n\]就是内存中连续的内存单元，每个内存单元的长度为sizeof(T)，数组的起始内...</description></item><item><title>简析多级指针解引用</title><link>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</link><pubDate>Sat, 23 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</guid><description>指针是C语言)中公认的最为强大的语法要素，但同时也是最难理解的语法要素，它曾给程序员带来了无数麻烦和痛苦，以致于在C语言之后诞生的很多新兴 语言中我们再也难觅指针的身影了。 下面是一个最简单的C语言指针的例子： int a = 5; int \*p = &amp;amp;a; 其中p就是一个指针变量。如果C语言中仅仅存在这类指针，那显然指针不会形成“大患”。经常地我们会在代码中看到下面的情形： int \*\*q...</description></item><item><title>一种基于内存映射文件的系统运行数据提取方法</title><link>https://tonybai.com/2013/03/18/sys-running-data-extraction-method-using-mmap/</link><pubDate>Mon, 18 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/18/sys-running-data-extraction-method-using-mmap/</guid><description>这是我无意中想到的一个方法，估计这个方法已经不是什么新鲜的东西了，很可能在类似的问题场景中早已经被使用了。不过这里还是要说说我的思维过程。 近期在学习一些Linux性能查看和分析方面的工具，比如top、iostat、vmstat以及sar等。在学习过程中我发现这些工具有个共同的特点，那就是她们采集的Linux运行数据都是从/proc下的文件中实时获取并计算而得出的。众所周知，/proc是Linux...</description></item><item><title>SVN命令输出结果的语言选择</title><link>https://tonybai.com/2013/03/15/choose-lang-for-svn-cmd-output/</link><pubDate>Fri, 15 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/15/choose-lang-for-svn-cmd-output/</guid><description>今天一位网上的朋友在使用reviewboard时遇到了问题，我们在评论中探讨了一下。他的问题目前已经定位，大致是这样的：他在Windows上用svn diff生成的patch文件在提交给reviewboard时出错，但在linux上生成的patch文件是没有问题的。后来他发现这两个patch文件内容稍有区别：Windows上的patch文件中的diff结果包含中文，比如“版本 10”；而在linu...</description></item><item><title>谋划2013</title><link>https://tonybai.com/2013/03/11/2013-plan/</link><pubDate>Mon, 11 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/11/2013-plan/</guid><description>眼看2013年已经过去1/6了，这个谋划显然有些晚了。之所以晚，根本原因还是之前有些很多事情没有想清楚，即便是现在可能依旧比较朦胧。鉴于去年的目标执行情况不甚理想，尤其是工作目标方面，因此今年在谋划策略方面变得更加务实和收敛，期望能说到做到或做的尽可能的多。 **一、个人目标** \* 鉴于去年的执行情况，今年将blog定在80篇（大约每5天一篇）应该问题不大，毕竟blog已经成为我生活的一个重要...</description></item><item><title>也谈C语言的Struct Hack</title><link>https://tonybai.com/2013/03/07/struct-hack-in-c/</link><pubDate>Thu, 07 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/07/struct-hack-in-c/</guid><description>今天在浏览网友huangz编写的“Redis源码分析”时，看到如下redis中的代码： struct sdshdr {     int len;     int free;     char buf\[\]; }; 说实话，这类代码我见过很多，但直到这次我才知道这种coding trick的真实英文称谓是：Struct Hack。 到底什么是Struct Hack？其实倒也没有什么明确定义。首先它...</description></item><item><title>玩转top</title><link>https://tonybai.com/2013/03/02/deep-into-top/</link><pubDate>Sat, 02 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/02/deep-into-top/</guid><description>相信很多人和我一样，top是自己日常使用最多的linux资源查看工具。不过仅限于一些简单的日常场景罢了：敲入top命令，看看哪些进程占用 CPU较多，然后对这些CPU占用较多的进程逐一处理一下。显然这样使用top有些大才小用了。 以前在监控工具使用方面总是浅尝辙止，并未做过多深入研究。近来愈来愈觉得有必要针对几种常用工具好好学习一下了。而top便首当其冲。top是一款 以查看进程(task)信息为...</description></item><item><title>为什么还用C编程？</title><link>https://tonybai.com/2013/02/27/why-code-in-c-anymore/</link><pubDate>Wed, 27 Feb 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/02/27/why-code-in-c-anymore/</guid><description>本文翻译自Dr. Dobb&amp;#39;s杂志主编Andrew Binstock的文章“Why Code in C Anymore?”，以下是翻译正文。 **传统的那些选择C而不是C++的理由的说服力已经逐渐地被削弱。还有什么继续使用C的更好的理由么？** 一个 Dr. Dobb&amp;#39;s的老读者最近问我：为何人们还在使用C编程。这个话题最近曾在我们站点的评论中出现过。早期也曾出现在与一些行业公司的对话过程中，尤其...</description></item><item><title>果果的蛇年春节独白</title><link>https://tonybai.com/2013/02/18/my-daughter-monologue-about-2013-spring-festival/</link><pubDate>Mon, 18 Feb 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/02/18/my-daughter-monologue-about-2013-spring-festival/</guid><description>我叫果果，现在两岁零9个月了。我的身高快到1米了，人家都说我长得又高又大^\_^，我比邻居家的小哥哥还要高，要知道他可比我年长8个月呢。 最近我很开心，因为我和爸爸妈妈一起回老家与爷爷奶奶过春节了。春节是什么，我还不是很清楚。但我的印象中一到春节周围的人都很开心，家家户户都挂上了红灯笼，门上都贴着福字和对联，还燃放那种让我怕怕的很响的鞭炮。春节最让我高兴的是爸爸妈妈都不用去上班了，可以天天陪我一起...</description></item><item><title>期待过年</title><link>https://tonybai.com/2013/02/06/look-forward-to-spring-festival/</link><pubDate>Wed, 06 Feb 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/02/06/look-forward-to-spring-festival/</guid><description>此时此刻，离2013年农历蛇年还有3天了。外面零星地飘起了雪花，也好，这可以让城市的空气变得更加清新。办公室里早已不复以往的“喧嚣”，大家工作的 积极性也不再那么高涨，这的确不是一个比拼职业性的好时候；会议室里灯也都是关着呢，大家似乎已经没什么心情开会了。约1/4的工位已经空了，也许明天后 天这个比例就会变成1/3或者1/2；街上的车流感觉也没有以前那么多了，这一切一切都预示着中国人的农历春节即将...</description></item><item><title>Go defer的C实现</title><link>https://tonybai.com/2013/02/03/implement-go-defer-in-c/</link><pubDate>Sun, 03 Feb 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/02/03/implement-go-defer-in-c/</guid><description>Go语言中引入了一个新的关键字defer，个人认为这个语法关键字让异常处理也变得得心应手许多，对改善代码的可读性和可维护性大有裨益，是典型的语法棒棒糖^\_^。 像下面这种代码（伪代码）： void foo() {     apply resource1; retv = action1;     if not success         release resource1 apply reso...</description></item><item><title>关于Python Package下的Module import方式</title><link>https://tonybai.com/2013/01/24/the-module-import-way-under-python-package/</link><pubDate>Thu, 24 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/24/the-module-import-way-under-python-package/</guid><description>2012年有一个目标我没有达成，那就是深入学习和使用Python语言。这个目标被其他学习任务和工作无情的抢占了，当然最主要的原因还是我重视不够^\_^。 近期恰逢有一些Python工程的开发工作要做，就顺便略微深入地学习了一下Python：看了几本Python的英文大部头，比如《Learning Python 4th Edition》、《Python Essential Reference 4th...</description></item><item><title>梅西与四座金球</title><link>https://tonybai.com/2013/01/17/leomessi-with-four-ballon-dor/</link><pubDate>Thu, 17 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/17/leomessi-with-four-ballon-dor/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>buildc 0.2.2版本发布</title><link>https://tonybai.com/2013/01/15/buildc-0-2-2-release/</link><pubDate>Tue, 15 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/15/buildc-0-2-2-release/</guid><description>随着buildc在项目中的深入使用，开发和测试人员都提出了不少良好意见，让我们有些应接不暇了，这次的版本更新也是为了满足这些意见和建议。 由于忙于应对这些眼前的需求，原本0.3.0的改进计划也被推迟了一些。 buildc 0.2.2版本包含了两个主要修正。 \* 增加了–ignore-error命令行选项 自从buildc cache相关命令严格区分–cmode=32-bit还是64-bit后，用...</description></item><item><title>梅西，金球之王</title><link>https://tonybai.com/2013/01/08/leomessi-the-king-of-ballon-dor/</link><pubDate>Tue, 08 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/08/leomessi-the-king-of-ballon-dor/</guid><description>在2012年末，FIFA公布了金球奖最终三位候选人：梅西、伊涅斯塔和C罗，各大博彩公司也就此奖项纷纷开出赔率。从赔率来看，梅西似乎肯定会 赢得今年的FIFA金球。在昨天之前，从金球制作方名签的摆放位置或又法国足球杂志最新一期的封面，也都暗示了梅西即将获奖。不过不到最后，我还 真是没底，毕竟梅西与其他两位对手相比缺少年度重量级冠军荣誉。 今天凌晨，纠结于此事的我睡得十分不踏实。半夜醒来，本以为结果已...</description></item><item><title>说说工作幸福感</title><link>https://tonybai.com/2013/01/04/my-opinion-on-improving-work-happiness/</link><pubDate>Fri, 04 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/04/my-opinion-on-improving-work-happiness/</guid><description>职场上的朋友可能经历过以下两种截然不同的状态： （一） 每天早晨起来都有一种强烈要上班工作的冲动； 一到公司，立即感觉精力充沛，并希望尽快开始做事，不能浪费一分一秒； 每天下班前回顾一天的工作时，都能感觉到收获和进步，并带着笑容下班； 每天回到家里，暂时忘记工作，与家人共度良霄，养足精力； 生活与工作保持一定距离，这始终让你与工作之间有美的感觉。 （二） 每天早晨一想到要上班，就愁云遮面，总想在床...</description></item><item><title>2013新年快乐</title><link>https://tonybai.com/2013/01/01/2013-happy-new-year/</link><pubDate>Tue, 01 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/01/2013-happy-new-year/</guid><description>这篇文章发出来有些迟了，眼看2013年的第一天就将过去了，不过这里依然要**祝福大家2013新年快乐！** 之所以“迟到”，是因为果果最近生病了。自从上周日凌晨到医院输液之后，今天已经是第四次带果果去医院了。不过小家伙儿今天表现十分勇敢，有史以来第一次 在医生扎针的时候表现的泰然自若，没有流出半滴眼泪。不过即便如此，几天的病症也让果果略显消瘦，食欲很差。作为父母的，的确是看在眼里，疼在心里。 元旦...</description></item><item><title>我的博客观</title><link>https://tonybai.com/2012/12/19/my-blog-outlook/</link><pubDate>Wed, 19 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/19/my-blog-outlook/</guid><description>打开我的Google Reader，发现诸多博客达人的博客已经不再更新了，顿颇感遗憾。不过看到还有更多和我一样一直并快乐地写博客的朋友们，心头又是一番欣喜。 如果你问我为何可以长期持续地将博客写下去，我会告诉你：这与我的博客观息息相关。 人有三观：人生观、价值观和世界观。这三观是在你的成长过程中潜移默化地形成的，即便你自己无法表达出来，甚至没有意识到其存在，但这三观却真真切切地在 影响着你人生道路...</description></item><item><title>2012小结</title><link>https://tonybai.com/2012/12/18/my-summary-of-2012/</link><pubDate>Tue, 18 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/18/my-summary-of-2012/</guid><description>趁着世界末日尚未到来，赶紧将2012年总结一番，即便是末日也不能留遗憾不是^\_^。 2012年总体过得还算充实： \*《七周七语言》终于出版了； \* 写了近80篇Blog，虽离目标预期还有差距，但也给我带来了不小的精神愉悦； \* 为《程序员》杂志写了两篇文章，虽然都是短文； \* 读了30多本书，还有10多本尚未读完，不过年初制定的“扫存书”目标没能达成，因为依然不断地有大量的新书加入^\_...</description></item><item><title>关于绩效面谈的一些拙见</title><link>https://tonybai.com/2012/12/13/some-opinions-about-performance-interview/</link><pubDate>Thu, 13 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/13/some-opinions-about-performance-interview/</guid><description>《程序员》杂志的“一分钟先生”专栏之前曾约稿，有两个主题可供选择：制定绩效目标或如何进行绩效面谈。本打算两个主题都写写的，但碍于时间有限，最终只写了一个主题：《制定绩效目标的几个重要因素》。进入12月，想必各个公司或组织都会开展年终绩效考核，我这里也不例外。 关于绩效面谈，印象中组织里似乎没人告诉我应该如何去做。很久以前是小兵的时候没有过多考虑，成为项目负责人后也没有接受过什么系统的培训，都是按照...</description></item><item><title>梅西，足球新王</title><link>https://tonybai.com/2012/12/10/leomessi-the-new-king-of-soccer/</link><pubDate>Mon, 10 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/10/leomessi-the-new-king-of-soccer/</guid><description>话说上一场欧冠主场对阵本菲卡，梅西下半场替补登场，但在比赛结束前受伤离场，那真是一个叫梅西迷们伤心的日子，梅西在记录面前倒下了。梅西本希望与主场 球迷分享打破世界纪录的快乐，但事与愿违。这正应验了中国那句俗话：“有心栽花花不开，无心插柳柳成荫”。赛后，有关梅西的伤势报告有诸多版本，直到昨天 梅西进入客战贝蒂斯大名单，球迷们的心才真正落下：梅西的确伤的不重！ 相信所有巴萨和梅西的球迷在今晨巴萨客场对...</description></item><item><title>buildc 0.2.1版本发布</title><link>https://tonybai.com/2012/12/06/buildc-0-2-1-release/</link><pubDate>Thu, 06 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/06/buildc-0-2-1-release/</guid><description>buildc 0.2.1版本是一个bugfix版本，修正了两个重要问题。 \* 修正执行buildc pack –cmode=32-bit时无法创建32位安装包的问题 之前的buildc pack命令在打包安装程序时忽略了–cmode这个选项，这样即便传入32-bit这个参数，打出的安装包中的应用程序依旧是64位编译的。这次修正了这个问题，让buildc真正支持打32位程序的安装包。 \* 修正b...</description></item><item><title>将Unity换成Gnome3</title><link>https://tonybai.com/2012/12/06/replace-unity-with-gnome3/</link><pubDate>Thu, 06 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/06/replace-unity-with-gnome3/</guid><description>Ubuntu 12.04已经体验一天多了，Unity还是用的不大习惯，左侧的程序启动栏感觉还是别扭，以前用windows的时候就不喜欢将任务栏放在左侧或右侧； 应用窗口的菜单栏融合到桌面顶端也没给我太多惊喜；总而言之，给自己找几个换回Gome的理由还是很容易的^\_^。况且Gnome也发生了巨变， 由传统的Gnome2更新到了全新的Gnome3，正好我也想体验一下Gnome3，于是继续折腾。 Ub...</description></item><item><title>升级到Ubuntu 12.04LTS</title><link>https://tonybai.com/2012/12/04/upgrade-ubuntu-to-1204-lts/</link><pubDate>Tue, 04 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/04/upgrade-ubuntu-to-1204-lts/</guid><description>Ubuntu 10.04 LTS已经伴随我两年了，经过我这么长时间的折腾，Ubuntu早已不堪重负^\_^。在未升级前，Ubuntu 10.04已经表现出诸多问题： \- 在家中连接无线路由器时间漫长，且经常掉线； \- 在公司用有线网络经常掉线； \- 由于反复安装软件，系统中残留较多垃圾数据； \- Ubuntu 10.04官方源中的软件版本都有些低，很多软件手工安装高版本比较费力； 另外原先...</description></item><item><title>谈谈如何高效地组织和实施内部会议</title><link>https://tonybai.com/2012/12/03/how-to-organize-and-hold-meetings-efficiently/</link><pubDate>Mon, 03 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/03/how-to-organize-and-hold-meetings-efficiently/</guid><description>我个人一直追求高效的工作，无论是在职场中的哪个环节，在我眼中总是应该有提效的空间的，我甚至感觉我在这方面似乎形成了一种偏执，有些时候一看到低效的环节，我就有些情绪激动^\_^。 如果要大家投票表决组织内部最低效地活动环节，估计大多数人会将选票投给**会议**。关于内部会议的组织和实施，有很多反模式，这里列举一二： \- 会议组织人突然发出会议通知，两个小时后举行某会议； \- 会议通知中没有会议的...</description></item><item><title>谈谈如何写好Mail</title><link>https://tonybai.com/2012/11/28/how-to-write-a-good-email/</link><pubDate>Wed, 28 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/28/how-to-write-a-good-email/</guid><description>Mail(在这个时代，Mail默认的含义早已变成了Email，也就是电子邮件)是我们在工作中常用的表达和沟通方式之一。与IM工具、拿起电话直接Call、会议等相比，Mail容许相关干系人用更多的时间去了解背景、理解问题和思考解决方案，而不用立即予以答复。 我们每天都会发出和收到几十封甚至上百封Mail，但这并不意味着我们写的Mail就都是合格的。一些人的Mail，无论从格式还是内容，都会让人看起来...</description></item><item><title>果果2岁以来的成长记录</title><link>https://tonybai.com/2012/11/27/some-growing-up-details-of-my-two-years-old-daughter/</link><pubDate>Tue, 27 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/27/some-growing-up-details-of-my-two-years-old-daughter/</guid><description>好久没有写有关果果的事情了，作为爸爸的，心中不免有些惭愧啊^\_^。今天就来补一下果果这大半年来的成长情况，主要是说说两周岁后果果的成长变化。没有什么系统的思路，就是想到哪说到哪。 果果现在已经两岁半了，小家伙个头不小，身体力量和运动能力突出，在同龄小朋友中都是佼佼者。唯一缺憾就是语言能力发育延后。有人说：“小女孩说话晚，聪明”。不管大家信不信，反正我是信啦^\_^。 就果果语言发育延迟的事情，之...</description></item><item><title>个人时间管理的一些实践体会</title><link>https://tonybai.com/2012/11/23/some-experience-on-personal-time-management/</link><pubDate>Fri, 23 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/23/some-experience-on-personal-time-management/</guid><description>时间是人类最宝贵的财富之一，我十分认同这点，因此我在个人时间管理以及工作效率上也是一直追求持续改善的，期望能在最短的时间内产出更多有价值的成果，尤其是工作时间里。 我知道的时间管理思想主要有三种： \* 四象限理论。这是我们经常谈到的传统时间管理理论，它告诉我们如何根据待办事项的重要和紧急两个属性对待办事项进行分类和优先级确定。我个人觉得这个理论是时间管理的基础，后续无论是GTD理论还是番茄时间理...</description></item><item><title>使用squid搭建http代理</title><link>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</link><pubDate>Wed, 21 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</guid><description>近期在做一些基础设施搭建的过程中，又遭遇到了公司http代理的问题。主要是很多主机上的工具只支持不带身份鉴权信息的http\_proxy设置，如只 支持诸如：export http\_proxy=&amp;#39;http://10.10.1.1:8090&amp;#39;，而不支持export http\_proxy=&amp;#39;http://tonybai:passwd@10.10.1.1:8090&amp;#39;这种形式的配置。 或是其命令行选项...</description></item><item><title>新速腾首保小记</title><link>https://tonybai.com/2012/11/18/note-for-my-2012-sagitar-first-maintenance/</link><pubDate>Sun, 18 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/18/note-for-my-2012-sagitar-first-maintenance/</guid><description>自从今年5月份新车入手以来，我的新速腾恰好开了5000公里，其间LP开了一段时间，让5000公里这个点的到达时间延后了一个多月。 一汽大众新速腾手册上建议的首保是不超过7500公里，但4S的Sale在交车时明确告知5000公里首保。考虑到是新车，而且恰逢由秋入冬天气转冷的季节，我们决定还是5000公里去保，最主要的目的其实是在入寒冬前做一次全车检查。 考虑到一汽大众4S店比较繁忙，这周一我就电话做...</description></item><item><title>制定绩效目标的几个重要因素</title><link>https://tonybai.com/2012/11/17/several-important-factors-in-making-performance-goals/</link><pubDate>Sat, 17 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/17/several-important-factors-in-making-performance-goals/</guid><description>本文是笔者发表在《程序员》杂志2012年11期上的那篇“制定绩效目标的几个重要因素”文章的完整版。 软件开发是一种创造性的工作，这种工作的成果具有不确定性且很难量化，因此经理们在给员工制定绩效目标时多没有统一标准(即便有也不一定准确，而且在一定程度上还可能会扼杀创造性)，所采用的方法也是五花八门。不过即便如此，经理们也没有放弃寻找一种更为适合软件开发领域绩效目标制定的方法。笔者也是其中一份子，在这...</description></item><item><title>buildc 0.2.0版本发布</title><link>https://tonybai.com/2012/11/06/buildc-0-2-0-release/</link><pubDate>Tue, 06 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/06/buildc-0-2-0-release/</guid><description>buildc的演进先后经历了构建管理和安装包工程管理两个阶段。其中buildc的构建管理功能在项目中应用较早，目前相对稳定可靠。但其支持的安装包工程是直到最近才被大家所正式使用的。不出意料，大家在使用过程发现了一些问题，于是我们也是边用边改。 目前一个setup工程一般具有类似如下源码组织结构： distributions/ setup.cfg src/     – README     – ap...</description></item><item><title>知识管理的几点野路子经营策略</title><link>https://tonybai.com/2012/11/04/the-amateur-way-of-knowledge-management/</link><pubDate>Sun, 04 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/04/the-amateur-way-of-knowledge-management/</guid><description>时间真是过得飞快，遥想一年前的这个时候我们在产品线的知识管理试水有了一点成绩，便在组织内力推知识管理。领导经过权衡后，也认同了知识管理的重要性， 并随即安排人在组织内部快速建立起了知识库。在最初的一两个月里，临时的知识管理负责人热情很高，做得还算不错，初步地将知识库是什么、如何使用以及组织 知识管理的第一版规范和大家交待清楚了。但随着热情的消逝，知识库管理也随波逐流了，知识管理开始变得名存实亡，这...</description></item><item><title>辩证地看待“重新发明轮子”</title><link>https://tonybai.com/2012/11/02/treat-reinventing-the-wheel-dialectically/</link><pubDate>Fri, 02 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/02/treat-reinventing-the-wheel-dialectically/</guid><description>C程序员骨子里都有一种“重新发明轮子(Reinventing the Wheel)”的特质。在面向对象、组件化流行以及崇尚复用的今天，这种特质似乎总是被认为是反面教材。但伟大的毛主席教导我们：要辩证地看待一切事物， 凡事无绝对。事物都是有两面性的，有好就有坏，有坏就有好。拿“重新发明轮子”这事而言，我们除了看到其弊端外，还要充分领会到其好的一面，不能一棒子打 死，这样才能在特定的场景下作出正确合理...</description></item><item><title>关于团队经营的若干体会</title><link>https://tonybai.com/2012/11/01/some-experience-on-team-management/</link><pubDate>Thu, 01 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/01/some-experience-on-team-management/</guid><description>在近两年的持续不断的投入和努力下，近期我在团队经营方面看到了一些成果，但这却引来了同僚们的“羡慕嫉妒恨”^\_^，他们希望了解到我是“如何将0变成 1的”。关于团队运营方面，我始终认为自己只是个初级选手，充其量就是个实践者而已。以前我也只是按照我的思路和直觉在做，并未有过什么细致的考量，也没 有人给我这方面系统的指导。这几天闲暇时回顾了一下这两年的经营历程，形成了些许体会，这里也和大家分享一下。 ...</description></item><item><title>改善技术布道效果的几个实践</title><link>https://tonybai.com/2012/10/26/some-practice-on-improving-tech-preach/</link><pubDate>Fri, 26 Oct 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/10/26/some-practice-on-improving-tech-preach/</guid><description>本文是笔者发表在《程序员》杂志2012年08期上的那篇“改善技术布道效果的几个实践”文章的完整版。 技术布道不易，想取得良好的效果就更难了。下面是笔者总结的几个有助于改善技术布道效果的有效实践,这里给大家分享一下。 **自我认知** 技术布道前,布道者首先要做好自我认知,这将有助于布道者确认自己是否胜任此次布道以 及采用何种布道策略以赢得更好的效果。认知的内容包括:自己是否精通这方面的技术。若 只...</description></item><item><title>也谈Go语言代码包分发</title><link>https://tonybai.com/2012/10/25/go-package-distributing/</link><pubDate>Thu, 25 Oct 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/10/25/go-package-distributing/</guid><description>Go语言目前(截至1.0.2版本)尚不支持直接链接.a文件(这里的.a文件指的不是传统静态共享库，而是对golang的非main包build后的产物)。这样一来Go的第三方库包或组织内部的公共代码库包只能以源码的形式分发了。 Go提供了get命令用于获取他人分发的代码包。我们通过get命令既可以获取一些知名代码托管站点上的代码，也可以获取组织内部版本控制服务器上的公共代码。 Go get支持的托管...</description></item><item><title>由一个软件库存问题想到的</title><link>https://tonybai.com/2012/10/22/thoughts-on-software-inventory/</link><pubDate>Mon, 22 Oct 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/10/22/thoughts-on-software-inventory/</guid><description>近期产品线出现这样一个“怪现象”：许多已经完成编码并具备提交给测试组的版本没有测试人员对应。测试部那边给出的策略是：按版本优先级从高到低依次测 试。这样一来一些重要版本需要到3个月甚至更长时间之后才能开始测试。可以肯定这种现象是生产环节的一个问题，但用什么理论去解释和分析这个问题呢？我想 到了“库存” – 软件库存。 《Joel说软件》的那个Joel曾写过一篇名为《软件库存》的文章，也正是看了那篇...</description></item><item><title>也谈Go语言声明语法</title><link>https://tonybai.com/2012/10/11/understanding-go-declaration-syntax/</link><pubDate>Thu, 11 Oct 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/10/11/understanding-go-declaration-syntax/</guid><description>一直在从事C语言服务端应用开发，对C的变量声明语法早已烂熟于胸，同时也深知复杂的C变量声明十分晦涩难解。记得若干年前还特意花了一些时间研究理解复 杂C变量声明的方法，记忆中这些方法包括：《C专家编程》中提到的“优先级”规则、right-left规则以及顺时针/螺旋形规则等，幸运地是我们日常 开发中少有使用极为复杂的变量声明(如void (\*signal (int signo, void (\*f...</description></item><item><title>编程语言进入“拼爹”时代</title><link>https://tonybai.com/2012/10/08/the-new-age-of-programming-language/</link><pubDate>Mon, 08 Oct 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/10/08/the-new-age-of-programming-language/</guid><description>近期看到一则新闻，说是Microsoft推出了一门开源的编程语言叫TypeScript，该Project的主要负责人是大名鼎鼎的Anders Hejlsberg，就是那个Turbo Pascal 、Delphi以及C#)之父。结合近几年来出现的颇受关注的其他几门编程语言，如Go、Rust、Dart)等，让我感觉到编程语言似乎进入了&amp;#34;拼爹&amp;#34;时代。 我们来列举一下这几门新兴语言的“老爹”(设计者)： ...</description></item><item><title>Go与C语言的互操作</title><link>https://tonybai.com/2012/09/26/interoperability-between-go-and-c/</link><pubDate>Wed, 26 Sep 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/09/26/interoperability-between-go-and-c/</guid><description>Go有强烈的C背景，除了语法具有继承性外，其设计者以及其设计目标都与C语言有着千丝万缕的联系。在Go与C语言互操作(Interoperability)方面，Go更是提供了强大的支持。尤其是在Go中使用C，你甚至可以直接在Go源文件中编写C代码，这是其他语言所无法望其项背的。 在如下一些场景中，可能会涉及到Go与C的互操作： 1、提升局部代码性能时，用C替换一些Go代码。C之于Go，好比汇编之于C。...</description></item><item><title>Go中的系统Signal处理</title><link>https://tonybai.com/2012/09/21/signal-handling-in-go/</link><pubDate>Fri, 21 Sep 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/09/21/signal-handling-in-go/</guid><description>我们在生产环境下运行的系统要求优雅退出，即程序接收退出通知后，会有机会先执行一段清理代码，将收尾工作做完后再真正退出。我们采用系统Signal来 通知系统退出，即kill pragram-pid。我们在程序中针对一些系统信号设置了处理函数，当收到信号后，会执行相关清理程序或通知各个子进程做自清理。kill -9强制杀掉程序是不能被接受的，那样会导致某些处理过程被强制中断，留下无法恢复的现场，导致消...</description></item><item><title>Go语言标准库概览</title><link>https://tonybai.com/2012/09/08/a-brief-tour-of-go-standard-library/</link><pubDate>Sat, 08 Sep 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/09/08/a-brief-tour-of-go-standard-library/</guid><description>本文翻译自Dr.Dobb&amp;#39;s的&amp;#34;A Brief Tour of the Go Standard Library&amp;#34;一文。 **在Go语言五周系列教程的最后一部分中，我们将带领大家一起来浏览一下Go语言丰富的标准库。** Go标准库包含了大量包，提供了丰富广泛的功能特性。这里提供了概览仅仅是有选择性的且非常简单。本文发表后，标准库的内容还可能继续增加，因此 建议大家最好是通过在线查阅库API或使用go...</description></item><item><title>Go程序设计语言(三)</title><link>https://tonybai.com/2012/08/28/the-go-programming-language-tutorial-part3/</link><pubDate>Tue, 28 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/28/the-go-programming-language-tutorial-part3/</guid><description>本文译自Rob Pike的Go语言PPT教程 – &amp;#34;The Go Programming Language Part3(updated June 2011)&amp;#34;。由于该教程的最新更新时间早于Go 1版本发布，因此该PPT中的一些内容与Go 1语言规范略有差异，到时我会在相应的地方做上注解。 第三部分大纲 ------ * 并发与通信 * Goroutines * 通道(Channel) * 并发相关...</description></item><item><title>Go程序设计语言(二)</title><link>https://tonybai.com/2012/08/27/the-go-programming-language-tutorial-part2/</link><pubDate>Mon, 27 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/27/the-go-programming-language-tutorial-part2/</guid><description>重写工作方式正如字段一样。 type NamedPoint struct {     Point     name string } func (n \*NamedPoint) Abs() float64 {    return n.Point.Abs() \* 100. } n := &amp;amp;NamedPoint{Point{3, 4}, &amp;#34;Pythagoras&amp;#34;} fmt.Println(n.Abs...</description></item><item><title>Go程序设计语言(一)</title><link>https://tonybai.com/2012/08/23/the-go-programming-language-tutorial-part1/</link><pubDate>Thu, 23 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/23/the-go-programming-language-tutorial-part1/</guid><description>int          uint int8      uint8 = byte int16       uint16 int32       uint32         float32      complex64 int64       uint64         float64      complex128 还有uintptr，一个大小足够存储一个指针的数值。 这些都是互不相同的类型；...</description></item><item><title>也谈Go语言编程 – Hello，Go!</title><link>https://tonybai.com/2012/08/17/hello-go/</link><pubDate>Fri, 17 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/17/hello-go/</guid><description>_**Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system ena...</description></item><item><title>项目跳票成常态，组织基因难逃干系</title><link>https://tonybai.com/2012/08/15/bouncing-check-and-organization-gene/</link><pubDate>Wed, 15 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/15/bouncing-check-and-organization-gene/</guid><description>上周得知今年一个重点项目跳票了！项目计划正在重新修订中，原计划今年10月末完成的项目很可能因此推迟到明年上旬了。 工作这么多年，印象中除了一些短期小项目外，50人月以上的项目就少有未跳票的，无论是我带的项目还是其他负责人带的项目，莫不如此。无论是产品负责人，还是项目负责人，高质量按期交付都是第一目标。但残酷的现实真切地摆在我们面前。问题到底出在哪里呢？ 项目成功的原因都是相似的，但项目跳票的原因却...</description></item><item><title>开始学Go</title><link>https://tonybai.com/2012/08/14/getting-going-with-go/</link><pubDate>Tue, 14 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/14/getting-going-with-go/</guid><description>本文翻译自Dr.Dobb&amp;#39;s的&amp;#34;Getting Going with Go&amp;#34;。 **本文是有关Google新的系统原生语言的五周教程的第一部分，这里将先向大家展示如何建立Go语言开发环境以及构建程序，然后带领大家浏览 一些代码范例来着重了解一下这门语言的一些有趣的特性。** _这个教程系列将连续刊登五周。在今天这一部分中，Go语言专家Mark Summerfield将讲解如何建立Go语言开发环境，...</description></item><item><title>为什么不用用Go？</title><link>https://tonybai.com/2012/08/08/why-not-go/</link><pubDate>Wed, 08 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/08/why-not-go/</guid><description>本文翻译自 Dr. Dobb&amp;#39;s主编Andrew Binstock的文章&amp;#34;Why Not Go?&amp;#34;。 Go是一种对系统原生语言的重要反思，它对C语言做了重大的改善，同时还保持了语言的极简性。 今年早些时候，我们写了一篇有关新兴系统原生(native)语言的文章。这些语言包括D、Go、Rust以及Vala。当时我们承诺将会对这些语言进行 细致的探索。从本周开始，我们将开启一系列对来自Google的新...</description></item><item><title>《改善技术布道效果的几个实践》勘误</title><link>https://tonybai.com/2012/08/07/errata-of-some-practice-to-improve-tech-sermon/</link><pubDate>Tue, 07 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/07/errata-of-some-practice-to-improve-tech-sermon/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>知识管理推广难的几点原因</title><link>https://tonybai.com/2012/08/06/reasons-for-promote-km-difficult/</link><pubDate>Mon, 06 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/06/reasons-for-promote-km-difficult/</guid><description>去年在产品线内部尝试了一些知识管理的实践：建立了知识库，初步在产品线内部养成了知识整理和总结的习惯，建立了工作流程与知识库之间的粘性，取得了一定效果。今年年初在事业部内部做了有关知识库实践方面的分享，大家也都认识到这几年我们在知识积累方面上的不足，也都很赞同知识管理的重要性与必要性。会后领导决定建立事业部级知识库，并安排专人负责知识库的维护与推广。 于是乎负责知识库搭建的那个部门申请服务器、安装和...</description></item><item><title>做正确的事要趁早</title><link>https://tonybai.com/2012/08/02/do-right-things-early/</link><pubDate>Thu, 02 Aug 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/08/02/do-right-things-early/</guid><description>最近闲暇时间在策划实施两件事儿：一是产品的自动化回归测试；二是尝试在项目中使用一些静态代码语义分析工具。我觉得这两件事是应该做的正确的事，对提升产品质量，提前发现产品中潜在的缺陷都大有裨益。但在做的过程中才感觉到：现在做有些晚，正确的事要趁早做。 去年自动化测试组发布了自动化测试框架的第一个版本，我们的产品参加了试点。但经过自动化测试组大半年的投入，效果十分有限，根本没有达到我的预期。最主 要的问...</description></item><item><title>绥中电厂海滩之旅</title><link>https://tonybai.com/2012/07/30/a-trip-to-suizhong-beach/</link><pubDate>Mon, 30 Jul 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/07/30/a-trip-to-suizhong-beach/</guid><description>上周末，部门组织了一年一度的集体出游活动，这次的目的地是位于葫芦岛市附近的绥中电厂海滩。 周六(北京时间7月28号)，恰逢伦敦奥运会举行开幕式，很遗憾不能完整的看完现场直播。在看完憨豆先生的精彩表演后，我就从家里出发了。本来这次旅游我是想带LP和果果一起去的，之前用一周时间已经做好了所有准备（吃的、穿的、玩的、用的），但人算不如天算，果果居然感冒了，早上起来一量体温：38度。唉，果果与大海第一次邂...</description></item><item><title>buildc 0.1.9版本发布</title><link>https://tonybai.com/2012/07/19/buildc-0-1-9-release/</link><pubDate>Thu, 19 Jul 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/07/19/buildc-0-1-9-release/</guid><description>随着buildc使用的深入，越来越多的新需求暴露了出来。为了满足这些需求，我们组的小兄弟又对buildc进行了一些改造，这些变化如下： 1、支持将多个子工程打包到一个安装包中 最初buildc的设计思想是为每个子工程单独制作安装包，这样具有很强的灵活性。但在对现有N个工程进行构建脚本改造的过程中发现，有些工程间存在严重 依赖，比如工程A是一个业务级公共库工程，工程B和工程C都依赖工程A构建后生成的...</description></item><item><title>读《How Google Tests Software》</title><link>https://tonybai.com/2012/07/10/read-how-google-tests-software/</link><pubDate>Tue, 10 Jul 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/07/10/read-how-google-tests-software/</guid><description>一直对Google这个牛X公司的内部开发过程很是感兴趣，毕竟像Google Search Engine、Google云计算平台这些伟大产品都是在这个开发过程下缔造出来的。但也许是Google保密工作做的很好，或许人家不是刻意保密，只是 因为工作太忙或人员太低调，没空派人出来宣讲罢了。外界对Google内部的开发流程知之甚少；知道一些，诸如20%项目，也只是皮毛。 终于有一天，Google的三位工程...</description></item><item><title>buildc 0.1.8版本发布</title><link>https://tonybai.com/2012/07/02/buildc-0-1-8-release/</link><pubDate>Mon, 02 Jul 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/07/02/buildc-0-1-8-release/</guid><description>buildc这个小工具逐渐在项目组内部扩大了使用范围，还有一名专门的同事负责为每个项目制作安装包工程，这样也可以在使用中发现buildc的问题。 本次buildc 0.1.8的相关修正以及新增的feature就是我的这位年轻同事一手操刀完成的，他也是一个python新手，同样也是边翻手册边进行编码的。这次改动主要集中在templates目录下的几个文件，这里的文件多为因工程的不同而异的。 这次bu...</description></item><item><title>1000公里驾车感受</title><link>https://tonybai.com/2012/06/21/some-feeling-after-driving-for-1000km/</link><pubDate>Thu, 21 Jun 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/06/21/some-feeling-after-driving-for-1000km/</guid><description>不知不觉我的车的总里程表上的数字已经达到了1029公里了，我的&amp;#34;驾龄&amp;#34;也马上要到一个月了^\_^，这里谈谈驾车感受，备忘一下。 1、总体感受：累！ 车是不开不知道，一开真叫累啊。特别是在一二线城市开车上下班，短程的还好，路程稍长的，像我这样上下班来回50公里，那真是累啊。 累的原因之一首先就是堵车。像东北这地，每年冬天是无法修路的，一到春夏，各路工程纷纷上马 – &amp;#34;要修一起修&amp;#34;，这样一来，痛苦的就...</description></item><item><title>暴雨·冰雹·涉水·夜路·堵车·行车记</title><link>https://tonybai.com/2012/06/04/drive-in-rainstorm/</link><pubDate>Mon, 04 Jun 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/06/04/drive-in-rainstorm/</guid><description>上周六是六一儿童节过后的第一个周末，由于六一是工作日，没能带果果出去玩，因此周六我和LP一起带果果到太原街购物游玩。 早就听到天气预报说沈城会有雷阵雨，不过早上的天气还是蛮好的，不是很热，于是乎也没有太在意，只是带了简单的雨具。 也许是受到天气预报的影响，商业中心区居然也能很顺利找到停车位，一切安顿好后，就带着果果直奔商场。逛街顺序与往常没啥两样，先购 物，再带果果到商场楼上的儿童娱乐城玩。下午1...</description></item><item><title>新速腾提车与第一次上路</title><link>https://tonybai.com/2012/05/25/new-sagitar-and-my-first-driving-experience/</link><pubDate>Fri, 25 May 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/05/25/new-sagitar-and-my-first-driving-experience/</guid><description>一直以来我都不是特别喜欢开车，因为平时喜欢思考，每天坐在公司的班车上可以有大把的思考时间，另外在高速行驶的车上，感觉思维也变得更加&amp;#34;敏捷&amp;#34;，但如果自己开车，这一切就不复存在了，因为你要集中精力应付马路上那绵长的&amp;#34;车水马龙&amp;#34;，还要躲避&amp;#34;玩命&amp;#34;穿马路的行人以及像我这样的新手开的新车^\_^。 不过有了孩子后，没有自己的车实在算不上方便，特别是在工作日如果孩子打个预防针，或平时出去玩，打车是件很费力的事...</description></item><item><title>勇于面对</title><link>https://tonybai.com/2012/05/21/to-face-it/</link><pubDate>Mon, 21 May 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/05/21/to-face-it/</guid><description>刚刚过去的这一周搞得我十分疲惫，起因是岳母生病了。 果果自出生以来一直是岳母照顾，这个五一岳母将果果带回老家待了一周，也许是太过操劳导致旧病复发(腰椎肩盘轻微突出)，无法坚持照顾果果了。可这段时间 又恰逢我和我LP都很忙碌，但无奈身边没有亲戚，只能我请假待果果(LP那里集团领导检查，实在无法脱身)，还要照顾生病的岳母。本以为病两三天就能好 转，但观察两天后仍不见好转，于是我只能将母亲大人请来照顾果...</description></item><item><title>使用ssh通过http代理访问bitbucket</title><link>https://tonybai.com/2012/05/09/ssh-access-bitbucket-via-http-proxy/</link><pubDate>Wed, 09 May 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/05/09/ssh-access-bitbucket-via-http-proxy/</guid><description>在很多公司内部，要想访问外部互联网都需要设置代理，我所在公司也是这样，有些时候这种限制真的可以让人骂娘。不过经过几年与代理的&amp;#34;斗争&amp;#34;后，大部分需 要访问外部网络的软件(比如subversion、apt-get、git、wgetc、filezilla等)经过设置后还都可以正常工作。不过前些日 子在折腾bitbucket上的源码库时又遇到了代理问题：无论通过https方式还是ssh方式都无法clone...</description></item><item><title>翻译《七周七语言》的那些事儿</title><link>https://tonybai.com/2012/05/08/translate-seven-languages-in-seven-weeks/</link><pubDate>Tue, 08 May 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/05/08/translate-seven-languages-in-seven-weeks/</guid><description>今天在互动出版网看到《七周七语言：理解多种编程范型》一书已经开卖了。看到自己参与翻译的第一本书出版了，心中还是很愉悦的，因为自己的辛苦付出终于有了结果。 **一、缘起** 能够参与到这本书的翻译完全是机缘巧合。记得2011年初我启动了一个《Programming in Haskell》的公共翻译项目，可是由于欠缺版权的考虑，中途不得不终止了该书的翻译。当时经dreamhead介绍联系到图灵的刘江总...</description></item><item><title>也谈技术布道 – 影响因素及有效实践</title><link>https://tonybai.com/2012/04/24/influencing-factors-and-effective-practice-about-driving-technical-changes/</link><pubDate>Tue, 24 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/24/influencing-factors-and-effective-practice-about-driving-technical-changes/</guid><description>昨天中午收到图灵出版的《布道之道 – 引领团队拥抱技术创新》一书，晚上就迫不及待地翻看开来。这是我读过的第一本有关推动组织内部技术变更/创新实践方面的书，感觉书作者对受众的分类很是准 确到位，很多布道技巧也十分值得借鉴。但就我个人多年来的体验来看，组织内部技术布道的结果，不仅仅与受众的类型有关，还与布道者自身的资历、所担任的角 色、组织内部的文化和环境、布道路线以及布道时机和对象的选择有一定关系。...</description></item><item><title>buildc 0.1.7版本发布</title><link>https://tonybai.com/2012/04/19/buildc-0-1-7-release/</link><pubDate>Thu, 19 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/19/buildc-0-1-7-release/</guid><description>最近针对buildc又有了一些新想法，于是今天上午又对buildc进行了多处修改，并相继发布了0.1.6版本和0.1.7版本。 \* 对buildc cache upgrade的实现进行了修改。 在执行全量更新本地cache前，先对本地cache的情况进行一些检查，并判断是否与当前.buildc.rc中的配置相符。如果两者是一致的，那么只进行update操作；否则则执行真正的upgrade(rem...</description></item><item><title>一场关于“何时发布版本”的论战</title><link>https://tonybai.com/2012/04/17/a-discussion-about-when-to-release/</link><pubDate>Tue, 17 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/17/a-discussion-about-when-to-release/</guid><description>气氛太平静，投石起波澜。 昨天下午无意中在内部发起了一场关于&amp;#34;何时发布版本&amp;#34;的论战。 论战的背景是这样的：部门内部有这样的一个项目A，它的目标是开发出可被其他项目或产品复用的组件(这里就暂称之为组件吧，我们内部称这类组件为可复用资产)。这个项目已经开发了大半年了，目前处于收尾阶段，绝大部分开发工作已经完成。测试(包括压力测试等)已经测试过至少一轮了；我们的产品线近期准备复用项目A成产出的这些组件，...</description></item><item><title>buildc 0.1.5版本发布</title><link>https://tonybai.com/2012/04/13/buildc-0-1-5-release/</link><pubDate>Fri, 13 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/13/buildc-0-1-5-release/</guid><description>这两天对buildc的改动比较频繁，今天又修正了一些问题，也增加了一些小功能。主要包括这么几点： 1、在Make.rules.in中增加了STATIC\_LIBS和DYNAMIC\_LIBS 项目源代码和项目中单元测试代码使用同一个Make.rules，也此编译时也就共享同一个LIBS变量。对于静态共享库还好说，但对于动态共享库，诸如Oracle的instantclient库，单元测试代码中即使没...</description></item><item><title>buildc 0.1.4版本发布</title><link>https://tonybai.com/2012/04/12/buildc-0-1-4-release/</link><pubDate>Thu, 12 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/12/buildc-0-1-4-release/</guid><description>年后buildc开始逐渐在产品线的项目里应用了，随之而来的是大家反馈的各种意见和bug。尤其是bug，我都会很认真地应对，也会及时发布相应的版本修复这些bug。buildc 0.1.4版本就是一个bugfix版本，其修复的bug源于今天上午的一次持续集成的失败。 上午收到Jenkins发送的一个&amp;#34;build failed&amp;#34;的mail，一个安装包项目的CI job执行失败了，于是到Jenkins w...</description></item><item><title>关于编译阶段符号多重定义的问题</title><link>https://tonybai.com/2012/04/11/multiple-definitions-of-the-compiling-phase/</link><pubDate>Wed, 11 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/11/multiple-definitions-of-the-compiling-phase/</guid><description>印象中关于编译以及链接的问题早已是老生常谈了。但今天又遇到了一个这样的问题，这里还总想提及一下下^\_^。 这次要说的问题依旧发生在使用lcut进行单元测试的过程中。一位同事在编译使用了mock函数的测试用例代码时出现了&amp;#34;multiple definition of &amp;#39;xxx&amp;#39;“的错误。这里简单模拟其场景如下： /\* testall.c \*/ /\* mock lib function \*/...</description></item><item><title>lcut 0.3.0版本发布</title><link>https://tonybai.com/2012/04/10/lcut-0-3-0-release/</link><pubDate>Tue, 10 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/10/lcut-0-3-0-release/</guid><description>lcut单元测试框架在我的项目中应用已经有一段时间了，项目组的同事对lcut的使用也是越来越熟悉，这不今天一位同事还提出了一个新需求，需求大致是这样的。 在实际项目中，经常遇到这类情况： int bar(…) { int ret; ret = foo(…); /\* assert ret \*/ … ret = foo(…); /\* assert ret \*/ … ret = foo(…); ...</description></item><item><title>如何加入Linux内核开发社区(7)</title><link>https://tonybai.com/2012/04/09/how-to-participate-linux-community-section-7/</link><pubDate>Mon, 09 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/09/how-to-participate-linux-community-section-7/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。 下面是该文章第七章、第八章以及第九章节的中译文。 **7、高级主题** 但愿此时此刻，你已经理解了内核开发过程是如何进行的。但仍然还有很多东西要学习！...</description></item><item><title>如何加入Linux内核开发社区(5)</title><link>https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-5/</link><pubDate>Thu, 05 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-5/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。 下面是该文章第五章节的中译文。 **5、发布补丁** 迟早有一天你的工作将提交到开发社区进行评审，并最终合入内核主线。不出所料，内核开发社区在发布补丁...</description></item><item><title>如何加入Linux内核开发社区(6)</title><link>https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-6/</link><pubDate>Thu, 05 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-6/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。 下面是该文章第六章节的中译文。 **6、将补丁工作进行到底** 此时此刻，你已经遵循了这里到目前为止给出的所有指导原则，并且由于你自己的工程技能，你已...</description></item><item><title>如何加入Linux内核开发社区(4)</title><link>https://tonybai.com/2012/03/31/how-to-participate-linux-community-section-4/</link><pubDate>Sat, 31 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/31/how-to-participate-linux-community-section-4/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。 下面是该文章第四章节的中译文。 **4、正确地编写代码** 关于那个可靠的面向社区的设计过程我们已经说的够多了，任何内核开发项目的证据都是最终的代码。...</description></item><item><title>如何加入Linux内核开发社区(3)</title><link>https://tonybai.com/2012/03/29/how-to-participate-linux-community-section-3/</link><pubDate>Thu, 29 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/29/how-to-participate-linux-community-section-3/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。 下面是该文章第三章节的中译文。 **3、早期规划** 当考虑一个Linux内核开发项目时，人们可能很想尽快投入并开始编码。但和任何重要的项目一样，推动...</description></item><item><title>如何加入Linux内核开发社区(2)</title><link>https://tonybai.com/2012/03/28/how-to-participate-linux-community-section-2/</link><pubDate>Wed, 28 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/28/how-to-participate-linux-community-section-2/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。下面是该文章第二章节的中译文。 **2、内核开发过程是如何进行的** 在20世纪90年代初，当时的Linux内核开发是一件非常松散的事情，涉及的用户和开...</description></item><item><title>如何加入Linux内核开发社区(1)</title><link>https://tonybai.com/2012/03/27/how-to-participate-linux-community-section-1/</link><pubDate>Tue, 27 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/27/how-to-participate-linux-community-section-1/</guid><description>本文翻译自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本)，原作者为Jonathan Corbet(corbet@lwn.net)。下面是该文章第一章节的中译文。 **1、内核开发过程指南** 本文旨在帮助那些在参与开发社区(community)工作过程中遭遇些许挫折的开发人员(以及...</description></item><item><title>也谈Linux Kernel Hacking – Kconfig与Kbuild</title><link>https://tonybai.com/2012/03/18/linux-kernel-hacking-series-kconfig-and-kbuild/</link><pubDate>Sun, 18 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/18/linux-kernel-hacking-series-kconfig-and-kbuild/</guid><description>**_挖掘简单现象背后的复杂本质。_**– Tony Bai^\_^ 上文讲到Linux Kernel的配置和编译十分简单，甚至简单到可以与一个用户层应用相媲美。这一切都是因为Linux Kernel实现了一套易于使用、变更和后期维护的配置和编译体系。要知道最新Linux Kernel版本的代码量可是千万级别的，并且模块众多，其背后的配置和编译体系一定不那么简单，这次我们就来尝试Hack一下这套体...</description></item><item><title>也谈Linux Kernel Hacking – 内核配置、编译与安装</title><link>https://tonybai.com/2012/03/15/linux-kernel-hacking-series-kernel-config-compile-and-install/</link><pubDate>Thu, 15 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/15/linux-kernel-hacking-series-kernel-config-compile-and-install/</guid><description>_**Linux Kernel之于C程序员，就好比世界之巅珠穆朗玛之于专业登山客。**_ — Tony Bai^\_^ 作为到目前为止最为成功的开源项目，Linux Kernel总是散发着无穷的魅力，就好比那珠穆朗玛，让人魂牵梦绕，心潮澎湃并总是想尝试征服。 记得2006年初我曾花了些时间研究Linux Kernel，但后来迷失在了Linux Kernel引导阶段，无法自拔，最终选择了&amp;#34;知难而退&amp;#34;...</description></item><item><title>C语言编码风格和标准</title><link>https://tonybai.com/2012/03/07/the-chinese-translation-of-recommended-c-style-and-coding-standards/</link><pubDate>Wed, 07 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/07/the-chinese-translation-of-recommended-c-style-and-coding-standards/</guid><description>近期在为产品线的知识库编写一些指南类的文档，其中有一项就是对现有的C语言编码规范进行一些修订。为了&amp;#34;有米下锅&amp;#34;，我还特意在网上找了一些相关资料。关于C语言编码风格和标准的资料大多都成稿于上个世纪90年代，也就是在C90发布之后的若干年里；在C99发布后，部分资料根据最新的规范做了修订，但也有些资料认为C99对整体风格影响不大，也就保持了原样。 在这些资料中，我重点关注了一下这份文档《Recomme...</description></item><item><title>Adapter模式的C实现</title><link>https://tonybai.com/2012/03/05/implement-adapter-pattern-in-c/</link><pubDate>Mon, 05 Mar 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/03/05/implement-adapter-pattern-in-c/</guid><description>Adapter(适配器)模式是《Design Pattern》一书中结构类模式集中的第一个模式，也是一个真正被我的同事在产品代码中应用的模式。 Adapter模式也是一个相对容易理解的模式，多数书籍和网络资料在描述这个模式时都使用了一个与电源适配器有关的例子，说不定Adapter模式还真的是源于对电源适配器的再思考和挖掘呢。 我们在重构遗留代码时引入了Adapter模式。遗留系统中存在的问题大致是...</description></item><item><title>Blog新起点 – 从BlogBus搬家到WordPress</title><link>https://tonybai.com/2012/02/29/a-new-departure-of-my-blog-move-from-blogbus-to-wordpress/</link><pubDate>Wed, 29 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/29/a-new-departure-of-my-blog-move-from-blogbus-to-wordpress/</guid><description>今天着实是一个值得纪念的日子，因为我终于完成了从BlogBus到WordPress的搬家工作，从此我的Blog将站在一个新的起点上。 自从2004年开博以来，我坚持了七年多，至今仍孜孜不倦，写博客已经成为我的生活中不可或缺的一部分，即使在微博等大行其道的今天，我亦然如此。作出搬家的决定显然是十分痛苦的，因为要抛弃已经建立起来的使用习惯以及Blog人气(包括搜索引擎索引、外部引用的等)是十分艰难的。...</description></item><item><title>使用Jenkins实现多平台并行集成</title><link>https://tonybai.com/2012/02/15/intergating-on-multiple-platforms-simultaneously-using-jenkins/</link><pubDate>Wed, 15 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/15/intergating-on-multiple-platforms-simultaneously-using-jenkins/</guid><description>我们的后端C应用都是支持跨平台的，至少目前在Linux和Solaris上运行是没有问题的，这样一来我们在配置持续集成环境时就要考虑如何实现在代码Commit后触发多平台并行(同时)集成这个需求。 之前使用Buildbot时是通过为一个Scheduler配置多个Builder满足这个需求的。但现在要换成Jenkins，我们如何来实现呢？昨天在折腾Jenkins时我把问题想简单了，今天细致查看了一下B...</description></item><item><title>折腾Jenkins</title><link>https://tonybai.com/2012/02/14/install-and-configure-jenkins/</link><pubDate>Tue, 14 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/14/install-and-configure-jenkins/</guid><description>Buildbot是产品线C应用项目中采用的唯一持续集成工具，一直以来用得还不错。但前些日子部门负责过程改善的同事找到我，说今年部门计划统一各个项目组所使用的Continuous Integration工具，Buildbot有些小众，没有入大家的法眼，部门期望使用的是Jenkins(即原来的Hudson)。既然组织有统一规划，那我自然积极支持。但首先要做的就是评估Jenkins是否能满足我们的需求，...</description></item><item><title>为buildc添加安装包制作相关功能</title><link>https://tonybai.com/2012/02/10/add-packing-feature-to-buildc/</link><pubDate>Fri, 10 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/10/add-packing-feature-to-buildc/</guid><description>在&amp;#34;也谈C应用安装包制作与部署&amp;#34;一文中，我提到了为每一个源码工程建立单独的安装包制作工程(setup project)的想法，这两天我就一直在折腾这件事儿^\_^。 最初我并没有想去搞一个通用的安装包制作工具，只是为一个现有的源码工程建立了一个试验性质的安装包工程，并实现了其构建脚本(build.py)。但之后考虑到各个项目都要建立一个对应的安装包工程，安装包工程的构建脚本build.py势必会沦...</description></item><item><title>为buildc添加setup脚本</title><link>https://tonybai.com/2012/02/07/add-setup-script-for-buildc/</link><pubDate>Tue, 07 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/07/add-setup-script-for-buildc/</guid><description>buildc在发布0.1.0版时并没有做好安装脚本，当时的建议是直接下载0.1.0的源码包或svn export/checkout源码包，并手工将buildc目录位置加入到用户的PATH环境变量中。近期buildc计划正式投入到项目中使用，为了方便大家安装以及以后的统一升级维护，我花了些时间给buildc加上了setup脚本。 Python有标准的程序分发方案，不过我对这些了解不多。buildc本...</description></item><item><title>也谈C应用安装包制作与部署</title><link>https://tonybai.com/2012/02/01/also-talk-about-c-app-install-package-making-and-deploying/</link><pubDate>Wed, 01 Feb 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/02/01/also-talk-about-c-app-install-package-making-and-deploying/</guid><description>虽然部门一直在做C应用，但这么多年来，在C应用的安装包制作以及部署方面做得还是很初级，可以说还没有达到规范的程度。各个产品线的C应用安装包种类多样，水平参差不齐：有些产品的源码包即是安装包，把源码包拿到生产环境下编译后使用；有的项目则将编译好的目标文件(.o)以及第三方库放在安装包中，在生产环境下重新链接生成可执行文件；有的组则稍微专业一些，安装包中放的是编译好的可执行文件，但在目标主机上安装和执...</description></item><item><title>谋划2012</title><link>https://tonybai.com/2012/01/29/plan-and-design-2012/</link><pubDate>Sun, 29 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/29/plan-and-design-2012/</guid><description>对于我这个上班族来说，这假期真的不能太长，否则就适得其反了：不但不会得到很好的休息，反而感觉更累了。也许很多朋友和我有同样的感受^\_^。这不，这个春节在家待得就比较&amp;#34;闹心&amp;#34;，特别是后几天，想上班的冲动那叫一个此起彼伏啊，终于今天如愿了^\_^。 今天是壬辰龙年春节后的第一个工作日。如以往一样，办公室里比较冷清，很多同事还尚未结束休假。这可真是做整年谋划的黄金时间啊，我是这么想的，也是这么做的。 ...</description></item><item><title>2012·果果给您拜年了</title><link>https://tonybai.com/2012/01/23/happy-spring-festival-from-my-daughter-2012/</link><pubDate>Mon, 23 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/23/happy-spring-festival-from-my-daughter-2012/</guid><description>2012，是农历龙年，也是中华民族的本命年。龙，是我们民族的图腾，大家对龙都是有着特殊的情感的，比如壬辰年的生辰龙票就特别抢手。 龙年了，果果也长大了，越来越像女孩儿了，呵呵（因头发短，常被人误认为是男孩儿），下面是果果近期的一些写真^\_^，请您欣赏： 这种玩具难不倒我 瞧，我的眼神犀利不！ 妈妈给我买的眼镜，知性不？ 数一数，墙上有几朵花？ 过年了，我的新衣服喜庆不？ 好了，最后在龙年的大年初...</description></item><item><title>也谈C语言应用构建</title><link>https://tonybai.com/2012/01/17/also-talk-about-building-c-app/</link><pubDate>Tue, 17 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/17/also-talk-about-building-c-app/</guid><description>构建是软件开发过程中最常见的活动之一，也是很容易被忽视的环节。规范以及高效的构建对软件开发过程而言是大有裨益的。C语言并非一门年轻的语言，其历史已甚为悠久了(相对于还年轻的IT领域^\_^)。从C语言诞生以来，市面上存在的C语言应用何止千千万万。这些C应用的源码组织形式种类万千，从最简单的单个源文件，到复杂的诸如Apache httpd server这样庞大的Project。不过无论这些C应用的源...</description></item><item><title>2011·工作中的成长</title><link>https://tonybai.com/2012/01/12/my-grow-up-in-2011/</link><pubDate>Thu, 12 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/12/my-grow-up-in-2011/</guid><description>每至年关，回首一年工作中的成长，便有一种充实和幸福的感觉。 2011年我在工作中的成长可概括为如下几点： 1、建立并围绕原则为中心开展工作 现在想来，以前的工作有些盲从，心中没有原则，自然也就没有主线，也许这与当初的职位角色有关。2011年职位提升了，思维方式也有所了转变。我花了更多的时间对当前的工作进行考量，而且考量的过程不是过去那种仅仅从项目组或产品线的角度，而是尽量上升到组织的角度，并针对当...</description></item><item><title>由劝退一名员工所想到的</title><link>https://tonybai.com/2012/01/08/thoughts-from-persuading-somebody-to-quit/</link><pubDate>Sun, 08 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/08/thoughts-from-persuading-somebody-to-quit/</guid><description>这周五我做了一件&amp;#34;恶事&amp;#34; – 劝退了一名员工。这样的事情在部门成立10年的历史中发生的次数都是屈指可数的，但却真实地让我给碰到了。 我以前只是有招人的经验，但从未做过&amp;#34;开人&amp;#34;的事情，这是第一次，心里总有些不忍。原计划由这名同事的直接Leader与他谈这件事情，但这名女leader更是抹不开面子，索性我就直接上阵了。过程还算顺利，这名同事表面上也没有太多意见，但我心里清楚：他肯定很郁闷，这个周末估计...</description></item><item><title>关于组织内部建立良性提议反馈机制的一些考量</title><link>https://tonybai.com/2012/01/06/thoughts-on-establishing-a-benign-feedback-mechanisms-inside-the-organization/</link><pubDate>Fri, 06 Jan 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/01/06/thoughts-on-establishing-a-benign-feedback-mechanisms-inside-the-organization/</guid><description>近期完成了与组员的年终绩效面谈，收集上来一些意见和建议，其中有一些涉及到部门对大家反馈的意见和建议处理不妥的情况，对此我也做了认真的考量，于是就有了这篇短文。 组织的基本单元是人(即组员)，组织的运行依靠的也是组员，组员对组织的运行情况最有发言权，组织内部存在的问题他们会第一时间感知到，也许他们也是第一个尝试解决问题并作出改进的人，因此他们的意见和建议是最最宝贵的，作为一个组织的领导者首先应该认识...</description></item><item><title>2011·读过的书</title><link>https://tonybai.com/2011/12/22/book-list-i-have-read-in-2011/</link><pubDate>Thu, 22 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/22/book-list-i-have-read-in-2011/</guid><description>2011年我的确读了不少书，掐指算来纸版和电子版加在一起近50本，其中以技术类居多，但其他方面的也有一些。这里列出来做个简单回顾。 一、技术类 · 《你必须知道的495个C语言问题》 早在这本书出版前，其译者已经在网上完成了C FAQs的翻译(在这里)。这本书是基于最新C FAQs做了重新整理(包含C99)。虽说是最新，但因C语言近几年来变化很小，内容与之前译者在网上公开的那个免费版本相差不多。这...</description></item><item><title>2011小结</title><link>https://tonybai.com/2011/12/21/my-year-end-summary-of-2011/</link><pubDate>Wed, 21 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/21/my-year-end-summary-of-2011/</guid><description>2011年眼看就要接近尾声了，这里也对自己在2011年的&amp;#34;所作所为&amp;#34;做个小结^\_^。 这一年来工作之外的我过得还是比较充实的，从下面的数字也可以看出： \- 写了81篇博文 \- 开源了2个工具(CBehave和buildc) \- 合译了一本书（&amp;#34;Seven Languages in Seven Weeks&amp;#34;，不过尚未出版） \- 读了近50本书（通过豆瓣读书统计） \- 新学了一门语言 – ...</description></item><item><title>C语言项目构建管理辅助工具 – buildc</title><link>https://tonybai.com/2011/12/08/buildc-a-building-assistant-tool-for-c-app/</link><pubDate>Thu, 08 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/08/buildc-a-building-assistant-tool-for-c-app/</guid><description>这几年我一直从事C语言项目的开发。这些项目的规模都不算小，少则十几万代码，多则几十万行代码，至少也都算得上是中型项目吧。项目构建工具使用的是传统的Make工具，构建脚本都是自行编写的，构建时直接在顶层目录下敲入make即可。 这种传统的构建方式其实是很耗时费力的。比如执行make之前你需要根据项目代码的实际路径重新设定一些环境变量或修改Makefile中的某些标识路径的变量；你还要将项目依赖的各种...</description></item><item><title>利用缓冲区溢出漏洞Hack应用</title><link>https://tonybai.com/2011/12/01/hack-app-by-buffer-overflow-leak/</link><pubDate>Thu, 01 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/01/hack-app-by-buffer-overflow-leak/</guid><description>我们在平时编码过程中很少考虑代码的安全性(security)，与正确性、高性能和可移植性相比，安全性似乎总被忽略。昨天从安全性角度泛泛地Review了一下现有的代码，发现了不少具有安全隐患的地方。我们的程序员的确缺乏系统地有关安全编码方面的训练和实践，包括我在内，在安全编码方面也都是初级选手，脑子中对安全性编码缺乏系统的理解。 市面上讲解编码安全性方面的书籍也不是很多，在C编码安全性方面，CERT...</description></item><item><title>知识管理那些事儿</title><link>https://tonybai.com/2011/11/23/those-things-about-knowledge-management/</link><pubDate>Wed, 23 Nov 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/11/23/those-things-about-knowledge-management/</guid><description>我不是知识管理领域的专家，但我认为知识的积累和管理对一个期望长久稳定发展的组织来说很重要。今天我这个&amp;#34;门外人&amp;#34;就来说几句&amp;#34;门外话&amp;#34;。 我所在的部门已经成立10余年了，但说实话部门在知识积累和管理方面做的比较一般。例如，没有统一的知识积累和管理平台，知识分享多靠mail列表，或将知识存储在文件中放入Microsoft Visual SourceSafe，若干日子后，再无人能找到之前的知识(VSS绝对...</description></item><item><title>也谈C语言的restrict类型修饰符</title><link>https://tonybai.com/2011/11/18/also-talk-about-restrict-type-qualifier-in-c/</link><pubDate>Fri, 18 Nov 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/11/18/also-talk-about-restrict-type-qualifier-in-c/</guid><description>restrict关键字是C99标准中新引入的一个类型修饰符(type qualifier)。如果你看过GNU C库的源码或是其manual，你就会发现restrict修饰符被广泛地应用在GNU C库中。restrict关键字到底是用来做什么的呢？估计很多对C语言细节研究不够的程序员都无法给出答案，我个人也只是停留在&amp;#34;知道&amp;#34;这一关键字的层次上，于是乎今天我又对着C99规范钻研了一番，略有收获，这里也...</description></item><item><title>State模式的C实现</title><link>https://tonybai.com/2011/11/07/implement-state-pattern-in-c/</link><pubDate>Mon, 07 Nov 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/11/07/implement-state-pattern-in-c/</guid><description>上个周末花了些时间将《Pro Git》（Git高手进阶之必读书籍，严重推荐^\_^）快速地浏览了一遍，在感叹于Git强大的同时，也见识到了Git的复杂。可以肯定的是Git学习曲线远没有学习Subversion那样平坦。比如，Subversion工作目录下的文件只有三种状态：Untracked、Modified和Committed(即Unmodified)；而以Git本地工作目录下则有四种状态：Un...</description></item><item><title>Transaction模式的C实现</title><link>https://tonybai.com/2011/11/04/implement-transaction-pattern-in-c/</link><pubDate>Fri, 04 Nov 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/11/04/implement-transaction-pattern-in-c/</guid><description>提到Transaction模式(即事务模式)，很多人会感到陌生。这并不奇怪，在大名鼎鼎的GoF的《Design Pattern》一书中，它仅仅是Command模式的别名罢了。不过在实际的开发中，我们却经常会遇到可以应用事务模式的场景。本文可以理解成Command模式在事务领域的应用，但这样说有些麻烦，我们莫不如直接称之为Transaction模式。 与前几篇设计模式C实现系列文章一样，这篇文章也源...</description></item><item><title>提高效率不是口号</title><link>https://tonybai.com/2011/10/31/improving-efficiency-should-not-only-be-a-slogan/</link><pubDate>Mon, 31 Oct 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/10/31/improving-efficiency-should-not-only-be-a-slogan/</guid><description>当前任何一个组织 — 无论是私企，还是国企，无论是政府还是民间组织，无论是在国内还是在国外 — 都在强调提高效率。但&amp;#34;提高效率&amp;#34;不简单是一句口号，还需要脚踏实地的真正去做。 说到&amp;#34;提高效率&amp;#34;，大家首先就会想到工作的行为主体-人！促进人员能力的提升是提升个体工作效率的一个很好的办法。在软件开发领域也有一个公认的事实，那就是一个顶尖程序员的效率可以十倍甚至百倍于一个普通程序员。为此，很多组织都投入巨资...</description></item><item><title>Chain of Responsibility模式的C实现</title><link>https://tonybai.com/2011/10/25/implement-chain-of-responsibility-pattern-in-c/</link><pubDate>Tue, 25 Oct 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/10/25/implement-chain-of-responsibility-pattern-in-c/</guid><description>又是一个行为类的模式，似乎这类模式在使用C语言开发的项目中适应性更强，而另外两类模式创建型和结构型则略显不受待见^\_^。 Chain of Responsibility模式（中文名：职责链模式）是一个不算复杂的模式。虽不复杂，但用好了同样可以解决大问题。个人觉得其最大的好处就在于可以动态地重组针对一类对象的处理流程。正是得益于这一优势，它才可以在纷繁芜杂的业务领域站稳脚跟。 我们遇到的问题是这样...</description></item><item><title>Strategy模式的C实现</title><link>https://tonybai.com/2011/10/20/implement-strategy-pattern-in-c/</link><pubDate>Thu, 20 Oct 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/10/20/implement-strategy-pattern-in-c/</guid><description>与那些复杂的模式相比，Stragegy Pattern(策略模式)是一个相对简单的模式，很直观，也易于理解。 同时它也是我们在开发过程中使用最多的模式之一。 问题是设计模式使用的驱动力，只有当我们遇到问题时，设计模式才会向我们伸出援助之手。这里我也想通过对问题以及解决方法演化的阐述来说明策略模式是如何更好地帮助我们的。我们从问题出发！ Tony最近接到了一个新任务，任务的内容是实现一个通用的平衡二...</description></item><item><title>C语言的现状</title><link>https://tonybai.com/2011/10/17/the-state-of-c/</link><pubDate>Mon, 17 Oct 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/10/17/the-state-of-c/</guid><description>本文翻译自Dr. Dobb&amp;#39;s Journal官网上的一篇由Brian W. Kernighan和Dennis M. Ritchie共同撰写的名为&amp;#34;The State of C&amp;#34;的文章。这里谨将此篇译文献给不久前刚刚离我们而去的C语言之父 – Dennis M. Ritchie，愿一代计算机科学巨匠一路走好。 **不再只是为了系统级编程(system programming)** C是一门通用的计...</description></item><item><title>Observer模式的C实现</title><link>https://tonybai.com/2011/10/14/implement-observer-pattern-in-c/</link><pubDate>Fri, 14 Oct 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/10/14/implement-observer-pattern-in-c/</guid><description>设计模式) (Design Pattern，以下简称DP)的定义有很多种。我个人的理解：DP是人们在软件开发过程中所总结出来的一些典型问题的经验解决方法模板。使用它们可以使我们的代码更易被复用，更易扩展，更好地适应变化以及更便于后期维护。 人们都说设计模式是独立于语言的，但这里的&amp;#34;语言&amp;#34;更多的是指面向对象语言，比如Java、C++、C#、Python和Ruby等。使用面向对象语言(OO)在实现设计...</description></item><item><title>秋游天华山</title><link>https://tonybai.com/2011/09/26/the-tour-of-tianhua-moutain-in-autumn/</link><pubDate>Mon, 26 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/26/the-tour-of-tianhua-moutain-in-autumn/</guid><description>不知为何，一到秋天我就有了爬山的冲动。于是乎我和同事一行六人在一个秋高气爽的周末来到了位于丹东宽甸的天华山。 辽宁境内的山我爬过的不多，之前只是去过千山和关门山。选择天华山也是再三考虑了同事们久疏于运动之后做出的决定，其实我个人更加向往征服另一座更为难爬的山峰 – 位于凤城的凤凰山，看来我的这个目标只能等来年再实现了^\_^。 景区的自费倒站车将我们送到了此次登山的起点-通天峡广场。一上来我们就要...</description></item><item><title>C程序员驯服Common Lisp – 函数</title><link>https://tonybai.com/2011/09/23/c-programers-tame-common-lisp-series-functions/</link><pubDate>Fri, 23 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/23/c-programers-tame-common-lisp-series-functions/</guid><description>Common Lisp是函数式编程语言，其基本组成单元自然是函数。对Common Lisp函数的理解也是学习Common Lisp语言的关键。另外与C语言以内存单元修改为主要编程方法不同，Common Lisp的主要编程方法是将函数应用于参数。这里我们分别用两种范式风格实现同一个函数，该函数用于取得第n个fibonacci数（n从0开始）： ;; 命令式风格 (defun imperative-f...</description></item><item><title>C程序员驯服Common Lisp – 变量</title><link>https://tonybai.com/2011/09/20/c-programers-tame-common-lisp-series-variables/</link><pubDate>Tue, 20 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/20/c-programers-tame-common-lisp-series-variables/</guid><description>变量是C语言中最常用的、不可或缺的语言元素。C语言是命令式编程语言（imperative programming language），其基本编程方法是基于对内存单元的修改，而变量又恰是对内存单元的抽象表示，比如：&amp;#34;int a = 0xff&amp;#34;这行语句告诉我们在内存中有一块大小为4个字节的区域，该区域可以通过a这个变量直接访问，该区域初始时存储的值为0xff。由此看来C语言的主要操作就是变量操作。 C...</description></item><item><title>C程序员驯服Common Lisp – 控制结构</title><link>https://tonybai.com/2011/09/14/c-programers-tame-common-lisp-series-control-structure/</link><pubDate>Wed, 14 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/14/c-programers-tame-common-lisp-series-control-structure/</guid><description>光有表达式，我们依旧无法写出实用的程序，我们还缺少控制结构(Control Structures)。 C语言主要有三种控制结构：顺序结构、条件分支结构和循环结构。Common Lisp 也实现了类似的控制结构，我们逐一来看。 一、顺序结构 顾名思义，顺序结构中的语句或表达式是按其位置的先后顺序依次执行的，这也是最简单也最容易理解的一种结构。在C语言中，绝大多数代码块(code block)中的代码...</description></item><item><title>当可执行程序版本信息变更时</title><link>https://tonybai.com/2011/09/09/when-program-version-changed/</link><pubDate>Fri, 09 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/09/when-program-version-changed/</guid><description>在Unix/Linux上，我们一般可以通过两种方法查看到一个可执行程序的版本信息，以下以Ubuntu中的Gcc为例。 第一种方法：我们可以直接通过程序名字得到版本信息，例如: $ which gcc /usr/bin/gcc $ ls -l /usr/bin/gcc lrwxrwxrwx 1 root root 7 2010-08-21 00:18 /usr/bin/gcc -&amp;gt; gcc-4.4\...</description></item><item><title>西中岛旅记</title><link>https://tonybai.com/2011/09/06/a-tour-of-xizhong-island/</link><pubDate>Tue, 06 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/06/a-tour-of-xizhong-island/</guid><description>算上这次，部门已经是连续三年组织去海边旅游了。前年没印象了，去年是南北戴河，今年是西中岛。 按理来说，总去海边肯定有些腻歪了。但我个人还是比较喜欢海的。喜欢海不是因为喜欢吃新鲜的海鲜，而是向往一种意境：大家一起坐在海边，扶着海风，听着海浪、远望海天之际，或陷入冥想，或欢歌笑语。 据导游说西中岛是个刚开发没几年的海边旅游景区，各种配套设施与成熟的景区相比还有较大差距，其吸引游客的地方就在于其平缓宽阔...</description></item><item><title>果果一周岁生日靓照</title><link>https://tonybai.com/2011/09/05/one-year-old-photos-of-my-daughter/</link><pubDate>Mon, 05 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/05/one-year-old-photos-of-my-daughter/</guid><description>果果在今年五月份就已经满一岁了，不过由于&amp;#34;档期&amp;#34;原因，果果一周岁的生日照直到六月份才拍上。再加上后期靓照制作过程中，我们与影楼就版面设计交流和修改过多次，这样果果的周岁靓照一直到上周才正式出炉！啥也不说了，上图^\_^。 现在小家伙儿有16个月了，很是淘气，胃口和爸爸一样好得很。我们说的生活用语似乎她都能听明白，也能照着做。但就是说话有些晚，到目前为止还不会叫爸爸呢:(。不过她的动手能力似乎还不错...</description></item><item><title>C程序员驯服Common Lisp – 表达式</title><link>https://tonybai.com/2011/09/02/c-programers-tame-common-lisp-series-expressions/</link><pubDate>Fri, 02 Sep 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/09/02/c-programers-tame-common-lisp-series-expressions/</guid><description>Common Lisp程序由一组表达式构成。在&amp;#34;入门&amp;#34;一文中我提到过：Common Lisp使用S-expressions作为表达式(Expressions)的基本语法格式。S-expressions由原子(atoms)和S-expressions列表组成，或者说原子和列表(List)是组成S-expression的基本元素。复杂的源程序都是由简单的表达式组成的，我们在学习编写实用的Common ...</description></item><item><title>使用C99特性简化代码编写</title><link>https://tonybai.com/2011/08/31/simplify-coding-in-c99/</link><pubDate>Wed, 31 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/31/simplify-coding-in-c99/</guid><description>至今我还记得第一次听说C99标准还是在读大一时，那时同寝一位兄弟手头有一本Herbert Schildt编写的《C: The Complete Reference，Fourth Edition》(中文名：C语言大全)，书封皮的右上角上赫然写着&amp;#34;详解C99 ANSI/ISO最新标准&amp;#34;，那时离C99标准发布仅仅才一年。 那个时候我们大学授课以及实验用的还是Borland的Turbo C 2.0，C99...</description></item><item><title>C程序员驯服Common Lisp – 入门</title><link>https://tonybai.com/2011/08/30/c-programers-tame-common-lisp-series-introduction/</link><pubDate>Tue, 30 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/30/c-programers-tame-common-lisp-series-introduction/</guid><description>毫无疑问，Common Lisp是一门庞大且复杂的语言，学习曲线并不平坦。对于一个从未接触过函数式语言、交互式语言以及动态类型语言的C程序员来说，学习Common Lisp显然是一个很大的挑战。 也许有人会问：&amp;#34;C语言已经无所不能了，为何还要学习Common Lisp？&amp;#34;在这里我不想说太多冠冕堂皇的话，至少对我而言，理由有三： 一是好奇，在C语言的世界里待得久了，总想探出头来吸几口新鲜空气，这次我...</description></item><item><title>使用autoconf解决可移植性问题</title><link>https://tonybai.com/2011/08/23/solve-portable-problem-with-autoconf/</link><pubDate>Tue, 23 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/23/solve-portable-problem-with-autoconf/</guid><description>昨天在编译项目代码时遇到了这样一个错误： xx\_base.h:72:2: 错误：#error &amp;#34;One of \_BIG\_ENDIAN or \_LITTLE\_ENDIAN must be defined.&amp;#34; 这是预编译器的错误输出。原因很明显：预编译器在处理xx\_base.h时没有发现\_BIG\_ENDIAN或\_LITTLE\_ENDIAN的定义，#error预处理宏输出了如上错误。...</description></item><item><title>Bambook使用手记</title><link>https://tonybai.com/2011/08/16/some-notes-on-using-bambook/</link><pubDate>Tue, 16 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/16/some-notes-on-using-bambook/</guid><description>自从去年7月末盛大的Bambook(中文名称：锦书)上市起，我就一直关注着这款产品。不过考虑到刚上市的产品价位较高，功能和应用有限，缺陷较多等因素，我也一直没有下单购买。期间我还差点买入Kindle，后据说Kindle对PDF及中文的支持不佳而暂时打消了念头。上周在京东看到Bambook价格降到了499，而且据网上评测Bambook在经过一年的固件升级后，增加了许多功能，其中就包括对原生pdf文件...</description></item><item><title>CBehave – 一个C语言行为驱动开发框架</title><link>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</link><pubDate>Mon, 15 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</guid><description>Behaviour-Driven Development，即行为驱动开发在业界早已不是什么新鲜玩意了。我之前也略有了解，不过一直没有&amp;#34;深入钻研&amp;#34;。直到今年年初InfoQ的几篇有关BDD的文章才让我对BDD有了更多的认识。与TDD一样，C语言在BDD领域依旧是一个&amp;#34;后进分子&amp;#34;，在多数主流语言(Java，C#，Ruby等)都已经拥有比较成熟的BDD框架(如JBehave、SpecFlow和Cucumb...</description></item><item><title>行为驱动开发导引</title><link>https://tonybai.com/2011/08/10/introducing-bdd/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/10/introducing-bdd/</guid><description>本文翻译自Dan North的文章&amp;#34;Introducing BDD&amp;#34;。 我遇到了一个问题。当我在不同环境的多个项目中使用和教授类似测试驱动开发(test-driven development, TDD)这样的敏捷实践时，我总是能遇到来自程序员们相同的困惑和误解。他们想知道从哪里开始、测什么不测什么、一次测试多少、谁来调用他们的测试以及如何理解为什么一个测试失败了。 越是深入TDD，我越能感觉到我对...</description></item><item><title>Common Lisp初学点滴</title><link>https://tonybai.com/2011/08/05/some-experience-of-common-lisp-beginner/</link><pubDate>Fri, 05 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/05/some-experience-of-common-lisp-beginner/</guid><description>Common Lisp是一门Interactive语言，比较容易上手。无论你是用CLISP，SBCL还是Clozure CL，你都可以很快地写出一个&amp;#34;Hello, World&amp;#34;程序出来。不过千万不要因此低估了Common Lisp，前人的经验表明：Common Lisp是门庞大且复杂的语言，其学习曲线可并不低。要想真正掌握它，需要你有持续的热情、足够的耐心和不断的练习。我接触Common Lisp...</description></item><item><title>偿还N年前的一笔技术债</title><link>https://tonybai.com/2011/07/21/pay-for-a-tech-debt-of-several-year-ago/</link><pubDate>Thu, 21 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/21/pay-for-a-tech-debt-of-several-year-ago/</guid><description>记得刚来公司时曾参与过一个项目，项目中用到了部门基础库中的一个B+树接口。不过在程序调试过程中我们发现可执行程序总是dump core（在sparc solaris上），经初步分析，断定问题就出在B+树接口处，但一时又找不到问题原因。还好这个B+树的实现者就坐在我的旁边。他分析后告诉我：这个B+树接口要求用户自定义的索引结构体的size应该为4的整数倍。按照他的说法，我为结构体打了padding，...</description></item><item><title>为函数添加enter和exit级trace</title><link>https://tonybai.com/2011/07/13/add-enter-and-exit-trace-for-your-function/</link><pubDate>Wed, 13 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/13/add-enter-and-exit-trace-for-your-function/</guid><description>日常开发中，我们为了辅助程序调试常常在每个函数的出入口(entry/exit)增加Trace，一般我们多用宏来实现这些Trace语句，例如： #ifdef XX\_DEBUG\_ #define TRACE\_ENTER() printf(&amp;#34;Enter %s\\n&amp;#34;, \_\_FUNCTION\_\_) #define TRACE\_EXIT() printf(&amp;#34;Exit %s\\n&amp;#34;, \_\_...</description></item><item><title>也谈共享库2</title><link>https://tonybai.com/2011/07/07/also-talk-about-shared-library-2/</link><pubDate>Thu, 07 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/07/also-talk-about-shared-library-2/</guid><description>我之前写过一篇名为&amp;#34;也谈共享库&amp;#34;的博文，对共享库的查找和符号解析机制做了还算比较详细的说明，不过百密一疏，总有一些意想不到的情况发生。这不今天我又遇到了一个有关共享库的新问题，这里将这个问题及其解决过程记录下来，也算是对上一篇文章中未涉及内容的一个补充吧。 N年前我曾参与过部门的一个可复用系统的设计开发，当时我们设计了一种插件式的系统结构，其中所谓的&amp;#34;插件&amp;#34;是以共享库的形式提供。主程序通过读取配置...</description></item><item><title>也谈C语言编译器的标准编译阶段</title><link>https://tonybai.com/2011/07/04/also-talk-about-standard-compile-stage-of-c-compiler/</link><pubDate>Mon, 04 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/04/also-talk-about-standard-compile-stage-of-c-compiler/</guid><description>了解C编译器的工作流程有助于C程序员解决编译代码过程中出现的问题。市面上凡是讲解得还算全面的C语言书籍中都或多或少对此有所提及。 让我们在这里来回顾一下C编译器的工作流程！一般C编译器的工作流程大致分为：预编译、编译、生成目标代码（汇编）和连接这四个主要步骤。我们用实例具体描述一下这四个步骤，以最著名的GCC编译器结合helloworld.c文件为例: /\* helloworld.c \*/ i...</description></item><item><title>也谈阿根廷队2011美洲杯首演</title><link>https://tonybai.com/2011/07/02/also-talk-about-the-first-match-of-agentina-on-2011-copa-america/</link><pubDate>Sat, 02 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/02/also-talk-about-the-first-match-of-agentina-on-2011-copa-america/</guid><description>相信今天上午进行的2011美洲杯阿根廷队的首演又让广大阿根廷球迷&amp;#34;上火&amp;#34;了。同为阿根廷球迷，我和大家的心情是一样一样的。 事实上我也只是看了下半场比赛。这里我还是要提醒那些尚未亲眼观看阿根廷的比赛的朋友们：你需要有一颗坚强的心，否则伤不起啊。一句话概括这场比赛：后防风声鹤唳、中场平庸无奇、前场单打独斗。这似乎是这几年来阿根廷队一贯所表现出来的风格。 阿根廷球迷，真悲哀啊。我们遇到阿根廷足球一个低谷...</description></item><item><title>也谈C语言对国际化的支持</title><link>https://tonybai.com/2011/07/01/also-talk-about-the-internationalization-support-in-c/</link><pubDate>Fri, 01 Jul 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/07/01/also-talk-about-the-internationalization-support-in-c/</guid><description>C语言对国际化的支持由来已久，最初开始于其第一版标准，即C89标准。在C89中我们可以看到用于支持国际化的locale.h、宽字符、宽字符串以及多字节字符(串)。而之后的&amp;#34;C89增补1&amp;#34;标准，即C90标准，以及C95标准又进一步完善了C语言对国际化的支持，增加了wchar.h、 wctype.h以及大量用于操作宽字符(串)和多字节字符(串)的标准库函数。最新一版C语言标准，即C99，让C语言对国际...</description></item><item><title>使用Apache2配置多个站点</title><link>https://tonybai.com/2011/06/27/configure-multiple-websites-with-apache2/</link><pubDate>Mon, 27 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/27/configure-multiple-websites-with-apache2/</guid><description>部门虽然不是做Web开发的，但是部门内部很多服务器也是使用Apache作为Web Server的。不过一直一来我这边都是用一个Apache Server对应一套Web应用。不过今天有了新的要求：在一个已经部署了一套应用的Apache2上再部署另外一套应用。这也让我不得不深入了解一下Apache的配置。不过还好，过程还是顺利的，这里记下此文意在备忘，如果同时也能给大家带来一些有价值的参考那就再好不过...</description></item><item><title>也谈C语言的内联函数</title><link>https://tonybai.com/2011/06/22/also-talk-about-inline-function-in-c/</link><pubDate>Wed, 22 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/22/also-talk-about-inline-function-in-c/</guid><description>有这样一段代码： /\* foo.c \*/ #include  &amp;#34;stdio.h&amp;#34; inline void foo() {     printf(&amp;#34;inline foo in %s\\n&amp;#34;, \_\_FILE\_\_); } int main() {     foo();     return 0; } 我采用C99标准，并在不加任何优化选项的情况下编译之： $ gcc -std=c99 foo...</description></item><item><title>Hello，Common Lisp</title><link>https://tonybai.com/2011/06/21/hello-common-lisp/</link><pubDate>Tue, 21 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/21/hello-common-lisp/</guid><description>Paul Graham不愧被誉为Lisp)的超级推手，他的煽动力真的是很强悍。这不才刚刚看完一遍他编写的《黑客与画家》后，我就决定将Common Lisp作为今年计划学习的那门新语言，而且从现在就开始。 去年曾囫囵吞枣般的学习过Haskell，一门通用且庞大的纯函数式编程语言。在惊叹于Haskell如此与众不同且功能强大的同时，也为Haskell Monad那魔鬼般的蹩脚语法所苦恼，而Monad的...</description></item><item><title>解决一个IP路由选择问题</title><link>https://tonybai.com/2011/06/21/solve-a-problem-about-ip-route/</link><pubDate>Tue, 21 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/21/solve-a-problem-about-ip-route/</guid><description>大学时曾旁听过计算机专业的专业课-&amp;#34;计算机网络&amp;#34;（我非科班出身，只能偷偷旁听），现在还能清晰地记得当初他们使用的教材是高教社影印版的《计算机网络——自顶向下方法与Internet特色》。不过记忆中课程的内容却渐渐模糊了。有些当时并没有深刻地理解的概念，现在依旧没理解，因为平时少有涉及。 上周在搭建CI环境时遇到了两个服务器(均安装的是RHEL 5.5 OS)之间网络不通的问题。这两个服务器分处于两...</description></item><item><title>小试番茄工作法</title><link>https://tonybai.com/2011/06/14/try-pomodoro-technique/</link><pubDate>Tue, 14 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/14/try-pomodoro-technique/</guid><description>番茄工作法（Pomodoro Technique），你可能没有听说过，呵呵，它年纪也不小了，官方说它是在1980s时发明的一种时间管理方法，只不过它最近又被一些人“挖掘”了出来，并被大力推广了一番。特别是在软件开发圈子里，被包装后的番茄工作法披上了光鲜的外衣，拥有了不少粉丝（我还算不上粉丝，充其量算是个试用者 ^\_^）。 不过和历史上诸多的时间管理方法一样，番茄工作法不是银弹，它无法将你彻底地从...</description></item><item><title>让BuildBot服务于多个项目</title><link>https://tonybai.com/2011/06/07/use-buildbot-serves-serveral-projects-simultaneously/</link><pubDate>Tue, 07 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/07/use-buildbot-serves-serveral-projects-simultaneously/</guid><description>多数公司不会仅有一个项目，当你为一个项目引入持续集成实践后，其他项目就会接踵而来。这时你会重新考量BuildBot，考虑如何让BuildBot可以服务于多个项目。 如果你有足够的主机资源和人力资源，那为每个项目单独搭建一套CI环境是再好不过的了，每个项目都有专人维护CI环境，各个项目的配置互不干扰。不过对于一些公司来说，这显然有些浪费，BuildBot Master的资源消耗是不大的，我们完全可以...</description></item><item><title>把握好编码的节奏</title><link>https://tonybai.com/2011/06/03/hold-the-coding-rhythm/</link><pubDate>Fri, 03 Jun 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/06/03/hold-the-coding-rhythm/</guid><description>最近观察到这样一种情况，项目组内的两位比较资深同事似乎都习惯于这样来编码：他们可能会花上两、三周时间将一个模块的成百上千行代码一气呵成的编写完，然后再去与其他人编写的代码集成在一起编译，测试，最终提交。这种情况让我有些惊讶，因为我觉得一个良好的编码节奏不应该是这样的，原因有三： .这样的节奏不利于问题的早发现早解决 我们都知道问题发现越早，其解决成本越小。如果只是一味地编写代码，甚至连一次编译都不...</description></item><item><title>解决BuildBot构建结果mail无法发送的问题</title><link>https://tonybai.com/2011/05/31/solve-the-problem-that-buildbot-can-not-send-mail/</link><pubDate>Tue, 31 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/31/solve-the-problem-that-buildbot-can-not-send-mail/</guid><description>在“使用BuildBot搭建持续集成环境”一文中我曾经说到：公司使用的mail服务器只支持SSL连接，而BuildBot似乎对SSL连接的支持有些问题，导致构建结果mail无法发送“。BuildBot实际上使用的是Twisted的mail库来发送邮件的，我下载了Twisted的一些mail发送的例子程序，并使用我的公司mail账户配置，但依旧发送失败。看来这个问题与Twisted的实现有关了。 这...</description></item><item><title>使用命令行方式开发Android应用</title><link>https://tonybai.com/2011/05/24/develop-android-app-in-command-line-method/</link><pubDate>Tue, 24 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/24/develop-android-app-in-command-line-method/</guid><description>这两天参加了一个Android)开发入门培训，讲师的水平不敢恭维，课讲的基本上也是一塌糊涂，不过通过这次培训，我算是达到了Android开发快速入门的预期目标。 一般来说Android应用开发的标准工具组合是JDK + Android SDK + ADT (Android Development Tools) + Eclipse，大家基本上是通过IDE GUI进行开发操作的。不过我个人更喜欢命令行...</description></item><item><title>果果写真-一周岁花丛系列</title><link>https://tonybai.com/2011/05/22/among-flowers-the-portray-of-my-daughter/</link><pubDate>Sun, 22 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/22/among-flowers-the-portray-of-my-daughter/</guid><description>一般来说，只有周末我和老婆才有机会一起陪果果。我们就抓紧这段时间多陪果果到户外，现在是春末夏初，户外天气十分宜人，果果也十分喜欢到户外活动。这不今天又给果果拍了一组“写真”，我们称之为“花丛系列”^\_^。 花丛中-果果正面照 花丛中-果果远景 花丛中-果果近景 可爱的果果</description></item><item><title>使用Make的命令行变量</title><link>https://tonybai.com/2011/05/19/use-command-line-vars-of-make/</link><pubDate>Thu, 19 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/19/use-command-line-vars-of-make/</guid><description>有了BuildBot搭建的持续集成环境还远未结束，具体的构建脚本还得自己来写。我们用的是Make工具，对应要编写的脚本就是Makefile。 Make是日常代码构建常用的工具，尤其是绝大多数C和C++项目都会将Make作为首选构建工具。平时多数情况大家都是直接敲入make命令便开始了构建过程，很少有人为make传入什么参数的（调试Makefile的情况除外）。但是有些时候自定义的Make命令行变量...</description></item><item><title>使用BuildBot搭建持续集成环境</title><link>https://tonybai.com/2011/05/18/set-up-ci-environment-with-buildbot/</link><pubDate>Wed, 18 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/18/set-up-ci-environment-with-buildbot/</guid><description>部门的持续集成一直做的不太好，我们开发部这边甚至一直没能做起来，这其中有各种原因：工具、意识、执行力、沟通等等。将持续集成引入到我们的开发过程中也一直是我的一个目标。去年末启动的一个项目让我感到时机变得成熟了。 新项目的代码是完全重写的，这样的机会甚是难得。因为大多数情况下大家都是在维护现有系统：做些添添补补、修正Bug以及优化之类的事情。项目初期，我特别向大家强调了要严格遵守统一代码风格并将as...</description></item><item><title>聆听编程“古训”</title><link>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</link><pubDate>Tue, 10 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</guid><description>市面上关于优秀编程风格和习惯养成的书籍还真不少，其中“叫好又叫座”的书诸如《代码大全》、《编程精粹:编写高质量C语言代码》、《编程匠艺》、《重构》以及《Clean Code》等。不过前些天我在网上下载了一本名为《The Elements of Programming Style》的电子书，看过此书后，我才知道开创编写优秀风格代码之路的鼻祖是谁（不知道是否还有比这本书更加古老的且系统地讲述优良编程元...</description></item><item><title>只对代码无法表达的东西写注释</title><link>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</link><pubDate>Thu, 05 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</guid><description>本文翻译自”Comments Only What the Code Cannot Say“，来自于《程序员应该知道的97件事》一书中的某个章节。 我们知道理论与实践之间存在差异。在实践中，这个差异远大于其在理论中所描述的那样 – 一份对注释（comments）的观察数据也证实了这一点。理论上，通常的注释代码的想法听起来是值得的：它可以为读者提供更多的细节，可以解释发生了什么事情。有什么能比自我帮助...</description></item><item><title>果果一周岁了</title><link>https://tonybai.com/2011/05/03/my-daughter-is-one-year-old/</link><pubDate>Tue, 03 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/03/my-daughter-is-one-year-old/</guid><description>今天是我的宝贝儿闺女-果果的一周岁生日。老爸特在此发文以表祝贺和纪念。 “时间飞逝”虽然是句套话，但它却真实地反映出这一年来的情况。的确是太快了！去年（2010年）的5月3日上午10点多，果果在大家的热切期盼下呱呱坠地，而如今小家伙儿都已经可以独立行走了。果果这一年来的成长还算是顺利。小家伙一直是母乳喂养（今天也正式断掉母乳了），体格很是健壮，各方面身体指数也在同龄平均水平之上。一年来基本没有什么...</description></item><item><title>Ubuntu一年使用感受</title><link>https://tonybai.com/2011/04/29/feel-experience-after-using-ubuntu-for-one-year/</link><pubDate>Fri, 29 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/29/feel-experience-after-using-ubuntu-for-one-year/</guid><description>今天是Ubuntu 11.04版本(Natty Narwhal)发布的正日子！想必全世界的Ubuntu Fans们都会或多或少的兴奋上一阵儿。我接触Ubuntu这个Linux发行版较早，甚至可以追溯到Ubuntu 5.10。不过真正将Ubuntu作为我日常工作学习的第一操作系统还是在去年Ubuntu 10.04LTS版本发布之后。从那时起到现在整整有近一年时间了。这里我也来说说这一年来使用Ubun...</description></item><item><title>终于见到擎天柱大哥了！</title><link>https://tonybai.com/2011/04/24/i-finally-see-optimus-prime/</link><pubDate>Sun, 24 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/24/i-finally-see-optimus-prime/</guid><description>今年春节时我就从广播中得知某商家会在沈阳中街复原搭建一个迈克尔·贝版《变形金刚》中的擎天柱大哥。这几个月来一直没有机会到中街去，本以为复原版的擎天柱早已经被拆除了。但今天一到中街就看到了远处巍然屹立的擎天柱大哥，见此场景心中很是兴奋。遗憾的是今天没带那个日本破数码相机，无奈只能用手中的Moto手机为大哥留影了。闲话少说，上图，让大家也能欣赏到擎天柱大哥的伟岸英姿： 擎天柱大哥正面标准照 擎天柱大哥...</description></item><item><title>童子军规则</title><link>https://tonybai.com/2011/04/23/the-boy-scout-rule/</link><pubDate>Sat, 23 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/23/the-boy-scout-rule/</guid><description>本文翻译自&amp;#34;The Boy Scout Rule&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 童子军有一条规则：“永远保持离开时的露营地比你发现它时更整洁”。如果你在地面上发现了脏东西，那么无论是否是你留下的，你都要将它清理干净。你有意地为下一组露营者改善环境。（实际上，由童子军之父罗伯特·斯蒂芬森·史密斯·贝登堡编写的原版规则是这样的：“尝试让这个世界在你离开时比你发现它时变得更美好...</description></item><item><title>应用C语言代码风格检查</title><link>https://tonybai.com/2011/04/21/apply-style-check-to-c-code/</link><pubDate>Thu, 21 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/21/apply-style-check-to-c-code/</guid><description>代码风格（style）一直是一个见仁见智的问题，但是对于一个团队而言，如果能在代码风格上达成一致，显然无论对团队还是对个人来讲都是大有裨益的。 在这方面我们也曾做过努力，包括在团队中引入astyle工具，并在astyle的代码美化风格配置上，团队成员也集体达成过一致。但是在开发过程中还是出现了一些问题。最主要的就是对astyle工具使用不足：一些同事总是记得不停地写代码，但却忘记了按约定好的风格要...</description></item><item><title>使用正确的算法和数据结构</title><link>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</link><pubDate>Tue, 19 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</guid><description>本文翻译自”Use the Right Algorithm and Data Structure“，来自于《程序员应该知道的97件事》一书中的某个章节。 _一家拥有多个分行的大银行抱怨说他们为出纳员新买的计算机运行得太慢了。这件事儿发生在电子银行以及ATM机使用普及程度远不及现在的那个年代。人们更多的是亲自到银行办理业务，这些运行超慢的计算机使得大家排起了长队。因此，这家银行威胁计算机供货商要结束...</description></item><item><title>带果果到户外感受春天</title><link>https://tonybai.com/2011/04/10/bring-my-daughter-outdoor-in-sping/</link><pubDate>Sun, 10 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/10/bring-my-daughter-outdoor-in-sping/</guid><description>忽如一夜春风来，千树万树&amp;#34;桃花&amp;#34;开。北方的春天照比南方来得要晚些，但是来得却甚是迅速。前天这里真的是仿佛一夜间迎来了春天，园区里和马路两旁的桃花都含苞待放，部分桃树上已经是挂满了白色或粉色的桃花。室外的温度也已经明显回升，一件T恤+一件外套足以让你远离寒冷。果果已经在家里整整憋了一个冬天了，现在是带果果到户外活动的时候了。 不知不觉间果果已经是11个月多的“大孩”了-个头体重都比同龄小女孩儿要多一...</description></item><item><title>借开源实现你的雄心壮志</title><link>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</link><pubDate>Sat, 26 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</guid><description>本文翻译自&amp;#34;Fulfill Your Ambitions with Open Source&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 如果你在工作中没能开发那些可以实现你雄心壮志的软件，那你将有很不错的机会。也许你正在为一家庞大的保险公司开发软件，然而你实际上却宁愿供职于Google、Apple、Microsoft或是你自己初创的公司去开发下一个对世界影响巨大的软件。如果你去为你根本...</description></item><item><title>也谈SVN冲突解决</title><link>https://tonybai.com/2011/03/23/also-talk-about-solving-the-svn-conflicts/</link><pubDate>Wed, 23 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/23/also-talk-about-solving-the-svn-conflicts/</guid><description>当今的软件开发更多是团队合作，团队的所有成员均工作在同一份代码库上。这样即便是有了先进的版本控制管理工具（诸如Subversion、Git等），出现冲突（Conflict）的情况也是在所难免的。这就需要你学会解决冲突。 以Subversion为例，多数人在学习这类工具时都选择了浅尝辄止，仅仅停留在会使用update和commit这些常用的命令上。这样大家就错过了那些可以帮助你快速解决冲突的命令，以...</description></item><item><title>你应该关心你的代码</title><link>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</guid><description>本文翻译自”You Gotta Care about the Code“，来自于《程序员应该知道的97件事》一书中的某个章节。 即使不用大侦探福尔摩斯，我们也能知道优秀的程序员能写出好代码。糟糕的程序员…则不能。他们生产出代码巨兽，而其他人则不得不去清理。你想写出好代码，对不对？你渴望成为一名优秀的程序员。 好代码不会凭空冒出来。它也不是什么需要各大行星排成一列时靠运气才发生的事情。为了写出好代码...</description></item><item><title>别放弃你的标准</title><link>https://tonybai.com/2011/03/21/do-not-give-up-your-standard-first/</link><pubDate>Mon, 21 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/21/do-not-give-up-your-standard-first/</guid><description>上周末和LP一起到一家烤肉店吃饭。这家店在本地算是一家很有名气的以经营韩式烤肉为主的饭店了。记得在LP怀孕前我们经常在周末光顾这家店。那时这家店生意甚是火爆，门庭若市。烤肉量足且好吃，环境整洁，服务员业务也是十分熟练。后来LP怀了果果，再加上果果出生后一直母乳喂养，我们也就好久没有去过这家店了。这次又和LP来到这家店，不过我们看到的却是另外一番景象：门庭若市换成了门可罗雀；服务员早已经换了一批，服...</description></item><item><title>升级Thunderbird</title><link>https://tonybai.com/2011/03/21/upgrade-thunderbird/</link><pubDate>Mon, 21 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/21/upgrade-thunderbird/</guid><description>自从换装Ubuntu后，就一直使用Thunderbird。很是喜欢Thunderbird超快的搜索速度、按主题组织和展示Mail以及易用的快捷键。不过这两天Thunderbird一直在给我制造麻烦。通过Top查看，我发现我的Thunderbird一直在持续占用20%-30%的CPU，这导致我的本子变得很慢。虽然能看到这个进程，但是并不清楚Thunderbird究竟在做什么。开始怀疑它在后台压缩文件...</description></item><item><title>通过精减来改善代码</title><link>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</link><pubDate>Thu, 17 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</guid><description>本文翻译自&amp;#34;Improve Code by Removing It&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 少即是多。这是一句有些陈腐的短小格言，但有时它确实是正确的。 在过去的几周里我对代码库所作的改善工作之一就是删除了其中的几大块代码。 我们编写软件时一直遵循着XP的（译注：极限编程，eXtreme Programming）原则，包括YAGNI（即You Aren&amp;#39;t Gonn...</description></item><item><title>知道如何使用命令行工具</title><link>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</link><pubDate>Wed, 16 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</guid><description>本文翻译自”Know How to Use Command-line Tool“，来自于《程序员应该知道的97件事》一书中的某个章节。 现今，很多软件开发工具被打包成集成开发环境（Integrated Development Environments，IDE）提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE，当然还有很多其他类似的工具。很多程序员喜欢使用...</description></item><item><title>现实版灾难片-日本大地震</title><link>https://tonybai.com/2011/03/12/the-earthquake-happened-in-japan/</link><pubDate>Sat, 12 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/12/the-earthquake-happened-in-japan/</guid><description>这两天我们的邻国日本正上映着一部&amp;#34;现实版灾难片&amp;#34;–一场8.8级的大地震。这次地震让日本成为了全世界瞩目的焦点。我想很多国人看到这一幕时心里肯定很纠结，当然纠结的原因无非是两国之间的那个几乎永远无法弥合的宿怨。我是一个&amp;#34;灾难片控&amp;#34;，口碑好的灾难片几乎一个都没有放过，口碑烂的片子有空时也会好奇的去品味一下到底有多烂。而这部现实版的&amp;#34;灾难片&amp;#34;自然不会放过，所以今天我几乎是一直守在电视前，通过新闻台的直播...</description></item><item><title>Review Board的几点使用体会</title><link>https://tonybai.com/2011/03/04/some-experience-on-using-review-board/</link><pubDate>Fri, 04 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/04/some-experience-on-using-review-board/</guid><description>近期产品线研发体系正式将Review Board这款优秀的基于Web的代码评审开源工具引入到开发过程中，作为产品线内各项目组进行代码评审的辅助工具。我对Review Board近两年多的关注总算没有白费，算是有了一个还算不错的结果。不过Review Board的正式使用并不代表一种结束，反而恰恰是一个新的开始。我们下一步要关注的是如何用好Review Board，让它真真正正地为改善产品质量和开发...</description></item><item><title>买了把人体工学座椅</title><link>https://tonybai.com/2011/03/01/buy-an-ergonomic-chair/</link><pubDate>Tue, 01 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/01/buy-an-ergonomic-chair/</guid><description>作为程序员，每天最主要的姿势就是坐姿。随之而来的就是各种职业病：腰酸、背痛、颈椎疼，重者要么是腰间盘突出，要么是严重的颈椎病。每个程序员心里都清楚，避免这些职业病的最好方法就是工作期间记得多做些身体活动。但一旦进入工作状态后，我们就没有了时间概念，很难“自拔”。 去年因意外闪了腰，医院大夫给出的诊断结果是小关节脱位。虽说并不严重，但是腰痛的那种感觉还是在我心里留下了阴影，所以今年春节后立即给自己制...</description></item><item><title>专业程序员</title><link>https://tonybai.com/2011/02/24/the-professional-programmer/</link><pubDate>Thu, 24 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/24/the-professional-programmer/</guid><description>本文翻译自&amp;#34;The Professional Programmer&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 什么是专业程序员？ 一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责，会对他们的估计负责，会对他们的计划承诺负责，会对他们的错误负责，会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。 ·如果你是一名专业程序员，你将对你自己...</description></item><item><title>持续学习</title><link>https://tonybai.com/2011/02/23/continous-learning/</link><pubDate>Wed, 23 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/23/continous-learning/</guid><description>本文翻译自&amp;#34;Continuous Learning&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 我们生活在一个引人入胜的时代。软件开发分布在全球各地，你知道那里有很多人可以胜任你的工作。你需要不断学习以保持你在市场上的竞争力。否则，你将变成一条恐龙，专心从事某一个工作，直到有一天，你不再被需要或者你的工作被外包给了其它更为廉价的开发人...</description></item><item><title>代码评审</title><link>https://tonybai.com/2011/02/22/code-reviews/</link><pubDate>Tue, 22 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/22/code-reviews/</guid><description>本文翻译自&amp;#34;Code Reviews&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 你应该做代码评审。为什么呢？因为代码评审可以提高代码质量并且降低缺陷比例。但进行代码评审未必是因为你想到的那些理由。 由于之前有过一些代码评审的糟糕体验，因此许多程序员不喜欢代码评审。我曾经见过一些组织，它们要求所有代码在部署到生产环境之前必须通过一个正...</description></item><item><title>把一切都纳入版本控制</title><link>https://tonybai.com/2011/02/18/put-everything-under-version-control/</link><pubDate>Fri, 18 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/18/put-everything-under-version-control/</guid><description>本文翻译自&amp;#34;Put Everything Under Version Control&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 把项目中的一切都纳入版本控制。你需要的资源包括：免费的工具，比如Subversion，Git，Mercurial和CVS；充足的磁盘空间；便宜且性能强大的服务器；无处不在的网络；甚至包括项目托管服务。安装好...</description></item><item><title>将你的编码标准自动化</title><link>https://tonybai.com/2011/02/16/automate-your-coding-standard/</link><pubDate>Wed, 16 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/16/automate-your-coding-standard/</guid><description>本文翻译自”Automate Your Coding Standard“，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 也许你也曾经经历过。在一个项目开始阶段，每个人都有着很多良好的意愿，我们称这些意愿为“新项目决议”。多数情况下，这些决议都会被记在文档中。关于代码的那些决议最终成了项目的编码标准。在项目启动会议上，主程序员带着大家一起浏...</description></item><item><title>在你重构之前</title><link>https://tonybai.com/2011/02/15/before-you-refactor/</link><pubDate>Tue, 15 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/15/before-you-refactor/</guid><description>本文翻译自&amp;#34;Before You Refactor&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 在某些时候，每个程序员都需要重构现有的代码。不过在你动手之前，请考虑一下下面的内容，因为这可以节省你和他人的大量时间（以及痛苦）。 · 重构开始的最好方式就是对现有代码库及其测试代码进行总结和评估。 这将帮助你理解现有代码的优点和不足，你也...</description></item><item><title>果果给您拜年了</title><link>https://tonybai.com/2011/02/02/happy-spring-festival-from-my-daughter-2011/</link><pubDate>Wed, 02 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/02/happy-spring-festival-from-my-daughter-2011/</guid><description>今天是中国人民的传统佳节农历大年三十儿-一个中华民族合家团员的日子。对于我和LP来说，今天更是一个特别的大年三十儿，因为这是我们的宝贝果果过得人生第一个农历新年。虽然果果还不是很懂得今天与平时有何不同，但相信果果从窗户上的红色福字剪纸、墙上的吉祥兔挂画以及阳台上的红灯也能感受到节日的气氛。 下午吃完团圆饭，我们就给果果洗了一个热水澡，并给她穿上了喜庆的新衣服。这里果果通过爸爸的博客给大家拜年了：祝...</description></item><item><title>眼神儿太差了</title><link>https://tonybai.com/2011/01/28/terrible-eyes/</link><pubDate>Fri, 28 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/28/terrible-eyes/</guid><description>昨天晚饭后，打开本子继续工作，却发现无法连上无线路由器。最初以为路由器忘记打开了，可拿起路由器看了下，不是那么回事儿，路由器工作一切正常。我这才看到发现本子的无线网卡的指示灯不亮了，以前在这台x60本子上还从未出现此类情况，于是开始查找故障原因。 故障查找过程是痛苦的，一次次燃起希望，又一次次被冷水破灭： \* 最初怀疑是我误点击了Fn + F5而把无线网卡关了，于是我又无数次的点击Fn + F5...</description></item><item><title>2011·同事对我的期望</title><link>https://tonybai.com/2011/01/26/the-expectations-of-my-colleagues-in-2011/</link><pubDate>Wed, 26 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/26/the-expectations-of-my-colleagues-in-2011/</guid><description>眼看就要到春节假期了，公司E-HR平台上我的账户下还有一项待处理的工作：填写一份&amp;#34;领导力发展回顾与提升计划&amp;#34;表格。表格很简单，5分钟就能填完，不过其中有一项我自己很难填写：&amp;#34;您了解或感知同事/或下属对您的期望&amp;#34;。虽说可以自我感知，不过我更想听到我的同事真实的声音。 于是乎我就在产品线内发出了一封Mail，希望能够得到大家真实的想法。 小半天，我就收到同事的十几封反馈Mail，多数Mail中大家都提...</description></item><item><title>说书单2011.01.24</title><link>https://tonybai.com/2011/01/24/booklist-2011-01-24/</link><pubDate>Mon, 24 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/24/booklist-2011-01-24/</guid><description>2010年末的网上卖书大战进行的如火如荼，在这场大战初期我就低价收了《深入理解计算机系统》第二版，放在书柜里待有时间重温。记得当初还是在LP学校的图书馆里借到了这本书的第一版，并在第一个借阅期内看完了除第四章”处理器体系结构”之外的所有章节。之后又恋恋不舍，让LP续借了一次。我对这本书还真有一种相见恨晚的感觉，真遗憾我在大学期间怎么没发现这样一本好书呢。 网络卖书大战到现在也基本接近尾声了，不过我...</description></item><item><title>应对库接口原型变更</title><link>https://tonybai.com/2011/01/24/response-for-the-interface-prototype-change/</link><pubDate>Mon, 24 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/24/response-for-the-interface-prototype-change/</guid><description>也许你经常遇到这类情况：你在代码里使用了别人提供的第三方库，当库升级为新版本后，你的代码在编译时无法通过，提示接口原型错误，经查发现原来是该第三方库提供的某接口的原型发生了变化，比如原接口被删除、增加了参数、参数减少了、修改了参数类型以及返回类型发生变化了等等。你也许会不由自主的大骂一句：F\*\*k。 我们换位思考一下，假如你是某个库的Owner，当你遇到需要修改接口原型的情形时，你应该如何去做...</description></item><item><title>又遇字节序问题</title><link>https://tonybai.com/2011/01/21/encounter-byte-order-problem-again/</link><pubDate>Fri, 21 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/21/encounter-byte-order-problem-again/</guid><description>今天上午处理了一个线上产品的故障。分析来分析去，最后定位问题还是出在字节序转换的环节上。 其实测试组早在产品上线前就曾报告了这个问题，但是对应的开发人员并未对该问题进行深入地分析，而是有些草率地将该问题归结为客户端模拟器的实现不符合标准。因为这位同事比较资深，所以当时我也没有给予足够关注。 产品今天凌晨上线，9点左右业务量开始增大，这个问题立即就被我们在现场的运维人员发现，还好我们的系统是集群式的...</description></item><item><title>小试git-svn</title><link>https://tonybai.com/2011/01/20/try-git-svn/</link><pubDate>Thu, 20 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/20/try-git-svn/</guid><description>部门一直使用Subversion作为源码版本的管理工具。说实话，Subversion比较适合目前部门的绝大多数项目：没有异地团队开发，代码中心化管理；基本上都在trunk上开发，较少使用分支，基本上没有在各个branch间切换的成本。但对于我来说，有些情况下Subversion并不能满足我的需求。 问题主要集中在本地代码的备份和版本管理上。也就是说对于尚未或暂无法提交到Subversion服务器的...</description></item><item><title>梅西给力，蝉联金球</title><link>https://tonybai.com/2011/01/11/leomessi-defend-his-ballon-dor/</link><pubDate>Tue, 11 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/11/leomessi-defend-his-ballon-dor/</guid><description>今天凌晨国际足联公布并颁发了2010年度国际足坛的各大奖项，最让我感到欣喜的是巴萨国王梅西当选首届国际足联金球先生，蝉联了金球奖。 说实话，真的没有想到我的期望能变成现实。不过最终结果出炉前还是有种种迹象表明梅西是有机会的。首先就是梅西压倒去年表现优异的斯奈德，与两位世界冠军队友哈维和伊涅斯塔携手入围金球三甲。其次就是在今天凌晨当普斯卡什年度最佳进球奖被授予土耳其人阿尔滕托普后，我的内心对梅西的当...</description></item><item><title>别忘了测试你的假定</title><link>https://tonybai.com/2011/01/08/do-not-forget-to-test-your-assumption/</link><pubDate>Sat, 08 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/08/do-not-forget-to-test-your-assumption/</guid><description>周四下午，收到同事的一封mail，他告诉我他的业务代码中使用的一个库接口的行为与预期不同，并在mail中给出了测试代码和测试结果。而这个接口是之前由我封装实现的。 这个库仅仅是对libevent做了一层薄薄的封装，目的是使其接口的使用方式符合部门的一贯风格。虽说封装简单，但单元测试也是一应俱全，不敢马虎，必要的地方mock也一并上阵，总体来说我个人还是比较满意的。 不过还是出现了问题，问题出在li...</description></item><item><title>关于年终总结</title><link>https://tonybai.com/2011/01/04/about-year-end-summary/</link><pubDate>Tue, 04 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/04/about-year-end-summary/</guid><description>年终岁尾，又到了该做年终总结的时候了。有些人觉得年终总结很难写，于是自欺欺人的在网上到处高价找枪手；亲自动手写总结的人也是抓耳挠腮，迟迟无法下笔。其实我倒不觉得总结有这么难，自己做过的事写出来又有何难呢!也许是你的心魔在作怪罢了(什么心魔，你懂的!)。对自己负责的人肯定是会主动积极地去做总结的，总结的第一对象也一定是自己，其次它的另外一个用途才是用来提交给领导看的。你的总结无需文采飞扬，关键要言之...</description></item><item><title>果果祝大家新年快乐</title><link>https://tonybai.com/2011/01/01/happy-new-year-from-my-daughter-2011/</link><pubDate>Sat, 01 Jan 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/01/01/happy-new-year-from-my-daughter-2011/</guid><description>好久没在博客里说果果了，小家伙儿现在淘气的很，这是因为她已经会爬了^\_^。其实一个月前果果就能爬了，但只能类似蛙泳式的双手拔地的爬，显得很笨拙，爬行速度和距离都有限。但现在已经可以抬起肚子跪爬了，长距离爬行已不再是问题了。而且遇到床沿儿、沙发扶手之类的&amp;amp;gt;物体，她用手扶着就能自己站立起来。作父母的在欣喜之余，也甚是担心。这一个月来果果没少磕磕碰碰，这也许就是成长的代价吧^\_^。 果果已经开...</description></item><item><title>基于svn diff结果的有效代码量统计</title><link>https://tonybai.com/2010/12/24/an-effectual-method-based-on-svn-diff-for-code-quantity-statistics/</link><pubDate>Fri, 24 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/24/an-effectual-method-based-on-svn-diff-for-code-quantity-statistics/</guid><description>很多公司的过程中都有阶段性统计新增或修改的有效代码行数这一环节，这里先不论统计出的结果用于做什么，就统计本身而言，常常存在诸多问题，比如统计过程耗时且繁琐、统计结果中估算成分较大，不精确等。这些问题以前也一直困扰着我们，并且长时间没有想出很好的解决办法。 今天脑子里突然冒出一个想法：能否根据svn diff得到的结果分析出来有效代码量呢？ svn diff的结果一般是这样的，分为几类： 纯新增代码...</description></item><item><title>关于在线代码评审的几点考量</title><link>https://tonybai.com/2010/12/18/thoughts-on-online-coding-review/</link><pubDate>Sat, 18 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/18/thoughts-on-online-coding-review/</guid><description>记得上次折腾Review Board这个在线代码评审工具还是在一年前，那时的Review Board版本是1.0.3；这周部门的一位同事也在折腾Review Board，不过现在的版本已经升级到了1.5.1了。新版Review Board显然修正了许多旧版本中存在的问题，另外无法支持ssl邮件端口的问题也被我这位同事通过更换django源文件的方式搞定了。Review Board好用了，下一步需要...</description></item><item><title>"%05s"行为未定义</title><link>https://tonybai.com/2010/12/17/undefined-behavior-of-05s/</link><pubDate>Fri, 17 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/17/undefined-behavior-of-05s/</guid><description>下班前，一位同事发来的mail中提到这样一个问题：在Solaris上，新添加到Project中的一段代码编译有Warning，由于我们在Makefile的GCC命令行中设置了&amp;#34;视警告如错误&amp;#34;的-Werror编译选项，导致了项目无法成功Build。 这个Warning内容如下： warning: \`0&amp;#39; flag used with \`%s&amp;#39; printf format 产生这个Warning的...</description></item><item><title>使用Libtool创建库文件</title><link>https://tonybai.com/2010/12/14/create-libraries-with-libtool/</link><pubDate>Tue, 14 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/14/create-libraries-with-libtool/</guid><description>除了autoconf和automake，GNU的autotools工具包中还有一种工具，它就是libtool。顾名思义，libtool是一个关于库文件制作、安装和使用的工具，它屏蔽了各个平台在库制作、安装和使用方面的差异，为上层提供了统一的接口。你可以直接使用libtool创建静态或共享库，也可以将libtool与autoconf、automake结合在一起使用。第二种方式显然更具实际意义，也更为...</description></item><item><title>也谈共享库</title><link>https://tonybai.com/2010/12/13/also-talk-about-shared-library/</link><pubDate>Mon, 13 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/13/also-talk-about-shared-library/</guid><description>近两天一直在考量产品安装包改进的事宜。说实话，我们的安装包做得不够&amp;#34;专业&amp;#34;，不仅没有按照各个平台的标准安装包形式(比如redhat的rpm，debian的deb或solaris上的pkg包)制作，而且安装包在生产环境中还需要再进行一次链接才能得到最终的可执行程序。这样一来，每次制作安装包都很费时费力(虽然有自动打包脚本)，安装包的&amp;#34;体积&amp;#34;也很是庞大，因为包中要包含所有.o目标文件和一部分自有库以及...</description></item><item><title>别为代码的"Bad Smell"提供土壤</title><link>https://tonybai.com/2010/12/06/do-not-provide-soil-for-bad-smell-code/</link><pubDate>Mon, 06 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/06/do-not-provide-soil-for-bad-smell-code/</guid><description>上周初参加了一次代码评审，评审时发现一位同事在自己负责的子模块代码里定义了一个私用宏，&amp;#34;重复&amp;#34;这个Bad Smell立马在我头脑中闪现。当时我给出了一个建议：检查一下这个宏定义的必要性，依次检查一下C运行库头文件中是否已经有了同功用宏定义，基础库头文件中是否已经有了同功用宏定义，业务层代码的共用头文件中是否已经有了同功用宏定义。 周末这位同事给出了答复：C运行库、基础库和业务层代码中都没有定义此功...</description></item><item><title>在TeX文档中插入源代码</title><link>https://tonybai.com/2010/12/01/insert-source-code-into-tex-document/</link><pubDate>Wed, 01 Dec 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/12/01/insert-source-code-into-tex-document/</guid><description>近期有了在TeX文档中插入源代码的需要。TeX的\\verbatim可以帮助你保留输入text的原始格式，但用于输入源代码还是显得不够专业。Google了一下发现TeX中支持插入源代码的包也有不少，如LGrind、Listings等。LGrind似乎没有包含在TeX Live的默认安装包中，用apt-get尝试安装LGrind，发现居然要占用近200M的空间，遂放弃之，最后我选择了Listings...</description></item><item><title>尝试博客搬家</title><link>https://tonybai.com/2010/11/30/try-to-move-blog/</link><pubDate>Tue, 30 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/30/try-to-move-blog/</guid><description>早在若干年前就有朋友建议我搭建一个独立博客，可当时的我觉得blogbus提供的服务很不错，自己没有必要去折腾，费钱又费力，所以我选择了继续留在blogbus。 这两年blogbus服务一直在不断的提高，自己也一直很欣赏blogbus的简单、清新、无广告的风格，大巴后台管理中心的功能也变得越来越强大了。不过这期间blogbus也出现过几次较为严重的故障，导致长时间的无法提供服务。上周blogbus再...</description></item><item><title>给assert加上返回值，不给力！</title><link>https://tonybai.com/2010/11/24/it-is-not-gelivable-to-add-return-value-for-assert/</link><pubDate>Wed, 24 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/24/it-is-not-gelivable-to-add-return-value-for-assert/</guid><description>众所周知，assert是程序调试阶段的一柄利器，可以帮助程序员快速的定位代码问题。但一般来说当程序部署到生产环境的时候，我们会选择关闭assert。不过由于历史原因，我们运行在生产环境下的程序中的assert依旧发挥着作用，这样一把双刃剑就悬在了我们头上。 我们用的是自己的assert实现，这个实现没有C标准库中assert实现那么普适，不过可以满足我们自己需要的功能，它在运行时可以将断言失败信息...</description></item><item><title>有选择的保留遗留“惯例”</title><link>https://tonybai.com/2010/11/15/keep-legacy-conventions-selectively/</link><pubDate>Mon, 15 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/15/keep-legacy-conventions-selectively/</guid><description>在工作中，我们常常会听到这样的声音：“原来的系统就是这么做的！”。 没错儿，在工作中我们潜移默化地受到了遗留系统的一些设计和实现的“惯例”的影响，另外天生携带的懒惰基因使我们很少去思考和判断这些惯例的正确性和保留的必要性。但事实上，我们确应该经常重新审视这些遗留的“惯例”，有选择的保留，并敢于放弃。 每种“惯例”的引入和使用都是有其特定原因的：或是可以简化代码编写，或是便于代码跟踪，或是利于代码调...</description></item><item><title>《Programming in Haskell》中文版翻译项目</title><link>https://tonybai.com/2010/11/14/the-chinese-translation-project-for-programming-in-haskell/</link><pubDate>Sun, 14 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/14/the-chinese-translation-project-for-programming-in-haskell/</guid><description>_&amp;#34;A language that doesn&amp;#39;t affect the way you think about programming， is not worth knowing&amp;#34;._ — Alan Perlis(ACM 第一任主席，图灵奖得主，1922-1990) 《程序员修炼之道》这本书建议程序员每年应至少学习一门新的语言，以拓宽思维，避免墨守成规。今年我选择了函数式编程语言Haskell。...</description></item><item><title>一个制作朴素幻灯片的TeX模板</title><link>https://tonybai.com/2010/11/08/a-tex-template-for-making-plain-ppt/</link><pubDate>Mon, 08 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/08/a-tex-template-for-making-plain-ppt/</guid><description>自从有了For book的中文TeX模板后，我对TeX的热情便&amp;#34;继续&amp;#34;一发而不可收拾^\_^。上周原本计划为内部的一个交流准备一个PPT，但在开始构思之前却突然想到：是否可以使用TeX完成幻灯片制作呢？Google了一下，果然有成熟解决方案-使用BEAMER。 有了TeX基础后，学习使用Beamer构建幻灯片就显得容易了许多，用TeX创建幻灯片文档与编写普通文档差别并不大。TeX制作的幻灯片文档也...</description></item><item><title>一个基于XeTeX和xeCJK的TeX模板</title><link>https://tonybai.com/2010/11/02/a-tex-template-based-on-xetex-and-xecjk/</link><pubDate>Tue, 02 Nov 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/11/02/a-tex-template-based-on-xetex-and-xecjk/</guid><description>与&amp;#34;Hello World&amp;#34;作为编程入门时迈出的第一步相似，&amp;#34;Hello TeX&amp;#34;也只是学习博大精深的TeX的一块儿敲门砖，离真正的实用还差的远。 两周前开始体验TeX，直到今天才东拼西凑地倒腾出一个够自己使用的且相对实用的基于XeTeX和xeCJK的小模板。这里分享一下，希望能给大家带来一些帮助，同时对自己也算作是一个备忘。关于TeX网上资料很多，这个模板里的东西也都是参考和融会各种资料并试验后...</description></item><item><title>lcut增加对mock的支持</title><link>https://tonybai.com/2010/10/29/lcut-add-mock-support/</link><pubDate>Fri, 29 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/29/lcut-add-mock-support/</guid><description>记得恰好是在一个月前的今天，我发布了lcut(轻量级C语言单元测试框架)0.1.0版本 。由于发布仓促，文档没能及时跟上。在stackoverflow的一个关于单元测试的帖子 上，一位叫Craig McQueen的朋友也给出了建议：&amp;#34;Some documentation would be helpful. Project background and goals, a features list,...</description></item><item><title>关于Makefile.am中与Build相关的变量设置</title><link>https://tonybai.com/2010/10/26/about-variables-related-to-building-in-makefile-am/</link><pubDate>Tue, 26 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/26/about-variables-related-to-building-in-makefile-am/</guid><description>今天尝试使用autoconf和automake重新构建一个遗留库的Build环境。之前改造的lcut的目录结构还是相对简单，改造时并未遇到什么难题，不过今天就没那么幸运了，我在头文件目录包含设置这个看似简单的环节上遇到了一些小麻烦。 这个库结构其实也没那么复杂，只是源文件和头文件不在一个目录下罢了： testproj/     – Makefile.am     – configure.in   ...</description></item><item><title>由bool类型引发的一个问题</title><link>https://tonybai.com/2010/10/21/a-problem-caused-by-bool-type/</link><pubDate>Thu, 21 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/21/a-problem-caused-by-bool-type/</guid><description>C99 原生支持布尔类型，类型名字为\_Bool。对C程序员来说，这个名字有些“不伦不类”，还好一般C标准库 实现的头文件中都用宏bool来替代\_Bool。C99虽说是C语言当前的最新标准，但是它也有10年历史之久了。据说C1x标准 正在讨论制定中，有兴趣的朋友可以到标准C工作组 官方站点上去瞧瞧。 有些跑题了^\_^！其实这篇文章想说的不是C1x标准，而是一个与布尔类型有关的问题的分析解决过程...</description></item><item><title>你好，TeX</title><link>https://tonybai.com/2010/10/18/hello-tex/</link><pubDate>Mon, 18 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/18/hello-tex/</guid><description>由于某种原因，上周末开始学习使用TeX进行文档排版。哦，当然不是直接使用Donald Knuth他老人家设计的最原始的TeX命令。经过这么多年的发展，TeX领域早已出现了各种各样基于TeX开发的层次更高、易用性更好、更加让作者关注内容的好工具。在Ubuntu下，我选择了&amp;#34;TeX Live&amp;#34;。 周末的时间比较零碎(有了果果后，除了晚上外白天很难拿出一长段的时间钻研些东西了)，TeX Live安装和体...</description></item><item><title>从mock malloc说起</title><link>https://tonybai.com/2010/10/11/start-with-mock-malloc/</link><pubDate>Mon, 11 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/11/start-with-mock-malloc/</guid><description>上午对一段代码进行单元测试，由于需要用到mock，所以选择使用cmockery 作为Unit Testing框架(lcut还未提供mock功能)。测试代码里需要mock malloc以模拟分配内存失败的异常情况。 编写一个用例后，Build，提示出错：multiple definition of \`malloc&amp;#39;。经检查发现Makefile中定义mock malloc的那个目标文件(.o文件)居...</description></item><item><title>这个十一累并快乐着</title><link>https://tonybai.com/2010/10/06/tired-and-happy-on-this-national-day-vacation/</link><pubDate>Wed, 06 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/06/tired-and-happy-on-this-national-day-vacation/</guid><description>自从LP上班后，果果一直由岳母照顾。带小孩子是一件很辛苦的差事，这个我和LP也十分清楚，这不这个十一假期我们让岳母回家歇息歇息^\_^，这七天就由我和LP照顾果果。 平时我和LP都是朝九晚五的作息，由于公司离家较远，我们下班到家基本上都是晚上六点以后了。我回家更晚，有时候到家时果果已经被哄睡着了。这样我们和果果在一起的时间实际上并不多，甚至对果果新近养成的一些习惯了解得都不多，一切还要慢慢适应。 ...</description></item><item><title>遭遇“死循环”</title><link>https://tonybai.com/2010/10/01/encounter-endless-loop/</link><pubDate>Fri, 01 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/01/encounter-endless-loop/</guid><description>昨天看了“外刊IT评论”上的一篇名为《软件编程21法则》的文章，文章中提到的一条法则是：“软件直到被变成产品运行至少6个月后，它最严重的问题才会被发现”，当时表示认同。不过仅仅相隔一天，这条法则就变成了眼前的现实。 今天上午我们的某版本系统在某省出现了故障，该版本在这个省上线恰好将近6个月^\_^，系统上线以来一直运行良好，直到这次故障。故障现象为&amp;#34;挂死&amp;#34;:所有进程都挂死在某一把锁的lock上。以...</description></item><item><title>发布一款轻量级C语言单元测试框架</title><link>https://tonybai.com/2010/09/30/opensource-a-lightweight-c-unit-test-framework/</link><pubDate>Thu, 30 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/30/opensource-a-lightweight-c-unit-test-framework/</guid><description>基于各种xUnit框架的单元测试早已不是什么新鲜玩意儿，不过在&amp;#34;古老&amp;#34;的C语言领域，还尚未有哪种框架可以成为“寡头”。 记得2005年末的时候，初出茅庐的我吸取xUnit的设计思想在业余时间编写了一个轻量级的C单元测试框架lcut(Lightweight C Unit Test framework)，当时还写了一篇文章《C单元测试包设计与实现》记录了最初的设计和实现思路。本打算将这个小工具在部门内...</description></item><item><title>Hello，autoconf和automake</title><link>https://tonybai.com/2010/09/26/hello-autoconf-and-automake/</link><pubDate>Sun, 26 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/26/hello-autoconf-and-automake/</guid><description>部门绝大多数的产品都运行在Sun的小型机上，底层的操作系统是Solaris。这两年公司开始主推刀片机(物美价廉^\_^)，不过刀片机上运行的也是Solaris 10 for x86版本。基于同种OS的前提下在Sparc和x86两种体系之间做移植比较简单，主要考虑字节序问题就可以了。不过对于可移植性的考虑不足还是让我们付出了较大的工作量。 在即将进行的新版本产品开发中，可移植性依旧没有被列入到必须要...</description></item><item><title>果果的百岁照</title><link>https://tonybai.com/2010/09/23/one-hundred-days-photos-of-my-daughter/</link><pubDate>Thu, 23 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/23/one-hundred-days-photos-of-my-daughter/</guid><description>&amp;#34;百岁照是一种民间传统，一种在小孩100天时候拍的照片，代表了人们对孩子的祈福，希望孩子能长命百岁。&amp;#34; — 百度百科 在果果103天的时候我和LP一起带着果果去拍了一套百岁照。拍摄的过程很“艰苦”^\_^:从上午9点一直持续到下午3点，其间果果睡了三次，哭了若干次，不过结果还是不错的，这不今天我和LP把照片取了回来。和我们那一代相比，现在的小孩子幸福多了。在我LP的钱包里放着我的一张儿时的照片，那...</description></item><item><title>做好个人代码备份与版本管理</title><link>https://tonybai.com/2010/09/19/personal-code-backup-and-revision-control/</link><pubDate>Sun, 19 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/19/personal-code-backup-and-revision-control/</guid><description>今天下午花了一个小时分别和两位同事做了一些代码讨论，这两位同事正在编写的代码都具有一定的试验性质(暂不能进入项目代码库)。这里不谈代码如何如何，而是就我发现的一个问题谈谈我的看法。 问题其实也很简单：那就是两位同事“不约而同”的都没有对这类试验性质的代码进行很好的备份和版本管理。 也许你看到这里会觉得这个芝麻粒儿大的问题不值得一提。没错，可能很多人都不以为然，不过有过以下经历的朋友们也许会与我产生...</description></item><item><title>经典设计原则背后的本质</title><link>https://tonybai.com/2010/09/17/the-nature-of-some-classical-design-rules/</link><pubDate>Fri, 17 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/17/the-nature-of-some-classical-design-rules/</guid><description>近一段时间重读了一些经典书籍，诸如《敏捷软件开发：原则、模式与实践》、 《程序员修炼之道》、《Unix编程艺术》等。这些书中关于如何衡量或评价一个类或函数设计好坏的几个原则(Principle)让人印象深刻。《敏捷软件开发》中谈到了SRP、OCP、DIP; 程序员修炼之道则以DRY、“正交性”为话题展开;《Unix编程艺术》围绕紧凑性、SPOT、分离等阐述作者立场。这么多经典原则，如何学习把握？我...</description></item><item><title>果果的第一张照片</title><link>https://tonybai.com/2010/09/13/the-first-photo-of-my-daughter/</link><pubDate>Mon, 13 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/13/the-first-photo-of-my-daughter/</guid><description>今天收到LP的一封题为“宝贝儿两天”的mail，mail里附了几张照片，遂打开瞧瞧，看看是谁家宝宝。照片里的宝宝给我的第一眼感觉是似曾相识，可再定睛观瞧：这不是我家果果吗！没错，就是我家果果。 果果出生后，我居然兴奋的忘记给果果拍照了，以至于现在我们连果果出生那天的照片都没有。这几张照片是LP的同事在果果出生后第二天来医院探望时拍下的，这居然是果果的第一张照片！果果长的真快，我都有点快认不出她当时...</description></item><item><title>使用Ubuntu文档模板</title><link>https://tonybai.com/2010/09/10/use-the-document-template-of-ubuntu/</link><pubDate>Fri, 10 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/10/use-the-document-template-of-ubuntu/</guid><description>每次安装Ubuntu后，主文件夹(你的$HOME目录)下都会默认建立起一些目录，诸如：下载、音乐、图片等，这些目录的用途通过其名字都可以猜个八九不离十，只有一个叫作“模板”的目录一直让我摸不到头脑。直到这次彻底迁移到Ubuntu，我才发现这个“模板”目录的妙用！ 平时工作中常常需要新建一些文档，以前用Windows时都会使用右键菜单，点击“新建”，然后选择不同的文档类型。但在Ubuntu上却发现右...</description></item><item><title>修改SVN中文件的可执行属性</title><link>https://tonybai.com/2010/09/08/modify-the-executable-property-of-files-in-svn-repository/</link><pubDate>Wed, 08 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/08/modify-the-executable-property-of-files-in-svn-repository/</guid><description>今天做了一些项目版本库的搭建工作，主要是将相关模块和库目录建立好，将Makefile编写好，并添加到SVN库中。 工作接近尾声时，无意中发现提交到SVN库中的文件居然都带着可执行权限(以下称x属性)，如： \-rwxr-xr-x  1 tonybai tonybai    203 2010-04-21 17:26 Makefile\* 这着实让人觉得别扭！Svn居然记录了文件的权限信息，至少我以前...</description></item><item><title>一个关于Vim扩展TAB键的问题</title><link>https://tonybai.com/2010/09/07/a-problem-about-vim-expand-tab/</link><pubDate>Tue, 07 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/07/a-problem-about-vim-expand-tab/</guid><description>今天遇到一个奇怪的问题：明明我在.vimrc中开启了expandtab选项，但是当我编辑Makefile文件时，敲入的TAB就是无法被VIM自动转换为四个空格(已经设置tabstop=4，shiftwidth=4)，通过&amp;#34;:set expandtab?&amp;#34;查看该选项值也居然是&amp;#34;noexpandtab&amp;#34;;编辑其他文件（如.c、.h文件甚至是无扩展名的文件)时expandtab却都是开启的，TAB也可被...</description></item><item><title>视警告为错误</title><link>https://tonybai.com/2010/09/05/view-warning-as-error/</link><pubDate>Sun, 05 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/05/view-warning-as-error/</guid><description>每当你Build Project代码的时候，如果看到的是满屏的Warning，那么提醒你小心了，不妨看看《高效程序员的45个习惯》中对Warning的态度和处理方式。该书中的第34个习惯讲的是“警告就是错误”！ 当然这个“习惯”所阐述的内容并不是这本书首创，在很多经典的传授编程之道的书中也都提到过。 将警告作为错误来处理，说起来容易，可作起来可并不那么简单。这不仅仅只是一个态度的问题，有时候还需要...</description></item><item><title>Ubuntu一周体验</title><link>https://tonybai.com/2010/09/04/one-week-experience-of-ubuntu/</link><pubDate>Sat, 04 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/04/one-week-experience-of-ubuntu/</guid><description>安装Ubuntu已有一周多，无论是在工作单位还是在家里，Ubuntu都作为我的第一OS，Win7基本上处于被打入“冷宫”状态。事实证明对我来说，Ubuntu完全可以取代Windows。 公司提供有线和无线网络两种接入方式，对于致力于追求“理想的无线世界”的我来说，无线接入是我的第一选择。公司的无线接入采用TTLS认证方式，在WinXP和Win7上都有相应的客户端(SecureW2)可供使用，但在U...</description></item><item><title>一次函数设计讨论</title><link>https://tonybai.com/2010/09/02/an-discussion-on-function-design/</link><pubDate>Thu, 02 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/02/an-discussion-on-function-design/</guid><description>近期在考虑对底层函数库进行一些重构，今天下午花了两个小时考量现有的函数库的接口设计，发现目前函数库的实现存在着一个普遍的问题：与特定的内存分配实现耦合的太紧。 我们的应用是多进程结构的，并使用了共享内存这种最快捷的IPC机制，鉴于此很多同事在实现一些数据结构或者算法时可能只考虑到了我们常见的应用场景-多进程共享，而对非共享内存分配的情况考虑不足。那如何将目前某些库函数实现与内存分配之间的强耦合解开...</description></item><item><title>Ubuntu扫盲</title><link>https://tonybai.com/2010/08/31/ubuntu-eliminate-illiteracy/</link><pubDate>Tue, 31 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/31/ubuntu-eliminate-illiteracy/</guid><description>今天下午例行项目例会，例会内容乏善可陈(但都还是比较重要的事情^\_^)，无非是跟踪进度、跟踪之前未解决的问题等。近几次的例会或技术交流会我都会给大家分享些东西，哪怕是告诉大家如何从C Shell迁移到更高效的Bash Shell这样的小事情。 这次给大家带来的是如何使用分支以及TiddlyWiki这款小工具。过程较为平淡，大家也基本以沉默为主，零星有几个问题提出。 尾声阶段，大家注意到了我刚刚用...</description></item><item><title>初用TiddlyWiki</title><link>https://tonybai.com/2010/08/30/learn-tiddlywiki/</link><pubDate>Mon, 30 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/30/learn-tiddlywiki/</guid><description>2008年末和一位同事在山西出差，发现那位同事在用TiddlyWiki写一些日记，那时候算是第一次知道TiddlyWiki，但不知是为什么，当时的我并没有被TiddlyWiki所吸引，也就失去了一次使用TiddlyWiki的机会。 近期新启动了一个产品版本的开发任务，该版本是对之前遗留系统版本的重构和优化，我们想趁此机会将梳理遗留系统时总结下来的东西以及一些新的设计想法记录下来，以便于后人参考并迅...</description></item><item><title>也谈使用分支</title><link>https://tonybai.com/2010/08/26/also-talk-about-branch/</link><pubDate>Thu, 26 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/26/also-talk-about-branch/</guid><description>近期在为一个新项目作版本库规划，并策划一些即将应用于该项目的版本控制和发布流程的Rules。借此机会我也花上一些时间对我们之前的版本控制和发布流程进行一下反思，也翻看了一些书籍(比如《版本控制之道-使用subversion》、社区自由图书《Subversion与版本控制》等)，了解一下Best Practice是什么样子的，同时也纠正一下我之前理解不正确的地方。 我们这些年来一直在使用CVS/Su...</description></item><item><title>彻底迁移到Ubuntu</title><link>https://tonybai.com/2010/08/25/move-to-ubuntu-thoroughly/</link><pubDate>Wed, 25 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/25/move-to-ubuntu-thoroughly/</guid><description>自从知道Ubuntu这个linux发行版后，就有了彻底迁移到Linux上的想法。但迫于各种各样的因素一直未能下定决心，这期间Ubuntu发行版已经从6.10进化到了10.04。经过长时间(近四年，时间长的的确有些夸张^\_^)的准备，再借着Ubuntu 10.04 LTS发布的东风， 我终于下决心彻底走进Ubuntu的世界。 安装Ubuntu对我来说已经是驾轻就熟的事情了，这里也没什么好说的。对我...</description></item><item><title>重新定制VIM</title><link>https://tonybai.com/2010/08/22/reconfigure-vim/</link><pubDate>Sun, 22 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/22/reconfigure-vim/</guid><description>这周五工作状态实在不好，也许是工作得有些疲劳的缘故。没有了心思工作，那莫不如利用这些时间读读书。在存储电子书的目录中左翻翻右看看，发现了那本久违了的中文版VIM手册，我决定索性打开温习一下，拣一拣那些已经生疏了的但却极其实用的命令。 下班前400多页的手册居然被我走马观花的浏览完了，其间将遇到的觉得实用的且以前不知道的或不常用的命令记录了下来，一共有50多项，其中不乏令我大呼过瘾的能显著提升工作效...</description></item><item><title>周末全职奶爸</title><link>https://tonybai.com/2010/08/15/fulltime-daddy-daycare-at-weekends/</link><pubDate>Sun, 15 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/15/fulltime-daddy-daycare-at-weekends/</guid><description>果果出生后我一直都沉浸在当爸爸的快乐当中。之前果果还小，每天基本上就是吃奶和睡觉，LP和岳母两人足以应付得来，基本不需要我插手，以至于我在果果快两个月的时候还没正经儿抱过她，在她快三个月的时候我还没用过奶瓶给果果喂过奶；甚至如何给果果垫尿布都不会。 但是随着果果的成长，果果精力越来越充沛了，白天睡的也少了，每觉也就睡上1个小时，剩下时间就都得有人看护，LP和岳母这时候就有些应付不来了，我这个“局外...</description></item><item><title>一周琐事</title><link>https://tonybai.com/2010/08/13/some-trifles-of-this-week/</link><pubDate>Fri, 13 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/13/some-trifles-of-this-week/</guid><description>刚刚在China-pub下了订单，买了三本口碑都不错的技术类书籍。之所以在China-pub买，这得益于豆瓣的购书单功能，经过购书单的比价发现China-pub的总价格最实惠。另外这笔交易成交后，我在China-pub的会员级别也将升到三星，到时候就有资格“淘二手书”了。 三本书中名气最大的应属Andrew Hunt和David Thomas于十年前合著的《程序员修炼之道》了，这本书的电子书我看过...</description></item><item><title>使用svn pre-commit hook</title><link>https://tonybai.com/2010/08/07/use-svn-pre-commit-hook/</link><pubDate>Sat, 07 Aug 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/08/07/use-svn-pre-commit-hook/</guid><description>一直以来我们对项目代码的提交管理都是粗放型的，即对大家提交代码的时间、频率和提交日志的形式都没有严格的要求，可谓比较随意。主要发现的问题包括： \- 某些提交没有规划，甚至随意增加一些并无太大意义的注释都作一次提交。 \- 提交的代码甚至没有经过REVIEW和UT，这样的代码即使内部发布，也会带来后续工作量的严重浪费（测试、发现问题、定位问题、重新fix、重新验证等）； \- 提交日志无实际意义，...</description></item><item><title>使用astyle美化代码</title><link>https://tonybai.com/2010/07/29/use-astyle-to-beautify-your-code/</link><pubDate>Thu, 29 Jul 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/07/29/use-astyle-to-beautify-your-code/</guid><description>昨天一位同事发了一篇小文档，文档中介绍了一种开源格式化代码的工具，名为Artistic Style(astyle)，功能看起来还是很不错的。之前我写代码时比较注意代码的风格，一直按照自己的思路来美化自己的代码，用的最多的辅助工具就是Vim自带的indent功能，对这之外的格式化工具少有涉猎。记得几年前部门曾推广一款名为checkstyle的Java代码格式规范检查工具，由于当时基本不接触Java，...</description></item><item><title>果果会翻身了</title><link>https://tonybai.com/2010/07/24/my-daughter-can-turn-over-in-bed/</link><pubDate>Sat, 24 Jul 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/07/24/my-daughter-can-turn-over-in-bed/</guid><description>果果，我宝宝的小名。之前我给宝宝起的诸多小名均被LP大人一一否决了。后来有一天下班回家，LP说给宝宝起了个小名，叫“果果”。我觉得还行，也就这样叫开了。后来看徐峥和王宝强主演的“人在囧途”，发现片中李成功的孩子小名也叫果果，也许只是巧合^\_^。 上个周末和部门同事一起到北戴河游玩，在旅游结束回城的路上收到了LP的短信，说是：果果会翻身了。看到短信后心里很是高兴，宝宝身体很结实，刚刚70多天就会翻...</description></item><item><title>阿根廷出局，世界杯结束！</title><link>https://tonybai.com/2010/07/04/agentina-out-my-worldcup-ends/</link><pubDate>Sun, 04 Jul 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/07/04/agentina-out-my-worldcup-ends/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>阿根廷，继续前进！</title><link>https://tonybai.com/2010/06/29/agentina-come-on/</link><pubDate>Tue, 29 Jun 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/06/29/agentina-come-on/</guid><description>昨天凌晨阿根廷不出意料的3:1击败墨西哥队，墨西哥复仇的梦想彻底破灭！虽说比赛中因裁判误判出现了不和谐的场面，但是这个结果应该是两队真实实力的写照。墨西哥队现在的水平还不足以撼动拥有豪华前场阵容的阿根廷队。 这届世界杯“功利”盖过了“华丽”，阿根廷也不例外，3球的领先优势让阿根廷更多的投入精力组织防守，下半场老马也先后换下特维斯和迪马利亚两名进攻球员加强防守，墨西哥人也趁机围攻阿根廷球门，这也造成...</description></item><item><title>阿根廷出线，梅西小憾</title><link>https://tonybai.com/2010/06/17/agentina-foot-team-promote-from-group-match/</link><pubDate>Thu, 17 Jun 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/06/17/agentina-foot-team-promote-from-group-match/</guid><description>作为阿根廷球迷，等待阿根廷队比赛的这段时间是最难熬的，感觉时间过得咋这么慢，工作状态也难免受到影响，终于等到7点30比赛开始了。 本场比赛马大帅在阵容上仅用马克西替换了受伤的贝隆，不过战术上变化倒是很大，特别是梅西做出了很大牺牲，回撤中场较深，干脆就是一个中场球员，和马克西、马斯切拉诺共同做阿根廷的进攻组织工作。这应该是马大帅应对韩国人的一种战术变化。赛前韩国队就放话：要盯死梅西。而梅西后撤，吸引...</description></item><item><title>说说斗牛士首演被爆冷</title><link>https://tonybai.com/2010/06/17/spain-lose-the-first-match-of-2010-worldcup/</link><pubDate>Thu, 17 Jun 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/06/17/spain-lose-the-first-match-of-2010-worldcup/</guid><description>上次说过阿根廷队首场比赛之日才是我的南非世界杯开始之时，阿根廷是我的最爱，但是除了阿根廷我还关注两只球队，一个是巴西，另外一个就是西班牙。五星巴西，每一届世界杯的夺冠热门，无论其队中星光是否够亮，我们都应该关注它；巴萨是我最喜爱的俱乐部球队，而本届西班牙的就是以巴萨的人员作为班底构建的，特别是当比利亚转会巴萨后，西班牙三条线都是以巴萨的球员挑大梁的。 昨晚进行了本届世界杯首轮小组赛最后一个小组H组...</description></item><item><title>快乐的“阿根廷梅西”回来了！</title><link>https://tonybai.com/2010/06/13/the-happy-agentina-messi-return-back/</link><pubDate>Sun, 13 Jun 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/06/13/the-happy-agentina-messi-return-back/</guid><description>昨晚2010年南非世界杯B组焦点战潘帕斯雄鹰阿根廷队凭借老将海因策的头球小胜尼日利亚，取得开门红，作为阿迷的我来说，我的2010世界杯从这场比赛起才正式开始。 一场比赛的胜利完全不足以将阿根廷与夺冠联系在一起，阿根廷队还有很多问题亟待解决。从阿迷角度去看其实这场比赛更大的意义在于：我们收获了一个快乐的“阿根廷梅西”。这场比赛中那个在巴萨无所不能、进球如探囊取物的梅西似乎又出现了，梅西几乎参与了阿根...</description></item><item><title>宝宝满月了！</title><link>https://tonybai.com/2010/06/10/celebrate-the-first-month-of-my-daughter/</link><pubDate>Thu, 10 Jun 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/06/10/celebrate-the-first-month-of-my-daughter/</guid><description>时间过得真快，一转眼儿，我家宝宝都满月了！LP也终于出月子了^\_^，可以分担一下我的“家务活儿”了^\_^。 自从有了宝宝后，每天这心里就又多了份牵挂，上班时总是有打电话回家问问宝宝情况的冲动，也许这就是当爸爸的感觉吧。 宝宝在15天左右开始起湿疹，开始只是些许红点，后来面颊、额头甚至头皮上都布满了红点。那段时间真是火死了。宝宝一直是母乳喂养，怀疑LP的食物中含有过敏性食物，最后决定给LP停鸡蛋...</description></item><item><title>趣事一则：试驾</title><link>https://tonybai.com/2010/05/26/a-joke-test-ride/</link><pubDate>Wed, 26 May 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/05/26/a-joke-test-ride/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>最赏心悦目的中国武者形象</title><link>https://tonybai.com/2010/05/12/the-most-eyeable-image-of-chinese-warrior/</link><pubDate>Wed, 12 May 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/05/12/the-most-eyeable-image-of-chinese-warrior/</guid><description>甄子丹的《叶问2》在4月底在大陆上映了，片子我还没看，也无法给出什么具体的评价，不过其在满大街BUS站点广告板上贴出来的影片海报却让我甚是触动。 中国近代武者形象(无论是真实世界的还是电影中演绎的)成千上万，但是最赏心悦目的还是海报中的那个由甄子丹演绎的咏春大师叶问的形象 – 武之力、武之美、武之心，三者和谐统一，且具厚积而薄发之势。 叶问2电影海报 叶问2剧照</description></item><item><title>当爸爸了！</title><link>https://tonybai.com/2010/05/11/now-i-am-a-father/</link><pubDate>Tue, 11 May 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/05/11/now-i-am-a-father/</guid><description>十月等待，今朝得女；初为人父，甚是欣喜。 十个月之前，一次“意外”让LP怀了我们爱情的结晶，虽然尚未做好为人父母的准备，但是我们还是接受了她。十月怀胎期间，我们小心翼翼，精心呵护，定期产检，宝宝发育一切正常。 5月1日凌晨，老婆小便“见红”； 5月2日凌晨，老婆出现“假临产”症状（不规律宫缩）； 5月3日凌晨，老婆宫缩频度增加且稳定，疼痛感增强，已达到难忍的程度。2点左右穿好衣服带老婆去医院做内检...</description></item><item><title>五一逛北陵</title><link>https://tonybai.com/2010/05/01/a-tour-of-beiling-park-on-may-vacation/</link><pubDate>Sat, 01 May 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/05/01/a-tour-of-beiling-park-on-may-vacation/</guid><description>这一周过的有些“提心吊胆”，4月30日是LP的预产期，可是我们的宝贝并未如期而至（网上搜过，很多产妇都有过相同经历^\_^），甚至是没有哪怕一点点的产前迹象。无论是LP还是我都有些坐不住了。以前周数少，我们还未曾如此担心过，现在是越到收官阶段日子越难熬，特别是心理压力很大。我们都期望宝贝能自然顺产，剖宫产能不做就不做，后者对大人和小孩都是弊多利少。但是通过彩超结果来看，LP的胎盘已经成熟，我们都怕...</description></item><item><title>巴萨双杀皇马，憧憬卫冕</title><link>https://tonybai.com/2010/04/11/barca-expect-defend-the-championship/</link><pubDate>Sun, 11 Apr 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/04/11/barca-expect-defend-the-championship/</guid><description>今天凌晨2009-10赛季西班牙国家德比第二回合在皇家马德里主场伯纳乌上演，技高一筹的巴萨以2:0干净利落的赢得了这场关键战役。世界足球先生、金球先生、巴萨国王梅西继在欧冠四分之一决赛以一己之力击溃兵工厂阿森纳后，又在本场比赛中为巴萨先把头筹。这场比赛的胜利是巴萨整个团队的胜利，但是梅西绝对是这个团队中最最耀眼的那颗星。 梅西打入个人在国家德比中的第七粒进球 事实证明以这几批拉玛西亚青训营出产的巴...</description></item><item><title>慎用线程取消</title><link>https://tonybai.com/2010/04/09/be-careful-about-thread-cancellation/</link><pubDate>Fri, 09 Apr 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/04/09/be-careful-about-thread-cancellation/</guid><description>本周二，我们产品在某省的一个节点应用运行时出现了“死锁”情况，由于监控得力，我们在“死锁”后一分钟内就发现了这个情况，并及时重启了这个节点应用。由于是集群式系统，一个节点的故障对整个系统业务的运行几乎没造成什么影响。不过，这确是一个潜在的隐患。 经过对系统当时运行日志的分析，我们将问题锁定在“线程取消”这个机制的使用上。在“生产者-消费者”实现思路这篇文章中，我曾经提到过我们目前采用的一种通知机制...</description></item><item><title>Win7下招行专业版通讯问题解决</title><link>https://tonybai.com/2010/03/24/solve-the-problem-of-china-merchants-bank-professional-on-windows/</link><pubDate>Wed, 24 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/24/solve-the-problem-of-china-merchants-bank-professional-on-windows/</guid><description>昨天，也就是23号是我的信用卡还款日，由于新本子还没来得及安装招行个人网上银行专业版，我就计划回家后用家里的本子还款。到家后也没急着上网还款，待吃完晚饭后发现联通的网络居然上不去了。打客服电话报故障，但等到今天早晨起来也不见网络恢复，只好到公司再还了。 到了公司，安装招行专业版，然后准备恢复证书，居然发现网络不通；开始以为是公司代理设置的不正确，又反复调整了几次代理设置，甚至重启的本子也不见网络连...</description></item><item><title>梅西，我的神啊！</title><link>https://tonybai.com/2010/03/22/leomessi-my-god/</link><pubDate>Mon, 22 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/22/leomessi-my-god/</guid><description>公元前后，罗马暴政统治着地中海，在地中海沿岸人们交口相传着：“弥赛亚”将会降临拯救人世，这个传说传到了犹太人的耳朵里，他们在《圣经》中记录下来，后来将耶稣当作了“弥赛亚”。而在西班牙语里，“弥赛亚(Messiah)”的发音与梅西(Messi)是一摸一样的。     — 以上摘自网友们从圣经故事和希腊神话里得到的启发：他们发现梅西(Messi)其实还就是神的化身。 今天凌晨，梅西以神的化身降临萨拉戈...</description></item><item><title>工作装备更新了</title><link>https://tonybai.com/2010/03/20/upgrade-r51-to-thinkpad-x60/</link><pubDate>Sat, 20 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/20/upgrade-r51-to-thinkpad-x60/</guid><description>这里卖了个小关子，所谓工作装备就是指我的笔记本。 本周三伴随了我三年多的R系Thinkpad终于因显卡故障再也无法正常启动了，至于它是否就此光荣退役，那还要看设备修理部门同事是否能修好它。 我这边只能重新申请装备了。公司近两年采购的办公设备都是HP的，HP的东西质量如何想必大家通过今年央视的&amp;#34;3.15&amp;#34;晚会也都有所了解了，商用采购的设备质量也好不了哪去，黑屏、蓝屏、过热、烧主板的情况我从使用HP本...</description></item><item><title>也谈Configure脚本问题的解决</title><link>https://tonybai.com/2010/03/19/also-talk-about-solving-the-problem-of-configure-script/</link><pubDate>Fri, 19 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/19/also-talk-about-solving-the-problem-of-configure-script/</guid><description>开了一个下午的技术交流会，回到办公室时离下班时间已经不远，天气预报说今晚有暴雪，外面阴沉的天气似乎也证实了这一点。这时一个同事遇到了一个软件包编译的问题，一时无法解决，向我求助。 这是一个libmemcached的编译问题，我们用的是libmemcached 0.34版本，我的同事在PC Solaris上执行libmemcached的configure脚本时遇到如下错，Configure脚本提示：...</description></item><item><title>“MT710”请回了家</title><link>https://tonybai.com/2010/03/16/buy-moto-mt710/</link><pubDate>Tue, 16 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/16/buy-moto-mt710/</guid><description>近期中国移动推广3G业务普惠大众，推出多款3G定制机参加存话费增手机活动。先是一位同事存了一款多普达的强机，这让我心痒不已^\_^。但是Windows Mobile的系统我是不喜欢的。到辽宁移动网站上查看了一下参加活动的机型，发现了一款心仪的型号：摩托罗拉MT710，就是近期电视广告里频频曝光的那款黑红机，上周六我就迫不及待的到营业厅将这款强机请回了家。 MOTO的机子说实话不咋样，机子谈不上精致...</description></item><item><title>试用Libmemcached</title><link>https://tonybai.com/2010/03/15/try-libmemcached/</link><pubDate>Mon, 15 Mar 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/03/15/try-libmemcached/</guid><description>近期一直在做一个项目架构演化的讨论交流，为了解决产品中存在的某些问题，我们有意引入某种类Memcached的开源产品，但我们的应用场景并非经典Memcached的“Cache”场景，这里也不详述细节了，大致就是这么一件事儿。 我们的第一选择是日本小伙儿Mikio Hirabayashi实现的Tokyo Tyrant，主要基于三点原因： \-&amp;gt; 支持数据的持久化 \-&amp;gt; 快！（性能数据来自于网上的第...</description></item><item><title>HelloWorld.s</title><link>https://tonybai.com/2010/02/28/helloworld-in-assembly/</link><pubDate>Sun, 28 Feb 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/02/28/helloworld-in-assembly/</guid><description>都说汇编不易学习和使用，的确不假。自己自大学以来也曾多次尝试学习汇编，甚至大学时还有相应课时，但是自己对汇编依旧是浅尝辄止。工作后也少有使用，对汇编的认识也就停留在基础层面。汇编的学习与对计算机系统的理解是密不可分的。工作这些年也算是一直浸淫于系统层面，经过多本底层相关书籍的教诲以及工作中的实践，对计算机系统的理解就自然而然加深了。昨天下载了一本名为：“Professional Assembly ...</description></item><item><title>也谈指针运算</title><link>https://tonybai.com/2010/02/23/also-talk-about-pointer-arithmetics/</link><pubDate>Tue, 23 Feb 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/02/23/also-talk-about-pointer-arithmetics/</guid><description>指针在C语言中的位置这里就不多说了，这里说一下C的指针运算。指针运算一般针对的是同一连续内存块，不同内存块之间的指针运算无意义，甚至可能导致异常情况。 指针运算主要针对数组，常见的运算类型：+i, -i, ++, –以及 等。 我们以+i操作为例。运算时编译器需要知道一些必要的信息，比如p = p + 1操作时编译器需要知道这个运算后，p这个指针需要移动多少个字节，那这个信息哪里来呢，由指针p所指...</description></item><item><title>命令行选项解析-备忘</title><link>https://tonybai.com/2010/02/09/parse-command-line-options/</link><pubDate>Tue, 09 Feb 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/02/09/parse-command-line-options/</guid><description>翻看一本关于Shell方面的书，有一章节对命令行选项的讲解比较详细，这里总结了一下： 命令行选项分类： 1、无命令行选项(option) 如：mv file1 file2； 在命令后名显示增加一个&amp;#39;-&amp;#39;，也是一种显式无option的表达。比如：mv – file1 file2 2、有命令行选项，但无Option参数 如：rm -f file1 rm -f -r dir1 无参数的option可组合...</description></item><item><title>雨中游三坊七巷</title><link>https://tonybai.com/2010/02/04/a-tour-of-san-fang-qi-xiang-in-the-rain/</link><pubDate>Thu, 04 Feb 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/02/04/a-tour-of-san-fang-qi-xiang-in-the-rain/</guid><description>连续多个星期都没有休息了，身体倒还可以，但是心情却有些烦躁。恰好今天事情不多，就和领导请示了一下，和同事出去散散心。来福州多次了，每次都是在客户现场和酒店两点一线间忙碌，还从未有时间游览过福州的景点。因为只有一下午时间，所以我们选择了一条常规路线：三坊七巷 – 乌山。 近两天福州降温，外面温度也就10度左右，天上还飘着蒙蒙细雨，心想：雨中的古街也许更有魅力。我们住在桥南，坐77路公交到双抛桥车站下...</description></item><item><title>iterator的C实现</title><link>https://tonybai.com/2010/01/30/implement-iterator-in-c/</link><pubDate>Sat, 30 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/30/implement-iterator-in-c/</guid><description>这几天一直处于编码状态，也找回了一些对代码的良好感觉。 昨天晚上闲暇时翻阅“Head First设计模式”，当翻到迭代器模式时，突然有了想法：实现一个iterator。这几天编码时恰好也写了一个简单的带有遍历功能的小数据结构，不妨用iterator改造一下这个数据结构的遍历接口，看是否能成行。 迭代器模式较为简单，网上的文章也多得很，这里就不再贽述了，直接看实现思路和代码吧。 在迭代器模式中，有几...</description></item><item><title>人在福州，忙！</title><link>https://tonybai.com/2010/01/29/working-busy-at-fuzhou/</link><pubDate>Fri, 29 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/29/working-busy-at-fuzhou/</guid><description>掐指算来，这次在福州出差已有近三周多了，这期间经历了几次产品升级和测试，大家都变得疲惫不堪，最突出的表现就是精神头不再像刚来是那么足了，饭量开始减少，食欲下降，睡眠质量也下降了。 从这周开始这边的Team基本分成了两拨儿人，一拨儿人在客户现场驻守，协助解决产品运行中的问题，另一拨人则跟着我“宅”在酒店里进行新版本的开发和测试。说起来，大家在一个大屋子里办公还是很其乐融融的。由于一个新模块的开发，我...</description></item><item><title>逛台江步行街</title><link>https://tonybai.com/2010/01/17/shopping-at-taijiang-pedestrian-street/</link><pubDate>Sun, 17 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/17/shopping-at-taijiang-pedestrian-street/</guid><description>算起来这已经是我第三次到榕城了，不过这次待在这儿的时间可能会更长。 周三到这儿后就一直在客户现场做保障工作，每天工作10多个小时，大家都挺累的。周六下午大家休息差不多后就商量着出去转转。我们住在闽江大桥南侧的国谊酒店，江北不远处就是台江步行街-福州一条商业街，我们就将目的地定在了那。 走出酒店正门已是下午4点半，向北登上闽江大桥，边走边欣赏闽江的景致。北方人对南方的大江大河还是蛮有兴致的，每当有大...</description></item><item><title>闲话梅西百球</title><link>https://tonybai.com/2010/01/17/leomessi-one-hundred-goals-for-barca/</link><pubDate>Sun, 17 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/17/leomessi-one-hundred-goals-for-barca/</guid><description>在北京时间今天凌晨展开的2009-10赛季西甲联赛第18轮较量中，巴萨在诺坎普主场4:0痛宰死敌塞维利亚队，双料先生梅西打入其个人代表巴萨一线队在正式比赛中的第100个和第101个进球。梅西也因此成为巴萨历史上最年轻的百球先生，而完成这百粒入球梅西仅用了五年时间，这五年也是梅西以火箭速度成长的黄金五年。 西甲处子球 2005年的荷兰世青赛让世界球迷认识了一位年仅18岁的阿根廷小个子球员，他就是梅西...</description></item><item><title>T400终于到手了</title><link>https://tonybai.com/2010/01/10/thinkpad-t400-is-available/</link><pubDate>Sun, 10 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/10/thinkpad-t400-is-available/</guid><description>近期由于Blogbus被停止DNS解析，让我着实闹心了许久。曾经尝试了多种&amp;#34;招式&amp;#34;试图能进入BlogBus，比如使用OpenDNS、使用4624.info等，都不尽如人意，往往开始时还是可以访问到Bus的，但随着时间的推移，似乎也受到了影响，以至于后来就再也无法进入大巴了。今天直接采用了修改hosts文件的方式终于进来了，而且大部分功能都能使用，不过还是期望Blogbus能尽早恢复正常访问。 这周...</description></item><item><title>2010·做快乐的事</title><link>https://tonybai.com/2010/01/04/wish-to-do-happy-things-in-2010/</link><pubDate>Mon, 04 Jan 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/01/04/wish-to-do-happy-things-in-2010/</guid><description>“征尘未洗又出发”！2010年的这个元旦假期我依旧是在忙碌和压力下度过的。元旦三天假期本来是计划静下心来好好回顾和总结一下2009的，但事与愿违。由于年前的最后一天，我们的产品因性能问题招致客户的不满，所以这几天一直在写问题报告和改进方案。节没过好，心情自然也就低落了一些。 2009年，总体来说是五味杂陈。对我来说，最大的一件快事莫过于结婚了。虽说2008年就和老婆将证书领到了手，但毕竟中国人更看...</description></item><item><title>平安夜“宅”在酒店</title><link>https://tonybai.com/2009/12/24/stay-in-hotel-on-christmas-eve/</link><pubDate>Thu, 24 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/24/stay-in-hotel-on-christmas-eve/</guid><description>这个平安夜，我是“宅”在福州的一个酒店内度过的。 中国人过平安夜好比美国人过春节，态度上虽谈不上有多么积极，但是随着全球化的影响^\_^，平安夜渐渐也让人们有了一种“合家团聚”的期盼。 和两个同事一起出差福州已近两周了，经历了三次产品升级的“折磨”，身心早已疲惫不堪，再加之北方人对福州当地的伙食甚是不适应，身体状况是每况愈下。因产品保障需要，笔记本常常是在待机状态下，放到枕头边的，这样一有问题，马...</description></item><item><title>梅西，2009世界足球先生</title><link>https://tonybai.com/2009/12/22/leomessi-fifa-world-player-of-2009/</link><pubDate>Tue, 22 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/22/leomessi-fifa-world-player-of-2009/</guid><description>在今天凌晨国际足联FIFA年度颁奖典礼上，2009欧洲金球奖得主梅西终于获得了“世界足球先生”大奖，为自己的2009年画上了一个完美的句号，同时梅西也完成了自己在2009年个人荣誉和俱乐部荣誉的大满贯。 梅西加冕2009FIFA先生 地球上最棒的足球运动员</description></item><item><title>巴萨，六冠王！</title><link>https://tonybai.com/2009/12/20/barca-historically-win-six-champions-in-one-season/</link><pubDate>Sun, 20 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/20/barca-historically-win-six-champions-in-one-season/</guid><description>不得不承认: 2009-10赛季西甲开赛以来我半夜爬起来看巴萨比赛的次数与2008-09赛季相比减少了许多，记得上一次爬起来看巴萨比赛还是本赛季的西班牙国家德比，而上一次亲眼见证巴萨夺冠的比赛还是更久以前的欧洲超级杯。昨天就知道周日凌晨有巴萨的世俱杯决赛，之前巴萨已经捧得五冠了，如果能拿下这场比赛，那巴萨将成为世界足球史上第一支全满贯的俱乐部球队。为了亲眼见证这一伟大纪录的诞生，我决定半夜爬起来看...</description></item><item><title>福州震感明显</title><link>https://tonybai.com/2009/12/19/feel-earthquake-obviously-at-fuzhou/</link><pubDate>Sat, 19 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/19/feel-earthquake-obviously-at-fuzhou/</guid><description>这周应客户要求到现场做产品新版本升级过程的支持工作，这次是我第二次来到榕城了。我们选择住在五四路附近的一家经济型酒店内，这里离福州分公司较近。昨晚产品第一次升级，在客户现场熬了一宿，今天上午8点多才回到酒店。工作了一宿，头昏脑胀的，洗漱完毕后倒在床上便睡，这一觉一直持续到下午3点，就再也睡不着了。由于隔天还有一次升级操作，所以起床后做些升级前的准备工作。晚饭后躺在床上看电视消遣，晚上9点多，我正在...</description></item><item><title>睡了十二个小时</title><link>https://tonybai.com/2009/12/13/sleep-for-12-hours/</link><pubDate>Sun, 13 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/13/sleep-for-12-hours/</guid><description>早上起床，看时间已是7点半，这一觉竟整整睡了12个小时，记忆中还未曾睡过如此的长觉。 这一周一直在郑州出差，原计划是给客户做三天的培训，不料中途却发生些事故，培训的效果打了折扣，同时也延迟了返程的时间。在客户现场，压力大自不必说，又逢事故，正迎合了那句古语：”屋漏偏逢连阴雨”。于是乎身心受累，自然也得不到很好的休息。 回来的前一天偶感呼吸不畅，肺部不适，伴有咳嗽，似乎有感冒的迹象，返程的那天病情有...</description></item><item><title>今年金球奖属于梅西</title><link>https://tonybai.com/2009/12/01/leomessi-win-ballon-dor/</link><pubDate>Tue, 01 Dec 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/12/01/leomessi-win-ballon-dor/</guid><description>今天上午在公车上收到一则手机报-体育新闻：“巴萨球星梅西获得2009年欧洲金球奖！”，虽然作为梅西球迷的我早已猜到梅西会获得这份荣誉，但是当梅西真正拿到金球奖的时刻，我的心里还是充满了喜悦。 《法国足球》杂志创立的金球奖在1995年改制后已经成为了表彰世界最优秀足球运动员的最权威奖项，金球奖也是每一名足球运动员在职业生涯全力奋斗的目标。梅西在2007和2008年先后与金球奖失之交臂后，终于在今年凭...</description></item><item><title>Thunderbird跨平台共享邮件设置</title><link>https://tonybai.com/2009/11/20/cross-platform-configuration-of-thunderbird/</link><pubDate>Fri, 20 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/20/cross-platform-configuration-of-thunderbird/</guid><description>对于我个人来说，将工作环境切换到Ubuntu上来有几个“坎儿”要迈过，其中最为迫切的一个就是Mail如何在Windows和Linux下共享的问题，今天我找到了解决方法。 Thunderbird和Firefox一样，都来自Mozilla组织。和Outlook等软件不同的是，Thunderbird是可以跨平台的，更有甚者，Thunderbird可以帮助我们在Windows和Linux共享邮件，当然需要...</description></item><item><title>升级到Ubuntu 9.10</title><link>https://tonybai.com/2009/11/16/upgrade-to-ubuntu-9-10/</link><pubDate>Mon, 16 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/16/upgrade-to-ubuntu-9-10/</guid><description>Ubuntu 9.10版本在10月29日发布，虽然没有太多吸引我的地方，但是看了网上很多关于Ubuntu 9.10的文章后，心里面还是痒痒的，终于在上周五我用午间休息时间完成了Ubuntu 9.10版本的安装。 光盘是让同事帮我下载并刻录的，安装过程和以前没什么两样，由于本本中已经有了9.04版本，直接插入光盘升级安装就可以了。大约40分钟后，安装完毕，重启进入Ubuntu 9.10。首先感受到的...</description></item><item><title>梅西版狮子吼</title><link>https://tonybai.com/2009/11/15/lion-roaring-of-leo-messi/</link><pubDate>Sun, 15 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/15/lion-roaring-of-leo-messi/</guid><description>梅西版狮子吼 图片中梅西的狮子吼功夫似曾相识，对了，那应该是N多年前的一张图片了，那张图片的主人公是另外一位我最喜欢的阿根廷球星，外号战神的巴蒂斯图塔，同样是身穿阿根廷蓝白杉，同样留着短发（因国家队主教练不允许留长发），同样是进球后的激情怒吼。很遗憾，那张照片暂时没能找到。 今晨踉踉跄跄地以南美区第四名闯入2010年南非世界杯的阿根廷队应邀在客场与西班牙队进行一场友谊赛。不出所料，阿根廷输了，输得...</description></item><item><title>大雪下，路漫漫</title><link>https://tonybai.com/2009/11/13/heavy-snow-and-long-journey/</link><pubDate>Fri, 13 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/13/heavy-snow-and-long-journey/</guid><description>清晨拉开窗帘，外面已是白茫茫一片，漫天飞舞的已经从昨晚的雪粒变成了一片片大大的雪花了。小区里的积雪已经有了一定的厚度，这让人不禁想起了2007年元宵节那次暴雪经历。这是今年沈城的第二场雪了，第一场雪我没有赶上，那时我恰好远在福州。 沈城是从昨天下午开始降雪的，在那之前中原地区（河北、山西等）已经被几十年不遇的大雪折腾了够呛。虽说省气象中心早已发布了大雪暴雪警报，但是大雪到来时大家仍准备不足。在昨晚...</description></item><item><title>这下桌面干净了</title><link>https://tonybai.com/2009/11/09/clean-my-desktop/</link><pubDate>Mon, 09 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/09/clean-my-desktop/</guid><description>我有一个不算是很好的习好，那就是喜欢将物品摆放在面上，而不喜欢将物品收纳到很隐蔽的箱子或柜子里，这样我就能直接看得到，摸得到，用的时候直接取之。如果你到我家里，你就会发现桌子上、茶几上、床上、沙发上到处平铺堆放着物品：衣服、食品、书等。LP很讨厌我乱放东西，尤其是书（喜欢买纸板书，书也就多了起来），每天转圈的收拾（或指挥我收拾^\_^），可以过了一段时间后，就又如初了。这个习好也直接延伸到了我的电...</description></item><item><title>一个Solaris x86平台64位编译的问题</title><link>https://tonybai.com/2009/11/05/a-64bit-compiling-problem-on-x86-solaris/</link><pubDate>Thu, 05 Nov 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/11/05/a-64bit-compiling-problem-on-x86-solaris/</guid><description>上午在做一个Solaris 10 on x86代码移植测试过程中，发现一个Gcc编译问题，这里记录下来以作备忘。 我们的代码在一台安装了Solaris 10 for x86平台的机器A上进行64位编译(gcc -m64)时报错，错误信息如下： &amp;#34;xx.c:1: sorry, unimplemented: 64-bit mode not compiled in&amp;#34;。 而奇怪的是在另外一台同为Solar...</description></item><item><title>使用iconv做内码转换</title><link>https://tonybai.com/2009/10/31/internal-code-transform-by-iconv/</link><pubDate>Sat, 31 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/31/internal-code-transform-by-iconv/</guid><description>前不久某南方省份的客户反馈说我们的产品对某些生僻字(如“赟”)的转码支持的不好，终端收到后无法显示这个字。 经分析，发现类似“赟”这样的字在GB2312编码标准中并未收录，要想支持这样的生僻字的内码转换需要产品支持目前最新的中文编码标准GB18030。而我们的产品在诞生到现在就一直只支持GB2312，这就是导致这一问题的直接原因。 产品以前的代码库中内码转换的接口都是自己实现的，仅支持GB2312...</description></item><item><title>说书单2009.10.28</title><link>https://tonybai.com/2009/10/28/booklist-2009-10-28/</link><pubDate>Wed, 28 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/28/booklist-2009-10-28/</guid><description>十月以来，自已通过网购或换购还真收了不少书，这里说说： 国内关于伟大领袖毛主席的传记实在让我无法提起兴致，但哈佛大学教授Ross Terrill的《毛泽东传》我早在其出版时就关注过，它可以让我弄清楚毛主席在一个西方人眼中的事实形象。昨天偶然发现该书在卓越网的卖价居然比其他网店（诸如当当网）便宜近十元，这个“便宜”怎能不捡^\_^，遂在昨天下了订单。今天再一看卓越的定价居然涨到了35.8元，涨了仅5...</description></item><item><title>榕城走一回</title><link>https://tonybai.com/2009/10/24/a-trip-to-fuzhou/</link><pubDate>Sat, 24 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/24/a-trip-to-fuzhou/</guid><description>应客户之邀，本周一到福州做业务需求调研，周三返回沈阳。 以前从未去过榕城福州，领导下达调研任务时已是上周五。时间比较仓促，而且要求周一上午务必到达福州，因为客户方领导都较忙，也只有在周一才有机会见到客户领导。 安抚了LP后，周日下午我背上本子，带了几件随身衣物，就匆忙赶往机场。从沈阳出发到福州的航班都是有经停的，而且多是厦航、川航这样的小航空公司。为了能多陪LP一会儿，我选择了起飞较晚的航班，计划...</description></item><item><title>Review Board中文支持</title><link>https://tonybai.com/2009/10/05/chinese-support-for-review-board/</link><pubDate>Mon, 05 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/05/chinese-support-for-review-board/</guid><description>Review Board安装成功至今已半月有余，这期间我一直在试用它，虽欣喜于其提供的强大的功能，但还是有若干使用中的问题一直让我头痛不已，同时也阻碍了在部门推广该工具的进程。 首当其冲的就是对中文的支持问题。按照默认的步骤安装和配置后， 输入和保存英文均没有问题，但是一旦输入中文，保存后页面显示的都是乱码，甚至某些时候在保存中文数据时Review Board还提示错误。我的 Ubuntu的loc...</description></item><item><title>这个十一没回家</title><link>https://tonybai.com/2009/10/02/not-visit-parents-during-this-golden-vacation/</link><pubDate>Fri, 02 Oct 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/10/02/not-visit-parents-during-this-golden-vacation/</guid><description>以往每逢重要节假日，我一般都会回到老家看望父母和亲戚朋友。不过这个十一因工作和其他一些原因，我决定不回家了。八天长假确也不短，事先也做了一些计划和准备。 这个十一是祖国六十周年的生日，国家将举行盛大的庆典，所以十月一日这天我和LP选择在家里守在电视旁，看庆典、看阅兵、看游行。自从1999年第一次看国庆庆典以来，一晃已是十年，不禁感叹一下时光荏苒、岁月如梭啊。中国已经有了多次组织大型庆典活动的经验了...</description></item><item><title>也谈VIM字符集编码设置</title><link>https://tonybai.com/2009/09/28/also-talk-about-vim-charset-configuration/</link><pubDate>Mon, 28 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/28/also-talk-about-vim-charset-configuration/</guid><description>安装完中文语言包支持后，Ubuntu的默认locale是zh\_CN.UTF-8(即简体中文语言环境，字符集内码UTF-8)。这与我们日常开发环境中Unix设定的环境有所区别，我们日常使用的环境一般为zh\_CN.GBK或zh。我们的源代码文件的字符编码也都是GBK的编码，直接在Ubuntu下用默认设置的VIM打开后，中文的注释会显示乱码。如果你直接编辑这个文件并提交，那么其他在Unix下开发的同...</description></item><item><title>“找回”自己的密码</title><link>https://tonybai.com/2009/09/23/my-password-get-back/</link><pubDate>Wed, 23 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/23/my-password-get-back/</guid><description>继续昨天的情况道来。话说昨天因瞬时“失忆”，导致将公司办公账户的密码忘记了。这给工作带来的不便是我没有想到的。今天一上班就询问秘书密码重置的进度，得到的回复是已经发给公司HR并催促多次了。但是直到近中午也未曾收到密码重置的通知，耐不住性子的我终于决定亲自跟踪这件事，电话直接打到HR部门负责此事的专员那，结果无人接听，一连多次，估计是那个同事不在Office。遂直接拨打公司IT服务部门的电话，说明了...</description></item><item><title>瞬时“失忆”，密码忘记</title><link>https://tonybai.com/2009/09/22/forget-the-password-of-mailbox/</link><pubDate>Tue, 22 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/22/forget-the-password-of-mailbox/</guid><description>密码这东西在信息化的今天真是很重要，估计大家一张口就能说出5个以上使用密码的地方：登录网银、上淘宝、上亚马逊购书、写博客、登录Gmail等等。平时在公司，我的mail就是我的ID，公司所有内部网络服务都需要使用这个ID登录，甚至包括内部无线网络也是如此，所以在公司办公，内部mail账户和密码很重要。 公司为了加强信息安全管理，要求每位员工的密码都要符合SOX规范，而且要每隔若干个月就要对密码做一次...</description></item><item><title>Firefox变身Vim</title><link>https://tonybai.com/2009/09/20/vimperator-plugin-for-firefox/</link><pubDate>Sun, 20 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/20/vimperator-plugin-for-firefox/</guid><description>在&amp;#39;IDEAL Garden&amp;#39;上看到作者在文章中提到一个名为Vimperator的FireFox插件，该插件功能甚是强大，可以让你以Vim的操作方式来使用Firefox，对于我这个天天都用Vim写代码的人来说，Vimperator可谓有非凡的吸引力，它可以让你的手指留在键盘上。 安装Vimperator这个插件仅需十几秒的时间，重启Firefox后你就可以以Vim的操作方式来尽情操作Firefox...</description></item><item><title>Review Board安装和配置札记</title><link>https://tonybai.com/2009/09/19/review-board-installation-and-configuration/</link><pubDate>Sat, 19 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/19/review-board-installation-and-configuration/</guid><description>目前部门还没有采用Pair Programming那种时时刻刻都在review代码的工作方式，代码Review多采用走查方式，即代码写完后召开一个Code Review的Meeting，集中时间和经验丰富的人力对重点代码进行筛查，这种方式的代码Review有利，但也有弊。其弊端在于低效和覆盖面小。做一次走查需要N多人参与若干个小时，而在这段时间里不是每个参与者都能极其高效的参与到走查中的，实践证明...</description></item><item><title>充实的一周</title><link>https://tonybai.com/2009/09/18/this-week-is-fully/</link><pubDate>Fri, 18 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/18/this-week-is-fully/</guid><description>六十年之国庆日即将到来，对我们来说也算是个“利好消息”，因为这段时间里来自客户方面压力会减小不少，我们可以更多的做回自己-静下来做一些想做的、该做的事情。 上周末重温了一遍李开复的《做最好的自己》，三年前从书市买下了这本书，但仅仅翻了前三章后就将之束之高阁了。三年后的今天再次完整的阅读这本书，也许是工作的年头多了，关于理想、学习和沟通等方面的共鸣和感悟也就多了些。最欣赏书中引用《读者》中的那一段话...</description></item><item><title>Solaris 10安装二三事</title><link>https://tonybai.com/2009/09/10/something-about-installing-solaris-10/</link><pubDate>Thu, 10 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/10/something-about-installing-solaris-10/</guid><description>部门服务器资源向来都比较紧张，每当忙碌季节到来，服务器资源消耗都较大，开发人员总是抱怨编辑代码慢、Build慢以及磁盘空间不足等问题，严重时甚至无法工作。部门也一直在尝试改善这个问题，无非加服务器、加磁盘等，但是这些措施似乎都难以满足开发和测试人员日益增长的对服务器资源的索求。 为了尽量在组内杜绝上述现象的发生，决定搭建多台PC Server给组内开发人员使用，让大家工作的更有效率，更独立自由，不...</description></item><item><title>Bash文件描述符重定向符号的另类理解</title><link>https://tonybai.com/2009/09/08/the-alternative-understanding-on-file-descriptor-redirection/</link><pubDate>Tue, 08 Sep 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/09/08/the-alternative-understanding-on-file-descriptor-redirection/</guid><description>在Unix平台工作的人都使用过Shell的重定向功能，多数人接触较多的是简单的重定向，比如： cmd &amp;gt; some\_file 将cmd命令的标准输出重定向到some\_file中 cmd &amp;amp;1 1&amp;gt;build.log”为例，看起来挺头疼，符号增多了，加了一个&amp;#39;&amp;amp;&amp;#39;这个符号，有些晕。不能看表面，我们要看原理：打开“Unix环境高级编程(APUE)”中关于文件内核数据结构的说明，回顾一下，再对应上面...</description></item><item><title>手机做MODEM实现无线上网</title><link>https://tonybai.com/2009/08/30/make-pc-surfing-the-internet-through-mobile-phone/</link><pubDate>Sun, 30 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/30/make-pc-surfing-the-internet-through-mobile-phone/</guid><description>前不久和一位售前同事到北京出差，途中在动车上看到他把本子连到Nokia手机上并通过手机上网。现如今通过手机上网也不是什么新鲜事，关键看是否需要。平时上班有公司网络，下班家里有宽带，路途中可通过手机直接浏览WAP站点，所以对于我这样的开发人员而言倒是没有特别充分的让本子通过做MODEM的手机上网的需求。 公司信息安全改造屏蔽了外部的许多站点，其中包括BLOGBUS，而且目前BUS不支持WAP浏览。这...</description></item><item><title>梅西·坚强意志赢欧超级杯</title><link>https://tonybai.com/2009/08/29/europe-super-champion/</link><pubDate>Sat, 29 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/29/europe-super-champion/</guid><description>北京时间2009年8月29日凌晨，“四冠王”球队巴塞罗那在法国摩纳哥路易二世球场有惊无险的拿到了2009年的第五座冠军奖杯-2009年欧洲超级杯，重演了里历史上的库巴 拉时代“五冠王”奇迹，甚至奖杯分量要远超历史上的那个时代的“五冠王”，但明眼人都清楚本场比赛是巴萨在2009年多项赛事决赛中打的“最难看”也最艰 难的一次，这个冠军让现场和全世界电视机前的球迷足足等待了116分钟。 瓜迪奥拉不出预料...</description></item><item><title>梅西·荣膺欧足联最佳球员</title><link>https://tonybai.com/2009/08/28/europe-best-player/</link><pubDate>Fri, 28 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/28/europe-best-player/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>cmockery支持mock输出参数</title><link>https://tonybai.com/2009/08/26/cmockery-support-mocking-out-parameter/</link><pubDate>Wed, 26 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/26/cmockery-support-mocking-out-parameter/</guid><description>近两天一有空就会去看看项目代码，思考一下如何利用cmockery对项目里已有的代码进行测试。项目代码中很多被调用的接口都带有输出参数，而且在这些接口中多利用返回值指示执行成败也否，而利用输出参数返回一些关键结果，这些结果值甚至影响着后续的函数执行流程。前期研究cmockery时没有注意到cmockery是否可以设置被mock接口的输出参数的值，不过回顾了一下cmockery实现的原理，觉得cmoc...</description></item><item><title>C单元测试之使用cmockery</title><link>https://tonybai.com/2009/08/22/introduce-cmockery-for-c-unit-test/</link><pubDate>Sat, 22 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/22/introduce-cmockery-for-c-unit-test/</guid><description>这么久以来一直没有找到一款很好的支持mock测试的C语言单元测试工具包，但前不久在一网友的评论中得知：去年Google曾发布了一款c语言的轻量级单元测试framework — “cmockery”，cmcokery很小巧，对其他开源包没有依赖，对被测试代码侵入性小；它支持mock test，同样也可以支持常规的单元测试。 之前在博客中曾描述过C语言实现mock的一个思路，不过和cmockery对比...</description></item><item><title>模拟器陷阱</title><link>https://tonybai.com/2009/08/22/the-trap-of-simulator/</link><pubDate>Sat, 22 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/22/the-trap-of-simulator/</guid><description>暑去清凉来，一场大雨让燥热一去不复返了，这让身体舒服了许多。本周四晚有一次产品升级操作，按惯例每次升级前的都会对产品做一次针对性的回归测试，这次也不例外，不过临近下班时测试组爆出一个莫名奇妙的问题。 测试人员在BUG说明中写到：产品在只运行某个流程A的情况是正常的，但是当流程A和流程B一起运行时，就会出XX异常情况。作为开发人员遇到类似的问题第一反映多为：这怎么可能呢？这个产品已经经过N轮测试并且...</description></item><item><title>天儿太热了！</title><link>https://tonybai.com/2009/08/12/it-is-too-hot/</link><pubDate>Wed, 12 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/12/it-is-too-hot/</guid><description>记得一年前的六月份到北京客户那里开会，从Taxi里出来后，走在北京著名的金融街上，那叫一个热！夹杂着湿气的热浪一阵阵的扑面而来，让我浑身不舒服，豆粒大的汗珠瞬间就从额头、颈部流了下来。见识过北京糟糕的夏季天气的我当时心里还在庆幸：还好这是在北京，远在东北的沈阳可从来没有这么热过，起码没热的这么难受。 不过好景不长，现在的沈阳与北京应该有一拼了。今年沈阳一改以往干爽怡人的夏日气候，自从入伏以来，连续...</description></item><item><title>我眼中的哈利波特6</title><link>https://tonybai.com/2009/08/01/film-harry-potter-6-in-my-eyes/</link><pubDate>Sat, 01 Aug 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/08/01/film-harry-potter-6-in-my-eyes/</guid><description>周二半价日，委托一个朋友提前买了&amp;#34;哈利波特与混血王子&amp;#34;的电影票，位置在百老汇影城，虽说提前了(如果下班后再买，基本就得等午夜场了)，但是还是晚了，只买到了8号小厅的票。下了班车，紧赶慢赶还是差了5分钟，习惯了在一号大厅看片，冷不丁的来到小厅还有些不是很适应。屏幕略小，而且效果一般，屏幕最左侧还有些光影瑕疵，顿感不爽。但位置还不错，厅的正中。此时离首映都一个半月过去了，人还是不少，当然了半价也是吸引...</description></item><item><title>分享一个Oracle OCI库的BUG</title><link>https://tonybai.com/2009/07/31/a-bug-of-oracle-oci-lib/</link><pubDate>Fri, 31 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/31/a-bug-of-oracle-oci-lib/</guid><description>上周测试组反馈在一台HP X86-64主机Solaris 10 for X86环境下部署的应用无法连接Oracle数据库，错误码ORA-12154。而另外一个产品的部署在这台主机上的应用却能正常连接到数据库。本周安排专人对该问题进行查找，在先后排除了用户环境设置、Oracle数据库服务端等问题后，我们最终把目光集中在了Oracle客户端的OCI库上。 定位过程如下： 1、SQLPLUS可以访问数据...</description></item><item><title>Picasa Web Albums疑似被和谐了</title><link>https://tonybai.com/2009/07/27/picasa-web-albums-may-be-forbidden/</link><pubDate>Mon, 27 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/27/picasa-web-albums-may-be-forbidden/</guid><description>网络相册，我一直用Google的Picasa Web Albums。若干年前的我最初使用的是Flickr，可好景不长，Flickr的图片地址在国内无法访问到了。无奈换到Picasa Web Albums，当初还花了好大力气将各个blog文章中的图片重新上传到Picasa，并更换文章中的链接。近期我最喜欢的巴萨开始正式赛季前的热身了，本打算写几篇文章发表下看法，但是却发现Picasa Web Alb...</description></item><item><title>巴萨·2009-2010赛季看点</title><link>https://tonybai.com/2009/07/24/barca-2010/</link><pubDate>Fri, 24 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/24/barca-2010/</guid><description>明天凌晨三时，西甲“三冠王”巴萨将迎来自己2009-10赛季季前赛的第一场热身比赛，客场在温布利球场挑战托特纳姆热刺队。巴萨作为上个赛季的三冠王，其风头最近被在转会市场呼风唤雨的皇马主席弗洛伦蒂诺抢去了不少。与皇马在转会市场的风光无限比起来，巴萨似乎有些沉寂：先是拿下了国米弃将马克斯维尔，再又签下了巴西年轻射手凯里森，今天上午媒体爆料埃托奥和伊布的交易即将成功，只是官方还未证实，而且针对这笔交易大...</description></item><item><title>周末“捉虫”记</title><link>https://tonybai.com/2009/07/18/debugging-notes-at-weekends/</link><pubDate>Sat, 18 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/18/debugging-notes-at-weekends/</guid><description>周六，对于上班族来说是多么好的日子，能在家里享受自由的无拘无束的生活而且不用担心第二天的工作，应该说是一周中最没有压力的一天。六点半起床，慢慢喝下一杯225ml左右的凉白开（保健医生说20-25摄氏度的凉白开比较适宜作为起床后的第一杯水），套上运动短裤和上衣，打开MP3播放器，塞上耳机，出门在园区内慢跑。昨晚下了一场雨，所以园区早上的空气很好。耳畔酷玩乐队的“Viva La Vida”让我跑起来很...</description></item><item><title>体检·SSH·Safari4</title><link>https://tonybai.com/2009/07/17/physical-examination-and-ssh-and-safari4/</link><pubDate>Fri, 17 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/17/physical-examination-and-ssh-and-safari4/</guid><description>一年一度的公司福利体检结果刚刚出炉不久，与去年相比，我今年身体状况有些“不妙”：体重超重、血压有些偏高，另外谷丙转氨酶也略高于正常值。今天中午公司委托体检机构安排一名老医生给我们说说体检结果。老医生针对从全体员工体检结果中统计出的TOP3问题状况给出了具体的讲解和预防/缓解措施。这三个常见身体状况是：超重/肥胖、高血脂/血糖和脂肪肝，相信不仅我们公司的员工有这些问题，大多数做IT的人都或多或少有类...</description></item><item><title>“牢骚”几句</title><link>https://tonybai.com/2009/07/12/some-complaints/</link><pubDate>Sun, 12 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/12/some-complaints/</guid><description>饭否无法访问，Twitter也无法访问，不知道是否是被GOV和谐了，弄得我想“牢骚”几句都没有地方。 下午在家里“关门闭户”独自一人通过家庭影院重温了2007年上映的真人版“Transformers”以及一张花絮盘。虽然这部片子看过多次了，但是今天看起来依旧还是那么“起劲儿”。从花絮里看到了幕后电影制作人员努力和智慧，要知道仅仅一个擎天柱身上的零件就达到了10000多个，而且制作人员为了提高逼真度...</description></item><item><title>家中新绿</title><link>https://tonybai.com/2009/07/04/a-hint-of-green-appear-in-house/</link><pubDate>Sat, 04 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/04/a-hint-of-green-appear-in-house/</guid><description>我们俩都不敢养真花，原因只有一个：怕养不活。但是上周还是没能抑制住心底对绿色植物的喜爱，用“不菲价格”购入了两盆“大家伙”。 花匠称其中的一盆花为“香牡丹”，我在网上搜了半天也没找到“香牡丹”这种花；还是LP发现这盆花与一种叫“栀子花”的形神俱似，而且查了一下栀子花的资料，发现栀子花又名“木丹”，“牡丹” vs. “木丹”，发音也接近^\_^，姑且把它看作是小叶栀子花吧。这种花最大的特点就是“香”...</description></item><item><title>成都行记</title><link>https://tonybai.com/2009/07/02/the-tour-of-chengdu/</link><pubDate>Thu, 02 Jul 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/07/02/the-tour-of-chengdu/</guid><description>去九寨的必经路之一就是成都。公司在成都有分舵，位于风景秀丽的青城山上，但5.12地震时青城山毁坏严重，公司也受到了不小的损失。公司总部这边的很多人到过成都出差，凡去多的人都说成都不错：东西不贵，生活节奏慢，是个宜居城市。 乘国航班机从沈阳飞往成都，途中遇到气流较多，飞机颠簸的较为厉害，那些日子恰逢法航的空难震惊世界，心中恐惧不免油然而生，只能加大耳机的音量麻痹自己的恐惧神经^\_^。还好，飞机有惊...</description></item><item><title>梅西·用三个冠军奖杯庆生</title><link>https://tonybai.com/2009/06/25/triple-champion-the-best-birthday-gift/</link><pubDate>Thu, 25 Jun 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/06/25/triple-champion-the-best-birthday-gift/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>走进九寨</title><link>https://tonybai.com/2009/06/24/the-tour-of-jiuzhaigou/</link><pubDate>Wed, 24 Jun 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/06/24/the-tour-of-jiuzhaigou/</guid><description>工作这几年去过全国很多地方，名山秀水也见识了不少，但是心底依然时常涌动着一种向往，那就是到九寨沟看看。九寨沟之美想必大家也都有所耳闻，但耳闻不如亲历。这不我终于有机会达成这一夙愿了：和LP一起走进童话世界-九寨沟。 九寨风光，美在秋冬之际。红黄蓝绿四种颜色交相辉映，那才是真正的童话般的世界，如果你有幸再遇到一场白雪，那景色将不能不说是上天的恩赐。而六月份九寨的美则打了一些折扣，原因有二：颜色少+水...</description></item><item><title>梅西·引领梦三登欧冠之巅</title><link>https://tonybai.com/2009/05/29/europe-barca-vs-manchester_united/</link><pubDate>Fri, 29 May 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/05/29/europe-barca-vs-manchester_united/</guid><description>巴塞罗那队 vs. 曼彻斯特联队，这绝对是一场世界足球公认的巅峰对决： 1、它是西甲冠军与英超冠军的对决； 2、它是艺术足球与实用足球风格的对决； 3、它是梅西与C.罗之间为争取个人最高荣誉的对决； 4、它也是“菜鸟少帅”瓜迪奥拉与“大虾老爵爷”弗格森之间的首次对决。 对 于两只球队来说，本场比赛也必将是一场“刷数据”的较量，曼联若获胜将成为冠军杯改制以来首个卫冕成功的球队，并成为史上第一个“五冠...</description></item><item><title>巴萨问鼎欧冠，梅西引领“梦三”</title><link>https://tonybai.com/2009/05/28/barca-win-the-champion-league/</link><pubDate>Thu, 28 May 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/05/28/barca-win-the-champion-league/</guid><description>巴塞罗那队 vs. 曼彻斯特联队，这绝对是一场世界足球公认的巅峰对决： 1、它是西甲冠军与英超冠军的对决； 2、它是艺术足球与实用足球风格的对决； 3、它是梅西与C.罗之间为争取个人最高荣誉的对决； 4、它也是“菜鸟少帅”瓜迪奥拉与“大虾老爵爷”弗格森之间的首次对决。 对于两只球队来说，本场比赛也必将是一场“刷数据”的较量，曼联若获胜将成为冠军杯改制以来首个卫冕成功的球队，并成为史上第一个“五冠王...</description></item><item><title>手绘</title><link>https://tonybai.com/2009/05/20/hand-painted/</link><pubDate>Wed, 20 May 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/05/20/hand-painted/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>对着电脑发呆</title><link>https://tonybai.com/2009/05/06/sit-in-front-of-the-pc-and-do-nothing/</link><pubDate>Wed, 06 May 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/05/06/sit-in-front-of-the-pc-and-do-nothing/</guid><description>突然觉得最近自己对着电脑发呆的时间变长了，面对着笔记本屏幕，时常是大脑变得空白，不愿去想工作上的事情，上网也提不起兴趣，想写文章又不知从何下笔，旁边厚厚的一摞技术书籍也懒得去翻看，每天都觉得很累，晚饭后总想去用睡眠来麻醉自己，真怀疑自己是不是有了心理问题。回过头来再想想这应该不是一个偶然的现象，而是一种积蓄了很久的情绪的爆发。 自己工作时间也不算短了，按理说自己的发展曲线还算是不错的，但是近来我却...</description></item><item><title>梅西·两球击碎皇马卫冕梦</title><link>https://tonybai.com/2009/05/03/real_mardrid-vs-barca/</link><pubDate>Sun, 03 May 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/05/03/real_mardrid-vs-barca/</guid><description>2009年5月3日凌晨2点（北京时间），2008-09赛季西甲联赛第34轮拉开战幕，巴萨做客伯纳乌球场与皇马上演第235次西班牙“国家德比”，同 时这场比赛也是两个豪门在联赛中的第158次交手。从队员的角度来看，这场比赛是本赛季才加冕巴萨国王的10号梅西首次亮相伯纳乌。 从实 力上而论，攻击力冠绝欧洲的巴萨显然要高出目前这支皇马许多；但是巴萨目前是三线作战，而皇马则只剩下了一个目标-“卫冕联赛冠军...</description></item><item><title>梅西·为欧冠收力巴萨险平</title><link>https://tonybai.com/2009/04/26/valencia-vs-barca/</link><pubDate>Sun, 26 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/26/valencia-vs-barca/</guid><description>2009年4月26日凌晨4时（北京时间），2008-09赛季西班牙足球甲级联赛第33轮拉开战幕，巴萨客战劲旅瓦伦西亚。CCTV5因转播意甲比赛， 延迟了本场比赛的转播，CSPN则准时转播了比赛，但是画面和解说都与CCTV无法可比。我最终还是选择了看CCTV的转播。 巴萨在魔鬼 赛程首回合4:0大胜塞维利亚获得开门红，但是巴萨面前的比赛一场比一场艰苦，除了这场对阵瓦伦西亚的比赛，三天后欧冠半决赛主场...</description></item><item><title>网上淘二手书</title><link>https://tonybai.com/2009/04/21/buy-second-hand-books-on-the-internet/</link><pubDate>Tue, 21 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/21/buy-second-hand-books-on-the-internet/</guid><description>计算机类图书&amp;#34;贵&amp;#34;就一个字，而且计算机领域知识更新快、新书迭出；程序员们为了跟上知识更新的步伐，不得不花上大把银子采购图书，久而久之，哪个程序员的家里没有几箱子书呢^\_^。以前我买书的哲学也是非新书不买，但自从同事告诉我互动出版网有&amp;#34;二手书&amp;#34;可淘之后，我就渐渐喜欢上网上淘二手书了。 China-pub上所谓的&amp;#34;二手书&amp;#34;，实际上和新书也没差多少，基本都在9成新，有些书可以说还是“崭新”的，但是这些...</description></item><item><title>梅西·绝杀赫塔菲预示夺冠</title><link>https://tonybai.com/2009/04/19/getafe-vs-barca/</link><pubDate>Sun, 19 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/19/getafe-vs-barca/</guid><description>2009年4月19日凌晨2点（北京时间），2008-09赛季西甲联赛第31轮拉开战幕，西甲领头羊巴塞罗那队坐客马德里挑战小球会赫塔菲队。赫塔菲目 前在西甲排在中下游，有保级压力，但是近几年巴萨对阵赫塔菲的战绩并不占优，特别是在赫塔菲的主场。本赛季赫塔菲也是巴萨唯一没能战而胜之的对手了。 04/05赛季和05/06赛季巴萨都在客场战胜了对手，最终巴萨也都获得了最终的西甲冠军；如果本场比赛巴萨能战胜赫...</description></item><item><title>简说GLIBC strncpy实现</title><link>https://tonybai.com/2009/04/15/glibc-strncpy-source-analysis/</link><pubDate>Wed, 15 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/15/glibc-strncpy-source-analysis/</guid><description>比较以下两组代码，你认为哪组运行的更快些呢？ Example1：         int n   = 100;         int n4  = n &amp;gt;&amp;gt; 2;         int i   = 0; int a\[100\]; for (i = 0; i = 4)         {                 size\_t n4 = n &amp;gt;&amp;gt; 2; /\* n4 = n / 4， n...</description></item><item><title>GLIBC strlen源代码分析</title><link>https://tonybai.com/2009/04/11/glibc-strlen-source-analysis/</link><pubDate>Sat, 11 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/11/glibc-strlen-source-analysis/</guid><description>直接操作C标准库提供的字符串操作函数是有一定风险的，稍有不慎就会导致内存问题。这周用业余时间写了一个小型的安全字符串操作库，但是测试之后才发现自己的实现有很大的性能缺陷。 在Solaris上初步做了一个简单的性能比对，以下是得到的性能数据(以strlen的数据为例)： 当传入的字符串长度为10时，执行100w次： strlen 执行时间是：32762毫秒 my\_strlen执行时间是：49183...</description></item><item><title>梅西·与巴萨一起碾碎拜仁</title><link>https://tonybai.com/2009/04/09/europe-barca-vs-bayern/</link><pubDate>Thu, 09 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/09/europe-barca-vs-bayern/</guid><description>2009年4月9日凌晨2点45分（北京时间），2008-09赛季欧洲冠军联赛四分之一决赛开始了首回合较量，西甲豪门巴萨坐镇主场诺坎普迎来了德甲巨 人拜仁慕尼黑的挑战。八强抽签结束后，巴萨躲过了英超四强的包围圈却遭遇了德甲NO.1拜仁，不过媒体和博彩公司依旧看好巴萨，巴萨和曼联并列赔率榜首 位。拜仁本赛季的表现很不稳定，既有欧冠赛场两回合大比分屠杀里斯本竞技的记录，也有在刚刚进行的联赛中大比分被沃尔...</description></item><item><title>有关单元测试的“只言片语”</title><link>https://tonybai.com/2009/04/08/only-a-word-or-two-about-unit-test/</link><pubDate>Wed, 08 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/08/only-a-word-or-two-about-unit-test/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>梅西·正式加冕阿根廷10号</title><link>https://tonybai.com/2009/03/29/nation-agentina-vs-venezuela/</link><pubDate>Sun, 29 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/29/nation-agentina-vs-venezuela/</guid><description>10号球衣对于阿根廷足球来说，意味深长，甚至阿根廷10号之争都成了国际媒体热烈追逐的热点新闻。似乎没有哪个其他足球强国的10号之争能有阿根廷10 号这样大的影响力。阿根廷10号意味着什么呢？意味着史上最伟大的足球运动员-球王迭戈·马拉多纳、意味着给阿根廷带来第一座大力神金杯的马里奥·肯佩 斯，意味着蓝白军团阿根廷队的王者，阿根廷10号就是阿根廷队的国王。 2009 年3月29日上午6点，蓝白军团阿...</description></item><item><title>网购飞利浦家庭影院小记</title><link>https://tonybai.com/2009/03/24/buy-philips-home-theater-from-internet/</link><pubDate>Tue, 24 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/24/buy-philips-home-theater-from-internet/</guid><description>今天上午我在京东商城订购的飞利浦HTS3156/93型入门级家庭影院终于到货了。从去年年末开始就一直关注着这款家庭影院，只是当时地柜还没有选好，影院买回来也是无用武之地。总体来说这款影院物美价廉，比较适合我。我不是什么发烧友，不是很追求音质，自己也没长出那么好的耳朵，再好的音响估计也听不出来太大差别；这款影院颜色和外观与客厅里以黑色为主的家具比较搭配；还有家里液晶电视就是飞利浦的，同样牌子的东西显...</description></item><item><title>用电压力锅制作酱焖鸡腿</title><link>https://tonybai.com/2009/03/24/use-electric-pressure-cooker-cook-roast-chicken-with-soy-sauce/</link><pubDate>Tue, 24 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/24/use-electric-pressure-cooker-cook-roast-chicken-with-soy-sauce/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>IE8的糟糕体验</title><link>https://tonybai.com/2009/03/23/terrible-experience-on-ie8/</link><pubDate>Mon, 23 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/23/terrible-experience-on-ie8/</guid><description>北京时间2009年3月20日零点，软件巨头微软公司正式发布了其Internet Explorer系列的最新版本8.0，简称IE8。早上上班后我第一时间下载了IE8的简体中文版For Windows XP。执行安装文件，重启电脑，IE8很容易就安装完毕了。 自己平时最常用的浏览器是Mozila的Firefox，但考虑到公司内部办公网以及中国内地诸多网站对Firefox糟糕的兼容性，让我还不得不继续使...</description></item><item><title>梅西·梅式入球引爆三叉戟</title><link>https://tonybai.com/2009/03/23/barca-vs-malaga/</link><pubDate>Mon, 23 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/23/barca-vs-malaga/</guid><description>典型梅式入球引爆三叉戟，巴萨主场6:0血洗马拉加。 2009年3月23日凌晨2点（北京时间），西甲第28轮巴萨主场迎来联赛 排名中上游的马拉加队的挑战。在哈维率先为巴萨取得领先后，第24分钟，梅西右路再次上演经典型“千里走单骑”式的“梅式入球”，此后，三叉戟中的埃托奥 梅开二度，亨利也暂获一球。本场比赛后，巴萨国王梅西在本赛季上场的39场比赛中已经取得了30粒入球，联赛19个进球、国王杯5粒，冠军...</description></item><item><title>也谈软件调试</title><link>https://tonybai.com/2009/03/22/also-talk-about-debugging-software/</link><pubDate>Sun, 22 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/22/also-talk-about-debugging-software/</guid><description>每年二月末到三月初，公司都会安排一批实习生到各个部门实习。虽说去年经济危机了，但公司的实习生数量似乎并没有减少。起码我们部门&amp;#34;新同事&amp;#34;的数量基本与去年持平。按惯例，每位新同事都会有一名导师，与此同时各个部门还会根据自身的业务特点对这批学生进行有针对性的集中培训和交流。比起我入司那会儿，现在的实习生已经算是幸福多了。我那会儿实习生人数少，部门没有安排什么培训，完全靠导师安排自己努力学习。此次培训的内...</description></item><item><title>发掘Trac</title><link>https://tonybai.com/2009/03/18/learn-trac/</link><pubDate>Wed, 18 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/18/learn-trac/</guid><description>使用何种工具做Feature或Defect或Task的跟踪一直是挺让我闹心的一件事。用Excel记录，但却不便于共享、统计和直观展示；Jira算是做的好的工具之一了，但无奈它是商业软件，咱没付那份儿钱，所以也就&amp;#34;无福享用&amp;#34;；Mingle是著名的Thoughtworks公司的产品，虽说不到5个license是可以免费使用的，但它却是出了名的&amp;#34;内存杀手&amp;#34;，无奈我的机器配置太差，运行起来实在太慢，遂没有...</description></item><item><title>梅西·滑雪式入球打爆里昂</title><link>https://tonybai.com/2009/03/12/europe-barca-vs-lyons/</link><pubDate>Thu, 12 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/12/europe-barca-vs-lyons/</guid><description>巴萨国王梅西打入本轮冠军杯最佳入球，巴萨主场打爆法甲七冠王里昂，晋级八强。 2009年3月12日凌晨3点45分（北京时间），西甲豪门巴萨坐镇诺坎普迎来了法甲七冠王里昂的挑战。在八强战首回合比赛中，处于低靡期的巴萨在客场1:1艰难战平里昂，获得一个宝贵的客场进球。本场比赛前巴萨刚刚打入国王杯决赛，并且在西甲第26轮比赛中2:0击败毕尔巴鄂竞技获得近五轮比赛来的首场胜利，球队正在逐渐走出低靡。更重要的...</description></item><item><title>梅西·点杀锁胜局巴萨复活</title><link>https://tonybai.com/2009/03/08/barca-vs-athletic_bilbao/</link><pubDate>Sun, 08 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/08/barca-vs-athletic_bilbao/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>惊蛰日身边事小记</title><link>https://tonybai.com/2009/03/05/small-things-during-jingzhe/</link><pubDate>Thu, 05 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/05/small-things-during-jingzhe/</guid><description>今天是3月5日，雷锋纪念日，36年前的今天，伟大领袖毛主席亲笔写下：“向雷锋同志学习”。对于雷锋，相信80年代前期出生的人都应该不陌生，记得小时候经常会被要求在全班同学面前讲雷锋的故事，那也是我最头疼的事，最不会讲故事了^\_^。 梅西进球了，巴萨晋级了。在今天凌晨举行的西班牙国王杯半决赛第二回合比赛中，巴萨客场1:1逼平马洛卡，以两轮3:1的总比分晋级决赛。值得一提的是巴萨国王梅西连续两轮比赛都...</description></item><item><title>梅西·扳平球助巴萨进决赛</title><link>https://tonybai.com/2009/03/05/cup-semifinal-mallorca-vs-barca/</link><pubDate>Thu, 05 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/05/cup-semifinal-mallorca-vs-barca/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>梅西·破进球荒无奈被逆转</title><link>https://tonybai.com/2009/03/02/atletico_madrid-vs-barca/</link><pubDate>Mon, 02 Mar 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/03/02/atletico_madrid-vs-barca/</guid><description>梅西已经有整整一个月没有联赛进球了！这的确让人难以置信！不过事实就是如此，自从第21轮客场对阵桑坦德竞技一役梅西替补出场打入两球（其中第二粒进球是巴萨联赛史上的第5000粒进球）后，阿根廷天才就再也没能攻破对方球门。这让全世界关心巴萨、关心梅西的球迷实在难以接受，似乎联赛上半轮那个无所不能的梅西顿然间消失了。在梅西“停火”期间，巴萨也陷入低靡期，在联赛中仅取得了一平一负的糟糕战绩，领先优势也缩小至...</description></item><item><title>“扶正”Bash Shell</title><link>https://tonybai.com/2009/02/27/make-bash-my-default-shell/</link><pubDate>Fri, 27 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/27/make-bash-my-default-shell/</guid><description>近日，Bash Shell正式发布了其4.0版本，该版本可以看作3.x的bugfix版，同时增加了诸如&amp;#34;Associative Arrays&amp;#34;等新特性。在Bash Shell的官方站点你可以下载到最新的4.0版本，不过在GNU的Bash主页上，似乎还找不到4.0版本的所在。Bash作为Linux系统默认Shell，一直受到广泛关注，而且它还是目前几大Shell(Bourne Shell, C Sh...</description></item><item><title>“中国人史纲”和ThinkPad红点背包</title><link>https://tonybai.com/2009/02/26/an-outline-history-of-china-and-thinkpad-pack/</link><pubDate>Thu, 26 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/26/an-outline-history-of-china-and-thinkpad-pack/</guid><description>“中国人史纲”和“ThinkPad红点背包”，这两个八杆子也打不到的东西被我搁在一起放到本篇文章的题目中，这都源于近期的网购。 上下班一直拎着公司配发的又重又难看的单肩包，早有换掉它的计划。平时忙，虽说有三好街这样的电脑配件集中的&amp;#34;大集市&amp;#34;，但也很少去“逛”，记忆中应该有一年多没有去过三好街了；在网购越来越“红火”的今天，我也选择了后者。上周六在“京东商城”看到了一款TARGUS代工的ThinkP...</description></item><item><title>CSCOPE使用中问题小解</title><link>https://tonybai.com/2009/02/23/solve-some-problems-when-using-cscope/</link><pubDate>Mon, 23 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/23/solve-some-problems-when-using-cscope/</guid><description>拥有了某种工具，往往不等于就能使用好这种工具。拥有工具简单，用好工具、发挥出最大作用则较难。CSCOPE让VIM的使用者有了与SourceInsight&amp;#34;平起平坐“的机会，但是能否将CSCOPE的功能发挥出来还要看你是如何使用它了。 自从VIM”重装上阵“以后，我一直在使用CSCOPE。在使用过程中还是发现了一些”别扭“的事情。一般我会在一个大型Project的源代码的顶层目录使用CSCOPE -...</description></item><item><title>梅西·国王低靡巴萨亦低靡</title><link>https://tonybai.com/2009/02/15/barca-vs-espanyol/</link><pubDate>Sun, 15 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/15/barca-vs-espanyol/</guid><description>无轮2008-09赛季巴萨最终拿到零冠还是一冠，亦或两冠还是三冠，2009年二月份的下半月注定都是让巴萨众将士以及全世界的巴萨球迷们难以忘怀的日 子。两平一负，这样的战绩即使是在瓜迪奥拉执教巴萨的联赛初期都不曾有过，要知道巴萨在本赛季联赛前三轮的磨合期期间也是拿到了一胜、 一平、一负的。 2009年2月15日，洛佩拉球场险平贝蒂斯； 2009年2月22日，诺坎普主场26年来首负“副班长”西班牙人；...</description></item><item><title>梅西·亮相洛佩拉未演神奇</title><link>https://tonybai.com/2009/02/15/betis-vs-barca/</link><pubDate>Sun, 15 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/15/betis-vs-barca/</guid><description>2009年2月15日凌晨3点（北京时间），2008-09赛季西班牙甲级联赛第23轮拉开战幕，联赛领头羊巴塞罗那队做客洛佩拉体育场迎战皇家贝蒂斯。 本周中巴萨一线队中15名球员入选各自国家队参加了国际足球比赛日那天的国家队比赛，一支被“FIFA病毒”侵袭过的疲劳的巴萨能否在贝蒂斯的魔鬼主场取 得比赛胜利是赛前大家都关注的问题。巴萨近几年在洛佩拉的战绩处于下风，这也给这场比赛带来了诸多的悬念。另外还值...</description></item><item><title>梅西·入制胜球两星胜一星</title><link>https://tonybai.com/2009/02/12/barca-vs-racing_santander-2/</link><pubDate>Thu, 12 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/12/barca-vs-racing_santander-2/</guid><description>2009年2月12日（北京时间）凌晨4点，国际足球比赛日迎来一场焦点之战，两星劲旅潘帕斯高原的蓝白军团阿根廷队做客马赛迎战高卢雄鸡一星法国队。众所周知本支阿根廷队中最大牌的人物某过于主帅马拉多纳了，这个国际公认的球王在赛前可以说是抢足了风头，就连当今地球上现役球员中状态最好、人气最旺的梅西也 无法企及^\_^，想必这是在以往任何球队中都少见的现象。本场比赛是“马大帅”执教以来的第二场国家队比赛，同...</description></item><item><title>梅西·巧助攻难掩兴奋不足</title><link>https://tonybai.com/2009/02/09/barca-vs-gijon-2/</link><pubDate>Mon, 09 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/09/barca-vs-gijon-2/</guid><description>2009年2月9日凌晨2点（北京时间），西班牙足球甲级联赛第22轮巴萨主场迎来了升班马希洪竞技队的 挑战。在本赛季第三轮两队的首度较量中，巴萨曾经在希洪竞技的主场以6:1的大比分拿对手“祭旗”，赢得巴萨本赛季的首场胜利。同时那场大胜也一扫巴萨赛 季开局不利的阴霾，拉开了巴萨领跑欧洲联赛的大幕。本场比赛开场前，球队在容纳近10万人的诺坎普体育场举行了一个小型的庆祝仪式，庆祝巴萨在上一场与桑 坦德竞技...</description></item><item><title>“梅西本纪”开张了！</title><link>https://tonybai.com/2009/02/04/start-to-write-the-biography-of-leomessi/</link><pubDate>Wed, 04 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/04/start-to-write-the-biography-of-leomessi/</guid><description>本人非常喜欢看足球比赛，年轻的时候(现在也不是很老哦^\_^)喜欢踢足球，高中、大学时尤其爱踢。本人喜欢蓝白军团阿根廷队，这也源于最初对球星巴蒂斯图塔的热爱，巴蒂可是我的第一个足球偶像哦，但无奈偶像巴蒂已经退役。不过经历了多年(大约三年)的寻觅，同样是来自阿根廷的球员，来自潘帕斯高原的精灵，年轻的足球天才-梅西进入了我的视野，从2005年的世青赛、2006年世界杯直至2008年北京奥运会，梅西的优...</description></item><item><title>梅西·右脚两球演绎救世主</title><link>https://tonybai.com/2009/02/02/racing_santander-vs-barca/</link><pubDate>Mon, 02 Feb 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/02/02/racing_santander-vs-barca/</guid><description>2009年2月2日凌晨0点整（北京时间），2008-09赛季西甲联赛第21轮的一场关键战役打响，领头羊巴塞罗那队做客沙丁鱼人球场挑战近来状态甚好的桑坦德竞技，后者在最近七轮比赛中取得了不败战绩。此役前巴萨在国王杯四分之一决赛中主场3:2险胜西班牙人队晋级四强，那场比赛梅西打 满全场，所以梅西本场轮休坐在替补席上，老队长后防中坚普约尔因伤将休战几周时间。近来巴萨虽然在各条战线未尝败绩，仍然被外界媒体...</description></item><item><title>梅西·疲态显现巴萨险晋级</title><link>https://tonybai.com/2009/01/30/cup-4th-final-barca-vs-espanyol/</link><pubDate>Fri, 30 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/30/cup-4th-final-barca-vs-espanyol/</guid><description>西班牙豪门巴塞罗那队是 到目前为止2008-09赛季欧洲足球五大联赛中表现最优秀和最稳定的球队。联赛以53分高居榜首，领先第二名皇家马德里12分之多；国王杯赛淘汰马德里竞技晋级八强；欧冠联赛一小组第一的身份晋级，16强战对手还是实力稍逊的法甲冠军里昂队；巴萨本赛季的目标就是冲击球队史无前例的“三冠王”，这一切看 上去都很美。但球队毕竟是由一个个球员组成的，球员们的状态不能一直处在高峰，势必也会有短...</description></item><item><title>梅西·两射一传献牛年礼包</title><link>https://tonybai.com/2009/01/25/barca-vs-numancia/</link><pubDate>Sun, 25 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/25/barca-vs-numancia/</guid><description>2009年1月25日凌晨5点（北京时间），号称目前拥有全欧洲甚至全世界最强攻击力的巴萨在主场诺坎普体育场迎战努曼西亚。这场比赛有着几个特殊意义：第一，它是西甲下半程的第一场比赛；第二，对手努曼西亚也是上半程唯一让巴萨缴械的球队，所以这场比赛也被外界看作是巴萨的复仇之战；第三，1月25日是中国传统农历牛年的除夕，希望巴萨能用一场大胜为广大中国球迷们献上牛年大礼。 虽然今天是中国农历大年三十，但相信众...</description></item><item><title>梅西·天才少年西甲首亮相</title><link>https://tonybai.com/2009/01/23/messi-first-match-in-lfp-for-barca/</link><pubDate>Fri, 23 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/23/messi-first-match-in-lfp-for-barca/</guid><description>2004年10月17日（北京时间）凌晨4时，对于普通人来说这一天的这一时刻再普通不过了，但对于全世界的“梅西迷”们来说，它却绝对是值得大家兴奋和牢记的一天。因为在这一天，大家喜爱和支持的天才少年梅西（Lionel Messi）第一次代表巴萨在西甲的赛场上亮相了。 这是2004-05赛季西甲联赛第7轮比赛中的一场焦点之战，巴萨坐镇主场诺坎普体育场迎战同城对手西班牙人队，德比战的激烈程度向来都是值得称...</description></item><item><title>梅西·二线低靡国王难出彩</title><link>https://tonybai.com/2009/01/22/cup-4th-final-espanyol-vs-barca/</link><pubDate>Thu, 22 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/22/cup-4th-final-espanyol-vs-barca/</guid><description>2009年1月22日凌晨05:00（北京时间），2008-09赛季国王杯四分之一决赛首轮比赛拉开大幕。巴塞罗那队做客奥林匹克球场（Estadi Olímpic Lluís Companys）挑战同城兄弟西班牙人队（Espanyol）。巴萨刚刚在西甲上半程最后一轮比赛中以5:0大胜拉科鲁尼亚队，士气正盛。主教练瓜迪奥拉（Josep Guardiola）继续他的轮换制度，本场比赛只保留普约尔（Carl...</description></item><item><title>第一次滑雪</title><link>https://tonybai.com/2009/01/18/the-experience-of-skiing-for-the-first-time/</link><pubDate>Sun, 18 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/18/the-experience-of-skiing-for-the-first-time/</guid><description>如果你还没有体验过滑雪运动，那么我建议你去玩一次，这不昨天我们组织了一次滑雪活动，地点：弓长岭滑雪场。在短短的5个小时的第一次体验之后，我就爱上这项刺激的运动了，以至于不到导游规定的上车时间我是不会拖到滑雪板的^\_^ 农历春节放假前最后一次集体活动，一行八人，跟团走。弓长岭滑雪场号称辽宁省最大雪场，不知道是否只是宣传语。我也是第一次滑雪，没去过其他雪场，也就无法做横向比较了。不过说这个滑雪场是最...</description></item><item><title>梅西·精灵开罐巧射破拉科</title><link>https://tonybai.com/2009/01/18/barca-vs-deportivo/</link><pubDate>Sun, 18 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/18/barca-vs-deportivo/</guid><description>2009年1月18日凌晨3点（北京时间），西班牙甲级联赛（La Liga）拉开了2009-09赛季上半程最后一轮-第19轮的大幕， 西甲领头羊巴塞罗那（FC Barcelona）坐镇诺坎普体育场（Camp Nou Stadium）迎战中游球队拉科鲁尼亚（Deportivo），梅西（Lionel Messi）领衔巴萨三叉戟埃托奥（Samuel Eto’o）和亨利（Thierry Henry）首发出场...</description></item><item><title>梅西往事·世界杯首例入球</title><link>https://tonybai.com/2009/01/14/the-story-of-leomessi-his-first-goal-of-worldcup/</link><pubDate>Wed, 14 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/14/the-story-of-leomessi-his-first-goal-of-worldcup/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>梅西，2009我们从头再来</title><link>https://tonybai.com/2009/01/13/leomessi-start-again-from-scratch-on-2009/</link><pubDate>Tue, 13 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/13/leomessi-start-again-from-scratch-on-2009/</guid><description>随着FIFA 2008世界足球先生最终结果的揭晓，梅西继欧洲金球奖排名次席之后连续拿下了第二个“老二”奖项，没能实现2008最大逆转。单凭个人魅力而言，从FIFA官方的网络调查可以看出，梅西人气远超C.罗，但人气毕竟只是人气，决定权还在FIFA手中。而从球队成绩来看，巴萨在2008的颗粒无收给梅西拖了后腿。 2008已经过去，2009梅西从头再来。2009伊始，梅西就给我们带来了一个帽子戏法和一个...</description></item><item><title>梅西·传射建功逆转副班长</title><link>https://tonybai.com/2009/01/12/osasuna-vs-barca/</link><pubDate>Mon, 12 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/12/osasuna-vs-barca/</guid><description>2009年1月12日凌晨4点（北京时间），西甲联赛第18轮领头羊巴萨做客纳瓦拉（Reyno de Navarra）体育场（又称为萨达尔体育场）迎战联赛排名倒数第一的“副班长”奥萨苏纳队（CA Osasuna）。梅西因航班延误而错过了上一场对阵皇家马洛卡（RCD Mallorca）的比赛，本场比赛是梅西在2009年的第一场联赛比赛。在几天前举行的国王杯八分之一决赛巴萨客场挑战马德里竞技的比赛中，梅西...</description></item><item><title>2008年FIFA世界足球先生网调结果</title><link>https://tonybai.com/2009/01/11/the-internet-survey-result-of-2008-fifa-world-player/</link><pubDate>Sun, 11 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/11/the-internet-survey-result-of-2008-fifa-world-player/</guid><description>2008年国际足坛最后一个个人大奖即将于苏黎世当地时间2009年1月12日 20:00(北京时间1月13日凌晨3点整)产生，FIFA在其官方网站上设置了世界足球先生的网络调查，截至北京时间2009-01-11 18:00，网调结果如下图: 最近刚在国王杯上演帽子戏法的Lionel Messi暂时领先于C.罗纳尔多、卡卡、托雷斯和队友哈维。但网调不是最终结果，巴萨10号梅西到底能否上演2008最大逆...</description></item><item><title>第一次弯弓射箭</title><link>https://tonybai.com/2009/01/08/the-experience-of-archery-for-the-first-time/</link><pubDate>Thu, 08 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/08/the-experience-of-archery-for-the-first-time/</guid><description>今晚和同事一起去射箭，没错，是射箭。射箭运动在国内兴起不算太久，应该还是近几年的事情。一位新同事前几天发现了一个射箭馆，遂组织大家下班后去射箭。以前没有射过箭，也不甚关心。但自从2008年奥运会看到巾帼张娟娟先后战胜韩国三位顶级选手而勇夺冠军的直播后，自己也对弯弓搭箭起了兴致，这次是个机会，很多人和我一样都想去试试。 十个人，两台车，来到了一家叫&amp;#34;威克特锐&amp;#34;的射箭馆，位置在兴工南街上，在兴工街交通...</description></item><item><title>梅西·巴萨新国王正式加冕</title><link>https://tonybai.com/2009/01/07/cup-atletico_madrid-vs-barca/</link><pubDate>Wed, 07 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/07/cup-atletico_madrid-vs-barca/</guid><description>2009年1月7日凌晨3点（北京时间），西班牙国王杯（Copa del Rey）八分之一决赛首回合比赛正式打响，已经锁定2008-09赛季西甲联赛（La Liga）半程冠军的巴塞罗那队（FC Barcelona）做客卡尔德隆球场（Vicente Calderón Stadium）挑战马德里竞技队（Atlético Madrid）。这是2009年巴萨的第一场正式比赛，也是2009年天才球员梅西（Li...</description></item><item><title>又见梅西上演帽子戏法</title><link>https://tonybai.com/2009/01/07/leo-messi-play-another-hat-trick/</link><pubDate>Wed, 07 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/07/leo-messi-play-another-hat-trick/</guid><description>西班牙国王杯的赛程真是难找，看直播也就更难了。昨天下班前才在新浪体育了解到晚上巴萨可能有国王杯的比赛，又到巴萨中文网寻了一圈，才把&amp;#34;可能&amp;#34;变为&amp;#34;确定&amp;#34;。今早起来迫不及待的打开笔记本&amp;#34;敲开&amp;#34;新浪体育首页，一行红字&amp;#34;国王杯-梅西帽子戏法&amp;#34;登时&amp;#34;窜入&amp;#34;眼帘^\_^。 上一次梅西在巴萨的帽子戏法是在06-07赛季主场与皇家马德里的比赛中上演的，时隔两年梅西再次给巴萨球迷们献上了厚礼，也使他个人在08-09...</description></item><item><title>幸福从哪儿来？</title><link>https://tonybai.com/2009/01/06/where-is-the-happiness-from/</link><pubDate>Tue, 06 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/06/where-is-the-happiness-from/</guid><description>下班班车上总能收到在中国移动定制的手机晚报，今天在手机晚报的&amp;#34;测吧&amp;#34;上看到这样一则测试题，摘录如下： \&amp;gt;&amp;gt; 你的幸福从哪儿来？ 假设你与恋人到海边漫步，你觉得你们正在欣赏什么样的景色呢？ A、满天星星 B、夕阳 C、日出 D、沙滩聚会 我毫不犹豫选了B。(如果你第一次看到这道题，你不妨试试，先不要看下面的答案^\_^) 选B：你的幸福来源：智慧之泉       你认为人类得到上天给予的智慧，就是...</description></item><item><title>2009·第一个工作日</title><link>https://tonybai.com/2009/01/04/2009-the-first-working-day/</link><pubDate>Sun, 04 Jan 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/01/04/2009-the-first-working-day/</guid><description>2009年的第一个工作日，一切尽在平淡中度过。 往往大家都有这样的体会，那就是&amp;#34;长假“过后的第一个工作日身体多不在状态，假期中身体的懒散的惯性还没有彻底消除掉，也许脑子里还在回忆着与亲人朋友聚会时的那抹快意。但元旦后上班的第一天或许有些不同，毕竟这是新年后在同事面前的第一次亮相，要有蓬勃向上的气质和神态^\_^。 晨会上，组内同事围在椭圆会议桌，大家似乎都较为沉默，要不是我打开话题，各位似乎还停留...</description></item><item><title>VIM“重装上阵”</title><link>https://tonybai.com/2008/12/30/in-depth-study-vim/</link><pubDate>Tue, 30 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/30/in-depth-study-vim/</guid><description>国内很多学习Python的人都喜欢看&amp;#34;A Byte of Python&amp;#34;，这是一本由印度小伙儿Swaroop C H写的书，之所以受到大家关注和欢迎，想必其简单而实用的写作风格是其中的重要原因吧，作为入门书很适合。我的Laptop中就有一本中文翻译版，不过书中用的还是Python 2.3.4版本。本月3日(2008-12-3)Python 3.0 Release版祭出，Swaroop C H也在其...</description></item><item><title>做了一回“圣诞老人”</title><link>https://tonybai.com/2008/12/25/play-as-a-santa-claus/</link><pubDate>Thu, 25 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/25/play-as-a-santa-claus/</guid><description>今天是圣诞节。往年圣诞节那天部门总会举行一个庆祝活动，活动中每个人都能抽到自己心仪的礼品作为圣诞礼物，还有美味的蛋糕分享。然而今年再也没有这种“好事”了，由于经济危机的影响，公司三令五申的要求各个部门“勒紧裤腰带过穷日子”。我们的圣诞庆祝活动就这样被Cancel了。 昨天下午突然有了一个想法：部门不活动，我们项目组自己搞，不能让大家在圣诞节产生“失落感”。就这样和我们组内的&amp;#34;CCO（首席文化官^\...</description></item><item><title>曙光</title><link>https://tonybai.com/2008/12/23/the-dawn/</link><pubDate>Tue, 23 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/23/the-dawn/</guid><description>近一两年来我在博客少有提及公司项目的事情，除了一些技术bug引起我对问题的思考。这样一是为了“避嫌”，公司年初发生了多次因员工在个人博客泄露源代码或者客户资料的事件，公司管理层也加强了对公司“信息安全”的管理，无非是学习华为那一套-“封锁”：使用websense限制员工上外网，使用桌面监控系统监控员工电脑系统，封掉一切可能泄露机密信息的接口。还特地发挥了一下“数字课件”部门兄弟们的聪明才智，搞了一...</description></item><item><title>使用Scons改造现有项目</title><link>https://tonybai.com/2008/12/21/use-scons-to-build-current-projects/</link><pubDate>Sun, 21 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/21/use-scons-to-build-current-projects/</guid><description>今天是冬至，也是入冬以来感觉最冷的一天，毫不夸张的说：你一张嘴，牙就冻上了。上午LP在家收拾卫生，我继续用Scons改造现有的项目。下午出去理发，头发长长了后，似乎会造成思维迟钝^\_^。 试验性的用Scons改造现有的project，过程中对Scons了解又多了一些。上篇文章对Scons的性能没有给出定论，经过对Scons的深入后，发现Scons在执行初始时的性能的确不够快，这是因为Scons启...</description></item><item><title>为Ubuntu下的Firefox提速</title><link>https://tonybai.com/2008/12/17/accelerate-the-firefox-on-ubuntu/</link><pubDate>Wed, 17 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/17/accelerate-the-firefox-on-ubuntu/</guid><description>部门的一套基础库刚刚移植到Linux上，为了测试该库，我将工作环境切换到了Ubuntu Linux下面。切换后居然发现Ubuntu下的Firefox访问网页巨慢无比，Firefox显示时明时暗，总是被挂起。同样的公司网络环境在Windows下使用Firefox访问互联网很顺畅，没有卡的现象。看来是时候给Ubuntu下的firefox提提速了。 Google了一下才发现反映类似现象的人为数不少啊，在...</description></item><item><title>发掘Scons</title><link>https://tonybai.com/2008/12/14/learn-scons/</link><pubDate>Sun, 14 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/14/learn-scons/</guid><description>发现或者说知道SCons是缘于Google的comp.lang.c group上的一则名为&amp;#34;Best Build Tool for large C projects &amp;#34;的帖子，帖子的作者列出了11条他认为&amp;#34;Best Build Tool&amp;#34;应该具备的特点，并欲找到这样的Build Tool。在该帖子的回复中，有人提到了Scons，说来惭愧，这是我第一次听说到有这样一个工具。一直在Unix下编写C程序...</description></item><item><title>看西班牙国家德比需要耐心</title><link>https://tonybai.com/2008/12/14/you-should-be-patient-when-watching-spanish-national-derby/</link><pubDate>Sun, 14 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/14/you-should-be-patient-when-watching-spanish-national-derby/</guid><description>在今晨的西班牙国家德比之前，我在饭否留下这样一条信息：&amp;#34;Barcelona vs. Real Madrid，比赛未结束前一切皆有可能&amp;#34;。而国家德比的过程也正如我所料，一切皆有可能，不过需要耐心的等待。 昨晚就把闹钟定到了今晨5点，闹钟响了，在床上左右翻转后还是决定起来看西班牙国家德比，毕竟特别喜欢梅西，因梅西而逐渐开始喜欢巴萨。但因西甲联赛的比赛时间特别晚，一般都在北京时间凌晨以后，所以我很少能坚...</description></item><item><title>地热维修小记</title><link>https://tonybai.com/2008/12/10/maintain-the-terrestrial-heat-of-my-house/</link><pubDate>Wed, 10 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/10/maintain-the-terrestrial-heat-of-my-house/</guid><description>东北地区早已进入寒冬，前些阶段外面的温度已经降到了零下22度，而我家里的温度也从+25度降到了+20度了。以前在屋里可以只穿睡衣睡裤，现在不行了，套上一套毛衣毛裤后，如果在沙发上坐的时间长了也会感觉有些凉嗖嗖的。每天上下班都摸一下地热的进出水管，进水管很热，出水管一直没感觉，真希望有一天出水管也能热起来，但是这一天还是没有到来。终于下定决心要把地热搞定，遂电话到物业处预约维修，由于维修的预约较多，...</description></item><item><title>常量类型的识别-一个小例子</title><link>https://tonybai.com/2008/12/02/an-example-for-recognizing-the-const-variable/</link><pubDate>Tue, 02 Dec 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/12/02/an-example-for-recognizing-the-const-variable/</guid><description>今天闲时写了一个Demo测试程序，目的：测试64位编译下使用mmap映射共享内存的能力。程序很简单，大致如下结构： #define MAP\_SPACE\_SIZE  (4\*1024\*1024\*1024) unsigned long int ms\_sz = MAP\_SPACE\_SIZE; …. …. ptr = mmap( NULL, ms\_sz, PROT\_READ|PROT\_...</description></item><item><title>这张梅西的照片我最喜欢</title><link>https://tonybai.com/2008/11/18/i-like-this-picture-of-leo-messi-most/</link><pubDate>Tue, 18 Nov 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/11/18/i-like-this-picture-of-leo-messi-most/</guid><description>这幅图片是梅西2008-09赛季对阵维尔瓦打入世界波进球后的庆祝场面，图片中梅西的姿态很舒展，面目很清晰，在新浪体育的评论栏中居然有网友说这里的梅西像哈利波特^\_^。另外2008-09赛季巴萨的队服我也甚是喜欢。不知道真品巴萨队服(M10的)是不是很昂贵呢，以前没有关注过。 注：图片来源于新浪体育</description></item><item><title>四谈内存对齐</title><link>https://tonybai.com/2008/11/17/httptonybai-com20061208talk-about-memory-alignment-the-4th-time/</link><pubDate>Mon, 17 Nov 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/11/17/httptonybai-com20061208talk-about-memory-alignment-the-4th-time/</guid><description>最近在思考改进项目中一模块的实现，该模块维护起来让我很是头疼，所有才有了整体换掉它的想法。设计和实现中利用了内存对齐的技术。关于内存对齐，我曾经写过三篇文章，第一篇介绍了计算内存对齐的方法和例子，第二篇说了一个内存对齐的应用；三谈内存对齐时，则从其本质上做了阐述，而这次实际上是继续在其本质上的做文章，结合本质谈谈为什么内存对齐的计算方法就应该是第一篇中所讲的那两条。 如果对内存对齐本质还不清楚的话...</description></item><item><title>被推荐为最具Bus气质的优秀Blogger首批参选者</title><link>https://tonybai.com/2008/11/14/being-one-of-the-candidates-of-excellent-bloggers-on-blogbus/</link><pubDate>Fri, 14 Nov 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/11/14/being-one-of-the-candidates-of-excellent-bloggers-on-blogbus/</guid><description>下班回家，坐在沙发上抱着本本打开&amp;#34;Bus&amp;#34;的后台管理中心，发了一篇文章后，发现居然有5条短消息未读。遂打开查看。发现其中有一条题为&amp;#34;恭喜您被推荐为‘全球最具Bus气质的Blogger’&amp;#34;的消息，而且是&amp;#34;blogbus&amp;#34;发来的，看第一眼很兴奋，后一想是不是Bus在后台给每个bus用户群发的消息呢。再往上又看到一条&amp;#34;BlogBus六周年庆典开始啦!&amp;#34;的消息，里面恰好有一个&amp;#34;全球最具Bus气质的Blog...</description></item><item><title>说说年假</title><link>https://tonybai.com/2008/11/14/thoughts-on-pay-vacation/</link><pubDate>Fri, 14 Nov 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/11/14/thoughts-on-pay-vacation/</guid><description>快到年根儿了，劳顿了一年的同事们坐在一起突然提到了年假，很多同事今年的年假还没有休呢，这里也包括我自己。去年国家新出台的劳动法非但没让我们多享受到更多的假期，反倒使我们的福利&amp;#34;缩水&amp;#34;了。今天年初公司内部还因为此事闹得很不愉快，具体情况这里就不说了。大家更关心的是如果今年不休年假是否确定拿到法定的经济补偿，因为去年很多没休年假的人也没得到什么好处。 入司已经有几个年头了，但回过头来却发现自己从来没有...</description></item><item><title>代码评审·CC2e·断言·其它</title><link>https://tonybai.com/2008/11/13/coding-review-and-cc2e-and-assertion-and-others/</link><pubDate>Thu, 13 Nov 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/11/13/coding-review-and-cc2e-and-assertion-and-others/</guid><description>一口气读了七章&amp;#34;Code Complete 2nd(以下称CC2e)&amp;#34;中的内容，从第七章的&amp;#34;高质量的子程序&amp;#34;到第十三章的&amp;#34;不常见的数据类型&amp;#34;。之所以一口气读这么多，是因为被其中的内容吸引了。这两天的下午一直在做代码评审，所以晚上看CC2e的时候，思维不停的在项目代码和书中内容之间跳转。一直把&amp;#34;代码大全2nd&amp;#34;当作一门百科全书式的手册类图书，买回来后一直陈放在书架上没有问津。直到今天在考虑一个关于断...</description></item><item><title>离开太原</title><link>https://tonybai.com/2008/10/31/leave-taiyuan/</link><pubDate>Fri, 31 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/31/leave-taiyuan/</guid><description>飞机缓缓的降落在沈阳桃仙机场，我完成了近10天的出差任务，终于回到家了。沈阳的温度和太原相比还是有些低的。坐大巴到马路湾，打车回家。家里还未给供暖，身体感觉有些凉，还好心还是温暖的，毕竟到家了，回家的感觉真好。 今天上午应客户要求做一个产品升级后的培训，这可是出差期间的最后一个任务了。早上7:30起床，洗漱后下楼吃早饭。9:00出发直奔客户的大楼。我们一行四人，还有两位技术支持工程师去客户那参加一...</description></item><item><title>游永祚寺和迎泽公园</title><link>https://tonybai.com/2008/10/26/the-tour-of-two-tower-temple-and-yingze-park/</link><pubDate>Sun, 26 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/26/the-tour-of-two-tower-temple-and-yingze-park/</guid><description>今天是周日，本打算在酒店休息一天，并把下周要进行的工作好好计划一下的。但是同事在耳边不断&amp;#34;扇风&amp;#34;让我也动了心。毕竟太原市内还有双塔寺和迎泽公园没有去逛呢，下周就要回沈阳了，估计没机会出去玩了。午饭后，我们出发了。 双塔寺是人们的俗称，其真正的名字是&amp;#34;永祚寺&amp;#34;。在火车站广场做812或820花费1.5元都可以直达。目前是淡季，绝对的淡季，到永祚寺游览的游客屈指可数啊。寺院不大，如果走马观花的话，30分...</description></item><item><title>太原晋祠游记</title><link>https://tonybai.com/2008/10/25/the-tour-of-jin-memorial-hall-of-taiyuan/</link><pubDate>Sat, 25 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/25/the-tour-of-jin-memorial-hall-of-taiyuan/</guid><description>初到晋地，又逢周末；和同事商量好拿出一天时间放松。我个人每到一个新的地方一般都是要去这个省的博物馆看看的，所以山西省博物馆就成为了必选目标。博物馆一般很短时间就可以逛完，我们还要选择另外一个景点游览。在山西太原，几乎所有人都推荐去晋祠。到山西太原不到晋祠就好比到首都北京不到长城一样。而且据说晋祠这个景点还是不错的，这样我们就确定了今天的行程：晋祠+山西省博物院。 由于考虑到这两个景点游览时间都不是...</description></item><item><title>初到山西</title><link>https://tonybai.com/2008/10/22/first-trip-to-shanxi/</link><pubDate>Wed, 22 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/22/first-trip-to-shanxi/</guid><description>因工作原因，和同事到山西出差，目的地太原。从沈阳飞往太原的航班不多，出发时间也不甚好，不是太早就是太晚，机型多为老旧的波音的M90，从这方面也可以看出太原这座城市在中国的省会城市中的地位。早上六点，送机场的司机已经在我家小区门口等候了。由于还要同时接几个其他部门的同事，车在市内转悠了大约1个半小时，到机场的时候，离我们的飞机起飞还有不到40分钟了。按照常理这个时间比较紧促，不过还不至于赶不上飞机。...</description></item><item><title>秋游关门山</title><link>https://tonybai.com/2008/10/20/a-tour-of-guanmen-mountain-in-autumn/</link><pubDate>Mon, 20 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/20/a-tour-of-guanmen-mountain-in-autumn/</guid><description>十一之前就计划组织一次项目组活动，由于各种原因没能成行。十一之后，我的想法和我们组内的&amp;#34;CEO-Chief Entertainment Officer”不谋而合，即入冬之前出去玩一次。深秋季节，省内短程旅游是我们首选。而这个季节的最佳目的地就是有着&amp;#34;东北小黄山&amp;#34;之称的关门山。北京有香山，东北有关门山，我们此行就是为了那红彤彤的枫叶，听起来很美哦。经过报名，统计等流程，我们最终筛选出9位登山“勇士+...</description></item><item><title>重返足球场</title><link>https://tonybai.com/2008/10/16/return-back-to-football-field/</link><pubDate>Thu, 16 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/16/return-back-to-football-field/</guid><description>在巴西举行的五人制室内世界杯足球赛激战正酣，我们部门内部同事也开始&amp;#34;蠢蠢欲动&amp;#34;了(真实情况是：大家纯粹是为了锻炼身体，活跃气氛^\_^)，叫嚣着组织内部对抗赛-开发部内部两大项目组对抗，而且计划将对抗赛作为部门内部活动长期举办下去。对抗赛给了我重返足球场的机会啊，这不今天是就是系列对抗赛首场比赛的比赛日。 在不知情的情况下，我就被组织者任命为了其中一个队的队长，无奈硬着头皮干吧。自从大三的时候一次...</description></item><item><title>国民素质·信息化·效率</title><link>https://tonybai.com/2008/10/15/national-quality-and-information-and-efficiency/</link><pubDate>Wed, 15 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/15/national-quality-and-information-and-efficiency/</guid><description>今天身体不适，已经和领导打了招呼，先去医院看病，然后在家里SOHO。 从医院回来，顺便路过银行把今年冬天的采暖费交上。今年煤和石油的价格都狂涨，不过目前采暖费还没有上调，据说沈阳市政府正在起草方案，准备听证，涨估计是肯定的了，大家最关心的还是涨多少的问题。涨得太多，很多老百姓肯定是承受不了的。我个人认为整个中国只有北方有采暖，这笔钱就应该是政府全部解决掉的，不应该由老百姓承担。而现状是政府部门的职...</description></item><item><title>分布式编译让你的工作更高效</title><link>https://tonybai.com/2008/10/14/distributed-compiling-make-you-work-more-effectivly/</link><pubDate>Tue, 14 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/14/distributed-compiling-make-you-work-more-effectivly/</guid><description>随着工程代码量的增加，往往完整的编译一次Proj消耗的时间可能足够你喝两杯咖啡了，我现在build一次我所在proj的代码需要5分多钟，这是很痛苦的，颇让人懊恼的。为了解决这个工作中的别扭事儿，我在网上搜寻了一番，找到了distcc这个分布式编译工具。 先看看distcc能帮助我节省多少时间吧。我在公司的一台Sun SPARC Solaris9主机下对整个项目源代码按照以前的编译方式进行了一次bu...</description></item><item><title>领导意志</title><link>https://tonybai.com/2008/10/11/the-leader-will/</link><pubDate>Sat, 11 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/11/the-leader-will/</guid><description>昨天是周五，按照工作计划，上午和组内同事做个人阶段性目标沟通。在与一位曾经在国外公司里做过项目的同事沟通时，他给我讲了这么一个故事：某一年的圣诞节前夕(圣诞节在西方人眼里是地位最高的节日了吧)他所在的那家公司的经理预感到圣诞节那天他们公司的网站的访问量激增的可能性会很大，为了保证网站在那圣诞节那天能&amp;#34;挺住&amp;#34;，他要求手下的人对网站进行一次压力测试，并决定让手下用jmeter来做这件事情。手下人没有异...</description></item><item><title>使用双显示器工作</title><link>https://tonybai.com/2008/10/08/work-with-dual-monitors/</link><pubDate>Wed, 08 Oct 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/10/08/work-with-dual-monitors/</guid><description>组内同事与公司合购了一台ThinkPad T400的本子，按照公司规定，公司分配给她的台式机是要收回的，就在没收回之前，我将其显示器借来(没办法，无奈公司在“白菜价”的硬件上也斤斤计较)，搭建我的双显示器环境。 曾经使用过部门的投影试过双显，第一感觉很爽，只是当时扩展桌面后，我的本本一直只能作为第二显示器(辅助显示器)，桌面都显示到了投影上，调试了半天也没搞懂，略有遗憾。这次搬来同事的那个17寸液...</description></item><item><title>第一次给父母做饭</title><link>https://tonybai.com/2008/09/30/cook-meal-for-my-parents-the-first-time/</link><pubDate>Tue, 30 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/30/cook-meal-for-my-parents-the-first-time/</guid><description>一个月前就已经计划好了，这个十一黄金周，父母过来到新房子看看。由于我和LP的家都不在这，所以从买房子到装修父母都不曾来看过。这次是第一次。为了给父母一个良好的印象，我和LP也是下了不少功夫，包括打扫卫生和考虑如何招待我的父母。 一直是我们两个人生活，家里的东西，比如筷子、碗、盘子等，也都是按照“两个人够用”这个水准购置的。这次父母来，势必我们要出去采购些。以前回到家里都是吃现成的，父母把饭菜端到桌...</description></item><item><title>坚持</title><link>https://tonybai.com/2008/09/28/stick-with-my-blog/</link><pubDate>Sun, 28 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/28/stick-with-my-blog/</guid><description>2004年初，那时的我刚刚来到现在的公司实习，大约几个月后受Dreadhead的影响，在Blogbus上申请了自己的第一个Blog，并作为自己的主blog站点(后迁至tonybai.com)，居然一直至今。当初申请blog的时候并没有多想，一切都只是模仿Dreamhead，包括他采用的“清新模板”以及他的Blog上方的那一行字：“一个小程序员的信口开河”，我将之改为：“一个程序员的心路历程”，当时...</description></item><item><title>终于有沙发了</title><link>https://tonybai.com/2008/09/27/the-arrival-of-sofa/</link><pubDate>Sat, 27 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/27/the-arrival-of-sofa/</guid><description>虽然搬到新家已经一月有余，但是我们却一直没有沙发。今天之前，我们的客厅里还是空荡荡的，电视的对面放着几个买家电时留下的泡沫，权且当作凳子，后来有了餐椅，情况有了好转。 沙发是个使用效率很高的家具，同时它也是普通家庭客厅中的最主要家具了。LP对沙发的要求很苛刻，颜色要好、与家里风格搭配、长度合适、面料精致、触感好，坐起来舒服，当然最重要的一点还是物美价廉。这些都是我们沙发没有及时买到的原因。 对于我...</description></item><item><title>近期的几则“烦心事”</title><link>https://tonybai.com/2008/09/25/some-trouble-recently/</link><pubDate>Thu, 25 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/25/some-trouble-recently/</guid><description>近日和一位刚刚离职不久的同事在Fetion上聊天，他目前在北京的一家做SIP协议栈产品的外资公司供职，做PHP相关开发和维护。记得他刚到那家公司的时候和他聊过一阵，他当时由于刚刚去到那家公司，感觉很是新鲜，也很兴奋。不过这次聊天，他开始抱怨那个公司开发也很混乱，诸如Feature乱加、遗留代码不易修改等，最后他补充了一句：UNHAPPY。 这周是十一黄金周之前的最后一个工作周，需要连上七天班。这不...</description></item><item><title>梅西·演梅式助攻巴萨连胜</title><link>https://tonybai.com/2008/09/25/barca-vs-betis/</link><pubDate>Thu, 25 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/25/barca-vs-betis/</guid><description>2008年9月25日凌晨2点（北京时间），2008-09赛季西甲第四轮比赛打响，豪门巴塞罗那队坐镇主场诺坎普迎接西甲老牌劲旅皇家贝蒂斯的挑战。巴萨在上一场对阵希洪竞技的比赛中取得了本赛季的首场胜利，一扫赛季初战绩不佳的阴霾，全队将士士气正盛。本场比赛的目标很明确：那就是取得连胜。贝蒂斯深知豪门巴萨的实力，本场又是客场作战，所以贝蒂斯力图全身而退。 瓜迪奥拉本场祭出了伊涅斯塔-埃托奥-梅西的前场攻击...</description></item><item><title>梅西·锦上添花巴萨取首胜</title><link>https://tonybai.com/2008/09/22/barca-vs-gijon/</link><pubDate>Mon, 22 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/22/barca-vs-gijon/</guid><description>2008年9月22日凌晨3点（北京时间），西甲豪门巴萨做客埃尔莫里农球场挑战升班马希洪竞技队。本场比赛前，巴萨在 头两轮联赛比赛中取得了一平一负的糟糕战绩，创造了球队有史以来的最差联赛开局记录。这个记录让主帅瓜迪奥拉的能力饱受质疑，巴萨的众球员们也备受舆论压 力。此役巴萨全体将士憋足了劲儿，目标只有一个：客场拿下希洪竞技，全取三分，迎来赛季第一场胜利。由于亨利有伤在身，伊涅斯塔顶到前面，与埃托奥和...</description></item><item><title>开始思考项目</title><link>https://tonybai.com/2008/09/17/begin-to-think-over-the-project/</link><pubDate>Wed, 17 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/17/begin-to-think-over-the-project/</guid><description>国内，也包括国外大多数项目经理/技术经理都是技术出身，工作了若干年，羽翼丰满后，被赋予了带领一个项目的责任。从技术到管理的过程多数人都需要一段时间去转换和适应。什么时候算是合格了或者说是入道了呢？没有标准。但是从我的体会而言，是否开始主动思考项目是至关重要的一点，一个重要的转折点。 刚刚从技术转为管理的人一般都不能很好适应角色的变化。技术人员最拿手的、最擅长的就是技术了，编码是他们发挥才能的舞台所...</description></item><item><title>梅西·入首球难掩平局尴尬</title><link>https://tonybai.com/2008/09/14/barca-vs-racing_santander/</link><pubDate>Sun, 14 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/14/barca-vs-racing_santander/</guid><description>2008年9月14日凌晨02:00（北京时间），本赛季首战失利的巴塞罗那队坐镇主场诺坎普体育场迎接桑坦德竞技队的挑战。此役全队上下志在必得，势将对手斩落马下。但考虑到在本周中国际足球比赛日中大部分队员都参加了国家队的赛事，身体劳顿，且下周中（9月17日）2008-09冠军联赛小组赛首轮打响，少帅瓜迪奥拉还 是隐藏了包括梅西、亨利、伊涅斯塔、马科斯在内的多名主力。凯塔、赫莱布、小将皮克、布斯克茨和佩...</description></item><item><title>液晶电视选购使用记</title><link>https://tonybai.com/2008/09/13/choose-and-buy-lcd-tv/</link><pubDate>Sat, 13 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/13/choose-and-buy-lcd-tv/</guid><description>恰在北京奥运开幕式后的第二天搬到新房子，但是由于前期逛家电商场时和GF没能就型号达成一致，所以搬到新家后居然没有电视可看。这可是百年不遇的在中国举办的奥运会啊，怎可以没有电视呢？所以选购电视就成了第一要务。GF对国产电视没有信心，所以基本上我们还是在三星、飞利浦、夏普等大的国际品牌中挑选。 做了一些功课后，开始搜街。 GF更喜欢夏普的电视，毕竟刘若英的夏普Aquos的广告铺天盖地，不过投入广告的费...</description></item><item><title>发现一隐藏多年的Bug</title><link>https://tonybai.com/2008/09/06/found-a-bug-that-is-hidden-several-years/</link><pubDate>Sat, 06 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/06/found-a-bug-that-is-hidden-several-years/</guid><description>C语言程序员在平时工作中，到底如何获取成就感呢？我几乎可以肯定的是：找到一个隐藏已久，多年无人发现的大Bug肯定可以归属到C程序员成就感的范畴中。与操作系统斗、与编译器斗、与内存斗，其乐无穷吗^\_^。 今天测试人员在进行平台迁移测试时发现一个致命的问题，导致系统不能正常工作。问题提到我这，为了不耽误测试进度，马上丢下手头的工作开始问题的查找，经过GDB多次跟踪调试，终于发现了一隐藏多年的问题，至...</description></item><item><title>小议架构师</title><link>https://tonybai.com/2008/09/04/thoughts-on-architect/</link><pubDate>Thu, 04 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/04/thoughts-on-architect/</guid><description>这周我在两个会议场合听到“架构师”这个词。对于软件开发领域的人来说，&amp;#34;架构师&amp;#34;这三个字并不陌生，甚至很崇高。每当提到架构师的时候，大家眼睛都会放出羡慕和期待的光芒，因为众所周知的原因：&amp;#34;架构师&amp;#34;对于搞技术的人来说，都是&amp;#34;大牛&amp;#34;的代名词。 就像不想当将军的士兵不是好士兵一样，不想当大牛的技术人员肯定也不是好的技术人员。 第一个谈到&amp;#34;架构师&amp;#34;的场合是在会议室和一位要好的同事讨论新项目的需求时，他感慨道...</description></item><item><title>无意中的Pair Programming</title><link>https://tonybai.com/2008/09/02/unexpected-pair-programming/</link><pubDate>Tue, 02 Sep 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/09/02/unexpected-pair-programming/</guid><description>Pair Programming, 结对编程是敏捷开发中一个重要的实践，并受到很多业界大师级人物的推崇。但是明知它对我们可能会很有帮助，但是如果推广、实践起来还是要突破各种束缚的，心理上的、流程规范上的等等。我想也许这也或多或少也和公司或者部门的开发文化有些关系。我很想去尝试，但是一直没有找到一个很好的机会，也没有找到&amp;#34;心仪&amp;#34;的Partner。 今天上午恰好要完成一个脚本的编写，这是一个升级产品时...</description></item><item><title>装修的遗憾，其实不美</title><link>https://tonybai.com/2008/08/30/the-flaw-of-house-decoration-is-not-beautiful/</link><pubDate>Sat, 30 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/30/the-flaw-of-house-decoration-is-not-beautiful/</guid><description>从4月初到8月中旬，装修(+家具、电器采购)整整持续了四个多月，由于亲戚朋友都不在身边，装修的劳顿使我在这段时间内体重急剧减少了近10斤，体力的不堪重负和心理的烦躁促成了这一&amp;#34;减肥&amp;#34;过程。都说装修是门遗憾的艺术，凡是亲历过装修的人想必都有所感悟吧。有人说：遗憾是一种美，但我的感觉是装修中的遗憾，其实不美。 我的装修遗憾列表(按装修流程的先后顺序): 设计阶段 \- 年初找装修公司时恰逢人力成本和各...</description></item><item><title>尝试Scrum中的Demo模式</title><link>https://tonybai.com/2008/08/27/try-demo-practice-of-scrum/</link><pubDate>Wed, 27 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/27/try-demo-practice-of-scrum/</guid><description>昨天，在下班前的一分钟，突然有一个想法：项目刚刚完成一个阶段性的任务，是否将项目组所有人召集在一起，每个人将自己在这个阶段做的东西向大家做一个展示呢？把这个想法和几个同事交换了一下意见，获得了支持。说做就做，恰好这段时间我一直尝试不断提高自己的执行力。遂在上午的一个短会上和大家道出了我的想法，并决定在今天就做这个演示活动。 这种想法其实不是什么独创，最近拜读了一本叫&amp;#34;硝烟中的Scrum和XP&amp;#34;的书...</description></item><item><title>北京奥运会完美谢幕</title><link>https://tonybai.com/2008/08/24/beijing-olympic-games-ends-perfectly/</link><pubDate>Sun, 24 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/24/beijing-olympic-games-ends-perfectly/</guid><description>燃烧在鸟巢上空16天的第29届北京奥林匹克运动会的圣火终于在今天完成了使命，在万众瞩目下熄灭了。作为一个普通的中国观众，我从电视等媒体中见证了北京奥运会的这16天的历程，客观的说：她很完美。 闭幕式上，国际奥委会主席罗格给予了北京奥运会一个与众不同的评价：真正的无与伦比。的确如此，北京奥运会从开幕式那天起就让大家眼前一亮，让国外一些媒体对北京的质疑彻底不攻自破。 北京奥运会是一个拥有13亿人口的发...</description></item><item><title>CruiseControl.rb初体验</title><link>https://tonybai.com/2008/08/20/the-experience-of-cruisecontrol-rb/</link><pubDate>Wed, 20 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/20/the-experience-of-cruisecontrol-rb/</guid><description>我所在的项目一直以C语言作为主要开发语言，与做Java以及其他新兴语言的人不同，组内的同事似乎对新鲜的东西不是那么感兴趣，也没有主动去研究新鲜事物的意愿和意识。我深为此闹心，看到外面世界中那么多美妙的工具，再也不能坐以待毙了。我一直都是有很多想法的，但是迫于自身精力有限，自己无法全身投入，以前都是交予别人去做的，但是收到的效果都不是很好。认识到这点后，我决定自己动手，丰衣足食。 从心底一直对公司的...</description></item><item><title>switch语句性能考量</title><link>https://tonybai.com/2008/08/18/thoughts-on-the-performance-of-switch-case-statments/</link><pubDate>Mon, 18 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/18/thoughts-on-the-performance-of-switch-case-statments/</guid><description>每年都有应届毕业生来到公司，每年都要对新同事进行代码方面的培训，比如编码规范就是其中之一。编码规范初听起来比较新鲜，但是培训时间长了，显然有些乏味。今年我打算改变策略，让新同事结合已有规范文档和项目代码，自己先挖掘一遍，然后大家通过坐下来讨论的互动方式来加深对规范的理解，每次讨论时间限制在1 hour以内，不给大家打瞌睡的机会^\_^。 上周和新同事一起讨论表达式和语句，说到了switch和if，...</description></item><item><title>CHECKLIST的不实用之处</title><link>https://tonybai.com/2008/08/15/checklist-is-impractical/</link><pubDate>Fri, 15 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/15/checklist-is-impractical/</guid><description>CHECKLIST多是类似如下的东西，举一个代码CHECKLIST的例子： - 参数的书写是否完整？不要贪图省事只写参数的类型而省略参数名字。  - 参数命名、顺序是否合理？  - 参数的个数是否太多？  - 是否使用类型和数目不确定的参数？  - 是否省略了函数返回值的类型？  - 函数名字与返回值类型在语义上是否冲突？ 我们常常遇到的一个问题就是在进行source peer review的时候...</description></item><item><title>无线路由设置也'疯狂'(续)</title><link>https://tonybai.com/2008/08/15/configure-wireless-router-cont/</link><pubDate>Fri, 15 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/15/configure-wireless-router-cont/</guid><description>刚搬家，由于新的小区不在中国铁通的势力范围之内，所以无奈下只好硬着头皮去安装网通宽带，与铁通宽带不同的是网通宽带套餐必须绑定一部固话，估计这就是固网电信运营商开拓市场的一个卑鄙伎俩吧。铁通就可以不安装电话，直接通过跳线做。还有更严重的一点就是网通宽带贵，包一年比铁通要贵上300块；另外已经习惯了铁通的免费电影网站，网通的收费电影网站让我很是不适应。我又不喜欢用bt，以后看电影还是需要另寻门路了。 ...</description></item><item><title>当“为荣誉而战”成为口头禅时</title><link>https://tonybai.com/2008/08/14/when-fighting-for-glory-become-a-per-phrase/</link><pubDate>Thu, 14 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/14/when-fighting-for-glory-become-a-per-phrase/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>此刻，让我们共同见证第29届北京奥运会</title><link>https://tonybai.com/2008/08/08/now-let-us-be-the-witness-of-29th-beijing-olympic-games-together/</link><pubDate>Fri, 08 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/08/now-let-us-be-the-witness-of-29th-beijing-olympic-games-together/</guid><description>北京时间2008年8月8日晚上8点8分，第29届北京奥林匹克运动会在北京国家体育场&amp;#34;鸟巢&amp;#34;正式开幕了。此时，让我们共同见证这一举世瞩目的历史时刻吧。 当颇具创意的由焰火组成的29个巨大脚印从中轴路走进国家体育场的一刻，举国沸腾了，奥运会真的来了。7年的等待，7年的准备，中国人终于等到了这一刻。坐在电视前，我的心情和现场的所有国人一样，激情澎湃。 国旗在56个民族的小朋友的手里传递到旗杆下，威武的国...</description></item><item><title>新浪网居然如此粗心大意</title><link>https://tonybai.com/2008/08/08/sina-make-a-stupid-mistake/</link><pubDate>Fri, 08 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/08/sina-make-a-stupid-mistake/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>从座位调换看文化差异</title><link>https://tonybai.com/2008/08/07/learn-culture-differences-from-seat-exchanges/</link><pubDate>Thu, 07 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/07/learn-culture-differences-from-seat-exchanges/</guid><description>最近我们开发部正在讨论搬家事宜，搬家后的一个重点就是要调换和安排座位，恰好上周在Google黑板报上也看到了一篇题目为“Google如何调换座位”的文章，本来很平常的一件事，但在不同的公司里却恰恰能体现出来不同的公司文化。 换座位想必大家都经历过，从小学到高中，座位一般都是老师安排好的，或是按照大小个排队，走进教室，轮到哪个座位，哪个座位就是你的，我想大多数中国的中小学调座位的方法都大同小异。工作...</description></item><item><title>Google上看鸟巢和水立方</title><link>https://tonybai.com/2008/08/06/watch-bird-nest-and-water-cube-through-google-earth/</link><pubDate>Wed, 06 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/06/watch-bird-nest-and-water-cube-through-google-earth/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>别墅·空间·服务</title><link>https://tonybai.com/2008/08/04/visit-sun-city-of-countrygarden/</link><pubDate>Mon, 04 Aug 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/08/04/visit-sun-city-of-countrygarden/</guid><description>周末，逢沈阳碧桂园·太阳城开盘，由于一些特殊原因，我也到了开盘现场，第一次感受到卖别墅是个什么样子的情形^\_^。 碧桂园这个开发商开发的楼盘都很有特点：那就是地点偏僻，地块巨大。每个盘至少也在几十万平方米，而且配套的设施很完备，酒店、幼儿园、超市都给你引到园内，让你的居住虽远离市区，但是感觉上却还很便利。据说广州的碧桂园超级大，里面公交车、麦当劳、酒店、娱乐场所应有尽有，据说有上万户业主，真是一...</description></item><item><title>周末李官游</title><link>https://tonybai.com/2008/07/28/a-tour-of-liguan-at-weekends/</link><pubDate>Mon, 28 Jul 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/07/28/a-tour-of-liguan-at-weekends/</guid><description>部门每年都会组织全体人员进行一次短途游，一般是在省内。工作四年了，算这次我一共去了3次；去年因搬家没去成。自然风光旅游无非山和水，这次我们选择了水-位于大连瓦房店李官镇的一个海滨浴场，前两次我们去的都是山。 爬山累，我喜欢看大海，一来是有近两年未到过大海了；二是忙乎了半年多，到海边放松一下心情，这也是这次我决定去的原因。由于以前有过部门海边旅游的经历，所以基本上我将期望降到了最低，毕竟北方的海滩和...</description></item><item><title>“撒哈拉大森林”</title><link>https://tonybai.com/2008/07/24/a-joke-sahara-forest/</link><pubDate>Thu, 24 Jul 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/07/24/a-joke-sahara-forest/</guid><description>一则笑话。非原创，改编自网络。 话说有这么一天，Tony Bai! Tony Bai是谁知道不? 哎，哎，哎，哎，那位摇头的我来告诉你，Tony Bai就是me ^\_^ 话说Tony Bai，你猜猜他在哪呢？ 告诉你吧，在一片大森林里。 在大森林里做啥子呢？ 扛大树，哦，no。是伐木，然后将砍倒的树扛到船上。 你要说Tony Bai哪有这么大劲儿么，靠，你小瞧我了(展示肌肉，一看就是头脑简单，四...</description></item><item><title>城市窒息</title><link>https://tonybai.com/2008/07/14/the-city-make-me-stifling/</link><pubDate>Mon, 14 Jul 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/07/14/the-city-make-me-stifling/</guid><description>坐在开向公司的班车上，看着窗外熙攘的人群、车水马龙的街道，突然莫名有一种窒息的感觉。 盛夏炽热的阳光射在身上，总是感觉身体中的水分正在被一只无形的大手一捧一捧的掠走。宽阔的马路两边却少有林荫，无法给行人遮阳。男士们到也不在乎这些，女士们则打着遮阳伞，估计脸上还擦了SPF至少为8以上的厚厚的一层化学物质以低于强烈的紫外线。 两侧高耸的建筑物让这个城市的散发着足球的现代化的气息，但建筑物外表的整块整块...</description></item><item><title>奥运圣火走进春城昆明</title><link>https://tonybai.com/2008/06/09/beijing-olympic-torch-step-in-kunming/</link><pubDate>Mon, 09 Jun 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/06/09/beijing-olympic-torch-step-in-kunming/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>全国哀悼日，贴图寄哀思</title><link>https://tonybai.com/2008/05/19/national-grief-day-for-wenchuan-earthquake/</link><pubDate>Mon, 19 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/19/national-grief-day-for-wenchuan-earthquake/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>关于宏定义切换以及屏蔽的例子</title><link>https://tonybai.com/2008/05/17/examples-for-macro-definition-switch-and-mask/</link><pubDate>Sat, 17 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/17/examples-for-macro-definition-switch-and-mask/</guid><description>assert是大家常用的宏，它的用法相信大家都有所了解。P.J Plauger的&amp;#34;The C Standard Library&amp;#34;一书中提到在源代码中切换assert宏定义的方法： /\* turn assertion on \*/ #undef NDEBUG #include /\* turn assertions off \*/ #define NDEBUG #include 我顺手写了一个例子...</description></item><item><title>也谈C语言标识符的NAMESPACE</title><link>https://tonybai.com/2008/05/15/also-talk-about-namespace-in-c/</link><pubDate>Thu, 15 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/15/also-talk-about-namespace-in-c/</guid><description>P.J Plauger的&amp;#34;The Standard C Library&amp;#34;一书的Chapter0的章后练习中有这样的一道题：编写一个包含如下一行语句的正确的程序： x:      ((struct x\*)x)-&amp;gt;x=x(5); 并描述这行语句中x的5种截然不同的use，这里其实涉及到这么一个知识或者说概念：C语言的命名空间(namespace)，在&amp;#34;C语言参考手册&amp;#34;中还被称作: overloadi...</description></item><item><title>关注四川汶川地震，为灾区人民祈祷</title><link>https://tonybai.com/2008/05/14/pray-for-the-people-in-sichuan-wenchuan/</link><pubDate>Wed, 14 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/14/pray-for-the-people-in-sichuan-wenchuan/</guid><description>时间定格在公元2008年5月12日，那天是星期一，工薪族们正努力的从周末休假状态转换到工作状态；操场上正在嬉戏打闹的低年级的小学生听到铃声陆续进入教室准备上课；初三、高三的莘莘学子们正伏案刻苦的读书，准备迎接即将来临的中考和高考；幼儿园里孩儿童们依旧在老师的看护下午睡着；盘山公路上、景区的缆车上，兴致勃勃的游客们正在欣赏着大自然的美丽景色。就当人们沉浸在这美好、恬静生活的时候，地球的内部，更精确的...</description></item><item><title>一分之差</title><link>https://tonybai.com/2008/05/12/not-pass-the-driving-exam-by-one-point/</link><pubDate>Mon, 12 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/12/not-pass-the-driving-exam-by-one-point/</guid><description>说来真是遗憾，这不上周五参加了驾驶员考试的理论测试，十分&amp;#34;点背&amp;#34;的是我居然以一分之差没有通过。 今天驾校的一位中年男老师打来电话，问我是否参加十天之内安排的补考？令我惊奇的是他还对我鼓励了一番：&amp;#34;我相信你一定能过&amp;#34;，我也应承着：有你这句话我一定过。虽说教练这句话可能不完全是为我着想，但心里还是莫名的感受到一丝激励。毕竟是为了自己学么。 其实除了工作忙没时间看题库之外，我觉得最大原因还是我的态度有问...</description></item><item><title>也谈C语言变长参数</title><link>https://tonybai.com/2008/05/07/also-talk-about-c-variable-length-args/</link><pubDate>Wed, 07 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/07/also-talk-about-c-variable-length-args/</guid><description>很多技术人员都有在&amp;#34;技术细节&amp;#34;上&amp;#34;钻牛角尖&amp;#34;的&amp;#34;癖好&amp;#34;，对此很多人褒贬不一；无论怎样，我也是属于这类人。C语言的变长参数在平时做开发时很少会在自己设计的接口中用到，但我们最常用的接口printf就是使用的变长参数接口，在感受到printf强大的魅力的同时，是否想挖据一下到底printf是如何实现的呢？这里我们一起来挖掘一下C语言变长参数的奥秘。 先考虑这样一个问题：如果我们不使用C标准库(libc...</description></item><item><title>也谈typedef</title><link>https://tonybai.com/2008/05/02/also-talk-about-typedef/</link><pubDate>Fri, 02 May 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/05/02/also-talk-about-typedef/</guid><description>C语言语法简单，但内涵却博大精深；如果在学习时只是止步于表面，那么往往后期会遇到很多困难。typedef是C语言中一个很好用的工具，大量存在于已有代码中，特别值得一提的是：C++标准库实现中更是对typedef有着大量的使用。但很多初学者对其的理解仅局限于：typedef用来定义一个已有类型的”别名(alias)”。正是因为有了这样的理解，才有了后来初学者在typedef int myint和ty...</description></item><item><title>由一把座椅想到的</title><link>https://tonybai.com/2008/04/30/thought-on-a-chair/</link><pubDate>Wed, 30 Apr 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/04/30/thought-on-a-chair/</guid><description>今天上午参加了一个公司内部的项目管理工具推广和使用的培训，培训地点在公司新落成不到一载的办公楼的一间视频会议室里，由于是新办公楼，所以这里的设施也都是很新的。特别是会议室里的座椅让人坐起来很是舒服，会议室的椭圆桌摸起来也很有质感，当时就和同事们讨论如果我们的办公环境要是能有这样的座椅和桌子那该多好啊，工作效率肯定能提高不少。目前我们的座椅估计就属于写字楼中最常见的那种，坐起来普遍反映不舒服。 会议...</description></item><item><title>事业单位考试：小心'专业不对口'</title><link>https://tonybai.com/2008/04/28/make-sure-your-profession-match-before-attending-public-servant-exam/</link><pubDate>Mon, 28 Apr 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/04/28/make-sure-your-profession-match-before-attending-public-servant-exam/</guid><description>大约有两周没有更新博客了，记忆中这么长时间不更新博客的也没有几次。最近烦心的事情很多，项目压力大，家里这边装修烦心的事情就更多了，劳体劳心啊。但这里想说的既不是项目也不是装修，而是另一间令人很是气愤和鄙视的事情-一件关于政府事业单位公开招聘人员的事情。 上周日，碰巧在街上遇到了一位好朋友A，A给我讲了这么一件事，让我也很是气愤。从A那得知，前段时间辽宁省举行了一次&amp;#34;省政府所属事业单位公开招聘人员&amp;#34;...</description></item><item><title>C单元测试之Mock Test篇</title><link>https://tonybai.com/2008/04/12/mock-test-in-c-unit-test/</link><pubDate>Sat, 12 Apr 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/04/12/mock-test-in-c-unit-test/</guid><description>曾经在多篇blog中报怨过：用C语言写业务逻辑实在是让人身心忐忑不安，再加之C语言自有的&amp;#34;特点&amp;#34;，让其与&amp;#34;单元测试&amp;#34;始终若即若离，曾经尝试过写了一个轻量级C Unit Testing lib，至少目前我依旧在用，但多用在编写独立算法以及底层库的场合。业务层少有使用。业务层多是遗留系统，当初前辈们设计时对可测性考虑不够周全，导致现在无法很好的将各个部分独立抽出进行测试，虽然我们也在做着类似&amp;#34;重构&amp;#34;的...</description></item><item><title>Mingle初体验</title><link>https://tonybai.com/2008/04/09/the-experience-of-mingle/</link><pubDate>Wed, 09 Apr 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/04/09/the-experience-of-mingle/</guid><description>本周一已经投奔ThoughtWorks的Dreamhead因公事回到沈阳，来到我们公司看望以前的同事。他谈到业界的一种说法：ThoughtWorks在&amp;#34;怎么做&amp;#34;上达到了很高的高度，但是在&amp;#34;做什么&amp;#34;上与Google这样的公司相比还有差距。既然ThoughtWorks在&amp;#34;怎么做&amp;#34;方面树立了榜样，那么这个公司推出的产品估计在&amp;#34;怎么做&amp;#34;上对其他公司也会有所指导^\_^。Mingle就应该是其中之一。 公司...</description></item><item><title>软件业的'图纸'在哪里？</title><link>https://tonybai.com/2008/03/31/where-is-the-drawing-of-software-developing/</link><pubDate>Mon, 31 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/31/where-is-the-drawing-of-software-developing/</guid><description>上周日和橱柜公司商量好，下午三点到我的房子量尺，橱柜设计师按时到达，拿着一卷尺开始了测量工作。有过装修经历的人都知道：在装修公司进场之前需要橱柜设计师出一份水电改造图，便于装修公司人员确定水电改造的具体方法。装修公司的施工人员与橱柜设计师之间仅需要一份设计图纸就可以完成水电路改造的沟通，这不由得让我想起这样一个问题：&amp;#34;软件开发领域的&amp;#34;图纸&amp;#34;在哪里呢&amp;#34;? &amp;#34;图纸&amp;#34;是建筑行业的标准的共同语言，它能让设...</description></item><item><title>面对'破窗户'的无奈</title><link>https://tonybai.com/2008/03/28/the-helplessness-to-face-the-broken-window/</link><pubDate>Fri, 28 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/28/the-helplessness-to-face-the-broken-window/</guid><description>每天早晨都是坐公司的班车上班的，从家到公司大约需要40分钟，这段时间不短也不长。为了打发时间，也曾经想过要充分利用这段时间，我选择过听音乐、看书。但音乐听时间长了就听烦了；在车上看书时间长了还有些头晕，所以多数时间我还是选择&amp;#34;思考&amp;#34;。&amp;#34;思考&amp;#34;的同时，眼睛也一直在&amp;#34;欣赏&amp;#34;车窗外的风景。今天窗外一处新楼盘门市的两个破碎的窗户让我的&amp;#34;思考&amp;#34;有了方向。 建筑物上的几扇&amp;#34;破窗户&amp;#34;，很多人即使注意了，也会不以...</description></item><item><title>说说用xml做配置文件的优劣</title><link>https://tonybai.com/2008/03/24/the-benefits-of-using-xml-as-configuration/</link><pubDate>Mon, 24 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/24/the-benefits-of-using-xml-as-configuration/</guid><description>最近收到客户的一个需求，要求我们将产品的系统配置数据和业务配置数据定期导出备份，以防万一数据库宕掉后可以用来&amp;#34;救火&amp;#34;。产品从起初0.1版本就一直延续着一种&amp;#34;section-key-value&amp;#34;的配置文件方式，同时我们也有可复用的库来完成配置数据的读取，可是在长期的使用过程中我们发现的不少问题，特别是在存储多样化的业务数据的时候，这样的配置方式带来维护上的很大不便。 &amp;#34;section-key-val...</description></item><item><title>'史前一万年'观感</title><link>https://tonybai.com/2008/03/23/thoughts-on-film-10000-bc/</link><pubDate>Sun, 23 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/23/thoughts-on-film-10000-bc/</guid><description>感觉好长时间(离上一次看&amp;#34;集结号&amp;#34;大概有三个月时间了)没有到影院看电影了，一来是觉得没有什么好电影值得看，二来这些时间事情较多，有时候还真的想不起来去看电影。直到近期看了任正非给华为员工的一封信，信中有这么一段：&amp;#34;员工不能成为守财奴，不能成为金钱的奴隶，丰厚的薪酬是为了通过优裕、高雅的生活&amp;#34; 。任总的期望是好的，但是我几乎可以肯定的是大多数程序员下班后依然会坐在计算机前，不是加班、学习就是打游戏、...</description></item><item><title>装修博弈·主材选购</title><link>https://tonybai.com/2008/03/17/house-decoration-notes-buying-materials/</link><pubDate>Mon, 17 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/17/house-decoration-notes-buying-materials/</guid><description>现在，一般家庭装修多数采用半包的方式，也就是装修公司出人、出辅料(水泥、沙子、油漆、木料等)，自己买主材，如地板、磁砖等。虽说半包的模式已经将最麻烦、最牵扯精力、最技术相关的装修工作交给了装修公司去打理，但主材选购也扔是足够令人头疼的。 装修绝对是一项系统工程，而且是一件很&amp;#34;庞大&amp;#34;的系统工程，如果你能将每个细节都搞得清楚的话，那我真的要对你说声&amp;#34;佩服&amp;#34;了。我自己是没时间、没耐心也没那个热情去学习，...</description></item><item><title>多行宏定义中的注释问题</title><link>https://tonybai.com/2008/03/14/the-problems-of-commenting-multiple-lines-macro/</link><pubDate>Fri, 14 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/14/the-problems-of-commenting-multiple-lines-macro/</guid><description>早上在写代码时遇到这样一个问题：即如何在一个拥有多行的宏定义中做注释？，这里把方法演化的过程贴出来，可能对某些朋友有些借鉴意义。 宏定义高深莫测，而且是比较细节的东西，详细说明请参见&amp;#34;C参考手册&amp;#34;之类的书籍。 在我的代码中，我大致要做这样一个简单的事情：printf(&amp;#34;%s%s%s\\n&amp;#34;, &amp;#34;hello&amp;#34;, &amp;#34;macro&amp;#34;, &amp;#34;yeah!&amp;#34;); &amp;#34;%s%s%s\\n&amp;#34;这个字符串中每一项输出都有一...</description></item><item><title>无线路由设置也'疯狂'</title><link>https://tonybai.com/2008/03/08/configure-wireless-router/</link><pubDate>Sat, 08 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/08/configure-wireless-router/</guid><description>无线路由设置本来是件很简单的事情，但今晚却让我吃尽了苦头，这里暂且用&amp;#39;疯狂&amp;#39;来形容吧，也许有些不当。自从买了D-Link 624+A无线路由器之后，在家里上网就一直使用它了。这之前一直是使用我的工作笔电单机访问，今天不知怎么心血来潮，拿出我自己的&amp;#39;古董本本&amp;#39;(和今天的本本性能做比较，我的本本也算是古董级的了，有些夸张^\_^)，来一个双机访问，按理说：只要在无线路由器上配置一个DHCP服务器就可以...</description></item><item><title>在卓越网买书</title><link>https://tonybai.com/2008/03/04/buy-book-on-amazon/</link><pubDate>Tue, 04 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/04/buy-book-on-amazon/</guid><description>现在我买书(一般指技术类，非技术类在书市买折扣比网上多)一般都是先到豆瓣网去&amp;#39;货比三家&amp;#39;，哪家价格低我就在哪里买。上个月25号凌晨未睡，无意中看到&amp;#34;代码大全2&amp;#34;在卓越网卖价很低，到卓越一看，卓越亚马逊居然还免运费，正巧还想买那本经典的&amp;#34;人月神话&amp;#34;，就在卓越下了单。 第二天，mail通知已发货，并给出到达预期是在3月3日左右。 我买的&amp;#34;人月神话&amp;#34;是2002年出的平装第二版，而不是去年那个32周年中文...</description></item><item><title>装修博弈·迈出第一步</title><link>https://tonybai.com/2008/03/04/house-decoration-notes-the-first-step/</link><pubDate>Tue, 04 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/04/house-decoration-notes-the-first-step/</guid><description>昨天终于迈出了装修的第一步，与沈城一家还算不错的装修公司签订了装修合同。之所以在题目中使用了&amp;#34;博弈&amp;#34;一词，相信有过家装经历的人都能理解其深刻含义。与装修公司’斗’，与材料提供商’斗’，与施工工人’斗’，与自己’斗’。 家装绝对是一件系统工程，现在的家装公司鱼龙混杂，装饰材料市场更是陷阱重重，想起来就头痛。还好我十分认可&amp;#34;装修是一门遗憾的艺术&amp;#34;这一说法，有时候也就不那么较真了。但是该认真的地方还是要...</description></item><item><title>使用Ubuntu工作了一上午</title><link>https://tonybai.com/2008/02/27/work-on-ubuntu-this-morning/</link><pubDate>Wed, 27 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/27/work-on-ubuntu-this-morning/</guid><description>在公司里面，Windows还是一统天下的。人们已经熟悉了Windows上的各种软件和使用方法，特别是一些常用的配置管理工具，我们用的都是微软的产品，譬如Visual Source Safe，这给转到Ubuntu带来了一些麻烦，Ubuntu下虽然有Wine这个好工具，但是对于复杂的Windows软件来说，Wine的支持还是难以满足需求的。 在家里的时候一直都是用无线路由器上网的，开机登录桌面后无线就...</description></item><item><title>中国女足走上男足之路</title><link>https://tonybai.com/2008/02/25/women-football-team-is-on-the-wrong-way/</link><pubDate>Mon, 25 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/25/women-football-team-is-on-the-wrong-way/</guid><description>好久不说中国足球了，那是因为中国男足已经没什么可说的了，说了也白说，水平还是那么’洼’！这次提笔，那是因为中国女足，为女足的发展痛心，曾几何时中国女足那是多么娇艳的一朵’铿锵玫瑰’啊，而如今却开始了走上了类似中国男足的’不归路’。 昨天晚上6点从外面回来，打开电视机，换到奥运频道正在直播的东亚四强赛女足最后一轮：中国vs.日本。当看到屏幕上的比分时，心彻底凉了。0:3，这绝对是一场完败，是中国女足...</description></item><item><title>牢骚中体验Ubuntu</title><link>https://tonybai.com/2008/02/23/many-complaints-about-ubuntu/</link><pubDate>Sat, 23 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/23/many-complaints-about-ubuntu/</guid><description>春节过后，项目一直比较忙， 我的Ubuntu自从上周日安装到系统中后就一直没有怎么用过，好不容易盼到周末了，这回可有时间体验一下&amp;#39;热得烫手&amp;#39;的Ubuntu了。 Dreamhead在评论中给我的建议是:坚持使用Ubuntu，你就会越用越熟练的。这同样也是我的想法，所以首要的任务就是先体验一下Ubuntu，看其是否能满足我工作和平时娱乐的需要。 Linux总是让新手&amp;#39;迷路&amp;#39;,我所说的&amp;#39;迷路&amp;#39;是指在进入...</description></item><item><title>自己的文字太生硬、太干涩!</title><link>https://tonybai.com/2008/02/18/my-words-is-too-stiff/</link><pubDate>Mon, 18 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/18/my-words-is-too-stiff/</guid><description>昨天GF惊奇的问我：&amp;#34;你怎么写那么多字？用word统计了一下有近5000字&amp;#34;，GF所指的是我几天前写的一篇叫的文章。GF的这句话也让我脑子里闪出一个念头，我的Blog在别人的眼中到底是什么样子的呢？我给我自己的评价是：文字太生硬、太干涩。 也许这是很大一部分技术人员的通病：喜钻研，但不善于表达，这里的表达包括文字表达和口头沟通，我想这同样也是圈内很多技术出身且文采出众的人能成为众人关注对象的原因，...</description></item><item><title>初装Ubuntu 7.10</title><link>https://tonybai.com/2008/02/17/install-ubuntu-7-10-the-first-time/</link><pubDate>Sun, 17 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/17/install-ubuntu-7-10-the-first-time/</guid><description>花了大半天时间备份数据，重装Windows后，终于可以安装Ubuntu了。Ubuntu 7.10的光盘在我的抽屉里都躺了多个月了，今天终于有了用武之地了。因为有了移动硬盘，我将笔记本硬盘的一个分区腾了出来，用来安装Ubuntu，分区大约20G，分出10个G来挂载/，1个G做SWAP分区，剩下一个FAT32分区存用户数据。 IBM Thinkpad笔记本向来对Linux的兼容性就很好，我这次安装也印...</description></item><item><title>节后逛三好街</title><link>https://tonybai.com/2008/02/16/shopping-on-the-sanhao-street-after-festival/</link><pubDate>Sat, 16 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/16/shopping-on-the-sanhao-street-after-festival/</guid><description>手里的这台IBM本本自从到我手里后就一直没有重装过，目前问题多多了，比如在公司访问不了Visual SourceSafe服务器、自带防火墙始终被组策略限制着等等。笔记本的容量才40G，在今天这个&amp;#39;海量&amp;#39;存储的时代里，显然有些落伍了，容量的限制也让我束手束脚，这不前些时候拿到的Ubuntu 7.10光盘后就一直没有机会安装。春节之前就已经将重装机器列入了假期计划之一，今天付诸实施，首先需要采购一个足...</description></item><item><title>姥姥姥爷'闯关东'</title><link>https://tonybai.com/2008/02/15/grandparents-making-a-living-to-northeast/</link><pubDate>Fri, 15 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/15/grandparents-making-a-living-to-northeast/</guid><description>2008年开年大戏，包括央视在内的各大电视台都在热播的由李幼斌主演的电视剧&amp;#39;闯关东&amp;#39;将我们带回了那个贫苦的年代，辽宁卫视和山东卫视更是连播了两遍。&amp;#39;闯关东&amp;#39;是一部血泪史，更是一部奋斗史。随着时间推移，其实各个年代都会有&amp;#39;闯关东&amp;#39;中人物的影子，我这里要说的是我的姥姥和姥爷，说说他们从江浙之地迁移到东北的真实故事，故事由我记忆中的点点滴滴整理而成，这些内容都是小时候姥姥姥爷给我讲的。 从小到大，我最喜...</description></item><item><title>'福'字不该倒着贴</title><link>https://tonybai.com/2008/02/14/word-fu-should-not-paste-upside-down/</link><pubDate>Thu, 14 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/14/word-fu-should-not-paste-upside-down/</guid><description>今年是我’有史以来’回家最晚的一年，直到阴历二十九才坐上回家的列车。今年在回家之前我还有一个特殊的’活儿’要完成，那就是给自己尚未入住的新房子贴上传统的对联和福字儿。 以前在家贴对联和福字都是父母的活儿，从小到大自己在家里都是啥活儿也不做的，都是被父母惯的^\_^。这回轮到自己贴对联福字了，我还觉得有些新奇，早早的就在超市里买了漂亮的对联和福字，还特地上网查了查对联和福字该如何贴。 对联的贴法我是...</description></item><item><title>这注定是个难忘的春节</title><link>https://tonybai.com/2008/02/14/it-is-a-memorable-spring-festival/</link><pubDate>Thu, 14 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/14/it-is-a-memorable-spring-festival/</guid><description>坐着满是硬卧车厢的N135次列车回到了沈阳，我的2008春节到此就基本结束了，下周一开始就要正式上班了，新一年的忙碌也即将开始了。对于我而言，2008这个鼠年的春节稀松平常，与往年并无大异，依旧是大年三十儿的年夜饭、依旧是初一到初六的探亲访友、依旧是在传统习俗中间兜圈子，随着年龄的增大，自已身上背负了更多的东西，感觉有些身心疲惫，自己希望的简单生活在中国这种传统礼俗多多的国度仿佛很难实现。但对于在...</description></item><item><title>共享库中的符号链接</title><link>https://tonybai.com/2008/02/03/symbol-linkage-in-shared-library/</link><pubDate>Sun, 03 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/03/symbol-linkage-in-shared-library/</guid><description>清晨，部门新来的一位小兄弟打来求助电话，说是系统启动的时候出现类似：&amp;#34;ld.so.1: testmain: 致命的: 重定位错误: 文件./libtestshared.so: 符号static\_add: 参照的符号没有找到&amp;#34;的错误。这个系统是05年开发的一个复用度很高的自研产品，后续项目只需在其基础上做少量二次开发工作即可满足新功能的要求。为了做到一定的通用性，我们使用了类似插件的框架，这样系统...</description></item><item><title>'灾难'到来之前，我们该做点啥</title><link>https://tonybai.com/2008/02/01/what-should-we-do-before-disaster-come/</link><pubDate>Fri, 01 Feb 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/02/01/what-should-we-do-before-disaster-come/</guid><description>几十年不遇的暴雪冻雨席卷了南方十几个省份，现在你打开电视机、收音机、翻开报纸、浏览互联网，可能看到的最多的就是关于南方灾情的报道。罪也受了、钱也损失了、人也死了，在灾难面前，我们普通人显得那么弱小和无力。我们能做什么呢？自救。 今天听说美国若干个州也受灾了，气象专家说：中国和美国受灾都是&amp;#39;拉尼娜&amp;#39;现象引起的全球大气环流异常导致的。至于产生&amp;#39;拉尼娜&amp;#39;的原因，我猜多半是人类&amp;#39;自食恶果&amp;#39;。老天在惩罚人类...</description></item><item><title>查表法求解'自然数对'问题</title><link>https://tonybai.com/2008/01/29/use-searching-table-to-solve-natural-number-pair-problem/</link><pubDate>Tue, 29 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/29/use-searching-table-to-solve-natural-number-pair-problem/</guid><description>‘自然数对’是这样的一对自然数，他们的和与差的结果都是平方数，比如：自然数对32和68，根据定义32+68 = 100 = 10^2，68-32 = 36 = 6^2。现在的题目是：根据输入的两个100以内的自然数，打印出这两个整数之间的所有自然数对。 这道题不难，而且限制了范围，在两个100以内的自然数区间，很多人马上就能给出程序。这道题的有两个点需要思考：一个是关于平方数的判断；另一个就是两个...</description></item><item><title>三角形输出问题考量</title><link>https://tonybai.com/2008/01/27/solve-triangle-print-problem/</link><pubDate>Sun, 27 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/27/solve-triangle-print-problem/</guid><description>相信很多人在初学某门计算机语言的时候都会做过类似的题目：在控制台上输出用特定字符&amp;#39;拼&amp;#39;出来的某种图形，比如下面的这种三角形：     \*    \*\*\*   \*\*\*\*\*  \*\*\*\*\*\*\* \*\*\*\*\*\*\*\*\* 这样的问题应该算是入门级的了，大多人都是看之，做之，忘之，而今天我就拿这种入门级的题目说事，小问题里也许内含有大道理。 昨晚无意中在编程爱好者论...</description></item><item><title>年会归来</title><link>https://tonybai.com/2008/01/26/return-back-from-annual-meeting/</link><pubDate>Sat, 26 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/26/return-back-from-annual-meeting/</guid><description>一年一度的部门年会今晚在Golden Hotel举行，这次是我入司以来参加的第四次年会，晚会和以往一样，还是很热烈、很搞笑，而我还是一如继往的’不走运’，最终抽奖连一个三等奖都和我无缘，呵呵。 记得04年参加第一次年会时，部门一共才不到七桌，那年的新员工算上我一共才8个人；而今年我们摆了20几桌，人员规模扩张了3倍多。这两年部门的效益不错，人员规模扩张的很快。考虑到人均绩效的不降低，部门今年的人才...</description></item><item><title>体验手机写博客</title><link>https://tonybai.com/2008/01/25/writing-blog-through-mobile-phone/</link><pubDate>Fri, 25 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/25/writing-blog-through-mobile-phone/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>开发程序不能太'单纯'</title><link>https://tonybai.com/2008/01/23/programmers-should-not-be-too-pure/</link><pubDate>Wed, 23 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/23/programmers-should-not-be-too-pure/</guid><description>昨天凌晨，突然接到云南移动哥们的电话，说他们正在进行的全网割接出现了问题，当时只有我们的产品遇到这样的问题，其他省的其他厂商的产品都已经顺利通过测试了。迷迷糊糊的我无奈的起床，开机，查找问题，这也让我体会到了这几天北方的夜晚的冷啊。 花了一段时间对底层的协议包进行了分析，发现我们产品发出去的消息包的那个域后面的确随机的分布着一些乱码字符。譬如我们的消息发送的目的地址是1069999333(Goog...</description></item><item><title>推进项目改进，难!</title><link>https://tonybai.com/2008/01/22/difficult-to-reform-in-current-project/</link><pubDate>Tue, 22 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/22/difficult-to-reform-in-current-project/</guid><description>自从去年年初搬到新办公室后，各个项目组都分到了各个独立的空间了，平时&amp;#39;抬头不见低头见&amp;#39;的情形减少了，随意拉把椅子坐下来谈技术的情形也减少了，随之而来的是项目组&amp;#39;各自为战&amp;#39;，经过近一年的发展，各个项目组在局部的发展上已经出现差异了。 在现在带的这个项目之前，曾经有意识的去了解了一下其他组的技术发展情况，主要是针对Java开发这块。了解的结果让我意识到我们组的Java开发已经&amp;#39;落后&amp;#39;了。其实我们组的J...</description></item><item><title>都是病毒惹得祸</title><link>https://tonybai.com/2008/01/18/a-disaster-caused-by-virus/</link><pubDate>Fri, 18 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/18/a-disaster-caused-by-virus/</guid><description>上周日下午，接到同事的一个寻求支持的电话，原来是部门以前给中国联通做的一个运行在PC服务器上的程序在每天凌晨出现&amp;#39;挂死&amp;#39;情况，导致程序运行中断，问题连续几天复现。程序是老程序，在不下十多个省运行，一直都很稳定。通过联通的人发过来的截图，很难定位问题所在，所以只能打车到了联通机房现场查看了。 还是那句话，维护别人的又是自己不熟悉的程序那真是痛苦的，好久都不在Windows上写程序、调程序了，API都...</description></item><item><title>再谈如何评价人的技巧</title><link>https://tonybai.com/2008/01/15/talk-about-how-to-evaluate-persion-again/</link><pubDate>Tue, 15 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/15/talk-about-how-to-evaluate-persion-again/</guid><description>之所以再写这个话题，源于今天发生一个&amp;#34;小事件&amp;#34;。今天是主管绩效反馈的最后一天，我负责评价其中的三个新员工，其中一个员工对我的评价提出了&amp;#39;异议&amp;#39;。 为了这次&amp;#39;异议&amp;#39;，我安排了一次和他面对面的谈话，其实这次谈话早在其试用期结束时就该安排了，只是当时副部长替我把这个活儿做了。这位新员工去年年初到公司实习，实习后，带他的mentor给他的评语不错，以致07年中期他入司的时候我们对他期望很高，当然要求也比其...</description></item><item><title>万枚硬币送出人间温暖</title><link>https://tonybai.com/2008/01/14/ten-thousand-coins-warm-the-world/</link><pubDate>Mon, 14 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/14/ten-thousand-coins-warm-the-world/</guid><description>这是一幅爱心捐款活动中的图片，此次活动主题是的&amp;#34;唤醒沉睡硬币温暖山乡孩子&amp;#34;。在此次活动中浙江省数百所中小学校的学生们用他们储蓄罐中的零用钱一共为山乡孩子们捐了近30万元的爱心款，在这近30万元的爱心款中，硬币约21万枚。</description></item><item><title>国家出台禁止免费提供塑料袋规定</title><link>https://tonybai.com/2008/01/10/my-country-forbid-free-plastic-bag/</link><pubDate>Thu, 10 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/10/my-country-forbid-free-plastic-bag/</guid><description>昨晚的新闻联播中播报了：国务院办公厅的关于&amp;#34;6月起全国禁止免费提供塑料购物袋&amp;#34;的新闻，对于国家的这一决定我当然是举双手赞成，但是规定的执行是否如政府所愿，我想还需要各方面持续不断的细致工作。 我想关于这一规定有两点是需要考虑的： 第一，不要将&amp;#34;有偿使用塑料袋&amp;#34;变成&amp;#34;以卖塑料袋&amp;#34;盈利 国家在规定&amp;#34;有偿使用塑料袋&amp;#34;的同时，还应加大使用布袋、纸袋等环保购物袋的宣传力度，各大超市也有责任去宣传使用环保袋，...</description></item><item><title>如何评价一个人</title><link>https://tonybai.com/2008/01/09/how-to-evaluate-a-person/</link><pubDate>Wed, 09 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/09/how-to-evaluate-a-person/</guid><description>又到年终，各个单位都会开始自己的绩效考核和评优工作，这些工作中不免会有一项就是&amp;#39;评价你的同事&amp;#39;。刚入司的时候，没机会评价他人，工作年头多了，自然就有了&amp;#39;权力&amp;#39;去评价他人，这个评价对于被评价人当然是十分重要了，可能直接关系到他的奖金、薪水涨幅以及更好的机会，所以每当要给别人评价的时候，心里都&amp;#39;发虚&amp;#39;，生怕自己的评价不能完全反映这个人真实情况，带来些不好的后果。 也许&amp;#34;如何评价一个人&amp;#34;这个题目有些大，...</description></item><item><title>我的ClustrMap Show</title><link>https://tonybai.com/2008/01/09/my-clustrmap-show/</link><pubDate>Wed, 09 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/09/my-clustrmap-show/</guid><description>今天在前台看了一下自己的blog主页面，发现自己定制的ClustrMap好像是重新开始计数了，经查才知道ClustrMap一年一Archive，以前的统计都被Archive了。 我也顺便看了一下自己的200701-200801的archive图片，从图上来看，估计凡是有访问我Blog的地方都是有中国人的地方。这里贴出来Show一下。不得不感叹：网络这东西真是将世界变小了。还记得2006年末一位还在...</description></item><item><title>QA人员一定要有实际项目经验</title><link>https://tonybai.com/2008/01/07/qa-must-have-experience-in-real-project/</link><pubDate>Mon, 07 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/07/qa-must-have-experience-in-real-project/</guid><description>最近一段时间正处于项目策划阶段，这个阶段势必要和部门QA打交道，咨询问题并获取支持。按照我们公司的软件开发流程，策划阶段要输出一系列文档的。这些文档都是有公司模板或者是经部门裁剪后模板作为基础的，所以现在项目前期策划基本上就是按照自己的思路填写文档，估计很多公司也都是这么做的。 好不容易花了一个星期的时间把这些文档&amp;#39;填全&amp;#39;了。提交给QA，让之帮忙审审。QA的一封邮件回来，问题多多。 当我看到这些Q...</description></item><item><title>程序员与影视作品</title><link>https://tonybai.com/2008/01/07/programmers-and-films-and-television-programs/</link><pubDate>Mon, 07 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/07/programmers-and-films-and-television-programs/</guid><description>午休时看到CSDN上的一篇叫’外行人看软件:看有感‘的文章，这又让我想起07年看完’虎胆龙威4‘后的那个问题：现在影视著作中表现程序员这个行当的作品太少了，包括书籍杂志也是这样，我记忆里是没看到哪部畅销小说是写程序员的。 隐约记得央视很多年前有一部电视剧叫&amp;#34;牵手&amp;#34;的，那里的主角-由吴若甫饰演的是搞软件开发的，但是剧中基本没有程序员典型生活的描写，主要还是以爱情作为主线。起码这也算是我看到的第一部有...</description></item><item><title>'演好自己的戏，有意义'</title><link>https://tonybai.com/2008/01/01/it-does-make-sense-to-play-yourself-well/</link><pubDate>Tue, 01 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/01/it-does-make-sense-to-play-yourself-well/</guid><description>&amp;#39;演好自己的戏，有意义&amp;#39;，这是饰演&amp;#39;许三多&amp;#39;的&amp;#39;傻根&amp;#39;王宝强在昨晚新闻频道的一则栏目中给观众们的留言。在生活中也一如许三多一样单纯的王宝强说出了我们大家心中的声音。都说生活如戏，戏如人生，我们每个人在这个社会中都饰演着多种角色，父母、儿女、同事、同学等等，能真正将这些角色都演好，真的很难；如果能演好这些戏，难道不是很有意义吗:) 翻看自己的2007年所写的博客，从到不多不少一共110篇(很凑巧的数...</description></item><item><title>集结一起看'集结号'</title><link>https://tonybai.com/2007/12/30/watch-film-assembly-together/</link><pubDate>Sun, 30 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/30/watch-film-assembly-together/</guid><description>昨天是2007年的最后一个工作日，我们项目组的集体活动也定在了昨天晚上。经过组员的投票、统计和确认，我们最终排除了滑雪、真人CS，选择集体一起看最新冯小刚的大片&amp;#39;集结号&amp;#39;+ 片后大餐。 回想起来自从初中毕业后，就再也没有过集体看电影的经历了。现在一般都是和GF一起去看，多数情况下都是两个人，当然也有和朋友、同学一起去看的时候，多则不超过5个人。像昨天我们&amp;#39;兴师动众&amp;#39;几十号人一起看电影的情形真是让人...</description></item><item><title>'未来狂想曲'后的狂想</title><link>https://tonybai.com/2007/12/28/thoughts-after-watching-the-future-is-wild/</link><pubDate>Fri, 28 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/28/thoughts-after-watching-the-future-is-wild/</guid><description>昨晚大致看了两集由Discovery制作的一部电视片-&amp;#34;未来狂想曲&amp;#34;，在片中科学家为我们展示了500万年后地球上的景象，据片中描述片中科学家的想象和预测是有依据的，是建立在科学研究之上的。不出所料，在片中，我们已经看不到现在地球的主宰者-人类了。 也许是因为看了这部片子的原因，昨晚做了一个&amp;#39;灾难片&amp;#39;似的梦-&amp;#34;在几十米高的洪水袭击着我们的家园的时候，我们逃亡的经历&amp;#34;，有些类似&amp;#39;后天&amp;#39;中洪水袭击纽约的...</description></item><item><title>'北极圈之王'的无奈</title><link>https://tonybai.com/2007/12/19/the-helpless-of-polar-bear/</link><pubDate>Wed, 19 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/19/the-helpless-of-polar-bear/</guid><description>午间休息时在新浪网看到贴出的英国野生生物摄影奖的一幅作品，很是震撼。这里转发一下，并临时改了名字：&amp;#34;北极之王&amp;#34;的无奈。 作品的原名叫：极地冰融(Polar meltdown) 拍摄者是：阿恩·纳维拉 这幅作品很显然是呼吁全世界人们一起行动起来保护我们赖以生存的家园 – 地球。不知道大家看了这幅作品后是一种什么样的感受？</description></item><item><title>也谈’SIGBUS和SIGSEGV’</title><link>https://tonybai.com/2007/12/19/also-talk-about-sigbus-and-sigsegv/</link><pubDate>Wed, 19 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/19/also-talk-about-sigbus-and-sigsegv/</guid><description>SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情，弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的。 我们来看两段程序： //testsigsegv.c int main() {         char \*pc = (char\*)0×00001111;         \*pc = 17; } //testsigbu...</description></item><item><title>一个很有意思的Bug</title><link>https://tonybai.com/2007/12/18/an-funny-bug/</link><pubDate>Tue, 18 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/18/an-funny-bug/</guid><description>这个Bug源于昨天凌晨的一次版本升级失败。睡了一大觉后，下午回到公司，重现了这个问题并找到了原因，发现这的确是一个&amp;#39;很有意思的Bug&amp;#39;。 系统在从数据库初始化过程中遇到了问题：在读取数据库数据时，提示ORA-24373错误。手册上对ORA-24373的解释是这样的： ORA-24373: invalid length specified for statement Cause: The lengt...</description></item><item><title>从'即将消失的曼谷'说起</title><link>https://tonybai.com/2007/12/12/thought-on-disappearing-bangkok/</link><pubDate>Wed, 12 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/12/thought-on-disappearing-bangkok/</guid><description>昨晚看了央视二套的一则晚间新闻，说的是由于全球变暖、海平面上升，曼谷靠海一侧的很多原先是居民们赖以生存的环境都被汹涌的海水所淹没了，而且据专家预测：按照如此速度发展，20年后泰国首都曼谷将成为水下城市。 不知道最近大家是否发现：各大媒体对&amp;#39;全球变暖&amp;#39;这个字样提及甚多，&amp;#39;全球变暖&amp;#39;已经不再是专家们研究的术语了，它已经直接开始影响到我们普通人的生活了。目前世界各国的经济、政治、生活也越来越多与&amp;#39;全球变...</description></item><item><title>Blogbus在线编辑器不支持代码缩进了</title><link>https://tonybai.com/2007/12/10/the-editor-of-blogbus-do-not-support-indent/</link><pubDate>Mon, 10 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/10/the-editor-of-blogbus-do-not-support-indent/</guid><description>上周末提交了一篇&amp;#34;符号连接那些事儿&amp;#34;，但是从前台访问该文章后，发现文章里的代码缩进都被删除了，导致文章布局甚是难看。回到后台的文档编辑器，手工敲入空格或TAB，提交后发现空格和TAB 仍然被过滤，今天和Blogbus客服沟通了一番，得知Blogbus在线编辑器对文章内容作了一次整体过滤和格式统一，这样就导致代码缩进被过滤了。寒! 不过据客服说，如果文章第一次提交后未编辑修改，缩进还是可以保留的，所...</description></item><item><title>'追爱总动员'-一部让你90分钟保持轻松快乐的电影</title><link>https://tonybai.com/2007/12/09/film-falling-in-love/</link><pubDate>Sun, 09 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/09/film-falling-in-love/</guid><description>习惯了边看吃饭边看电影，今晚央视电影频道上映一部今年年初推出的电影&amp;#34;追爱总动员&amp;#34;。一般来说：好看的让我感到心情放松快乐的电影总会使我情不自禁的站立起来，然后随着电影的进行，不自觉的像个孩子似的手舞足蹈，甚至高声哼唱电影中美妙的主题曲。之后就是有感而发的写下这篇Blog，没有别的目的，就是想把这部能让你保持90分钟轻松和快乐的电影推荐给大家。 &amp;#34;追爱总动员&amp;#34;这部电影是高亚麟指导的第一部电影，高亚麟就...</description></item><item><title>'符号连接'那些事儿</title><link>https://tonybai.com/2007/12/08/those-things-about-symbol-linkage/</link><pubDate>Sat, 08 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/08/those-things-about-symbol-linkage/</guid><description>我们在编译自己开发的程序或者一些开源软件的时候，常常遇到类似如下的编译器错误信息： 未定义 文件中的 符号 在文件中 i /var/tmp//ccU4sj6I.o func /var/tmp//ccU4sj6I.o ld: 致命的: 符号参照错误. 没有输出被写入a.out collect2: ld returned 1 exit status 或&amp;#34;undefined reference to &amp;#39;...</description></item><item><title>回顾TCP协议那些事儿</title><link>https://tonybai.com/2007/12/06/review-tcp-protocol/</link><pubDate>Thu, 06 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/06/review-tcp-protocol/</guid><description>我不是计算机科班出身。记得大学的时候旁听计算机系的网络课，当时计算机系使用教材是&amp;#34;计算机网络–自顶向下方法与Internet特色&amp;#34;的影印版，这本教材与众不同的一个地方就是作者JAMES F.KUROSE和KEITH W.ROSS采用了&amp;#39;自顶向下&amp;#39;的编排思路，先从应用层开始，最后讲到物理层。而且这本书在语言上形象生动，通俗易懂。只怪我当初没有一心一意听讲，到现在存在我的脑子中的基本概念居多，深刻理解...</description></item><item><title>亲历Eee PC实机</title><link>https://tonybai.com/2007/12/02/my-experience-of-eee-pc/</link><pubDate>Sun, 02 Dec 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/12/02/my-experience-of-eee-pc/</guid><description>热度颇高的Eee PC已经于11月24日在中国内地上市了，但直到今日我才在卖场看到了Eee PC的实机，这里就谈谈对Eee PC实机的第一印象。 华硕在全国的国美卖场设置Eee PC的专柜，晚上去沈城的鹏润电器看电砂锅，突然想起Eee PC，于是走向笔记本卖区。在笔记本卖区一眼就看到Eee PC大大的广告，在展台上明亮的灯光下，一黑一白两台Eee PC静静的放在那里。由于晚上人较少，所以比较容易的...</description></item><item><title>也谈'万能'栈</title><link>https://tonybai.com/2007/11/27/also-talk-about-univerisal-stack/</link><pubDate>Tue, 27 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/27/also-talk-about-univerisal-stack/</guid><description>在网上搜索&amp;#34;万能&amp;#34;二字的英文翻译，结果却无意中看到有人提到了如何设计&amp;#34;万能栈&amp;#34;。栈(stack)是比较基础(fundamental)的数据结构，实现起来一般都比较容易。但一般的栈(stack)的实现都是局限于某种特定类型的，比如一个存储32-bit整型的栈。如果对于同一份栈实现，要求可以存储多种数据类型的话，那就需要仔细想想了。而这样的栈实现也就被戏称&amp;#34;万能&amp;#34;栈。 这里对&amp;#34;万能&amp;#34;栈再做一个分类：同...</description></item><item><title>'嫦娥'发回月球照片</title><link>https://tonybai.com/2007/11/26/the-picture-of-moon-sent-back-from-chang-e-1/</link><pubDate>Mon, 26 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/26/the-picture-of-moon-sent-back-from-chang-e-1/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>见证国足进入死亡之组</title><link>https://tonybai.com/2007/11/26/national-football-team-is-assigned-to-the-group-of-death/</link><pubDate>Mon, 26 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/26/national-football-team-is-assigned-to-the-group-of-death/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>又获Ubuntu 7.10光盘</title><link>https://tonybai.com/2007/11/25/got-ubuntu-7-disc/</link><pubDate>Sun, 25 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/25/got-ubuntu-7-disc/</guid><description>Mark Shuttleworth，Ubuntu的创始人，给了Ubuntu爱好者一个免费获取Ubuntu光盘的机会，自从去年年初收到一次Ubuntu 5.10的光盘后，昨天我又拿到了最新的Ubuntu 7.10的光盘。 去年的光盘数目很多，估计当时的Canonical是为了扩大自己的linux distribution的影响，在&amp;#34;shipit&amp;#34;页面上鼓励你多多索取光盘。也正如Canonical所期...</description></item><item><title>Eee PC内地上市，价格略偏高</title><link>https://tonybai.com/2007/11/24/eee-pc-is-available-on-the-market/</link><pubDate>Sat, 24 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/24/eee-pc-is-available-on-the-market/</guid><description>曾经在淘宝网一度炒到近5000元的华硕Asus Eee PC终于于今天登陆中国内地市场了，现在如果你方便访问国美北京分站的话，你就会看到屏幕上醒目的Asus Eee PC的广告了，国美出售的Eee PC的规格是4G固态硬盘、512M内存，5200ma锂电池，网购售价：2999元。 Eee PC最大卖点无非这么几个： 1、0.92公斤； 2、固态硬盘设计，稳定抗震，数据无忧； 3、开关机速度快； 4...</description></item><item><title>'集结号'即将吹响</title><link>https://tonybai.com/2007/11/17/film-assembly-is-comming/</link><pubDate>Sat, 17 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/17/film-assembly-is-comming/</guid><description>早上看CCTV-6的中国电影报道，看到了冯小刚导演的首部战争片&amp;#34;集结号&amp;#34;的片花，以及杨坤为这部电影创作的MV-&amp;#34;兄弟&amp;#34;。这又是一部男人戏，继&amp;#34;士兵突击&amp;#34;后的又一部男人戏，片花中战争场面以及MV歌声中蕴含的情感给我的第一印象是感动和震撼。 在sina视频上又一次完整的看了一遍&amp;#34;兄弟&amp;#34;这部MV，感觉这是一部类似美国&amp;#34;拯救大兵瑞恩&amp;#34;或&amp;#34;风语者&amp;#34;的电影，但是我想影片中的情感的表达应该要强于后两者，对情感的...</description></item><item><title>第一次网上买书</title><link>https://tonybai.com/2007/11/15/buy-book-on-internet-for-the-first-time/</link><pubDate>Thu, 15 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/15/buy-book-on-internet-for-the-first-time/</guid><description>也许有人会笑话我，但这是事实，前天我才收到我第一次网购的两本书。在这个互联网发达的年代，这个&amp;#34;第一次&amp;#34;未免有些落伍了。其实不在网上买书也是有原因的，现在的书店也是打折很多的，还有很多与公司有协议的，拿着工卡就打更多折扣，特别是计算机图书，社科类的书倒是没有这么大折扣。 这次是从互动出版网(china-pub)买的书。互通出版网成立于2000年7月，我也是那个时间进入大学学习并开始接触计算机和网络的...</description></item><item><title>这种美味，你咽的下去吗？</title><link>https://tonybai.com/2007/11/15/you-should-not-eat-such-food/</link><pubDate>Thu, 15 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/15/you-should-not-eat-such-food/</guid><description>晚上一边吃饭一边欣赏电视节目，电视屏幕在手中遥控器的控制下闪烁，调到CCTV-10，屏幕上的三个人正在讲如何做鱼翅？也许看到这你会以为这是一栏饮食节目，错，这个时段播放的是’绿色空间’。 鱼翅是否有营养是否好吃，我不知道，我也没有吃过，不过我这里要讲一下鱼翅的产生过程。当然这是我刚出电视上看到的，以前偶尔也听说过，不过没有看到Video，没有直观的感受罢了，念想也就不那么深刻。 先说说鱼翅是什么吧...</description></item><item><title>面对'错误'的抉择</title><link>https://tonybai.com/2007/11/13/the-choice-when-dealing-with-errors/</link><pubDate>Tue, 13 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/13/the-choice-when-dealing-with-errors/</guid><description>大凡写程序者，都会遇到错误； 大凡写程序者也都知道两种错误处理的机制：传统的&amp;#39;错误码返回机制&amp;#39;和&amp;#39;面向对象语言引入的异常处理机制&amp;#39;。 人们常常会在这两种机制之间徘徊不定，难以抉择。但有两类人大可不必为此头痛，他们是坚决只使用&amp;#39;错误码返回机制&amp;#39;的人，和坚决只使用&amp;#39;异常处理机制&amp;#39;的人。而苦就苦了摇摆在中间，思索不定的那些人了。这群人有一个特点就是不停的问：&amp;#34;什么是异常？什么时候该使用错误码返回？什么时...</description></item><item><title>遭遇Heap溢出</title><link>https://tonybai.com/2007/11/10/debug-heap-overflow/</link><pubDate>Sat, 10 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/10/debug-heap-overflow/</guid><description>今天凌晨配合云南移动进行局数据全量升级，本来以为是件很轻松的活计，甚至不需要我动手的事情，结果却又是一次惨痛的教训啊。 这个活计其实真的很简单，就是将数据库中的旧数据全部删除，然后导入新的数据，由于数据量较大需要重启一次我们的系统。问题就在重启系统上。摆在我面前的就是&amp;#34;重启失败&amp;#34;，系统dump一个core文件。通过pstack和gdb查看如下： core &amp;#39;core&amp;#39; of 7971: xxxxx...</description></item><item><title>读'代码修改艺术'，可观其大略</title><link>https://tonybai.com/2007/11/09/know-its-general-aspects-when-reading-working-effectively-with-legacy-code/</link><pubDate>Fri, 09 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/09/know-its-general-aspects-when-reading-working-effectively-with-legacy-code/</guid><description>早在几个月前就从网上下载到了&amp;#34;Working Effectively With Legacy Code&amp;#34;这本书的E版，之所以下这本书是因为看到了&amp;#34;Legacy Code&amp;#34;这两个单词了，说实话当时我并不知晓这本书的价值，只是想当然的认为：这本书可能会有助我改善我所从事的项目中的&amp;#34;Legacy Code&amp;#34;。早在上个月去逛书店时，就看到了书架上的这本&amp;#34;修改代码的艺术&amp;#34;，遗憾的是没有给予足够关注。在最近看...</description></item><item><title>在Solaris上编译Ethereal的注意事项</title><link>https://tonybai.com/2007/11/08/some-notice-about-building-ethereal-on-solaris/</link><pubDate>Thu, 08 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/08/some-notice-about-building-ethereal-on-solaris/</guid><description>自从上次&amp;#39;编译Ethereal On Windows&amp;#39;之后，好久没有接触Ethereal了，前期策划的基于Ethereal开发的一个工具的任务就落到了这批来的一个新员工的头上了。第一阶段他在Windows上开发了一个基于Ethereal的插件用于分析CMPP协议之用；第二个阶段我们需要移植到Unix上，我们使用的是Solaris。 目标机器是一个x86的Solaris10的系统，首先是将Ether...</description></item><item><title>也谈计算机字符编码</title><link>https://tonybai.com/2007/11/03/also-talk-about-char-encoding/</link><pubDate>Sat, 03 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/03/also-talk-about-char-encoding/</guid><description>以前真的未就计算字符编码有过什么深入的学习探究，这次学习也是源于客户的一次投诉。客户的投诉简要来说就是：我们的网关在截断客户发的长度越限的短信内容时，导致该短信在终端上显示为乱码。顺着这个起因，我花了一些时间概要性的学习了一些关于计算机字符编码的常识性知识。 字符，这个我们在平时编码过程中最最常见的元素，其实也有着一段小故事。 计算机，毫无疑问是一部机器，在最初我们接触计算机时或者接收计算机教育时...</description></item><item><title>不是不奉献</title><link>https://tonybai.com/2007/11/02/the-reason-for-not-dedicate/</link><pubDate>Fri, 02 Nov 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/11/02/the-reason-for-not-dedicate/</guid><description>中午在CSDN上看到一则新闻，说的是&amp;#34;中国开源社区热潮背后 缺少奉献型人才&amp;#34;，看完后有些感触，也就想在这里说两句。 谈到为开源项目奉献，我认为首先要具备三个条件： 1、投身开源的热情，即有奉献的意愿； 2、参与开源的技术能力，这里是指能参与到某开源项目核心或主力开发行列的能力；当然你要说参与开源的形式是多样的。如提交一个bug，辅助做一个模块测试同样也是为开源奉献，这里我也不否定，见仁见智。 3、...</description></item><item><title>关注'百元PC'</title><link>https://tonybai.com/2007/10/25/focus-olpc/</link><pubDate>Thu, 25 Oct 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/10/25/focus-olpc/</guid><description>由于公司在郊区，我住在市内，所以每天上下班需要乘坐公司班车。坐班车单程的时间约是35分钟。时间不长但是也不能浪费掉啊。总喜欢在班车高速行驶的过程中思考问题，身体处于高速状态下的我，思维很发散，常常有一些新的想法和心得，这时就想做记录，而手头上唯一能用的就是我的A780手机，这时有人会问为什么不能用纸笔呢？在北方生活的人都知道一般每年这个季节下班的时候天基本已经黑乎乎了，纸笔也 就发挥不了作用了。而...</description></item><item><title>推荐雅虎收藏</title><link>https://tonybai.com/2007/10/24/recommend-yahoo-shoucang/</link><pubDate>Wed, 24 Oct 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/10/24/recommend-yahoo-shoucang/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>冰人笑到最后，汉密尔顿虎头蛇尾</title><link>https://tonybai.com/2007/10/22/finally-raikkonen-win-hamilton-fail/</link><pubDate>Mon, 22 Oct 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/10/22/finally-raikkonen-win-hamilton-fail/</guid><description>2007年F1大奖赛全年的比赛在巴西落下帷幕，冰人莱科宁以全年6站冠军的成绩出人意料的逆转之前一直雄踞车手积分榜榜首的汉密尔顿夺取本年度F1车手总冠军，这也是莱科宁职业生涯的第一个世界冠军。 看完比赛，汉迷们不由得为汉密尔顿惋惜，汉有太多的机会拿下本年的世界冠军了，中国大奖赛本就可以提前夺冠的，即便中国站失守，只要最后一站排在莱科宁和阿隆索前面也一样可以夺冠，可运气偏偏不在这位英国黑小伙身上。即中...</description></item><item><title>口诛笔伐'黄金周'</title><link>https://tonybai.com/2007/10/09/the-criticism-on-golden-week/</link><pubDate>Tue, 09 Oct 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/10/09/the-criticism-on-golden-week/</guid><description>昨日是十一黄金周之后的第一个工作日，也就是在昨天看到网上消息说，国家相关部门正在考虑调整所谓的黄金周休假方案。已经记不清楚黄金周这样的休假制度施行了多少个春秋了，隐约记得刚刚出台黄金周制度的时候，当时还是很兴奋的，因为毕竟是当时是学生，对于一下连休7天甚至更多感到很是兴奋，不过现在面对黄金周我实在是兴奋不起来，因为深深感到黄金周给自己和周围的人带来的’痛苦’。 中国在未改革公民休假制度之前，那时国...</description></item><item><title>浅谈如何编码使程序更易维护</title><link>https://tonybai.com/2007/09/30/thoughts-on-how-to-make-code-more-maintainable/</link><pubDate>Sun, 30 Sep 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/09/30/thoughts-on-how-to-make-code-more-maintainable/</guid><description>毕业后就一直从事于服务器端程序的开发，主要客户是中国移动，大家知道移动的产品都是电信级的，稍出差错后果都是严重的，所以在我们平时的工作中除了研发之外，还有的就是对我们卖给移动的产品的维护性工作，而这种维护性工作要求就是要&amp;#34;迅速解决现场的问题&amp;#34;。这几个月维护工作占据了我很大一部分精力，说实话，有些烦了，但是从另外一个角度来看，也说明了我们的产品在维护性方面做的不够好，否则移动的工作人员或当地的技术支...</description></item><item><title>三场比赛确立诺坎普新国王</title><link>https://tonybai.com/2007/09/30/3-matches-establish-new-king-of-barca/</link><pubDate>Sun, 30 Sep 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/09/30/3-matches-establish-new-king-of-barca/</guid><description>关心足球的球迷都会及早得到这条消息，在今天凌晨举行的西甲联赛第6轮的一场比赛中，豪门巴塞罗那以4:1狂扫弱旅莱万特队，也许本场比赛中上演了帽子戏法的亨利更吸引人的眼球，但是回顾这阶段巴萨参加的1场欧冠，两场联赛，你会发现在混世魔王小罗缺阵的情况下，另一位诺坎普新国王诞生了。 巴萨今年联赛的阵容，可谓是欧洲最豪华，其前场的超级进攻阵容真是用什么辞藻表达都不过分。但是事情却往往不像人们看到的那样一番风...</description></item><item><title>整体实力差距太大，女足复兴需来日</title><link>https://tonybai.com/2007/09/16/national-women-football-team-need-time-to-rebirth/</link><pubDate>Sun, 16 Sep 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/09/16/national-women-football-team-need-time-to-rebirth/</guid><description>相信很多人看了昨晚的女足vs.巴西的比赛，比赛输了固然让国人伤心，但是我们又不得不承认我们的实力照比巴西女足已经差了一个档次，下一步要做的就是虚心学习，努力提高了。 从昨晚的比赛来看，女足除了在某几个时刻有某几个人闪亮那么一下之外，整场比赛都在巴西人的节奏控制之下。无论是个人能力还是整体攻防女足都是彻头彻尾的输了。巴西人展现出来巴西男足般华丽的脚法与意识，这是场上中国女足都没法相比的，而且可以看得...</description></item><item><title>女足今亮相，期望莫太高</title><link>https://tonybai.com/2007/09/12/do-not-expect-too-high-to-national-women-soccer-team/</link><pubDate>Wed, 12 Sep 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/09/12/do-not-expect-too-high-to-national-women-soccer-team/</guid><description>被分在D组的中国女足今晚终于亮相了，迎战小组第一个对手-丹麦队，从世界排名看，丹麦世界第六，女足排在第十一位，但是按照央视解说员的说法：排名并不完全说明实力，而且从历史战绩来看，中国队占有优势；而且女足在武汉这个地方还从未有过败绩，就在这种略有些自我安慰的状态下，女足开始了自己的2007世界杯之旅。 中国的球迷依旧那么热情的支持着中国女足，偌大一个体育场除了狂热的球迷，已无落脚之地，球迷们准备的巨...</description></item><item><title>门将乌龙-2007女足世界杯之首粒入球</title><link>https://tonybai.com/2007/09/10/first-goal-of-the-women-football-worldcup/</link><pubDate>Mon, 10 Sep 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/09/10/first-goal-of-the-women-football-worldcup/</guid><description>今晚2007年女足世界杯开幕了，开幕式继承了足球世界杯开幕式一贯简短的风格，当孙雯将&amp;#34;圣球&amp;#34;放到杯架上后，开幕式随即进入高潮。 由于世界杯规则改变，开幕式比赛将由上届世界杯的冠军德国队与另一个南美队伍阿根廷队之间进行，作为东道主的中国队失去了首演的资格。德国队在当今女足可以说技术身体都占有优势，比赛也就按照德国队的节奏进行。 不出意料，上半场前24分钟，德国四次破门，其中一次因越位而无效，但是出人...</description></item><item><title>治牙记</title><link>https://tonybai.com/2007/08/23/dental-treatment-note/</link><pubDate>Thu, 23 Aug 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/08/23/dental-treatment-note/</guid><description>打开我的blog首页突然感觉到自己已经好久没有更新blog了，最近事情太多，有公司的也有个人的，这不自己的牙最近出了些问题，让我百受煎熬，无奈之下来到牙科医院，开始自己的治牙历程。 其实牙疼源于8月15日的那个周三，晚上与GF逛街回来，甚是口渴，遂从冰箱中取出冰镇西瓜，大吃特吃起来，吃完才发觉那颗问题牙开始疼了，以前偶尔疼一次也就多说2个小时，可这次真是要了我的小命了，整整一宿也没让我消停。第二天...</description></item><item><title>马拉多纳开创'世青赛'巨星之路</title><link>https://tonybai.com/2007/07/27/maradona-initiate-the-way-to-giant-star-of-world-youth-soccer/</link><pubDate>Fri, 27 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/27/maradona-initiate-the-way-to-giant-star-of-world-youth-soccer/</guid><description>在刚刚结束的世界青年足球U20锦标赛中，以阿圭罗和莫拉雷斯为代表的阿根廷队蝉联冠军，这是阿根廷在最近的7届U20赛事中的第5次夺冠了。阿根廷的主力10号阿圭罗同时获得最佳球员和最佳射手的称号，这是既上届荷兰世青赛U20梅西之后又一位包揽金球奖和金靴奖的冠军10号成员了。这两年阿根廷出了太多才华横溢的球员，梅西、特维斯、阿圭罗等，他们都被比作球王马拉多纳的接班人。我也顺便在网络上搜索了一下，原来在2...</description></item><item><title>国美送货服务让人失望！</title><link>https://tonybai.com/2007/07/24/delivery-service-of-gome-make-me-disppointed/</link><pubDate>Tue, 24 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/24/delivery-service-of-gome-make-me-disppointed/</guid><description>上周日在沈阳国美买了一款西门子冰箱，在送货栏上写明：当天晚上7点送货，结果：我的冰箱现在还在外面货车上跟车呢。 国美网站上送货上门说明是这样的： 送货上门是国美网上商城自开通运营以来一直为广大顾客提供的特色服务之一，国美网上商城销售商品由国美专业配送服务人员进行集中配送，以保证顾客购买商品的配送安全及按时送达，由于此种送货方式安全、方便、快捷及服务标准统一，因此得到广大顾客的认可和支持！ 这里所谓...</description></item><item><title>汉密尔顿走下'神坛'</title><link>https://tonybai.com/2007/07/24/hamilton-step-down-altar/</link><pubDate>Tue, 24 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/24/hamilton-step-down-altar/</guid><description>汉密尔顿是人，在连续9次登上本赛季F1各分站赛的领奖台后，汉密尔顿终于在第10站纽伯格林赛道走下&amp;#39;神坛&amp;#39;。 不得不说汉密尔顿缺少点运气，在F1本赛季的下半阶段的第一站的排位赛，汉密尔顿的赛车右前轮居然因为松动而使汉密尔顿重重的撞到了护栏上，导致受伤，退出排位赛。虽说伤势不重，可以参加正赛，但是要在第10位发车，这势必会影响其成绩。但是即使这样汉密尔顿仍然有登上领奖台的希望。 正赛一开始，汉密尔顿果...</description></item><item><title>清醒吧，国足水平也就这样了</title><link>https://tonybai.com/2007/07/19/sober-yourself-national-football-team-is-indeed-on-such-low-level/</link><pubDate>Thu, 19 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/19/sober-yourself-national-football-team-is-indeed-on-such-low-level/</guid><description>断断续续的看了昨晚亚洲杯C组中国队与乌兹别克斯坦的比赛，说实话，看到中国队丢球心里真是痛心啊，相信中国球迷都会和我有一样的感受。但90分钟比赛结束后，面对被小组淘汰的结局，面对&amp;#34;打平即可出现&amp;#34;的魔咒再次显灵，我们又都想说些什么，也许是球迷对国足的期望太高了或者还是停留在以前对国足的印象里，这里有一句话要和广大中国球迷分享：&amp;#34;清醒吧，国足水平也就这样了&amp;#34;。 比赛输了，什么都不要怪，就怪自己水平不济，...</description></item><item><title>阿根廷人得了冠军'恐惧症'</title><link>https://tonybai.com/2007/07/17/agentina-suffer-champion-phobia/</link><pubDate>Tue, 17 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/17/agentina-suffer-champion-phobia/</guid><description>惊悉蓝白军团0:3负于桑巴军团二队！ 从1998世界杯，到2004美洲杯，到2006世界杯，再到今天的美洲杯决赛，阿根廷人似乎总在重复着一个节奏，小组赛大热到热的发烫，而在某场汰赛中出乎意料的输掉比赛，结局与其身上的蓝色一样带着某种忧郁和悲情, 甚至2002年世界杯小组都没能出线。 里克尔梅的统治力，梅西的灵气在本场美洲杯决赛中都阻挡不了巴西人疯狂的逼抢，阿根廷人郁闷了，他们的印象中的那个老对手巴...</description></item><item><title>发现中国队为什么总踢难看球了</title><link>https://tonybai.com/2007/07/17/the-reason-why-chinese-nation-football-team-play-worse/</link><pubDate>Tue, 17 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/17/the-reason-why-chinese-nation-football-team-play-worse/</guid><description>看了中国和伊朗比赛的球迷，除了略微得意于国足们那开场的若干分钟的表现之外，对国足中后阶段的一贯糟烂表现除了愤慨就是无奈了。 和伊朗的比赛，中国队再次展现其一贯的&amp;#39;节奏&amp;#39;，领先优势一点点被蚕食，然后就是一味的防守。大概想了想中国队以前的若干场比赛，凡是有如此节奏的比赛都有如下特点：后卫总是冲到最前面代替前锋，结果前锋机会被抢走，经常因为本方后卫的干扰而失去进攻机会，而后卫太靠前直接的结果就是后方空虚...</description></item><item><title>哈利波特应该拍成30集电视剧</title><link>https://tonybai.com/2007/07/13/wish-harry-potter-be-a-tv-play/</link><pubDate>Fri, 13 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/13/wish-harry-potter-be-a-tv-play/</guid><description>据moviesoon报道，哈利波特第五部&amp;#34;哈利波特与凤凰社&amp;#34;已在北美、日本、香港以及台湾等地区上映，而且票房甚好，普遍反响是剧情紧凑，没有喘息机会，制作上估计也会继承以前一贯的精良，魔法的展现势必也要更好，但是另外一个负面消息就是剧情删改太多。 因为这部电影大陆要等到8月份才上映(如果我没记错的话)，我们也只能听已经欣赏过该片的Fans们讲述其感受了。在J.K罗琳的小说中&amp;#34;哈利波特与凤凰社&amp;#34;确确实...</description></item><item><title>变形金刚国内上映了</title><link>https://tonybai.com/2007/07/11/film-transformers-comes/</link><pubDate>Wed, 11 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/11/film-transformers-comes/</guid><description>‘举国’关注的美国科幻大片’变形金刚’终于与今天凌晨在国内首映，沈阳今天也是第一天放映，其实早在美国上映后的第二天盗版就在网上出现了，但是相信真正的影迷兼变形金刚迷是不会看这种盗版的，到电影院里享受变形金刚给我们带来的视听享受才是正道。 变形金刚真人版其实拍的恰逢人和之际，为什么这么说呢，变形金刚诞生于80年代，影响的是70、80两代人，而这两代人恰恰是现在的消费主力大军，所以自然不会在乎那百八十...</description></item><item><title>我们和中国队是一个档次的球队，所以要争胜</title><link>https://tonybai.com/2007/07/10/we-are-on-the-same-level-with-chinese-national-football-team/</link><pubDate>Tue, 10 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/10/we-are-on-the-same-level-with-chinese-national-football-team/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>破旧的银石赛道，失落的汉密尔顿</title><link>https://tonybai.com/2007/07/08/hamilton-fail-on-silverstone/</link><pubDate>Sun, 08 Jul 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/07/08/hamilton-fail-on-silverstone/</guid><description>刚刚全程在电视上看完了在英国银石赛道举行的F1英国大奖赛，昨天取得杆位的英国小伙，本赛季新人汉密尔顿并没有如众人所望，拿下该分站赛冠军，而是以一个第三名结束了本赛季F1的上半程，虽然在车手积分榜上依旧领先。 了解F1的人都知道英国的银石赛道历史之悠久，1948年起开始举办英国大奖赛，并在1950年成为第一场F1世界锦标赛的赛场，可以说现代F1赛事就是从该赛道启航的，不过也是由于历史太过悠久，在现代...</description></item><item><title>成功Build ACE</title><link>https://tonybai.com/2007/06/14/build-ace-successfully/</link><pubDate>Thu, 14 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/14/build-ace-successfully/</guid><description>近期公司实行新的绩效考核机制，我的考核目标中就有一项叫做：&amp;#34;成功使用新技术、框架、思路等至少3个&amp;#34;，呵呵，先不论绩效考核机制是否合理，既然已经这样了那就需要去适应。一直在做Network Application，早就知道ACE在业界中的名气，这回有理由找个时间好好挖掘一下ACE的思路，也为我的绩效目标增色啊^\_^。 以上只是开个玩笑罢了。上周末去书店看到电子工业出版社再次出版的&amp;#39;C++网络编程卷...</description></item><item><title>转载'编程大腕'</title><link>https://tonybai.com/2007/06/13/foward-master-programmer/</link><pubDate>Wed, 13 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/13/foward-master-programmer/</guid><description>在公司内网看到一则趣帖，这里转载一下。 编程大腕 写就要写最难懂的程序 用记事本做编辑器 编译就得用最难用的编译器 程序不带半点注释 程序里面至少要有三个类 什么多继承呀, 多线程呀，template呀，inline呀 能给他用的全给他用上 一行里面有while有++有?:有goto 文章里面一定要搬出一个XX哥 用很随意的语气，关系特好的样子 如果自己出书 ，甭管是什么语言 一开头都打印 &amp;#34;he...</description></item><item><title>汉密尔顿夺职业首冠，阿隆索为不地道付出代价</title><link>https://tonybai.com/2007/06/11/hamilton-win-his-frist-substation-champion/</link><pubDate>Mon, 11 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/11/hamilton-win-his-frist-substation-champion/</guid><description>正如在法国摩纳哥站后我谈到的&amp;#39;汉密尔顿，首个分站赛冠军只是时间问题!&amp;#39;一样，在今天凌晨举行的F1加拿大站的比赛中小将汉密尔顿不负众望，继在前天拿到自己F1的第一个杆位后，又拿到了自己职业生涯的第一个分站赛冠军，也是本赛季唯一保持每站都登上领奖台的车手，至于他保持的新人记录仍强劲的持续着。 这站比赛应该说是很精彩，各种精彩比赛因素都具备，10辆赛车退赛，4次安全车出动，特别是库比卡的&amp;#39;撞车表演&amp;#39;更是...</description></item><item><title>惊见凯旋门</title><link>https://tonybai.com/2007/06/09/found-the-triumphal-arch-in-3d-driving-game/</link><pubDate>Sat, 09 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/09/found-the-triumphal-arch-in-3d-driving-game/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>'山'上近况</title><link>https://tonybai.com/2007/06/08/recent-situation-of-my-house/</link><pubDate>Fri, 08 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/08/recent-situation-of-my-house/</guid><description>自从五一黄金周最后一天到过&amp;#39;山上&amp;#39;之后，这么长时间一直没有亲自去过，都是通过搜房网的&amp;#39;香域蓝山&amp;#39;论坛得知近况的，这里说明一下，所谓的&amp;#39;山上&amp;#39;是论坛上&amp;#39;野猪&amp;#39;朋友们对该楼盘的昵称。^\_^ 蓝山的KFS还是说到做到的，他们在卖楼的时候就承诺：先绿化后交房。现在山上正在做绿化呢，先前工地的尘土飞扬的情形现在已经看不到了，取而代之的是满眼的绿色和人造景观，颇让人赏心悦目。最近蓝山的论坛比较火，看房的、筹...</description></item><item><title>博客无欲，乐在其中</title><link>https://tonybai.com/2007/06/08/it-is-fun-to-write-blog-without-any-other-desire/</link><pubDate>Fri, 08 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/08/it-is-fun-to-write-blog-without-any-other-desire/</guid><description>晚上看到Blogbus首页上公告栏中有这样一则消息：&amp;#34;BlogBus：Logo和Slogan评选&amp;#34;，甚是兴奋。自己在Blogbus开博近三年了，也算是老博了，这次Blogbus选Slogan，自己无论如何也要出把力，呵呵，画Logo肯定是不在行了，有想法也画不出来；但是用心写两句口号还是可以的，遂冥思苦想，提交了3条Slogan。 第一条：博客无欲，乐在其中 创作说明：我曾想过这样一个问题：写博客...</description></item><item><title>生活趣事两则</title><link>https://tonybai.com/2007/06/08/two-funny-things-recently/</link><pubDate>Fri, 08 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/08/two-funny-things-recently/</guid><description>今早发生在我身上的趣事。 早晨起来睡眼朦胧，电视机旁听到国奥小将点球5:3战胜科特迪瓦进军土伦杯决赛，感觉甚是高兴，决定去公司食堂买早餐以饱餐一顿，心情愉悦中进入食堂，四处观望，见食堂某售饭口窗户上赫然写着五个大字&amp;#39;情色担担面&amp;#39;，顿心惊肉跳，也算是活了20多年了，尚未听说有&amp;#39;情色担担面&amp;#39;一说，难道是中华厨艺真的练到了第九重，出现质的飞跃了，柔柔眼睛再定睛观瞧，哦，原来是&amp;#39;特色担担面&amp;#39;，都怪写字的人...</description></item><item><title>山东队真丢人！</title><link>https://tonybai.com/2007/06/07/shandong-football-team-loses-face/</link><pubDate>Thu, 07 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/07/shandong-football-team-loses-face/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>大公司也会忽悠</title><link>https://tonybai.com/2007/06/01/famous-company-also-lies/</link><pubDate>Fri, 01 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/01/famous-company-also-lies/</guid><description>早上，间隙休息时间，看到上周才离职的一位同事归来，以为是回来办事，打听后才得知，原来回公司办入职手续。 这位同事是做开发的，因个人原因想去大连发展，经同学推荐到了大连HP，经过4轮面试终于如愿以偿的拿到了HP的Offer。就在他兴冲冲办完离职手续，交了违约金后，一到大连居然被告知要做测试，而且属于不定地点，随项目走的那种测试人员。这下可气坏了我的这位同事，因为当时谈条件的时候他已经明确表示要做开发...</description></item><item><title>又逢六一</title><link>https://tonybai.com/2007/06/01/today-is-childrens-day/</link><pubDate>Fri, 01 Jun 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/06/01/today-is-childrens-day/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>汉密尔顿，首个分站赛冠军只是时间问题!</title><link>https://tonybai.com/2007/05/28/only-time-problem-to-win-first-substation-champion-for-hamilton/</link><pubDate>Mon, 28 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/28/only-time-problem-to-win-first-substation-champion-for-hamilton/</guid><description>昨晚F1欧洲摩洛哥站上演，看过F1的车迷都知道，摩洛哥站之赛道是多么的曲折婉转，超车的可能性很小，这是因为这站赛道是基于城市公路的，除非通过进站来上演超车好戏，否则排位赛的位置就有可能是你的最终排名。 巴林站结束后，汉密尔顿就计划把自己的第一分站赛冠军锁定在摩洛哥站了，因为他对摩洛哥站的赛道太熟悉了，他在之前的多种级别比赛中经常在此赛道竞速。他也深知排位对比赛成绩的影响。就在排位赛最后一轮之前，他...</description></item><item><title>开发人员之维护他人项目有感</title><link>https://tonybai.com/2007/05/25/thoughts-on-maintain-projects-of-others/</link><pubDate>Fri, 25 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/25/thoughts-on-maintain-projects-of-others/</guid><description>软件行业人员流动比较频繁，如果你是一个公司的老员工，你常常会有如此经历：一个同事即将离职，领导可能分配你去与之进行工作交接，有时他做过的项目很可能和你做过的有很大差距，没办法领导发话了，你还是要硬着头皮接下来，心中盘算着但愿这个项目的产品在现场运行不要出现什么问题或者用户最好一个新需求都不要提，这样就算是挂个名，也没什么大不了的。 可是事情往往是事与愿违，需求变化速度之快让你猝不及防，这时如果你接...</description></item><item><title>数的圆整算式</title><link>https://tonybai.com/2007/05/24/number-round-up-formula/</link><pubDate>Thu, 24 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/24/number-round-up-formula/</guid><description>一般在考虑到内存对齐的程序里面势必要使用数的圆整算式，一般来说在计算机程序里一般都是圆整到2的次幂上，而很多书上也有很多基于&amp;#39;移位&amp;#39;操作的圆整到2的次幂上的算法公式，形式都是很简单的，很实用。 这里要说的是一个圆整到任意正整数(n &amp;gt; 1，圆整到1没有必要^\_^)的算式，突然觉得如果说算法有些大了。我们来推导一下，也不是严密推导。就是怎么想的怎么说。 如果有两个正整数a、b，其中a &amp;gt;= 1, ...</description></item><item><title>C++咬文嚼字-'Pointer Trick'</title><link>https://tonybai.com/2007/05/22/cpp-weigh-every-word-series-pointer-trick/</link><pubDate>Tue, 22 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/22/cpp-weigh-every-word-series-pointer-trick/</guid><description>晚上饭后抽空看了看如何实现一个内存管理器，涉及内存操作必定少不了指针，恰研究到offsetof这个operator，也看了它的实现，顿有所悟。 先看一段代码： struct Foo {         int     a;         char\*   p;         char    b; }; Foo\* p1 = reinterpret\_cast(0); Foo\* p2 = 0;...</description></item><item><title>'诺顿事件'揭示'国家安全隐患'</title><link>https://tonybai.com/2007/05/21/norton-event-reflect-nation-security-defect/</link><pubDate>Mon, 21 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/21/norton-event-reflect-nation-security-defect/</guid><description>上周四也就是2007年5月18日，早上刚一进办公室，就发现邻座的同室刚刚使用不久的HP台式机处于&amp;#39;机箱开盖&amp;#39;状态，问之为何？答曰：中毒。遂也没放在心上，以为其上了不该上的Web Site所致。 时钟指向早晨九点左右，陆续收到同事的mail，谈到如何卸载公司的集团版诺顿杀毒软件，又有后者邮件谈到中毒问题，周围的同事开始骚动起来，仔细询问后得知：机器因为晚上未关导致升级了诺顿最新5-17日的杀毒补丁文...</description></item><item><title>工厂模式三剑客</title><link>https://tonybai.com/2007/05/21/the-three-musketeers-of-factory-pattern/</link><pubDate>Mon, 21 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/21/the-three-musketeers-of-factory-pattern/</guid><description>前不久参加了一个为期四天的设计模式培训，公司以前组织过很多次设计模式培训，主题多为&amp;#39;Java与设计模式&amp;#39;，自己一直从事C相关的开发，也就不好越界参与这类培训。而这次主题换成了&amp;#39;C++设计模式&amp;#39;，我参加也就名正言顺了。按照人力资源部工作人员的说法这是第一次请老师讲C++与设计模式，这个老师也是第一次给我们公司做培训，因为没有先例，无从知道效果如何，不像以前侯捷来公司培训C++，一般参与的同事都清楚那...</description></item><item><title>设计心理学</title><link>https://tonybai.com/2007/05/21/the-design-of-everyday-things/</link><pubDate>Mon, 21 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/21/the-design-of-everyday-things/</guid><description>其实说到&amp;#39;设计心理学&amp;#39;，自己还没资格谈，按照&amp;#39;疯狂的时候&amp;#39;里的说法&amp;#39;自己还不够专业&amp;#39;，今天说到它，是另有原因的，下面道来。 周末写了一篇未完的blog，今早趁机将其补充完整并予以发布，不过在发布时发现Blogbus的一处问题：即我在发布文章页面的分类下拉框中居然找不到我若干月前就已经增加了的分类，以致我无法选择对应的分类就发布了。事后我问及Blogbus的客服小伙:TTSummer，在一番问题陈述...</description></item><item><title>国足输泰国，我不意外</title><link>https://tonybai.com/2007/05/16/it-is-not-unexpected-that-national-football-team-lose-game-with-tailand/</link><pubDate>Wed, 16 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/16/it-is-not-unexpected-that-national-football-team-lose-game-with-tailand/</guid><description>于前两天就得知今天有两场国字号比赛，分别是国奥对乌拉圭以及国足对泰国，其实我是更想看国奥的比赛，毕竟这批国奥踢球时间还不长，深受国内联赛毒害还尚浅。但是由于这场比赛在下午4点开始，正处在上班时间，也就作罢了。相比于这一场晚上7点半开始的国足比赛是在是没有什么看点吸引我。国足赢了属于合情合理，国足输了，如果国足输了这场球你愿意看吗，呵呵，而且这么让人窝囊的输球，相信也真的没有人愿意看，看了也后悔。 ...</description></item><item><title>转节假日各大公司加班口号</title><link>https://tonybai.com/2007/05/09/foward-the-slogans-of-the-company-overtime-work/</link><pubDate>Wed, 09 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/09/foward-the-slogans-of-the-company-overtime-work/</guid><description>在公司内网看到这么一则帖子，将各个知名公司或产品的广告词改编后恶搞成这个公司的加班口号了，挺搞笑的，不信你往下瞧。 1、美特斯邦威：不加寻常班。 2、特步： 加班，死一般的感觉。 3、百事：加班无极限。 4、森马：上什么公司，加什么班。 5、脑白金：今年过节不加班，加班只加节假日。 6、汇仁肾宝：他加我也加。 7、李宁：加班，一切皆有可能。 8、旺旺：你加，我加，大家加，加加。 9、农夫山泉：加了...</description></item><item><title>昆明圆通山动物园拾趣</title><link>https://tonybai.com/2007/05/07/a-trip-to-animals-zoo-of-kunming/</link><pubDate>Mon, 07 May 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/05/07/a-trip-to-animals-zoo-of-kunming/</guid><description>这次昆明动物园之旅并不是发生在五一黄金周，而是之前一次出差中的一次游玩。昆明目前有两个动物园，一个是野生动物园，是新建的，听说不错；另一个就是这个老动物园，就在依圆通山而建的圆通山动物园。这里的交通很方便，很多路公交车都路过，由于时间太长了，记不太清楚我坐的是哪路公交车了。昆明不愧是一个旅游城市，就连这里的动物园也是游人如织。如果这是在沈阳，我想动物园就没有这么好的人气了。正门门票不贵，10元整。...</description></item><item><title>探访昆明景星花鸟市场之卖'电狗'族</title><link>https://tonybai.com/2007/04/23/visit-toy-guns-store-in-kunming-jingxing-market/</link><pubDate>Mon, 23 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/23/visit-toy-guns-store-in-kunming-jingxing-market/</guid><description>昆明的交通真是一个&amp;#39;老大难&amp;#39;问题，早上去云南移动开电视电话会议，都9点15左右了，那个车堵的真是让我闹心，本来5分多钟估计就可以到的，我用了近20多分钟才到。开完会已是中午12点，移动的哥们请客到移动的食堂吃饭，移动就是移动，食堂饭菜比我们公司的好多了，价格还低廉，吃完饭搭移动哥们的车到了昆明著名的正义路景星花鸟市场，不为别的，就想来探访一下这里卖&amp;#39;电狗&amp;#39;的店铺。 虽然叫景星花鸟市场，但是这里卖的...</description></item><item><title>有感于'上海集中销毁仿真枪支'</title><link>https://tonybai.com/2007/04/20/thought-on-destroying-toy-guns-in-shanghai/</link><pubDate>Fri, 20 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/20/thought-on-destroying-toy-guns-in-shanghai/</guid><description>刚从新浪看到新闻，说是’上海警方集中销毁3万余仿真枪支’，恰逢这几天我对仿真枪是及其的着迷，所以，唉，感觉到有些可惜。 仿真枪的Fans们，哦，对了，这几天我才知道这些Fans在圈内都互相称为’狗友’，我想这个’狗’应该是Gun的音译吧。当然不是所有拥有仿真枪的人可以成为’狗友’，我想只有那些真正对仿真枪感兴趣，仅仅将仿真枪用于游戏中而不是将之用于非法用途的人才算是’狗友’。 从这次销毁行动也可以...</description></item><item><title>梅西·走在通往新一代'球王'的路上</title><link>https://tonybai.com/2007/04/19/messi-on-the-way-to-new-football-king/</link><pubDate>Thu, 19 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/19/messi-on-the-way-to-new-football-king/</guid><description>很遗憾，昨晚没能实时收看到梅西的那粒精彩的马拉多纳式的长途奔袭入球，虽然昨晚电视开了一个晚上，我也不清楚昨晚CCTV-5是否转播了该场比赛。今天中午看到这粒入球，看到进球后所有的FC Barcelona队员都长时间的围绕在梅西周围向他庆祝，我也不禁在电视前鼓起掌来。 新浪体育用&amp;#39;20年1遇奇迹重现，梅西60米过5人进球翻版马拉多纳&amp;#39;来作为标题，作为阿根廷人，被誉为最有可能继承&amp;#39;球王&amp;#39;衣钵的梅西，今...</description></item><item><title>群组'We Fight!'</title><link>https://tonybai.com/2007/04/16/add-a-group-called-we-fight-on-blogbus/</link><pubDate>Mon, 16 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/16/add-a-group-called-we-fight-on-blogbus/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>LEWIS HAMILTON让我爱上F1</title><link>https://tonybai.com/2007/04/15/lewis-hamilton-make-me-love-f1/</link><pubDate>Sun, 15 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/15/lewis-hamilton-make-me-love-f1/</guid><description>F1巴林大奖赛的激烈程度就好象今天昆明的天气一样，那叫一个热呀^\_^。不过说实话，这是我第一次完整看完一次F1比赛，包括昨天的排位赛。而这次比赛让我知道了McLaren的新秀Lewis Hamilton，他给我的第一印象很好，我很看好他，他也让我决定以后会继续关注F1的，爱上F1也完全有可能哟。 此前我对F1的了解也仅限于新闻报道，知道有法拉利，雷诺，迈凯轮等车队，知道车王舒马赫退役了，知道阿隆...</description></item><item><title>颠颠簸簸三入滇</title><link>https://tonybai.com/2007/04/13/fly-to-yunnan-3rd-times/</link><pubDate>Fri, 13 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/13/fly-to-yunnan-3rd-times/</guid><description>再次由于工作原因，来到昆明，不过这次旅程，用&amp;#39;颠颠簸簸&amp;#39;来形容比较合适。 今天全国大部分地区好像都是多云有雨的天气，我乘坐的CZ6415航班从沈阳桃仙机场出发，经停内蒙古首府呼和浩特，然后再到昆明。今天这趟航班的驾驶员驾驶技术不敢恭维，飞机不稳呀。客舱内的乘客&amp;#39;怨声载道&amp;#39;，要知道这可不是战斗机呀。加之各地上空云层较厚，当飞机穿梭于云层中时，那个晃呀，我坐在22排，通过舷窗可以清晰看到飞机的机翼在风...</description></item><item><title>沈阳·天主教堂</title><link>https://tonybai.com/2007/04/09/shenyang-roman-catholic-cathedral/</link><pubDate>Mon, 09 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/09/shenyang-roman-catholic-cathedral/</guid><description>周末到小南街办事，以前从未在这停留过，这次发现这里有一座很宏伟的天主教堂，经了解得知这是沈阳乃至东北三省数一数二的天主教堂，典型的哥特式建筑在周围普通的住宅楼的拥簇下显得很醒目，特别是其顶部的那个金色的耶稣塑像，很是漂亮。 从网上资料得知：该天主教堂亦称沈阳南关教堂，位于沈河区小南街南乐郊路40号。教堂原建于1878年（清光绪四年），1900年被义和团焚毁。现存建筑为1912年后重建。教堂位于东院...</description></item><item><title>Google输入法试用心得</title><link>https://tonybai.com/2007/04/04/experience-of-trying-google-input-method/</link><pubDate>Wed, 04 Apr 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/04/04/experience-of-trying-google-input-method/</guid><description>我是Google Fans，现在几乎每天都离不开Google的工具了，Gmail、Google Talk、Google Doc、Google Reader、Google Calendar、Google Bookmarks以及Google相册等等，今天Google拼音输入法正式发布，我又怎能不尝这个鲜呢^\_^ 首先，完成这篇blog用的就是Google输入法。 安装过程不必详说，中间步骤中有一步让...</description></item><item><title>手机图片·彩电塔和辽宁展览馆</title><link>https://tonybai.com/2007/03/21/mobile-pictures-tv-tower-and-liaoning-exhibition-hall/</link><pubDate>Wed, 21 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/21/mobile-pictures-tv-tower-and-liaoning-exhibition-hall/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>Unix体验中心开张</title><link>https://tonybai.com/2007/03/20/unix-center-begin-supply-services/</link><pubDate>Tue, 20 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/20/unix-center-begin-supply-services/</guid><description>晚上收到一封mail，来自ecommunity@gceclub.com，mail中提到Unix体验中心开始提供免费服务了。Mail中写道：&amp;#39;Unix体验中心(Unix-Center.Net)的目标是为研究、学习和使用各种版本的Unix和类Unix操作系统的教师、学生和工程技术人员提供一个体验和测试各种版本的Unix和类Unix系统的软硬件平台。该平台能够为所有注册用户免费提供如下服务：SSH登录以...</description></item><item><title>有感于在'安全模式'下工作</title><link>https://tonybai.com/2007/03/19/work-under-safe-mode/</link><pubDate>Mon, 19 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/19/work-under-safe-mode/</guid><description>我的IBM R系笔记本于上周开始罢工了，任凭我如何杀毒，查木马，都没有发现任何中毒迹象，但就是一登陆进入正常模式后，时间不长，屏幕就定住了，任何按键都失效了，除了电源开关键，除了重启别无他法，但是在安全模式下工作却是正常，未出现如此现象，所以截至目前，我都一直在安全模式下工作。 一般的机器在安全模式下，显示器的显示模式都很粗糙，一般字体很大，看不清，基本上不能用来正常工作。我的这个本本很奇怪，不知...</description></item><item><title>把郭德刚从链接中删掉</title><link>https://tonybai.com/2007/03/15/delete-guodegang-from-links/</link><pubDate>Thu, 15 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/15/delete-guodegang-from-links/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>好漂亮的擎天柱剧照</title><link>https://tonybai.com/2007/03/15/optimus-prime-in-movie-is-so-handsome/</link><pubDate>Thu, 15 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/15/optimus-prime-in-movie-is-so-handsome/</guid><description>从好睐坞电影手册看到的真人版变形金刚透露的擎天柱剧照，好漂亮呀。</description></item><item><title>7、80年代我们都在玩什么</title><link>https://tonybai.com/2007/03/13/what-do-we-play-on-1970s-and-1980s/</link><pubDate>Tue, 13 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/13/what-do-we-play-on-1970s-and-1980s/</guid><description>偶然间在新浪看到这么一个调查-&amp;#39;7、80年代我们都在玩什么&amp;#39;，这里我也借用这个题目主要谈谈小时候我这个80后的都玩过哪些。 在这篇调查的篇首有这么一段话：&amp;#39;七、八十年代的中国，没有电脑，没有网络游戏，没有PSP，没有萝莉，也没有机会看美国大片。对于现在25～35岁这个年龄段的人来说，下面的32种“游戏”便成了他们休闲娱乐的首选！无论你是或者不是这个年龄段的，都来看看，了解下，这些或许已经绝迹的儿时...</description></item><item><title>C++咬文嚼字-'Functions'</title><link>https://tonybai.com/2007/03/13/cpp-weigh-every-word-series-functions/</link><pubDate>Tue, 13 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/13/cpp-weigh-every-word-series-functions/</guid><description>关于Functions，Bjarne Stroustrup在&amp;#39;The C++ Programming Language&amp;#39;一书中是这么开篇的：&amp;#39;The typical way of getting something done in a C++ program is to call a function to do it.&amp;#39;；另外他还阐述了一个使用Functions的原则：&amp;#39;A function c...</description></item><item><title>C++咬文嚼字-'Evil cast'</title><link>https://tonybai.com/2007/03/12/cpp-weigh-every-word-series-evil-cast/</link><pubDate>Mon, 12 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/12/cpp-weigh-every-word-series-evil-cast/</guid><description>Cast也被称为&amp;#34;Explicit Type Conversion&amp;#34;，即显式类型转换，在传统C中强制转型(cast)只有一种语法形式(T)e。Bjarne Stroustrup在&amp;#39;The Design and Evolution of C++&amp;#39;(以后称作D&amp;amp;E)一书的14.3小节开始就说了&amp;#39;无论是从语法还是从语义上, Cast都是C++里最难看的特征之一&amp;#39;，所以他要为cast提供A New Cas...</description></item><item><title>精灵发威，巴萨险平</title><link>https://tonybai.com/2007/03/11/messi-help-barca-win-a-draw/</link><pubDate>Sun, 11 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/11/messi-help-barca-win-a-draw/</guid><description>相信在今天之前巴萨的球迷都很失落，因为巴萨在冠军杯八强战中被红魔利物浦淘汰了。但是看了今晨的&amp;#39;西班牙国家Derby&amp;#39;，相信大家心情会略为好转起来，虽然巴萨依然没有赢球，让我们欣喜的是看到了一位潜在的巴萨未来王者的表演。 近期巴萨的境况不好，内部不团结等等因素让球队的战绩和上个赛季相比不能同日而语，昔日那个巴萨梦之队似乎渐渐从人们的眼线里消失了。今晨同样是从冠军杯被淘汰的两支西甲豪门相遇了，巴萨对皇...</description></item><item><title>C++咬文嚼字-'0 or NULL'</title><link>https://tonybai.com/2007/03/10/cpp-weigh-every-word-series-0-or-null/</link><pubDate>Sat, 10 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/10/cpp-weigh-every-word-series-0-or-null/</guid><description>C程序员和C++程序员在声明空指针时做法常常是不相同的。 C程序员常常如下做： int \*ptr = NULL; C++程序员则是听从Bjarne Stroustrup或者其他C++大师的教诲，坚定地如下做： int \*ptr = 0; 也许没有谁对谁错之分，也许只是习惯不同罢了，毕竟C语言是老大哥，诞生的早；而在早期C编程时人们也许不习惯在程序里使用0这样的magic number，转而使用...</description></item><item><title>春天，打好基础</title><link>https://tonybai.com/2007/03/10/ground-well-in-spring/</link><pubDate>Sat, 10 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/10/ground-well-in-spring/</guid><description>虽然这周沈城遭遇了几十年罕见的暴风雪天气，但是这仍然阻止不了春天的到来。作为这个世界的主宰，人类的感觉是满灵敏的，春天到来的时候，人们精力变得旺盛，心情也比较阳光，有一种想做事情，想活动活动，爱学习的好状态。 这几天的工作强度丝毫没有减弱，但是晚上回去后居然没有疲劳的感觉，而且还有一种想学习的冲动，学习时思维很集中，效率也颇高，特别是在洗了一个热水澡后，更是感到浑身轻松，思维敏捷而开阔，这种感觉很...</description></item><item><title>C++咬文嚼字－'Hijack const'</title><link>https://tonybai.com/2007/03/09/cpp-weigh-every-word-series-hijack-const/</link><pubDate>Fri, 09 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/09/cpp-weigh-every-word-series-hijack-const/</guid><description>晚上无意翻看Bjarne Stroustrup的&amp;#39;The C++ Programming Language Special Edition&amp;#39;(英文版)第94页，章节5.4 Constants一节，看到这么一句原文&amp;#39;C++ offers the concept of a user-defined constant, a const, to express the notion that a valu...</description></item><item><title>沈阳·暴雪后</title><link>https://tonybai.com/2007/03/05/shenyang-after-the-heavy-snow/</link><pubDate>Mon, 05 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/05/shenyang-after-the-heavy-snow/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>沈阳·特大暴风雪跟踪'报道'</title><link>https://tonybai.com/2007/03/05/track-the-very-heavy-snow-in-shenyang/</link><pubDate>Mon, 05 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/05/track-the-very-heavy-snow-in-shenyang/</guid><description>早起，屋里感觉冷飕飕的，估计外面的气温已经下降很低了。打开窗帘，外面阳光明媚，不过风依旧很大，远望对面的楼根地下积雪已经快爬上一楼窗台了，不用惊慌，雪还没下这么厚，都是大风吹的。^\_^ 按通知今天不用上班，本想尝试问问今天能否出去，结果在网上看到了沈阳市政府昨晚的几个通告，全文如下： 沈阳市政府应急指挥中心紧急公告(第一号) 鉴于沈阳市遭受历史罕见的特大暴风雪，沈阳市政府应急指挥中心紧急公告如下...</description></item><item><title>沈阳·暴雪中度过元宵节</title><link>https://tonybai.com/2007/03/04/take-lanterns-festival-while-it-snows-heavily-at-shenyang/</link><pubDate>Sun, 04 Mar 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/03/04/take-lanterns-festival-while-it-snows-heavily-at-shenyang/</guid><description>今天是传统农历新年的最后一个重要节日-元宵节，早上起来拉开窗帘，哇，外面一片银白的世界，打开Computer，Search一下沈阳的天气，居然发现今天是暴雪转小雪，东北方向风力6－7级，看来沈阳今年的元宵节要在暴雪中度过了。 昨天本来出去想买些汤圆的，但是家乐福人太多，推着购物车在结帐处等了好长时间，前面等待结帐的长队依然还是那么长，由于需要赶车，遂放弃了一车的东西，这可是第一次，唉。本来今天计划...</description></item><item><title>列车上过'情人节'</title><link>https://tonybai.com/2007/02/14/take-valentine-day-on-the-train-alone/</link><pubDate>Wed, 14 Feb 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/02/14/take-valentine-day-on-the-train-alone/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>山西环境污染让人触目惊心</title><link>https://tonybai.com/2007/02/13/shanxi-environment-polluted-very-seriously/</link><pubDate>Tue, 13 Feb 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/02/13/shanxi-environment-polluted-very-seriously/</guid><description>这不是我的原创blog，这篇blog的内容来自著名记者柴静，之所以转这篇blog是因为我看了后觉得很恐怖，也提醒和呼吁大家保护我们赖以生存的环境。 一 &amp;#34;你见过星星么?&amp;#34; &amp;#34;没有&amp;#34;。 &amp;#34;你见过白云么?&amp;#34; &amp;#34;没有&amp;#34; &amp;#34;空气是什么味道?&amp;#34; &amp;#34;臭的&amp;#34;她用手扇扇鼻子。 这是6岁的山西人王惠琴眼中的世界。她闻到的味道是焦油的气味，不过更危险是她闻不到的无味气体，那是一种叫苯并芘的强致癌物，超标9倍。 离她的...</description></item><item><title>云南行·在途中</title><link>https://tonybai.com/2007/02/06/on-the-flight-to-yunnan/</link><pubDate>Tue, 06 Feb 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/02/06/on-the-flight-to-yunnan/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>昆明印象·市博物馆和特色手工艺品</title><link>https://tonybai.com/2007/02/03/impressions-of-kunming-museum-and-handcrafts/</link><pubDate>Sat, 03 Feb 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/02/03/impressions-of-kunming-museum-and-handcrafts/</guid><description>这篇本来应该在本周三发表的，可惜照片始终传不到flickr，只能作罢。周三是在云南待的最后一天，订了周四的机票。一般旅游的最后一天游客都会出门买一些当地的特色产品，我也不例外。那天天气阴，早上的时候还下了场小雨，地上湿湿的，天气预报报那天有小雨。 出门之前在&amp;#39;Google地图&amp;#39;和&amp;#39;Baidu知道&amp;#39;查找昆明的特色产品专卖市场，众说纷纭，记了几个，在路上碰到哪个就去哪买吧。我一直想去昆明市博物馆，到一...</description></item><item><title>云南九乡游记</title><link>https://tonybai.com/2007/01/27/a-tour-of-yunnan-jiuxiang/</link><pubDate>Sat, 27 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/27/a-tour-of-yunnan-jiuxiang/</guid><description>昨天晚上定闹钟没成功，不知道是手机的Bug还是我操作失误，本来想定在6:20的，结果8:20才响。洗个澡，吃过早饭，出门开始九乡之旅。像这样的不算近程的个人自助游出发前一定要做好充足的准备，比如交通线路，景点游览线路及注意事项等等，都要做到心中有数，有备无患。 如果选择自助游，出门前一定不要忘记告诉你的朋友你去哪了，否则一旦发生意外，没人知道你在什么地方。根据我查到的资料，早上9:15从白塔路与人...</description></item><item><title>昆明印象·金殿和世博园外景</title><link>https://tonybai.com/2007/01/26/impressions-of-kunming-gold-palace-and-world-horti-expo-garden/</link><pubDate>Fri, 26 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/26/impressions-of-kunming-gold-palace-and-world-horti-expo-garden/</guid><description>今天昆明阴天，在我出去之前还下过一场小雨，天气很凉，在圆通山和金殿两者之间我选择了后者，因为网上说后者更好玩一些。丛白塔路出发并没有直达金殿景区的车，我在白塔路与人民路交叉口坐47路先到世博园正门，然后倒146或者71到金殿景区。世博园和金殿之间也可以通过索道互达，但是我并没有参观世博园的打算，所以在世博园前逛逛就换车了。 天气虽然不好，但是游人也不少。特别是在世博园门前有很多新婚的在拍外景，还有...</description></item><item><title>昆明印象·大观楼和滇池一角</title><link>https://tonybai.com/2007/01/25/impressions-of-kunming-one-corner-of-lake-dian/</link><pubDate>Thu, 25 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/25/impressions-of-kunming-one-corner-of-lake-dian/</guid><description>按照计划，今天游览大观楼，大观公园中的水系其实是滇池的一部分，大观公园西南方就是号称’高原明珠’的滇池，国内第六大淡水湖。西面则是西山，昆明的另一个景点，不过由于从大观公园不能直接通到西山，所以把西山留到以后再欣赏。 到大观公园的交通很是方便，还是从白塔路出发，坐54路向西行，到终点即是。大观公园不是免费的，门票十元。买完票最好看看票后面对大观公园的介绍，做到重要景点心中有数。进门后右侧就是一个园...</description></item><item><title>昆明印象·金马碧鸡坊和翠湖</title><link>https://tonybai.com/2007/01/24/impressions-of-kunming-golden-horse-green-chicken-lane-and-green-lake/</link><pubDate>Wed, 24 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/24/impressions-of-kunming-golden-horse-green-chicken-lane-and-green-lake/</guid><description>昆明市中心有两个的景点，一个市金马碧鸡坊，另一个就是翠湖了，像这样的景点都是走马观花的看看即可的，不用花很长时间细致观赏的。昆明白天长，所以下班后我就去了这两个景点。 沿着白塔路向南走，途径一个很壮观的过街天桥，在天桥西北是著名的昆明饭店。 昆明饭店 一直走到拓东路与白塔路的交叉口，坐62路向西到’金马坊’站下车，下车就是金碧广场了，金马坊和碧鸡坊两座坊就都呈现你眼前了。这个地方正处在市中心，应该...</description></item><item><title>昆明印象·夜</title><link>https://tonybai.com/2007/01/23/impressions-of-kunming-night/</link><pubDate>Tue, 23 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/23/impressions-of-kunming-night/</guid><description>整整在酒店里对着电脑工作了一天，弄得头昏脑胀。晚饭后看时间尚早，才19点过些，昆明正处于从昼到夜的过渡期，而这个时候昆明以外的各大城市早已进入茫茫黑夜了。昆明号称彩云之城，每年白昼时间在国内是位居前列的。我决定到街上走走，欣赏一下昆明的夜景。 这个时间昆明的街头仍然很是喧闹，很多人选择饭后到街上走走，而且今天外面的气温很适宜外出，不冷不热。我出了酒店正门就沿着白塔路向北走，也不是没有目的的，走的过...</description></item><item><title>昆明印象·城市</title><link>https://tonybai.com/2007/01/22/impressions-of-kunming-city/</link><pubDate>Mon, 22 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/22/impressions-of-kunming-city/</guid><description>今天是来昆明后的第一个工作日，昨晚睡的较晚，早上近九点才起来，拿着早餐卷去吃早餐-煎鸡蛋、牛奶、肉包子、炒饭、腊肉、粥等，天下酒店早餐都一个样。昆明的早上还是很凉的，毕竟是高原昼夜温差大，看天气也雾蒙蒙的，有点像长沙，有些失望。下午2点到云南省移动开会，先回房准备资料。 下午和同事一出门，一阵和煦的风扑面而来，这让我这个从寒冷北方来的很是诧异，以为春天到了似的。天气也和早晨大不相同了，天瓦蓝瓦蓝的...</description></item><item><title>云南，我来了!</title><link>https://tonybai.com/2007/01/22/a-trip-to-yunnan/</link><pubDate>Mon, 22 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/22/a-trip-to-yunnan/</guid><description>一提到云南，想必很多人都会联想到’香格里拉’、’玉龙雪山’、’西双版纳’、’石林’、’滇池’、’丽江’、’大理’等等诸多耳熟能详的名词，这些地方不用去看，想着想着就会让你有一种热血沸腾的感觉，还好这次有机会到云南出差，虽然不能尽情享受云南的大好风光，但是能亲身到这感受一下这里的风土人情也是不错的吗。云南不仅景色美，吃的也很有特色哟，名满全国的过桥米线，气锅鸡等让我想起来就流口水，这次一定不能放过机...</description></item><item><title>工作中的故事-0是'TRUE'还是'FALSE'？</title><link>https://tonybai.com/2007/01/17/zero-is-true-or-false/</link><pubDate>Wed, 17 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/17/zero-is-true-or-false/</guid><description>这个故事源于今天测试组测出的一个BUG，BUG被测试人员转给了我，故事便从这里开始了。 我们的系统是一个后台服务器程序，用C写的，运行在Solaris上，数据存储在数据库中，每次系统启动都要从数据库中读取配置数据。系统根据配置数据对输入的消息数据进行处理。今天的这个BUG现象就是对于一定的输入消息，系统根据配置数据的指导进行处理，结果得到的结果本应该是A，但是却得到了B。 首先咱抱着谨慎负责的态度...</description></item><item><title>'80后特质'我占了多少？</title><link>https://tonybai.com/2007/01/14/how-many-80s-characters-i-have/</link><pubDate>Sun, 14 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/14/how-many-80s-characters-i-have/</guid><description>在公司内网论坛上看到一个讨论型帖子-&amp;#39;80后&amp;#39;的特质(80后:泛指上世纪80年代出生的一代人)，我是82年生人，虽非很典型，但是总算是这个范围内的人，仔细的瞧了一下该帖的内容，作了一次&amp;#39;对号入座&amp;#39;。 特质：打折卡比银行卡多 银行卡的意义在于证明你赚钱了；打折卡的意义在于证明你花钱了。 _– 我想这个特质，80后的女生们拥有的更多一些吧；除了打折卡外，商场、餐厅的会员卡、贵宾卡也不在少数。弄得钱包或...</description></item><item><title>SHENYANG·感受年味</title><link>https://tonybai.com/2007/01/14/shenyang-taste-spring-festival/</link><pubDate>Sun, 14 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/14/shenyang-taste-spring-festival/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>2006·我一直在写Blog</title><link>https://tonybai.com/2007/01/10/i-am-writing-blog-all-the-time-on-2006/</link><pubDate>Wed, 10 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/10/i-am-writing-blog-all-the-time-on-2006/</guid><description>记得Redwood\_soso说过我的Blog很高产，中午的时候粗略统计了一下(数据源自逐一数Blogbus管理中心的blog列表^\_^)：整个2006年我一共写了218篇文章，平均没1.67天就写一篇，自己都不得不佩服自己很能写了:)。我也写了近2年半博客了，最大的感觉就是&amp;#39;上瘾&amp;#39;^\_^，就是想写。相信很多博友也和我有一样的感觉。今天从头到尾回顾了一下2006年写的文章，挑出一些自己觉得写的...</description></item><item><title>搬到新工作区了</title><link>https://tonybai.com/2007/01/10/move-to-new-office/</link><pubDate>Wed, 10 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/10/move-to-new-office/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>又是一部唯美的后宫'乱伦'演绎的闹剧</title><link>https://tonybai.com/2007/01/06/bad-film-the-banquet/</link><pubDate>Sat, 06 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/06/bad-film-the-banquet/</guid><description>06年岁尾上映的张艺谋大作’满城尽带黄金甲’今天终于有幸一观，这也是2007年我在电影院看的第一部电影，满心期待这部片子能给带来些新意，可结果却事与愿违，用标题的一句话总结就是’这又是一部唯美的后宫乱伦演绎的闹剧’。 为什么说’又是’呢，因为去年冯小刚导了一部同类型的作品叫’夜宴’，多亏那部电影没有在电影院看，否则就浪费了一张电影票，我不知道别人什么感觉，反正我是昏昏欲睡。’夜宴’刚散没多久，’黄...</description></item><item><title>2007环球日报第一期</title><link>https://tonybai.com/2007/01/04/global-times-2007-1st-period/</link><pubDate>Thu, 04 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/04/global-times-2007-1st-period/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>SHENYANG·晨雾</title><link>https://tonybai.com/2007/01/04/shenyang-foggy-in-the-morning/</link><pubDate>Thu, 04 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/04/shenyang-foggy-in-the-morning/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>猜猜都是啥</title><link>https://tonybai.com/2007/01/04/guess-what-they-are/</link><pubDate>Thu, 04 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/04/guess-what-they-are/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>'金猪年'快乐</title><link>https://tonybai.com/2007/01/01/happy-new-year-2007/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0800</pubDate><guid>https://tonybai.com/2007/01/01/happy-new-year-2007/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>岁尾小记</title><link>https://tonybai.com/2006/12/31/note-at-the-end-of-year/</link><pubDate>Sun, 31 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/31/note-at-the-end-of-year/</guid><description>今天是2006年的最后一天，Blogbus刚升完级，我的Blog的两个系统问题也逐一解决了，就算是没有带着什么遗憾告别2006最后一天了。 年末最后一天，大家不约而同的都选择放松，工作中娱乐的气氛也比往常增加不少，很多人都期盼着回家团圆，并且很多家在本省的同事都陆续请假背着包提前回家了。我家也在本省，没回家主要因为工作还有剩余，而且晚上项目组阶段性活动－吃喝玩乐，我们项目组20多个人，人多热闹。由...</description></item><item><title>编译Ethereal On Windows</title><link>https://tonybai.com/2006/12/30/build-ethereal-on-windows/</link><pubDate>Sat, 30 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/30/build-ethereal-on-windows/</guid><description>最近在研究项目下一期中新增的信令跟踪功能，在这个开源盛行的时代，开源工具当然是首选。我们发现了Ethereal，一款强大的网络分析工具包。我们不仅仅要使用Ethereal，而是在Ethereal上做二次开发，增加一个新dissector或者一个plugin，用来分析我们自己的应用层协议。 之所以选择Ethereal还有一个很重要的原因就是它已经支持300多个协议包了，这说明Ethereal的框架已...</description></item><item><title>露一手-'孜然羊肉'</title><link>https://tonybai.com/2006/12/27/fried-lamb-with-cumin/</link><pubDate>Wed, 27 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/27/fried-lamb-with-cumin/</guid><description>圣诞吃火锅剩下的羊羔肉片还有许多，GF建议做成孜然羊肉，我只是吃过别人做的孜然羊肉，又没有制作经验，就凭着自己记忆中那么一点点感性认识就动手做了一次。谈不上经验，就是经历罢了。^\_^ 孜然羊肉的做法各不相同，相同的用料包括羊肉和孜然，我也不知道什么样的羊肉最适合做这道菜，我手头上就这些’料’，试着做吧。后来在论坛上有人说’羊肉不要冻的那种’。 与羊肉搭配的蔬菜包括洋葱和香菜，洋葱切成硬币大小的片...</description></item><item><title>'Write Great Code'书中的一处错误</title><link>https://tonybai.com/2006/12/26/an-error-of-write-great-code/</link><pubDate>Tue, 26 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/26/an-error-of-write-great-code/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>2006·圣诞印象</title><link>https://tonybai.com/2006/12/25/2006-christmas-impression/</link><pubDate>Mon, 25 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/25/2006-christmas-impression/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>2006岁末期待·Harry Potter and the Deathly Hallows</title><link>https://tonybai.com/2006/12/23/expect-harry-potter-and-the-deathly-hallows/</link><pubDate>Sat, 23 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/23/expect-harry-potter-and-the-deathly-hallows/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>2006岁末期待·Transformers</title><link>https://tonybai.com/2006/12/23/expect-transformers/</link><pubDate>Sat, 23 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/23/expect-transformers/</guid><description>据悉由史蒂文·斯皮尔伯格(Steven Spielberg)担任制片，迈克尔·贝(Michael Bay)执导的电影真人版’变形金刚’将于2007年美国独立日纪念日那天也就是7月4号在全球上映，对于我这个出生在80年代初的人来说，这绝对是一个令人振奋的消息，绝对是一部值得期待的片子。 也许现在的小孩子们都没有听说过’变形金刚’这部动画片了，但是在我小时候，在那时’变形金刚’可是掀起过一场不小的潮流...</description></item><item><title>从本源看世界-读'Write Great Code'</title><link>https://tonybai.com/2006/12/22/write-great-code-reading-note/</link><pubDate>Fri, 22 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/22/write-great-code-reading-note/</guid><description>以前曾经说过自己并非计算机科班出身。想想自己在大学时的学习过程未免有些底气不足，记得当时一直坚持去旁听计算机专业的课，但是鉴于本专业老师的点名和课堂作业，自己未免耽误了很多节课，弄得自己学的很不系统，效果不是很好。工作后一直从事应用级的开发，对计算机方面基础的本源性的知识也逐渐陌生起来。但我是那种知其然也要知其所以然的人，这两年也不间断的买了不少讲解计算机底层知识的书，目的是让那些计算机本源性的东...</description></item><item><title>'画蛇添足'招致的BUG</title><link>https://tonybai.com/2006/12/21/a-bug-caused-by-gild-the-lily/</link><pubDate>Thu, 21 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/21/a-bug-caused-by-gild-the-lily/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>姥爷走了</title><link>https://tonybai.com/2006/12/19/my-grandfather-pass-away/</link><pubDate>Tue, 19 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/19/my-grandfather-pass-away/</guid><description>从姥爷查出得病到姥爷病逝仅有短短的12天，一周前回家看到姥爷居然成了和姥爷的最后一面，当时由于买房子的事情比较急，在家里仅仅待了一个小时左右，现在想起来真是后悔莫及。姥爷得的是多发性肝部肿瘤，也就是肝癌，医生说这病起于四年前，现在已经到了晚期，而且扩散很是严重，姥爷的胃肠里已经到处都是了，如果非要手术的话，姥爷下不了手术台的可能性很大，医生建议回家养病，喝些中药。 姥爷一直是一个很坚强的人，之所以...</description></item><item><title>疏忽大意招致恼人'BUG'</title><link>https://tonybai.com/2006/12/16/a-bug-caused-by-carelessness/</link><pubDate>Sat, 16 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/16/a-bug-caused-by-carelessness/</guid><description>河南项目实施，一波刚平一波又起呀！ 前天凌晨，河南又割入很多家SP，昨天早晨上班通过日志发现程序的一个子模块进程隔一段时间重启若干次，通常是每一批数据推过来，就有一次重启的过程，日志中没有打印出出错的标志，进程莫名奇妙的就宕掉了，查看程序环境也没有发现CORE文件或者.assert文件，在代码关键的退出区域加入打印日志，重启系统后仍然有同样的问题。郁闷呀，没办法，在家里搭建测试环境，模拟测试，测试...</description></item><item><title>我的家的'SU'版本</title><link>https://tonybai.com/2006/12/14/sketchup-design-for-my-house/</link><pubDate>Thu, 14 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/14/sketchup-design-for-my-house/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>我未来的'窝'</title><link>https://tonybai.com/2006/12/13/my-intending-house/</link><pubDate>Wed, 13 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/13/my-intending-house/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>见识'MADE IN CHINA'</title><link>https://tonybai.com/2006/12/11/made-in-china-everywhere/</link><pubDate>Mon, 11 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/11/made-in-china-everywhere/</guid><description>今晚一同事从美国飞回来，一见面下了一跳，哇，我的这位同事好像山中野人，头发老长，一问才知道：4个月没理发了。美国理发太贵，那点补助舍不得花。 我的这位同事到芝加哥待了4个月，无论如何都是出去见识过的人，收获也应该不少，遂打开话匣子聊了起来。他说从美国带回来的吃的都被国内机场安检扣住了，还有一个带西部牛仔手枪装饰的相框他是勉强从机场安检人员手里’抢回来’的。我问他为什么带个相框回来，他说那个相框是从...</description></item><item><title>一个'莫须有'的BUG</title><link>https://tonybai.com/2006/12/11/a-unwarranted-bug/</link><pubDate>Mon, 11 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/11/a-unwarranted-bug/</guid><description>上周三晚，河南’前线’反馈，河南移动手机用户投诉，经查是话单丢失。查看后的确有蹊跷，按照数据库中录入的原始话单数据来看，这几条记录的确是该生成话单的。之后又有同事发现出现丢话单的问题不仅仅这几条，而是一批一批的。没什么头绪，一夜无话，周四发现每天入库的可生成话单记录数居然比话单多出100万，也就是说我的程序居然少生成了100万话单，按照一条记录1角钱，这也是10万块呀，事情紧迫，问题查找的历程开始...</description></item><item><title>三谈内存对齐－背后的故事</title><link>https://tonybai.com/2006/12/08/talk-about-memory-alignment-the-3rd-time/</link><pubDate>Fri, 08 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/08/talk-about-memory-alignment-the-3rd-time/</guid><description>记得以前曾经两次谈到过内存对齐话题，一次在&amp;#39;也谈内存对齐&amp;#39;一文中，另一次则是&amp;#39;也谈内存对齐(续)&amp;#39;，今天下午和同事又谈到内存对齐的问题了，遂想继续挖掘下去，看看其背后的故事。 关于内存对齐的中文文章多在介绍对齐的&amp;#39;法则&amp;#39;，比如为什么sizeof(T)和我们估计的T的大小有出入呢等等，而对于内存对齐的本质少有介绍，我在Google上搜索了一阵后，在IBM开发社区上发现一篇叫&amp;#39;Data alignme...</description></item><item><title>梦到地震了</title><link>https://tonybai.com/2006/12/07/dream-about-earthquake/</link><pubDate>Thu, 07 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/07/dream-about-earthquake/</guid><description>从小到大对梦都是很感兴趣的，因为在梦里你无所不能，很是奇妙。中国古代有周公解梦，国外有弗洛伊德的’梦的解析’，感觉梦这个东西若干年内用纯科学的手段是解释不清楚的，遂宁可信其有，不可信其无。 这个梦好像是前天早上快天亮时做的，印象极其深刻，以致于我现在还想说。 梦中，我在一片很美丽的地方，有山有水，好似张家界，又好似九寨沟(因为我一直想去但是还没去过这两个地方，所以就当成这两个地方在我脑海中的痕迹吧...</description></item><item><title>我的姥爷</title><link>https://tonybai.com/2006/12/07/my-grandfather/</link><pubDate>Thu, 07 Dec 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/12/07/my-grandfather/</guid><description>我的姥爷，祖籍江苏扬州，中等身材，年轻的时候用现在的话说是一个’帅哥’级人物，家里算是有钱人，但不是地主，是那种雇得起其他工人的家庭，听我姥姥说当年我姥爷的父亲很严厉，家教也很严格，姥爷从小读书，毛笔字和算盘都很棒。在解放后随单位到了东北，从此安家东北。 姥爷虽在东北待了几十年，仍然有很浓重的南方口音，而且说快的时候外人估计就听不懂了。我从小是我姥姥和姥爷带大的，所以姥爷说什么我都听得懂，记得GF...</description></item><item><title>挖掘一下C语言中的多维数组</title><link>https://tonybai.com/2006/11/29/understand-multiple-dimension-array-in-c/</link><pubDate>Wed, 29 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/29/understand-multiple-dimension-array-in-c/</guid><description>好久没有看技术类的书籍了，今晚恰看到以前不知什么时候下到的一本oreilly的叫’mastering algorithms with c’的书，从书名可以看出这是一本讲算法的书，不过由于是选用了C语言作为讲解语言，所以难免不说说C语言。其中看到一节讲指针和数组，恰好碰到书中说: a\[i\]\[j\] \*(\*(a+i) + j)，这个等价式看起来显而易见，但是还是有些东西值得挖掘一下的。 我们...</description></item><item><title>只给女人做一种款式的鞋子</title><link>https://tonybai.com/2006/11/27/only-one-style-of-shoes-for-ladies/</link><pubDate>Mon, 27 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/27/only-one-style-of-shoes-for-ladies/</guid><description>这几天沈城降温，温度急转直下，颇有些深冬的寒意，往往此刻各大商家也是使出浑身解数，打着各种打折促销的招牌，招揽顾客。我们都是凡人，有时候还真的被商家的活动弄得晕头转向，从此商场跑到彼商场，忙得也不亦乐乎。 在上述的情况下，最痛苦的事情莫过于买不到东西，也就是说虽然眼看着打折促销，但是就是看不到让自己满意的商品，这时候是最闹心的。而我的GF就属于’这类人’^\_^。也就是昨天，她的犹犹豫豫也让我累的...</description></item><item><title>感受南方的湿冷</title><link>https://tonybai.com/2006/11/18/feel-the-southern-clamminess/</link><pubDate>Sat, 18 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/18/feel-the-southern-clamminess/</guid><description>这两天星城长沙一改以往的热度，开始淅淅沥沥的下起雨来，伴随着雨而来的是南方特有的湿冷，这让来自北方习惯了冬天有取暖，屋子里干热的我真是有些不习惯，并且放弃了周末出去游玩的计划，留在宾馆里开着空调，无聊。 还有一周，在外面独自出差快到1个月了，身体和精神都已经到达’极限’了，可是想回去又不太现实，工作还有一些，有些还是我们控制不了的。心里真是急呀，家里那边还有很多重要的私事要解决。 外面还在下着雨，...</description></item><item><title>上'风尚'频道了</title><link>https://tonybai.com/2006/11/15/be-listed-on-fengshang-channel-on-blogbus/</link><pubDate>Wed, 15 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/15/be-listed-on-fengshang-channel-on-blogbus/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>亲历马王堆出土文物展</title><link>https://tonybai.com/2006/11/11/a-tour-of-hunan-museum/</link><pubDate>Sat, 11 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/11/a-tour-of-hunan-museum/</guid><description>又是一个周末，独自一人在长沙要主动寻找去处，免得无聊。上周去了岳麓山，今天决定去湖南省博物馆。我的一个长沙本地的系统工程师同事很是推荐我去趟博物馆，去看看马王堆出土文物。省博里我住的酒店和我工作的地方都很近，每天去工作的地方都会路过。今天终于决定而且有空去逛逛了。 自从我来到长沙一直没有下雨，天气一直很热，很难想象在11月中旬我居然还在一个温度在25度左右的地方生活，打出生这还是第一次^\_^。今...</description></item><item><title>工作繁忙，病毒侵扰</title><link>https://tonybai.com/2006/11/10/busy-work-and-virus-attack/</link><pubDate>Fri, 10 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/10/busy-work-and-virus-attack/</guid><description>这两天的情况可以用:’工作繁忙，病毒侵扰’来形容，工作繁忙是因为在现场要配合多个网元的测试；病毒侵扰，可不是我得病了，是我的电脑被病毒感染了，杀了几天了，目前处于稳定阶段，不知道病毒还潜伏在什么地方。 这两天每天早上一起床，打开电脑，登陆gtalk，MSN，QQ，因为不同网元接口人使用的IM工具都不同，还好我什么都有^\_^。登陆后，马上各个IM工具开始不停的闪，哇，先挑优先级高的回，那些可以延后...</description></item><item><title>国青正在上演'软慢烂'</title><link>https://tonybai.com/2006/11/06/national-youth-team-become-worse/</link><pubDate>Mon, 06 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/06/national-youth-team-become-worse/</guid><description>本来不想说中国足球了，实在没什么值得说的，除了’骂’还是’骂’。这不独自一人在外，没什么可看的，恰逢直播亚青赛8分之一决赛中国vs.约旦。赛前解说员刘建宏还说：中国教练组认为约旦还不如阿联酋。可实际上半场结束呢，中国0：1落后，这还不是最令人郁闷的，最郁闷的是中国那帮年轻人的表现，三个字’软，慢，烂’。 现在是中场休息，我是边上网边看球，因为球赛的精彩程度实在让我打不起精神，全部集中精神看球太浪费...</description></item><item><title>逛逛岳麓山</title><link>https://tonybai.com/2006/11/04/a-tour-of-yuelu-mountain/</link><pubDate>Sat, 04 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/04/a-tour-of-yuelu-mountain/</guid><description>长沙周围的景点离得最近的，也是最知名的就算是岳麓山风景区了，上次和我一起来的同事就说有时间可以去岳麓山逛逛，上次他去的时候爬山爬得满身大汗。今天长沙天气很棒，唯一遗憾就是太热，听天气预报今天星城最高温度居然达到28度，怪不得爬山时也是大汗淋漓^\_^。 中午就问了宾馆前台如何坐bus去岳麓山，不过一口湘音的前台说了一堆，我听了个一知半解。’谢谢’后回房间上网自己查，找到了一条稳妥点的路线，就是先到...</description></item><item><title>吃在湘地-腊肉篇</title><link>https://tonybai.com/2006/11/01/eat-at-hunan-bacon/</link><pubDate>Wed, 01 Nov 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/11/01/eat-at-hunan-bacon/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>吃在湘地-煲仔篇</title><link>https://tonybai.com/2006/10/31/eat-at-hunan-hot-pot-rice/</link><pubDate>Tue, 31 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/31/eat-at-hunan-hot-pot-rice/</guid><description>在长沙工作日除了工作，就是吃东西。到了一个新地方，我想所有人都想找一些特色的地方吃，我也不例外。 在湖南省博附近有一家百年老店－’杨裕兴’，以面为特色，这也是后来才知道的，我今天没吃面，吃的是煲仔。由于早上吃饭较晚，所以到在下午3点才感觉到腹中饥饿，来到’杨裕兴’，服务员都在擦桌子，收拾卫生。中午的饭局已过。看了贴在墙上的菜单，想起同事说长沙的煲仔很不错，遂要了份’香干回锅肉煲仔’，等了大约15分...</description></item><item><title>吃在湘地-面食篇</title><link>https://tonybai.com/2006/10/31/eat-at-hunan-noodles/</link><pubDate>Tue, 31 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/31/eat-at-hunan-noodles/</guid><description>今天搬到新的宾馆，条件肯定不如准5星了，不过离工作地点近，不用总打车了，况且自己一个人的补助也住不起准5星。 换完房后，早饭点已过，只能早餐午餐一起了。旁边一家普通的饭店，是属于煲仔，面/粉，炒菜俱全的。还没吃过南方的面的，这次要了一碗 ‘冬菇肉片面’，面端过来还是很好看的。瞧瞧： 冬菇肉片面 不过吃起来，真是不如北方的面好吃，我怀疑这里的面条是不是北方那种小麦做的，很难吃。冬菇有的有些苦。总之很...</description></item><item><title>湘地光影</title><link>https://tonybai.com/2006/10/29/some-photos-of-changsha-of-hunan/</link><pubDate>Sun, 29 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/29/some-photos-of-changsha-of-hunan/</guid><description>赶上周末，头一次来到湖南的我自然选择转转，因为过几天可能要换到一个离工作地点较近的宾馆，所以今天出去’踩踩盘子’，顺便浏览一下湖南的城市风光。 工作地点在省博物馆附近，我们也就在那附近转哟。中午到长沙著名的中华老字号－’火宫殿’，老字号都有一个毛病就是卫生条件很是一般，菜倒是有特色，南方城市的汤都是很不错的，这次我们要了一个土鸡炖板栗莲子，一火罐的，足够两个人吃。还有几个小菜我都记不住了，主食我要...</description></item><item><title>身在湘地</title><link>https://tonybai.com/2006/10/27/i-am-at-hunan-province/</link><pubDate>Fri, 27 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/27/i-am-at-hunan-province/</guid><description>由于项目原因，从冰冷的北方飞到温暖的湘地首府－长沙。昨天晚上飞机晚点，到达酒店已经是凌晨了，不过酒店不错，准五星的，是目前我住过的最好的酒店了:)。 由于机票定的较晚，所以需要在北京转机，在首都国际机场无聊的等了近4个小时，终于于北京时间20:30离开了首都机场的跑道，其间还吃了一顿28元的牛肉饭，这算是候机楼里最便宜的饭菜了。味道还不错，就是没吃饱，多亏飞机上还提供一顿简易的晚餐。 一夜无话，今...</description></item><item><title>公务员招考应该'与时俱进'</title><link>https://tonybai.com/2006/10/24/civil-servant-exam-should-keep-up-with-the-times/</link><pubDate>Tue, 24 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/24/civil-servant-exam-should-keep-up-with-the-times/</guid><description>一年一度的国家公务员招考报名工作即将于今晚24点截止，之所以关注这次报考是因为我GF也是诸多考生中的一员，在帮助她报考的过程中，我有了一些想法和体会。 我不是很了解公务员职位表中对职位的要求是如何确定的，但是我看了公务员职位表后第一感觉就是专业限制太’死’，职位要求太严格。众所周知，公务员招考主要还是面向社会有工作经验的人，每年统计数字表明2/3的职位录取的是有工作经验的人。我的疑问就在于此：有工...</description></item><item><title>我也支持打开秦始皇陵</title><link>https://tonybai.com/2006/10/24/i-agree-in-opening-the-mausoleum-of-qinshihuang/</link><pubDate>Tue, 24 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/24/i-agree-in-opening-the-mausoleum-of-qinshihuang/</guid><description>今天看到国内著名经济学家张五常的一篇文章: &amp;#34;是打开始皇陵墓的时候了&amp;#34;以及众网友的评论，自己也有一些想法，我是很赞成早些打开秦始皇陵的。 张五常先生在发表&amp;#34;是打开始皇陵墓的时候了&amp;#34;一文之后又陆续发表了若干篇，有篇是从经济学角度来考虑打开秦始皇陵对中国经济特别是中国西部经济的促进作用。我是个凡人，仅从自己的角度去想问题。:) 记得最近一部有关秦始皇陵的’大片’应该是成龙和金喜善主演的’神话’，细数起...</description></item><item><title>今天敲了'一亿次'键盘</title><link>https://tonybai.com/2006/10/19/knock-keyboard-a-hundred-million-times/</link><pubDate>Thu, 19 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/19/knock-keyboard-a-hundred-million-times/</guid><description>终于干完活了，这几天甭提有多忙，今天感觉键盘敲的最多，’一亿次’只是个夸张的虚数，具体多少次，我也没去数^\_^。不过一天下来手指、手掌、肩膀都有些发木，酸酸的，难受极了，估计这就是职业病。 最累的是往CVS中导入代码，其实如果是新工程导入也就简单了，一个cvs import命令就可以搞定，可是项管偏偏把顶层目录给你导了进去，这下子可忙坏了我，需要一个目录一个目录，一个文件一个文件的add和com...</description></item><item><title>本本换风扇记</title><link>https://tonybai.com/2006/10/18/replace-electric-fan-for-laptop/</link><pubDate>Wed, 18 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/18/replace-electric-fan-for-laptop/</guid><description>由于公司信息安全管理日趋严格，新政策规定：不允许自带计算机进入工作区。隐痛割爱，我的本本交给了GF，这到把她高兴坏了。不过还好趁着出差培训的机会，从部门借了台笔记本，回来后也就’暂时’由我使用了:)。不过我周围的同事可算是’倒霉’了，你要问为什么，下面告诉你。 我借的这台笔记本出身’名门正派’，乃大名鼎鼎的IBM门下弟子，可惜估计是最烂的一届弟子，我见过的部门几台同型号的机器都有类似的问题－散热，...</description></item><item><title>Goto也有它的好</title><link>https://tonybai.com/2006/10/17/goto-also-has-beneift/</link><pubDate>Tue, 17 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/17/goto-also-has-beneift/</guid><description>最近真是忙的昏头转向，再加上天气逐渐转冷，很是有些不爽。今天dreamhead提醒我好久不更新Blog了，我也想更新，但是写点什么呢，工作相关的吧。 今天抽出一点儿时间来改一个系统的大Bug，这个问题早已定性，只是由于修改工作量较大，范围较广，而不敢轻易修改。不过眼看系统要上线测试，不改也不行了。 问题主要是由于系统锁资源使用不当，导致有时一些指针在无锁保护的情况下’裸奔’，解决方案就是在业务一层...</description></item><item><title>吃了辣椒的苦头</title><link>https://tonybai.com/2006/10/12/bitter-taste-from-cayenne/</link><pubDate>Thu, 12 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/12/bitter-taste-from-cayenne/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>无'新书'可读</title><link>https://tonybai.com/2006/10/10/no-new-book-to-read/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/10/10/no-new-book-to-read/</guid><description>经过中国各大计算机图书出版社的多年的努力，国内渐渐进入无’新书’可读的状态，记得前些年各种以前外国出版的经典书籍纷纷进入国内，让像我这样的读者们着实过了把瘾。从今年7月份以来就基本上在市面上找不到能吸引我的计算机书籍了。 无’新书’可读，不代表无’书’可读，至少还可以温故而知新吗:)，我的书架上还有一些买来许久仍然仅仅停留在序言阶段或者第一、二章的书。前不久在某学院出差时恰逢大四学生毕业，让我以’...</description></item><item><title>令人昏昏欲睡的'夜宴'</title><link>https://tonybai.com/2006/09/30/worse-film-the-banquet/</link><pubDate>Sat, 30 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/30/worse-film-the-banquet/</guid><description>冯导的第一部武侠片上映许久了，本想去电影院捧捧场，但是听闻其在群众间反响并不是甚好，觉得不值，这不昨天在我的本本上将之看完。 的确又是老班子，老套路，毫无新意。谭盾+袁和平+章子怡+冯小刚/张艺谋+竹林戏+…+铺天盖地的广告=估计让投资商满意的票房，这样的片子如果能入围并摘取Oscar奖那真将是世界电影的倒退。剧情简单不说，连台词也少的可怜，而且时而仿古，时而仿今，不伦不类。 与前几部同类戏相比，...</description></item><item><title>'此起彼伏'的复杂性</title><link>https://tonybai.com/2006/09/12/the-complexity-rise-one-after-another/</link><pubDate>Tue, 12 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/12/the-complexity-rise-one-after-another/</guid><description>今天部门的一个同事很痛苦的向我求助。问题是关于一个新功能的测试，如果是一般的功能也就罢了，关键是这个功能是基于我曾做过的一个框架的，而这位同事由于是临时被指派的工作，对我的那个东西完全不熟悉。 问题就在这，当时写那个框架的时候目标就是为了部门内部其他项目的高度复用，也就是说其他项目如果有类似需求，使用我们的框架经过一系列配置就可以满足需求，至多需要一个简单的二次开发过程，可能需要提供若干业务相关的...</description></item><item><title>不完备库接口带来的隐患</title><link>https://tonybai.com/2006/09/09/hidden-danger-introduced-by-uncompleted-interface/</link><pubDate>Sat, 09 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/09/hidden-danger-introduced-by-uncompleted-interface/</guid><description>最近自己曾经辛苦耕耘过的两个项目同时上线，相关问题也就逐渐暴露出来。工作这两年多时间以后，使我有这样感觉：’测试永远都是不完备的’，有些问题只能在商用过程中发现，呵呵，明确一点啊我不是搞测试的:) 在解决问题过程中的感悟往往是最深刻的，解决问题的过程往往真的像是警察在侦破案件，往往一点点罪犯留下的蛛丝马迹就会让神探们找到线索，并迅速破案。 最近两天一直在一个bug上煎熬着，终于于昨天发现蛛丝马迹并...</description></item><item><title>'Manna' – An extremely attractive fiction</title><link>https://tonybai.com/2006/09/07/manna-an-extremely-attractive-fiction/</link><pubDate>Thu, 07 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/07/manna-an-extremely-attractive-fiction/</guid><description>Our British English teacher Alex recommended a book called ‘Manna’ to us for its simple grammar and vocabulary. After reading it, we all agreed on that it was an extremely attractive fiction. The auth...</description></item><item><title>小心'溢出'陷阱</title><link>https://tonybai.com/2006/09/06/be-careful-of-the-trap-of-overflow/</link><pubDate>Wed, 06 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/06/be-careful-of-the-trap-of-overflow/</guid><description>这几天以前曾经做过的一个项目上线测试了，果不其然，没有经过’战争洗礼’的产品就是靠不住，这不出了若干问题。害得我逃了半天课远程支持。 其中的一个问题很值得思考。其所在的模块并非是一个核心功能模块，而是一个提高系统Availability的一个功能模块，主要功能就是监视磁盘占用率。我们通过配置给出允许使用的磁盘空间大小(以M Byte为单位)，以及两个阈值，即当占用率达到多少的时候，Do A；达到多...</description></item><item><title>最初接触计算机的两三事</title><link>https://tonybai.com/2006/09/01/somethings-about-using-computer-at-first/</link><pubDate>Fri, 01 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/01/somethings-about-using-computer-at-first/</guid><description>刚刚看了云风的’编程的门槛‘一文，和他相比我接触计算机的时间则显得少得可怜。 记得第一次接触计算机是在初中二年级，一张软盘启动计算机的年代，WPS、五笔字型盛行的年代，那时我的理解计算机除了能打字之外，唯一能干的就是玩游戏-超级玛丽-一张软盘足以。那时渐渐的失去了对计算机的兴趣，五笔字型输入法也没学会，除了最简单的一级简码:)。 进入高中后，也有计算机课，老师用一个学期的时间讲BASIC语言，不知...</description></item><item><title>Books And Films</title><link>https://tonybai.com/2006/08/12/books-and-films/</link><pubDate>Sat, 12 Aug 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/08/12/books-and-films/</guid><description>* 八月 12, 2006 Yesterday evening I went to a bookstore chain. What made me feel disappointed was that I couldn&amp;#39;t find the original edition of Harry Potter series books. I have been reading an electroni...</description></item><item><title>Harry Potter and the Sorcerer's Stone读书笔记Part2</title><link>https://tonybai.com/2006/08/12/harry-potter-and-the-sorcerers-stone-reading-notes-part2/</link><pubDate>Sat, 12 Aug 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/08/12/harry-potter-and-the-sorcerers-stone-reading-notes-part2/</guid><description>CHAPTER TWO – THE VANISHING GLASS 1．The photographs showed a large blond boy riding his first bicycle, on a carousel at the fair, playing a computer game with his father, being hugged and kissed by hi...</description></item><item><title>Harry Potter and the Sorcerer's Stone读书笔记Part1</title><link>https://tonybai.com/2006/08/11/harry-potter-and-the-sorcerers-stone-reading-notes-part1/</link><pubDate>Fri, 11 Aug 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/08/11/harry-potter-and-the-sorcerers-stone-reading-notes-part1/</guid><description>CHAPTER ONE – THE BOY WHO LIVED 1．Sorcerer – One who practices sorcery; a wizard. 这是Harry Potter的身份，一个巫师，一个男巫师；对应的女巫师为Sorceress. 2．The boy who lived. 这里的’lived’是’活着’的意思而不是’居住’，这里它是一个不及物动词(vi)，我们可以再举几个...</description></item><item><title>Warning: Super Typhoon is coming!</title><link>https://tonybai.com/2006/08/11/warning-super-typhoon-is-coming/</link><pubDate>Fri, 11 Aug 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/08/11/warning-super-typhoon-is-coming/</guid><description>Today is a little cooler in Dalian and everything goes well. Alex brought us a topic about stock market, I didn&amp;#39;t speak much in class, because I have little interest in that issue, but I do learn a lo...</description></item><item><title>My English Diary Starts From Scratch</title><link>https://tonybai.com/2006/08/10/my-english-diary-starts-from-scratch/</link><pubDate>Thu, 10 Aug 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/08/10/my-english-diary-starts-from-scratch/</guid><description>I have been thinking of writing my English diary for a long time, but I do have no idea what I should write down. I have been studying English in Dalian for almost one and half a month and I really do...</description></item><item><title>大连生活记-老虎滩乐园篇</title><link>https://tonybai.com/2006/07/31/dalian-trip-notes-tiger-beach/</link><pubDate>Mon, 31 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/31/dalian-trip-notes-tiger-beach/</guid><description>来到大连之后只是到过Free的星海公园和星海广场玩过，大连最有名的海洋馆和极地馆我和GF还没去过，今天的计划就是到大连一著名的旅游景点老虎滩去玩。 大连的天气多变，早上起来，外面还是雾气蒙蒙，看起来要下雨的样子，出去的时候还弄了一身雾水。不过不管它了，也许中午太阳出来后，雾就能散去呢，不过大连真的是有大雾一天都散不去的情况。我们住在育明高中附近，去老虎滩得转车，不过很方便，只需在育明高中这坐533...</description></item><item><title>英语培训日记20060728</title><link>https://tonybai.com/2006/07/28/english-train-notes-20060728/</link><pubDate>Fri, 28 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/28/english-train-notes-20060728/</guid><description>最近南方台风肆虐，不知道是不是大连也受到了影响，天气也很糟糕，特别凉。今天由于两个同事临时有事回沈城了，我们就决定暂时休息一天。顺便抽出时间复习一下前段时间学习的内容。 在上次写作课上，Michael给我们讲了一下如何在正式写作中给句子加标点，的确这各问题让我们很头疼。他给我们举了三个例子： \[Ex.\] (1) It’s too far to walk to school it is snow...</description></item><item><title>Superman Returns</title><link>https://tonybai.com/2006/07/26/superman-returns/</link><pubDate>Wed, 26 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/26/superman-returns/</guid><description>周二各大影院均半票，客居异乡也没有什么好的休闲项目，看电影就是我们最好的选择了。前不久上映的暑期档大片’Superman Returns’自然是我们的首选，尽管现在’谍中谍3′正在热映，但从心里来讲’超人’具有无可比拟的魅力。由于’超人’已经过了首映周，自然’沦落’到小厅中播放了，我们选择了’英文版+中文字幕’的观看方式，这好像也是第一次在电影院中看’英文版’，在沈城我还没见到过放映英文版的。 记...</description></item><item><title>又一部国产好剧-疯狂的石头</title><link>https://tonybai.com/2006/07/26/good-film-crazy-stone/</link><pubDate>Wed, 26 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/26/good-film-crazy-stone/</guid><description>最近在上映一部国产电影叫’疯狂的石头’，又名’贼中贼’，如果听到前面的名字肯定对该片讲述的故事一头雾水，而后面的名字倒是真实反映了片中的故事。很多人不喜欢看国产片，以为不好看，不过这部’疯狂的石头’是例外，建议大家看看，很不错的，即使不到电影院去看，也要买张牒看看。 我就是和同事一起看的牒版，这种故事片无需太好的音响效果，所以在家看也不错，当然如果能去影院看那就更好不过了。一部国产的影片能吸引观众...</description></item><item><title>大连生活记-生活环境篇</title><link>https://tonybai.com/2006/07/24/dalian-trip-notes-living-environment/</link><pubDate>Mon, 24 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/24/dalian-trip-notes-living-environment/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>英语培训日记20060719</title><link>https://tonybai.com/2006/07/19/english-train-notes-20060719/</link><pubDate>Wed, 19 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/19/english-train-notes-20060719/</guid><description>大连今天终于放晴了，一大早上强烈的阳光就穿透玻璃窗射进屋内。看来昨晚洗的一些衣服可以很快的干了。 今天Alex给我们上的是pronunciation课，他首先按照音标表，分别给我们纠正发音，包括各种Vowels和Consonants，他建议我们练习发音的最好方法就是拿个Recorder录下你的发音，然后听录音，直到你认为&amp;#39;You are comfortable with your pronunci...</description></item><item><title>英语培训日记20060717</title><link>https://tonybai.com/2006/07/18/english-train-notes-20060717/</link><pubDate>Tue, 18 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/18/english-train-notes-20060717/</guid><description>自从来到大连后，大连的雨好像就没停过，问我大连本地人，他们也说最近雨下得太频繁了。就连我们的外教Alex也说他昨天洗的衣服不知道什么时候才能干。不过大连有一点好处，那就是凉快，有些时候可以说有些&amp;#39;冷&amp;#39;，有点夸张吧^\_^，今天下班的时候感觉就冷冷的。 今天是中教口语课的最后一节Read-Retell课了，今天的内容是一些commercial affairs，有点难，特别是有些术语不常用，解释起来比...</description></item><item><title>P.J.Plauger版本C标准库实现分析之'ctype.h'</title><link>https://tonybai.com/2006/07/17/plauger-c-standard-lib-ctype-header/</link><pubDate>Mon, 17 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/17/plauger-c-standard-lib-ctype-header/</guid><description>如果在你的源代码中经常见到如下代码： /\* To Identify a letter \*/ if ((i &amp;gt;= &amp;#39;a&amp;#39; &amp;amp;&amp;amp; i = &amp;#39;A&amp;#39; &amp;amp;&amp;amp; i = &amp;#39;0&amp;#39; &amp;amp;&amp;amp; i &amp;lt;= &amp;#39;9&amp;#39;) 这说明你对头文件理解的不是很好，而也恰恰是为了减少代码中重复出现的各种&amp;#39;字符分类&amp;#39;代码而设置的。 中的接口常用来进行数据的校验和分类，如在我们的项目中它常被用来校验原始数据的&amp;#39;符合性&amp;#39;。比如说一个11位的手...</description></item><item><title>英语培训日记20060714</title><link>https://tonybai.com/2006/07/14/english-train-notes-20060714/</link><pubDate>Fri, 14 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/14/english-train-notes-20060714/</guid><description>终于租到一间还算像样的房子了，毕竟属于出差，艰苦就艰苦点吧，毕竟比学生宿舍要好，起码不会定点熄灯。昨天我们几个学员以及所有可以出场的家属和Alex以及其GF一起去吃了一次barbecue，路边大排挡，新疆人的摊位，蛮有中国特色的，肉烤得很不错。Alex这个英国人很能喝，按他的说法：Ten bottoms of beer。昨天我们还发现Alex的中文很好，他在课堂上可从来不和我们说中文，他在中国只待...</description></item><item><title>梦想中的'无线世界'</title><link>https://tonybai.com/2006/07/12/wireless-world-in-dream/</link><pubDate>Wed, 12 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/12/wireless-world-in-dream/</guid><description>每次出门在外，都得随身携带一堆&amp;#39;线&amp;#39;，什么笔记本电源线、鼠标(一般其线也好长好长)、MP3播放器USB连接线、耳机(麦克)线、MP3播放器充电器连接线、网线、数码相机充电器连接线、数码相机USB连接线、手机充电器线、手机USB连接线等等，有时候电源插排也必须带。这些线混成一团，看起来都让人不舒服，有时候这些线混在一起，想把他们分开的确也是件难事，恨不得拿把剪刀把它们全部剪断。所以我梦想一个&amp;#39;全无线...</description></item><item><title>英语培训日记20060712</title><link>https://tonybai.com/2006/07/12/english-train-notes-20060712/</link><pubDate>Wed, 12 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/12/english-train-notes-20060712/</guid><description>这两天一直在忙着找房子，本来到这是想好好学英语的，但是由于安排上的不妥当，导致我们浪费了好多功夫找房子，而且短期房难租而且死贵死贵。我们连续花了2天下午+晚上才搞定一个房子，离公司大约20分钟脚程，如果一切顺利，明天的这个时候，我们已经搬到新租的房子里了。 随着学习的深入，新鲜感逐渐消失，觉得每天学习的内容也没有什么好说的。今天写作课，老师讲解了两种mail的写作方法，分别是’ASK FOR A ...</description></item><item><title>英语培训日记200607010</title><link>https://tonybai.com/2006/07/10/english-train-notes-200607010/</link><pubDate>Mon, 10 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/10/english-train-notes-200607010/</guid><description>一大早就被震耳欲聋的雷声所惊醒，外面哗哗的下着大雨，估计也就是早上三四点钟，继续睡。昨晚GF和我说她们寝室要看世界杯决赛，我想那时那刻她们正在电脑前&amp;#39;朦胧地&amp;#39;欣赏着意大利和法国队的表演呢。早上7点闹钟把我们都叫醒了，可是外面的雨依旧那样的大。 我们趟着积水来到教室，中教口语老师依旧不见踪影，我们猜测是雨太大了，堵车或者是叫不到Taxi，大约等了半个多小时，我们的中教口语老师Susan才气喘吁吁的跑...</description></item><item><title>灾难巨制'海神号'</title><link>https://tonybai.com/2006/07/09/film-poseidon/</link><pubDate>Sun, 09 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/09/film-poseidon/</guid><description>今天是到大连来的第一个周末，和几个朋友一起去大连的几处闹市区’探路’，毕竟初来乍到，需要朋友们指引。中午饭后，朋友们觉得也没什么可去的地方，其中一个提议去看电影，我也好久没到影院去看电影了，上次本想去看Da Vinci Code的，可是后来片子由于宗教问题而被撤下，我也就扑了个空。反正也没什么事，去看看电影，消遣一下。其实我们也不知道现在上映什么电影呢，去了再说。 朋友有一张奥纳电影城的会员卡，可...</description></item><item><title>P.J.Plauger版本C标准库实现分析之'assert.h'</title><link>https://tonybai.com/2006/07/08/plauger-c-standard-lib-assert-header/</link><pubDate>Sat, 08 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/08/plauger-c-standard-lib-assert-header/</guid><description>I believe that seeing a realistic implementation of the Standard C library can help you better understand how to use it.                                                                                ...</description></item><item><title>英语培训日记20060707</title><link>https://tonybai.com/2006/07/07/english-train-notes-20060707/</link><pubDate>Fri, 07 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/07/english-train-notes-20060707/</guid><description>这是自从大学毕业以来第一次连续上五天课，第一感觉就是疲倦，甚至比上班还要累。也许会有人说我&amp;#34;身在福中不知福&amp;#34;，也许吧。看着大连软件园周围那些匆匆忙忙的年轻人的身影，也许我的确该感到&amp;#39;幸福&amp;#39;。 今天是商务英语写作课的第一节，老师也安排从最基础的Business Letter开始。其实说到英语信函，很多人会记得在初中英语教材中就有涉及，只是当时老师不会讲的如此之细，侧重点也不同罢了。如何能写出&amp;#39;goo...</description></item><item><title>2006荷月靓乐</title><link>https://tonybai.com/2006/07/06/recommend-music-of-2006-06/</link><pubDate>Thu, 06 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/06/recommend-music-of-2006-06/</guid><description>这个月可以说是世界杯月了，大家都忙着收看世界杯转播呢，还哪有时间听歌呀，我也不例外亚。今天才想起来好像好久都没有新歌听了。 如果真的没有新的好听的歌，那么这个月的靓乐可是要空缺的了，不过还好王力宏给我带来了一首&amp;#39;大城小爱&amp;#39;让我们欣赏。最初以为王力宏靠的是帅气的外表，在听了多首他的歌后，越来越觉得王力宏应该归到实力派的歌手当中，其嗓音很是独特，每张专辑的制作也是上乘的。就拿这首&amp;#39;大城小爱&amp;#39;来说，很喜...</description></item><item><title>英语培训日记20060706</title><link>https://tonybai.com/2006/07/06/english-train-notes-20060706/</link><pubDate>Thu, 06 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/06/english-train-notes-20060706/</guid><description>今天是中教口语课的第一天，给我们上课的是一位女士，看起来很是和蔼可亲的。今天大连的天气有些糟糕，一直在淅淅沥沥的下着小雨，早上起来的时候嗓子有些肿痛，吃了点药，好些了。 中教口语老师根据她的课程安排首先给我们上了一节简单的’Read-Retell’课程，课程内容很简单，老师准备了四篇类似笑话的短文，让我们其中之一A先看上3分钟，然后像我们其中的一个B复述短文的大意，B在听完A的复述后，再向C复述，...</description></item><item><title>英语培训日记20060705</title><link>https://tonybai.com/2006/07/05/english-train-notes-20060705/</link><pubDate>Wed, 05 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/05/english-train-notes-20060705/</guid><description>今天是英语培训课程的第二天，前两节是中教听力，后两节则是外教口语，外教口语课每天都有两个学时，以保证我们有足够的时间和外教交流。 在正式开始听音之前，老师还是把前天测试写作时出现的问题给我们讲解了一番，那是一道商业信函写作，老师给我们指出了我们共同犯的几个错误。首当其冲的就是信函的格式问题，首先是称呼。我们四个人居然写出了四种方法，很是搞笑，分别为： Dear Mr. Middleman Dear...</description></item><item><title>英语培训日记20060704</title><link>https://tonybai.com/2006/07/04/english-train-notes-20060704/</link><pubDate>Tue, 04 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/04/english-train-notes-20060704/</guid><description>昨天其实是培训的第一天，只不过没有上课罢了，昨天进行了一系列(A Series Of)的英语测试，包括凯思英语测试、听力和写作、口语摸底测试，其中只有凯思测试当场能看到成绩，估计我的成绩不咋的，毕竟好久没有进行过这方面训练了，成绩单如下： 词汇能力：166 综合表达：198 听力理解：206 综合填空：155 总分：725 但正如一位同事所说，如果现在考得好，那么结业测试不就显不出来你有所进步了么...</description></item><item><title>'回归'学生宿舍</title><link>https://tonybai.com/2006/07/02/return-to-campus-dormitory/</link><pubDate>Sun, 02 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/02/return-to-campus-dormitory/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>在'辽东半岛号'上</title><link>https://tonybai.com/2006/07/02/on-the-train-to-dalian/</link><pubDate>Sun, 02 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/02/on-the-train-to-dalian/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>告别阿根廷，告别世界杯</title><link>https://tonybai.com/2006/07/01/say-bye-to-agentina-and-worldcup/</link><pubDate>Sat, 01 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/01/say-bye-to-agentina-and-worldcup/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>我的阿根廷队队服</title><link>https://tonybai.com/2006/06/29/my-agentina-team-clothes/</link><pubDate>Thu, 29 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/29/my-agentina-team-clothes/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>'寓教于乐'学Ruby</title><link>https://tonybai.com/2006/06/28/learn-ruby-in-amusement/</link><pubDate>Wed, 28 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/28/learn-ruby-in-amusement/</guid><description>在2005年初曾经写过一篇文章叫&amp;#39;结识Ruby&amp;#39;，当时的确是刚刚结识Ruby这种语言，好奇心使然，遗憾的是之后没有坚持学习下去，也就是在这一年Ruby获得了很大的发展，特别是Ruby On Rails的出现让Ruby一下成为新兴语言的代表，甚至有人预言Ruby将会成为Java的替代者成为下一代主流语言。无论如何，Ruby的日益被广大开发人员所接受是个不争的现实，就连Martin Fowler到中国...</description></item><item><title>鼓掌告别加纳，斗牛士折戟沉沙</title><link>https://tonybai.com/2006/06/28/spain-out/</link><pubDate>Wed, 28 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/28/spain-out/</guid><description>昨晚的两场八分之一决赛有个共同的特点：控球不占优的球队反倒赢得了比赛。 很早就期盼五星巴西的再次表演了，昨晚23点，强大的巴西队再次出场迎战仅存的非洲新军加纳，巴西队的首发阵容和其小组赛首场毫无二致，依旧是’梦幻四重奏’。一开场卡卡的一次助工就帮助大罗打破了世界杯进球纪录，同时也让巴西队有了一个梦幻的开局。取得1:0领先后，巴西人开始了他们的闲庭信步了，不过后卫的几次失误险些葬送了巴西的前途，加纳...</description></item><item><title>澳大利亚含冤出局，史上最差点球队诞生</title><link>https://tonybai.com/2006/06/27/australia-team-out/</link><pubDate>Tue, 27 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/27/australia-team-out/</guid><description>两场八分之一比赛，均是通过点球决出的胜负。但虽然同是点球，各有各的特点，各有各的’冤屈’，我们一起来评点一下。^\_^ 昨天晚上强忍’困倦’的侵袭，坚持看了一场完整的八分之一比赛-意大利 vs. 澳大利亚。其过程相当沉闷，很多评论界也认为这是意大利队本届世界杯开赛以来踢得最丑陋的一场比赛，可是意大利人是幸运的，凭借主裁判在伤停补时阶段的一个有些’找平衡’意义的点球判罚，淘汰了本想和意大利人拖到踢点...</description></item><item><title>世界杯拒绝'老二'</title><link>https://tonybai.com/2006/06/26/worldcup-refuse-2nd-team-of-each-group/</link><pubDate>Mon, 26 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/26/worldcup-refuse-2nd-team-of-each-group/</guid><description>随着一场’红黄牌’满天飞的比赛的结束，这届世界杯似乎在告诉大家：’八强拒绝小组第二’。 由于要上班的原因，没能看到荷兰与葡萄牙这场出示了16张黄牌，4张红牌的’经典’比赛，相比于葡萄牙队，我还是更喜欢荷兰队的，荷兰队的出局还是让我感觉很惋惜的。从技术统计来看，荷兰队在比赛中占据着较大优势，只是运气欠佳，比如科库的那脚打在门梁上的射门，不过感觉范帅的用人有些’渎职’，在打不开局面的情况下为什么不换上...</description></item><item><title>字符串拷贝密码</title><link>https://tonybai.com/2006/06/26/the-secret-of-string-copy/</link><pubDate>Mon, 26 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/26/the-secret-of-string-copy/</guid><description>在近期的一次工作交接中，在我的代码中发现了很多’安全隐患’，主要是以’字符串拷贝’为主。这种安全漏洞在C编程中是较为常见的，防范起来也较为容易，这里我们就来一起探索一下’字符串拷贝’的’密码’。 在正常情况下，我们在考量目的缓冲区大小时都会以源缓冲区大小作为依据的，一般会适当的比源缓冲区多出一些空间，其中一种’居中’状况：即sizeof(dstbuf) = strlen(srcbuf) + 1。 ...</description></item><item><title>Tony说世界杯之八强预测篇</title><link>https://tonybai.com/2006/06/24/tony-forecast-the-final-eight-of-worldcup/</link><pubDate>Sat, 24 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/24/tony-forecast-the-final-eight-of-worldcup/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>大学毕业两年了</title><link>https://tonybai.com/2006/06/21/two-years-since-graduate-from-university/</link><pubDate>Wed, 21 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/21/two-years-since-graduate-from-university/</guid><description>不知不觉间已经快大学毕业两年了，最近热度很高的世界杯让我想起了2002年韩日世界杯期间和寝室哥们儿们一起为中国队加油、一起为阿根廷落魄而伤感的日子了，只因兄弟们都已经各奔东西、不在身边，想起这些未免有些感伤。恰巧，Google Earth最近更新了其中国区的卫星照片，使我有机会到我们学校的&amp;#39;上空&amp;#39;俯瞰我生活学习了4年的令人难忘的大学。 Google Earth真是个耗资源的软件，我的本本勉勉强强能...</description></item><item><title>解决算法分析中递归问题的方法</title><link>https://tonybai.com/2006/06/21/solve-recursion-problem-when-doing-algorithm-analysis/</link><pubDate>Wed, 21 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/21/solve-recursion-problem-when-doing-algorithm-analysis/</guid><description>当一个算法(如二分查找)中包含对自己的递归调用时，关于这个算法时间复杂性的分析最终都转化为一个递归方程的求解问题，而这样的算法不在少数。实际上这是数学领域的问题，但是计算机科学又怎么能脱离数学而存在呢？^\_^ 数学是好东西呀，可惜自己在这方面造诣颇浅，今生之遗憾亚。^\_^ 还好，解决递归方程涉及的数学知识我还是能应付的了的^\_^。在MIT算法导论中介绍了3种方法，我们这里就说说这三种方法！这...</description></item><item><title>从'地狱'升入'天堂'</title><link>https://tonybai.com/2006/06/20/from-hell-to-heaven/</link><pubDate>Tue, 20 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/20/from-hell-to-heaven/</guid><description>90分钟的比赛，乌克兰人完成了从第一轮&amp;#39;入地狱&amp;#39;到此轮&amp;#39;升天堂&amp;#39;的转变过程，舍瓦也终于进球了！ 昨晚没有看比赛，而是听比赛，喜欢听广播入睡的我选择了舒服的躺在床上享受着世界杯的比赛，而这场比赛恰恰是乌克兰对阵沙特阿拉伯，开场3分钟左右，听到收音机中解说员大声喊叫着&amp;#39;进球了!&amp;#39;，乌克兰的6号鲁索尔门前接角球垫射入网，乌克兰人开了个好头。一向对沙特阿拉伯能力持怀疑态度的我马上意思到：&amp;#39;沙特漏斗要开口了...</description></item><item><title>突破英语句型之'不耻下问篇'</title><link>https://tonybai.com/2006/06/20/learn-some-sentential-form-for-asking/</link><pubDate>Tue, 20 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/20/learn-some-sentential-form-for-asking/</guid><description>脱口而出，’不耻下问’乃英语学习之真精神也，这里我们要学习一些经典的’问句’。 一、How …? 1、How about …? How about taking a walk? How about parking here? How about going for a trip? 2、How do you like … ? How do you like living in China? How ...</description></item><item><title>理解’位域’</title><link>https://tonybai.com/2006/06/19/understand-bit-fields/</link><pubDate>Mon, 19 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/19/understand-bit-fields/</guid><description>这也是在ChinaUnix上看了几篇关于C语言&amp;#39;位域(Bit Fields)&amp;#39;的帖子之后，才想写下这篇文章的。其实在平时的工作中很少使用到&amp;#39;位域&amp;#39;，我是搞服务器端程序设计的，大容量的内存可以让我毫不犹豫的任意&amp;#39;挥霍&amp;#39;^\_^。想必搞嵌入式编程的朋友们对位域的使用应该不陌生吧。这里我也仅仅是凭着对C语言钻研的兴趣来学习一下&amp;#39;位域&amp;#39;的相关知识的，可能有些说法没有实践，缺乏说服力。 具体也不是很清楚当年...</description></item><item><title>第一支出局的亚洲球队诞生了！</title><link>https://tonybai.com/2006/06/18/the-first-washed-out-asian-football-team-come-out/</link><pubDate>Sun, 18 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/18/the-first-washed-out-asian-football-team-come-out/</guid><description>第一支出局的亚洲球队终于诞生了！那就是我们中国队的老对手伊朗队！ 伊朗队在世界杯开赛前还是比较被看好的，毕竟中前场有多达5名球员在德甲上游俱乐部踢球，可以由于第一场对墨西哥队上半场拼得过猛导致下半场防线崩溃！这场与葡萄牙的比赛伊朗队显然是吸取了上一场的教训，选择了适当的战术，但是毕竟实力有限，锋线浪费的机会也很多，感觉伊朗的中前场不善于打反击，是不是伊朗在足球水平较低的亚洲打弱队打惯了，如果伊朗有...</description></item><item><title>今晨'死亡之组'复活!</title><link>https://tonybai.com/2006/06/18/the-dead-group-reborn/</link><pubDate>Sun, 18 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/18/the-dead-group-reborn/</guid><description>很遗憾没有坚持看今晨的两场比赛，其实也不奇怪，意大利对美国，意大利历史上从未输过美国，这次也没有，不过其过程可谓’波澜起伏’；捷克对加纳，如果第一场捷克队不是以3:0干掉美国的话，这场我就会看的，正是由于捷克人状态不错，让我简单的以为加纳队不会给捷克人带来太多的麻烦，结果我错了。科特迪瓦人的战斗精神遗传给了加纳人，再加上加纳人把我机会的能力更胜一筹，捷克人也没有了荷兰人的好运而倒下了，这一倒下不要...</description></item><item><title>秀一下我的'本本'</title><link>https://tonybai.com/2006/06/18/show-my-laptop/</link><pubDate>Sun, 18 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/18/show-my-laptop/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>遭遇'不明生物'攻击</title><link>https://tonybai.com/2006/06/18/attacked-by-unknown-living-being/</link><pubDate>Sun, 18 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/18/attacked-by-unknown-living-being/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>'死亡之组'结束'死亡之旅'</title><link>https://tonybai.com/2006/06/17/dead-group-end-up-the-dead-trip/</link><pubDate>Sat, 17 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/17/dead-group-end-up-the-dead-trip/</guid><description>裁判的终场哨声响起，荷兰人终于松了口气，因为他们知道如果比赛再继续哪怕几分钟，他们都有可能顶不住科特迪瓦人的进攻了。科特迪瓦人再次输球了，但却赢得了球迷的尊重。同样是输球，塞黑人则是颜面扫地，进取心全无，也恰恰是因为这两场输球，人们期待的死亡之组提前结束了’死亡之旅’。 昨晚看完阿根廷的比赛，心里自然是愉悦，自己最喜欢的球队以一种痛快淋漓的方式完美的赢得了比赛，由于阿根廷比分领先较大，所以整场比赛...</description></item><item><title>梅西-潘帕斯高原的'精灵'</title><link>https://tonybai.com/2006/06/17/messi-the-genius-of-pampas/</link><pubDate>Sat, 17 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/17/messi-the-genius-of-pampas/</guid><description>如果说’巴蒂斯图塔’是潘帕斯高原的战神，那么小将梅西，我更愿意称他为潘帕斯高原的’精灵’。 刚刚看完德国世界杯小组赛C组阿根廷和塞黑队的一场比赛，结果可能太出乎意料了，阿根廷人6:0几乎完美地让塞黑人卷铺盖走人了(虽然还存在渺茫的晋级希望)。整场比赛都在阿根廷人的节奏控制之下，当小将梅西上场时比分已经是4:0了。听说梅西是在去年的荷兰世青赛上，由于中国队没有机会和阿根廷交手，所以也没看过梅西的比赛...</description></item><item><title>当数组访问越界后</title><link>https://tonybai.com/2006/06/16/after-array-index-overflow/</link><pubDate>Fri, 16 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/16/after-array-index-overflow/</guid><description>下午到ChinaUnix C/C++版看了看，发现一个比较有意思的问题，一位兄弟在其帖子中问一段很简单的程序明显有数组越界访问之错误，可程序为什么运行起来却’安然无恙’，我看看了看，也给出了我自己的回复，晚上下班后又想想了这个问题，决定写一篇blog说说。 这位仁兄的程序(据他个人说来源自’GNU/Linux编程指南’)是这样的： #define BIGNUM 50 void index\_to\...</description></item><item><title>世界杯32强英文国名大观</title><link>https://tonybai.com/2006/06/15/the-names-of-32-participating-countries-of-this-worldcup/</link><pubDate>Thu, 15 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/15/the-names-of-32-participating-countries-of-this-worldcup/</guid><description>记得前几天吃午饭时，和一同事讨论到荷兰和塞黑的那场比赛，同事突然问到：&amp;#34;那场比赛的字幕是不是用德文打出来的，为什么荷兰的国名不是Holand，而是一个以N打头的单词？&amp;#34;，这让我想到可能很多人看直播的时候，如果不是解说员的解说，很多人开始可能都分辨不出来这究竟是哪些队，遂有了贴一贴这32强英文国名的想法。 世界杯决赛阶段32强英文名如下： Group A: Germany — 德国 Ecuador ...</description></item><item><title>也谈内存对齐(续)</title><link>https://tonybai.com/2006/06/14/also-talk-about-memory-alignment-cont/</link><pubDate>Wed, 14 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/14/also-talk-about-memory-alignment-cont/</guid><description>关于内存对齐的话题，始终是敏感的。稍有不慎，必将闯下大祸！最近项目稍显轻闲，自己给自己安排一天反思和总结一下，突然想到以前写过的一篇&amp;#39;也谈内存对齐&amp;#39;，那篇文章谈的是内存对齐的基本知识以及一些实验的数据，想必很多人看完后，会收获一些东西，但是对内存对齐的应用还是处于懵懂状态，其实大部分时间我们是不会显式的用到&amp;#39;内存对齐的&amp;#39;，但是有些时候我们需要这样做。这里做了一个小例子，希望能给大家以启发。 例子是...</description></item><item><title>Google Earth更新中国地区卫星照片啦！</title><link>https://tonybai.com/2006/06/13/google-earth-update-maps-of-mainland/</link><pubDate>Tue, 13 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/13/google-earth-update-maps-of-mainland/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>这届世界杯'不太冷'</title><link>https://tonybai.com/2006/06/13/few-dark-horse-in-this-worldcup/</link><pubDate>Tue, 13 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/13/few-dark-horse-in-this-worldcup/</guid><description>到目前世界杯的第四个比赛日截止，这届世界杯好像在给人们一个暗示：&amp;#34;这届世界杯拒绝冷门&amp;#34;。 就近说起，昨天晚上的几场比赛，日本和澳大利亚就不说了，半斤八两，没有黑不黑之说。名不副实的世界第五的美国队向来没有什么黑马成色，自从遥远的1930年拿过季军之后，就再也没有什么成就可言了，赛前也没有人把美国列为黑马行列。结果也符合人们的猜测，世界第二的捷克痛快淋漓尽致的3:0拿下。今晨最晚的一场比赛被众多人认...</description></item><item><title>世界杯真的来了!</title><link>https://tonybai.com/2006/06/09/worldcup-comes/</link><pubDate>Fri, 09 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/09/worldcup-comes/</guid><description>现在离世界杯开幕还有整整1个小时，刚和同事们’吃香喝辣’回来，心中甚是’惦记’着今晚的世界杯开幕式和揭幕战。掐指算来，这可是我经历的三届世界杯以来第一次有机会看到开幕式以及揭幕战。 照比98年和02年世界杯，这届世界杯要更加精彩，几乎所有的传统欧美强队都进入了决赛圈，而且又有一批有潜力成为下一代球王的球星，像小罗、亨利，别忘了上两届球王贝利和马拉多纳都是因在世界杯上的出色表现，才被公认为球王的，可...</description></item><item><title>一碗自做的肉丝卤面</title><link>https://tonybai.com/2006/06/08/a-bowl-of-self-made-noodles/</link><pubDate>Thu, 08 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/08/a-bowl-of-self-made-noodles/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>'离开'Google的日子</title><link>https://tonybai.com/2006/06/07/the-time-without-google/</link><pubDate>Wed, 07 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/07/the-time-without-google/</guid><description>自从工作之后就一直使用Google作为主要的搜索工具，相比于Baidu，Google的外文站点搜索是我较为青睐的，毕竟是做技术的，在外国站点上找资料已经是家常便饭。不过最近一段时间Google一直无法访问，最开始以为是公司封掉了Google主站点，直到回到自己的小窝尝试访问Google，仍然得到的是’无法显示网页’的页面。虽然还不能确定是否Google的域名被封了，但是Google暂时或者可能是长...</description></item><item><title>线程函数参数引发的问题</title><link>https://tonybai.com/2006/06/07/a-problem-caused-by-thread-func-argument/</link><pubDate>Wed, 07 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/07/a-problem-caused-by-thread-func-argument/</guid><description>上午我们的一个实施组从现网发回来一封邮件，接到这种邮件一般都是报告问题的，果然不出所料，现场出现一个core，经过分析这是个由于线程函数参数存储位置不当造成的，从中我们可以总结出一些经验，以避免以后再犯。 我采用下面的一个例子来模拟问题的出现： #include #include #include typedef struct foo {         char c\[10\];        ...</description></item><item><title>中国队应该感谢韩国人</title><link>https://tonybai.com/2006/06/07/national-football-team-should-appreciate-korean/</link><pubDate>Wed, 07 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/07/national-football-team-should-appreciate-korean/</guid><description>最近中国国家足球队一直忙于’陪太子读书’，先陪完瑞士，今晚再陪法国，不过这个’陪太子读书’的机会也来之不易，这还多亏我们的近邻，我们的榜样-’韩国队’。 不可否认的是’韩国队’是我们的死对头，但是较量了几十年，结果如何呢？中韩两队差距越拉越大，已经不是一个量级的球队了。不拿2002年那只超级’黑’的韩国队比，就拿现在这只正在备战世界杯的韩国队说，韩国队能以替补阵容战平挪威，而中国却以1：4惨败给瑞...</description></item><item><title>'666'留念</title><link>https://tonybai.com/2006/06/06/remembrance-of-666/</link><pubDate>Tue, 06 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/06/remembrance-of-666/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>2006榴月靓乐</title><link>https://tonybai.com/2006/06/05/recommend-music-of-2006-05/</link><pubDate>Mon, 05 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/05/recommend-music-of-2006-05/</guid><description>端午节和儿童节相继过去了，又到了推荐音乐的时候了，农历的五月被称为’榴月’，至于为什么我也不清楚，想必是’石榴’花盛开的季节吧。 在这次的推荐歌曲之中，新人新歌新作依然占据着绝对的优势，自己不是专业评歌的，写了两三期自己的简短’歌评’后感觉有些力不从心，或者是说’黔驴技穷’了，再也想不出什么好词藻来描述歌中的意境了，所以决定这次来个精简版： 王强之’秋天不回来’，磁性嗓音，旋律优美，高潮处铿锵有力...</description></item><item><title>韩乔生经典语录</title><link>https://tonybai.com/2006/06/05/hanqiaosheng-sayings/</link><pubDate>Mon, 05 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/05/hanqiaosheng-sayings/</guid><description>昨天晚上看了’荷兰’vs.’澳大利亚’那场热身赛，想必看了这场比赛球迷有两个遗憾：一是荷兰队实力大不如前；另外一个就是比赛是韩乔生杰说的。反正我和一个同事是边看边’骂’^\_^。韩老师一直在那嘟囔个不停，还满嘴的什么雷达、GPS等与足球毫不相干的东西，胡说一气；除了昨天那场比赛，韩乔生还解说了中国队对瑞士那场，其开场白就是：’观众朋友们，大家好，现在为你现场直播的是世界杯热身赛- 中国队对瑞典’，...</description></item><item><title>周末吃喝购物</title><link>https://tonybai.com/2006/06/03/shopping-at-weekend/</link><pubDate>Sat, 03 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/03/shopping-at-weekend/</guid><description>周末应GF之’邀请’，到沈城之商业繁华地区’吃喝购物’。 自从五一加班回来以后，我也觉得自己好久没有像今天这样高高兴兴的出去’吃喝购物’了，盛夏的’酷暑’好像也在今天嘎然而止，一早上就是多云之天气，风中莫名还有一丝凉气。上了车之后，才想起昨日天气预报报告今天有阵雨，不过此时为时已晚，我们的伞还静静的躺在床头的小箱箱中。转过来又一想：如果老天爷非要降甘霖于敝人之身上，这难道不是上天的赐福么，想到这心...</description></item><item><title>Tony说世界杯之小组赛预测篇</title><link>https://tonybai.com/2006/06/02/tony-forecast-group-match-of-worldcup/</link><pubDate>Fri, 02 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/02/tony-forecast-group-match-of-worldcup/</guid><description>世界杯的气息越来越浓了，32支球队基本都已经亮相，第一轮热身赛战绩也已经出来了，这个时候我想一定是各大足球博采公司最最忙碌的时候，忙着收集情报，忙着设定赔率，足球界名人也不闲着，都出来讲经说法，预测世界杯小组出线的情况，其中我看过的有专业足球记者出身的董路的预测。我想当前不仅仅是像董路这样的专业人士有自己的预测，每个关心此届世界杯的球迷们心中都有自己的一份名单，只是我们都是草根，说了也没人看，呵呵...</description></item><item><title>美妙的文件描述符传递</title><link>https://tonybai.com/2006/06/01/passing-file-descriptor/</link><pubDate>Thu, 01 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/01/passing-file-descriptor/</guid><description>我们知道父进程在子进程被fork出来之前打开的文件描述符是能被子进程继承下来的，但是一旦子进程已经创建后，父进程打开的文件描述符要怎样才能传递给子进程呢？Unix提供相应的技术来满足这一需求，这就是同一台主机上进程间的文件描述符传递，很美妙而且强大的技术。 想象一下我们试图实现一个服务器，接收多个客户端的连接，我们欲采用多个子进程并发的形式来处理多客户端的同时连接，这时候我们可能有两种想法： 1、...</description></item><item><title>也想过儿童节</title><link>https://tonybai.com/2006/06/01/want-to-take-children-day/</link><pubDate>Thu, 01 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/01/want-to-take-children-day/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>代码评审很必要</title><link>https://tonybai.com/2006/05/31/code-review-is-necessary/</link><pubDate>Wed, 31 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/31/code-review-is-necessary/</guid><description>记得刚到公司做第一个项目时，mentor要和我一起看看我刚实现完的一些代码，当时有些不解，难道是不相信我写的代码么？最后事实证明：我的代码中有很多缺陷，有的还是很严重的缺陷。后来知道这个过程叫’代码评审’，是保证软件质量的一种手段，而且是很重要的一种手段。代码评审的形式有多种，最正式的一种就是召集公司或者部门的一些’大牛’们，围坐在会议室中，一行一行的审查你的代码；简单的形式就像我和mentor做...</description></item><item><title>说在端午，吃在端午</title><link>https://tonybai.com/2006/05/31/talk-and-eat-on-dragon-boat-festival/</link><pubDate>Wed, 31 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/31/talk-and-eat-on-dragon-boat-festival/</guid><description>又是一传统佳节-端午，每逢节日，大家的能做的无非两种：说(祝福)和吃，我在这篇的标题中已经包含了这两部分了^\_^。 好像今年早些时候听说韩国人把’端午节’抢注了，噢，对了，不叫抢注，叫抢先’审遗’了，今天又有新闻说：中国人花了3万美金从韩国人手中买回’端午节.cn’的域名，作为中国人我当然是很气愤了，真想大骂韩国人无耻。不过回过头一想谁让我们的政府不好好保护老祖宗留给我们的大好遗产的呢，长此以往...</description></item><item><title>小心库函数调用的'陷阱'</title><link>https://tonybai.com/2006/05/31/take-care-of-trap-when-invoking-lib-functions/</link><pubDate>Wed, 31 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/31/take-care-of-trap-when-invoking-lib-functions/</guid><description>下午一同事发现代码中的一处问题，问题的现象是这样的：这位同事调用了一部门基础库函数，当使用32位编译后，程序正常运行；而当使用64位编译后，系统运行dump core。让这位同事奇怪的是他所修改的程序中还有其他模块也使用了同样的基础库函数，为什么偏偏他这块儿出错呢？恰恰该程序的其他模块是我写的。 该程序调用的基础库函数大致是这样的： typedef unsigned long my\_size\_...</description></item><item><title>世界园艺博览会游记</title><link>https://tonybai.com/2006/05/30/sy-expo2006-tour-note/</link><pubDate>Tue, 30 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/30/sy-expo2006-tour-note/</guid><description>沈阳世界园艺博览会开幕已经快一个月了，自从到沈城工作之后，沈城的景点可以说一个都没去过，也许这会被很多人说成&amp;#39;不懂得生活&amp;#39;，也许就是这样吧。沈城进入夏天的速度那真叫一个快&amp;#39;，上个周末已经让我们感受到了&amp;#39;盛夏&amp;#39;的威力了。也就是在上周末，我和GF去游了一次世博会。 听说五一黄金周世博会开幕期间接待了近200万游客，真是挺吓人，多亏五一加班，要不还不得不被&amp;#39;挤成饼&amp;#39;^\_^。不过说实话，世博会的交通还是...</description></item><item><title>突破英语句型之'生存必备篇'</title><link>https://tonybai.com/2006/05/29/learn-some-sentential-form-for-living/</link><pubDate>Mon, 29 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/29/learn-some-sentential-form-for-living/</guid><description>学过英语的人可能都有这样的一个困惑，那就是：虽然学了很长时间英语，也掌握了5、6千的单词，但就是说不出来一句半句完整的英语来。这是为什么呢？最近看到了疯狂英语李阳的’突破句型’一书，里面的一句’句型就是一切’让我茅塞顿开。突然觉得要想学好口语，掌握一些日常最基本的句型(sentence patterns)真是必不可少亚。李阳的’突破句型’一书对常用句型的总结还是蛮全面的，而且对各句型的使用情景有说...</description></item><item><title>我与世界杯-写在世界杯开幕前</title><link>https://tonybai.com/2006/05/29/share-my-worldcup-experience/</link><pubDate>Mon, 29 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/29/share-my-worldcup-experience/</guid><description>还有整整十天，2006德国世界杯的大幕就将拉开了。自己观看世界杯的历史应追溯到我上高二时，也就是1998年法国世界杯。我在初中的时候只知道翻弄书本学习，很少参加体育运动，到了高中后渐渐地性格开朗起来，开始和班级的同学们踢足球，时间长了居然上了瘾，球技也突飞猛进，因个人头球’出类拔萃’，遂被同学们戏称我们班的’金头’。我问其中一个同学：’金头’是谁的外号？他告诉我是德国著名前锋比埃尔霍夫，我心中疑惑...</description></item><item><title>'堕落'的一周</title><link>https://tonybai.com/2006/05/26/fall-backward-this-week/</link><pubDate>Fri, 26 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/26/fall-backward-this-week/</guid><description>这一周的工作任务是在现网进行性能测试，不过由于各种原因测试迟迟不能开始，每天因为这些零碎的问题让我’焦头烂额’，甚至不能集中一段较长的时间做些想做的事情，整个一周都缺少’成就感’，这样让我每天下班回去后的心情都是很郁闷，没有心情看书，就开始做一些’堕落’的事情 – 看漫画、看动画片、看电影。 我喜欢看灾难片、科幻片，这些片子都是可以激发想象力的。PPLIVE是一个很不错的网络电视软件，速度很快，这...</description></item><item><title>算法时间复杂性之渐近法分析基础</title><link>https://tonybai.com/2006/05/23/the-base-of-algorithm-complexity-asymptotic-analysis/</link><pubDate>Tue, 23 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/23/the-base-of-algorithm-complexity-asymptotic-analysis/</guid><description>在我的评论栏中有人说：&amp;#34;你是程序员?&amp;#34;，我可以确定、一定以及肯定地告诉他/她：&amp;#39;我就是一个程序员，如假包换&amp;#39;。也许是最近技术类的blog写得少了，其他类的多写了些，让人家误会了，这也无可厚非。不过我倒是想到这样一个问题：程序员一定要满篇地谈技术么，程序员也有自己丰富多彩的生活呀。好了，切入正题。今天我们谈谈算法时间复杂性的分析。我没系统学过，都是在书上看到的以及MIT算法导论课上听到的。这里仅从我...</description></item><item><title>推荐看看'核震过后'</title><link>https://tonybai.com/2006/05/23/recommend-file-after-10-earthquake/</link><pubDate>Tue, 23 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/23/recommend-file-after-10-earthquake/</guid><description>好多天没有更新blog了。其实人的大脑就好比一台复杂的机器，每天24小时不停的工作着，某一局部负责对应的工作，如果大脑的一直将压力都压在这个部分上，那么这个部分就会’过载’、’发热’，导致今后几天工作效率下降。拿我们程序员来说，如果不能适当的调节一下自己大脑的工作部位，一段时间后就会思维枯竭而且感到很是疲劳，这几天我就处于这样的状态，其实有很多工作需要去做、很多技术书籍等待我去读，可是我的大脑告诉...</description></item><item><title>国奥改历史，巴萨夺欧冠</title><link>https://tonybai.com/2006/05/18/barca-win-champion-league/</link><pubDate>Thu, 18 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/18/barca-win-champion-league/</guid><description>相信昨天的夜晚是一个难得的足球&amp;#39;盛宴&amp;#39;，大连实德vs. 全北现代、准国奥vs.阿根廷、巴萨vs.阿森纳一个接一个让球迷们合不上眼，对于中国球迷来说，前面两场比赛自然是责无旁贷，相信很多球迷都像我一样，站在电视机前为我们自己的球队加油助威，但结果却是有喜有悲；巴萨vs.阿森纳这场2006欧冠决赛则不仅仅吸引着国内球迷的目光了，世界各个角落的球迷相信都欣赏到了一场高水平的经典决赛。下面逐一说说看完这些...</description></item><item><title>我读书的TIMELINE</title><link>https://tonybai.com/2006/05/18/timeline-of-reading-books/</link><pubDate>Thu, 18 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/18/timeline-of-reading-books/</guid><description>在’Blog on 27th Floor‘的blog上看到一篇名为’读书人的timeline‘的文章，文章中列出了各个年龄段读的书，我也觉得这是一个很有意思的话题，不妨也回顾一下自己这20几年曾经读过的书，模仿这种TimeLine格式列出来大家瞧瞧^\_^。 我首先声明自己不是一个博览群书的人，但是我喜欢读书。这里的’书’指的是非专业类的书籍。小的时候是读书没有什么方向，长大了各种应试教育的功课压...</description></item><item><title>口语学习笔记之'内心表白'</title><link>https://tonybai.com/2006/05/16/spoken-english-note-series-express-yourself/</link><pubDate>Tue, 16 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/16/spoken-english-note-series-express-yourself/</guid><description>像道谢、赔礼道歉、赞扬这些内心表白的情形在我们的日常生活中还是很多见的，如你的Partner作了一件令你很满意的事情，你就可以跟他说:’Good job!’ or ‘Well done!’，可以说这些用法都是很实用的。下面就是’口语8000句’中关于’内心表白’的一些句子。 \[道谢] Thank you. Thanks. Thank you very much. Much appreciated...</description></item><item><title>单元测试进行曲</title><link>https://tonybai.com/2006/05/12/the-march-of-unit-test/</link><pubDate>Fri, 12 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/12/the-march-of-unit-test/</guid><description>又是老生常谈-&amp;#39;单元测试&amp;#39;，说实话自己在单元测试上是&amp;#39;语言上的巨人，行动上的矮子&amp;#39;，属于那种说的比做的多的人^\_^。不过也不能说什么也没做。记得去年年末的时候自己还设计并实现过一个简单的&amp;#39;C语言单元测试包&amp;#39;呢^\_^，至今这个包仍然还在使用呢。不过大多数的单元测试都不像想象中那样简单，我们在介绍单元测试的时候，大多拿Add、Sub等作例子，这样当然有好处，简单易懂。其实学习单元测试初期关键是学习...</description></item><item><title>口语学习笔记之'提醒忠告'</title><link>https://tonybai.com/2006/05/11/spoken-english-note-series-remind-and-advice/</link><pubDate>Thu, 11 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/11/spoken-english-note-series-remind-and-advice/</guid><description>‘提醒忠告’也是我们日常生活中常见的一些’行为’，这里我们一起看看如何用英语来有效的表达这些行为。 \[教诲、告诫] John, apologize to her. John, you listen to me! Watch out! Don’t play with that thing. Do it yourself. You should finish what you start. 不要半途...</description></item><item><title>晚上吃一碗蛋炒饭</title><link>https://tonybai.com/2006/05/11/have-egg-fried-rice-for-supper/</link><pubDate>Thu, 11 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/11/have-egg-fried-rice-for-supper/</guid><description>五一黄金周回来还是那么忙碌，还好GF不在身边，自己的业余时间可以自由支配。最近养成这样的一个习惯：每天下班回去后不饿到很有’饥饿感’，我是绝对不会去吃的。公司的食堂和’大千世界’的公司食堂一样，饭菜是’物差价贵’，以至于我这几天晚上已经是’N过食堂门而不入’了^\_^。没别的选择，只能自己动手，丰衣足食了。 回到自己的小窝，看看’余粮’，心里又犯愁了，俗话说：巧’夫’难为无米之炊亚。我爱吃的’琵琶...</description></item><item><title>算法描述中的'Pseudocode Conventions'</title><link>https://tonybai.com/2006/05/10/pseudocode-conventions-in-algorithm-description/</link><pubDate>Wed, 10 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/10/pseudocode-conventions-in-algorithm-description/</guid><description>Pseudocode，即伪码，它常常用来描述一个算法，目的是能使被描述的算法能够容易的以任何一种计算机程序语言实现。’Pseudocode Conventions’可以理解为’伪码约定’，既然是’约定’那就并非强制性的标准。但是在专业的有关算法的文献和资料中，其相关内容多符合这些’Pseudocode Conventions’。如果你是一个想学习和钻研算法的人，那么建议你熟悉这些’Conventi...</description></item><item><title>口语学习笔记之'随意的谈话'</title><link>https://tonybai.com/2006/05/08/spoken-english-note-series-talk-freely/</link><pubDate>Mon, 08 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/08/spoken-english-note-series-talk-freely/</guid><description>平时闲聊，想必大家都会^\_^。今天我们看看如何用英语’闲聊’，下面是’口语8000句’中的’随意谈话’一课的听写记录。 \[征求意见] Do you understand? Understood? Is that clear? Get the picture? 了解情况么 Do you know what I mean? Are you listening to me? Are you blin...</description></item><item><title>你提供默认选项了吗</title><link>https://tonybai.com/2006/05/08/supply-the-default-option/</link><pubDate>Mon, 08 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/08/supply-the-default-option/</guid><description>五一期间到姥姥家串门儿，自然午饭要在那吃，可中午做饭时听姥姥抱怨新买的电饭煲做饭时间太长而且还夹生，我好奇的走了过去想看看究竟，电饭煲的确是新买不久的，而且是美的的，我心想大牌厂商应该不会有这样的质量问题呀，一定是姥姥使用上的问题。仔细看了看控制板，果然不出所料，电饭煲的’功能选择’键停在了功能档的中央，既不是左边的’煮饭’也不是右边的’煲粥’，遂告诉姥姥以后煮饭要把功能选择调到’煮饭’档。 吃完...</description></item><item><title>2006梅月靓乐</title><link>https://tonybai.com/2006/05/07/recommend-music-of-2006-04/</link><pubDate>Sun, 07 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/07/recommend-music-of-2006-04/</guid><description>阴历的4月被称为’梅月’，具体为什么成为’梅月’我就不得而知了，我大致猜测可能是因为在这个月份可以吃杨梅了。还别说，这个月我还真还没少吃杨梅，我是北方人，吃樱桃的时候要多于吃杨梅，不过我总感觉杨梅的滋味在一定程度上与樱桃相像，个人感觉而已。北方是不产梅的，不过提到梅我们就不能不说说刚于5月1日开幕的世园会(那里可能有梅花哟，也是猜测而已^\_^)，听去过的朋友说，那叫一个’大’，一天只能参观其中的...</description></item><item><title>口语学习笔记之'见面分手'</title><link>https://tonybai.com/2006/05/04/spoken-english-note-series-hello-and-bye/</link><pubDate>Thu, 04 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/04/spoken-english-note-series-hello-and-bye/</guid><description>‘见面分手’是我们每天生活中必不可少的事情，在英语口语中这方面的词句有很多，其中不乏俚语，我们一起来学习一下’口语8000句’中是如何谈’见面分手’的。 \[碰到友人] Hi! Hello! Good Afternoon. Good Evening. How are you? Fine, Thank you. Not so good. Nothing much/special. 还是老样子 Nic...</description></item><item><title>口语学习笔记之'日期与时间'</title><link>https://tonybai.com/2006/05/03/spoken-english-note-series-date-and-time/</link><pubDate>Wed, 03 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/03/spoken-english-note-series-date-and-time/</guid><description>继续学习’口语8000句’，今天轮到’日期与时间’了。 \[询问时间] What’s today’s date? It is August 13th. What day is it? It’s Thursday. What’s the time? It is almost noon. It’s one o’clock. It’s five after one. The clock/watch sa...</description></item><item><title>Unix Shell Scripting之'扫盲篇'</title><link>https://tonybai.com/2006/05/02/an-introduction-on-unix-shell-scripting/</link><pubDate>Tue, 02 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/02/an-introduction-on-unix-shell-scripting/</guid><description>俗话说：&amp;#34;工欲善其事，必先利其器&amp;#34;。在Unix/Linux上做开发，这里的’器’也同样包括Unix Shell Script，遗憾亚，虽然自己在Unix上开发已经快2年了，但是对Unix Shell Script可以说是’Script盲’一个，很多稍微复杂些的Script自己根本都看不懂。其实这也是自己栽下的’苦果’，因为以前我一直’歧视’Script language，认为那不是真正程序员该精通...</description></item><item><title>口语学习笔记-'电话沟通'</title><link>https://tonybai.com/2006/05/01/spoken-english-note-communication-on-telephone/</link><pubDate>Mon, 01 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/01/spoken-english-note-communication-on-telephone/</guid><description>电话沟通是现在日常生活和商业活动中的一种重要的沟通方式，今天我要学习的就是如何使用英语进行有效的电话沟通。下面是’口语8000句’之’电话’的听写笔记。 \[打电话] This is Dennis Smith. Hello, John? Is this Mr. Dennis Smith? Is this the finance department? Is this Dr. Jim Baker’s...</description></item><item><title>五一节你快乐，我工作</title><link>https://tonybai.com/2006/05/01/you-happy-i-work-on-may-day/</link><pubDate>Mon, 01 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/01/you-happy-i-work-on-may-day/</guid><description>刚刚看到Google黑板报的一篇短文&amp;#39;五一节快乐&amp;#39;，心想这是自己第一次五一节加班，是不是也该写点什么，不过该写些什么呢，自己心里也没个方向，那就想到哪写到哪吧！ 已经连续工作7天了，自己略感到有些疲惫，今天早上醒的很早，自己做了碗&amp;#39;蛋炒饭&amp;#39;，然后把它吃个精光，缓解肚内空虚^\_^。加班毕竟不比工作日，时间安排上有一定自主权，只要工作完成了，领导也不会说什么^\_^。到公司的时候已经9点多了。很多来...</description></item><item><title>口语学习笔记之'恋爱和结婚'</title><link>https://tonybai.com/2006/04/29/spoken-english-note-series-love-and-marriage/</link><pubDate>Sat, 29 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/29/spoken-english-note-series-love-and-marriage/</guid><description>最近项目很紧，少有大段儿的时间去思考技术，不过每天晚上拿出2个小时学习英语还是能满足的！人总是要进步的不是，不学点儿啥这心里总是觉得不踏实^\_^。今天的话题估计很多人都喜欢’恋爱与结婚’，初春季节正是谈情说爱的’黄金时间’，学上两句说不定你什么时候就能派上用场。 \[喜欢和爱上] Tom is a lady-killer. Tom realy turns me on. Chris is real...</description></item><item><title>口语学习笔记之'在工作单位'</title><link>https://tonybai.com/2006/04/29/spoken-english-note-series-at-work/</link><pubDate>Sat, 29 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/29/spoken-english-note-series-at-work/</guid><description>对于一个工作的人来说，他一天的大部分’清醒’时间都是在工作单位度过的，办公室交流也就成为了每天生活中必备的部分，这次我们一起来学习办公室口语。下面是’口语8000句’之’在工作单位’的听写笔记。 \[在办公室] I made it. Be punctual! You are late again. I was only late by 5 minutes. Did you punch in/out...</description></item><item><title>口语学习笔记之'生病受伤时'</title><link>https://tonybai.com/2006/04/27/spoken-english-note-series-fall-ill/</link><pubDate>Thu, 27 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/27/spoken-english-note-series-fall-ill/</guid><description>今天继续学习’口语8000句’之’生病受伤时’，目前也恰逢我感冒，所以颇有现学现用的感觉，下面是听写笔记。 \[请医生看病] Do you need a doctor? Please call an ambulance. I’d like to see a doctor. I’m not feeling well. Could you send me a doctor? What is wrong...</description></item><item><title>'祸'不单行</title><link>https://tonybai.com/2006/04/26/misfortunes-never-come-singly/</link><pubDate>Wed, 26 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/26/misfortunes-never-come-singly/</guid><description>俗话说：’福禄双至，祸不单行’，今天我终于体会到后者了。和以往一样早上起床还不算太晚，洗漱完毕，匆匆收拾物品，这时发现外面还在下着小雨而且风有3-4级，不知道今年是咋搞的，沈城的天气糟糕透顶，已经好久没有体会到艳阳天的感觉了。 顶风冒雨到食堂买好了早餐，又疾步冲到公司，冷风把手冻得那是相当的凉。到公司第一个要做的工作就是开机，我用的是自己的本本，公司配的台式机虽然性能超群，但是自己已经看不惯CRT...</description></item><item><title>口语学习笔记之'享受闲暇时间'</title><link>https://tonybai.com/2006/04/25/spoken-english-note-series-enjoy-spare-time/</link><pubDate>Tue, 25 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/25/spoken-english-note-series-enjoy-spare-time/</guid><description>继续学习’口语8000句’之’享受余暇时间’，下面是听写笔记！ \[邀请友人] Are you free this weekend? Could I see you again? Could you give me your phone number? Where shall we meet? Shall I come to pick you up? Are you doing anything ...</description></item><item><title>遇到系统的高可用性问题</title><link>https://tonybai.com/2006/04/25/a-problem-about-high-available-service/</link><pubDate>Tue, 25 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/25/a-problem-about-high-available-service/</guid><description>我也是直到最近才接触到&amp;#39;高可用性&amp;#39;这个词儿的，从我所在的项目需求角度出发，我理解&amp;#39;高可用性&amp;#39;就是在系统的外部依赖实体(如主数据库、主网络)等瘫痪了之后，系统仍然能正常的支撑业务的运行，当然系统自己宕掉了，那就没辙了^\_^。高可用性设计实际上就是在系统自身完好的情况下如何考虑其外部实体的设计以保证系统能持续的运行支撑下去，起码从我现在正在做的项目的角度来说是可以这样理解的。 目前我们的系统的高可用...</description></item><item><title>今年五一要加班</title><link>https://tonybai.com/2006/04/24/work-overtime-on-may-day-vacation/</link><pubDate>Mon, 24 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/24/work-overtime-on-may-day-vacation/</guid><description>今天是五一黄金周之前的最后一周了，如果我没有猜错的话，绝大部分的企事业单位都会’串休’，当然我也不例外，这周要’鏖战’七天，哦，不，不是七天，我’追求’连作11天。 不用担心，我没有疯，呵呵。最近项目进度抓得紧，今天下午开了3个小时的会来确认五一期间那些子系统负责人要加班，挑来减去就我老哥一个。可不是我效率不高啊，的确是我这块儿改动量较大，按正常每天8小时工作很难完成，我很少、特少、少之又少晚上下...</description></item><item><title>口语学习笔记之'在家中'</title><link>https://tonybai.com/2006/04/24/spoken-english-note-series-at-home/</link><pubDate>Mon, 24 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/24/spoken-english-note-series-at-home/</guid><description>我是悟出来了：要想学好英语，特别是要想学好口语，必须要通过背诵这一关，特别是在没有语言环境的条件下，’死记硬背’不失为一好办法。而俗话说的好：’好记性不如烂笔头’，下面就是我听’口语8000句’的第一课’在家中’的听写笔记。 \[从起床到出门] Good Morning! Did the alarm clock go off? It is time to get up! Get up soon! ...</description></item><item><title>想开拖拉机吗，那你得会修！</title><link>https://tonybai.com/2006/04/21/learn-repair-tractor-before-you-drive-it/</link><pubDate>Fri, 21 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/21/learn-repair-tractor-before-you-drive-it/</guid><description>今天起来的特别早，一起床就感觉沈城的气温明显回升了，洗漱完毕出门一看果然有春天的气息了，阳光照在身上那叫一个舒服，要不是上班真想在这和煦的阳光下好好的享受一番。 上班的路上遇到物业的两位开拖拉机翻草坪的司机师傅在闲聊，我一走一过就听到其中一位师傅说：&amp;#34;你别小看我这拖拉机，那些开奔驰宝马的人还开不了呢&amp;#34;，另一位师傅就问了：&amp;#34;人家才不愿意开你这破拖拉机呢&amp;#34;，第一位师傅接着说：&amp;#34;想开他也开不了，想开拖拉...</description></item><item><title>成为BlogBus第二十五期优秀乘客</title><link>https://tonybai.com/2006/04/20/become-the-25th-periodical-excellent-passenger-of-blogbus/</link><pubDate>Thu, 20 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/20/become-the-25th-periodical-excellent-passenger-of-blogbus/</guid><description>沈城的天气真是让人郁闷！就像我同事评价的一样，这周四天来每天天气都’特立独行’，不过有一个共同点，那就是每天都让我盖上厚厚的被子蜷缩着不愿起来，这样的天气怎能不让人的心情糟糕，不过’苦尽甘来’，心情也不会一直坏的，这不晚上边吃饭边欣赏Blog，发现自己的Blog上有Panwh的评论，上过Blogbus论坛的人都知道Panwh是谁，BlogBus论坛管理员。打开评论管理看Panwh的这条评论：&amp;#34;感谢...</description></item><item><title>记录德兰修女箴言</title><link>https://tonybai.com/2006/04/18/sayings-from-mother-theresa/</link><pubDate>Tue, 18 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/18/sayings-from-mother-theresa/</guid><description>我不是教徒，但是我相信人性和真理，今天看到潘石屹的Blog中贴出了一篇’德兰修女箴言‘的文章。说实在的，我对德兰修女知之甚少，但是看了其语录后感觉到了其中的人性和真理。所以这里我也把德兰修女的这段话贴在我的Blog上，一是希望更多的人能看到它，领悟它！二是记录下它供自己随时温习！箴言虽然是德兰修女的，但是让我知道她的却是潘石屹的Blog，在此感谢！ 这段箴言全文如下： 人们经常是不讲道理的、没有逻...</description></item><item><title>'该出手时就出手'</title><link>https://tonybai.com/2006/04/17/buy-moto-a780/</link><pubDate>Mon, 17 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/17/buy-moto-a780/</guid><description>央视电视剧中&amp;#39;水浒传&amp;#39;主题曲中有一句叫&amp;#39;该出手时就出手&amp;#39;，这话一点儿都不假！^\_^。眼见着五一黄金周就要到来，各大商场都开始了&amp;#39;五一前热身战役&amp;#39;，纷纷推出自己的活动，其他的我到不在乎，手机倒是我最关注的！在适当的时间和适当的地点以适当的价钱，终于拿到了我倾慕已久的MOTO-A780智能机！ 有过去年五一节买机器的经验，五一的购物人流简直就像潮涌般，特别是在移动通讯商场，那真叫一个水泄不通！特别是...</description></item><item><title>'男女不分'</title><link>https://tonybai.com/2006/04/17/make-mistake-in-differentiating-gender/</link><pubDate>Mon, 17 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/17/make-mistake-in-differentiating-gender/</guid><description>大早起来，发现外面居然飘起了大雪！要知道前几天桃花都盛开了！除了’冷’还是’冷’，在洗漱间时那身上抖成一团了！刷牙都不需要手了，把牙刷放在牙齿上，等3分钟，牙就刷好了^\_^。 我在我的Blog中很少谈及工作中的趣事，不过这次太搞笑了，忍不住要说上一说。这也是一件刚才发生的趣事。 我们项目组中一般聊天都用Google Talk，自从前两周GTalk升级后，开始支持头像了。由于是升级不久很多人都使用...</description></item><item><title>我的铃声我做主</title><link>https://tonybai.com/2006/04/17/make-mobile-bell-myself/</link><pubDate>Mon, 17 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/17/make-mobile-bell-myself/</guid><description>对于像A780这样的智能手机，拿MP3当手机铃声自然不在话下，只是由于’正规’的MP3歌曲’体型’都很庞大(至少4M以上)，而且铃声么一定要听高潮部分才过瘾，所以自己动手，丰衣足食，亲自制作自己喜爱的手机铃声也不错！ 制作MP3说来也很简单，无非是使用音轨编辑软件，而在这个领域中，Cool Edit又无疑是应用最广泛的一个！至于如何获取Cool Edit，那就仁者智者了^\_^。 制作MP3铃声的...</description></item><item><title>恼人的'素数回文'</title><link>https://tonybai.com/2006/04/16/solve-prime-palindromes/</link><pubDate>Sun, 16 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/16/solve-prime-palindromes/</guid><description>33.00s和14.27s，两个截然不同的运行时间值，两次提交尝试解决素数回文问题，终于搞定了！用两个字形容’恼人’！算法不复杂，就是要求时间很’紧’，大部分工作都在考虑着如何缩短运行时间。桃花在冷空气袭来的日子都开了，我的心也算可以放下了！ 最近项目吃紧，连续两天没有做ACM习题了，手都有些生了^\_^！按照Volume1的习题顺序，该轮到1004题了！这是一道关于’素数回文(Prime Pal...</description></item><item><title>为什么布鲁诺薪水不如阿诺德？</title><link>https://tonybai.com/2006/04/14/why-arnold-better-than-bruno/</link><pubDate>Fri, 14 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/14/why-arnold-better-than-bruno/</guid><description>工作的时候喜欢听歌曲，当很投入的时候，实际上歌曲是’左耳进右耳冒’。今天正写着代码呢，突然耳畔响起一段相当标准的普通话音，切换到MP3播放器已看，原来是GF加到MP3列表中的一段普通话考试的练习音，很简短的一段故事，细致品味后却值得每个工作的人反思！ 在网上搜了一下，这段话摘自’没有任何借口’一书，这本书早就想看，可就是没排出时间，感觉这个故事很是有现实意义，所以这里摘录下来，就权当收藏了吧，也顺...</description></item><item><title>Blog已成为交友中心？</title><link>https://tonybai.com/2006/04/13/blog-to-be-friend-making-center/</link><pubDate>Thu, 13 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/13/blog-to-be-friend-making-center/</guid><description>之所以写这样的一个话题，是因为最近一段时间经常收到一些陌生人的邮件，邮件的内容大致相似，一般都是看到我的Blog后，觉得我的Blog经营的还不错，和我这个做技术的有共同语言，想结识一下。能结识这些朋友自己自然感到很高兴，这也可以说是对我的Blog的一种肯定！ 晚上在网上随意’游荡’，看到’Laobai‘的一篇文章’blog已成为媒体？‘，这篇文章讲述了Laobai对于blog的新认识。自己也同时反...</description></item><item><title>开始'亡羊补牢'</title><link>https://tonybai.com/2006/04/12/begin-fix-before-lost-too-much/</link><pubDate>Wed, 12 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/12/begin-fix-before-lost-too-much/</guid><description>就在昨天，就在我们的项目要结项的时候，一个影响力不亚于’广岛原子弹’的bug出炉了，蒙蔽我近一个月的问题终于被澄清了，不过为时已晚，项目即将上线，如果想彻底地解决这个问题，需要对整个系统的实现架构作调整，目前能做的只是’亡羊补牢’了。 这里先简单的说一下问题的原因吧！熟悉Unix编程的人都知道有’共享内存映射’这回事儿，我们的问题恰巧就出在对’共享内存映射’的使用不当上。由于我们使用的底层库采用的...</description></item><item><title>一组业余之作</title><link>https://tonybai.com/2006/04/10/a-group-of-amateur-work/</link><pubDate>Mon, 10 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/10/a-group-of-amateur-work/</guid><description>上个周末，沈城天气格外暖和，春天的气息已十分浓厚，恰是出游逛街之佳日。由于世界园艺博览会的缘故，我有了购相机的计划，但由于不是很熟悉，所以就先借了一个同事的机器’热热身’，也顺便发挥一下我积蓄已久的’创意’储备^\_^，也解决一下’我的相册‘的空洞寂寞之苦。 我不喜欢在blog上贴图，我喜欢简单质朴的界面，所以所有的’作品’(呵呵，有点儿不谦虚^\_^)都放在我的flickr相册中。阳春三月自然该...</description></item><item><title>暖春-一次心灵的净化</title><link>https://tonybai.com/2006/04/07/film-nuan-chun/</link><pubDate>Fri, 07 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/07/film-nuan-chun/</guid><description>又是一部’妈妈再爱我一次’的影片，煽情之处此起彼伏，相信看过这部片子的人%80会’留下’热泪，呵呵，不好意思，我也是这%80的人当中的一员，不过’留泪’也代表你完全入戏了。看完这部戏的最大感受就是’这是一次心灵的净化，人的本性的释放’。 本来昨天要看张元新作’看上去很美’的，记得上次在电影院看’纳尼亚传奇’之前，有两个新片介绍，一个是’一球成名’，另一个就是’看上去很美’，电影院中的观众都被那个’...</description></item><item><title>算法的回归</title><link>https://tonybai.com/2006/04/07/the-return-of-algorithm/</link><pubDate>Fri, 07 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/07/the-return-of-algorithm/</guid><description>关于算法的文章我一直想写，但算法是我的软肋，自己难于下笔。首先自己非科班出身，没有进行过系统的算法设计课程训练；再者自己到目前为止还从未独立设计过一个完整的、实用的算法，在平时工作中较少的涉及到算法设计，这不能说不是一个遗憾。也许有人会问：&amp;#34;算法难道还没有过时吗，算法不是属于&amp;#39;Donald E. Knuth&amp;#39;那一代人的事情吗?&amp;#39;。我很难回答这个问题，不过当我今天看到CSDN上的一篇题为&amp;#39;算法是百度...</description></item><item><title>推荐一首'老歌'-'让泪化作相思雨'</title><link>https://tonybai.com/2006/04/07/recommend-an-old-music/</link><pubDate>Fri, 07 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/07/recommend-an-old-music/</guid><description>说来也巧，第一次听说’南合文斗’组合是去年在沈城的214路公交车上，在’巴士在线’的每周歌曲推荐中，我第一次听到’让泪化作相思雨’，但是由于公交车上人声嘈杂，根本没机会听到什么，只是看到液晶屏上年轻人在激昂的唱着歌！甚至当时没有记住这个组合的名字，’南合文斗’这个名字挺奇怪的是吧！:) 时间已经流到了2006年，记不清上周是怎样的机缘巧合才再次发现这首歌的了。第一次完完整整的听了一遍这首’让泪化作...</description></item><item><title>第一道ACM练习题</title><link>https://tonybai.com/2006/04/05/do-an-acm-exercise/</link><pubDate>Wed, 05 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/05/do-an-acm-exercise/</guid><description>说来惭愧，今天才真正做过一道ACM练习题。自从上个月发现我的母校上有ACM的在线测试站点，我就下决心好好潜心做题，一来提高一下自己解决问题的能力，一方面也想在算法方面多实践实践，而且每天都花一定时间写程序还可以锻炼自己的思维能力。总而言之，由于项目繁忙以至直到今天才开始做第一道ACM练习题，做题的过程’坎坷不平’，让我印象深刻亚!^\_^ 有人会说：’ACM’中的题都是不实用的，没有实际意义。我之...</description></item><item><title>我来'Mixing Milk'</title><link>https://tonybai.com/2006/04/05/solve-mixing-milk/</link><pubDate>Wed, 05 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/05/solve-mixing-milk/</guid><description>这又是一道ACM练习题，我的原则就是如果有时间，坚持每天考虑解决一道吸引我的ACM练习题，今天这道&amp;#39;Mixing Milk&amp;#39;题并不难，不过里面蕴含着一个基础的算法，毕竟对算法一类的知识生疏已久，今天就拿它做一次回顾吧！ 这道&amp;#39;Mixing Milk&amp;#39;(1003)题目前在&amp;#39;在线测试&amp;#39;系统上的状态是474/1207=39.27%(即accepted/submit=ratio)，算是中等偏下难度的题了，...</description></item><item><title>2006桃月靓乐</title><link>https://tonybai.com/2006/04/02/recommend-music-of-2006-03/</link><pubDate>Sun, 02 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/02/recommend-music-of-2006-03/</guid><description>今天购物回来，在班车上听到游鸿明的新歌’诗人的眼泪’，提醒我该是推荐歌曲的时候了。’阳春三月桃花开’，虽然三月是桃花盛开的季节，但是在北方却还见不到桃花吐蕊的半点儿痕迹。不过这个季节歌坛却是’万物复苏’，多位重量级歌手都推出了自己的新歌，这里照常例说说我喜欢的几首歌曲。 不知不觉自己已经写了三期’靓乐’了，从狂放的汪峰的’怒放的生命’开始了我的第一期，到阿桑的’一直很安静’主宰第二期，直至West...</description></item><item><title>做真实的自己-答友之困惑</title><link>https://tonybai.com/2006/04/02/to-be-yourself/</link><pubDate>Sun, 02 Apr 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/04/02/to-be-yourself/</guid><description>大学哥们儿’岁岁年年‘在他的最近一篇’周记‘中谈到’写Blog难’的问题，看完他的苦衷，我给他的回复就是本篇的题目’做真实的自己’。 ‘岁岁年年’在其’周记’中谈了几点困惑，这里逐一谈谈我的看法： ‘不是不想写，是没有新意’ — 我们每天的生活都存在共性，但同时也存在潜在的差异性，要善于发现生活中的潜在的差异，而这些差异恰恰是你blog中很好的话题。而发现共性中的差异性的最好的方法就是学会思考，思...</description></item><item><title>2006IT书讯之经典重现篇</title><link>https://tonybai.com/2006/03/31/classic-it-books-of-2006/</link><pubDate>Fri, 31 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/31/classic-it-books-of-2006/</guid><description>我想最近最忙的应该是各大网络书店了，一本本好书真是如&amp;#39;雨后春笋&amp;#39;般出现在各大书店的&amp;#39;书架&amp;#39;上，这也让我们这些做程序员的过了把书瘾！还等什么呢，掏钱包，把书抱回家读吧，都是经典！下面一一道来。^\_^ 首当其冲的就是&amp;#39;Unix编程艺术&amp;#39;，又名&amp;#39;TAOUP&amp;#39;，它也是最先于年后上市的一本经典好书。我上周购了一本，只是由于最近项目紧，还没来得及看，书的质量没的说，至于译者的翻译么，由于还没仔细看呢，所以不...</description></item><item><title>追求'lint-clean'</title><link>https://tonybai.com/2006/03/31/pursue-lint-clean/</link><pubDate>Fri, 31 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/31/pursue-lint-clean/</guid><description>到底需不需要编译器之外的独立的静态代码检查工具呢？这个问题’仁者见仁，智者见智’。但是有一个结论我想大家都会认可，那就是越是在开发周期早期发现的Bug，修复它所付出的代价就越小。而像lint这样的静态代码检查程序恰恰是让Bug在早期阶段’显露原型’的绝佳工具，而追求’lint-clean’\[注1]境界的代码也向来是专家级程序员的嗜好。别忘了在’C专家编程’一书中曾经提到Sun OS的内核一直是保...</description></item><item><title>我的本本3岁了</title><link>https://tonybai.com/2006/03/30/my-laptop-3-years-old/</link><pubDate>Thu, 30 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/30/my-laptop-3-years-old/</guid><description>晚上下班回到寝室，照惯例拿出我心爱的本本，翻开屏幕，发现屏幕上的一层薄薄的灰尘，顿想起来该给我的本本做’基础护理’了，顺便也把尘封已久的电池拿出来充放电一次。到今天为止，我的本本已经整整陪伴我三年零15天了。三年的记忆足够让我在脑子中回放一段时间了。 记得那是2003年的3月15日，我阳历生日后的第七天，我拿到了我的生命中的第一个’本本’，理由很简单，父母送的生日礼物呗^\_^。为了它，我不知道跑...</description></item><item><title>见识思维导图</title><link>https://tonybai.com/2006/03/29/learn-mindmap/</link><pubDate>Wed, 29 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/29/learn-mindmap/</guid><description>不瞒大家说在未听说思维导图之前，我自己就常常在废旧打印纸背面画那种’枝繁叶茂’的、很发散的需要费力才能将其中的信息串起来的’思考图’(我那时就这么叫它)。我喜欢思考，但却常常因为没有及时把自己思考出来的好想法记录下来而遗憾，因为有些灵感是’来去匆匆’的，你可以在不经意的0.1秒得到这个灵感，可是之后你再花1个小时’冥思苦想’也迸发不出来这样的想法了。现在我的’思考图’有了’大名’了，叫’思维导图’...</description></item><item><title>C语言也重构</title><link>https://tonybai.com/2006/03/28/c-refactoring/</link><pubDate>Tue, 28 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/28/c-refactoring/</guid><description>*所谓的重构是这样的一个过程：在不改变代码外在行为的前提下，对代码做出修改，以改进程序的内部结构。重构是一种有纪律的、经过训练的、有条不紊的程序整理方法，可以将整理过程中不小心引入错误的机率降到最低，本质上说，重构就是\[在代码写好之后改进它的设计]。*– Martin Fowler *重构，一种改善代码’体质’的方法’。* — 侯捷 *重构是上进程序员每天的进行式。是一项工程而不是靠着天份挥洒的...</description></item><item><title>当数组作参数时</title><link>https://tonybai.com/2006/03/27/when-array-passed-as-arguments/</link><pubDate>Mon, 27 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/27/when-array-passed-as-arguments/</guid><description>C语言中的数组和指针总保持着&amp;#39;千丝万缕&amp;#39;的联系，这里仅针对数组作为函数实参时的情况做些说明^\_^。 C语言中的数组可分为一维数组和多维数组两类，而多维数组中又以二维数组最为常见。这里也仅针对这一维数组和二维数组作简要说明。 看过&amp;#39;高质量C++编程指南&amp;#39;的人可能都知道书中有这样一句&amp;#39;注意当数组作为函数的参数进行传递时，该数组自动退化为同类型的指针&amp;#39;，这句话针对一维数组固然是正确的，但是对于多维数组...</description></item><item><title>'right-left'规则再举例</title><link>https://tonybai.com/2006/03/26/another-example-for-c-right-left-rule/</link><pubDate>Sun, 26 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/26/another-example-for-c-right-left-rule/</guid><description>闲暇时翻阅&amp;#39;C专家编程&amp;#39;，再次看到对C语言变量声明的理解一节，遂想起我曾经写过的那篇利用&amp;#39;right-left&amp;#39;规则分析复杂的C语言变量声明的文章&amp;#39;C复杂声明解析&amp;#39;，发现其中的例子的对比性不够强，所以决定再用一篇短文来再阐述。 至于&amp;#39;right-left&amp;#39;规则这里就不再重述了。这里想重点分析一组对比&amp;#39;鲜明&amp;#39;的例子：分析int \*p\[20]和int (\*p)\[20]。 闲话就不多说了，我们看...</description></item><item><title>理解C复杂声明之'优先级规则'</title><link>https://tonybai.com/2006/03/26/understand-priority-rule-for-parse-c-declaration/</link><pubDate>Sun, 26 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/26/understand-priority-rule-for-parse-c-declaration/</guid><description>第一次看《C专家编程》一书时关于其采用的&amp;#39;优先级规则&amp;#39;分析C复杂声明时看得很糊涂，在理解&amp;#39;right-left&amp;#39;规则分析C复杂声明后，再回过头来看&amp;#39;优先级规则&amp;#39;，居然发现它们的异曲同工之妙^\_^。 其实&amp;#39;优先级规则&amp;#39;的分析过程极其类似&amp;#39;right-left&amp;#39;规则，下面首先摘录&amp;#39;优先级规则&amp;#39;的&amp;#39;口诀&amp;#39;，然后再&amp;#39;一招一式&amp;#39;的细致讲解^\_^。 \[优先级规则&amp;#39;口诀&amp;#39;] A 声明从它的名字开始读取，然...</description></item><item><title>如果让我面试C程序员，我会问</title><link>https://tonybai.com/2006/03/26/interview-questions-for-c-programmer/</link><pubDate>Sun, 26 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/26/interview-questions-for-c-programmer/</guid><description>我有这样的一个习惯，就是看书的时候总是喜欢自问自答，这不周末第二次温习’C专家编程’一书，便有了如下若干问题，明为提问，实则是在提醒自己好好想想这些问题，如果大家有兴趣，也可以给出你自己的答案，如果觉得琢磨不透，可翻看’C专家编程’一书，或多敲几次键盘，自己试上一把！ 1、你认为C语言\[注1]是一门成功的语言吗？如果认为是，那么你认为它成功的关键在什么地方？或者说它的魅力所在？ 2、C语言中的函...</description></item><item><title>品味'勇敢的游戏2'</title><link>https://tonybai.com/2006/03/23/thought-on-jumanji2/</link><pubDate>Thu, 23 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/23/thought-on-jumanji2/</guid><description>记得上次看’勇敢者的游戏’还是在10年前吧，那时候是学校包场。’十年磨一剑’，’勇敢者游戏2‘又要和大家见面了，该片能否重现十年前的辉煌，我们拭目以待，有幸先堵了这部片子，这里就说说，赞扬较少，批评居多。 十年前的那部’勇敢者游戏’让和我同龄的中国中、小朋友见识了好莱坞的’魔法’，棋盘里蹦出的蚊子、猴子、老虎、大象、猎人让大家惊奇的合不拢嘴。一般影坛有这样的一个不成文的潜规则，那就是经典之作的续集...</description></item><item><title>华为致新员工书</title><link>https://tonybai.com/2006/03/17/a-letter-to-huawei-beginner/</link><pubDate>Fri, 17 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/17/a-letter-to-huawei-beginner/</guid><description>这是2005年刊登在华为技术公司公开刊物’华为人’163期上的一篇文章，文章作者就是华为的缔造者–任正非。之所以转帖这篇文章是因为我看完这篇文章后有几点感触： 1\. 实 — 这篇文章真实反映了华为的文化，华为需要什么样的人，怎样才能做好华为人，个人利益与华为利益的矛盾与统一； 2\. 博 — 无论你是否为华为员工，你都能从中学到或悟到些什么； 3\. 异 — 在欧美文化主导的世界企业文化或企业哲...</description></item><item><title>'大力神杯' vs. 两个'奥斯卡小金人'</title><link>https://tonybai.com/2006/03/16/one-worldcup-vs-two-oscar-award/</link><pubDate>Thu, 16 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/16/one-worldcup-vs-two-oscar-award/</guid><description>‘大力神杯来到中国了！’这是最近国内足坛上的一则热度很高的新闻，因为这是大力神金杯真品第一次登陆中国，所以无论是媒体还是球迷都有很高的热情，今晚的’足球之夜‘栏目也作了一期关于’大力神杯’的和球迷互动的’我爱世界杯’专题节目。 自从1998年开始接触世界杯，我就对’大力神杯’那完美的设计情有独钟。可以说目前世界上任何一项体育或娱乐奖项的价值都不如这大力神金杯。在节目中负责’大力神杯登陆中国’活动的...</description></item><item><title>想去旅行</title><link>https://tonybai.com/2006/03/16/want-to-travel/</link><pubDate>Thu, 16 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/16/want-to-travel/</guid><description>正值春暖花开的季节，大地复苏，人的心情到未必如同春天般’灿烂’。初春三月，同时也正值跳槽旺季，身边的一些同事也’随行就市’陆续离开了我们朝夕相处的地方，各奔前程去了。留下的人心中自然也不是滋味，工作起来劲头儿倒也不是十足。茫然间突然头脑中迸出一个想法：’去旅行，一次长途的旅行’。 说起来很惭愧，长了这么大了，到过的祖国最南端的城市居然是北京，可发一笑吧！更有意思的是自己还有着一半的南方人的血统，我...</description></item><item><title>'阳光'小罗</title><link>https://tonybai.com/2006/03/15/sunshine-ronaldinho/</link><pubDate>Wed, 15 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/15/sunshine-ronaldinho/</guid><description>有人说在巴塞罗那，有位球员能像大罗一样射门进球，能像齐达内一样过人组织，能像贝克汉目一样抢断长传，能像费戈一样纵深突破，他一个人完成了皇马四大天王的工作，这位球员就是巴西天才小罗，全名罗纳尔迪尼奥(Ronaldinho)！ 对于现在状态和人气都如日中天的小罗来说，用激情、快乐、潇洒来形容他都不为过，但这里我却用了&amp;#39;阳光&amp;#39;二字。&amp;#39;阳光&amp;#39;本来是用来形容单纯、快乐、无忧无虑的大男孩儿的，来形容小罗是否有...</description></item><item><title>GCC警告选项例解</title><link>https://tonybai.com/2006/03/14/explain-gcc-warning-options-by-examples/</link><pubDate>Tue, 14 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/14/explain-gcc-warning-options-by-examples/</guid><description>程序员是追求完美的一族，即使是一般的程序员大多也都不想看到自己的程序中有甚至那么一点点的瑕疵。遇到任意一条编译器警告都坚决不放过。有人会说：我们可以使用比编译器更加严格的静态代码检查工具，如splint。这个建议也很不错。不过lint工具使用起来较繁琐，有时候还需要记住一些特定符号并插入到你自己的代码中才行，门槛较高，这也让很多人止步于此。那么我们就从此放弃么？不，如今的编译器做得都很好，它可以帮...</description></item><item><title>理发与洗澡之遐想篇</title><link>https://tonybai.com/2006/03/14/thought-on-haircut-and-bath/</link><pubDate>Tue, 14 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/14/thought-on-haircut-and-bath/</guid><description>自认为自己不是一个不修边幅的人，但是我却始终对很多人认为是’享受’的理发和洗澡颇有微词。 上周末把头发理了，坐在理发店的椅子上，怎么也感觉不到那是在’享受’，总觉得自己和理发师的沟通有问题，本来心里想的发型是这样的，但是就是找不到任何专业一点的’术语’和理发师沟通，只能一个劲儿地说这边短点之类的模糊不清的词汇，多短算短呀。如果你遇到好的理发师，你算是幸运。但是一旦遇到一些不负责任的理发师，你的头就...</description></item><item><title>今年欧冠甚好看</title><link>https://tonybai.com/2006/03/11/champions-league-is-brilliant-this-year/</link><pubDate>Sat, 11 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/11/champions-league-is-brilliant-this-year/</guid><description>欧洲冠军杯赛一直是世界球迷所共同瞩目的高水平比赛，其地位也几乎是’一杯之下，万杯之上’。但是由于直播时间的问题，很多中国球迷都无奈不能’实时’体验欧冠的风采，这其中也包括我。不过抽出时间看重播也是蛮不错的，毕竟高水平的比赛，重播也好看，我就是在重播中感受欧冠的。 今天一早打开’新浪体育‘，显著标题’欧冠八强抽签‘。虽然还有一场比赛未完，但是这个抽签结果还是足以吸引各位球迷的眼球的。 1、阿森纳 v...</description></item><item><title>女人放假后的'环境变化'</title><link>https://tonybai.com/2006/03/08/variation-after-women-are-all-on-vacation/</link><pubDate>Wed, 08 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/08/variation-after-women-are-all-on-vacation/</guid><description>今天是国际妇女节，中午午饭回来后，发现开发大厅里已经是’人去楼空’，一位男同事回来后感叹说’剩下的都是真爷们儿’。大伙一笑置之！ 公司在节日休假这方面还是很人性化的，昨天部门给每个女员工发了些小礼品，起码换来了她们脸上的笑容。午饭后大家闲聊，大家都不乏阿Q精神。什么’该设立男人节’、’女人放假是给男人先回家做饭去了’等等天马行空的话题都摆了出来。早上在内网论坛上就看到有人发帖问’下午姐妹们都去哪逛...</description></item><item><title>'阴影是条纸龙'</title><link>https://tonybai.com/2006/03/07/shadow-is-a-paper-dragon/</link><pubDate>Tue, 07 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/07/shadow-is-a-paper-dragon/</guid><description>偶然在今天的公司内部刊物的卷首语上看到这么一则短文’阴影是条纸龙’，心中顿泛起一丝波澜，相信很多朋友看了之后也会和我有同样的感受，遂在这里将之贴出来和大家分享。 短文如下： 人生中，经常有无数来自外部的打击，但这些打击究竟会对你产生怎样的影响，最终决定权在你手中。 祖父用纸给我做过一条长龙。长龙腹腔的空隙仅仅只能容纳几只蝗虫，投放进去，它们都在里面死了，无一幸免！祖父说：&amp;#34;蝗虫性子太躁，除了挣扎，...</description></item><item><title>初识泰国电影</title><link>https://tonybai.com/2006/03/05/be-aware-of-tailand-film/</link><pubDate>Sun, 05 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/05/be-aware-of-tailand-film/</guid><description>在自己的记忆中，能和泰国电影占上边的要属香港女星钟丽缇出演的’晚娘‘了，不过我也只是停留在听说的份儿上，到并未有幸看过。最近一段时间同事一直想我推荐’拳霸‘这部电影，说其中男主角的身手可与成龙大哥媲美，甚至在一些动作难度上超越后者，我半信半疑。之后一直没机会找到这部电影，直到今天看到了’拳霸2′，这让我第一次接触泰国电影。 影片开始于一个泰国的小乡村，讲述着一对父子与大象一起的生活，大象在泰国人的...</description></item><item><title>草根化的'雷锋精神'</title><link>https://tonybai.com/2006/03/04/popular-leifeng-spirit/</link><pubDate>Sat, 04 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/04/popular-leifeng-spirit/</guid><description>每年的3月5号，全中国人民都会追忆一个已经逝去多年的’年轻人’，他就是雷锋。他身上的无私奉献、助人为乐的精神品质影响和感动着新中国的几代人，’向雷锋同志学习‘的口号早已烙印在几乎每个成年中国人的心里。雷锋虽然已经离开我们40余年了，我们仍然在寻找着现实中的’雷锋’。 ‘雷锋精神’，用现代语言来说，就是一个冠名词。大凡其后的所有先锋模范人物，都基本用具备’雷锋精神’来宣传报道。但作为13亿中国人民的...</description></item><item><title>美丽的'花枝'</title><link>https://tonybai.com/2006/03/03/beautiful-wenhuazhi/</link><pubDate>Fri, 03 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/03/beautiful-wenhuazhi/</guid><description>很喜欢看中央十套科教频道的栏目，感觉在中央台的这十几套节目当中，也就属这套科教频道’清新典雅’、’与世无争’了(不知道该用什么词藻描述了^\_^)。昨晚偶然间看到的’人与社会‘栏目让我知道了一朵美丽的’花枝’的感人故事，这里和大家一起来感动。 我并没有从头看起，一打开电视调到科教频道，映入眼帘的就是一起重大的车祸，当时还猜不出片子到底要讲一个什么样的故事。继续往下看，镜头在采访伤者和现场指挥之间切...</description></item><item><title>Kernel 'head.S'</title><link>https://tonybai.com/2006/03/02/kernel-head/</link><pubDate>Thu, 02 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/02/kernel-head/</guid><description>After being decompressed, the kernel image starts with another ‘startup\_32′ function included in $(linux-2.6.15.3\_dir/arch/i386/kernel/head.S’. This ‘head.S’ is the second one in linux source packag...</description></item><item><title>'瘦死的骆驼不如马'</title><link>https://tonybai.com/2006/03/01/dead-camel-thinner-than-a-horse/</link><pubDate>Wed, 01 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/01/dead-camel-thinner-than-a-horse/</guid><description>今天是国际比赛日，我们的国足也开拔到阿联酋在著名的’艾因主场’与伊拉克队过招，进行’2007亚洲杯预选赛‘的第二场小组赛，写这篇Blog时，比赛正在直播，我也同步写下此时的感受。 \[上半时 - 中国0 : 1伊拉克] 不出所料，朱指导排出四个后卫和三个后腰的阵容，虽然张耀坤出任右前卫，但是整个上半时张耀坤都在防守，而且还吃到一张黄牌。出任前锋的是两个在国外踢球的年轻前锋石俊和小董。石俊倒是很中规...</description></item><item><title>2006杏月靓乐</title><link>https://tonybai.com/2006/03/01/recommend-music-of-2006-02/</link><pubDate>Wed, 01 Mar 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/03/01/recommend-music-of-2006-02/</guid><description>年过得真快，转眼已到了传统佳节中的’二月二’龙抬头的日子了，相信在今天全国大大小小的理发店肯定会着实的火上一把，我可不想去凑这个热闹，还是老老实实在家里写Blog吧^\_^。跑题了，这里我们要谈的不是节日，而是音乐。最近一直把自己的音乐关注焦点集中到了’网络原创歌曲’上，有几首好歌想和大家一起分享一下。 在说网络歌曲之前，我还是忍不住要说说我很喜欢的一个乐队’WestLife‘。如果没记错的话，W...</description></item><item><title>'阿拉贡'的'暴力史'</title><link>https://tonybai.com/2006/02/28/a-history-of-violence/</link><pubDate>Tue, 28 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/28/a-history-of-violence/</guid><description>看过&amp;#39;The Lord Of Rings&amp;#39;三部曲的人一定都会记住其中的一个角色，那就是影片中人族的领袖&amp;#39;阿拉贡(Aragon)&amp;#39;。他正义、勇敢的气质让众多魔戒Fans为之倾倒。而扮演&amp;#39;阿拉贡&amp;#39;的演员维果.莫坦森(Viggo Mortensen)，也因此一炮走红。&amp;#39;魔戒&amp;#39;告一段落后，&amp;#39;阿拉贡&amp;#39;又在2005年秋季档期为我们演绎了一段&amp;#39;暴力史&amp;#39;，这部影片同样也吸引了众多&amp;#39;阿拉贡&amp;#39;迷的眼球。 看惯了高大伟...</description></item><item><title>好博客值几文？</title><link>https://tonybai.com/2006/02/28/how-much-is-a-good-blog/</link><pubDate>Tue, 28 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/28/how-much-is-a-good-blog/</guid><description>以前我对博客的理解较简单，就是自己在网络上的一处’栖息地’，用来间歇地发发牢骚、谈谈感受罢了。至于Blog的’价值’自己倒没有真正想过，今天试用了一把’博客价值评估工具’，呵呵，结果我的博客价值’9562 RMB’^\_^. 除了上面提到的’博客价值评估工具‘外，网络上还有很多这种工具，其中比较著名的有’How Much Is My Blog Worth?‘等。不同的工具由于其评估的算法不一致，从...</description></item><item><title>谁是世界足坛王者之王？</title><link>https://tonybai.com/2006/02/28/who-is-the-king-of-football/</link><pubDate>Tue, 28 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/28/who-is-the-king-of-football/</guid><description>今天’新浪2006世界杯足球赛网站‘开张了，这意味着世界杯的味道愈来愈浓了，世界杯这一影响程度仅次于奥运会的体育项目离我们越来越近了。在这个站点上偶然发现这样一个热点调查 — ‘谁是世界足坛王者之王‘，我做出了我的选择。结果大多数人和我的选择一致，他就是’迭戈.马拉多纳’。 当今世界被公认为球王的有两个人’马拉多纳‘和’贝利‘。围绕着谁到底是足球王中王的争论由来已久，两位球王也时不时地上演一番’口...</description></item><item><title>Compressed 'head.S'</title><link>https://tonybai.com/2006/02/25/compressed-head/</link><pubDate>Sat, 25 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/25/compressed-head/</guid><description>_Why do we do this? Don’t ask me.. Incomprehensible are the ways of bootloaders. _                             — comments in arch/i386/boot/compressed/misc.c There are two ‘head.S’ in linux source pac...</description></item><item><title>'名符其实'的国足</title><link>https://tonybai.com/2006/02/23/national-football-team-deserve-its-fame/</link><pubDate>Thu, 23 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/23/national-football-team-deserve-its-fame/</guid><description>已经记不清有多久没有完整地看完一次中国国家足球队的国际A级赛事了。昨天是2007年亚洲杯小组赛的第一场比赛，国足坐镇主场，对手是’神秘’的巴勒斯坦足球队。90分钟下来，国足2:0拿下比赛，按理说我们该庆祝，可是我想大多数中国球迷和我一样，心情沉重呀，不为别的，就为中国足球的未来担心亚。尽管比赛获得了胜利，但是从比赛的过程来看，难掩饰这支国足的真实地位– ‘名符其实’的亚洲二流。 其实我感觉亚洲一流...</description></item><item><title>听广播入睡</title><link>https://tonybai.com/2006/02/22/sleep-with-radio/</link><pubDate>Wed, 22 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/22/sleep-with-radio/</guid><description>从大一开始’听广播入睡’就一直是我的习惯，现在工作了这个习惯仍然没能改变。有人可能会说这个习惯不太好，不过都说是’习惯’了，也就不太在意了。谁让我躺在床上半天也睡不着呢:)，而广播恰恰可以作为我的’催眠曲’，让我顺利进入梦乡。 孩提时代开始接触广播，在那个媒体贫乏的年代，广播打开了每个娃娃心灵的小窗户，让我们接触新鲜事物，拥抱知识。在广播中我知道了中央人民广播电台的’小喇叭’、知道了雷锋、赖宁的先...</description></item><item><title>贴点经典台词</title><link>https://tonybai.com/2006/02/18/classic-actor-dialogue/</link><pubDate>Sat, 18 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/18/classic-actor-dialogue/</guid><description>很多经典影视剧和小品都会给大家留下些’经典台词’，就拿今年的春晚小品’小崔说事’来说，我记住的就有’那是相当的xxx’、’女人啊，就该对自己下手狠一点’等。其实在春晚之前还有一部热播的电视剧给人们带来了欢笑，同时也让人们记住了很多让人捧腹的’台词’。这部剧就是’武林外传’。 1、嘘！嘘！嘘！低调！低调！都低调！ 2、确定一定以及肯定；否决否认以及否定。 3、我吃的盐比你吃的饭都多。       —...</description></item><item><title>Transfer to '32-bit'</title><link>https://tonybai.com/2006/02/17/transfer-to-32bit/</link><pubDate>Fri, 17 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/17/transfer-to-32bit/</guid><description>The phase we talked about before is in ‘Real-address Mode’, which runs 16-bit program modules. At the tail of &amp;#34;Begin ‘setup.S’&amp;#34;, we had moved to ‘Protected Mode’, which usu runs 32-bit program modules...</description></item><item><title>Outline 'memory layout'</title><link>https://tonybai.com/2006/02/15/outline-memory-layout/</link><pubDate>Wed, 15 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/15/outline-memory-layout/</guid><description>So far we have arrived at the gate leading to the real kernel. And we’d better stop for a short break in order that we would have more energy to go ahead. Now let’s examine what we do to memory these ...</description></item><item><title>改写两则笑话</title><link>https://tonybai.com/2006/02/15/two-jokes/</link><pubDate>Wed, 15 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/15/two-jokes/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>独过情人节</title><link>https://tonybai.com/2006/02/14/spend-valentine-day-alone/</link><pubDate>Tue, 14 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/14/spend-valentine-day-alone/</guid><description>又是一个没有情人的情人节，不是没有情人，是情人不在。今天凌晨就把’祝福’通过现代方式给她’发送’过去了，还行也收到了’回复’ — ‘你自己一个人过吧’!，顿时这心里感觉那可以说是’相当的热乎了’，哪敢说凉亚:) 情人节不是法定假日，所以工作一切照常，部门还是很人性化的，每人发了一盒巧克力，也算是解决了像我这样’独过情人节’的同仁们’无米下锅’的问题。工作之余大家谈资中也自然少不了’情人节’这个主题...</description></item><item><title>Begin 'setup.S'</title><link>https://tonybai.com/2006/02/13/begin-setup/</link><pubDate>Mon, 13 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/13/begin-setup/</guid><description>It is time for ‘setup.S’ to show its power. The ‘setup.S’ is loaded by the bootloader and virtually it belongs to neither the ‘bootstrap’ routine nor the kernel program, although it is a portion of th...</description></item><item><title>小议'霍元甲'</title><link>https://tonybai.com/2006/02/12/thoughts-on-huoyuanjia/</link><pubDate>Sun, 12 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/12/thoughts-on-huoyuanjia/</guid><description>霍元甲，乃一代忠师，大侠级人物，岂敢非议。这里说的是近期热播的同名电影’霍元甲’。记忆中没有看过关于’霍元甲’的作品，关于精武门的多是演绎’陈真’。这次李连杰既’精武英雄’后再次演绎’精武作品’，不过主角儿换成了’霍元甲’，值得期待值得观赏，不说别的，就冲着李连杰(我最喜欢的武打明星之一^\_^)，我也不能放过这部电影。 ‘列强们的坚船巨炮轰开了中国尘封已久的国门’，这是’霍元甲’电影的开场白，轰...</description></item><item><title>Goto 'Bootstrap'</title><link>https://tonybai.com/2006/02/11/goto-bootstrap/</link><pubDate>Sat, 11 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/11/goto-bootstrap/</guid><description>The term ‘Bootstrap’, which originally refers to a person who tries to stand up by pulling his own boots, refers to a subroutine used to establish the full routine(its own left part, i think) or anoth...</description></item><item><title>Inside the 'i386'</title><link>https://tonybai.com/2006/02/09/inside-the-i386/</link><pubDate>Thu, 09 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/09/inside-the-i386/</guid><description>The term ‘i386′ in the title does not refer to the real Intel 80386 processor but the representative of Intel 32-bit architecture(IA32). I prefer ‘i386′ rather than ‘IA32′ just like what the linux ker...</description></item><item><title>Retired 'bootsect.S'</title><link>https://tonybai.com/2006/02/08/retired-bootsect/</link><pubDate>Wed, 08 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/08/retired-bootsect/</guid><description>We know that the latest linux kernel version is 2.6.x, which is different from the ‘old kernels’ in booting. The ‘bootsect.S’, which used to make the kernel image in the floppy disk bootable in the ea...</description></item><item><title>“隐”在春节</title><link>https://tonybai.com/2006/02/06/be-undertone-in-the-chinese-new-year/</link><pubDate>Mon, 06 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/06/be-undertone-in-the-chinese-new-year/</guid><description>每年春节都有一些新鲜事发生，这不我就看到这么一则消息说的是一些单身的’大龄青年’在过传统的佳节-春节时选择’隐身’，我们都听过乐在春节，玩在春节，吃在春节等，可这’隐’在春节又是怎么一码子事呢，我们一起来寻思寻思^\_^。 媒体记者采访这些’隐士’后得出他们’隐’的原因有二：这一是为了’逃离’亲戚朋友的好心’拉郎配’；这二呢周围的同学朋友家里已经是’娃娃满堂’，大过年的看到孩子后怎能不’压岁’呢，...</description></item><item><title>体味“年文化”</title><link>https://tonybai.com/2006/02/06/appreciate-the-culture-of-spring-festival/</link><pubDate>Mon, 06 Feb 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/02/06/appreciate-the-culture-of-spring-festival/</guid><description>过了初一，’年’对于我来说就再也没什么值得期待的了。从小到大我过年的过程都是那么循规蹈矩，按部就班，20多年了我也没过过什么有新意的年。提及’年文化’有些夸大，充其量只是自己对自己的过年经历的一些思考罢了(这样的思考一般都具有一定的历史局限性^\_^)。 可以肯定的是每个中国人对’年’的经历和感受都不同。总结了一下自己所过的20多个年，按照时间顺序大致分为这么3个阶段： (1)’盼年’ 解释一下什...</description></item><item><title>2006正月靓乐</title><link>https://tonybai.com/2006/01/24/recommend-music-of-2006-01/</link><pubDate>Tue, 24 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/24/recommend-music-of-2006-01/</guid><description>临近春节大多数人都沉浸在喜庆气氛之中，歌手们也趁着这个时候忙里偷闲，所以在这个正月新专辑不多，这里我挑了几首我最近在听的老歌说说。 这里首先要说的是阿桑的’一直很安静’，以前只是听说过有阿桑这么一号人物，却不曾听过她的作品(也许听过但不知道就是阿桑的^\_^)。一次偶然的机会听到这首醇美的歌曲，略微舒缓的节奏和阿桑那如清泉般甘甜的嗓音瞬间就征服了我的耳朵。我一口气听了不下10遍。这是一首’诉衷肠’...</description></item><item><title>回家过年啦</title><link>https://tonybai.com/2006/01/24/go-home-for-spring-festival/</link><pubDate>Tue, 24 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/24/go-home-for-spring-festival/</guid><description>明天就要回家过春节了，回家期间由于上网不便，估计近两个星期要暂时告别blog了，不过我会坚持写的，等春节后再贴出来。 一整年都在不间断地忙忙碌碌着，一个项目接着一个项目，以至于带薪年假都没有休。整个部门的节奏可以用’不温不火’来形容，既不像外包部门那样的半夜加班、节假日出差，也不像效益差部门那样一天无事可做。究其原因很简单部门业务’平稳’发展。就像一位搞外包的同事对我说的’看你的blog经营的状态...</description></item><item><title>将无哩头进行到底</title><link>https://tonybai.com/2006/01/23/insist-on-loony-tone/</link><pubDate>Mon, 23 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/23/insist-on-loony-tone/</guid><description>最近中央八套的一部不起眼的古装室内剧’武林外传’居然在观众中引起不小反响，我虽只看过其中几集，没有绝对的发言权，但是我还是管不住自己的嘴要说说。我觉得’武林外传’一剧是无哩头搞笑形式的一种延续，在结合了当前社会的一些时尚媒体元素后，自然而然地给观众带来了一些’捧腹’的笑料。 早先听说八套要播出’武剧’，我还以为央视要重播以前那个曾经在多个地方台播出的’武林外史’呢，后来才知道原来是自己混淆剧名了。...</description></item><item><title>收到Ubuntu光盘</title><link>https://tonybai.com/2006/01/23/got-the-ubuntu-disc/</link><pubDate>Mon, 23 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/23/got-the-ubuntu-disc/</guid><description>一个月以前在Ubuntu上订购了Ubuntu Linux 5.10发行版，今天终于拿到手了^\_^。 在Linux发行版世界，大家最熟悉的几种发行版包括RedHat(或其开源版Fedora)、Debian、SuSE等，提到Ubuntu这个奇怪的名字大家都会感到陌生，在一个多月前我也不例外。Ubuntu是一个基于Debian的Linux操作系统发行版，它完全免费，这次我收到的Ubuntu光盘就是在其...</description></item><item><title>选择Blog站点</title><link>https://tonybai.com/2006/01/18/choose-blog-service-provider/</link><pubDate>Wed, 18 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/18/choose-blog-service-provider/</guid><description>公司内网上的一个帖子让我想起了写这样一个话题，自己写Blog的历史也有一年半了，其间体验过多个Blog站点，这里说说体会，为那些开始想要写Blog的人提供些参考。 ‘博客巴士’是我的第一个Blog站点，也是我最喜欢的一个国内Blog站点，而且目前仍然作为我的主力站点。最开始写Blog时，选择Blog站点很随意，Blogbus就是当时dreamhead介绍给我的。说实话，当时的Blogbus还处于起...</description></item><item><title>make the world know China</title><link>https://tonybai.com/2006/01/16/make-the-world-know-china/</link><pubDate>Mon, 16 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/16/make-the-world-know-china/</guid><description>Last night I watched the ‘Dialogue’ , which is a very pop ‘talk show’ TV program of CCTV2.  the topic of this issue is ‘how to make the world know China’. Zhao Qi-zheng and He Dele were invited as hon...</description></item><item><title>部门联欢小记</title><link>https://tonybai.com/2006/01/15/note-of-the-department-get-together/</link><pubDate>Sun, 15 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/15/note-of-the-department-get-together/</guid><description>一年一度的部门联欢如期举行。由于部门今年的业绩一片飘红，大家脸上都带着笑容。联欢吗就是要放下一切不愉快的事情尽情的玩，起码我是这么做了，晚会结束后我的嗓子都喊哑了:)。 吃吃喝喝、玩玩闹闹向来是联欢的主题。参加联欢获得快乐最大的秘诀就是&amp;#39;积极参与&amp;#39;，尤其是在互动游戏中体味快乐。我是这么想的也是这么做的。参与游戏还有个最大的好处就是有小巧而实用的奖品亚，多参与多得奖，多多益善吗:)。 对于结束一天辛...</description></item><item><title>又是一年考研时</title><link>https://tonybai.com/2006/01/14/the-time-of-one-year-exam-for-postgraduate/</link><pubDate>Sat, 14 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/14/the-time-of-one-year-exam-for-postgraduate/</guid><description>在收音机中得知今天是考研日。此时此刻，全国各地有过百万的莘莘学子们正在考场内紧张的答题。考研对我来说是个沉重的话题，不仅仅是因为我曾倒在&amp;#39;研究生圣堂&amp;#39;的大门口，更是因为它让我重新认识了我自己。现在想想两年前的那次失败也许不是偶然，而是必然。 记得在中学学写英文信的时候，大家几乎都不约而同地在第一行写下类似&amp;#34;How time flies!&amp;#34;的语句，感叹一下&amp;#34;时间飞逝&amp;#34;。而这句却正是现在坐在本本前的我...</description></item><item><title>给“沙场点兵”一些掌声</title><link>https://tonybai.com/2006/01/10/some-applause-to-the-troops-of-the-battlefield/</link><pubDate>Tue, 10 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/10/some-applause-to-the-troops-of-the-battlefield/</guid><description>最近央视一套正在热播一部反映当代军人题材的电视剧&amp;#34;沙场点兵&amp;#34;，军事题材电视剧一直是我的最爱，从&amp;#34;突出重围&amp;#34;、到&amp;#34;DA师&amp;#34;再到这部&amp;#34;沙场点兵&amp;#34;我都尽量抽出时间看上几集。军事剧播出自然少不了军迷们对其的评论，我在很多军事网站上看到了对其负面的评论，当然主要是针对剧情逻辑的不合理以及对军事理论的理解差异。我并未从头看起，只是看了中间的几集，就这几集如果让我谈谈的话，我会给沙剧一些掌声。 众所周知，中国现...</description></item><item><title>用GDB调试多进程程序</title><link>https://tonybai.com/2006/01/08/debug-multiple-process-program-using-gdb/</link><pubDate>Sun, 08 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/08/debug-multiple-process-program-using-gdb/</guid><description>有一段时间没有写技术方面的东西了^\_^。众所周知，GDB是Unix/Linux下调试程序的龙头老大，GDB功能强大，我们在平时多使用其一些最基本的功能，而且一般调试的都是单进程的程序。最近一个项目中的问题让我接触如何使用GDB调试多进程程序，更确切的是说调试调用fork的多进程程序。 使用GDB最好的文档就是其名为&amp;#39;Debugging with GDB&amp;#39;的参考手册。手册中有一小章节提到了如何调试...</description></item><item><title>听说发论文要掏钱</title><link>https://tonybai.com/2006/01/07/have-to-pay-for-issuing-the-papers/</link><pubDate>Sat, 07 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/07/have-to-pay-for-issuing-the-papers/</guid><description>也许是我孤陋寡闻，今天才从SINA第一次听说发论文要自掏腰包。下午和GF聊天，GF为我证实了这件事。还能说什么呢，感叹呗! 我是本科毕业，没有过研究生、博士生的经历，不过我或多或少也了解些国家对研究生和博士生的一些硬性要求，那就是在读期间论文数量。毕业前数量不达标，想毕业就两个字&amp;#39;没门&amp;#39;。我所就读的大学可以算是国内一所名校，由于学校名声在外，专业在国内名列前茅，学生们的论文在名师的推荐下一般不愁没...</description></item><item><title>Hacker Culture摘要</title><link>https://tonybai.com/2006/01/05/hacker-culture-summary/</link><pubDate>Thu, 05 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/05/hacker-culture-summary/</guid><description>最近看了Eric S. Raymond的被称为开源文化圣典的&amp;#39;Cathedral and Bazaar&amp;#39;(大教堂与市集)以及他的另外一篇文章&amp;#39;How To Become A Hacker&amp;#39;，必须承认的是我不能够完全理解其中的内容，因为没有体验，或者说我还不够资格对Hacker Culture高谈阔论，所以这里仅作部分摘要，并说说自己第一时间的感受，望日后能温故知新。 在开始了解Hacker Cul...</description></item><item><title>一个军迷的忧虑</title><link>https://tonybai.com/2006/01/03/worries-of-a-military-fan/</link><pubDate>Tue, 03 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/03/worries-of-a-military-fan/</guid><description>看了CCTV7军事频道的一期&amp;#39;2005军中骄傲&amp;#39;节目，一幕某集团军地空导弹旅军演画面让我这个&amp;#39;非骨灰级&amp;#39;的军事迷不禁产生了一丝忧虑。 从小就爱耍枪弄棒，仰慕那些手握钢枪保家卫国的解放军战士。长大后&amp;#39;理所当然&amp;#39;地没能成为光荣的子弟兵^\_^，却成为了一名执著的军事迷，各大军事网站都留有我的&amp;#39;足迹&amp;#39;。但是首先声明一点的就是我可不是那些背着相机出没于各大造船厂、机场为我们这些军迷带来最新资料的骨灰级军迷...</description></item><item><title>中国电影100年了</title><link>https://tonybai.com/2006/01/02/100-years-of-chinese-movie/</link><pubDate>Mon, 02 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/02/100-years-of-chinese-movie/</guid><description>从CCTV6上得知已经过去的2005年是中国电影诞生100周年。作为中国电影发展的见证人在这样的一个时刻，也说说自己的一些感受。 绞尽脑汁也记不起来自己第一次在电影院里看的第一部中国电影的名字了。但是从时间上判断，我们这一代进入电影院、接触电影应该是在上世纪80年代末、90年代初。那时候整个中华大地正沐浴在改革开放的春天里，文化领域的人们自然也不甘落后，每年都有不少国产影片诞生。 脑海中记得一些如...</description></item><item><title>迎来本命年</title><link>https://tonybai.com/2006/01/01/my-animal-year/</link><pubDate>Sun, 01 Jan 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/01/01/my-animal-year/</guid><description>新的一年–2006年的第一天，&amp;#39;发泄&amp;#39;一下自己的感慨^\_^。 2006年 — 农历狗年 — 我的本命年。 我属狗，狗也是我最喜欢的动物。年幼时家里曾养过很多只可爱的小狗，其中一个重要的原因就是我父母也都喜欢狗。 本命年的来历大致是这样的：中国古代一直采用干支纪年法，天干十位，地支十二位。但鉴于古代普通老百姓的文化水平有限，他们很难记住众多的&amp;#39;稀奇古怪&amp;#39;的天干地支的组合纪年，遂发明了用一种动物来代...</description></item><item><title>2005腊月靓乐</title><link>https://tonybai.com/2005/12/29/recommend-music-of-2005-12/</link><pubDate>Thu, 29 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/29/recommend-music-of-2005-12/</guid><description>我喜欢音乐，所以我也来说说音乐。 最近晚上休息时一直在听中央人民广播电台的音乐之声(Music Radio)栏目，听到心仪的歌曲马上就下载到本本中，慢慢欣赏。下面是一些听后感^\_^: 激情澎湃 – 汪峰 之 &amp;#39;怒放的生命&amp;#39; 最开始知道汪峰是通过其作品“花火”，其高亢澎湃的嗓音让我想起了演唱&amp;#39;超越梦想&amp;#39;的汪正正。&amp;#39;怒放的生命&amp;#39;是在其&amp;#39;飞得更高&amp;#39;之后的又一表现其强烈心声的歌曲，经历过挫折、痛苦、迷茫...</description></item><item><title>圣诞后说</title><link>https://tonybai.com/2005/12/28/say-something-after-christmas/</link><pubDate>Wed, 28 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/28/say-something-after-christmas/</guid><description>圣诞节没来得及“说”，俺就来个“圣诞后说”^\_^。 又是一年圣诞节，又是考验国民消费能力的日子，不过从统计数据来看，没有让大家失望，以沈阳为例，著名商业街“中街”几个大商场一夜的销售额就过亿。看来大家都比我有钱，呵呵。 圣诞节也是一个考验肚子的日子，和GF从早到晚吃个不停。中午烤鸭，晚上南美烤肉。这回儿可往肚子里灌满了“油水”。 圣诞节也是个“短信爆炸”的日子，我的手机真是忙个不停，鉴于词语表达...</description></item><item><title>失望的“火焰杯”</title><link>https://tonybai.com/2005/12/17/the-goblet-of-fire-disappoint-me/</link><pubDate>Sat, 17 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/17/the-goblet-of-fire-disappoint-me/</guid><description>英国女作家“罗琳”的小说着实让我“着迷”一番。从第一部“魔法石”到第五部“凤凰社”，每部小说我都会认真拜读，至于同名电影我也“同步”地看了3部，这不刚刚把第4部电影“火焰杯”看完。 至今为止最吸引我的两部是“魔法石”和“火焰杯”。历来畅销小说的开山之作总是被誉为经典，“哈利波特”也不例外，“魔法石”一部让我们认识了善良、正义和勇敢的小哈利，也大致知道了整部小说的线索是“哈利与伏地魔之间的斗争”。在...</description></item><item><title>说说电影</title><link>https://tonybai.com/2005/12/16/something-about-movies/</link><pubDate>Fri, 16 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/16/something-about-movies/</guid><description>我是个不折不扣的电影迷，特别喜欢看欧美的科幻片、喜剧片和中国的剧情片，以前看电影都仅仅停留在看看乐乐就完了的阶段，现在有了blog这个工具，遂想把自己的一些看电影后的体会写出来，不吐不快么^\_^，另外注意哦这不是影评。 让我产生上面想法是索尼的“A Sound Of Thunder”这部2005年科幻片，其中文名为“雷霆万钧”或“一声惊雷”。知道这部片子源于同事的介绍，在他的描述中这部片子很精彩...</description></item><item><title>在Linux上工作</title><link>https://tonybai.com/2005/12/15/working-on-linux/</link><pubDate>Thu, 15 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/15/working-on-linux/</guid><description>在Linux上学习Linux内核我想应该是最好的方法了。Linux对我来说绝对是一个新鲜环境，搭建在Linux上的工作环境就是我的首要工作，这篇blog记录的就是我在Linux上的工作环境，也希望对大家有些借鉴意义。 我的Linux是在一个多月以前安装的\[注1]，安装的版本是Fedora Core 4。我使用的是本地磁盘映像安装，磁盘映像文件很大，总共4个，大约2.4G体积。安装过程倒是没有像网...</description></item><item><title>差异学习</title><link>https://tonybai.com/2005/12/13/differences-in-learning/</link><pubDate>Tue, 13 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/13/differences-in-learning/</guid><description>看了dreamhead的那篇“差异程序员”，又恰逢在今天dreamhead在一封邮件中谈到其继续深入“向下学习”的想法，心里突然有了本篇题目这样的一个话题。 “差异程序员”(http://dreamhead.blogbus.com/logs/2005/12/1676755.html) 最近自己也在“向下走”，这和dreamhead的想法和做法不谋而合。dreamhead在其blog和邮件中都谈了其...</description></item><item><title>APR源代码分析-线程同步篇</title><link>https://tonybai.com/2005/12/11/apr-thread-synchronization/</link><pubDate>Sun, 11 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/11/apr-thread-synchronization/</guid><description>在线程同步方面，Posix标准定义了3种同步模型，分别为互斥量、条件变量和读写锁。APR也“浅”封装了这3种模型，只是在“读写锁”一块儿还没有全部完成。 线程同步的源代码的位置在$(APR\_HOME)/locks目录下，本篇blog着重分析unix子目录下的thread\_mutex.c、thread\_rwlock.c和thread\_cond.c文件的内容，其相应头文件为(APR\_HOME...</description></item><item><title>APR分析-线程篇</title><link>https://tonybai.com/2005/12/08/apr-thread/</link><pubDate>Thu, 08 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/08/apr-thread/</guid><description>并行一直是程序设计领域的难点，而线程是并行的一种重要的手段，而且线程的一些特性也能在进程并行时发挥很好的作用(在“线程同步篇”中详细阐述)。 APR线程的源代码的位置在$(APR\_HOME)/threadproc目录下，本篇blog着重分析unix子目录下的thread.c文件内容，其相应头文件为$(APR\_HOME)/include/apr\_threadproc.h。 一、线程基础 《深入...</description></item><item><title>APR源代码分析-网络IO篇</title><link>https://tonybai.com/2005/12/05/apr-network-io/</link><pubDate>Mon, 05 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/05/apr-network-io/</guid><description>“这个世界如果没有了网络就好比没有了石油、没有了电一样，是多么的可怕呀。”相信世界上已经有很多很多的人能够同意这种观点了，通过这个观点也可以看出网络在现代人们心中的地位。而运行在网络节点上的网络应用程序则是在幕后默默地为人们提供着服务。Apache Server就是其中一个典型的代表。而APR网络I/O库则像磐石一样支撑着Apache Server的运行。 APR网络I/O的源代码的位置在$(AP...</description></item><item><title>APR源代码分析-进程同步篇</title><link>https://tonybai.com/2005/12/02/apr-process-synchronization/</link><pubDate>Fri, 02 Dec 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/12/02/apr-process-synchronization/</guid><description>最新的统计数据显示Apache服务器在全世界仍然占据着Web服务器龙头老大的位置，而且市场占有率遥遥领先，所以学习Apache相关知识是完全正确的方向，这里我们继续分析APR进程同步相关内容。 进程同步的源代码的位置在$(APR\_HOME)/locks目录下，本篇blog着重分析unix子目录下的proc\_mutex.c、global\_mutex文件内容，其相应头文件为$(APR\_HOME...</description></item><item><title>学习虚存-自上而下</title><link>https://tonybai.com/2005/11/30/learn-virtual-mem-f/</link><pubDate>Wed, 30 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/30/learn-virtual-mem-f/</guid><description>如果它不存在，但是你能看见它 — 它是虚拟的(IBM宣传虚拟内存之用语)。虚拟内存技术是计算机发展史上的一项重要的技术，它帮助应用程序摆脱了“体积”的限制。 记得上大学时，有一本书好像叫做“计算机网络 – 自顶向下”，全名记不太清了。书中从人们接触最多也最熟悉的“应用层”开始讲，一直讲到“物理层”，看完这本书后感觉效果不错。所以按照这种方法我也尝试着自上而下的去学习“虚存”，从我们最熟悉的C库接口...</description></item><item><title>汇编之路-复习栈操作</title><link>https://tonybai.com/2005/11/24/assembly-series-review-stack-operation/</link><pubDate>Thu, 24 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/24/assembly-series-review-stack-operation/</guid><description>不得不承认上次关于栈桢和栈操作写得有些笼统，这里做一次“补充”，美名其曰：“复习”。 下面的这个例子几乎就能覆盖所有的栈操作相关的内容了。 void dummy() {         int     i = 12;         int     j = 13;         char    c = &amp;#39;a&amp;#39;; } int main() {         dummy();         re...</description></item><item><title>软件抽象</title><link>https://tonybai.com/2005/11/21/software-abstraction/</link><pubDate>Mon, 21 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/21/software-abstraction/</guid><description>不知道“软件抽象”这个标题能否恰好表达出我想表达出的意思，暂且就起这个名字吧。随着工作经验的增加，对软件开发所涉及的技术知识体系的理解也渐渐地清晰（起码自己是这么感觉的^\_^），思考了若干时间后，拿出来给自己一个和大家交流的机会。 1、起源 这个想法起源于一次项目方案讨论例会，会上我们的项目遇到了“存储资源瓶颈”，遂有同事提出一个类似“数据中心”的方案，但考虑到部门目前没有相关经验和数据供参考，...</description></item><item><title>tony说设计-实践后的体会</title><link>https://tonybai.com/2005/11/16/experience-after-some-design-practice/</link><pubDate>Wed, 16 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/16/experience-after-some-design-practice/</guid><description>入司后连续做过几个项目。最近在做一个新的项目的设计的时候，突然想到是不是该把以前项目中一些好的设计想法应用到新的项目中，并且尽量减少在新的项目中遗留以前的不好的设计呢？那么以前的项目中哪些是值得我去借鉴，哪些又是应该去避免的呢？真的很遗憾，自己并没有系统的反思和总结过，这就是我写下这篇Blog的直接起因。 一直在Unix平台下做设计和开发，所以下面谈的内容可能都有些局限性。作为设计原则本身，某些可...</description></item><item><title>童心未泯</title><link>https://tonybai.com/2005/11/14/still-childish/</link><pubDate>Mon, 14 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/14/still-childish/</guid><description>在sina“北京奥运吉祥物”发布专题中，发现吉祥物评审委员会有位评委是个童话故事家，叫“郑渊洁”，这个名字听起来很熟悉，在网上搜索后才知道，原来小时侯最喜欢看的《舒克和贝塔》就出自这位作家之手，心中顿时涌动着对其之敬仰之情，遂下载了一本“待补充”的《郑渊洁童话全集》开始拜读。 虽已工作一载有余，但仍自认为“童心未泯”，暂且忘记工作的压力、生活上的不如意，进入郑叔叔的童话世界中，这简直就是一种享受。...</description></item><item><title>汇编之路-栈操作与栈帧</title><link>https://tonybai.com/2005/11/13/assembly-series-stack-oper-and-frame/</link><pubDate>Sun, 13 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/13/assembly-series-stack-oper-and-frame/</guid><description>结构化程序的一个最基本的单元就是“函数”或者叫“过程”。在汇编这一层自然也相应的有支持这些概念的指令操作，如栈操作和栈帧的概念。 首先这里要为“打开汇编之门”那篇blog补充一点的是：汇编语言是与机器相关，这里的一切都是基于IA-32机器平台的。 1、寻址方式 我们已经知道在操作数表示中有一种是用来指示内存地址的内容的，在GNU Assembly中指示内存地址有多种方式，这些方式被统称“寻址方式”...</description></item><item><title>打开汇编之门</title><link>https://tonybai.com/2005/11/12/open-the-gate-to-assembly-language/</link><pubDate>Sat, 12 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/12/open-the-gate-to-assembly-language/</guid><description>工作这么长时间，一直在C语言这一层面上钻研和打拼，日积月累，很多关于C的疑惑在书本和资料中都难以找到答案。程序员是追求完美的一个种群，其头脑中哪怕是存在一点点的思维黑洞都会让其坐卧不宁。不久前在itput论坛上偶得《Computer Systems A Programmer&amp;#39;s Perspective》（以下称CSAPP）这本经典好书，遂连夜拜读以求解惑。虽说书中没有能正面的回答我的一些疑惑，但是...</description></item><item><title>C单元测试包设计与实现</title><link>https://tonybai.com/2005/11/08/the-design-and-implementation-of-c-unittest-framework/</link><pubDate>Tue, 08 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/08/the-design-and-implementation-of-c-unittest-framework/</guid><description>在Java、C++和C#等高级语言的单元测试正进行的如火如荼的时候，C好像做了看客，冷清的躲在了一个不起眼的角落里。C并不是没有单元测试工具，像Check和CUnit这样的工具也很有名气，只是和大名鼎鼎的JUnit比起来，还是显得有些英雄气短。很多大型的C项目，如APR等都没有使用像Check、CUnit这样通用的单元测试框架，而是另起炉灶自己编写。其实编写一个仅能满足单个项目需要的C单元测试工具...</description></item><item><title>APR源代码分析-环篇</title><link>https://tonybai.com/2005/11/03/apr-ring/</link><pubDate>Thu, 03 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/03/apr-ring/</guid><description>APR中少见对数据结构的封装，好像唯一例外的就是其对循环链表，即环(RING)的封装。 在大学的时候学的不是计算机专业，但大三的时候我所学的专业曾开过一门好像叫“计算机软件开发基础”的课，使用的是清华的一本教材，课程的内容包括数据结构。说实话听过几节课，那个老师讲的还不错，只是由于课程目标所限，没讲那么深罢了。当然我接触数据结构要早于这门课的开课时间。早在大一下学期就开始到计算机专业旁听“数据结构...</description></item><item><title>再说内存</title><link>https://tonybai.com/2005/11/02/talk-about-memory-again/</link><pubDate>Wed, 02 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/02/talk-about-memory-again/</guid><description>离我的上一篇BLOG已经时隔一个月有余，项目忙是一方面原因，最主要的还是自己没什么“收获”。在最近的项目中总是和内存打交道，时间长了，便有了些许问题，原本我就不是不求甚解者，遂趁此机会又复习了些内存相关资料。 其实下面的话题都是源于在实际项目中碰到的问题，我们通过推敲一句话来开始吧! 1、推敲一句话 在《C专家编程》一书中，有这样的说法“Malloced memory is always alig...</description></item><item><title>也谈字节序问题</title><link>https://tonybai.com/2005/09/28/also-talk-about-byte-order/</link><pubDate>Wed, 28 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/28/also-talk-about-byte-order/</guid><description>一次Sun SPARC到Intel X86的平台移植让我们的程序遭遇了“字节序问题”，既然遇到了也就不妨深入的学习一下。 一、字节序定义 字节序，顾名思义字节的顺序，再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。 其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。 在所有的介绍字节序的...</description></item><item><title>APR源代码分析-共享内存篇</title><link>https://tonybai.com/2005/09/23/apr-shmem/</link><pubDate>Fri, 23 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/23/apr-shmem/</guid><description>共享内存是一种重要的IPC方式。在项目中多次用到共享内存，只是用而并未深入研究。这次趁研究APR代码的机会复习了共享内存的相关资料。 APR共享内存封装的源代码的位置在$(APR\_HOME)/shmem目录下，本篇blog着重分析unix子目录下的shm.c文件内容，其相应头文件为$(APR\_HOME)/include/apr\_shm.h。 一、共享内存简单小结 共享内存是最快的IPC方式，...</description></item><item><title>解疑sigsuspend</title><link>https://tonybai.com/2005/09/22/understand-sigsuspend/</link><pubDate>Thu, 22 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/22/understand-sigsuspend/</guid><description>Unix提供了等待信号的系统调用，sigsuspend就是其中一个，在CU(www.chinaunix.net)上曾经讨论过一个关于该系统调用的问题，这里也做一下解疑。 CU网友讨论的问题的核心就是到底sigsuspend先返回还是signal handler先返回。这个问题Stevens在《Unix环境高级编程》一书中是如是回答的“If a signal is caught and if the...</description></item><item><title>理解Zombie和Daemon Process</title><link>https://tonybai.com/2005/09/21/understand-zombie-and-daemon-process/</link><pubDate>Wed, 21 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/21/understand-zombie-and-daemon-process/</guid><description>潜水于CU(www.chinaunix.net)，看到了大家对Zombie Process和Daemon Process的理解，同样也意识到以前自己对这两个概念理解的偏颇，想在这篇Blog中将之纠正。 一、Zombie Process Zombie Process，译成中文为僵尸进程，以前我一直认为父进程先结束，子进程就变成了僵尸进程，事实上这与正确的理解恰恰相反，真惭愧，只是从字面理解了而并未深...</description></item><item><title>改格</title><link>https://tonybai.com/2005/09/19/change-image/</link><pubDate>Mon, 19 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/19/change-image/</guid><description>又是一年中秋节，大街小巷弥漫着月饼的味道和喜庆的气氛，发现现在中秋的一个特点就是“月饼贼贵，人还排队(买)”，看来中国人民的生活水平真是提高了。这是我在沈城过的第二个中秋，对于有GF的我中秋节意味着“大出血”，所以今天在沈阳最繁华的商业街上你要是细心观察的话准会发现我们的身影(如果你真的这么做的话，你就应该到医院看医生了:)，小心现在医院贼宰人哟，先看看钱袋里是否带足钱了再说)。不过今年中秋有一个...</description></item><item><title>理解dup和dup2</title><link>https://tonybai.com/2005/09/19/understand-dup-and-dup2/</link><pubDate>Mon, 19 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/19/understand-dup-and-dup2/</guid><description>看到ChinaUnix(CU)上的一个帖子后，觉得自己对dup和dup2特别是后者的理解还是有欠缺的，这两个接口看起来很简单，但是理解起来也真的并不是那么容易。 相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”，这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析...</description></item><item><title>APR源代码分析-高级IO篇</title><link>https://tonybai.com/2005/09/17/apr-advanced-io/</link><pubDate>Sat, 17 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/17/apr-advanced-io/</guid><description>近两天稍轻闲了些，便抓紧时间学习、学习再学习。在“APR分析-文件IO篇”，我们只分析了最基本的I/O操作，如文件的open、close、write和read。当然File I/O操作不止这些，在这一篇中我们来看看APR提供的一些高级I/O设施，包括记录锁、I/O多路复用和内存映射文件(内存映射文件将和共享内存一起分析)。 一、记录锁或(区域锁)\[注1] 我见过的对记录锁讲解最详细的书就是《Un...</description></item><item><title>APR源代码分析-文件IO篇</title><link>https://tonybai.com/2005/09/15/apr-file-io/</link><pubDate>Thu, 15 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/15/apr-file-io/</guid><description>文件I/O在Unix下占据着非常重要的地位，曾有一句经典语句绝对可以说明file在Unix下的重要性，That is &amp;#34;In UNIX, everything is a file&amp;#34;，APR就是本着这个思想对Unix文件I/O进行了再一次的抽象封装，以提供更为强大和友善的文件I/O接口。 APR File I/O源代码的位置在$(APR\_HOME)/file\_io目录下，本篇blog着重分析un...</description></item><item><title>APR源代码分析-信号篇</title><link>https://tonybai.com/2005/09/13/apr-signal/</link><pubDate>Tue, 13 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/13/apr-signal/</guid><description>U know 信号是Unix的重要系统机制。信号机制使用起来很简单，但是理解起来有并不是那么Easy。APR Signal的封装也并不繁琐，代码量很少，所以分析APR Signal的过程其实就是学习Signal机制的过程。 一、信号介绍 1、Signal“历史久远”，在最初的Unix系统上就能看到它“伟岸”的身影。它的引入用来进行User Mode进程间的交互，系统内核也可以利用它通知User M...</description></item><item><title>理解ASCII码</title><link>https://tonybai.com/2005/09/11/learn-ascii/</link><pubDate>Sun, 11 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/11/learn-ascii/</guid><description>最近在写一个串口程序，设备提供商的通讯协议说明中明确了内部通讯方式为“ASCII码”。其实每个和计算机打交道的人都会天天接触ASCII码，只是ASCII码藏在了幕后，我们很少与之正面打交道罢了，这次机会正好让我有机会到幕后去看看ASCII码的“庐山真面目”。 ASCII码众所周知全称为“美国信息交换标准码，American Standard Code for Information Interch...</description></item><item><title>我还健康</title><link>https://tonybai.com/2005/09/08/i-am-still-healthy/</link><pubDate>Thu, 08 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/08/i-am-still-healthy/</guid><description>谈到程序员似乎总是离不开“健康”这个话题，程序员是职业病的高发群体，一般工作2-3年的程序员或多或少的都有“小疾”。每个正规的公司每年都应有至少一次的“福利体检”。今天是我第一次参加公司的福利体检，入司时参加过体检，由于大学刚毕业，自然很自信身体没问题。在公司度过一年的时光后，也道听途说的知道一些说法，比如“某某人工作一年得高血压、脂肪肝”等，这给我这次体检带来了一丝悬念，自己也在担心我现在的身体...</description></item><item><title>APR源代码分析-内存篇</title><link>https://tonybai.com/2005/09/07/apr-memory-management/</link><pubDate>Wed, 07 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/07/apr-memory-management/</guid><description>内存管理一直是让C程序员头痛的问题，作为一个通用接口集，APR当然也提供其自己的内存管理接口–APR Pool。APR Pool作为整个APR的一个基础功能接口，直接影响着APR的设计风格。在这篇Blog中，我们就要和APR Pool来一次“亲密接触”。(还是以Unix平台实现为例) APR Pool源代码的位置在$(APR\_HOME)/memory目录下，本篇blog着重分析unix子目录下的...</description></item><item><title>APR源代码分析-进程篇</title><link>https://tonybai.com/2005/09/01/apr-process-management/</link><pubDate>Thu, 01 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/01/apr-process-management/</guid><description>Apache Server的进程调度一直为人所称道，Apache 2.0推出的APR对进程进行了封装，特别是Apache 2.0的MPM(Multiple Process Management)框架就是以APR封装的进程为基础的，下面就让我们一起来探索一下APR的进程封装吧(以Unix平台为例)。 APR进程封装源代码的位置在$(APR\_HOME)/threadproc目录下，本篇blog着重分...</description></item><item><title>APR源代码分析-设计篇</title><link>https://tonybai.com/2005/08/30/apr-design/</link><pubDate>Tue, 30 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/30/apr-design/</guid><description>作为一个可移植的运行时环境，APR的设计当然是很精妙的，但精妙的同时对使用者有一些限制。 APR附带一个简短的设计文档，文字言简意赅，其中很多的设计思想都值得我们所借鉴，主要从三个方面谈。 1、类型 1\) APR提供并建议用户使用APR自定义的数据类型，好处很多，比如便于代码移植，避免数据间进行不必要的类型转换（如果你不使用APR自定义的数据类型，你在使用某些APR提供的接口时，就需要进行一些参...</description></item><item><title>APR源代码分析-整体篇</title><link>https://tonybai.com/2005/08/25/apr-introduction/</link><pubDate>Thu, 25 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/25/apr-introduction/</guid><description>由于部门所使用的底层库与Apache Server有着“一定的渊源”，所以总有一种想看看Apache的实现的冲动。最近项目收尾，愿望终可实现。 一、何为APR? Apache Server经过这么多年的发展后，将一些通用的运行时接口封装起来提供给大家，这就是Apache Portable Run-time libraries, APR。 二、APR的目录组织 从www.apache.org上下载a...</description></item><item><title>走马观花ANSI C标准-类型表示</title><link>https://tonybai.com/2005/08/19/c-standard-overview-type-representation/</link><pubDate>Fri, 19 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/19/c-standard-overview-type-representation/</guid><description>类型表示(representation of types) 1、一般规则 a) 除了位域(bit field)之外的对象都是由一个或多个相邻序列字节组成的，这些字节的个数(number)、次序(order)和编码方式或是显式说明的，或是实现定义的。 b) 存储在非符号位域(unsigned bit field)和unsigned char类型对象中的值应该用纯二进制表示(pure binary n...</description></item><item><title>分析“参数传递”</title><link>https://tonybai.com/2005/08/12/analysis-on-args-passing/</link><pubDate>Fri, 12 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/12/analysis-on-args-passing/</guid><description>翻看以前的一次jjhou的“高阶C”课程的ppt，突然想到今天指导新员工时，她犯的关于参数传递方面的错误，就想简单分析一下。 一、现象和经验 规则：任何时候你想在函数内修改某个外面的变量值，并影响Caller，你应该传递该变量的地址进去。如果是指针变量，也不例外。 a) 反例1 void test(int a) {  a = a + 10; } int main() {  int cnt = 0;...</description></item><item><title>七夕感悟</title><link>https://tonybai.com/2005/08/11/thought-on-chinese-valentine-day/</link><pubDate>Thu, 11 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/11/thought-on-chinese-valentine-day/</guid><description>今天是牛郎和织女见面的日子，而我的织女因学校放假早已回家去了，剩下我这个孤独的牛郎只能“胡思乱想”，遂有了这篇blog。^\_^ 感悟一：今早早起，翻来覆去睡不着，想起昨晚和一大学哥们的谈话，他曾经和老外交流过，老外的想法是“中国人总是把自己的一辈子都想好，然后在按部就班的去工作生活；老外则是走一步算一步。”，对照自己最近的想法，好像有些不谋而合，这个老外挺有思想。 感悟二：继续翻来覆去，突然想到...</description></item><item><title>C复杂声明解析</title><link>https://tonybai.com/2005/08/09/an-explanation-of-complex-c-declaration/</link><pubDate>Tue, 09 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/09/an-explanation-of-complex-c-declaration/</guid><description>部门最近在进行C培训，由于有一个新员工需要我来指导，所以看了一下培训用的ppt，了解一下新员工的学习进度，恰看到ppt中有关“如何读懂复杂C声明”的章节。遂想起来自己在看《C专家编程》时，这块儿看得并不是很深刻，万一新员工问到我这块儿…，我不能打没有准备之仗，遂恶补之。 复杂的C声明一般被认为不是很好的编程习惯，当然也就不推荐使用。但是在读很多前辈遗留的代码时，又不得不面对这一问题。知道总比不知道...</description></item><item><title>也谈内存对齐</title><link>https://tonybai.com/2005/08/09/also-talk-about-memory-alignment/</link><pubDate>Tue, 09 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/09/also-talk-about-memory-alignment/</guid><description>在最近的项目中，我们涉及到了“内存对齐”技术。对于大部分程序员来说，“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活，太强大，它允许你干预“内存对齐”。如果你想了解更加底层的秘密，“内存对齐”对你就不应该再透明了。 一、内存对齐的原因 大部分的参考资料都是如是说的： 1、平台原因(移...</description></item><item><title>走马观花ANSI C标准-类型</title><link>https://tonybai.com/2005/08/06/c-standard-overview-type/</link><pubDate>Sat, 06 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/06/c-standard-overview-type/</guid><description>类型(type) 1、类型分为：    a) object type — types that fully describe objects    b) function type — types that describe functions    c) uncomplete type — types that describe objects but lack information need...</description></item><item><title>走马观花ANSI C标准-标识符</title><link>https://tonybai.com/2005/08/05/c-standard-overview-identifier/</link><pubDate>Fri, 05 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/05/c-standard-overview-identifier/</guid><description>标识符(identifier) 1、一个标识符可以表示: a) 对象(object) b) 函数(function) c) 结构体(struct)的标签(Tag)\[注1] d) 结构体的成员 e) 联合体(union)或枚举类型(enumeration) f) 类型别名(typedef) g) 标签(label) h) 宏(macro) i) 宏参数(macro parameter) 同一个标识...</description></item><item><title>走马观花ANSI C标准-环境</title><link>https://tonybai.com/2005/08/04/c-standard-overview-envi/</link><pubDate>Thu, 04 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/04/c-standard-overview-envi/</guid><description>标准都是条条框框的，以严谨著称，语言晦涩难懂。这也是大多数人不愿意“接近”它的原因。但它吸引我的最重要原因恰恰是“标准”二字，我觉得我能从这个标准中找到一些“闪光点”，而这些“闪光点”又恰恰是能让我有所提高的地方。 1、翻译环境 C Source文件是以文本形式存在的，将之转变成可执行程序的过程，我们管之叫“翻译”。C语言的翻译不是一蹴而就的，一般需要两遍才能达到目的，第一遍称为“预处理”，预处理...</description></item><item><title>寝室晨起混乱用语</title><link>https://tonybai.com/2005/08/02/morning-get-up-words/</link><pubDate>Tue, 02 Aug 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/08/02/morning-get-up-words/</guid><description>来学习一些地道的日常美语吧。 一清早起来，Alex洗漱完毕，发现Tony仍不见清醒，就大声说： &amp;#34;Tony! We gotta go! It&amp;#39;s burning down!&amp;#34; Tony正在做着美梦，被吵醒，心里自然很烦，遂说： &amp;#34;Don&amp;#39;t bother me!&amp;#34; 如果这时Tony只是贪睡，则可能会这样说： Tony : Please give me five more minutes! Tony...</description></item><item><title>转帖“华为的冬天”</title><link>https://tonybai.com/2005/07/29/foward-the-winter-of-huawei/</link><pubDate>Fri, 29 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/29/foward-the-winter-of-huawei/</guid><description>在网上发现了这篇“华为的冬天”，虽说是几年前的文章，但是读完后仍很有感触，遂转帖之。 公司所有员工是否考虑过，如果有一天，公司销售额下滑、利润下滑甚至会到破产的地步，我们怎么办？我们公司的太平时间太长了，在和平时期升的官太多了，这也许就是我们的灾难。泰坦尼克号也是在一片欢呼声中出的海。而且我相信，这一天一定会到来。面对这样的未来，我们怎样来处理，我们是不是思考过。我们好多员工盲目自豪，盲目乐观，如...</description></item><item><title>走马观花ANSI C标准-介绍</title><link>https://tonybai.com/2005/07/28/introduction-on-c-standard-overview-series/</link><pubDate>Thu, 28 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/28/introduction-on-c-standard-overview-series/</guid><description>大部分的关于C的著作都提到ANSI C Standard，但我相信少有C程序员真正细致阅读过ANSI C标准(当然了对于作C编译器的程序员来说这个标准肯定是烂熟于胸了^\_^),在这个系列的文章中我将和大家一起浏览一下ANSI C标准(C99，以下称标准)，呵呵，当然也不能面面俱到，只是“走马观花”。 1\. 什么是“标准”（这里指编程语言标准） 按照comp.lang.c的C FAQ的意思:“标...</description></item><item><title>朋友的一次社招经历</title><link>https://tonybai.com/2005/07/26/an-interview-experience-of-my-friend/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/26/an-interview-experience-of-my-friend/</guid><description>最近同寝室的一位朋友参加了一次某国内著名通讯公司的社招活动，回来后他简单给我讲了些他的经历，听后觉得有些东西是很值得自己思考的，就列举了出来。 那个公司的社招共1轮笔试，3轮面试（一轮技术面试和2轮综合面试）。笔试自不必说，对于有着多年工作经验的我的同事自然不在话下，技术面世也很顺利通过。在下面2轮的综合面试中，首先是让你自我介绍，我想这也是面试官在发现你问题的阶段。然后两个面试官几乎问着相同的问...</description></item><item><title>人生数字</title><link>https://tonybai.com/2005/07/26/life-number/</link><pubDate>Tue, 26 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/26/life-number/</guid><description>这是一篇从班级校友录上摘录下来的文章，删节一部分，我擅自加了个题目“人生数字”，也不知恰当与否。 23岁的时候，你毕业了，你第一份工作的薪水是1500块，转正以后变成2000块。工资总花得一分钱不剩，盼着发薪的日子。过了一年你跳槽了，工资变成3000块，你穿的衣服开始变贵了，吃的东西开始变好了，不过有一样没有变，工资还是花得一分钱不剩。这时候你谈恋爱了，你为了交女朋友，一个月要向朋友借1000块，...</description></item><item><title>C程序员之“痛”</title><link>https://tonybai.com/2005/07/20/pain-of-c-programmer/</link><pubDate>Wed, 20 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/20/pain-of-c-programmer/</guid><description>内存问题是C程序员永久的话题，也是最能让C程序员心痛的话题。内存bug即隐秘，危害又大，而且往往当你解决了它之后，你会发现你的错误是多么的低级。以我为例，看下面的两个case: CASE1 背景: 配置信息读取 Bug现象: 通过打印语句观察到，在配置读取中间时刻，某一指针突然被置为NULL，出core。 耗时: 6小时 问题所在及分析: 经过6小时的不懈努力，终于发现了这一让我哭笑不得的低级错误...</description></item><item><title>重操旧业</title><link>https://tonybai.com/2005/07/17/resume-my-old-profession/</link><pubDate>Sun, 17 Jul 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/07/17/resume-my-old-profession/</guid><description>2005年7月8日是我入司一周年纪念日，本想写篇Blog纪念一下，可是思维的小溪总是难以汇聚成大江大河，始终觉得无话可说，再加之最近的项目十分紧迫，So我放弃了。这周末公司去海边旅游放松，带着一身的疲惫回来后，坐在电脑前，突然觉得该写些东西了 纵然C语言是我通往软件开发世界的领路人，但曾经(大二)一度认为C已经是明日黄花，之后便不再认真钻研之。入司被分到C组，平时开发的方式和大部分刚入司的新员工一...</description></item><item><title>同步问题讨论-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/06/09/tony-alex-dialog-on-synchronization/</link><pubDate>Thu, 09 Jun 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/06/09/tony-alex-dialog-on-synchronization/</guid><description>Alex正在电脑前面作冥思苦想状，这时Tony悄悄地走到Alex的身后，观察了一会儿… Tony : 看来今天我们要讨论同步问题了。 Alex : （惊奇地回头）。Hey Man , you scared me! 你说的没错，我正在学习同步这一块儿呢，有什么高见不妨说出来吧，我洗耳恭听！ Tony : 不敢不敢。关于进程和线程同步的问题，W. Richard Stevens在他的那本经典的“UNI...</description></item><item><title>从技术到管理的对话-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/06/05/tony-alex-dialog-on-from-tech-to-management/</link><pubDate>Sun, 05 Jun 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/06/05/tony-alex-dialog-on-from-tech-to-management/</guid><description>5月末我参加了一次“从技术到管理的”培训，总体来说还是有所收获的。这段时间我一直想把自己的收获总结出来与大家分享，但是也一直没找到一个很好的形式来表达，我想简单的罗列一些规则和技巧是最最乏味的。在我的“关于Tony与Alex的对话系列的一点说明”一文中曾经将“Tony与Alex对话系列”定位为技术类的系列文章，但是经过这几天的思考，发现它同样可以用做管理知识起码是技术管理知识的介绍，这篇Blog将...</description></item><item><title>CppUnit入门实践-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/05/30/tony-alex-dialog-on-cppunit-introduction/</link><pubDate>Mon, 30 May 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/05/30/tony-alex-dialog-on-cppunit-introduction/</guid><description>Tony : Hi Alex ! you just looks like drowing in your project. what is up? Alex : 我们的项目要求引入单元测试，but i&amp;#39;ve no experience in unit test. Tony : i think cppunit is your best choice. Alex : 是的，我刚从网上把它down了下来...</description></item><item><title>关于Tony与Alex的对话系列的一点说明</title><link>https://tonybai.com/2005/05/24/an-introduction-on-tony-alex-dialog-series/</link><pubDate>Tue, 24 May 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/05/24/an-introduction-on-tony-alex-dialog-series/</guid><description>相信这种形式的小品文大家看到过一些，其中很有名的有“Solmyr和Zero的故事”，如果没记错的话，那个系列文章记录的是两个人Solmyr和Zero之间的技术交流过程，而据说Solmyr和Zero在真实世界中都是有原型的\[注1]。对比起Zero的故事系列，我的文章中语言不免有些干涩，形式过于拘泥，呵呵。不过刚开始么，我会一点点地改进的。我的小品文系列与“Zero的故事系列”最大的不同是它仅是记录...</description></item><item><title>一个C++项目的Makefile编写-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/05/23/tony-alex-dialog-on-write-makefile-for-cpp-project/</link><pubDate>Mon, 23 May 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/05/23/tony-alex-dialog-on-write-makefile-for-cpp-project/</guid><description>Tony : Hey Alex, How are you doing? Alex : 不怎么样。(显得很消沉的样子) Tony : Oh , Really ? What is the matter? Alex : 事情是这样的。最近有一个Unix下的C++项目要求我独自完成，以前都是跟着别人做，现在让自己独立完成，还真是不知道该怎么办，就连一个最简单的项目的Makefile都搞不定。昨晚看了一晚上...</description></item><item><title>一个Xml Parser的TDD开发过程-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/04/30/tony-alex-dialog-on-implement-xmlparser-using-tdd/</link><pubDate>Sat, 30 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/30/tony-alex-dialog-on-implement-xmlparser-using-tdd/</guid><description>Tony : Alex今天我们来做一个xml parser.我们使用的开发工具为Eclipse + JUnit Alex : 好啊，喜欢接受挑战。 Tony : 先看看我们要解析的xml file的样子:                     使用XmlSpy自动生成其DTD如下： &amp;amp;lt;!ATTLIST test   name CDATA #REQUIRED &amp;amp;gt; &amp;amp;lt;!ATTLIS...</description></item><item><title>看完“程序员”2005-04期一些想法</title><link>https://tonybai.com/2005/04/20/thoughts-after-reading-programmer-magazine-200504/</link><pubDate>Wed, 20 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/20/thoughts-after-reading-programmer-magazine-200504/</guid><description>每次看完《程序员》杂志都会有些新的收获，这次看的是《程序员》2005年第4期，顺便把一些阅读过程中产生的想法记录了下来。 \[软件建模，大势所趋] 看完微软、IBM、Borland等公司的最新动态，感觉软件建模是大势所趋，以前虽然也有众多建模工具，但是由工具支持得不好，建模的各个阶段彼此脱节，使用户体验(user experience)很差。随着Microsoft VSTS(Visual Stud...</description></item><item><title>My first knowledge share</title><link>https://tonybai.com/2005/04/19/my-first-knowledge-share/</link><pubDate>Tue, 19 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/19/my-first-knowledge-share/</guid><description>第一次和大家分享知识的时间可以说比我预计的要“晚”，也可以说比我预计的要“早”。解释一下，之所以说“晚”，是因为我自己曾经准备了多个“topic”,但是总是感觉时机不成熟儿没能成行；之所以说“早”，是因为我决心要share的那个topic准备的还不够成熟。 这次share被定在五一前，由于我觉得那个topic准备的还不够成熟，或者说是我能让我满意。也许可能还是我那个追求完美的心理在作祟。有一句谚语...</description></item><item><title>闲说“招式”与“内功”</title><link>https://tonybai.com/2005/04/18/thoughts-about-different-kungfu/</link><pubDate>Mon, 18 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/18/thoughts-about-different-kungfu/</guid><description>昨天下班时，偶然间听到同事说“同样使用太祖长拳，为什么乔峰使出来的威力就那么大”，起初，只当作一句笑话，并未多想。今天早上在班车上的时候，突然想到了这件事，深思了一会儿，突然觉得其中还是蕴含着些许道理的。 看过“天龙八部”这部电视剧或同名武侠小说的人都知道，乔峰的内功是极其精湛的，在书中除了那个“无名老僧”之外，能和乔峰内功媲美的估计是凤毛麟角了。之所以乔峰使用的“太祖长拳”威力无穷就是得益于其精...</description></item><item><title>微软又推出新语言了</title><link>https://tonybai.com/2005/04/15/microsoft-publish-new-language/</link><pubDate>Fri, 15 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/15/microsoft-publish-new-language/</guid><description>微软又推出新语言了！最近在csdn上围绕着C-Omega和G#的话题有很多。每当我们看到一门新语言诞生时，特别是诞生在微软这样的软件帝国中，很多人都会冒出一身冷汗并大喊“Oh,My God! How fast the technology is going, I can not catch it up!” after that they still have to learn these new ...</description></item><item><title>又一个“孔乙己”吗</title><link>https://tonybai.com/2005/04/08/another-kongyiji/</link><pubDate>Fri, 08 Apr 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/04/08/another-kongyiji/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>动态代理再思考</title><link>https://tonybai.com/2005/03/25/thoughts-on-dynamic-proxy/</link><pubDate>Fri, 25 Mar 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/03/25/thoughts-on-dynamic-proxy/</guid><description>看了透明发表在《程序员》杂志2005年第一期上的“动态代理的前世今生”，让我不仅了解了“动态代理”这门技术，更让我知道了一段Java技术的发展史。带着对Rickard Oberg的钦佩之情，怀着对Rod Johnson敬仰之义我踏上了动态代理再思考之路。 **\[****关键词\]** 代理(proxy) 基础设施(infrastructure) 业务组件(business component) ...</description></item><item><title>Boost_1_32_0版源代码编译</title><link>https://tonybai.com/2005/01/28/build-boost-1-32-0/</link><pubDate>Fri, 28 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/28/build-boost-1-32-0/</guid><description>著名的C++准标准库boost在2004年末发布了1.32.0版本，作为C++的忠实Fans怎能“袖手旁观”，趁闲暇时download it and build it。\[注\]：由于没有公司Unix服务器的管理员权限，所以只能在自己的Windows平台上编译了。 1、前提 a) 下载Boost\_1\_32\_0源码包(http://sourceforge.net/project/showfil...</description></item><item><title>关注，AOP</title><link>https://tonybai.com/2005/01/28/focus-aop/</link><pubDate>Fri, 28 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/28/focus-aop/</guid><description>AOP的核心概念是关注点，我开始关注AOP。 一、Why AOP? a) AOP一般观点 一般在开发系统时，我们可以大致的把系统的需求分类为核心模块级需求和系统级需求。很多系统级需求一般来说是相互独立的，但它们一般都会横切许多核心级模块。以一个电信领域的短信网关系统为例，系统的核心级需求是短信的收发，话单处理等，而其系统级的需求包括日志，校验以及性能问题等。像日志这种系统级的需求就横切短信收发、话...</description></item><item><title>Hello，AOP</title><link>https://tonybai.com/2005/01/22/hello-aop/</link><pubDate>Sat, 22 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/22/hello-aop/</guid><description>论坛上有人评价Java在过去的2004有两大值得称赞的技术发展，一个是Java在IOC模式上的成熟应用，再就是Java的AOP框架。 一、好消息 2005年一月份传来好消息，AspectJ与AspectWerkz合力打造AOP框架，两个开发团队将合力开发一个全新的面向方面编程（Aspect-Oriented Programming，AOP）平台，在其中融合双方的长处和经验。这两家都是业界重要的开源...</description></item><item><title>Build ArgoUML and AndroMDA</title><link>https://tonybai.com/2005/01/19/build-argouml-and-andromda/</link><pubDate>Wed, 19 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/19/build-argouml-and-andromda/</guid><description>由于Dominoo近期策略的改变，所以我开始关注和研究UML和MDA领域较为出名的开源项目。我准备先拿ArgoUML和AndroMDA“开刀”。 \* ArgoUML 简介：ArgoUML is a modelling tool that helps you do your design using UML and it is the winner of 13th annual productiv...</description></item><item><title>Dominoo项目日记(四)</title><link>https://tonybai.com/2005/01/17/dominoo-notes-part4/</link><pubDate>Mon, 17 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/17/dominoo-notes-part4/</guid><description>大家都是对软件充满无限激情的人，大家都致力于能开发出能被大家所广泛接受和使用的软件。可是激情归激情，我们还得脚踏实地。项目遇到了障碍，我们需要改变思路。 从04年的12月末到现在，大家好像都不约而同地沉寂了下来，好像大家都累了或者都在反思着某些事情，大家好像都有一个感觉就是我们对我们所要做的并不是那么的熟悉和了解。我们并不能详细而又清晰的勾勒出我们要做的东西的轮廓。想象一下一个没有吃过“葱烧海参”...</description></item><item><title>深入Java底层</title><link>https://tonybai.com/2005/01/16/deep_into_java/</link><pubDate>Sun, 16 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/16/deep_into_java/</guid><description>在一个朋友的书架上发现王森著的《Java深度历险》一书，看了书的前言了解该书是关于Java底层技术内幕的。怀着好奇心浏览了一下，谈不上有太多收获，但也记下了一些自认为有益的两点。 \* Java xxx 我们在命令行下敲入：“java xxx”后会发生什么呢？ 流程如下： 1.找到JRE； 2.找到JVM.dll； 3.启动JVM，并进行初始化； 4.产生Bootstrap Loader； 5.载...</description></item><item><title>饮水机的加热保护</title><link>https://tonybai.com/2005/01/16/heating-protection-of-water-dispenser/</link><pubDate>Sun, 16 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/16/heating-protection-of-water-dispenser/</guid><description>小小饮水机，里面也有值得思考的东西。 \* 起因 昨晚回到寝室感到口渴，顺手按下了门旁饮水机的加热开关，到洗漱间洗了把脸，拿着水杯出来接水，看到加热灯已经变成绿色（我们的饮水机的加热指示灯在加热过程中是红色的，加热结束后会变成绿色，我想大多数饮水机都是这样的）我就按下热水出水开关接热水，可是却不见热水流出，这时我才注意到原来水桶里已经没水了。当时想的是这样无水加热会不会烧坏饮水机，恰好旁边有一装满...</description></item><item><title>Mix-in in Ruby</title><link>https://tonybai.com/2005/01/12/mix-in-in-ruby/</link><pubDate>Wed, 12 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/12/mix-in-in-ruby/</guid><description>在Matz的一篇PPT“Object-Oriented scripting in Ruby”中，Matz提到Ruby提供一种语言机制Mix-in，在其PPT中如是描述的“No Multiple Inheritance，but Mix-in”、“Mix-in is as strong as multiple inheritance，but simple”。 \* “module” in Ruby 在...</description></item><item><title>开放与封闭</title><link>https://tonybai.com/2005/01/09/open-and-close/</link><pubDate>Sun, 09 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/09/open-and-close/</guid><description>敏捷设计最基本原则：“开放封闭原则（OCP，Open-Close Principle）” \* 回顾SRP 在开始谈OCP之前，我们还是简单回顾一下Bob大叔在其书中所论述的敏捷设计的第一个原则“单一职责原则（SRP，Single Responsibility Principle）”。 Bob大叔在其书中将职责理解为“变化的原因”。一般当需求变化时，该变化就会反映为类的职责的变化。按书中所述“如果...</description></item><item><title>由一段话想到的</title><link>https://tonybai.com/2005/01/09/thoughts-by-some-words/</link><pubDate>Sun, 09 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/09/thoughts-by-some-words/</guid><description>在Java视线论坛的Python/Zope版，浏览了管理员robbin发的题目为“我眼中的Python”的帖子，感触颇深。 Robbin如是说：“做为一种严谨的，编译式的，面向对象语言，Java总是给我一种须正襟危坐，须一板一眼的按照OOAD的规则编程，才敢在键盘上敲下字符的感觉。即使编写一个最小规模的程序，我也不能够接受把所有的code塞到main里面的做法。Java似乎以不怒自威的威严使我不敢...</description></item><item><title>另一种“所见即所得”</title><link>https://tonybai.com/2005/01/08/another_wysiwyg/</link><pubDate>Sat, 08 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/08/another_wysiwyg/</guid><description>最近一段时间，看了很多前沿性的资料，发觉在头脑中形成了很多“思维”的孤岛，这些孤岛很无序，我甚至不知道它们是什么时候的出现的，好像一夜间都浮出了“海平面”，我很难将它们连接起来。本篇blog中我想说的也是我一个思维孤岛的展现。 “What you see is what you get”-WYSIWYG 提到“所见即所得”我们就不能不提到它的发明人Charles Simonyi。 20世纪70年代...</description></item><item><title>拥抱敏捷</title><link>https://tonybai.com/2005/01/07/embrace-agile/</link><pubDate>Fri, 07 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/07/embrace-agile/</guid><description>虽说Bob大叔（Robert C.Martin）的《敏捷软件开发–原则、模式与实践》一书在china mainland出版已经有一年之久了，但是我真正专下心看这本书还是在最近。也许敏捷开发思想和我最初脑海中的软件开发思想有些背道而驰，但是现在我正在准备拥抱它。 \* 重温经典的“敏捷软件开发宣言” 宣言部分摘录如下： 个体与交互         胜过     过程和工具 可以工作的软件     胜...</description></item><item><title>Oolong and Gnoloo</title><link>https://tonybai.com/2005/01/06/oolong-and-gnoloo/</link><pubDate>Thu, 06 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/06/oolong-and-gnoloo/</guid><description>看到这两个单词，我的第一感觉就是怪。第一个单词读起来像是“乌龙”的音译，查查金山词霸，哇！真是“乌龙茶”的意思，而第二个单词我查了半天都找不到，我想可能是作者自创的词吧。 What is Oolong and Gnoloo? Oolong是一种为Java虚拟机定制的汇编语言，其作者为Joshua Engel，Gnoloo则是将.class文件转成Onlong语言的一种反汇编工具。引用Joshua ...</description></item><item><title>结识Ruby</title><link>https://tonybai.com/2005/01/05/learn-ruby/</link><pubDate>Wed, 05 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/05/learn-ruby/</guid><description>Ruby是一个很好听的名字，给我的感觉就是“可爱的”。但它不是什么宠物之类的东西，它是一门语言，一门面向对象的脚本语言。虽然它的作者是日本人，但是摒弃民族偏见，我们还是应该以欣赏的和科学的眼光来看待它。 一、Install Ruby 我们以最新发布的ruby-1.8.2为例： \* unix platform 到http://www.ruby-lang.org/en/ 下载文件ruby-1.8.2...</description></item><item><title>写在岁末</title><link>https://tonybai.com/2005/01/01/an-essay-at-the-end-of-year/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/01/01/an-essay-at-the-end-of-year/</guid><description>在我写下这篇blog的时候，新年的钟声刚刚敲响，不知道此时我该做些什么，也许应该祈祷世界和平或是祈祷深受南亚东南亚海啸袭击的人能早日从悲伤中走出来，重建自己的家园。 在岁末的最后一天总结自己这一年的生活，我想用“生活”这个词还是能涵盖一切的。生活是包罗万象的，包括你的学习，你的工作，你的爱情，你的家庭。回顾我的已经过去的2004，有过考研落榜的剧痛，也有过重获爱情的甜蜜，品尝过工作上的得意和失落等...</description></item><item><title>再谈Mock Object</title><link>https://tonybai.com/2004/12/28/talk-about-mock-object-again/</link><pubDate>Tue, 28 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/28/talk-about-mock-object-again/</guid><description>发现静寂的夜能让我的思维加快。 用Mock Object进行Unit Test已经一周多了，发现以前对Mock Object还是很肤浅，即使是现在我也不敢说我对Mock Object的理解就一定正确。 这篇blog假设你已经熟悉JUnit、了解Mock和TDD。 如果你是直接开始使用JMock 、Easy Mock或者是MockMaker等Mock Object框架的，我建议你简单了解一下Mock...</description></item><item><title>写在工作时</title><link>https://tonybai.com/2004/12/27/an-essay-when-working/</link><pubDate>Mon, 27 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/27/an-essay-when-working/</guid><description>不知怎么的，我总是喜欢在工作的时候来完成我的blog，这也就是我这篇blog的题目来由。 享受完美妙的平安夜和快乐的圣诞节，又开始我新一天的工作。 北国寒冬，从寝室出来，道路上几乎不见行人，身上的热气不断逃离，寒气扑来，打了几个寒颤。心里想着今天的工作，脚下步伐却在不知不觉中加快。 来到温暖的办公区，打开outlook，看到一份来自远方好朋友的邮件，邮件中如是说“你的blog也不更新。看到梦想风暴...</description></item><item><title>JDK5.0源代码初览</title><link>https://tonybai.com/2004/12/15/glimpse-jdk5-source/</link><pubDate>Wed, 15 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/15/glimpse-jdk5-source/</guid><description>早就听说Sun开放了JDK的源代码，不过一直认为那么多源代码，根本没时间看，所以一直也没去下载。随着对Java了解的深入，览一览神秘的Java源代码的渴望是“与日俱增”，今天的工作不忙就去down了一份jdk5.0的源代码。 我是使用SCSL许可证下载的，解压后大约有190多MB。我最初的打算就是想看看java.lang包下一些类的实现。我吭哧吭哧的找了半天才在\\j2se\\src\\share...</description></item><item><title>认识Mock Object</title><link>https://tonybai.com/2004/12/10/learn-mock-object/</link><pubDate>Fri, 10 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/10/learn-mock-object/</guid><description>上周六我们Dominoo group讨论（以下称讨论）TDD和JUnit的时候，提到过Mock Object，那次可能是我第一次听到Mock Object这个概念，程序员对新鲜的的东西都是敏感的，所以今天晚上花了一些时间了解了一下Mock Object的概念，做了一些简单实践。 术语 Tested Object – 被测对象 Mock – 假的 or 仿制的对象 \* What is Mock O...</description></item><item><title>学习重构</title><link>https://tonybai.com/2004/12/09/learn-refactoring/</link><pubDate>Thu, 09 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/09/learn-refactoring/</guid><description>DMC采用驱动开发的方式，这就意味着重构“Refactoring”是我要学习的对象。早在大三的时候就已经把那本经典的“Refactoring Improving the Design of Existing Code”英文版买到手了，但就是在买回来后的第n天，它就被“打入冷宫”了。 \* What Is Refactoring? Refactoring is the art of safely i...</description></item><item><title>如何编写类中的setter和getter</title><link>https://tonybai.com/2004/12/08/how-implement-setter-and-getter/</link><pubDate>Wed, 08 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/08/how-implement-setter-and-getter/</guid><description>在effective java中有一item叫”保护性拷贝”，今天又看了许多部门里的代码，发现很多代码都与该item“相违”，晚上和toidi\_xu讨论这个问题有些收获。 Considering the following code: public class Box {         private int length;     public void setLength(int leng...</description></item><item><title>Dominoo项目日记(三)</title><link>https://tonybai.com/2004/12/06/dominoo-notes-part3/</link><pubDate>Mon, 06 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/06/dominoo-notes-part3/</guid><description>上周的主要工作是和toidi\_xu共同完成“把xml文件解析到java内存对象”的工作，但是一周下来发现我们的工作完成的并不好。 这周的前3天我一直在学习effective java，由于有java基础所以看起来也不是很费劲，自己也写了些小例子，之后由于周末要讨论tdd和junit所以我又花了近一天的时间来熟悉相关的资料。真正开始进入开发阶段是在周五的时候，我研究了一下dreamhead已经写的...</description></item><item><title>Effective Java阅读笔记-item异常</title><link>https://tonybai.com/2004/12/03/effective-java-notes-item-exception/</link><pubDate>Fri, 03 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/03/effective-java-notes-item-exception/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 39、只针对不正常的条件才使用异常 异常只应该被用于不正常的条件，它们永远不应该被用于正常的控制流。 40、对于可恢复的（recoverable conditions）使用被检查异常（checked exceptions）,对于程序错误(error)使...</description></item><item><title>Advanced CVS</title><link>https://tonybai.com/2004/12/02/advanced-cvs/</link><pubDate>Thu, 02 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/02/advanced-cvs/</guid><description>做了几个月的实际项目，感觉还是只用到CVS的皮毛，CVS中的高级功能比如create tag、create branch和merge等都未使用过。Dreamhead发过来一本”pragmatic version control-using CVS”，顺便do some practice and research on the advanced functions of CVS。 1、Tags、Br...</description></item><item><title>Effective Java阅读笔记-item18</title><link>https://tonybai.com/2004/11/30/effective-java-notes-item18/</link><pubDate>Tue, 30 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/30/effective-java-notes-item18/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 18、优先考虑静态成员类（static member class） 在C++的应用中我们很少使用嵌套类，我只在MFC和COM组件中遇到过这些，而且这些嵌套类被隐藏在应用背后，一般的应用中则很少使用。而在Java中嵌套类的应用还是要比在C++中多些。Ja...</description></item><item><title>Effective Java阅读笔记-item24、25、34</title><link>https://tonybai.com/2004/11/30/effective-java-notes-item24-item25-item34/</link><pubDate>Tue, 30 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/30/effective-java-notes-item24-item25-item34/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 24、需要时使用保护性拷贝 在学习这个item之前我们看看下面这段“危险的”代码（改编自书中例子）： Considering the following code: //Period.java import java.util.Date; public...</description></item><item><title>Effective Java阅读笔记-item13、14</title><link>https://tonybai.com/2004/11/29/effective-java-notes-item13-and-item14/</link><pubDate>Mon, 29 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/29/effective-java-notes-item13-and-item14/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 13、支持不变性（immutable） 我感觉我们只需记住书中列出的几条规则： 1\. 不要提供任何&amp;#34;可修改对象內容&amp;#34;的方法 2\. 保证没有可被子类override的方法 3\. 令所有field为 final 4\. 令所有field都是 priv...</description></item><item><title>Effective Java阅读笔记-item16</title><link>https://tonybai.com/2004/11/29/effective-java-notes-item16/</link><pubDate>Mon, 29 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/29/effective-java-notes-item16/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 16、接口优于抽象类 作者有一个观点就是: \* 接口是定义mixin(混合类型)的理想选择。 mixin的定义：一个类除了实现它的基本类型”primitive type”之外，还可以实现这个mixin类型，以表明它提供可供选择的行为，也就是说它允许将...</description></item><item><title>Dominoo项目日记(二)</title><link>https://tonybai.com/2004/11/27/dominoo-notes-part2/</link><pubDate>Sat, 27 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/27/dominoo-notes-part2/</guid><description>Dominoo项目从10月份启动到现在已有近2月，我们做了些工作，但是项目的进度缓慢也是我们几个人有目共睹的。针对前一阶段的工作上的不利局面，我们几个做了一次讨论。 最近两周的工作使我们的Dominoo有了很大进展，经过大家的讨论我们在一些技术问题上达成了共识。dreamhead建议我和toidi\_xu结对编程，并将dmc的XML解析的工作交给我们来做（毕竟我在java编程上还属于菜鸟级），而d...</description></item><item><title>Effective Java阅读笔记-item12</title><link>https://tonybai.com/2004/11/27/effective-java-notes-item12/</link><pubDate>Sat, 27 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/27/effective-java-notes-item12/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 从item12~item18讨论的都是单个类或接口的设计技术。 12、使类和成员的可访问能力最小化 作者提出“你应尽可能的是每一个类或成员不被外界访问” \* 顶层类或接口的访问级别   public — 意味着你的类是提供给客户API的一部分，你有义...</description></item><item><title>Effective Java阅读笔记-item4、6</title><link>https://tonybai.com/2004/11/27/effective-java-notes-item4-and-item6/</link><pubDate>Sat, 27 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/27/effective-java-notes-item4-and-item6/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 4、避免创建重复对象 我们知道构造函数每次被调用的时候都会创建一个新的对象，在有些情况下这样会很浪费。那我们能不能重复使用一个对象（这个对象应该是immutable的），而不是在每次需要的时候都要创建一个新的对象呢？这就是这个item4所要讲述的事情。...</description></item><item><title>Effective Java阅读笔记-item1</title><link>https://tonybai.com/2004/11/26/effective-java-notes-item1/</link><pubDate>Fri, 26 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/26/effective-java-notes-item1/</guid><description>Dreamhead把他用大把银子买来的“Effective Java”借给我阅读，我真是很感动亚，我只能用行动来感谢Dreamhead了。^\_^ 1、使用静态工厂方法代替构造函数 静态工厂方法优点： 可命名性：（而构造函数的名字必须和类名一致），使class使用起来较容易，构造函数只是根据不同的函数signature来区分，对使用者来说容易发生调用错误。 内部cache特性：在静态工厂内部可采用...</description></item><item><title>Everything is an object</title><link>https://tonybai.com/2004/11/22/everything-is-an-object/</link><pubDate>Mon, 22 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/22/everything-is-an-object/</guid><description>读过《Thinking in Java》中著名的一章“Everything is an object”，而且不止一遍,不过经过今天和Dreamhead的探讨，才发现我对Java中的“Everything is an object”的理解还是那么的不到位。 我和Dreamhead谈到我在研究Java 5.0时遇到的问题： String\[\] s = {“Hello” ,              ...</description></item><item><title>Java 5.0新特性研究(二)</title><link>https://tonybai.com/2004/11/22/java5-research-part2/</link><pubDate>Mon, 22 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/22/java5-research-part2/</guid><description>今天在“Java技术论坛”上看到了“J2se5.0新增小功能”这个帖子，大家的集思广益让我又有了一些收获。 1、再谈java引入的格式化输入和输出 在“Java 5.0新特性研究(一)”中，当时只是看了一些简单的例子，自己也没有深入看看jdk5.0的doc。今天看到论坛上的一些例子还是把我吸引了，自己又翻了翻昨天刚下的jdk5.0的doc，觉得java引入的新的格式化输入输出还是蛮好的^\_^。 ...</description></item><item><title>Java 5.0新特性研究(一)</title><link>https://tonybai.com/2004/11/19/java5-research-part1/</link><pubDate>Fri, 19 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/19/java5-research-part1/</guid><description>DreamHead计划使用&amp;#34;Java 5.0 Tiger&amp;#34;来开发我们的Dominoo，理由是：2-3年后&amp;#34;Tiger&amp;#34; will be mature。 我们对刚刚发布不久的&amp;#34;Tiger&amp;#34;了解的不多，晚上我们几个group member坐了下来，听DreamHead讲解&amp;#34;Tiger&amp;#34;的新特性。回到寝室自己做了些实验，有了些体会。 通过对&amp;#34;Tiger&amp;#34;的讨论和研究，得知Sun推出&amp;#34;Tiger&amp;#34;目的就是...</description></item><item><title>CVS Primer</title><link>https://tonybai.com/2004/11/17/cvs-primer/</link><pubDate>Wed, 17 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/17/cvs-primer/</guid><description>CVS Repository?  –&amp;gt; checkout(co)  –&amp;gt; commit(ci)  –&amp;gt; update(up) Repository vs Modules?    –Repository is the modules’s container    –Module is often a project Repository has four main parts :    –main ...</description></item><item><title>C++ Advanced Training(二)</title><link>https://tonybai.com/2004/11/12/cpp-advanced-training-part2/</link><pubDate>Fri, 12 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/12/cpp-advanced-training-part2/</guid><description>今天侯老师花了2个小节的时间把昨天的“尾巴”讲完，然后就进入今天的正题OOP，注意是OOP，not OOD。 听了侯老师的两天课，感觉他的讲课风格是： \- 关注细节 \- 以讲”故事”的方式来讲解抽象的技术。 我将继续接上一节的内容谈C++。 1、Increment operator（++） ++ operator分为 ++A 和A++两种，实际在实现中A++调用了++A。我们举个例子 clas...</description></item><item><title>C++ Advanced Training(一)</title><link>https://tonybai.com/2004/11/09/cpp-advanced-training-part1/</link><pubDate>Tue, 09 Nov 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/11/09/cpp-advanced-training-part1/</guid><description>作为一名刚来公司不久的新员工，有幸参加由侯捷老师做的高级C++培训，真的是很高兴。从接触Programming以来，C++一直是自己的主打语言(虽然最近正在研究Java^\_^)。一天的培训下来，收获还是蛮大的，侯老师的细致入微的讲解给我留下了很深的印象。将我所得到的东西与大家分享同时对我来说又是个复习的过程，不失为一箭双雕之举^\_^。 这次的高级C++培训分3个部分，分别为C++&amp;amp;ADT（一个...</description></item><item><title>Dominoo项目日记(一)</title><link>https://tonybai.com/2004/10/10/dominoo-notes-part1/</link><pubDate>Sun, 10 Oct 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/10/10/dominoo-notes-part1/</guid><description>国庆节前夕见到了Darwin\_yuan,他给我们带来了Dominoo。 Dominoo是什么？ 在Darwin\_yuan的blog中是这样描述的:Dominoo means &amp;#34;Design Of Model IN Object-Oriented.&amp;#34;,从字面的意思来理解Dominoo就是“用面向对象的方法进行模型设计”。 Dominoo的主要意图是什么？ Dominoo的提出的大背景是UML、M...</description></item><item><title>Java基础</title><link>https://tonybai.com/2004/10/10/java-basics/</link><pubDate>Sun, 10 Oct 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/10/10/java-basics/</guid><description>.jdk的安装 .环境变量的配置 .Eclipse IDE的安装和配置 .Java编码规范 1、jdk的安装 Java &amp;#34;Java&amp;#34;)号称跨平台，实际上其本身就是个平台，我们要使用Java开发应用程序，我们首先就要安装Java平台，所谓Java平台就是指Java的运行环境（JRE）和相应的SDK。 这里我们选择j2sdk1.4.2来作为我们的Java平台，安装过程只需一路next即可。安装结束后，...</description></item><item><title>连接Oracle</title><link>https://tonybai.com/2004/09/16/connect-oracle/</link><pubDate>Thu, 16 Sep 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/09/16/connect-oracle/</guid><description>Oracle是个庞大又复杂的数据库系统，就连连接Oracle的程序也不简单，在leader的推荐下我选择了toad，以前从来没听说过，后来到网上查了查才发现它是那么的出名。开始以为装好toad，配置一下就可以访问到数据库了，可是事与愿违，遭遇到挫折后，才知道还要装Oracle的客户端程序。我们的内网上有很多Oracle安装程序，从一个ftp上down下来一个oracle8.1.7的安装程序，按提示...</description></item><item><title>本不是第一篇的第一篇</title><link>https://tonybai.com/2004/09/15/the-first-blog/</link><pubDate>Wed, 15 Sep 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/09/15/the-first-blog/</guid><description>刚入司时，给我们做技术培训的老员工强烈向我们推荐blog这个新兴（起码对我来说是新的^\_^）的咚咚，当时也想写就申请了一个，可是不知一天都忙些什么了，到今天才写了这第一篇，要说今天为什么要写，两个字“心烦”，本来我的第一篇blog在我的头脑中早已构思多次了，内容也换了多次，可是都没能实现，这篇blog是在丝毫没想的前提下动手写的。我觉得这样也不错，现在我的感觉就是想写就写，不用考虑太多，呵呵。 ...</description></item><item><title>404 - 页面未找到</title><link>https://tonybai.com/404/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/404/</guid><description>&lt;p&gt;抱歉，您访问的页面不存在或已被移动。&lt;/p&gt;
&lt;p&gt;请尝试使用搜索功能查找您需要的内容，或返回&lt;a href="https://tonybai.com/"&gt;首页&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Google Go语言编码风格规范：决定篇</title><link>https://tonybai.com/google-go-style/google-go-style-decisions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/google-go-style/google-go-style-decisions/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/google-go-style/google-go-style-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style/google-go-style-decisions"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/google-go-style/google-go-style-decisions"&gt;https://tonybai.com/google-go-style/google-go-style-decisions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本页面是2022年11月中旬Google发布的&lt;a href="https://google.github.io/styleguide/go/index"&gt;Go语言编码风格规范&lt;/a&gt;系列文档的&lt;a href="https://google.github.io/styleguide/go/decisions"&gt;决定篇&lt;/a&gt;的中译版。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style"&gt;概述&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;指南&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-decisions"&gt;决定&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-best-practices"&gt;最佳实践&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注意：这是介绍&lt;a href="https://tonybai.com/google-go-style"&gt;Google Go编码风格的系列文档&lt;/a&gt;的一部分。本文档是规范性的，但不具备权威性。本篇级别要低于&lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;指南篇&lt;/a&gt;，更多信息请参见&lt;a href="https://tonybai.com/google-go-style"&gt;概述篇&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Google Go语言编码风格规范：指南篇</title><link>https://tonybai.com/google-go-style/google-go-style-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/google-go-style/google-go-style-guide/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/google-go-style/google-go-style-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;https://tonybai.com/google-go-style/google-go-style-guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本页面是2022年11月中旬Google发布的&lt;a href="https://google.github.io/styleguide/go/index"&gt;Go语言编码风格规范&lt;/a&gt;系列文档的&lt;a href="https://google.github.io/styleguide/go/guide"&gt;指南文档&lt;/a&gt;的中译版。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style"&gt;概述&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;指南&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-decisions"&gt;决定&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-best-practices"&gt;最佳实践&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注意：这是介绍Google Go编码风格的系列文档的一部分。本文档具备权威性和规范性。更多信息请参见&lt;a href="https://tonybai.com/google-go-style"&gt;概述&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Google Go语言编码风格规范：最佳实践篇</title><link>https://tonybai.com/google-go-style/google-go-style-best-practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/google-go-style/google-go-style-best-practices/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/google-go-style/google-go-style-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style/google-go-style-best-practices"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/google-go-style/google-go-style-best-practices"&gt;https://tonybai.com/google-go-style/google-go-style-best-practices&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本页面是2022年11月中旬Google发布的&lt;a href="https://google.github.io/styleguide/go/index"&gt;Go语言编码风格规范&lt;/a&gt;系列文档的&lt;a href="https://google.github.io/styleguide/go/best-practices"&gt;最佳指南篇&lt;/a&gt;的中译版。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/google-go-style"&gt;概述&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;指南&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-decisions"&gt;决定&lt;/a&gt; | &lt;a href="https://tonybai.com/google-go-style/google-go-style-best-practices"&gt;最佳实践&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注意：这是介绍&lt;a href="https://tonybai.com/google-go-style"&gt;Google Go编码风格的系列文档&lt;/a&gt;的一部分。本文档既不是规范性的，也不是权威性的。本文档是&lt;a href="https://tonybai.com/google-go-style/google-go-style-guide"&gt;指南篇&lt;/a&gt;的辅助文档，更多信息请参见&lt;a href="https://tonybai.com/google-go-style"&gt;概述篇&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Go语言第一课FAQ</title><link>https://tonybai.com/go-course-faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/go-course-faq/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/go-first-course/faq.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/go-course-faq"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/go-course-faq"&gt;https://tonybai.com/go-course-faq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gk.link/a/10AVZ"&gt;《Go语言第一课》&lt;/a&gt;专栏正式上线后收到了很多读者的留言反馈，很多留言中的问题显然都是大家认真思考过提出的，在专栏后台我也尽可能地做出认真细致的回答。这些问题以及我的回答也算是我和专栏学习者基于专栏的二次创作，于是我有了将这些问题作为FAQ集中记录起来的想法，这就是这篇文章的由来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本页面内容将持续更新&lt;/strong&gt;！请持续关注&lt;a href="https://tonybai.com/go-course-faq"&gt;本FAQ永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/go-course-faq"&gt;https://tonybai.com/go-course-faq&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="一-本人相关"&gt;一. 本人相关&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;关于音频中带有地方特色的口音^_^&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这也是我第一次录带有音频的专栏，虽然音频老师给与了多次耐心的讲解，但毕竟不是专业的，在音频技巧方面还有提高空间。&lt;/p&gt;</description></item><item><title>Go语言进阶课FAQ</title><link>https://tonybai.com/go-advanced-course-faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/go-advanced-course-faq/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/course-card/go-advanced-course-4.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/go-advanced-course-faq"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/go-advanced-course-faq"&gt;https://tonybai.com/go-advanced-course-faq&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gk.link/a/12yGY"&gt;《TonyBai · Go 语言进阶课》&lt;/a&gt;专栏于2025年5月12日正式上线了！和&lt;a href="http://gk.link/a/10AVZ"&gt;《Go语言第一课》&lt;/a&gt;专栏一样，我也在这里建立一个页面，用于汇总读者的常见的精彩提问以及我的回答，作为我和专栏学习者基于专栏的二次创作，供广大的专栏学习者阅读参考。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本页面内容将持续更新&lt;/strong&gt;！请关注&lt;a href="https://tonybai.com/go-advanced-course-faq"&gt;本FAQ永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/go-advanced-course-faq"&gt;https://tonybai.com/go-advanced-course-faq&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="一-本人相关"&gt;一. 本人相关&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;新的进阶课程是AI朗读？不是您的声音了吗？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2022年ChatGPT大模型应用上线以来，文字转音频日益成熟，如今极客时间专栏已经全面采用AI机器人朗读模式，我的专栏并非个例。&lt;/p&gt;</description></item><item><title>关于我</title><link>https://tonybai.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/about/</guid><description>&lt;p&gt;Go程序员，C程序员，技术架构师，技术总监，技术讲师/培训师，技术撰稿人。先后供职于国内某大型软件公司和某创业型数据与基础设施服务公司。喜技术，爱钻研；热爱开源，曾先后贡献了&lt;a href="https://github.com/bigwhite/lcut"&gt;lcut&lt;/a&gt;、&lt;a href="https://github.com/bigwhite/cbehave"&gt;cbehave&lt;/a&gt;、&lt;a href="https://github.com/bigwhite/buildc"&gt;buildc&lt;/a&gt;多个工具框架；喜好写博客，写博十余年，仍孜孜不倦。&lt;/p&gt;</description></item><item><title>文章列表</title><link>https://tonybai.com/articles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/articles/</guid><description>&lt;h3 id="二零二六"&gt;二零二六&lt;/h3&gt;
&lt;h4 id="202606"&gt;2026.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/25/go-1-27-uuid-newv7-always-generates-uuid-with-7000-on-browsers/"&gt;浏览器里的“安全阴谋”：为什么 Go 1.27 的 UUIDv7 会离奇丧失随机性？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/24/go-1-27-foresight/"&gt;Go 1.27新特性前瞻：泛型方法落地，标准库内建 UUID&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/23/ai-divide-developers-into-lazy-juniors-and-the-burnedout-seniors/"&gt;AI 正在撕裂研发团队：狂欢的“托管派”与心碎的“守夜人”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/22/why-is-go-dominating-in-cncf-landscape/"&gt;屠榜 CNCF！为什么在云原生时代，Go 语言能把 Java、C++ 和 Rust 堵在门外？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/20/steve-yegge-the-flat-curve-society/"&gt;大模型正在见顶！传奇架构师：欢迎来到“平坦曲线时代”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/18/why-choose-go-over-rust-today-in-ai-age/"&gt;在 AI 编码时代，为什么我们依然选择 Go 而不是 Rust？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/17/deepmind-automation-agent-harness-ai-self-coding/"&gt;DeepMind 亮出王炸：别再手写 Agent Harness 了，AI 已经学会自己写了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/16/why-if-it-compiles-it-runs-rust-engineering-aesthetics-and-logic/"&gt;为什么说“编译通过，就能运行”？Google 专家 Alice 揭秘 Rust 的工程美学与底层逻辑&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/15/google-ai-in-sre/"&gt;谷歌 SRE 重磅白皮书：当 AI 自动写出 10 倍代码，谁来阻止系统崩溃？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/14/stop-saving-tokens-silicon-valley-consensus-waste-compute-shortcut/"&gt;别再省 Token 了！硅谷新共识：浪费算力才是唯一捷径&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/13/linux-maintainer-greg-kh-switched-to-rust-after-35-years-of-c/"&gt;Linux 内核顶级维护者：写了 35 年 C，是 Rust 让我重新找回了编程的乐趣&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/12/zig-father-refuses-funding-bans-ai-why-no-1-0-in-a-decade/"&gt;拒领上亿、封杀 AI：Zig 之父为什么 10 年不发 1.0？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/11/writing-idiomatic-go-make-you-better/"&gt;写地道的 Go 语言，是否能让你成为了一个更好的开发者？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/10/lets-encrypt-adopts-mtcs-preparing-for-post-quantum-security/"&gt;RSA 将死？Let’s Encrypt 押注 MTCs 迎战后量子时代&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/10/the-story-of-cpp/"&gt;C++ 的权力游戏：一部关于妥协、背叛与重生的“史诗神剧”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/09/go-proposal-examples-to-support-arbitrary-function-signatures/"&gt;终结十年纠结：Go 新提案允许 Example 支持任意函数签名&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/08/the-real-reason-big-tech-is-switching-to-go/"&gt;2026年，大厂重构核心系统为何集体投向 Go？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/07/gaokao-in-the-age-of-ai-is-the-top-tier-degree-worthless/"&gt;“辛辛苦苦考上985，却发现AI能替代我90%的工作”：今天的高考，我们还在为什么而战？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/06/geohot-slams-ai-agents-as-the-most-expensive-software-disaster/"&gt;传奇黑客 Geohot 炮轰 AI Agent：这是软件工程史上代价最昂贵的灾难！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting/"&gt;别把 Go 写成 Java：毁掉项目从过度架构开始&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/04/the-maintainers-dilemma/"&gt;开源维护者的困境&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/04/master-new-tech-in-ai-era-counter-intuitive-learning-guide/"&gt;AI 时代如何真正掌握一门新技术？这份非主流学习指南建议永久收藏&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026/"&gt;Go 生态17年大浪淘沙：2026年最值得引入的10个“神仙级”QoL工具包&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/02/no-more-boilerplate-go-proposal-function-to-interface-conversion/"&gt;再见样板代码！Go 官方新提案：函数一键转接口&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/06/01/coding-10x-faster-isnt-10x-development-speed-google-ai-bottleneck/"&gt;写代码快 10 倍，不等于研发快 10 倍！Google 揭秘 AI 系统级瓶颈&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202605"&gt;2026.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/31/google-io-2026-defining-the-agentic-ai-era/"&gt;Google I/O 2026：Jeff Dean 携 DeepMind 众神宣告，AI Agent 正在终结“标准化软件”时代&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/30/ghostty-creator-slams-ai-coding-performance-1-5ms-vs-0-02ms/"&gt;AI 优化 1.5ms，手写 0.02ms！Ghostty 作者痛批 AI 编程“平庸陷阱”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/29/redis-creator-slams-modern-frontend-complexity/"&gt;Redis 之父吐槽现代前端的复杂性：我们到底是在解决问题，还是在制造问题？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/29/google-io-2026-automated-go-refactoring-eliminating-technical-debt/"&gt;无痛消灭技术债：Google I/O 2026 开启 Go 自动重构时代&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/28/uber-reveals-hidden-cost-of-go-stack-growth-10-percent-cpu-savings/"&gt;省下 10% CPU！Uber 揭秘 Go 栈扩容的隐秘代价&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/27/migrate-go-to-rust/"&gt;从 Go 迁移到 Rust&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure/"&gt;悄悄用 Go 重写 AI 基础设施：NVIDIA 的 GPU 云平台为何选择 Go？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/24/shopify-claude-code-configuration-for-23000-engineers/"&gt;Shopify 23,000 名工程师背后的 Claude Code 配置方案（你可以直接复刻的完整配置）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/23/google-open-sources-ax-and-agent-substrate-agent-centric-cloud-native-foundation/"&gt;Google 开源 AX 与 Agent Substrate：构建以 Agent 为核心的云原生计算底座&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/22/go-1-27-interface-escape-analysis-optimization-breakthrough/"&gt;十年难题终获突破：揭秘 Go 1.27 接口逃逸分析优化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/21/go-is-the-new-lingua-franca-for-ai-agents-at-google/"&gt;大洗牌！Google 内部确认：Go 正取代 C++，成为 AI Agent 时代的“通用语言”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/20/ai-coding-win-rate-rankings-go-and-rust-vs-cpp/"&gt;AI 编码胜率榜：Go 与 Rust 完胜 C++&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/19/ai-era-software-engineer-algorithm-map/"&gt;代码可以让 AI 写，但设计得由你做：重塑工程师的“算法直觉”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/18/go-performance-optimization-over-rust-rewrites/"&gt;别神话 Rust 重写了：搞定1%热路径，Go 性能照样起飞&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/17/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start/"&gt;如何在大型代码库中运用 Claude Code：最佳实践及入门指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/16/go-cured-my-over-engineering-addiction-after-java-ts/"&gt;写了 10 年 Java/TS，Go 语言终于治好了我的“过度设计”绝症&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/14/uncle-bob-esr-on-why-we-are-turning-to-go-and-rust-in-the-ai-era/"&gt;AI 时代，软件大师们为什么都倒戈向 Go 和 Rust 了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/13/go-mod-hidden-features-7-secret-switches-in-go-version/"&gt;别再瞎写 go.mod 了！一行 go 1.xx，竟藏着 7 个足以颠覆你认知的“秘密开关”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/"&gt;谁说 Rust 在中国火了？扒开 2025 全年数据，我看到了令人尴尬的真相&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/11/go-vs-rust-backend-architecture-the-2026-strategy/"&gt;“用 Go 打天下，用 Rust 救火”：这才是 2026 年后端架构的唯一正解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/10/scaling-uber-with-thuan-pham/"&gt;对话 Uber 前 CTO：我如何用 5000 个微服务驯服这头失控的巨兽&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/09/anthropic-engineer-say-html-is-the-ultimate-language-for-ai/"&gt;Anthropic 工程师发文：别用 Markdown 了，HTML 才是 AI 的终极语言！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/09/cli-printing-press-intro/"&gt;火爆外网的 Go 开源神器 CLI Printing Press：一键生成 Agent 专属 CLI 工具&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/08/bun-founder-abandons-zig-for-rust-ai-rewrite/"&gt;Bun 创始人带头“叛逃”：放弃 Zig，用 AI 把项目重写成 Rust？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/07/aws-guru-slams-go-concurrency-as-a-joke-vs-jvm/"&gt;AWS 大神发文炮轰：Go 的并发就是个“笑话”，JVM 的方案要更优越&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/06/robert-griesemer-on-go-arrow-functions/"&gt;Robert Griesemer 亲述：只解决 90% 问题的“箭头函数”该长什么样？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/05/ai-makes-everyone-a-developer-like-cameras-for-photographers/"&gt;“AI 让每个人都成了开发者”，就像“相机让每个人都成了摄影师”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/04/the-ai-layoff-trap/"&gt;AI 正在把我们推向“双输”深渊：顶级论文揭示“AI 裁员陷阱”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/03/flask-creator-pi-author-on-ai-coding-the-cruel-truth/"&gt;“AI 正在用垃圾代码摧毁一切！”：Flask 之父对话 Pi 作者，揭开 AI 编程的残酷真相&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/02/from-vibe-coding-to-agentic-engineering-karpathy-survival-guide/"&gt;从“Vibe-Coding”到“Agentic Engineering”：Andrej Karpathy 的 AI 时代程序员生存法则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/05/01/open-source-civil-war-bun-founder-predicts-ban-on-human-contributions/"&gt;开源社区“内战”爆发：Bun 创始人预言“未来将禁止人类贡献”，硅谷大佬纷纷站队！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202604"&gt;2026.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/30/ghostty-creator-leads-github-exodus-cto-apology-go-fix/"&gt;Ghostty 之父带头“出走”GitHub！官方 CTO 紧急道歉，并揭秘正在使用 Go 语言救火&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/29/go-1-27-default-simd-for-amd64-portable-simd-proposal/"&gt;Go 1.27 将默认开启 SIMD for amd64，可移植 SIMD 包提案出炉&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/28/go-conditional-expressions-propsal/"&gt;Go 语言“内战”迎来终局？Go 圣经作者亲自下场，为“三元运算符”发起折中提案！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/27/render-why-we-wont-rewrite-in-rust-the-power-of-boring-go/"&gt;“我们想用 Rust 重写的次数是：零”：云平台 Render 靠“无聊”的 Go 撑起了千亿流量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/26/interview-martin-kleppmann-ddia-2nd-edition-ai-distributed-systems/"&gt;对话 Martin Kleppmann：DDIA 第二版揭秘，以及 AI 将如何颠覆分布式系统&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/"&gt;为什么人人爱 Rust，但 RedMonk 榜单却给它泼了一盆冷水？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/24/go-code-design-day-one-principle-practical-patterns-list/"&gt;Go 代码设计的“第一天原则”：一份能让你少走五年弯路的实战模式清单&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/23/hashicorp-founder-admits-go-is-alive-thanks-to-ai/"&gt;HashiCorp 创始人亲口“认错”：AI 让我重新爱上了 Go (文末福利)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/21/why-we-are-building-agent-harness-from-scratch/"&gt;聊聊为什么我要花这么大精力，带大家手写 Agent Harness？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/20/openclaw-father-ted-talk/"&gt;“我把公司卖了，却感觉一无所有”：OpenClaw 之父 TED 亲述如何靠 AI 重获新生&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/19/thin-harness-fat-skills/"&gt;薄驾驭，厚技能：YC 掌门人揭秘拉开 1000 倍效率差距的 AI 工程化心法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/18/ollama-from-open-source-hero-to-community-enemy/"&gt;从“开源英雄”到“社区公敌”，Ollama 到底做错了什么？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/17/the-origins-of-gpu-computing/"&gt;GPU 计算的起源&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/"&gt;Rust 还没进前十，TIOBE 就开始唱衰了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/16/structured-concurrency-in-go-research-oriented-perspective/"&gt;为什么说 go 语句是新时代的 goto？四大法则拯救失控 goroutine&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/15/cpp-community-debate-productivity-revolution-vs-complexity/"&gt;C++ 社区内部大讨论：新特性到底是“生产力革命”，还是“叠加的复杂性”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/13/dave-cheney-goroutine-management-philosophy/"&gt;别再无脑 go func() 了！Go 资深布道师 Dave Cheney 的 Goroutine 管理哲学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/12/agile-manifesto-dead-in-ai-era-martin-fowler-kent-beck/"&gt;AI 时代，敏捷宣言已死？听听 Martin Fowler 和 Kent Beck 怎么说&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/11/go-command-working-group-formed-legacy-commands-deprecated/"&gt;Go Command 工作组成立：这几个用了十年的命令可能要被废！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/10/rails-father-dhh-on-ai-and-programmer-value/"&gt;Ruby on Rails 之父最新访谈：AI 正在推高顶尖程序员的身价&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/"&gt;别搞“小而美”了！Rust 开发者请愿：求求标准库学学 Go 吧&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/08/perspective-on-quantum-computing-timeline/"&gt;倒计时 33 个月？Go 前安全负责人：量子计算机将“摧毁”互联网&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/07/garbage-collectors-deep-dive/"&gt;从 1960 到 2026：一文看透 Java、Go、Python 垃圾回收器的原理与演进&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/06/how-to-write-unmaintainable-code/"&gt;AI 编程时代，我挖出了一本 1999 年的“删库跑路”指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/04/the-death-of-coding-joy-in-the-age-of-ai-agents/"&gt;当AI 榨干了编程所有的乐趣：我不再是程序员，而是“Claude Code”的项目经理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/03/agentic-api-in-action/"&gt;REST 已老，AI 时代的智能体需要怎样的 API？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/02/2026-programming-language-saturation-rankings-go-rust-winners/"&gt;2026 编程语言“饱和度”榜单出炉：JavaScript/Python 已“烂大街”，Go/Rust 成最大赢家？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai/"&gt;一天重写 JSONata，我用 400 美元干掉了公司 50 万美元的 K8s 集群&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202603"&gt;2026.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/31/go-minimalism-vs-cpp26-epic-new-features/"&gt;当 Go 还在追求极简时，C++ 26 却又加了四大“史诗级”新特性&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/30/reduced-p99-latency-by-request-hedging-in-go/"&gt;降低 74% 的 P99 尾延迟：揭秘 Go HTTP 客户端的“请求对冲”魔法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/29/stop-mindless-ai-coding-we-are-heading-to-a-dead-end/"&gt;别再用 AI 疯狂撸代码了！我们正在把自己逼入“死胡同”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/28/ai-engineer-gpu-introduction-course/"&gt;谷歌一篇论文砸崩内存巨头？不懂“显存墙”，怎么做 AI 时代的工程师！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/27/function-type-inference-should-work-in-all-assignment-contexts/"&gt;Rust 看了流泪，AI 看了沉默：扒开 Go 泛型最让你抓狂的“残疾”类型推断&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/26/rust-project-perspectives-on-ai/"&gt;Rust 核心团队大吐苦水：求求你们别再用 AI 提交“垃圾 PR”了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/25/go-spec-contradiction-in-types-section/"&gt;Go 语言之父亲自下场道歉：藏在 Spec 里的十年“笔误”，终于要修正了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/24/no-soil-for-new-programming-languages-in-ai-era/"&gt;告别古法编程黄金时代：AI 时代不会再有新编程语言诞生的土壤&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/23/go-is-the-best-programming-language-for-llm/"&gt;OpenAI 创始人盛赞 Rust，却遭开发者反驳：Go 才是大模型眼里的“香饽饽”！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/22/stop-tactical-diligence-start-stretch-zone-growth/"&gt;看了 100 小时教程，你为什么依然写不好代码？扒开技术人的“成长环”真相&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/21/best-practices-for-secure-error-handling-in-go/"&gt;你的 Go 报错信息正在“出卖”你！扒一扒大厂是如何做错误隔离与日志脱敏的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/20/heartbeats-in-distributed-systems/"&gt;如果服务器悄悄“猝死”，你的系统还能活几秒？揭秘分布式集群的“续命”保底机制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/19/2025-turing-award-go-quantum-resistant-cryptography/"&gt;刚刚，2025图灵奖揭晓！面对即将瘫痪的传统密码学，Go 语言的“抗量子”底牌曝光&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/19/proposal-support-dependency-cooldown-in-go-tooling/"&gt;别再无脑 go get @latest 了！你的服务器可能下一秒就被黑客接管&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide/"&gt;为什么你的 AI Agent 总是像个智障？来自 Manus 大佬的 2 年血泪避坑指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/18/building-industrial-grade-agent-skills/"&gt;手工作坊的终结：为什么你必须把 Agent Skills 开发，变成严谨的软件工程?&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/17/ai-engineer-survival-2026-post-hype/"&gt;泡沫消退后的冷思考：2026年，AI 工程师的真实生存图景&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/17/why-is-go-regex-so-slow/"&gt;被嘲笑比 Python 还慢？扒开 Go 正则表达式的底层，看看它为了防范“系统猝死”付出了什么&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/16/go-language-eliminated-undefined-behavior-truth-investigation/"&gt;真相调查：Go 语言真的消灭了 Undefined Behavior 吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/15/over-engineering-trap-no-promotion-for-simplicity/"&gt;别傻了，写出极致整洁的代码，是你升不了职的根本原因&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/15/why-your-openclaw-skills-make-ai-go-on-strike/"&gt;都在用 OpenClaw 跑 Skill，但你写的“技能”为什么总让 AI 频繁罢工？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/14/go-sumdb-transparent-logs-supply-chain-trust/"&gt;拒绝“偷天换日”！深度拆解 Go sumdb 的密码学防线&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/13/go-duckdb-micro-data-warehouse-dimensionality-reduction/"&gt;别再滥用 ClickHouse 了！单机每秒狂刷 1800 万条数据，拆解 Go+DuckDB 的“微型数仓”降维打击&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/12/building-for-trillions-of-agents/"&gt;别再卷前端 UI 了！未来万亿级用户的产品，根本没有界面&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/12/go-concurrency-scalability-issues-on-128-core-cpu/"&gt;老板花重金买了台 128 核服务器，我的 Go 程序反而变慢了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/11/in-memory-of-tony-hoare/"&gt;你每天敲下的 go func()，藏着这位 92 岁老人的毕生心血&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/11/standard-library-is-part-of-the-go-success/"&gt;拉个 JSON 居然要装 5 个第三方库？终于明白 Go 的标准库到底有多“霸道”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/09/a-decade-of-docker-containers/"&gt;Docker 的十年：重塑云原生基础设施的“底层炼金术”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/09/hardcore-review-13-languages-ai-favorite-go-performance/"&gt;硬核测评：哪门语言最受 AI 宠爱？13 种语言横向对比，Go 表现如何？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/08/her-power-in-code-pioneers-to-ai-era/"&gt;从第一位程序员到 AI 时代的领航者：代码世界里的“她”力量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/07/breaking-curse-of-knowledge-architect-reflection-openclaw/"&gt;打破“知识诅咒”：资深架构师在 OpenClaw 浪潮中的掉队与反思&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/07/why-go-is-the-best-language-for-ai-agents/"&gt;AI 时代的新王座：为什么说 Go 可能是开发 AI Agent 的最佳语言？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/06/building-claude-code-with-boris-cherny/"&gt;从手写代码到日提 30 个 PR：Claude Code 缔造者的 AI 编程启示录&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/06/go-1-26-most-problematic-release/"&gt;数据说话：Go 1.26 或成近年来“问题最多”的大版本，现在升级安全吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/05/modern-go-protobuf-dev-in-2026/"&gt;2026 年了，写 Go + Protobuf 还在手敲 protoc 命令？是时候换用这种新姿势了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/04/why-web3-remains-cold-ai-agents-web4-dawn/"&gt;为什么 Web3 依然寒气逼人？AI 智能体如何催生 Web 4.0 的黎明&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/04/package-management-unsolvable-problem-programming-languages/"&gt;“棘手”难题：为什么 Go、Rust 与 Java 等语言的包管理永远无法达到完美？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26"&gt;别再像 2015 年那样写 Go 了：Modern Go 终极进化指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/01/open-source-ai-era-coding-agent-takes-over-github/"&gt;AI 时代的开源：当 Coding Agent 接管 GitHub，我们该何去何从？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/03/01/goodbye-google-uuid-go-standard-library-crypto-uuid/"&gt;告别 google/uuid：Go 标准库拟新增 crypto/uuid 深度解析&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202602"&gt;2026.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/28/agentic-software-engineering/"&gt;停止“氛围编程”（Vibe Coding），拥抱新一代软件工程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/27/go-mod-init-controversy-elitism-vs-democracy/"&gt;Go mod init 降级撤回背后：精英主义正在杀死 Go 社区的民主？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/26/rust-complexity-go-minimalism-vs-zig-ultimate-answer/"&gt;拒绝 Rust 的复杂，跨越 Go 的极简：Zig 会是系统级编程的最终答案吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/25/rust-crossing-the-chasm-ubuntu-embrace/"&gt;Rust 的“跨越鸿沟”时刻：Ubuntu 全面拥抱 Rust 意味着什么？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/25/govulncheck-high-signal-to-noise-ratio-security-workflow/"&gt;拒绝无效告警！用 Govulncheck 构建高信噪比的 Go 安全扫描工作流&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/24/go-vs-node-js-performance-rewrite-rashomon/"&gt;性能之战的“罗生门”：Go 重写 Node.js 项目，究竟赢在了哪里？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/23/financial-infrastructure-rust-to-go-pragmatism-victory/"&gt;金融级基础设施重构：放弃 Rust 拥抱 Go，务实主义的最终胜利？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/23/cloudflare-bgp-withdrawal-outage-go-post-mortem/"&gt;一行 Go 代码瘫痪 6 小时！复盘 Cloudflare BGP 路由撤回灾难&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/22/go-1-26-go-mod-init-downgrade-collision-review/"&gt;“你装了 Go 1.26，却写不了 Go 1.26 的代码？”——复盘 go mod init 的降级风波&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/21/safety-vs-delivery-speed-why-farewell-rust-in-2026/"&gt;当“安全性”遭遇“交付速度”：2026 年，我为什么告别了 Rust&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/21/compound-engineering-ai-native-software-development-philosophy/"&gt;复利工程（Compound Engineering）：AI 原生时代的软件开发新哲学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/20/why-we-need-new-go-module-review-mechanism/"&gt;别再轻信 GitHub 上的源码：为何我们需要全新的 Go 模块审查机制？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/19/using-go-fix-to-modernize-go-code/"&gt;Go 1.26 重磅更新：用 go fix 重塑代码现代化的艺术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/18/why-we-chose-go-over-python-for-llm-gateways/"&gt;AI 基础设施的语言之争：为何构建 LLM 网关时，我们放弃了 Python 选择了 Go？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/16/go-1-26-go-mod-init-changes-version-management-philosophy/"&gt;Go 1.26 ：go mod init 默认行为的变化与 Go 版本管理的哲学思辨&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/15/openclaw-core-engine-pi-architecture-philosophy-minimalism/"&gt;极简主义的胜利：OpenClaw 核心引擎 Pi 的架构哲学与开发实录&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/15/go-core-team-rejects-ai-authorship/"&gt;拒绝 AI 署名！Go 核心团队在 AIGC 时代划下的“工程红线”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/14/2026-software-factory-manifesto-code-not-by-humans/"&gt;“代码必须不是人写的”：2026 年软件工厂宣言！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/14/some-changes-in-go-1-26/"&gt;Go 1.26 中值得关注的几个变化：从 new(expr) 真香落地、极致性能到智能工具链&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/13/grady-booch-uml-software-engineering-third-golden-age-begins/"&gt;UML 之父 Grady Booch：别听 CEO 瞎忽悠，软件工程的第三次黄金时代才刚刚开始&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/13/go-microservices-refactoring-10x-backend-vs-mobile-collapse/"&gt;Go 微服务重构实录：当后端性能提升 10 倍，移动端体验为何反而崩塌？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/12/ai-garbage-code-hashicorp-founder-vouch-rebuilding-open-source-trust/"&gt;AI 垃圾代码泛滥？HashiCorp 创始人开源 Vouch：重构开源信任机制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/12/p2h-to-p2a2h-software-architecture-inversion-designing-for-agents/"&gt;从 P2H 到 P2A2H：软件架构的终极倒置——为智能体设计软件&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/11/2026-software-development-anthropic-agentic-coding-trends-report/"&gt;2026 软件开发新纪元：解读 Anthropic《Agentic Coding 趋势报告》&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/11/go-1-26-json-v2-delay-7-technical-roadblocks/"&gt;Go 1.26 发布在即，为何 json/v2 依然“难产”？七大技术路障全解析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/10/ai-agent-realizes-ultimate-dream-software-factory/"&gt;输入需求，输出系统：AI Agent 正在实现软件工程的“终极梦想” —— 软件工厂！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/10/goodbye-flaky-tests-go-testing-nettest-proposal/"&gt;告别 Flaky Tests：Go 官方拟引入 testing/nettest，重塑内存网络测试标准&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/09/amp-kills-vscode-plugin-human-ai-pair-programming-is-dead/"&gt;AMP 宣布砍掉 VS Code 插件：为什么说“人机结对编程”已死？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/09/go-immutable-types-8-year-dormant-proposal-awakened/"&gt;沉睡 8 年的提案被唤醒：Go 语言真的要引入“不可变类型”了吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/08/go-boilerplate-code-vs-rust-data-refutes-stereotypes/"&gt;数据打脸刻板印象：Go 的“样板代码”竟然和 Rust 一样多？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/08/claude-code-agent-team-mode/"&gt;告别单打独斗！Claude Code 全新“Agent Team”模式：当 AI 开始组队干活&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/06/go-2-dont-become-a-frankenstein-monster/"&gt;“Go 2，请不要发生！”：如果 Go 变成了“缝合怪”，你还会爱它吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/05/brad-fitzpatrick-cachelink-reduce-go-test-wait-time/"&gt;大项目构建太慢？Brad Fitzpatrick 提议引入 -cachelink 降低测试等待时间&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/05/ai-code-quality-surpasses-80-percent-of-human-programmers/"&gt;承认吧，AI 写的代码，平均质量已经超过了 80% 的人类程序员！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/04/openclaw-author-cli-ultimate-agent-interface-vs-mcp/"&gt;忘掉 MCP？OpenClaw 作者说：CLI 才是 AI 连接世界的终极接口&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/04/goodbye-container-heap-go-generic-heap-heap-v2-proposal/"&gt;再见，丑陋的 container/heap！Go 泛型堆 heap/v2 提案解析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/03/russ-cox-15-year-war-on-floating-point-conversion/"&gt;算法神话的祛魅：Russ Cox 与浮点数转换的 15 年求索之路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/03/claude-code-founder-10x-efficiency-10-hidden-skills/"&gt;Claude Code 创始人亲授：解锁 10 倍效率的 10 个“隐藏技能”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/02/beads-bd-distributed-task-tracking-engine-for-ai-agent/"&gt;Git 即数据库：Beads (bd) —— 专为 AI Agent 打造的分布式任务追踪引擎&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/01/moltbook-first-social-network-for-ai-agent/"&gt;地球上第一个“硅基生命”社交网络moltbook上线：人类禁止发帖，只能围观！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/02/01/go-rewrite-python-gateway-10x-performance-career-nightmare/"&gt;我用 Go 重写了 Python 网关，性能提升 10 倍，却成了职场噩梦&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202601"&gt;2026.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/31/go-official-updates-race-detector-trace-ui-pprof/"&gt;Go 性能诊断工具大变天？Race 检测有望进生产，Trace 秒开不是梦！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/31/rust-vs-typescript-ai-agent-battleground-winner/"&gt;Rust 输了？在 AI Agent 的战场上，TypeScript 才是唯一的“神”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/30/clawdbot-author-peter-steinberger-full-interview/"&gt;“退休”大佬的 AI 复出战：为了“好玩”，他写出了火遍全网的 Moltbot&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/29/write-a-good-claude-md/"&gt;你的 CLAUDE.md 写错了：为什么指令越多，AI 越笨？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/29/wso2-goodbye-java-hello-go-tech-stack-shift/"&gt;20 年 Java 老店的“背叛”：WSO2 为何高呼“Goodbye Java, Hello Go”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/28/go-standard-library-vendor-std-cmd-dependency-management/"&gt;Go 标准库竟然也用 vendor？std 和 cmd 模块是如何管理外部依赖的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/28/clawdbot-author-ai-development-workflow/"&gt;别读代码了，看着它流过就行：ClawdBot 作者的 AI 开发工作流&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/27/typescript-compiler-go-rewrite-10x-speed-microsoft-details/"&gt;TypeScript 编译器 Go 重写版提速 10 倍：微软团队深度揭秘幕后工程细节&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/25/claude-code-official-best-practices-50-core-rules/"&gt;Claude Code 官方最佳实践：50 条没人告诉你的“核心军规”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/25/gas-town-multi-agent-orchestration-ai-programming-revolution/"&gt;Gas Town 启示录：多智能体编排开启 AI 编程工业革命&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/24/go-generics-finally-supports-generic-methods/"&gt;Go 泛型落地 4 年后，终于要支持泛型方法了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/23/go-developer-2025-survey-result/"&gt;2025 Go 官方调查解读：91% 满意度背后的隐忧与 AI 时代的“双刃剑”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/22/why-are-we-still-talking-about-containers-in-ai-age/"&gt;Kelsey Hightower 退休后的冷思考：为什么 10 年过去了，我们还在谈论容器？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/22/a-bug-cause-50000-goroutine-leak/"&gt;凌晨3点的警报：一个导致 50000 多个 Goroutine 泄漏的 Bug 分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/21/ai-coding-evolution-from-prompting-to-ralph/"&gt;从“手搓 Prompt”到“无限循环”：AI 编码的下一个形态是“Ralph”吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/21/integrating-cuda-in-go/"&gt;当 Go 遇上 GPU：用 CUDA 释放千倍算力的实战指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/20/ai-and-go-opportunities-and-challenges/"&gt;AI 时代，Go 语言会“失宠”还是“封神”？—— GopherCon 2025 圆桌深度复盘&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/19/unleashing-the-go-toolchain/"&gt;Go 语言的“魔法”时刻：如何用 -toolexec 实现零侵入式自动插桩？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/18/traits-of-a-good-tech-lead/"&gt;Tech Lead 不是管理者？一文看懂技术负责人的核心职责与能力模型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/18/go-cryptography-principles/"&gt;Go 官方密码学原则：为什么 Go 的 Crypto 库难以被“用错”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/17/ai-era-cognitive-friction-as-your-last-moat/"&gt;在 AI 时代主动“找虐”：为什么保留“认知摩擦”是你最后的护城河？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/17/go-rust-zig-simplicity-vs-control/"&gt;Go, Rust 还是 Zig？一场关于“简单”与“控制”的灵魂拷问&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/16/go-community-the-right-kind-of-abstraction/"&gt;为什么 Go 社区强调避免不必要的抽象？—— 借用海德格尔哲学寻找“正确”的答案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/15/where-did-the-memory-go-gopher-unanswered-question/"&gt;内存去哪儿了？一个让大多数 Gopher 都无法清晰回答的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/14/google-ucp-agentic-commerce-architecture-revolution/"&gt;当机器开始“剁手”：详解 Google UCP 与 Agentic Commerce 的架构革命&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/14/go-explicit-philosophy-implicit-interfaces-design-wisdom/"&gt;Go 的“显式哲学”为何在接口上“食言”了？—— 探秘隐式接口背后的设计智慧&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/13/how-markdown-took-over-the-world/"&gt;技术考古：Markdown 为何从博客工具演变成统治 AI 世界的“通用语”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/13/agent-native-architecture/"&gt;像构建 Claude Code 一样构建应用：揭秘 Agent-native 架构的 5 大核心原则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code/"&gt;从入门到极致：VictoriaMetrics 教你写出最高效的 Go 代码&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/11/21-lessons-from-google-engineer/"&gt;代码之外的修炼：Google 资深工程师的 21 条“生存法则”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/11/proposal-float-to-int-conversions-should-saturate-on-overflow/"&gt;Go 的“浮点数陷阱”将被填平：浮点转整数即将在所有平台上行为一致&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/"&gt;离了大谱！Go 一年之内从第 7 掉到第 16&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/09/the-most-popular-go-dependency-is/"&gt;谁才是 Go 生态的“幕后之王”？—— 深度挖掘 4000 万个节点后的惊人发现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/08/databases-in-2025-a-year-in-review/"&gt;PostgreSQL 吞噬世界，MongoDB 起诉 Go 开源项目：2025 数据库年度盘点&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/08/how-claude-code-works/"&gt;拆解 Claude Code：Coding Agent 终于“能用”背后的架构真相&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/07/stop-vibe-coding-professional-developers-master-coding-agent-2025/"&gt;别再“Vibe Coding”了：2025 年专业开发者是如何驾驭 Coding Agent的？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/07/go-language-comfort-zone-in-contempt-chain-pyramid/"&gt;Go 语言的“舒适区”：为何在这张“鄙视链”金字塔中，Go 仅次于 C？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/06/go-sum-is-not-a-lockfile/"&gt;别再盯着 go.sum 看了：它不是你想象中的那个 Lockfile&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/06/a-golden-map-to-distributed-architect/"&gt;耗时六个月，我为你画了一张通往“分布式架构师”的黄金地图&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/05/how-ken-thompson-developed-go-language-at-google/"&gt;Go 考古：图灵奖得主 Ken Thompson 亲述，Go 语言是如何在 C++ 的“废墟”上诞生的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/05/httpstonybai-com20260105claude-code-author-reveals-private-ai-coding-config/"&gt;刚刚，Claude Code 作者曝光了自己的“私房”配置：原来顶尖高手是这样用 AI 写代码的！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/04/stop-lying-to-the-compiler/"&gt;让编译器成为你的副驾驶：告别“防御性编程”，拥抱“类型驱动开发”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/04/stick-to-the-core-embrace-variables-2025-review-2026-outlook/"&gt;坚守内核，拥抱变量：我的 2025 年终复盘与 2026 展望&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/03/why-cpp-programmers-keep-growing-fast/"&gt;为什么 AI 时代，C++ 和 Rust 反而更火了？Herb Sutter 的硬核解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/02/kent-beck-ai-era-code-review-end-and-rebirth/"&gt;Kent Beck 最新思考：AI 时代的“一人派对”，代码审查的终结与重生&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/02/go-supply-chain-attack-source-code-to-capability-auditing-paradigm-shift/"&gt;从“源码审计”到“能力审计”：Go 生态应对供应链攻击的范式转移&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/01/go-archaeology-porting-policy/"&gt;Go 考古：Go 官方如何决定支持你的 CPU 和 OS？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2026/01/01/ai-is-the-fastest-way-to-forget-how-to-code/"&gt;AI 是让你忘掉如何编程的最快方式&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二五"&gt;二零二五&lt;/h3&gt;
&lt;h4 id="202512"&gt;2025.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/31/go-introspection-using-debug-buildinfo/"&gt;Go 服务自省指南：抛弃 ldflags，让你的二进制文件“开口说话”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/31/why-go-community-so-active-and-friendly/"&gt;代码简单，人也简单？揭秘 Go 社区的“反内卷”文化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/30/logging-sucks/"&gt;Logging 已死？从“调试日记”到“结构化事件”的范式转移&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/30/high-concurrency-backend-go-vs-rust/"&gt;高并发后端：坚守 Go，还是拥抱 Rust？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming/"&gt;“为什么很多工程师还在无视 AI 编程？”—— 这里的答案，或许决定了你三年后的身价&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/29/go-community-new-sum-type-end-interface-union-types/"&gt;告别 interface{} 模拟，Go 终于要有真正的 Union 类型了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/28/state-of-ai-vs-human-code-generation-report/"&gt;Bug 激增 1.7 倍！AI 写代码：是速度的蜜糖，还是质量的砒霜？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/27/code-review-hell-in-ai-age/"&gt;AI 代码审查的“危”与“机”：从个体挣扎到 Uber 的系统化解法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/27/rob-pike-outburst-denounces-ai-companies-hypocritical-thanks/"&gt;Rob Pike 罕见暴怒！痛斥 AI 公司的“伪善”致谢信，引爆技术圈&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/26/google-2025-research-breakthroughs/"&gt;从工具到伙伴：Google 三巨头定义 2025 为“AI Agent 与推理元年”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/26/think-like-go-founders-relearn-go-five-principles/"&gt;像 Go 创始人一样思考：用五大思维原理重学 Go 语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/25/go-next-frontier-gophercon-2025/"&gt;Go 的 AI 时代宣言：我们如何用“老”原则，解决“新”问题？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/24/bash-vs-go-10x-code-100x-maintainability/"&gt;Bash 虽好，但我选 Go：如何用 10 倍代码换来 100 倍的维护性？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/24/profiling-request-latency-with-critical-path-analysis/"&gt;Go 性能分析的“新范式”：用关键路径分析破解高并发延迟谜题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/23/goodbye-if-else-hell-openfeature-feature-flag-management-go/"&gt;告别“If-Else”地狱：OpenFeature 如何重塑 Go 应用的特性开关管理？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/22/alan-donovan-go-code-modernization/"&gt;AI 还在写“老式 Go”？Alan Donovan 详解 Go 代码的现代化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/21/real-programmers-dont-fix-computers-ai-stars-and-seas/"&gt;别演了，真实的程序员根本不修电脑：我们左手AI，右手星辰大海&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/21/go-1-26-cryptographic-storm-vault-compliance-vs-go-security/"&gt;Go 1.26 的“加密风暴”：当 Hashicorp Vault 的合规需求，撞上 Go 团队的安全哲学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/20/ai-coding-era-productivity-leap-2025-developer-ecosystem-report/"&gt;AI 编码时代的生产力跃迁：2025 年开发者生态报告深度解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/20/goroutine-bubble-universe-go-concurrency-new-dimension/"&gt;Goroutine “气泡”宇宙——Go 并发模型的新维度&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/19/twilio-say-goodbye-microservices/"&gt;再见了，微服务：从 100 多个“问题儿童”到 1 个“超级巨星”的架构回归&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/19/anthropic-agent-skills-open-standard-launch/"&gt;继 MCP 之后，Anthropic 再放大招：Agent Skills 正式发布为开放标准！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/18/go-community-first-case-ai-assisted-programming/"&gt;“这段代码是 AI 写的！”—— Go 社区的“AI 辅助编程”第一案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/18/escaping-java-bicycle-shed-is-go-the-pure-land/"&gt;逃离 Java 的“自行车棚”：Go 语言真的是那片“净土”吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/17/ai-programming-90-percent-trap-generation-vs-bug-fix/"&gt;AI 编程的“90% 陷阱”：为什么你生成代码 1 分钟，修 Bug 却要 1 小时？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/17/cloudflare-2025-report-go-language-api-traffic-ai-surge/"&gt;Cloudflare 2025 年度报告发布——Go 语言再次“屠榜”API 领域，AI 流量激增！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/16/go-1-26-foresight/"&gt;Go 1.26 新特性前瞻：从 Green Tea GC 到语法糖 new(expr)，性能与体验的双重进化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/15/go-language-anti-patterns-10-donts/"&gt;Go 语言的“反模式”清单：来自资深 Gopher 血泪教训的 10 条“不要做”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/14/dont-let-ai-put-your-brain-cpu-in-wait/"&gt;你的大脑是 CPU，别让 AI 把它挂起 (WAIT)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/13/influxdb-3-0-grand-gamble-or-painful-cycle/"&gt;InfluxDB 3.0：一场豪赌的未来，还是又一次痛苦的轮回？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface/"&gt;跨越20年的对话：从 Eiffel 的“契约”到 Go 的“接口”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/12/gin-is-a-very-bad-software-library/"&gt;Gin 真的是“真菌”吗？—— 一篇引发热议的“反 Gin”檄文解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/12/talk-is-cheap-show-me-the-spec/"&gt;Linus 的名言要改了：Talk is cheap, show me the Spec&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/11/jepsen-report-nats-jetstream-data-loss-acknowledged-writes/"&gt;Jepsen 报告震动 Go 社区：NATS JetStream 会丢失已确认写入&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/"&gt;Go 跌出 TIOBE 前十？别被排名骗了，这才是它的真实地位&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/10/russ-cox-interview-go-birth-evolution-future/"&gt;“我曾想付钱给 Google 去工作”—— Russ Cox 深度访谈：Go 的诞生、演进与未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/09/vet-add-check-for-using-verb-q/"&gt;Go 的“最小惊讶原则”破功了吗？—— 一个vet 新提案引发的思考&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/09/programmer-all-in-ai-survival-revelation-in-2025/"&gt;给了机关枪，你却非要耍大刀：2025 年末，程序员 All in AI 的生存启示录&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/08/api-design-pattern-and-implementation"&gt;拒绝“面条代码”，做有架构思维的 Go API 设计师&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/07/zootopia-2-perfect-architecture-lie-exposed/"&gt;看完《疯狂动物城2》，我发现“完美架构”的谎言被戳破了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/07/switching-from-rust-to-go-appeal-of-the-language/"&gt;“我从未想过学完 Rust 后会转向 Go”—— 这门“无聊”的语言究竟有什么魅力？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/06/zootopia-distributed-system-written-in-go/"&gt;如果《疯狂动物城》是一个分布式系统，那它一定是用 Go 写的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/06/argentina-2026-world-cup-title-defense-messi-enjoy-football/"&gt;J组！阿根廷开启2026卫冕之旅：梅西，这一次，请尽情享受足球！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/05/proposal-runtime-secret/"&gt;Go 安全新提案：runtime/secret 能否终结密钥残留的噩梦？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/05/how-ai-is-transforming-work-at-anthropic/"&gt;Anthropic 内部报告：程序员的“死”与“生”，效率暴增 50% 的残酷启示&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/04/minio-enter-maintenance-mode/"&gt;MinIO 开源版突发“安乐死”：维护模式开启，社区愤怒，你的数据还安全吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/04/thoughts-before-all-in-agentic-ai/"&gt;别盲目梭哈 Agentic AI！先看清“确定性”的崩塌与“概率性”重建&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/03/go-2025-cloud-native-observability-report/"&gt;Go 2025云原生与可观测年度报告：底层性能革新与生态固防&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/02/advices-from-uber-distinguished-engineer/"&gt;只要 Title 带“工程师”，你就必须写代码：Uber 杰出工程师的硬核建议&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/12/01/proposal-sync-v2/"&gt;Brad Fitzpatrick 也等不及了！sync.Map 的泛型进化与 sync/v2 的诞生之路&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202511"&gt;2025.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/30/ice-assertion-failed-with-append/"&gt;Go 编译器崩溃背后：一个 append 函数引发的语言规范修正案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming/"&gt;“香蕉、猴子和整片丛林”：我们是否深陷于 OOP 的“优雅”陷阱？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/28/go-2026-roadmap-revealed/"&gt;Go 2026 路线图曝光：SIMD、泛型方法与无 C 工具链 CGO —— 性能与表达力的双重飞跃？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/27/dingo-go-typescript-moment/"&gt;dingo：Go 语言的 “TypeScript”时刻？—— 一场由社区驱动的语言演进实验&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster/"&gt;13万节点！Google 如何打破 Kubernetes 的物理极限，构建全球最大集群&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/25/who-killed-your-http-connection-traps-of-connection-pooling/"&gt;谁“杀”死了你的 HTTP 连接？—— 揭秘云环境下连接池配置的隐形陷阱&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/24/google-adk-go-in-action/"&gt;霸榜 GitHub 一周！Google 开源 ADK for Go，彻底终结 AI“炼丹”时代？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/23/leo-messi-and-fanren-hanli/"&gt;从韩立到梅西：顶级“全栈工程师”的修炼之道与生存哲学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/23/short-form-videos-harm-programmers/"&gt;白天改Bug，晚上刷视频：你以为在放松，其实在消耗你写出好代码的能力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/22/the-2025-go-cryptography-state-of-the-union/"&gt;Go 2025 密码学年度报告：后量子时代的防御与 FIPS 的“纯 Go”革命&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/21/why-go-is-quietly-doing-what-rust-couldnt-staying-simple/"&gt;为什么 Go 在悄悄地做 Rust 做不到的事：保持简单&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/20/proposal-improve-goroutine-stack-using-page-faults/"&gt;Goroutine 栈增长机制新提案：用缺页中断替代栈检查？Rob Pike 亲自下场“劝退”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/20/ai-native-dev-workflow/"&gt;还在当“上下文搬运工”？我写了一门课，帮你重塑AI开发工作流&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/19/cloudflare-18-november-2025-outage/"&gt;一次 unwrap() 引发的全球宕机：Cloudflare 故障报告背后的 Rust 安全反思&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/19/proposal-remove-cycle-restriction-for-type-parameters/"&gt;Go 泛型再进化：移除类型参数的循环引用限制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025/"&gt;Go 在 Web3 的统治力：2025 年架构与生态综述&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/17/explain-kubernetes/"&gt;你的 Kubernetes 知识在“冰山”的第几层？—— 一份给 Gopher 的 K8s 进阶“航海图”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/17/go-testing-journey/"&gt;你的 Go 测试，还停留在“演员对台词”吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/15/go-turns-16/"&gt;Go 的甜蜜16 岁：一份来自官方的年度成绩单与未来路线图&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/"&gt;Go 也开始“叛逆”了？深度解读 JetBrains 2025 报告：为何“原生信仰”不再是唯一答案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/13/proposal-dynamic-escapes/"&gt;PGO 驱动的“动态逃逸分析”：w.Write(b) 中的切片逃逸终于有救了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/12/16-years-of-go-a-programming-language-built-to-last/"&gt;Go 的 16 年：一门为持久而生的编程语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/11/go-developers-love-pain-online-debate/"&gt;“学习 Go 毁掉了我钟爱的其他语言”：一场网络热议揭示 Go 开发者真正的爱与痛&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/11/zsxq-11-11-2025/"&gt;算了一笔账后，这个双十一我决定做个“亏本”买卖&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/10/rob-pike-on-complexity/"&gt;来自 Go 创始人的忠告：这五条关于“复杂性”的法则，比算法更重要&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/08/proposal-zstd/"&gt;Go 标准库将迎来 Zstandard：性能超越 Gzip，让你的应用更快、更省&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master/"&gt;Go 的“简单”幻象：易于上手，难于精通&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/06/proposal-simd-cpu-feature-vet-check/"&gt;连 Rob Pike 都感到“担忧”：Go 1.26 SIMD 引入的新复杂性与应对之道&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/05/proposal-remove-godebug-flags/"&gt;GODEBUG 的“技术债”清算：Go 团队提出全新生命周期管理策略&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/04/microservice-disasters/"&gt;微服务灾难清单：从技术深坑到组织泥潭的 10 个惨痛教训&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/03/go-gui-development-2025/"&gt;Go GUI 开发的“绝境”与“破局”：2025 年现状与展望&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/02/6-months-47-microservices-architecture-disaster/"&gt;“6 个月，47 个微服务”：一场由“简历驱动”引发的架构灾难&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/11/01/from-python-to-go-what-we-lost-and-gained/"&gt;从 Python 到 Go：我们失去了什么，又得到了什么？&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202510"&gt;2025.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/31/deep-into-go-green-tea-gc/"&gt;Go 官方详解“Green Tea”垃圾回收器：从对象到页，一场应对现代硬件挑战的架构演进&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/30/jon-gjengset-rust-ai-future/"&gt;Rust 布道者Jon Gjengset深度访谈：在 AI 时代，我们该如何思考编程、职业与未来？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/30/type-theory-intro-for-gopher/"&gt;告别懵圈：实战派 Gopher 的类型理论入门&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/29/why-break-in-go-function-iterators-does-not-work/"&gt;解构Go函数迭代器——为什么 break 没有按预期工作？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/28/go-archaeology-error-handling/"&gt;Go 考古：错误处理的“语法糖”之战与最终的“投降”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/27/the-ultimate-guide-to-go-module/"&gt;Go 模块构建与依赖管理：我们到底在“折腾”什么？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/26/sqlite-say-no-to-go-and-rust/"&gt;SQLite 对 Go 和 Rust 说“不”：揭示“安全语言”光环下的工程现实&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/25/go-iota-flaw-or-magic/"&gt;Go 的 iota：设计缺陷还是“黑魔法”？—— 从一条“咆哮”推文谈起&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/24/from-fanren-to-three-body-top-programmers-power/"&gt;从《凡人修仙传》到《三体》：顶尖程序员的“降维打击”与“法则”之力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/24/honoring-1024-programmers-day/"&gt;致敬 1024 程序员节：写给奔跑在二进制世界里的你 (文末赠书)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends/"&gt;Go 语言观察：登顶“最受期待”榜首，JetBrains 2025报告洞悉未来趋势&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/23/go-ffi-new-paradigm/"&gt;Go FFI 的新范式：purego 与 libffi 如何让我们无痛拥抱 C 生态&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/22/seven-kubernetes-pitfalls/"&gt;7 个常见的 Kubernetes 陷阱（以及我是如何学会避免它们的）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/22/back-to-go-after-defection-to-java/"&gt;从 Go “叛逃”到 Java，再回归：一位开发者关于“魔法”与“显式”的深度反思&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/21/yang-zhengning-legacy-beyond-physics/"&gt;杨振宁先生留给我们的遗产，远不止于物理学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/21/10-go-programming-rules-from-reddit/"&gt;写出让同事赞不绝口的Go代码：Reddit工程师总结的10条地道Go编程法则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/20/k8s-1m-intro/"&gt;一个 Kubernetes 集群的“珠峰攀登”：从 10 万到 100 万节点的极限探索&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/19/flask-creator-choose-go/"&gt;为什么 Flask 的创造者选择 Go 作为他 AI 创业公司的核心语言？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/18/revisit-extreme-programming-in-the-age-of-ai/"&gt;AI 让代码产出速度提升 10 倍，为什么我们的软件交付成功率却停滞不前？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/18/lessons-from-java-26-years-evolution/"&gt;Go 技术沉思录：Java 26 年演进史给我们带来的启示&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/17/detect-charset-in-go/"&gt;收到非 UTF-8 文本怎么办？Go 字符集检测的探索与实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/16/rethink-996-culture/"&gt;划船，还是扬帆？重新审视 996 文化背后的杠杆缺失&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/16/cpu-cache-friendly-in-go/"&gt;释放 Go 的极限潜能：CPU 缓存友好的数据结构设计指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/15/physics-in-fanren/"&gt;《凡人修仙传中的物理学》：当韩天尊遇见爱因斯坦&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/15/go-archaeology-defer/"&gt;Go 考古：defer 的“救赎”——从性能“原罪”到零成本的“开放编码”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/13/string-and-rune-in-go/"&gt;string 与 rune 的设计哲学：为什么Go 程序员很少为“乱码”烦恼？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/12/the-programmer-identity-crisis/"&gt;从“键盘牛仔”到“规范工程师”，AI 浪潮下的程序员身份危机&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/11/go-is-a-good-first-programming-language/"&gt;Go作为第一门编程语言：天才之选还是糟糕开端？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/10/proposal-add-buffer-peek/"&gt;Go 零拷贝“最后一公里”：Peek API背后的设计哲学与权衡&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/09/json-isnt-json/"&gt;Go开发者必读：JSON 的跨语言陷阱与 Go 防御指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/08/go-network-programming-complete-guide/"&gt;只会 net/http 还不够，Go 网络编程的“深水区”你敢闯吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/07/proposal-must-do/"&gt;Go 标准库提供一个“Must” 函数？社区关于“断言式初始化”的思考&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/04/the-software-essays-that-shaped-me/"&gt;超越时间的智慧：重读那些定义了现代软件开发的经典文章&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/10/02/go-archaeology-slice/"&gt;Go 考古：Slice 的“隐秘角落”——只读切片与扩容策略的权衡&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202509"&gt;2025.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/30/good-taste-in-software-engineering/"&gt;除了技术能力，什么决定了软件工程师的上限？答案是“品味”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25/"&gt;并发测试神器 synctest的“成人礼”：从goroutine泄漏到微妙的竞态，Go团队如何修复三大“首日bug”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/28/how-top-performers-stand-out-in-the-age-of-ai/"&gt;Dropbox最新研究解读：AI 正在拉平生产力差距，顶尖开发者如何脱颖而出？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals/"&gt;Go 结构体初始化的“反直觉”设计终于要改了？深入探讨嵌入字段直接初始化提案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/26/self-reliant-programmer"&gt;“自立程序员宣言”解读：这不就是我们一直在说的Go语言哲学吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/25/go-security-past-present-and-future/"&gt;Go 安全的“隐形战争”：过去、现在与未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/24/evolving-your-go-api/"&gt;Go团队成员的忠告：在你的API变得无法挽回之前，必须掌握的四条原则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries/"&gt;“可移植性”的隐藏成本：Go为何要重塑maphash并划定新的运行时边界？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/22/go-team-gave-up-on-features/"&gt;“我们放弃了”——Go 团队坦诚布公，聊聊那些可能永远不会加入 Go 的功能&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/21/why-maintainers-should-say-no-to-good-idea/"&gt;面对“好主意”，为何开源项目的维护者必须学会说“不”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases"&gt;重构还是重写？GitHub工程师维护Go大项目的实践指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/19/the-tension-in-programmer-comments/"&gt;Go写业务是垃圾？Rust重写是坨屎？聊聊程序员评论区里的那股“煞气”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/18/go-runtime-free-proposal/"&gt;从arena、memory region到runtime.free：Go内存管理探索的务实转向&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/17/some-things-i-keep-repeating-about-go/"&gt;Dave Cheney 复出首谈：那些我反复强调的Go编程模式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/16/go-language-when-simple-becomes-complex/"&gt;Go 语言的灵魂之问：当“简单”变得“复杂”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/15/go-context-column/"&gt;context：Go 语言的“天问”，你真的懂了吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/14/code-complete-with-steve-mcconnell/"&gt;软件工程的永恒法则：《代码大全》作者访谈给我们的三大启示&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/13/package-managers-are-evil/"&gt;“包管理器是万恶之源”：一次来自Odin语言作者的灵魂拷问&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/12/go-constructor-pattern-guide/"&gt;超越零值：Go语言“构造模式”深度指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/11/microsoft-is-getting-rusty/"&gt;Azure CTO 深度解读：微软为何要用 Rust “替换” C/C++，又将如何用 AI 加速代码迁移？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes/"&gt;直面依赖之痛与TLS简化：GopherCon 2025贡献者峰会核心纪要深度解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/10/introducing-the-mcp-registry/"&gt;MCP协议注册中心发布：Go在下一代AI基础设施中扮演关键角色&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/09/the-power-of-ten-in-go/"&gt;NASA的十大编码“诫律”：Go视角的全新解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels/"&gt;从《凡人修仙传》看程序员境界：道友，你修炼到哪一层了？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/07/the-power-of-an-interface-for-performance/"&gt;为什么说“接口”，而非代码或硬件堆砌，决定了系统的性能上限？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/06/gopher-pseudocode-translation-guide/"&gt;告别算法“天书”，Go程序员的学术伪代码“翻译”指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/05/go-proxy-revise-background-refresh-pacing/"&gt;Go Proxy的“背景刷新”机制，是优化还是“DDoS”？一次社区事件引发的深度复盘&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/04/simple-is-not-easy/"&gt;“简单”不是“容易”：Go开发者应该懂的5个道理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/03/gopher-first-lesson-to-big-factory/"&gt;Gopher直通大厂，就从这第一课开始！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/02/amazon-cto-werner-vogels-9-commandments/"&gt;亚马逊CTO Werner Vogels的9条军规&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/01/uber-150-million-reads/"&gt;从 0 到 1.5 亿 QPS：Uber 核心存储架构的十年演进与缓存设计哲学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/09/01/system-programming-in-go/"&gt;成为更完整的 Go 工程师，从补上这堂系统编程课开始&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202508"&gt;2025.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work/"&gt;“无聊”设计的终极奥义：为什么“做可能奏效的最简单的事”是最高法则？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/30/python-an-origin-story"&gt;Python简史：一个圣诞节的“私活”项目，如何改变了编程世界？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/29/good-api-design/"&gt;无聊的API是最好的API：从系统设计到接口契约的九条法则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/28/go-primer-published/"&gt;我的Gopher“长期主义”：从《Go语言第一课》新书说起&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/27/go-interface-embrace-data/"&gt;Go语言的“灵魂拷问”：接口只关乎行为，还是也应拥抱数据？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/26/good-system-design/"&gt;无聊即可靠：一位资深工程师的九条系统设计法则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy/"&gt;告别性能猜谜：一份Go并发操作的成本层级清单&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/25/documents-the-architects-programming-language/"&gt;掌握架构师的“编程语言”：将“想法”部署到“人”的艺术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/25/go-is-still-not-good/"&gt;Go的“七宗罪”：一篇“Go依然不够好”如何引爆社区激辩？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/24/junior-engineer-survival-guide-in-ai-age/"&gt;AI 时代的初级工程师生存指南：别让“万能”的AI工具，毁掉你最宝贵的成长期&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/23/proposal-errors-asa/"&gt;泛型重塑Go错误检查：errors.As的下一站AsA？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/22/go-simd-package-preview/"&gt;解锁CPU终极性能：Go原生SIMD包预览版初探&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/21/go-rust-official-voices/"&gt;哲学家与工程师：为何Rust和Go的“官方之声”如此不同？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/20/large-scale-logging-made-easy/"&gt;日志查询从70小时到10秒？VictoriaMetrics联创揭示PB级日志处理性能奥秘&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/19/rust-in-2025/"&gt;Rust 2025 深度解读：在十周年里程碑上，Niko Matsakis 如何擘画下一个时代的灵魂与蓝图？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/18/ai-app-dev-guide-for-gopher/"&gt;收藏级指南：Gopher AI入局路线图&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/17/best-linux-os-for-robotics-in-2025/"&gt;2025年最佳机器人Linux操作系统——顶级发行版与最新进展！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/17/create-pointer-to-simple-types/"&gt;从 Rob Pike 的提案到社区共识：Go 或将通过 new(v) 彻底解决指针初始化难题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/16/brand-new-os-impossible/"&gt;内核之外的冰山：为什么说从零写一个操作系统已几乎不可能？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/15/some-changes-in-go-1-25/"&gt;Go 1.25中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/14/rs-py-ts-trifecta/"&gt;AI正在重塑编程语言格局：Rust、Python和TypeScript真是最终赢家吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/13/bit-manipulation-in-go"&gt;二进制的“魔术”：每个Go程序员都应掌握的位操作艺术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/12/go-identity-crisis/"&gt;Go 的“身份危机”：当新 Gopher 试图将它变成他们最爱的语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/11/why-go-not-embrace-iouring/"&gt;为何Go语言迟迟未能拥抱 io_uring？揭秘集成的三大核心困境&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/10/debugging-incidents-in-google/"&gt;Google 揭秘生产环境调试心法：SRE 与 SWE 的四大思维差异与实战路径&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/09/true-streaming-support-in-jsonv2/"&gt;Go json/v2实战：告别内存爆炸，掌握真流式Marshal和Unmarshal&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/08/go-tui-primer/"&gt;想用Go复刻“Claude Code”？那你得先补上TUI这一课&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/07/fork-go-module/"&gt;Go模块的“分叉之痛”：一个提案能否终结“全局替换”的噩梦？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/06/blitzkrieg-vs-attrition-in-ai-age/"&gt;警惕 AI 效率神话：你是“闪电战”的独立开发者，还是“持久战”的工程师？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/06/go-new-engine-of-old-languages/"&gt;Go语言正在成为“老旧”生态的“新引擎”？从 FrankenPHP 和新版 TypeScript 编译器谈起&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/05/the-voice-of-k8s-experts-report-2025/"&gt;后VMware时代：为什么Kubernetes正在成为VM的新家？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/05/go-concurrency-mental-model/"&gt;从“锁”到“channel”：开启你的Go并发心智模型转变之旅&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar/"&gt;持续性能分析正在成为继Metrics、Logs 和 Traces之后，可观测性的“第四大支柱”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/03/choose-boring-technology/"&gt;AI 正在放大技术选型的风险：为什么我们更应该“选择无聊的技术”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/02/proposal-http3/"&gt;Go官方 HTTP/3 实现终迎曙光：x/net/http3 提案启动，QUIC 基础已就位&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/08/01/proposal-purego/"&gt;purego 标签到底是什么意思？一场长达六年的社区辩论终于有了定论&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202507"&gt;2025.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/31/periodic-table-of-system-design/"&gt;系统设计的“元素周期表”：40个横跨所有领域的通用设计原则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/30/six-principles-production-ai-agents/"&gt;你的 AI Agent 为何总“犯傻”？构建生产级 Agent 所需的6大工程原则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/29/slog-multihandler/"&gt;slog 如何同时输出到控制台和文件？MultiHandler 提案或将终结重复造轮子&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/28/go-fix-reborn/"&gt;Go fix 命令将迎“重生”：移除过时功能，为集成现代化代码分析器铺平道路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/27/native-prometheus-instrumentation-over-opentelemetry/"&gt;Prometheus 联合创始人的警告：在使用 OpenTelemetry 生成 Metrics 前请三思！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/26/migrate-from-prometheus-to-victoriametrics/"&gt;为什么 VictoriaMetrics 正在替换 Prometheus？一次大规模可观测性迁移实录&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/25/how-anthropic-teams-use-claude-code/"&gt;Anthropic内部实践首次公开：揭秘Claude Code如何引爆全员生产力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/25/writing-is-thinking/"&gt;写作即思考：AI 时代，开发者为什么要警惕“思考外包”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity/"&gt;Go vs. Rust vs. C++：从语言规范长度看三种不同的“复杂性”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/24/go-at-american-express-today/"&gt;美国运通复盘Go语言实践：从依赖管理到并发模型，七大经验教训全解析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/24/deadlock-detection-by-gc/"&gt;Goroutine泄漏防不胜防？Go GC或将可以检测“部分死锁”，已在Uber生产环境验证&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/23/uber-perfinsights/"&gt;Uber性能优化实践：如何用 GenAI 将 Go 代码调优从数周缩短至数小时？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/23/go-surge-in-popularity/"&gt;不止是云原生：为什么 Go 的热度在持续上升？来自社区的真实声音&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust/"&gt;Rust 的安全神话？数据库 CEO 为何在关键系统中仍选 C++&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/22/go-swiss-table-map-user-report/"&gt;Go 1.24用户报告：Datadog如何借助 Swiss Tables版map节省数百 GB 内存？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/21/go-crypto-101/"&gt;解密 Go 安全核心：7 步掌握现代密码学工程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/20/mitchell-hashimoto-agentic-engineering/"&gt;HashiCorp创始人Mitchell Hashimoto 的 Agentic Engineering 实战心法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python/"&gt;Go 比 Python 更懂“Python 之禅”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/16/when-spaghetti-code-knocks/"&gt;一张图读懂Go的生存之道：当“面条代码”来敲门&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/15/the-agentic-software-engineer/"&gt;AI 正在重写“软件工程师”的岗位描述：未来你需要这 6 项核心技能&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/14/writing-style-guide/"&gt;代码之外的必修课：顶级技术文档风格指南如何提升你的工程效率&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/12/insanely-productive-in-go/"&gt;Go 的“无聊”超能力：为什么“选项更少”反而让你更快？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/11/net-http-pprof-v2/"&gt;Go pprof 迎来重大革新：v2 提案详解，告别默认注册，拥抱飞行记录器&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/10/stop-building-ai-agents/"&gt;停止构建AI Agent！这里有5个更简单的LLM工作流模式，能解决90%的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/10/mcp-official-go-sdk/"&gt;上手MCP官方Go SDK：一份面向实战的入门指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/09/gemini-cli-starting-guide/"&gt;你的命令行，即将迎来一场“AI 革命”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/08/typed-struct-tags/"&gt;告别字符串魔法：Go 迎来类型化 Struct Tag 提案，编译期安全触手可及？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/07/go-module-supply-chain-attack-case/"&gt;“先发布，后审核”：Go模块生态的阿喀琉斯之踵？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/05/agentic-coding-is-the-future/"&gt;拥抱Agentic Coding：软件开发的未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/05/go-is-8020-language/"&gt;读懂Go的设计哲学：为什么说它是“恰到好处”的80/20语言？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/04/slm-is-the-future-of-agentic-ai/"&gt;NVIDIA 的颠覆性观点：AI Agent 的未来，属于小模型 (SLM)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang/"&gt;Twitch工程师的Go进阶之路：为何你写的Go代码，总感觉“不对劲”？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/03/meet-the-go-team-2012/"&gt;Go考古：创始人亲述Go语言的“创世纪”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/02/vibe-specs/"&gt;别再直接让 AI 写代码了！试试这个“Vibe Specs”模式，效率提升60%&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202506"&gt;2025.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/07/01/predicting-the-future-of-distributed-systems/"&gt;特斯拉首席工程师的忠告：用“单向门 vs 双向门”决策，看清分布式系统的未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/29/thinking-parallel-programming/"&gt;Go并行编程的“第一性原理”：Guy Steele 教你如何“不去想”并行&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/27/from-java-to-go/"&gt;Gopher视角：Java开发者转向Go时，最需要“掰过来”的几个习惯&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/26/non-deterministic-abstraction/"&gt;Martin Fowler最新洞察：LLM 不止是“更高”的抽象，它正在改变编程的“本质”！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/24/grab-rewrote-go-service-in-rust/"&gt;Go vs. Rust再掀波澜：Grab真实案例复盘，Gopher如何看待这场“效率与代价”之争？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers/"&gt;Go 解析器的“隐秘角落”：encoding/json 的安全陷阱与 JSONv2 的救赎&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/21/kubernetes-2-0/"&gt;Kubernetes 2.0 畅想：告别 YAML、etcd 束缚与 Helm 之痛，K8s 的下一站是什么？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/20/redmonk-index-2025-jan/"&gt;RedMonk最新排行出炉：Go语言稳居Top 12，AI 冲击下 Stack Overflow 权重生变？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/20/about-errors-join/"&gt;Go errors.Join：是“天赐之物”还是“潘多拉魔盒”？——深入错误聚合的适用场景与最佳实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/18/inside-goroutine-scheduler-column/"&gt;解构Go并发之核，与Dmitry Vyukov共探Go调度艺术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/17/rider-elephant-arch/"&gt;“骑手与大象”架构：超越微服务与单体之争的务实之道？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/15/rust-vs-go-2025/"&gt;Go还是Rust？2025年技术选型之辩&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/14/go-1-25-foresight/"&gt;Go 1.25新特性前瞻：GC提速，容器更“懂”Go，json有v2了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/12/grog-brain-heaven/"&gt;爽就完了！Go语言的“简单之美”为何让开发者直呼过瘾？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/11/the-gentle-singularity/"&gt;Sam Altman的“温和奇点”已至：我们真的越过了AI的“事件视界”吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/09/go-simd-intrinsics/"&gt;告别手写汇编：Go官方提出原生SIMD支持，高性能计算将迎来巨变&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/07/nucleus-embryo/"&gt;“Rustacean”胚胎 vs “Gopher”胚胎：假如用技术栈测“人格”，你会是哪一款？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/07/allow-serving-module-under-subdir"&gt;千呼万唤始出来？Go 1.25解决Git仓库子目录作为模块根路径难题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/06/go-monorepo/"&gt;Go项目该拥抱Monorepo吗？Google经验、etcd模式及白盒交付场景下的深度剖析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/04/error-syntax/"&gt;Go 错误处理语法之争尘埃落定？Go 团队为何十五年探索后仍选择“不”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/03/provocation-about-ai-assisted-programming/"&gt;AI 编码工具“真香”还是“智商税”？一位资深码农的“挑衅”与Go开发者的反思&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/06/03/lightweight-anonymous-func-syntax/"&gt;Go的简洁性之辩：轻量级匿名函数提案为何七年悬而未决？&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202505"&gt;2025.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/31/six-smells-in-go/"&gt;“这代码迟早出事！”——复盘线上问题：六个让你头痛的Go编码坏味道&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/30/gopher-girlfriend/"&gt;当Gopher拥有了“Go语言女友”：一张图带你读懂Go的那些“可爱”特性&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/29/xiter-declined"&gt;Go x/exp/xiter提案搁浅背后：社区的选择与深度思考&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/26/monitor-design-with-red/"&gt;云原生时代，如何用RED三板斧搞定服务监控？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/25/go-at-googleio-2025/"&gt;Google I/O 2025 Go 语言进展：生产力、生产就绪与 AI 赋能&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/23/go-api-design-mcp-sdk/"&gt;API设计的“Go境界”：Go团队设计MCP SDK过程中的取舍与思考&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/22/go-mod-ignore-directive/"&gt;Go工具链进化：go.mod新增ignore指令，破解混合项目构建难题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/22/go-sbom-practice/"&gt;透视软件供应链安全：SBOM标准解读与Go项目生成指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/21/go-crypto-audit/"&gt;权威认证：Go核心密码学库通过独立安全审计&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/20/post-quantum-cryptography-in-go/"&gt;未雨绸缪：Go开发者需要了解的后量子密码学与实现现状&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/19/shardedvalue-per-cpu-proposal/"&gt;原子操作的瓶颈与Go的多核扩展性之痛：深入剖析sync.ShardedValue及per-CPU提案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/17/java-at-30/"&gt;Java屹立30年，Go的“少年壮志”如何续写辉煌？——来自Java之父的“长寿秘诀”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/16/energy-savings-if-abandon-https/"&gt;思想实验：如果全球网站一夜之间弃用HTTPS，能为地球节省多少电？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/16/how-rune-came/"&gt;揭秘Go语言中的rune：一段跨越30年的Plan 9往事与UTF-8的诞生传奇&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/15/go-json-v2/"&gt;手把手带你玩转GOEXPERIMENT=jsonv2：Go下一代JSON库初探&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/14/which-go-router-should-i-use/"&gt;从Go路由选择看“标准库优先”：何时坚守？何时拓展？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/13/goos-none-proposal/"&gt;Go运行时底层接口标准化？“GOOS=none”欲为Go铺设通往裸金属、固件和微控制器的桥梁&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/13/go-prefer-less-framework/"&gt;Go社区的“轻框架”理念：自由的馈赠还是无形的枷锁？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/12/go-advanced-course/"&gt;从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/11/ian-lance-taylor-leave-go/"&gt;Go语言进入“后元老时代”？Ian Lance Taylor离职引发的思考：传承、创新与社区&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/11/deep-into-pkg-go-dev/"&gt;Go包维护者必读：如何让你的Go包更易被发现、文档更专业？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/10/rust-dependencies-scare-me/"&gt;百万行依赖的“恐惧”：一位Rust开发者的深度反思与Go的启示&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/09/github-english-communication-patterns-and-practice/"&gt;GitHub英语沟通太难？别让语言成为你参与顶级Go项目的拦路虎！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/08/go-dwarf5/"&gt;Go 1.25链接器提速、执行文件瘦身：DWARF 5调试信息格式升级终落地&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/07/debug-with-diff-cover/"&gt;代码覆盖率新玩法：Russ Cox教你用差异化分析加速Go调试&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/06/cheating-the-reaper-in-go/"&gt;解读“Cheating the Reaper”：在Go中与GC共舞的Arena黑科技&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/05/03/go-green-tea-garbage-collector/"&gt;Go新垃圾回收器登场：Green Tea GC如何通过内存感知显著降低CPU开销？&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202504"&gt;2025.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/30/go-vs-zig-in-error-handling/"&gt;“错误即值”，不同实现：Go与Zig错误处理哲学对比&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/29/hard-truths-before-switching-to-go/"&gt;Go的简洁神话？转Go前你需要知道的5个“真相”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/28/five-cache-strategies/"&gt;Go开发者必知：五大缓存策略详解与选型指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/28/go-ecosystem/"&gt;go-yaml归档背后：Go开源生态的“脆弱”与“韧性”，我们该如何看待？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/27/rob-pike-on-bloat/"&gt;Rob Pike的“抱怨”与Go的“解药”：直面软件膨胀的四大根源&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/26/13-laws-of-software-engineering/"&gt;【规律之手】资深码农都懂？软件工程中的13条“潜规则”定律&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/25/hidden-costs-of-go-value-receiver/"&gt;一个字符引发的30%性能下降：Go值接收者的隐藏成本与优化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/24/conventional-commits-guide/"&gt;拯救你的Commit Log：Conventional Commits实践指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/24/multiple-containers-pod-pattern/"&gt;Go应用的K8s“最佳拍档”：何时以及如何用好多容器Pod模式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/23/tips-for-reading-technical-books/"&gt;世界读书日：如何高效阅读“砖头”技术书？我的心法分享&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/22/go-ai-knowledge-community-launch/"&gt;不止Go，更是Go+AI：我的知识星球「Go &amp;amp; AI 精进营」全新启航！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/21/go-project-design-antipatterns/"&gt;Go项目设计的“七宗罪”？警惕那些流行的“反模式”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/19/learn-go-in-ai-era/"&gt;AI会写Go代码了，初学者还需要系统学习吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/18/reproduce-thorsten-balls-code-agent/"&gt;代码Agent没有护城河？我用Go标准库和DeepSeek证明给你看！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/17/go-is-badly-designed/"&gt;“Go is badly designed”？它像极了我们当年恨过的物理老师！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/17/standardize-the-hash-function/"&gt;自定义Hash终迎标准化？Go提案maphash.Hasher接口设计解读&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/16/ai-protocol-prefer-jsonrpc/"&gt;AI新宠？解读MCP、A2A为何偏爱JSON-RPC 2.0&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/15/embrace-modern-go-style-with-gopls-modernize/"&gt;11个现代Go特性：用gopls/modernize让你的代码焕然一新&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/14/what-is-a2a-protocol/"&gt;告别智能体孤岛：谷歌A2A协议能否成为企业AI协作的通用语？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/13/top-programmers-methods-mindset/"&gt;揭秘顶尖技术专家的15个关键方法与心态，不只靠代码&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/11/uber-go-pgo-optimization/"&gt;Go开发者必看！Uber如何利用PGO将Go服务性能优化推向新高度？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/"&gt;Go开发者必看！JetBrains 2024报告深度解读：Go语言现状、趋势与未来机遇&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/09/gomaxprocs-defaults-add-cgroup-aware/"&gt;Go 1.25新提案：GOMAXPROCS默认值将迎Cgroup感知能力，终结容器性能噩梦？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/07/go-testing-add-attr-and-artifactdir/"&gt;Go testing包将迎来新增强：标准化属性与持久化构件API即将落地&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/04/03/waitgroup-go-proposal/"&gt;WaitGroup.Go要来了？Go官方提案或让你告别Add和Done样板代码&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202503"&gt;2025.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/31/openpubkey-ssh-open-source/"&gt;Go安全版图再添利器：OpenPubkey SSH开源，用SSO彻底改变SSH认证&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/28/go-mod-verify-tag/"&gt;Go模块发布流程再加固：go mod verify -tag提案详解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/27/remove-coretypes-from-go-spec/"&gt;Go 1.25规范大扫除：移除“Core Types”，为更灵活的泛型铺路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/24/understand-methodname-scope/"&gt;Go方法名的作用域：包级，但需间接调用&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/16/gemini-deep-research-experience/"&gt;体验Gemini Deep Research：以Go语言未来演进方向分析为例&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/13/interview-with-anders-hejlsberg/"&gt;Anders Hejlsberg专访全文：TypeScript正在向Go移植&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/12/typescript-native-port-to-go/"&gt;Anders Hejlsberg谈TypeScript编译器向Go移植的实践与规划&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/11/building-effective-agents/"&gt;构建高效的AI智能体&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/03/04/deep-dive-into-gocacheprog-custom-extensions-for-go-build-cache/"&gt;深入GOCACHEPROG：Go构建缓存的自定义扩展&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202502"&gt;2025.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/02/16/some-changes-in-go-1-24/"&gt;Go 1.24中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal/"&gt;关于Go错误处理新提案的一个想法：?操作符这样用行不行&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/02/05/go-encoding-json-v2-proposal-json-processing-new-engine/"&gt;Go encoding/json/v2提案：JSON处理新引擎&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202501"&gt;2025.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/01/23/the-hidden-details-of-go-exported-identifiers/"&gt;Go导出标识符：那些鲜为人知的细节&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/01/22/gcflags-options-list-and-usage/"&gt;探索Go gcflags的使用模式与完整参数选项列表&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/01/14/understand-go-and-toolchain-in-go-dot-mod/"&gt;Go工具链版本已不由你定：go和toolchain指令详解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/"&gt;2024年Go语言盘点：排名历史新高，团队新老传承&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二四"&gt;二零二四&lt;/h3&gt;
&lt;h4 id="202412"&gt;2024.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion/"&gt;探索基于pion开发的WebRTC应用的建连过程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/23/convert-github-issue-to-markdown-with-issue2md/"&gt;使用issue2md将Github issue转换为Markdown&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/17/go-1-24-foresight-part2/"&gt;Go 1.24新特性前瞻：工具链和标准库&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/16/go-1-24-foresight-part1/"&gt;Go 1.24新特性前瞻：语法、编译器与运行时&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish/"&gt;WebRTC第一课：从信令、ICE到NAT穿透的连接建立全流程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/11/simulate-quantum-computing-in-go/"&gt;量子计算入门与Go模拟&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network/"&gt;探索Docker默认网络NAT映射的分配与过滤行为&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/12/02/why-go-sucks/"&gt;惊！Go在十亿次循环和百万任务中表现不如Java，究竟为何？&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202411"&gt;2024.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work/"&gt;WebRTC第一课：网络架构与NAT工作原理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/24/how-to-support-hash-based-bisect-in-go-package/"&gt;一文搞懂如何在Go包中支持Hash-Based Bisect调试&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package/"&gt;Go包构建：专家也未必了解的文件选择细节&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/16/go-crypto-and-fips-140/"&gt;走向合规：Go加密库对FIPS 140的支持&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/15/install-gotip-using-go-repo-mirror/"&gt;Gotip安装：基于Go镜像代码仓库&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/14/go-map-use-swiss-table/"&gt;Go map使用Swiss Table重新实现，性能最高提升近50%&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/12/go-turns-15/"&gt;Go，15岁了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/11/some-details-about-go-compilation/"&gt;Go编译的几个细节，连专家也要停下来想想&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/07/exploring-caddy/"&gt;从简单到强大：再次探索Caddy服务器的魅力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/03/become-the-one-with-the-hammer/"&gt;成为那个拿锤子的人&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/11/01/introduction-to-passkey/"&gt;构建无密码认证：passkey入门与Go实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202410"&gt;2024.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/29/go-coding-is-like-drinking-boiled-water/"&gt;写Go就像喝白开水&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/27/ten-details-when-using-documentation-comments/"&gt;写出Go标准库级别文档注释的十个细节&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/24/cognitive-load-impact-on-programming-language-choice-and-study"&gt;认知负荷对编程语言选择和学习的影响&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/19/go-crypto-package-design-deep-dive"&gt;Go开发者的密码学导航：crypto库使用指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/14/programming-in-ai-era/"&gt;智能时代临近：我眼中AI编程的现在与未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/11/go-evolution-dual-insurance-goexperiment-godebug/"&gt;Go语言演进的双保险：GOEXPERIMENT与GODEBUG&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/11/the-cl-author-guide-to-getting-through-code-review/"&gt;代码提交者的代码评审通关指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/"&gt;Go语言的新时代：新领导团队和未来规划&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/09/resonating-with-thorsten-ball-on-go-in-technical-writing/"&gt;与Thorsten Ball的共鸣：Go作为教学语言在技术写作中的优越性&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/"&gt;从DevOps到日常脚本：聊聊Go语言的多面性&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/05/using-git-submodules-in-go-projects/"&gt;Go项目中使用Git Submodule，还有这个必要吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/03/how-to-daemonize-go-program/"&gt;探索Go守护进程的实现方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/10/02/why-canonical-import-paths-no-longer-necessary-in-go/"&gt;为什么Canonical Import Path注释在Go中不再必要&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202409"&gt;2024.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/30/how-to-keep-up-with-go-evolution/"&gt;跟上Go演进步伐，你只需要关注这几件事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/28/understand-deep-copy-in-go/"&gt;Go语言中的深拷贝：概念、实现与局限&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/24/the-evolution-of-type-name-in-go-spec/"&gt;“类型名称”在Go语言规范中的演变&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/23/go-weak-package-preview/"&gt;Go weak包前瞻：弱指针为内存管理带来新选择&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/20/htmx-gopher-perfect-partner-for-full-stack/"&gt;htmx：Gopher走向全栈的完美搭档？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/18/understand-go-unique-package-by-example/"&gt;Go unique包：突破字符串局限的通用值Interning技术实现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/12/solve-the-empty-value-dilemma-in-json-encoding-with-omitzero/"&gt;JSON包新提案：用“omitzero”解决编码中的空值困局&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/10/programmer-mentors-and-their-classic-works/"&gt;致敬：程序员成长路上的良师与经典著作&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/09/06/go-doc-add-http-support/"&gt;重拾精髓：go doc -http让离线包文档浏览更便捷&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202408"&gt;2024.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/27/a-new-syntax-quiz-after-go-1-18/"&gt;Go 1.18之后的语法新特性Quiz，你能做对几个？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/22/go-as-first-language"&gt;从零开始编程：Go语言真的适合新手吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/19/some-changes-in-go-1-23/"&gt;Go 1.23中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/"&gt;都2024年了，当初那个“Go，互联网时代的C语言”的预言成真了吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/11/understand-functional-programming-in-go/"&gt;通过Go示例理解函数式编程思维&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus/"&gt;使用TLA+形式化验证Go并发程序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/08/04/gopherdaily-add-feed-support/"&gt;Gopher Daily支持Feed订阅&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202407"&gt;2024.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/07/21/simd-in-go/"&gt;Go语言中的SIMD加速：以矩阵加法为例&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/07/20/sql-query-execution-order/"&gt;通过实例理解SQL查询语句的执行顺序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/07/15/understand-the-ways-to-access-databases-in-go/"&gt;通过实例理解Go访问和操作数据库的几种方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/07/05/go-fundamentals-translation/"&gt;Go语言编程指南翻译记：一本书，一支队伍，一段难忘的旅程&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202406"&gt;2024.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/28/go-and-nn-part3-handwritten-digit-recognition/"&gt;Go与神经网络：手写数字识别&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23/"&gt;Go 1.23中的自定义迭代器与iter包&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team/"&gt;Go团队的工作方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/16/gopher-rust-first-lesson-managing-deps/"&gt;Gopher的Rust第一课：Rust的依赖管理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/10/go-and-nn-part2-linear-regression/"&gt;Go与神经网络：线性回归&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/06/06/gopher-rust-first-lesson-organizing-rust-code/"&gt;Gopher的Rust第一课：Rust代码组织&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202405"&gt;2024.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/30/go-1-23-foresight/"&gt;Go 1.23新特性前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/27/gopher-rust-first-lesson-first-rust-program/"&gt;Gopher的Rust第一课：第一个Rust程序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/19/what-the-go-team-think-go-is/"&gt;Go团队：Go是什么&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/17/the-early-evangelists-of-go/"&gt;Go早期的那些布道者&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/10/gopher-rust-first-lesson-setup-dev-env/"&gt;Gopher的Rust第一课：建立Rust开发环境&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/09/text-vectorization-using-ollama-and-go-based-on-text-embedding-models/"&gt;使用Ollama和Go基于文本嵌入模型实现文本向量化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/06/those-free-to-use-online-llm-services/"&gt;那些可免费使用的在线大语言模型服务&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/05/05/dead-code-elimination-and-executable-file-slimming-in-go/"&gt;Go未用代码消除与可执行文件瘦身&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202404"&gt;2024.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/04/24/go-journey-at-google/"&gt;从零到生产：Go在Google的历程[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/04/23/playing-with-meta-llama3-8b-on-cpu-using-ollama-and-openwebui/"&gt;使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/04/22/gopher-rust-first-lesson-all-about-rust/"&gt;Gopher的Rust第一课：Rust的那些事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/04/14/either-return-error-or-log-them-do-not-do-both/"&gt;要么返回错误值，要么输出日志，别两样都做&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/04/09/choose-the-right-go-module-path/"&gt;选择正确的Go Module Path&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202403"&gt;2024.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/03/29/the-issue-in-pkg-level-var-init-order-in-go-1-22/"&gt;Go 1.22引入的包级变量初始化次序问题&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202402"&gt;2024.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/02/18/some-changes-in-go-1-22/"&gt;Go 1.22中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202401"&gt;2024.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/01/24/rust-vs-go-in-2024"&gt;2024年的Rust与Go[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/01/08/go-unit-testing-deps-on-kafka/"&gt;依赖Kafka的Go单元测试例解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/01/07/what-we-got-right-what-we-got-wrong/"&gt;Go语言之父的反思：我们做对了什么，做错了什么&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2024/01/01/go-testing-by-example/"&gt;Go测试的20个实用建议&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二三"&gt;二零二三&lt;/h3&gt;
&lt;h4 id="202312"&gt;2023.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/31/the-2023-review-of-go-programming-language/"&gt;2023年Go语言盘点：稳中求新，稳中求变&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/25/go-1-22-foresight/"&gt;Go 1.22新特性前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/22/understand-oidc-by-example/"&gt;通过实例理解OpenID身份认证&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/16/understand-oauth2-by-example/"&gt;通过实例理解OAuth2授权&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/11/simplicity/"&gt;简单之道&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/10/go-changes/"&gt;Go未来演进：基于共同目标和数据驱动的决策&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/06/a-minimum-set-of-diagrams-for-expressing-software-architecture"&gt;有效表达软件架构的最小图集&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/12/03/understand-api-gateway-main-functional-features-by-example"&gt;通过实例理解API网关的主要功能特性&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202311"&gt;2023.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go/"&gt;Go语言gRPC服务Handler单元测试详解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/19/understand-go-web-cross-origin-problem-by-example/"&gt;通过实例理解Web应用跨域问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/15/relational-algebra-and-sql-with-go-examples/"&gt;关系代数、SQL语句和Go语言示例&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/11/go-opensource-14-years/"&gt;Go，14周年[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/08/understand-go-web-secret-management-by-example"&gt;通过实例理解Web应用的机密管理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/11/04/understand-go-web-authz-by-example/"&gt;通过实例理解Web应用授权的几种方式&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202310"&gt;2023.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/25/understand-password-storage-of-web-app-by-example/"&gt;通过实例理解Web应用用户密码存储方案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/23/understand-go-web-authn-by-example/"&gt;通过实例理解Go Web身份认证的几种方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/16/implementation-of-app-licensing-based-on-verifying-sign-by-pubkey/"&gt;基于公钥验签实现应用许可机制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/13/multiple-ways-to-bind-certificates-on-go-tls-server-side"&gt;Go TLS服务端绑定证书的几种方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices/"&gt;Service Weaver：以单体形式编码，以微服务形式部署&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/10/05/the-official-guide-of-organizing-go-project/"&gt;Go项目目录该怎么组织？官方终于出指南了！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202309"&gt;2023.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/09/28/dependency-injection-with-go/"&gt;聊聊Go与依赖注入&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/09/23/p2p-rtc-implementation-with-go-and-webrtc-data-channel/"&gt;使用Go和WebRTC data channel实现端到端实时通信&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/"&gt;聊聊Go语言的向前兼容性和toolchain规则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/09/04/slog-in-action-file-logging-rotation-and-kafka-integration/"&gt;slog实战：文件日志、轮转与kafka集成&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/09/01/slog-a-new-choice-for-logging-in-go"&gt;slog正式版来了：Go日志记录新选择！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202308"&gt;2023.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/08/30/how-to-build-with-only-archive-in-go/"&gt;编译Go应用的黑盒挑战：无源码只有.a文件，你能搞定吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/08/20/some-changes-in-go-1-21/"&gt;Go 1.21中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/08/11/introduction-to-the-gonew-tool/"&gt;Go项目初始化不再困扰你：gonew全方位解析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/08/06/gopherdaily-revamped/"&gt;Gopher Daily改版了&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202307"&gt;2023.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/31/a-guide-of-using-apache-arrow-for-gopher-part6/"&gt;Go语言开发者的Apache Arrow使用指南：读写Parquet文件&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/22/a-guide-of-using-apache-arrow-for-gopher-part5/"&gt;Go语言开发者的Apache Arrow使用指南：扩展compute包&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/16/the-guide-of-go-testing-with-testify-package/"&gt;使用testify包辅助Go测试指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/13/a-guide-of-using-apache-arrow-for-gopher-part4/"&gt;Go语言开发者的Apache Arrow使用指南：数据操作&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/08/a-guide-of-using-apache-arrow-for-gopher-part3/"&gt;Go语言开发者的Apache Arrow使用指南：高级数据结构&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/07/01/arrow-columnar-analytics/"&gt;Apache Arrow：驱动列式分析性能和连接性的提升[译]&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202306"&gt;2023.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/06/30/a-guide-of-using-apache-arrow-for-gopher-part2"&gt;Go语言开发者的Apache Arrow使用指南：内存管理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/06/25/a-guide-of-using-apache-arrow-for-gopher-part1"&gt;Go语言开发者的Apache Arrow使用指南：数据类型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/06/18/go-package-design-guide/"&gt;Go语言包设计指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/06/13/understand-go-gc-overhead-behind-the-convenience/"&gt;Go GC：了解便利背后的开销&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/06/04/reflection-programming-guide-in-go/"&gt;Go语言反射编程指南&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202305"&gt;2023.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/28/understand-time-series-of-tsdb/"&gt;理解时序数据库的时间线&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/27/control-flow-statement-in-go/"&gt;聊聊Go语言的控制语句&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/21/go-and-nn-part1-tensor-operations"&gt;Go与神经网络：张量运算&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/14/a-guide-of-using-go-error-chain/"&gt;Go错误处理：错误链使用指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/10/a-guide-of-managing-multiple-go-modules-in-mono-repo/"&gt;Go项目组织：在单一repo中管理多个Go module指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/05/05/go-value-and-pointer/"&gt;Go：值与指针&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202304"&gt;2023.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/04/26/go-1-21-foresight/"&gt;Go 1.21新特性前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/04/20/provide-fake-object-for-external-collaborators/"&gt;单测时尽量用fake object&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/04/16/understanding-unsafe-assume-no-moving-gc/"&gt;理解unsafe-assume-no-moving-gc包&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/04/08/the-reason-why-go-test-fails-when-module-path-is-main/"&gt;一文告诉你当module path为main时执行go test失败的真正原因&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/04/02/map-element-types-support-in-place-update/"&gt;一文告诉你哪些map element类型支持就地更新&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202303"&gt;2023.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/30/automated-testing-driven-by-go-test/"&gt;使用go test框架驱动的自动化测试&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/25/the-guide-of-developing-cli-program-in-go"&gt;Go开发命令行程序指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/22/global-variable-in-go/"&gt;聊聊Go语言的全局变量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/20/godoc-vs-go-doc-vs-pkgsite/"&gt;聊聊godoc、go doc与pkgsite&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/15/an-intro-of-go-subtest/"&gt;一文搞懂Go subtest&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/12/is-go-object-oriented/"&gt;Go是一门面向对象编程语言吗&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/03/03/the-approach-to-go-get-private-go-module-in-house-part3/"&gt;小厂内部私有Go module拉取方案3&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202302"&gt;2023.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/02/23/learn-go-in-10-min"&gt;十分钟入门Go语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/02/22/rust-vs-go-in-2023/"&gt;2023年的Rust与Go[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/02/19/how-to-determine-if-two-interface-vars-are-equal/"&gt;一文告诉你如何判断Go接口变量是否相等&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/02/08/some-changes-in-go-1-20/"&gt;Go 1.20中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/02/01/serialize-roaring-bitmap-to-json"&gt;将Roaring Bitmap序列化为JSON&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202301"&gt;2023.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/01/13/go-and-tls13"&gt;聊聊Go与TLS 1.3&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/01/11/2022-blog-summary"&gt;2022年博客回顾与总结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/"&gt;聊聊Prometheus Gauge的增减操作实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二二"&gt;二零二二&lt;/h3&gt;
&lt;h4 id="202212"&gt;2022.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/12/29/the-2022-review-of-go-programming-language"&gt;2022年Go语言盘点：泛型落地，无趣很好，稳定为王&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/12/19/argentina-wins-qatar-world-cup"&gt;阿根廷圆梦卡塔尔世界杯，梅西正式加冕第三代球王&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/12/18/go-type-system"&gt;Go类型系统：有何与众不同&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/12/07/why-go-succeed/"&gt;Go为什么能成功&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202211"&gt;2022.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/11/26/intro-of-google-go-style"&gt;这可能是最权威、最全面的Go语言编码风格规范了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/11/17/go-1-20-foresight"&gt;Go 1.20新特性前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/11/15/using-reflect-to-manipulate-channels"&gt;使用反射操作channel&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/11/11/go-opensource-13-years/"&gt;Go，13周年[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/11/08/understand-go-context-by-example"&gt;通过实例理解Go标准库context包&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202210"&gt;2022.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/30/first-exploration-of-slog"&gt;slog：Go官方版结构化日志包&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/27/when-encountering-slice-during-function-design"&gt;当函数设计遇到切片&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/25/the-modules-that-go-standard-library-depend-on"&gt;Go标准库依赖的那些modules&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/21/understand-go-ssa-by-example/"&gt;通过实例理解Go静态单赋值（SSA）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/17/understand-go-inlining-optimisations-by-example"&gt;通过实例理解Go内联优化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/10/04/remembering-grandma-and-grandpa-on-chung-yeung-festival/"&gt;重阳节思姥姥姥爷&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202209"&gt;2022.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/09/25/the-tao-of-go"&gt;Go语言之道[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/09/20/use-viper-to-do-merge-of-yml-configuration-files/"&gt;使用viper实现yaml配置文件的合并&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner"&gt;如何像gitlab-runner那样将Go应用安装为系统服务&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/09/10/an-intro-of-govulncheck"&gt;有没有安全漏洞，你说了不算，govulncheck是裁判！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/09/08/make-reviewdog-support-gitlab-push-commit-to-preserve-the-code-quality-floor"&gt;让reviewdog支持gitlab-push-commit，守住代码质量下限&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202208"&gt;2022.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/08/28/the-visiting-notes-of-2022-china-air-force-aviation-open-day/"&gt;因为热爱：2022年空军航空开放日观展记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/08/22/some-changes-in-go-1-19"&gt;Go 1.19中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/08/15/developing-kubernetes-operators-in-go-part1"&gt;使用Go开发Kubernetes Operator：基本结构&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/08/12/practices-of-multi-label-based-issue-driven-software-development"&gt;基于多label的issue驱动软件开发的实践&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202207"&gt;2022.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/07/25/bidirectional-data-exchange-between-kernel-and-user-states-of-ebpf-programs-using-go"&gt;使用Go语言实现eBPF程序内核态与用户态的双向数据交换&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/07/19/develop-ebpf-program-in-go/"&gt;使用Go语言开发eBPF程序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/07/17/two-way-authentication-using-go-and-sm-algorithm"&gt;使用Go基于国密算法实现双向认证&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master"&gt;GoCN社区Go读书会第二期：《Go语言精进之路》&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/07/05/develop-hello-world-ebpf-program-in-c-from-scratch"&gt;使用C语言从头开发一个Hello World级别的eBPF程序&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202206"&gt;2022.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/21/data-race-detection-and-pattern-in-go"&gt;Go语言数据竞争检测与数据竞争模式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/18/the-approach-to-go-get-private-go-module-in-house-part2"&gt;小厂内部私有Go module拉取方案（续）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/15/prometheus-can-not-pick-up-data-because-of-the-prometheus-client-package"&gt;Prometheus采不到数据了！居然是Prometheus client包的锅&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/12/go-1-19-foresight"&gt;Go 1.19新特性前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/06/the-disappeared-method-in-method-set"&gt;Go：方法集合中“消失的方法”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/06/01/reviewing-those-new-go-language-books-coming-out-in-2021-2022"&gt;评点2021-2022年上市的那些Go语言新书&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202205"&gt;2022.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/30/an-example-of-implement-dsl-using-antlr-and-go-part5"&gt;手把手教你使用ANTLR和Go实现一门DSL语言（第五部分）：错误处理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/28/an-example-of-implement-dsl-using-antlr-and-go-part4"&gt;手把手教你使用ANTLR和Go实现一门DSL语言（第四部分）：组装语义模型并测试DSL&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/27/an-example-of-implement-dsl-using-antlr-and-go-part3"&gt;手把手教你使用ANTLR和Go实现一门DSL语言（第三部分）：建立和验证语义模型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/25/an-example-of-implement-dsl-using-antlr-and-go-part2"&gt;手把手教你使用ANTLR和Go实现一门DSL语言（第二部分）：文法验证&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/24/an-example-of-implement-dsl-using-antlr-and-go-part1"&gt;手把手教你使用ANTLR和Go实现一门DSL语言（第一部分）：设计DSL语法与文法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/20/solving-problems-in-generic-function-implementation-using-named-return-values"&gt;使用具名返回值巧妙解决泛型函数返回零值的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/17/understand-the-nature-of-go-method-and-how-to-choose-the-correct-receiver-type"&gt;绞尽脑汁，帮你理解方法本质并选择正确的receiver类型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/16/the-short-guide-of-embracing-c-lang-for-gopher"&gt;Go程序员拥抱C语言简明指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/10/introduction-of-implement-dsl-using-antlr-and-go"&gt;使用ANTLR和Go实现DSL入门&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/05/04/the-paper-of-go-programming-language-and-environment"&gt;Go编程语言与环境：万字长文复盘导致Go语言成功的那些设计决策&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202204"&gt;2022.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/28/the-standard-layout-of-go-project"&gt;我来告诉你Go项目标准结构如何布局&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/23/taking-a-closer-look-at-programming-thinking-in-go"&gt;世界读书日：带你走近Go语言编程思维&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/20/some-changes-in-go-1-18"&gt;Go 1.18中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/18/inside-go-string-comparison/"&gt;Go字符串比较，终于有人讲清楚了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/05/my-grandma"&gt;我的姥姥&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/04/02/how-go-mitigates-supply-chain-attacks"&gt;Go是如何缓解供应链攻击的[译]&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202203"&gt;2022.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/28/the-comparison-of-the-go-community-leading-kakfa-clients"&gt;Go社区主流Kafka客户端简要对比&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/25/intro-generics"&gt;Go泛型介绍[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/24/the-result-of-a-len-expression-is-constant-or-variable"&gt;len(s)表达式的求值结果究竟是常量还是变量？我来告诉你&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/21/go-native-support-incremental-build"&gt;Go是否支持增量构建？我来告诉你！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/19/for-range-vs-classic-for-loop-when-iterating-large-array"&gt;针对大型数组的迭代，for range真的比经典for loop慢吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/16/go-1-18-released"&gt;Go 1.18版本正式发布了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/15/the-underlying-of-a-map-type-variable"&gt;Go语言map类型变量背后的那些事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/14/software-supply-chain-security-in-go"&gt;聊聊Go语言的软件供应链安全&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/12/dependency-hell-in-go/"&gt;为什么有了Go module后“依赖地狱”问题依然存在&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/06/the-2022-plan-of-gopher-tribe"&gt;Gopher部落：2022年要做的事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/03/05/go-logging-practice"&gt;聊聊Go应用输出日志的工程实践&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202202"&gt;2022.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/02/27/go-addressable"&gt;为什么这个T类型实例无法调用*T类型的方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/02/21/how-gc-detect-pointer-in-mem-obj"&gt;Go GC如何检测内存对象中是否包含指针&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/02/17/go-first-course-close"&gt;“Go语言第一课”结课了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/02/15/whether-go-allocate-underlying-array-for-empty-slice"&gt;Go究竟是否为空切片分配了底层数组&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202201"&gt;2022.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/01/16/the-2021-review-of-go-programming-language"&gt;2021年Go语言盘点：厉兵秣马强技能，蓄势待发新征程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2022/01/15/go-programming-from-beginners-to-masters-is-published"&gt;Go语言精进之路：为Gopher们准备的“知识年货”&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二一"&gt;二零二一&lt;/h3&gt;
&lt;h4 id="202112"&gt;2021.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/31/2021-blog-summary"&gt;2021年博客回顾与总结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/18/replace-empty-interface-with-any-first-after-switching-to-go-1-18"&gt;切换到Go 1.18后的第一件事：将interface{}全部替换为any&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/17/gopher-tribe-first-anniversary-review"&gt;Gopher部落：简单复盘这一年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/15/go-1-18-beta1"&gt;Go 1.18 Beta1版本发布，支持泛型[译]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/14/the-misconception-of-using-docker-to-break-out-of-6w-ports-of-the-client"&gt;使用Docker容器突破客户端6w可用端口的误区&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/02/go-has-implicit-type-convertion"&gt;惊了！原来Go语言也有隐式转型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/12/01/first-class-fuzzing-in-go-1-18"&gt;Go 1.18新特性前瞻：原生支持Fuzzing测试&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202111"&gt;2021.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/30/leo-messi-win-his-seventh-ballondor"&gt;梅西凑齐七个金球成功召唤神龙&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/27/ants-call-submit-in-submit-may-cause-blocking"&gt;ants：在Submit中再调用当前Pool的Submit可能导致阻塞&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose"&gt;使用Docker Compose构建一键启动的运行环境&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/12/go-workspace-mode-in-go-1-18"&gt;Go 1.18新特性前瞻：Go工作区模式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/11/go-opensource-12-years"&gt;Go，12周年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/11/07/using-generics-in-go"&gt;Ian Lance Taylor：Go泛型使用的一般准则&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202110"&gt;2021.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/go-course-faq"&gt;Go语言第一课FAQ&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/10/28/expectations-for-generics-in-go-1.18"&gt;Go 1.18对泛型的支持策略&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/10/25/the-things-behind-the-first-lesson-of-go-language"&gt;Go语言第一课背后的那些事&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/10/15/your-first-go-course-by-tonybai/"&gt;Tony Bai带你入门Go语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/10/06/the-go-programming-language-and-environment/"&gt;Go语言之父谈Go编程语言与环境&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202109"&gt;2021.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/09/26/the-design-of-the-response-for-grpc-server"&gt;gRPC服务的响应设计&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/09/17/those-things-about-grpc-client/"&gt;gRPC客户端的那些事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/09/15/getting-closer-to-zhou-enlai/"&gt;《走近周恩来》读后感&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/09/07/a-tour-of-phoenix-mountain"&gt;亲子游之丹东凤凰山&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house"&gt;小厂内部私有Go module拉取方案&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202108"&gt;2021.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/25/brooks-wirth-and-go"&gt;Brooks、Wirth和Go&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/20/using-register-based-calling-convention-in-go-1-17/"&gt;Go 1.17新特性详解：使用基于寄存器的调用惯例&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17"&gt;Go 1.17新特性详解：module依赖图修剪与延迟module加载&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17"&gt;Go 1.17新特性详解：支持将切片转换为数组指针&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/17/some-changes-in-go-1-17"&gt;Go 1.17中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc/"&gt;一文告诉你如何帮助测试Go语言Beta公测版或RC候选发布版&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/08/09/when-variables-captured-by-closures-are-recycled-in-go/"&gt;Go中被闭包捕获的变量何时会被回收&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202107"&gt;2021.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go/"&gt;Go基于I/O多路复用的TCP协议流解析实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go/"&gt;Go经典阻塞式TCP协议流解析的实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/23/my-second-daughter-is-one-year-old"&gt;二闺女一周岁了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/19/understand-go-plugin"&gt;一文搞懂Go语言的plugin&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/14/uber-zap-advanced-usage"&gt;一文告诉你如何用好uber开源的zap日志库&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/10/read-ini-config-item-by-passing-section-key"&gt;使用section.key的形式读取ini配置项&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/07/06/add-metrics-for-go-application-using-go-metrics"&gt;使用go-metrics在Go应用中增加度量&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202106"&gt;2021.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example"&gt;通过实例理解Go Execution Tracer&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/06/04/go-source-analysis-with-functrace"&gt;使用functrace辅助进行Go项目源码分析&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202105"&gt;2021.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/05/24/understand-go-escape-analysis-by-example/"&gt;通过实例理解Go逃逸分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20"&gt;minikube v1.20.0版本的一个bug&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202104"&gt;2021.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/25/server-side-performance-nethttp-vs-fasthttp"&gt;Go标准库http与fasthttp服务端性能比较&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/19/variable-operation-using-reflection-in-go"&gt;使用reflect包在反射世界里读写各类型变量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/14/expvarmon-save-and-convert-to-xlsx"&gt;给expvarmon插上数据持久化的“翅膀”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/12/pitfall-in-std-flag-pkg/"&gt;Go标准库flag包的“小陷阱”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/09/ten-commandments-of-go"&gt;Go语言“十诫”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/07/go-generics-use-type-sets-to-remove-type-keyword/"&gt;Go泛型语法又出“幺蛾子”：引入type set概念和移除type list中的type关键字&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/04/02/go-http-client-connection-control/"&gt;http.Client的连接行为控制详解&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202103"&gt;2021.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/31/common-anti-patterns-in-go"&gt;Go语言中常见的几种反模式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/29/darker-corners-of-go-part2/"&gt;Go语言的“黑暗角落”：盘点学习Go语言时遇到的那些陷阱[译]（第二部分）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/29/darker-corners-of-go-part1/"&gt;Go语言的“黑暗角落”：盘点学习Go语言时遇到的那些陷阱[译]（第一部分）&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/26/implement-a-queue-with-select-listener-in-go"&gt;使用Go实现可用select监听的队列&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/23/io-fs-interface-is-an-excellent-design/"&gt;对Go 1.16 io/fs设计的第一感觉：得劲儿！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/15/rust-vs-go-why-they-are-better-together"&gt;Rust vs. Go：为什么强强联合会更好&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/03/07/go-malware-round-up-2020/"&gt;究竟是什么让Go语言成为恶意软件作者的最爱&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202102"&gt;2021.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/02/25/some-changes-in-go-1-16"&gt;Go 1.16中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/02/18/typing-generic-go-by-griesemer-at-gophercon-2020/"&gt;“能力越大，责任越大” – Go语言之父详解将于Go 1.18发布的Go泛型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/02/13/operate-with-shared-resources-in-a-mutually-exclusive-way-through-distributed-lock-implemented-by-redis-cluster"&gt;基于Redis Cluster的分布式锁实现以互斥方式操作共享资源&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/02/09/create-and-get-db-access-instance-through-singleton"&gt;以单件方式创建和获取数据库实例&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/02/08/go-programming-language-learning-roadmap-2021"&gt;Go语言学习技术路线图2021发布了！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202101"&gt;2021.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/01/16/upload-and-download-file-using-multipart-form-over-http/"&gt;使用multipart/form-data实现文件的上传与下载&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/01/08/understand-how-http-package-deal-with-keep-alive-connection"&gt;通过实例理解Go标准库http包是如何处理keep-alive连接的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/01/07/go-is-boring/"&gt;Go语言很无聊…其实它妙不可言！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2021/01/02/go-language-13-years/"&gt;Hugo作者、Go核心开发团队成员谈诞生13年的Go语言：生态系统、演化与未来&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零二零"&gt;二零二零&lt;/h3&gt;
&lt;h4 id="202012"&gt;2020.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/30/the-2020-review-of-go-programming-language/"&gt;2020年Go语言盘点：新冠大流行阻挡不了Go演进的步伐&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/26/how-to-deprecate-a-published-version-of-some-specific-go-module/"&gt;如何作废一个已发布的Go module版本，我来告诉你！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/25/bpf-and-go-modern-forms-of-introspection-in-linux/"&gt;BPF和Go：在Linux中内省的现代方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/24/the-disadvantages-of-go/"&gt;Go语言有哪些“劣势”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/18/go-ports-until-202012/"&gt;Go语言对ARM架构的支持与未来&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/17/where-is-the-source-of-builtin-functions/"&gt;一文告诉你神奇的Go内建函数源码在哪里&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/15/how-to-see-the-manual-of-go-history-version"&gt;如何查看历史版本的Go文档？嘘！答案我只告诉你！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/12/a-forward-look-to-new-feature-of-go-1-16/"&gt;Go 1.16新功能特性不完全前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/10/a-kind-of-thinking-about-how-to-trace-function-call-chain"&gt;Go函数调用链跟踪的一种实现思路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/03/should-you-commit-the-vendor-folder-in-go/"&gt;vendor目录是否需要提交到代码库中？答案全在这一篇&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/12/01/go-is-the-tesla-of-programming-world/"&gt;Go是编程语言世界的“特斯拉”&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202011"&gt;2020.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/28/how-to-experience-go-generics-first"&gt;一文告诉你如何抢先体验Go泛型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/26/slice-sort-in-go"&gt;一文搞懂Go语言中的切片排序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/22/zssq-gopher-tribe-born/"&gt;“Gopher部落”知识星球开球了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/15/another-approach-to-customize-package-import-path/"&gt;没有VPS搭建govanityurls服务？别急！你依然可以自定义Go包导入路径&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/13/go-is-a-successful-and-zero-regret-choice-for-us-by-hashicorp-founder/"&gt;HashiCorp联合创始人：Go是成功且无悔的选择&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/11/go-opensource-11-years/"&gt;Go，11周年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/10/understand-sync-map-inside-through-examples/"&gt;通过实例深入理解sync.Map的工作原理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/05/the-sequela-after-being-used-to-writting-code-in-go/"&gt;重度使用Go的“后遗症“，你有吗？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/"&gt;系统学习Go语言，有这几本书就够了！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202010"&gt;2020.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/10/11/some-changes-in-go-1-15/"&gt;Go 1.15中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202009"&gt;2020.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/09/08/imooc-go-column-is-available/"&gt;官宣：Go专栏“改善Go语言编程质量的50个有效实践”上线了&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202008"&gt;2020.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/08/30/new-case-studies-about-googles-use-of-go/"&gt;Google内部是如何使用Go语言的&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202007"&gt;2020.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/07/29/my-second-daughter-was-born/"&gt;又当爸爸了！&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202006"&gt;2020.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/06/27/gohugo-vs-mdbook-vs-peach/"&gt;基于Markdown格式的电子书生成工具大比拼：gohugo、mdbook和peach&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/06/18/the-go-generics-is-coming-and-supported-in-go-1-17-at-the-earliest/"&gt;Go泛型真的要来了！最早在Go 1.17版本支持&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/06/07/hit-100-happy-birthday/"&gt;亲爱的母校哈工大，100岁生日快乐！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/06/04/the-issue-of-go-xml-package-rewrite-carriage-return/"&gt;关于xml包在Unmarshal时将\r\n重写为\n的问题&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202005"&gt;2020.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/05/03/guoguo-ten-years-old/"&gt;果果十周岁了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/05/01/rob-pike-interview-go-become-the-language-of-cloud-infrastructure/"&gt;Go语言联合作者Rob Pike专访：Go确实已成为云基础架构的语言&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/05/01/comparison-between-java-go-and-rust/"&gt;后端程序员一定要看的语言大比拼：Java vs. Go vs. Rust&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202004"&gt;2020.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/04/24/gogoprotobuf-vs-goprotobuf-v1-and-v2/"&gt;go protobuf v1败给了gogo protobuf，那v2呢？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/04/07/illustrated-tale-of-git-internal-key-concepts/"&gt;图解git原理的几个关键概念&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202003"&gt;2020.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/29/hello-wireguard/"&gt;Hello，WireGuard&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/21/illustrated-tales-of-go-runtime-scheduler/"&gt;图解Go运行时调度器&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/16/build-high-performance-object-storage-with-minio-part1-prototype/"&gt;使用minio搭建高性能对象存储-第一部分：原型&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/10/visualizing-memory-management-in-golang/"&gt;可视化Go内存管理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/09/take-care-of-the-go-directive-in-go-dot-mod/"&gt;小心go.mod中的go directive&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/03/08/some-changes-in-go-1-14/"&gt;Go 1.14中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="202002"&gt;2020.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/02/24/the-zen-of-go/"&gt;Go语言之禅&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2020/02/20/a-visual-guide-to-golang-memory-allocator-from-ground-up/"&gt;图解Go内存分配器&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一九"&gt;二零一九&lt;/h3&gt;
&lt;h4 id="201912"&gt;2019.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/12/21/go-modules-minimal-version-selection/"&gt;Go modules：最小版本选择&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/12/08/k8s-deployment-troubleshooting/"&gt;Kubernetes Deployment故障排除图解指南&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201911"&gt;2019.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/19/computational-reproducibility-some-challenges/"&gt;计算重现性：一些挑战&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/14/what-the-godev-website-bring-to-gophers/"&gt;Go官方发布的go.dev给gopher们带来了什么&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/09/go-opensource-10-years/"&gt;Go语言开源十周年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/08/security-assessment-techniques-for-go-projects/"&gt;Go语言项目的安全评估技术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/07/non-ascii-character-encoding-illustrated/"&gt;图解中文字符编码-Go语言例解&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/11/04/the-legacy-of-go/"&gt;Go语言的遗产&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201910"&gt;2019.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/10/27/some-changes-in-go-1-13/"&gt;Go 1.13中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/10/21/how-to-deploy-a-kubernetes-cluster-with-ubuntu-server-18-04/"&gt;如何在Ubuntu 18.04 Server上部署Kubernetes集群&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/10/18/errors-handling-in-go-1-13/"&gt;Go 1.13中的错误处理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/10/12/uber-go-style-guide/"&gt;Uber Go语言编码规范&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/10/11/autoscaling-apps-on-kubernetes/"&gt;在Kubernetes上如何基于自定义指标实现应用的自动缩放&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201909"&gt;2019.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/09/28/how-to-build-websockets-in-go/"&gt;如何在Go语言中使用Websockets：最佳工具与行动指南&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/09/21/brief-history-of-go-package-management/"&gt;Go语言包管理简史&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/09/07/go-retrospective/"&gt;Go语言回顾：从Go 1.0到Go 1.13&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/09/05/kubernetes-node-size/"&gt;构建Kubernetes集群 – 选择工作节点大小&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201908"&gt;2019.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/08/31/kubectl-productivity-part3/"&gt;提高您的kubectl生产力（第三部分）：集群上下文切换、使用别名减少输入和插件扩展&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/08/30/kubectl-productivity-part2/"&gt;提高您的kubectl生产力（第二部分）：命令完成、资源规范快速查看和自定义列输出格式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/08/29/kubectl-productivity-part1/"&gt;提高您的kubectl生产力（第一部分）：什么是kubectl&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/08/21/introduction-on-tech-protocol-of-transfering-value-added-sms/"&gt;增值类业务短信收发协议介绍&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/08/20/introduction-to-value-added-sms-in-graphic-form/"&gt;增值类短信业务图文简介&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201907"&gt;2019.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/07/25/illustrate-3gpp-spec-docs-structure-and-numbering/"&gt;图解3GPP规范文档组织结构与编号规则&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201906"&gt;2019.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/06/25/using-git-with-svn-repo/"&gt;使用git操作svn仓库&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/06/03/the-practice-of-upgrading-major-version-under-go-module/"&gt;Go module机制下升级major版本号的实践&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201905"&gt;2019.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/05/03/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language/"&gt;Go正走在成为下一个企业级编程语言的轨道上&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201904"&gt;2019.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/04/20/deploy-workload-in-weave-network-using-nomad/"&gt;使用nomad在weave网络中部署工作负载&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/04/18/benchmark-result-of-k8s-network-plugin-cni/"&gt;Kubernetes网络插件（CNI）基准测试的最新结果&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/04/09/upgrade-workload-using-nomad/"&gt;使用nomad实现工作负载版本升级&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/04/04/notes-about-fixing-a-go-panic-problem/"&gt;记一次go panic问题的解决过程&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201903"&gt;2019.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/03/30/cluster-management-and-microservice-deployment-and-scheduled-by-nomad/"&gt;使用nomad实现集群管理和微服务部署调度&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/03/02/some-changes-in-go-1-12/"&gt;Go 1.12中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201902"&gt;2019.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/02/25/introduction-to-yaml-creating-a-kubernetes-deployment/"&gt;YAML入门：以创建一个Kubernetes deployment为例&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201901"&gt;2019.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/01/27/perspective-study-on-go2-error-inspection/"&gt;Go2 Error Inspection前瞻&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2019/01/08/go-and-soap/"&gt;Go和SOAP&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一八"&gt;二零一八&lt;/h3&gt;
&lt;h4 id="201811"&gt;2018.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/11/26/hello-go-module-proxy/"&gt;Hello，Go module proxy&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/11/19/some-changes-in-go-1-11/"&gt;Go 1.11中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/11/12/go-opensource-9-years/"&gt;Go，9周年&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201810"&gt;2018.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/10/17/imooc-course-kubernetes-practice-go-online/"&gt;官宣：慕课网课程“Kubernetes实战：高可用集群搭建、配置、运维与应用”上线了&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201809"&gt;2018.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/09/10/setup-service-discovery-and-load-balance-based-on-consul/"&gt;基于consul实现微服务的服务发现和负载均衡&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201807"&gt;2018.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/07/15/hello-go-module/"&gt;初窥Go module&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201806"&gt;2018.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/06/25/the-kubernetes-ingress-practice-for-https-service/"&gt;HTTPS服务的Kubernetes ingress配置实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/06/21/kubernetes-ingress-controller-practice-using-four-examples/"&gt;实践kubernetes ingress controller的四个例子&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/06/14/the-authentication-and-authorization-of-kubectl-when-accessing-k8s-cluster/"&gt;使用kubectl访问Kubernetes集群时的身份验证和授权&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/06/13/setup-efk-on-kubernetes-1-10-3-in-the-hard-way/"&gt;在Kubernetes 1.10.3上以Hard模式搭建EFK日志分析平台&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201805"&gt;2018.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/05/11/the-analysis-of-a-go-code-snippet-about-code-blocks-and-scope/"&gt;对一段有关Go Code Block和变量作用域的代码的简要分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/05/02/imooc-course-kubernetes-open-the-gate-to-cloudnative-go-online/"&gt;慕课网免费课“Kubernetes：开启云原生之门”上线&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201804"&gt;2018.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/04/06/the-problems-i-encountered-when-writing-go-code-issue-3rd/"&gt;写Go代码时遇到的那些问题[第3期]&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201803"&gt;2018.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/03/23/the-analysis-of-the-param-evaluation-of-defer-functions/"&gt;defer函数参数求值简要分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/03/20/the-analysis-of-output-results-of-a-go-code-snippet/"&gt;对一段Go语言代码输出结果的简要分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/03/03/10th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第10期]&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201802"&gt;2018.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/02/17/some-changes-in-go-1-10/"&gt;Go 1.10中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/02/11/9th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第9期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/02/03/8th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第8期]&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201801"&gt;2018.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/28/7th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第7期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/27/the-problems-i-encountered-when-writing-go-code-issue-2nd/"&gt;写Go代码时遇到的那些问题[第2期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/20/6th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第6期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/14/5th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第5期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/13/the-problems-i-encountered-when-writing-go-code-issue-1st/"&gt;写Go代码时遇到的那些问题[第1期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/06/4th-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第4期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2018/01/03/an-intro-of-microservices-governance-by-istio/"&gt;使用istio治理微服务入门&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一七"&gt;二零一七&lt;/h3&gt;
&lt;h4 id="201712"&gt;2017.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/12/30/3rd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第3期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/12/22/2nd-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第2期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/12/21/the-concise-history-of-docker-image-building/"&gt;追求极简：Docker镜像构建演化史&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/12/19/1st-issue-of-the-tech-weekly-carefully-chosen-by-tonybai/"&gt;TB一周萃选[第1期]&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/12/08/deploy-high-availability-harbor-on-kubernetes-cluster/"&gt;在Kubernetes集群上部署高可用Harbor镜像仓库&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201711"&gt;2017.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/11/23/the-simple-analysis-of-goroutine-schedule-examples/"&gt;Goroutine调度实例简要分析&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/11/11/multi-stage-image-build-in-docker/"&gt;理解Docker的多阶段镜像构建&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/11/09/hello-termux/"&gt;Hello，Termux&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/11/06/explain-docker-single-host-network-using-iptables-trace-and-ebtables-log/"&gt;再谈Docker容器单机网络：利用iptables trace和ebtables log&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201710"&gt;2017.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/10/24/go-evolution-for-ten-years-an-interview-by-osc/"&gt;源创会开源访谈：十年成长，Go语言的演化之路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/10/23/the-speech-script-practice-on-deploying-a-ha-harbor-cluster-for-osc-shenyang-2017/"&gt;源创会2017沈阳站讲稿：基于Harbor的高可用企业级私有容器镜像仓库部署实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/"&gt;Kubernetes节点资源耗尽状态的处理&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201709"&gt;2017.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/"&gt;Kubernetes Dashboard 1.7.0部署二三事&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/09/24/go-ten-years-and-climbing/"&gt;Go语言：成长的十年&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201708"&gt;2017.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/08/15/hello-apollo/"&gt;Hello, Apollo&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/08/09/fix-kube-apiserver-restart-exceptionally-in-k8s-1-7-3/"&gt;解决Kubernetes 1.7.3 kube-apiserver频繁异常重启的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/08/01/hello-ros/"&gt;Hello, ROS&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201707"&gt;2017.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/07/24/ride-a-shared-bike/"&gt;体验共享单车&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/07/20/fix-cannot-access-dashboard-in-k8s-1-6-4/"&gt;解决Kubernetes 1.6.4 Dashboard无法访问的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/07/14/some-changes-in-go-1-9/"&gt;Go 1.9中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/07/04/setup-go-runtime-metrics-for-yourself/"&gt;搭建你自己的Go Runtime metrics环境&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201706"&gt;2017.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/30/go-get-go-packages-in-private-code-repo-by-govanityurls/"&gt;使用govanityurls让私有代码仓库中的go包支持go get&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/28/set-custom-go-get-import-path-for-go-package/"&gt;定制Go Package的Go Get导入路径&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/27/an-intro-about-go-portability/"&gt;也谈Go的可移植性&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/25/why-aliens-have-not-arrived-at-earth/"&gt;外星人为什么还没降落到地球上？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/23/an-intro-about-goroutine-scheduler/"&gt;也谈goroutine调度器&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/15/fix-auth-fail-when-login-harbor-registry/"&gt;解决登录Harbor Registry时鉴权失败的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/09/setup-a-high-availability-private-registry-based-on-harbor-and-cephfs/"&gt;基于Harbor和CephFS搭建高可用Private Registry&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/06/08/first-glimpse-of-dep/"&gt;初窥dep&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201705"&gt;2017.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/05/18/an-interview-from-operation-partner-in-2017/"&gt;专访稿：兴趣才是第一生产力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part2/"&gt;一步步打造基于Kubeadm的高可用Kubernetes集群-第二部分&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/05/15/setup-a-ha-kubernetes-cluster-based-on-kubeadm-part1/"&gt;一步步打造基于Kubeadm的高可用Kubernetes集群-第一部分&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/05/09/exception-caused-by-kubernetes-node-hostname-change/"&gt;Kubernetes集群node主机名修改导致的异常&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/05/08/mount-cephfs-acrossing-nodes-in-kubernetes-cluster/"&gt;Kubernetes集群跨节点挂载CephFS&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201704"&gt;2017.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/04/20/go-coding-in-go-way/"&gt;Go coding in go way&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/04/18/my-experience-of-gopherchina-2017-as-a-speaker/"&gt;GopherChina2017以讲师身份参会感悟&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/04/06/an-interview-with-me-as-a-lecturer-of-gopherchina-2017/"&gt;GopherChina讲师专访&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201703"&gt;2017.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/"&gt;使用Fluentd和ElasticSearch Stack实现Kubernetes的集群Logging&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/03/03/access-api-server-from-a-pod-through-serviceaccount/"&gt;在Kubernetes Pod中使用Service Account访问API Server&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201702"&gt;2017.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/02/20/use-host-timezone-in-kubernetes-pods/"&gt;Kubernetes集群Pod使用Host的本地时区设置&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/02/17/temp-fix-for-pod-unable-mount-cephrbd-volume/"&gt;Kubernetes Pod无法挂载ceph RBD存储卷的临时解决方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/02/09/rolling-update-for-services-in-kubernetes-cluster/"&gt;Kubernetes集群中Service的滚动更新&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/02/06/build-your-first-neural-network-with-tensorflow/"&gt;TensorFlow入门：零基础建立第一个神经网络&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/02/03/some-changes-in-go-1-8/"&gt;Go 1.8中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201701"&gt;2017.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/24/explore-kubernetes-cluster-installed-by-kubeadm/"&gt;以Kubeadm方式安装的Kubernetes集群的探索&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/20/integrate-heapster-for-kubernetes-dashboard/"&gt;Kubernetes Dashboard集成Heapster&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/19/install-dashboard-addon-for-k8s/"&gt;Kubernetes集群Dashboard插件安装&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/17/understanding-flannel-network-for-kubernetes/"&gt;理解Kubernetes网络之Flannel网络&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/"&gt;理解Docker容器网络之Linux Network Namespace&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/05/leave-hand-made-homework-to-kids/"&gt;把学校留的手工作业还给孩子们&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2017/01/03/2016-summary/"&gt;2016小结&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一六"&gt;二零一六&lt;/h3&gt;
&lt;h4 id="201612"&gt;2016.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/"&gt;使用Kubeadm安装Kubernetes&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/27/when-docker-meets-systemd/"&gt;当Docker遇到systemd&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/23/write-go-code-in-vscode/"&gt;使用Visual Studio Code辅助Go源码编写&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/21/how-to-use-timer-reset-in-golang-correctly/"&gt;论golang Timer Reset方法使用的正确姿势&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/18/build-a-blog-website-for-my-daughter/"&gt;给女儿搭建一个博客站点&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/12/06/an-intro-to-wukong-fulltext-search-engine/"&gt;使用wukong全文搜索引擎&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201611"&gt;2016.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/25/the-security-settings-for-kubernetes-cluster/"&gt;Kubernetes集群的安全配置&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/22/deploy-nginx-service-for-the-services-in-kubernetes-cluster/"&gt;为Kubernetes集群中服务部署Nginx入口服务&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/21/kuberize-ceph-rbd-api-service/"&gt;Kuberize Ceph RBD API服务&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/17/nginx-config-hot-reloading-approach-for-kubernetes-cluster/"&gt;Kubernetes集群中的Nginx配置热更新方案&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/16/how-to-pull-images-from-private-registry-on-kubernetes-cluster/"&gt;Kubernetes从Private Registry中拉取容器镜像的方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/09/operate-ceph-rbd-images-with-go-ceph/"&gt;使用go-ceph管理Ceph RBD映像&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/11/07/integrate-kubernetes-with-ceph-rbd/"&gt;使用Ceph RBD为Kubernetes集群提供存储卷&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201610"&gt;2016.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/10/23/install-dns-addon-for-k8s/"&gt;Kubernetes集群DNS插件安装&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/10/18/learn-how-to-install-kubernetes-on-ubuntu/"&gt;一篇文章带你了解Kubernetes安装&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/10/11/some-problems-under-swarm-mode-in-docker-1-12/"&gt;Docker 1.12 swarm模式下遇到的各种问题&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201609"&gt;2016.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/09/13/package-import-in-golang-vs-in-java/"&gt;Go包导入与Java的差别&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/09/08/upgrade-vim-go/"&gt;vim-go更新小记&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201608"&gt;2016.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/08/05/whose-appeals-does-smartcity-meet/"&gt;智慧城市到底满足的是谁的诉求&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201606"&gt;2016.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/06/21/some-changes-in-go-1-7/"&gt;Go 1.7中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/06/01/gossip-in-smart-city/"&gt;闲话智慧城市&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201605"&gt;2016.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/05/16/understanding-unikernels/"&gt;理解Unikernels&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/05/04/deploy-devstack/"&gt;部署devstack&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201604"&gt;2016.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/04/18/my-experience-of-gopherchina2016/"&gt;GopherChina2016后记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/04/14/an-introduction-about-rancher/"&gt;Rancher使用入门&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201603"&gt;2016.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/03/25/ship-docker-container-log-with-filebeat/"&gt;使用Filebeat输送Docker容器的日志&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/03/15/modern-application-architecture-for-the-enterprise-with-docker-caas/"&gt;现代企业应用架构-使用Docker CaaS交付敏捷的、可移植的、受控的应用&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201602"&gt;2016.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/02/15/understanding-docker-multi-host-networking/"&gt;理解Docker跨多主机容器网络&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/02/21/some-changes-in-go-1-6/"&gt;Go 1.6中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/02/26/deploy-a-private-docker-registry/"&gt;部署私有Docker Registry&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201601"&gt;2016.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/01/18/understanding-binding-docker-container-ports-to-host/"&gt;理解Docker容器端口映射&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2016/01/15/understanding-container-networking-on-single-host/"&gt;理解Docker单机容器网络&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一五"&gt;二零一五&lt;/h3&gt;
&lt;h4 id="201512"&gt;2015.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/12/08/go-fuzz-intro/"&gt;Go语言随机测试工具go-fuzz&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201511"&gt;2015.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/11/17/tcp-programming-in-golang/"&gt;Go语言TCP Socket编程&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201510"&gt;2015.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/10/30/error-handling-in-go/"&gt;Go语言错误处理&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201509"&gt;2015.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/09/23/intro-of-gohugo/"&gt;使用Hugo搭建静态站点&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/09/19/write-blog-in-markdown/"&gt;开始使用Markdown写Blog&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/"&gt;关于Go，你可能不注意的7件事&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201508"&gt;2015.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/08/27/understanding-go-statements-evaluating-order/"&gt;理解Golang语句中的求值顺序&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/08/25/go-debugging-profiling-optimization/"&gt;Go程序调试、分析与优化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/08/22/how-to-view-golang-tech-slide/"&gt;Golang技术幻灯片的查看方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/08/22/intro-of-using-weedfs/"&gt;weed-fs使用简介&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/08/05/godep-support-go15-vendor/"&gt;godep支持Go 1.5 vendor&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201507"&gt;2015.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/31/understand-go15-vendor/"&gt;理解Go 1.5 vendor&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/27/make-a-mirror-of-gotalks-appsport-app/"&gt;制作go-talks.appspot.com应用镜像&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/20/install-coreos-by-coreos-vagrant/"&gt;使用core-vagrant方式安装CoreOS&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/10/some-changes-in-go-1-5/"&gt;Go 1.5中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/06/implement-distributed-services-registery-and-discovery-by-consul/"&gt;使用consul实现分布式服务注册和发现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/07/01/config-solutions-for-golang-app/"&gt;Golang程序配置方案小结&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201506"&gt;2015.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/06/23/concurrency-and-parallelism/"&gt;也谈并发与并行&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/06/17/appdash-distributed-systems-tracing-in-go/"&gt;Appdash，用Go实现的分布式系统跟踪神器&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/06/07/barca-win-treble-twice/"&gt;巴萨“三冠王”梅开二度，梅球王预定第五座金球奖杯&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/06/04/caddy-a-web-server-in-go/"&gt;Caddy，一个用Go实现的Web Server&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201505"&gt;2015.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/05/14/ngrok-source-intro/"&gt;ngrok原理浅析&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201504"&gt;2015.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/04/30/go-and-https/"&gt;Go和HTTPS&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/04/12/fix-hacked-blog-site/"&gt;Blog站点被黑以及问题解决过程&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201503"&gt;2015.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/03/14/selfhost-ngrok-service/"&gt;搭建自己的ngrok服务&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/03/09/understanding-import-packages/"&gt;理解Golang包导入&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201501"&gt;2015.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/01/23/three-issues-about-go-code/"&gt;近期遇到的3个Golang代码问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2015/01/13/a-hole-about-variable-scope-in-golang/"&gt;一个有关Golang变量作用域的坑&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一四"&gt;二零一四&lt;/h3&gt;
&lt;h4 id="201412"&gt;2014.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/12/31/2014-summary/"&gt;2014小结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/12/30/send-custom-service-text-msg-for-wechat-public-platform-dev-in-golang/"&gt;使用Golang开发微信公众平台-发送客服消息&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/12/24/recv-encrypted-text-msg-for-wechat-public-platform-dev-in-golang/"&gt;使用Golang开发微信公众平台-接收加密消息&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/12/20/receive-text-for-wechat-public-platform-dev-in-golang/"&gt;使用Golang开发微信公众平台-接收文本消息&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/12/18/access-validation-for-wechat-public-platform-dev-in-golang/"&gt;使用Golang开发微信公众平台-接入验证&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201411"&gt;2014.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/28/migrate-blog-to-digitalocean-vps/"&gt;将Blog迁移到DigitalOcean的VPS上&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/15/how-goroutines-work/"&gt;Goroutine是如何工作的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/14/effective-error-handling-in-go/"&gt;Go语言的有效错误处理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/12/go-5-years/"&gt;Go，5周年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/07/golang-development-environment-for-vim/"&gt;Golang开发环境搭建-Vim篇&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/05/how-stacks-are-handled-in-go/"&gt;Go语言是如何处理栈的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/04/some-changes-in-go-1-4/"&gt;Go 1.4中值得关注的几个变化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/11/01/migrate-wordpress-into-docker-container/"&gt;WordPress迁移到Docker容器&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201410"&gt;2014.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/30/a-hole-of-godep/"&gt;godep的一个“坑”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/29/crack-windows-logon-password-under-virtualbox/"&gt;VirtualBox虚拟机下Windows登录密码破解方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/25/golang-history/"&gt;Golang的演化历程&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/22/golang-testing-techniques/"&gt;Golang测试技术&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/21/organize-golang-code/"&gt;组织Golang代码&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/20/cross-compilation-with-golang/"&gt;Golang跨平台交叉编译&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/14/discussion-on-the-approach-to-modify-system-variables-in-docker/"&gt;探讨Docker容器中修改系统变量的方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/12/discussion-on-shared-mem-support-in-docker/"&gt;探讨docker容器对共享内存的支持情况&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/10/09/gracefully-shutdown-app-running-in-docker/"&gt;docker容器内服务程序的优雅退出&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201409"&gt;2014.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/09/29/a-channel-compendium-for-golang/"&gt;Golang Channel用法简编&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/09/26/install-docker-on-ubuntu-server-1404/"&gt;Ubuntu Server 14.04安装docker&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201408"&gt;2014.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/08/04/amazon-inapp-purchasing-and-gamecirle-in-cocos2dx/"&gt;Cocos2d-x集成Amazon内购和GameCircle服务&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201407"&gt;2014.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/07/15/will-new-soccer-king-appear/"&gt;世界足球的那个“王”还会出现吗？&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201405"&gt;2014.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/05/13/sprite-draw-principles-of-cocos2dx-screen-adaptation/"&gt;Cocos2d-x屏幕适配之Sprite绘制原理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/05/01/integrate-cocos2dx3rc0-with-admob/"&gt;Cocos2d-x 3.0rc0集成Google AdMob SDK&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201404"&gt;2014.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/04/28/multithreaded-resource-loading-in-cocos2dx-3/"&gt;Cocos2d-x 3.0多线程异步资源加载&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/04/25/integrate-cocos2dx3rc2-with-sharesdk/"&gt;Cocos2d-x 3.0rc2集成ShareSDK&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/04/23/changes-in-cocos2dx-3-rc2-for-android/"&gt;Cocos2d-x 3.0rc2针对Android平台的变动&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/04/22/hello-cocos2dx-3-rc0/"&gt;Hello, Cocos2d-x 3.0rc0&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/04/17/a-bug-from-sharesdk-componet-for-cocos2dx/"&gt;ShareSDK Cocos2d-x专用组件的一个Bug&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201403"&gt;2014.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/03/18/cocos2dx-memory-management/"&gt;Cocos2d-x内存管理-绕不过去的坎&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/03/11/hello-cocos2dx/"&gt;Hello, Cocos2d-x&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/03/05/thought-on-executive-power/"&gt;说说执行力&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/03/03/considerations-on-team-improved-in-2014/"&gt;关于2014团队改善的考量&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201402"&gt;2014.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/02/18/mentoring-in-the-kitchen/"&gt;厨房里的领导课&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201401"&gt;2014.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2014/01/04/my-summary-of-2013/"&gt;2013小结&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一三"&gt;二零一三&lt;/h3&gt;
&lt;h4 id="201312"&gt;2013.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/12/27/learn-how-to-command-from-ender/"&gt;向安德学指挥&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/12/26/just-for-being-relieved/"&gt;只为那一抹释然&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/12/21/the-balance-between-team-and-creativity/"&gt;团队与创造的平衡&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201311"&gt;2013.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/11/26/the-full-text-of-recommended-c-style-and-coding-standards/"&gt;Recommended C Style and Coding Standards中文版全文&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/11/22/those-chinese-style-naming-in-code-again/"&gt;再谈那些代码中的“中国式”命名&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/11/12/how-code-corrupt/"&gt;代码是怎么腐化的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/11/06/those-chinese-style-naming-in-code/"&gt;那些代码中的“中国式”命名&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/11/01/a-case-of-applying-memcached-cas/"&gt;Memcached CAS应用一例&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201310"&gt;2013.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/27/some-experience-about-ideation-of-programmer/"&gt;关于程序员的构思能力的一些体会&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/25/add-timeout-to-blocking-function-call/"&gt;为阻塞型函数调用添加超时机制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/22/some-experience-about-learning-programming-language/"&gt;关于编程语言学习的一些体会&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/14/when-bug-a-encounter-bug-b/"&gt;当Bug A遇到Bug B&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/09/love-running/"&gt;爱上跑步&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/10/08/program-the-avatar-of-programmers/"&gt;程序 – 程序员的avatar&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201309"&gt;2013.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/09/24/stand-on-a-higher-platform/"&gt;站在更高的平台上&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/09/09/fifth-wedding-anniversary/"&gt;结婚五周年纪念&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/09/04/putting-absolutely-everything-in-version-control/"&gt;把所有东西都放入版本控制系统&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/09/03/my-personal-work-principles-2/"&gt;我的工作原则2&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201308"&gt;2013.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/08/28/implement-config-sync-for-distributed-system-with-zookeeper-services/"&gt;利用ZooKeeper服务实现分布式系统的配置数据同步&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/08/23/leader-election-using-zookeeper/"&gt;利用ZooKeeper服务实现分布式系统的Leader选举&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/08/19/my-personal-work-principles/"&gt;我的工作原则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/08/07/ubuntu-12-04-repairing-notes/"&gt;Ubuntu 12.04修复记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/08/04/more-thoughts-on-improving-efficiency/"&gt;再谈组织工作效率提升&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201307"&gt;2013.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/30/recall-my-college-classmates-after-graduating-9-years/"&gt;毕业九年 – 忆我的大学同学&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/24/thoughts-about-lines-of-code-statistics/"&gt;也谈代码行统计&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/18/advice-to-a-new-programmer/"&gt;给新手程序员的建议&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/15/buildc-0-3-1-release/"&gt;buildc 0.3.1版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/09/an-implementation-of-python-commandline-variables/"&gt;Python脚本命令行变量的实现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/07/08/code-review-from-rule-of-man-to-rule-of-law/"&gt;代码评审，由人治过渡到“法治”&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201306"&gt;2013.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/06/18/walk-through-the-last-mile-of-bugfix/"&gt;跨过BUG查找的”最后一公里”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/06/18/a-hongkong-macau-trip/"&gt;港澳行记&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201305"&gt;2013.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/"&gt;《Understanding and Using C Pointers》要点先睹为快&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/"&gt;再谈C语言位域&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/18/daughter-is-3-years-old/"&gt;果果3周岁了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/11/buildc-0-3-0-release/"&gt;buildc 0.3.0版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/09/also-talk-about-commit-log/"&gt;也谈Commit log&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/05/03/the-past-two-years-to-promote-the-knowledge-management/"&gt;推动知识管理的这两年&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201304"&gt;2013.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/04/25/a-libiconv-linkage-problem/"&gt;libiconv库链接问题一则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/"&gt;C,C++开源项目中的100个Bugs&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/04/01/hello-sublime-text-2/"&gt;Hello，Sublime Text 2&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201303"&gt;2013.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/"&gt;简析指针与多维数组&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/"&gt;简析多级指针解引用&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/18/sys-running-data-extraction-method-using-mmap/"&gt;一种基于内存映射文件的系统运行数据提取方法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/15/choose-lang-for-svn-cmd-output/"&gt;SVN命令输出结果的语言选择&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/11/2013-plan/"&gt;谋划2013&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/07/struct-hack-in-c/"&gt;也谈C语言的Struct Hack&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/03/02/deep-into-top/"&gt;玩转top&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201302"&gt;2013.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/02/27/why-code-in-c-anymore/"&gt;为什么还用C编程？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/02/18/my-daughter-monologue-about-2013-spring-festival/"&gt;果果的蛇年春节独白&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/02/06/look-forward-to-spring-festival/"&gt;期待过年&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/02/03/implement-go-defer-in-c/"&gt;Go defer的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201301"&gt;2013.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/24/the-module-import-way-under-python-package/"&gt;关于Python Package下的Module import方式&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/17/leomessi-with-four-ballon-dor/"&gt;梅西与四座金球&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/15/buildc-0-2-2-release/"&gt;buildc 0.2.2版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/08/leomessi-the-king-of-ballon-dor/"&gt;梅西，金球之王&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/04/my-opinion-on-improving-work-happiness/"&gt;说说工作幸福感&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2013/01/01/2013-happy-new-year/"&gt;2013新年快乐&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一二"&gt;二零一二&lt;/h3&gt;
&lt;h4 id="201212"&gt;2012.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/19/my-blog-outlook/"&gt;我的博客观&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/18/my-summary-of-2012/"&gt;2012小结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/13/some-opinions-about-performance-interview/"&gt;关于绩效面谈的一些拙见&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/10/leomessi-the-new-king-of-soccer/"&gt;梅西，足球新王&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/06/buildc-0-2-1-release/"&gt;buildc 0.2.1版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/06/replace-unity-with-gnome3/"&gt;将Unity换成Gnome3&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/04/upgrade-ubuntu-to-1204-lts/"&gt;升级到Ubuntu 12.04LTS&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/12/03/how-to-organize-and-hold-meetings-efficiently/"&gt;谈谈如何高效地组织和实施内部会议&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201211"&gt;2012.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/28/how-to-write-a-good-email/"&gt;谈谈如何写好Mail&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/27/some-growing-up-details-of-my-two-years-old-daughter/"&gt;果果2岁以来的成长记录&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/23/some-experience-on-personal-time-management/"&gt;个人时间管理的一些实践体会&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/"&gt;使用squid搭建http代理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/18/note-for-my-2012-sagitar-first-maintenance/"&gt;新速腾首保小记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/17/several-important-factors-in-making-performance-goals/"&gt;制定绩效目标的几个重要因素&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/06/buildc-0-2-0-release/"&gt;buildc 0.2.0版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/04/the-amateur-way-of-knowledge-management/"&gt;知识管理的几点野路子经营策略&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/02/treat-reinventing-the-wheel-dialectically/"&gt;辩证地看待“重新发明轮子”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/11/01/some-experience-on-team-management/"&gt;关于团队经营的若干体会&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201210"&gt;2012.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/10/26/some-practice-on-improving-tech-preach/"&gt;改善技术布道效果的几个实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/10/25/go-package-distributing/"&gt;也谈Go语言代码包分发&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/10/22/thoughts-on-software-inventory/"&gt;由一个软件库存问题想到的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/10/11/understanding-go-declaration-syntax/"&gt;也谈Go语言声明语法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/10/08/the-new-age-of-programming-language/"&gt;编程语言进入“拼爹”时代&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201209"&gt;2012.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/09/26/interoperability-between-go-and-c/"&gt;Go与C语言的互操作&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/09/21/signal-handling-in-go/"&gt;Go中的系统Signal处理&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/09/08/a-brief-tour-of-go-standard-library/"&gt;Go语言标准库概览&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201208"&gt;2012.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/28/the-go-programming-language-tutorial-part3/"&gt;Go程序设计语言(三)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/27/the-go-programming-language-tutorial-part2/"&gt;Go程序设计语言(二)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/23/the-go-programming-language-tutorial-part1/"&gt;Go程序设计语言(一)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/17/hello-go/"&gt;也谈Go语言编程 – Hello，Go!&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/15/bouncing-check-and-organization-gene/"&gt;项目跳票成常态，组织基因难逃干系&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/14/getting-going-with-go/"&gt;开始学Go&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/08/why-not-go/"&gt;为什么不用用Go？&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/07/errata-of-some-practice-to-improve-tech-sermon/"&gt;《改善技术布道效果的几个实践》勘误&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/06/reasons-for-promote-km-difficult/"&gt;知识管理推广难的几点原因&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/08/02/do-right-things-early/"&gt;做正确的事要趁早&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201207"&gt;2012.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/07/30/a-trip-to-suizhong-beach/"&gt;绥中电厂海滩之旅&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/07/19/buildc-0-1-9-release/"&gt;buildc 0.1.9版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/07/10/read-how-google-tests-software/"&gt;读《How Google Tests Software》&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/07/02/buildc-0-1-8-release/"&gt;buildc 0.1.8版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201206"&gt;2012.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/06/21/some-feeling-after-driving-for-1000km/"&gt;1000公里驾车感受&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/06/04/drive-in-rainstorm/"&gt;暴雨·冰雹·涉水·夜路·堵车·行车记&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201205"&gt;2012.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/05/25/new-sagitar-and-my-first-driving-experience/"&gt;新速腾提车与第一次上路&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/05/21/to-face-it/"&gt;勇于面对&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/05/09/ssh-access-bitbucket-via-http-proxy/"&gt;使用ssh通过http代理访问bitbucket&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/05/08/translate-seven-languages-in-seven-weeks/"&gt;翻译《七周七语言》的那些事儿&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201204"&gt;2012.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/24/influencing-factors-and-effective-practice-about-driving-technical-changes/"&gt;也谈技术布道 – 影响因素及有效实践&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/19/buildc-0-1-7-release/"&gt;buildc 0.1.7版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/17/a-discussion-about-when-to-release/"&gt;一场关于“何时发布版本”的论战&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/13/buildc-0-1-5-release/"&gt;buildc 0.1.5版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/12/buildc-0-1-4-release/"&gt;buildc 0.1.4版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/11/multiple-definitions-of-the-compiling-phase/"&gt;关于编译阶段符号多重定义的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/10/lcut-0-3-0-release/"&gt;lcut 0.3.0版本发布&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/09/how-to-participate-linux-community-section-7/"&gt;如何加入Linux内核开发社区(7)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-6/"&gt;如何加入Linux内核开发社区(6)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/04/05/how-to-participate-linux-community-section-5/"&gt;如何加入Linux内核开发社区(5)&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201203"&gt;2012.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/31/how-to-participate-linux-community-section-4/"&gt;如何加入Linux内核开发社区(4)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/29/how-to-participate-linux-community-section-3/"&gt;如何加入Linux内核开发社区(3)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/28/how-to-participate-linux-community-section-2/"&gt;如何加入Linux内核开发社区(2)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/27/how-to-participate-linux-community-section-1/"&gt;如何加入Linux内核开发社区(1)&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/18/linux-kernel-hacking-series-kconfig-and-kbuild/"&gt;也谈Linux Kernel Hacking – Kconfig与Kbuild&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/15/linux-kernel-hacking-series-kernel-config-compile-and-install/"&gt;也谈Linux Kernel Hacking – 内核配置、编译与安装&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/07/the-chinese-translation-of-recommended-c-style-and-coding-standards/"&gt;C语言编码风格和标准&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/03/05/implement-adapter-pattern-in-c/"&gt;Adapter模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201202"&gt;2012.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/29/a-new-departure-of-my-blog-move-from-blogbus-to-wordpress/"&gt;Blog新起点 – 从BlogBus搬家到WordPress&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/15/intergating-on-multiple-platforms-simultaneously-using-jenkins/"&gt;使用Jenkins实现多平台并行集成&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/14/install-and-configure-jenkins/"&gt;折腾Jenkins&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/10/add-packing-feature-to-buildc/"&gt;为buildc添加安装包制作相关功能&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/07/add-setup-script-for-buildc/"&gt;为buildc添加setup脚本&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/02/01/also-talk-about-c-app-install-package-making-and-deploying/"&gt;也谈C应用安装包制作与部署&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201201"&gt;2012.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/29/plan-and-design-2012/"&gt;谋划2012&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/23/happy-spring-festival-from-my-daughter-2012/"&gt;2012·果果给您拜年了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/17/also-talk-about-building-c-app/"&gt;也谈C语言应用构建&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/12/my-grow-up-in-2011/"&gt;2011·工作中的成长&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/08/thoughts-from-persuading-somebody-to-quit/"&gt;由劝退一名员工所想到的&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2012/01/06/thoughts-on-establishing-a-benign-feedback-mechanisms-inside-the-organization/"&gt;关于组织内部建立良性提议反馈机制的一些考量&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二零一一"&gt;二零一一&lt;/h3&gt;
&lt;h4 id="201112"&gt;2011.12&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/12/22/book-list-i-have-read-in-2011/"&gt;2011·读过的书&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/12/21/my-year-end-summary-of-2011/"&gt;2011小结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/12/08/buildc-a-building-assistant-tool-for-c-app/"&gt;C语言项目构建管理辅助工具 – buildc&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/12/01/hack-app-by-buffer-overflow-leak/"&gt;利用缓冲区溢出漏洞Hack应用&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201111"&gt;2011.11&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/11/23/those-things-about-knowledge-management/"&gt;知识管理那些事儿&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/11/18/also-talk-about-restrict-type-qualifier-in-c/"&gt;也谈C语言的restrict类型修饰符&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/11/07/implement-state-pattern-in-c/"&gt;State模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/11/04/implement-transaction-pattern-in-c/"&gt;Transaction模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201110"&gt;2011.10&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/10/31/improving-efficiency-should-not-only-be-a-slogan/"&gt;提高效率不是口号&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/10/25/implement-chain-of-responsibility-pattern-in-c/"&gt;Chain of Responsibility模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/10/20/implement-strategy-pattern-in-c/"&gt;Strategy模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/10/17/the-state-of-c/"&gt;C语言的现状&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/10/14/implement-observer-pattern-in-c/"&gt;Observer模式的C实现&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201109"&gt;2011.09&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/26/the-tour-of-tianhua-moutain-in-autumn/"&gt;秋游天华山&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/23/c-programers-tame-common-lisp-series-functions/"&gt;C程序员驯服Common Lisp – 函数&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/20/c-programers-tame-common-lisp-series-variables/"&gt;C程序员驯服Common Lisp – 变量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/14/c-programers-tame-common-lisp-series-control-structure/"&gt;C程序员驯服Common Lisp – 控制结构&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/09/when-program-version-changed/"&gt;当可执行程序版本信息变更时&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/06/a-tour-of-xizhong-island/"&gt;西中岛旅记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/05/one-year-old-photos-of-my-daughter/"&gt;果果一周岁生日靓照&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/09/02/c-programers-tame-common-lisp-series-expressions/"&gt;C程序员驯服Common Lisp – 表达式&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201108"&gt;2011.08&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/31/simplify-coding-in-c99/"&gt;使用C99特性简化代码编写&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/30/c-programers-tame-common-lisp-series-introduction/"&gt;C程序员驯服Common Lisp – 入门&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/23/solve-portable-problem-with-autoconf/"&gt;使用autoconf解决可移植性问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/16/some-notes-on-using-bambook/"&gt;Bambook使用手记&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/"&gt;CBehave – 一个C语言行为驱动开发框架&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/10/introducing-bdd/"&gt;行为驱动开发导引&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/08/05/some-experience-of-common-lisp-beginner/"&gt;Common Lisp初学点滴&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201107"&gt;2011.07&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/21/pay-for-a-tech-debt-of-several-year-ago/"&gt;偿还N年前的一笔技术债&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/13/add-enter-and-exit-trace-for-your-function/"&gt;为函数添加enter和exit级trace&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/07/also-talk-about-shared-library-2/"&gt;也谈共享库2&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/04/also-talk-about-standard-compile-stage-of-c-compiler/"&gt;也谈C语言编译器的标准编译阶段&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/02/also-talk-about-the-first-match-of-agentina-on-2011-copa-america/"&gt;也谈阿根廷队2011美洲杯首演&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/07/01/also-talk-about-the-internationalization-support-in-c/"&gt;也谈C语言对国际化的支持&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201106"&gt;2011.06&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/27/configure-multiple-websites-with-apache2/"&gt;使用Apache2配置多个站点&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/22/also-talk-about-inline-function-in-c/"&gt;也谈C语言的内联函数&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/21/solve-a-problem-about-ip-route/"&gt;解决一个IP路由选择问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/21/hello-common-lisp/"&gt;Hello，Common Lisp&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/14/try-pomodoro-technique/"&gt;小试番茄工作法&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/07/use-buildbot-serves-serveral-projects-simultaneously/"&gt;让BuildBot服务于多个项目&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/06/03/hold-the-coding-rhythm/"&gt;把握好编码的节奏&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201105"&gt;2011.05&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/31/solve-the-problem-that-buildbot-can-not-send-mail/"&gt;解决BuildBot构建结果mail无法发送的问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/24/develop-android-app-in-command-line-method/"&gt;使用命令行方式开发Android应用&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/22/among-flowers-the-portray-of-my-daughter/"&gt;果果写真-一周岁花丛系列&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/19/use-command-line-vars-of-make/"&gt;使用Make的命令行变量&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/18/set-up-ci-environment-with-buildbot/"&gt;使用BuildBot搭建持续集成环境&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/"&gt;聆听编程“古训”&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/"&gt;只对代码无法表达的东西写注释&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/05/03/my-daughter-is-one-year-old/"&gt;果果一周岁了&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201104"&gt;2011.04&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/29/feel-experience-after-using-ubuntu-for-one-year/"&gt;Ubuntu一年使用感受&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/24/i-finally-see-optimus-prime/"&gt;终于见到擎天柱大哥了！&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/23/the-boy-scout-rule/"&gt;童子军规则&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/21/apply-style-check-to-c-code/"&gt;应用C语言代码风格检查&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/"&gt;使用正确的算法和数据结构&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/04/10/bring-my-daughter-outdoor-in-sping/"&gt;带果果到户外感受春天&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201103"&gt;2011.03&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/"&gt;借开源实现你的雄心壮志&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/23/also-talk-about-solving-the-svn-conflicts/"&gt;也谈SVN冲突解决&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/"&gt;你应该关心你的代码&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/21/upgrade-thunderbird/"&gt;升级Thunderbird&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/21/do-not-give-up-your-standard-first/"&gt;别放弃你的标准&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/17/improve-code-by-removing-it/"&gt;通过精减来改善代码&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/"&gt;知道如何使用命令行工具&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/12/the-earthquake-happened-in-japan/"&gt;现实版灾难片-日本大地震&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/04/some-experience-on-using-review-board/"&gt;Review Board的几点使用体会&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/03/01/buy-an-ergonomic-chair/"&gt;买了把人体工学座椅&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201102"&gt;2011.02&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/24/the-professional-programmer/"&gt;专业程序员&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/23/continous-learning/"&gt;持续学习&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/22/code-reviews/"&gt;代码评审&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/18/put-everything-under-version-control/"&gt;把一切都纳入版本控制&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/16/automate-your-coding-standard/"&gt;将你的编码标准自动化&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/15/before-you-refactor/"&gt;在你重构之前&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/02/02/happy-spring-festival-from-my-daughter-2011/"&gt;果果给您拜年了&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="201101"&gt;2011.01&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/28/terrible-eyes/"&gt;眼神儿太差了&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/26/the-expectations-of-my-colleagues-in-2011/"&gt;2011·同事对我的期望&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/24/response-for-the-interface-prototype-change/"&gt;应对库接口原型变更&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/24/booklist-2011-01-24/"&gt;说书单2011.01.24&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/21/encounter-byte-order-problem-again/"&gt;又遇字节序问题&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/20/try-git-svn/"&gt;小试git-svn&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/11/leomessi-defend-his-ballon-dor/"&gt;梅西给力，蝉联金球&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/08/do-not-forget-to-test-your-assumption/"&gt;别忘了测试你的假定&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/04/about-year-end-summary/"&gt;关于年终总结&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;《&lt;a href="https://tonybai.com/2011/01/01/happy-new-year-from-my-daughter-2011/"&gt;果果祝大家新年快乐&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>我的技术专栏</title><link>https://tonybai.com/tech-column/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tonybai.com/tech-column/</guid><description>&lt;p&gt;&lt;img alt="Image 1" loading="lazy" src="https://tonybai.com/images/wp-content/uploads/tech-column-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://tonybai.com/tech-column"&gt;本文永久链接&lt;/a&gt; – &lt;a href="https://tonybai.com/tech-column"&gt;https://tonybai.com/tech-column&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;大家好，我是Tony Bai。&lt;/p&gt;
&lt;p&gt;欢迎来到&lt;strong&gt;我的技术专栏汇总页&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;在多年的技术创作中，我始终致力于&lt;strong&gt;连接两个世界&lt;/strong&gt;：一个是计算机科学的底层世界，那里充满了优雅的原理和不变的基石；另一个是软件工程的实践世界，那里充满了复杂的挑战和具体的“坑”。&lt;/p&gt;</description></item></channel></rss>