没有不值得去解决的问题,也没有不值得去学习的技术!

  • Codex 额度怎么控制:记住 10%、12%、15% 三个数字就够了

    Codex 额度怎么控制:记住 10%、12%、15% 三个数字就够了

    2026 年 8 月 26 日,我在 Codex 第一周的第一个 5 小时使用周期中连续记录了三次剩余额度。通过对比「5 小时剩余额度」和「一周剩余额度」,可以估算出:一个完整的 5 小时额度大约相当于一周总额度的 15%。为了以后不再反复计算,我把使用规则简化成三个数字:5 小时看 10%,一天看 12%,15% 是 5 小时极限。 后续只需要观察 Codex 界面中的周额度变化,就可以快速判断当前使用速度是否合适。

  • BeWild ChatGPT Plus 3 个月订单第 3 次续订实测:自动扣款失败、退款后重新订阅成功

    BeWild ChatGPT Plus 3 个月订单第 3 次续订实测:自动扣款失败、退款后重新订阅成功

    2026 年 8 月 25 日,我继续验证通过 BeWild 购买的 ChatGPT Plus 3 个月套餐第 3 次续订情况。与 7 月 25 日第二个月成功续订不同,这一次 OpenAI 明确提示付款失败,原 PHP 982.14 账单未完成支付。等待 BeWild 客服超过 1 小时后,最终确认是用于向 OpenAI 自动续费的付款方式失效,随后未完成部分退款 ¥150.69。我重新购买 3 个月套餐,新订单一度任务失败,但通过“继续任务”最终完成。OpenAI 原 PHP 982.14 账单随后作废,并生成新的 US$20 已支付账单。等待系统同步后,ChatGPT Plus 恢复正常,并显示下一次自动续订时间为 2026 年 9 月 26 日。本文完整记录 BeWild 3 个月套餐第三个月自动续订失败、退款、重新订阅和 Plus 恢复的全过程。

  • 从源码空白到 AdSense 高度污染:A Tour of Go 方案 B 的生产收尾

    从源码空白到 AdSense 高度污染:A Tour of Go 方案 B 的生产收尾

    A Tour of Go 的广告优化在方案 B 与 103 页 Prerender 上线后,又进入了一轮真正的生产稳定性收尾。本文按时间线记录了从方案 A 因复杂 DOM 监听与操作而出现难以稳定复现的问题,到方案 B 改用 Angular course view 生命周期管理广告,再到 Prerender、Angular、CodeMirror 交接过程中出现短暂源码空白,以及真实 AdSense 写入 height: auto !important、min-height: 0px !important 导致课程高度塌缩和 footer 提前进入第一屏的完整过程。最终没有恢复复杂的方案 A,而是仅将其中已经验证有效的局部 layout protection 接回方案 B,并通过浏览器回归测试和真实广告展示完成最终验收。

  • SPA 的 SEO 老问题:为什么最后还是给 103 个 A Tour of Go 课程页生成了 Prerender HTML

    SPA 的 SEO 老问题:为什么最后还是给 103 个 A Tour of Go 课程页生成了 Prerender HTML

    A Tour of Go 的 SPA SEO 问题早已存在:对用户来说,103 个课程 URL 明明对应不同内容,但 Google Search Console 曾将多个页面判断为“重复网页,用户未选定规范网页”。这一次在继续优化 AdSense 的过程中,我最终决定为全部 103 个正式课程页生成独立 Prerender HTML,让服务器首次响应就直接包含本页标题、正文、Go 示例源码、canonical 和 description,同时继续保留 Angular SPA、CodeMirror 与 Playground。本文记录了为什么 SEO 与广告上下文理解共同推动了这次 Prerender 实现,以及如何让每个课程 URL 真正拥有独立页面身份。

  • 保留 SPA 以后,广告应该放在哪里?从 AdSense 预览到方案 B

    保留 SPA 以后,广告应该放在哪里?从 AdSense 预览到方案 B

    在决定保留 A Tour of Go 原有 SPA 架构之后,广告问题从“要不要整页刷新”转变成了“广告应该放在哪里、又该如何跟随 SPA 页面生命周期”。本文记录了从 AdSense Preview 识别 footer 下方候选广告位,到方案 A 使用 MutationObserver 跟踪 DOM 变化,再到方案 B 将广告直接绑定 Angular route-owned course view 生命周期的完整演进。最终通过 mount() / $destroy / unmount() 管理每一页独立广告节点,并保留 Auto Ads 继续服务其他已正常运行的站点和域名。

  • 为了 AdSense,要不要放弃 SPA?A Tour of Go 页面架构的一次取舍

    为了 AdSense,要不要放弃 SPA?A Tour of Go 页面架构的一次取舍

    在排查 A Tour of Go 展示广告始终不出现的问题时,一个看似直接的方案是放弃 SPA,让每一节课程都通过完整页面刷新来简化 AdSense、统计和 SEO。但进一步对比后发现,最大的代价并不是一次性的前端改造,而是长期偏离 golang/website 上游架构,持续增加同步与维护成本。本文结合官方 A Tour of Go 的 SPA 导航、上游 _content/tour/ 目录以及项目自身的 upstream baseline 管理方式,对“保留 SPA”与“放弃 SPA”进行完整权衡,并最终确定:让广告适配 A Tour of Go,而不是为了广告重新设计 A Tour of Go。

  • A Tour of Go 明明有大片空白,为什么 AdSense 就是不显示展示广告?

    A Tour of Go 明明有大片空白,为什么 AdSense 就是不显示展示广告?

    在 A Tour of Go 多语言站点接入 Google AdSense 后,课程页虽然存在大片视觉空白,但普通展示广告始终没有出现。本文从 Auto Ads 配置、adsbygoogle.js 加载状态以及官方 A Tour of Go 的 DOM / layout 结构入手,分析为什么“页面看起来有空白”并不等于“Google 认为这里存在可插入广告的位置”。最终将问题范围收敛到 A Tour of Go 特殊的左右分栏和交互式页面结构,并引出后续一个更重要的架构选择:是否值得为了 AdSense 放弃原有 SPA。

  • A Tour of Go 多语言扩展复盘:为第三门语言建立标准化流程

    A Tour of Go 多语言扩展复盘:为第三门语言建立标准化流程

    A Tour of Go 日语版 ja-JP 正式上线后,我没有立即开始第三门语言,而是先复盘第二门语言从开发、翻译、质量审核、projection、production 部署到公网验收的完整过程,并将此前依赖临时分析和上下文记忆的环节固化为正式规范。项目新增 NEW_LOCALE_RUNBOOK.md 和 LOCALE_SURFACE_REVIEW.md,明确新增 locale 的统一入口、TranslationUnit 之外的完整语言质量审核、Rendered Surface Acceptance、首次生产部署与日常维护部署边界,以及 glossary 作为全站术语权威来源的职责,为后续第三门及更多语言建立可重复执行的标准化扩展流程。

  • A Tour of Go 日语版正式上线:第二门语言 ja-JP 完成生产发布

    A Tour of Go 日语版正式上线:第二门语言 ja-JP 完成生产发布

    A Tour of Go 多语言翻译项目的第二门社区语言 ja-JP 于 2026 年 8 月 24 日正式完成生产上线。日语版覆盖 103 个课程 Page 和 19 个 eligible Example,共 122 个 TranslationUnit,全部经过 automatic validation、Quality Check、Final Review 与 promotion,并完成公共 UI、课程目录、独立生产部署、Cloudflare Free、共享静态资源、Playground、SEO 与真实浏览器验收。Google Search Console 已成功处理 ja-JP sitemap 并发现 105 个公开网页。这次上线也真正验证了项目从 zh-CN 扩展到第二门语言的完整多语言架构。

  • A Tour of Go 翻译质量再评估:Codex High 已接近 ChatGPT High,我决定调整默认翻译引擎

    A Tour of Go 翻译质量再评估:Codex High 已接近 ChatGPT High,我决定调整默认翻译引擎

    本次重新评估 A Tour of Go 的 TranslationUnit 翻译方案,根本原因不是单纯比较模型能力,而是 ChatGPT 作为批量翻译引擎在实际工作中出现持续稳定性问题,即使从 ZIP 交付简化为 JSON,翻译任务仍可能卡住。实验使用 5 个正式 TranslationUnit、完整 zh-CN glossary、protected token、独立随机匿名和 Engineering Gate,对 ChatGPT GPT-5.6 High、Codex GPT-5.6 Sol High 与 Extra High 进行四模型匿名评审。结果显示,ChatGPT High 的外部评审平均分为 96.67,Codex High 为 95.73,Extra High 为 95.87,三者已进入相近的高质量梯队,而 Extra High 并未表现出稳定优势。综合翻译质量与本地批量执行能力,后续默认翻译引擎准备调整为 Codex GPT-5.6 Sol High,ChatGPT 则重点用于统一 Quality Check,并以所有 TranslationUnit 最终达到 A 作为质量验收目标。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。

👉 关于我 & 合作

.env (14) 404 (13) add (16) AI 翻译 (30) Apache (13) Array (19) A Tour of Go (52) Cache (13) CentOS (23) ChatGPT (19) ChatGPT Plus (14) chrome (19) Cloudflare (29) Codex (17) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) EdgeOne (31) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (26) Go (54) go-tour-i18n (14) Google AdSense (23) Go 语言 (23) GraphQL (24) GraphQL API (14) Gutenberg (34) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (21) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (18) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (49) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (35) Windows 10 (46) WireGuard (27) WordPress (126) WPCode (23) Wstunnel (14) Yii (40) Yii 2 (70) Yii 2.0 (51) 多语言翻译 (31) 技术博客 (15) 故障排查 (14) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Most Viewed Posts

  1. 从 LetsVPN 停用至自建 WireGuard VPN 全流程复盘(附避坑指南) (7,571)
  2. 使用中国大陆手机号登录 Telegram,弹出 SMS Fee 且支付选项不支持,购买 Premium 后短信验证码未收到的完整解决流程 (5,399)
  3. ZgoCloud + Wstunnel + WireGuard 提速 4 倍,Clash Verge Rev 自动分流与 443 端口防封实战 (4,903)
  4. WireGuard 国内直连+国外走隧道 配置踩坑与完美解决(实测可用) (3,914)
  5. WireGuard VPN 配置优化:国内网站直连,国外流量走VPN(实测有效) (2,102)
  6. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),新建api目录、配置和环境、测试、Vagrant等的支持 (1,345)
  7. 一直收到 Huobi.info 的账户管理费收取通知,决定提取出剩余的资产 (1,336)
  8. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),在 api 的 tests 目录中准备用户相关操作的一些自动化测试的样例(API 测试),确保应用程序在改变或增加新的功能时不会影响现有的功能 (1,312)
  9. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),实现模型分层:数据层、逻辑层,明确公共目录、应用、模块的继承、引用关系 (1,288)
  10. 基于 yiisoft/yii2-app-advanced,在 GitHub 上新建仓库 yii2-app-advanced,新建接口应用(实现 RESTful 风格的 Web Service 服务的 API),实现 RESTful Web 服务,支持国际化(动态地设置目标语言,默认为简体中文) (1,282)