Skip Fuse 现在对独立开发者免费! - 肘子的 Swift 周报 #110
在 Swift 社区发布官方 Android 版 SDK 不久之后,Skip 宣布其 Skip Fuse 版本将对符合条件的独立开发者免费开放,用于构建 Android 应用。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog
在 Swift 社区发布官方 Android 版 SDK 不久之后,Skip 宣布其 Skip Fuse 版本将对符合条件的独立开发者免费开放,用于构建 Android 应用。
Subscribe English RSS
阅读全文
via 肘子的 Swift 记事本 | Fatbobman's Blog
招商银行储蓄卡微信动账提醒恢复方法
招行在早些时候关闭了储蓄卡的微信动账提醒,此方法可以让没开通的用户也能启用该提醒。
via Mengke's blog - Mengke's coding journey (author: me@mengke.me (Mengke))
招行在早些时候关闭了储蓄卡的微信动账提醒,此方法可以让没开通的用户也能启用该提醒。
via Mengke's blog - Mengke's coding journey (author: me@mengke.me (Mengke))
榜樣力量
坤坤四年級(上期)第9周學報〔總第118期〕
本周,坤坤語文預學新課,練習題單;課外閱讀《瘋狂偵探國》之阿修牌摩托車、準備露營、冰釋前嫌、論文被盜、移花接木、計中計、歡樂晚餐等;坤喜古文又不願付出心力,為父引導坤坤學習經典,了解世界傑出人士生平事跡。坤稱前人成就早被今人超越,本人復他超越不是遺忘,超越皆因我們站在巨人肩膀。
課外閱讀加練《中華武術的起源和發展》,增強文段理解能力;課外閱讀加練《某某醫院就診》,為父引導坤坤將思維導圖結合生活實際解題,諸如掛號、體檢、就診、機取報告、取藥,力爭交融貫通。
數學方面:學習新課,練習題單,復習改錯;課外加練三種題型:多數相加、相向而行、數列加法。為父重點講解規律,坤坤偶遇同題似乎又不會做。深刻領悟數學規律還需自身刻苦修行。周末空杯、空瓶倒水一題,為父引導坤坤作畫解答,抽象思維通過形象思維慢慢構建熟爾。
英語方面:每晚閱讀課文和單詞,抄寫單詞。英語考試92分,單詞默寫正確9個(考察20個),為父勉勵坤坤繼續努力。
其他方面:興趣班練習拉弓射箭,復購護指;大運同學放學路上分享零食,感慨同學關系冷漠無情。孩子內心真是敏感!我們應為孩子盡量創建同學增進友誼的社交環境;表揚坤坤運動會出場英姿颯爽、幹凈立落;研學難玩,飲料行李重相當於鍛煉身體。
遊戲時間大幅減少,坤坤閑暇時間認真畫刀,為父引導他查詢資料模畫再創新,即使夜深亦不擾其畫耐心,培養專註力。媽媽察覺坤坤興趣變化,一是憂心有異,二是購買手工玩具與否。為父詳詢坤坤何故?其復生活無聊。坤坤作畫至少比手遊好,或者他太菜不想再玩?周末妻子為兒購買玩具。
秋季研學,為父讓坤坤約同學采購小組零食和飲料,以便更符組員口味。超市人多、孩子搶著掃碼,本人歸家察覺部分商品漏掃未付款。老夫當場嚴肅教育坤坤,此事甚為嚴重,本人未察小票有失,你日後定要認真掃碼付款。
本人細想未付款商品一宿,翌日清晨便到超市向店員說明情況,道歉補繳費用。妻子讓我晚間再帶坤前往超市致歉。
我言自己一早已去處理此事,晚間坤坤再去致歉略顯唐突,如若我們同道處理或許更好。購物當晚人多,自助付款機貨架還有前人遺留之物,商品掃碼可能受此影響?孩子們熱情積極掃碼,並無主動不掃意願(故意不掃,定當道歉)。孩子們掃碼不知是否掃中,還是機器沒反映出來,此事很難判定。為父已經嚴肅告訴坤坤這種行為涉嫌偷竊,本人一早就要前去處理。晚間老夫還要回家為他講解此事。此事跟坤雖有關系,我們在責任不能直接界定情勢下,給他一次機會深刻認識錯誤、下不為例,孩子直接道歉是否會覺冤屈,畢竟小孩子確實無心之失而非有意為之。
妻言道歉難道不是應該的嗎?超市人員如果沒有發現此事,難道他們就應該背鍋?錯誤事實已經形成,過程雖不能查清,但我們不能違背良心,不論有心之過與無心之過,我們都應該身體力行道歉和彌補。你的道歉行為只是監護人未核查這一部分認責,兒子應該承擔該他承擔的那部分責任。說教不易認識自身錯誤,事教事一遍就會了。
我們爭執不休。老夫認為此事已過,給兒子一個緩沖空間心理建設、認識和改正錯誤;妻子認為坤坤必須今晚前往超市道歉。
話題絮叨幾輪。老夫不排斥坤坤道歉,非要坤坤正式道歉也行。本人讓妻子帶兒道歉,天高路遠,時機易過;母子充分溝通之後,由我帶兒前往致歉。妻子不從並認為我才是教育主體。
老夫思慮片刻。一個成熟男人怎能不考慮妻子意見?如何讓坤坤在最低限受挫環境中意識自身錯誤?既不感冤枉,又勇敢擔當。坤坤寫一份致歉信?此事似乎也不妥當。
父母之愛拿捏分寸到位實屬不易。
思慮再三。為父最終決定挺身而出再次前往超市道歉。一個優秀的人要時刻保持韌性。
為父晚間帶兒前往超市,「假裝」辦理漏掃商品費用補繳,並讓兒子道了歉。超市工作人員笑著對坤坤說沒關系,以後掃碼付款要多留心,為父當晚帶坤再次熟悉了一遍自主付款流程。
超市工作人員對我表示感謝:「家長為孩子樹立了良好榜樣」。
或許生活中一些規則與價值觀必須我們身體力行。
via 王宜楷工作室
坤坤四年級(上期)第9周學報〔總第118期〕
本周,坤坤語文預學新課,練習題單;課外閱讀《瘋狂偵探國》之阿修牌摩托車、準備露營、冰釋前嫌、論文被盜、移花接木、計中計、歡樂晚餐等;坤喜古文又不願付出心力,為父引導坤坤學習經典,了解世界傑出人士生平事跡。坤稱前人成就早被今人超越,本人復他超越不是遺忘,超越皆因我們站在巨人肩膀。
課外閱讀加練《中華武術的起源和發展》,增強文段理解能力;課外閱讀加練《某某醫院就診》,為父引導坤坤將思維導圖結合生活實際解題,諸如掛號、體檢、就診、機取報告、取藥,力爭交融貫通。
數學方面:學習新課,練習題單,復習改錯;課外加練三種題型:多數相加、相向而行、數列加法。為父重點講解規律,坤坤偶遇同題似乎又不會做。深刻領悟數學規律還需自身刻苦修行。周末空杯、空瓶倒水一題,為父引導坤坤作畫解答,抽象思維通過形象思維慢慢構建熟爾。
英語方面:每晚閱讀課文和單詞,抄寫單詞。英語考試92分,單詞默寫正確9個(考察20個),為父勉勵坤坤繼續努力。
其他方面:興趣班練習拉弓射箭,復購護指;大運同學放學路上分享零食,感慨同學關系冷漠無情。孩子內心真是敏感!我們應為孩子盡量創建同學增進友誼的社交環境;表揚坤坤運動會出場英姿颯爽、幹凈立落;研學難玩,飲料行李重相當於鍛煉身體。
遊戲時間大幅減少,坤坤閑暇時間認真畫刀,為父引導他查詢資料模畫再創新,即使夜深亦不擾其畫耐心,培養專註力。媽媽察覺坤坤興趣變化,一是憂心有異,二是購買手工玩具與否。為父詳詢坤坤何故?其復生活無聊。坤坤作畫至少比手遊好,或者他太菜不想再玩?周末妻子為兒購買玩具。
秋季研學,為父讓坤坤約同學采購小組零食和飲料,以便更符組員口味。超市人多、孩子搶著掃碼,本人歸家察覺部分商品漏掃未付款。老夫當場嚴肅教育坤坤,此事甚為嚴重,本人未察小票有失,你日後定要認真掃碼付款。
本人細想未付款商品一宿,翌日清晨便到超市向店員說明情況,道歉補繳費用。妻子讓我晚間再帶坤前往超市致歉。
我言自己一早已去處理此事,晚間坤坤再去致歉略顯唐突,如若我們同道處理或許更好。購物當晚人多,自助付款機貨架還有前人遺留之物,商品掃碼可能受此影響?孩子們熱情積極掃碼,並無主動不掃意願(故意不掃,定當道歉)。孩子們掃碼不知是否掃中,還是機器沒反映出來,此事很難判定。為父已經嚴肅告訴坤坤這種行為涉嫌偷竊,本人一早就要前去處理。晚間老夫還要回家為他講解此事。此事跟坤雖有關系,我們在責任不能直接界定情勢下,給他一次機會深刻認識錯誤、下不為例,孩子直接道歉是否會覺冤屈,畢竟小孩子確實無心之失而非有意為之。
妻言道歉難道不是應該的嗎?超市人員如果沒有發現此事,難道他們就應該背鍋?錯誤事實已經形成,過程雖不能查清,但我們不能違背良心,不論有心之過與無心之過,我們都應該身體力行道歉和彌補。你的道歉行為只是監護人未核查這一部分認責,兒子應該承擔該他承擔的那部分責任。說教不易認識自身錯誤,事教事一遍就會了。
我們爭執不休。老夫認為此事已過,給兒子一個緩沖空間心理建設、認識和改正錯誤;妻子認為坤坤必須今晚前往超市道歉。
話題絮叨幾輪。老夫不排斥坤坤道歉,非要坤坤正式道歉也行。本人讓妻子帶兒道歉,天高路遠,時機易過;母子充分溝通之後,由我帶兒前往致歉。妻子不從並認為我才是教育主體。
老夫思慮片刻。一個成熟男人怎能不考慮妻子意見?如何讓坤坤在最低限受挫環境中意識自身錯誤?既不感冤枉,又勇敢擔當。坤坤寫一份致歉信?此事似乎也不妥當。
父母之愛拿捏分寸到位實屬不易。
思慮再三。為父最終決定挺身而出再次前往超市道歉。一個優秀的人要時刻保持韌性。
為父晚間帶兒前往超市,「假裝」辦理漏掃商品費用補繳,並讓兒子道了歉。超市工作人員笑著對坤坤說沒關系,以後掃碼付款要多留心,為父當晚帶坤再次熟悉了一遍自主付款流程。
超市工作人員對我表示感謝:「家長為孩子樹立了良好榜樣」。
或許生活中一些規則與價值觀必須我們身體力行。
via 王宜楷工作室
拒绝反DEI联邦拨款后,Python软件基金会迎来捐赠热潮
Python软件基金会勇敢拒绝了150万美元的反DEI联邦拨款,此举立即引发了社区前所未有的支持浪潮。
via TecHug (author: techug)
Python软件基金会勇敢拒绝了150万美元的反DEI联邦拨款,此举立即引发了社区前所未有的支持浪潮。
via TecHug (author: techug)
前端AI应用-SSE流式渲染
SSE技术原理与核心特性 SSE基础概念 SSE是基于HTTP协议的单向通信协议(仅服务端→客户端),通过EventSourceAPI实现。其核心特点: - 长连接:HTTP连接保持打开状态,服务端可持续推送数据,避免频繁重建连接的开销; - 文本协议:数据以...
via Cirry's Blog
SSE技术原理与核心特性 SSE基础概念 SSE是基于HTTP协议的单向通信协议(仅服务端→客户端),通过EventSourceAPI实现。其核心特点: - 长连接:HTTP连接保持打开状态,服务端可持续推送数据,避免频繁重建连接的开销; - 文本协议:数据以...
via Cirry's Blog
20251101
今天在天目里有咖啡节,和 Alen 强哥一起去溜了溜。不用看都知道,这种活动在天目里一定是人山人海。果然,有名点的品牌摊位都已经排着长长的队伍。
昨天另一个朋友已经打头阵,尝了一遍告诉我来自马来西亚的 One Half 很不错,我们第一个目标就是它了。没想到 One Half 摊位前一个人都没有,这算是今日开始就获得的小幸运吧。点了两杯图特马斯瑰夏,咖啡师还先冲了一个冲浪板给大家分享。这两个加一起无论如何都是瑰夏大满足了。我们点的这杯味道真不错,有的时候真是难以理解,看着人家冲也没见到有什么特殊手法,自己上手后就是冲不出这样的味道,很迷。
第二家去的铃木老师摊位。铃木老师真的和小红书上刷到的长得一模一样😄。作为 Origami 滤杯的发明者,我很期待老师亲自冲的味道,于是又点了一杯瑰夏,不过这次感觉铃木老师扑街了,可能是小摊位装备不行,可能是太火同时冲多杯,可能是水土不服,总之我给铃木老师想好理由了。
天目里最近活动好多,每个周末还有爵士音乐节。我们坐着休息了一阵子,听着远处舞台上工作人员在准备着乐器。
中午吃的强哥心心念念的传家,传家的包子实在太好吃了!
via 61’s life
今天在天目里有咖啡节,和 Alen 强哥一起去溜了溜。不用看都知道,这种活动在天目里一定是人山人海。果然,有名点的品牌摊位都已经排着长长的队伍。
昨天另一个朋友已经打头阵,尝了一遍告诉我来自马来西亚的 One Half 很不错,我们第一个目标就是它了。没想到 One Half 摊位前一个人都没有,这算是今日开始就获得的小幸运吧。点了两杯图特马斯瑰夏,咖啡师还先冲了一个冲浪板给大家分享。这两个加一起无论如何都是瑰夏大满足了。我们点的这杯味道真不错,有的时候真是难以理解,看着人家冲也没见到有什么特殊手法,自己上手后就是冲不出这样的味道,很迷。
第二家去的铃木老师摊位。铃木老师真的和小红书上刷到的长得一模一样😄。作为 Origami 滤杯的发明者,我很期待老师亲自冲的味道,于是又点了一杯瑰夏,不过这次感觉铃木老师扑街了,可能是小摊位装备不行,可能是太火同时冲多杯,可能是水土不服,总之我给铃木老师想好理由了。
天目里最近活动好多,每个周末还有爵士音乐节。我们坐着休息了一阵子,听着远处舞台上工作人员在准备着乐器。
中午吃的强哥心心念念的传家,传家的包子实在太好吃了!
via 61’s life
如何在 VS Code 搞定 .NET 主控台應用程式含執行參數的偵錯設定
每次用 VS Code 開發 .NET 主控台應用程式時,都需要手動設定
... 繼續閱讀 ...
via The Will Will Web (author: Will.Huang@miniasp.com)
每次用 VS Code 開發 .NET 主控台應用程式時,都需要手動設定
launch.json 來進行偵錯,建立啟動設定檔在 VS Code 還算簡單,有現成的命令可以輔助,對於 .NET 應用程式的支援度也很好。不過,我發現如果要對一個應用程式額外加入命令列參數,那就有點棘手,因為你幾乎很難從網路上找到立即可用的解決方案,若是請 AI 幫忙找答案,也幾乎只能得到錯誤的、誤解的解法,因為大部分 .NET 開發者對 VS Code 相對陌生,所以想要「好好說話」都非常困難。今天我打算要來給 AI 補一補養分了,告訴大家怎樣設定才好用。... 繼續閱讀 ...
via The Will Will Web (author: Will.Huang@miniasp.com)
DNS 冷启动:小型站点的“西西弗斯之石”
当我们谈论网站性能时,我们通常关注前端渲染、资源懒加载、服务器响应时间(TTFB)等。然而,在用户浏览器真正开始请求内容之前,有一个至关重要却鲜少在性能优化方面被提及的部分—— DNS 解析。对于默默无闻的小型站点而言,“DNS Cache Miss”(缓存未命中)或我称之为“DNS 冷启动”,会成为绕不过去的性能瓶颈,也就是本文标题所提到的“西西弗斯之石”。
神话的隐喻:DNS 解析的漫长旅程
要理解这块“石头”的重量,我们必须重温 DNS 解析的完整路径。这并非一次简单的查找,而是一场跨越全球的接力赛:
1. 起点:公共 DNS 服务器 — 用户发出请求,公共 DNS 服务器尝试在缓存中寻找答案。
2. 首次“推石”:根服务器 — 缓存缺失(Cache Miss),公共 DNS 服务器被引向全球 13 组根服务器。
3. 第二程:TLD 服务器 — 根服务器指向特定后缀(如
4. 第三程:权威服务器 — TLD 服务器指向网站域名最终的“管家”——权威 DNS 服务器。
5. 终点: 权威服务器返回最终的 IP 地址,再由公共 DNS 服务器返回给用户。
对于首次或长时间未访问的请求,这个过程意味着至少 4 次网络往返(RTT),而在涉及到 CNAME 等情况时则会更多。对于那些拥有完美缓存的大型网站来说,这块石头可能已被别人推到了山顶;但对小型站点,它总是在山脚等待它的西西弗斯。
多重世界:Anycast 的镜像迷宫
“既然 DNS 冷启动的代价如此之高,那我能否使用脚本定时访问自己的网站,提前让公共 DNS 缓存预热起来呢?”这是我曾经设想的解题思路。
然而,这一思路在现代互联网的 Anycast(泛播)架构下,往往徒劳无功。
Anycast 的核心理念是:同一个 IP 地址在全球多个节点同时存在,用户请求会被路由到“距离最近”或“网络路径最优”的节点。
这意味着,Google DNS (8.8.8.8) 、Cloudflare DNS (1.1.1.1)、阿里 DNS (223.5.5.5)、腾讯 DNS (119.29.29.29) 等公共 DNS 服务器背后并不是一台中心化的服务器,而是一组分布在世界各地、动态路由的节点集群。
于是问题出现了:
● 我在上海运行的预热脚本,也许命中了 223.5.5.5 的上海节点;
● 但来自北京的访问者,却会被路由到 223.5.5.5 的北京节点;
● 这两个节点的缓存,彼此独立、互不共享。
从站长的视角来看,DNS 缓存不再是一个可预测的实体,而是分裂成一片片地理隔离、随时可变的“镜像迷宫”。
每个访客都在不同的山脚下推着自己的那块石头,仿佛世界上有成千上万个西西弗斯,孤独地在各自的路径上前行。
不可控的缓存与「冷启动的常态化」
这也解释了为什么即便一个小型网站有规律地被脚本访问,仍可能在真实访客那里出现明显的 DNS 延迟。因为「预热」只是局部生效 —— 它温暖的是某一个任播节点的缓存,而不是整个网络的全貌。而当 TTL 到期或缓存被公共 DNS 服务器采用 LRU 等算法清理时,这份温度也会悄然散去。
从宏观上看,这让“小流量站点”陷入了某种宿命循环:
1. 因访问量低,缓存不易命中;
2. 因缓存不命中,解析耗时高;
3. 因解析耗时高,首屏性能差,用户更少访问;
4. 因用户更少访问,缓存更难命中。
冷启动不再是偶发的“意外”,而是一种被动的“常态”。
我们能否让石头变轻?—— 减缓冷启动影响的策略
西西弗斯的困境看似无解,但我们并非完全无能为力。虽然无法彻底消除 DNS 冷启动,但通过一系列策略,我们可以显著减轻这块石头的重量,缩短它每次滚落后被推上山顶的时间。
权衡的艺术:调整 DNS TTL (Time-To-Live)
TTL(生存时间)是 DNS 记录中的一个关键值,它告知递归解析器(如公共 DNS、本地缓存)可以将一条解析记录缓存多久,尽管他们可能会被 LRU 算法淘汰。
拉长 TTL 可以有效提高缓存的命中率,减少 DNS 冷启动的情况,尽可能让西西弗斯之石保留在山顶上。
但拉长 TTL 是以牺牲灵活性作为代价的:如果你因为某些原因需要更换域名做对应的 IP 地址,过长的 TTL 可能会导致访客在很长一段时间内取得的都是已经失效的 IP 地址。
选择更快的“信使”:使用合适的权威 DNS 服务器
DNS 解析的最后一公里——从公共 DNS 服务器到你的权威 DNS 服务器——的耗时同样至关重要。如果你的域名所采用的 Nameserver 服务响应缓慢、全球节点稀少、又或者距离访客所请求的公共 DNS 服务器距离太远,那么即使用户的公共 DNS 节点就在身边,整个解析链条依然会被这最后一环拖慢。
如果我正在写的是一篇英文博客,那么我只需要说把 Nameserver 换成 Cloudflare、Google 等一线大厂就完事了。这些大厂提供免费的权威 DNS 托管业务,且在全球各地拥有大量节点,在这方面是非常专业且值得信赖的。
但我现在正在使用简体中文,根据我的博客统计数据,我的读者大多来自中国大陆,他们的站点访客大多也来自中国大陆,他们请求的公共 DNS 服务器大概率也都部署在中国大陆,而 Cloudflare/Google Cloud DNS 完全没有权威 DNS 服务器的中国大陆节点,这会拖慢速度。所以如果你的访客主要来自中国大陆境内,或许可以试试阿里云或者 Dnspod,他们主要的权威 DNS 服务器节点都在中国大陆境内,这在理论上可以减少公共 DNS 服务器与 权威 DNS 服务器之间的通信时长。
结语:推石头的人
DNS 冷启动的问题,从未有完美的解决方案。它像是互联网架构中注定存在的一段“延迟的诗意”——每个访问者都从自己的网络拓扑出发,沿着看不见的路径,一步步推着那块属于自己的石头,直到抵达你的服务器山顶,换得屏幕上第一个像素的亮起。
对小型站点而言,这或许是命运的重量;但理解它、优化它、监测它,便是我们在这条漫长上坡路上,为石头磨出更光滑的棱角。
via 竹林里有冰的博客 (author: 竹林里有冰 (zhullyb@outlook.com))
当我们谈论网站性能时,我们通常关注前端渲染、资源懒加载、服务器响应时间(TTFB)等。然而,在用户浏览器真正开始请求内容之前,有一个至关重要却鲜少在性能优化方面被提及的部分—— DNS 解析。对于默默无闻的小型站点而言,“DNS Cache Miss”(缓存未命中)或我称之为“DNS 冷启动”,会成为绕不过去的性能瓶颈,也就是本文标题所提到的“西西弗斯之石”。
神话的隐喻:DNS 解析的漫长旅程
要理解这块“石头”的重量,我们必须重温 DNS 解析的完整路径。这并非一次简单的查找,而是一场跨越全球的接力赛:
1. 起点:公共 DNS 服务器 — 用户发出请求,公共 DNS 服务器尝试在缓存中寻找答案。
2. 首次“推石”:根服务器 — 缓存缺失(Cache Miss),公共 DNS 服务器被引向全球 13 组根服务器。
3. 第二程:TLD 服务器 — 根服务器指向特定后缀(如
.com)的顶级域名服务器。4. 第三程:权威服务器 — TLD 服务器指向网站域名最终的“管家”——权威 DNS 服务器。
5. 终点: 权威服务器返回最终的 IP 地址,再由公共 DNS 服务器返回给用户。
sequenceDiagram
participant User as 用户/浏览器
participant Local as 本地DNS<br>递归解析器
participant Root as 根域名服务器
participant TLD as 顶级域服务器<br>(.com, .org等)
participant Auth as 权威DNS服务器
Note over User,Auth: DNS递归查询完整流程
User->>Local: 1. 查询域名<br>www.example.com
Note over Local: 检查缓存<br>未找到记录
Local->>Root: 2. 查询 .com 的TLD服务器
Root-->>Local: 3. 返回 .com TLD服务器地址
Local->>TLD: 4. 查询 example.com 的权威服务器
TLD-->>Local: 5. 返回 example.com 的权威服务器地址
Local->>Auth: 6. 查询 www.example.com 的A记录
Auth-->>Local: 7. 返回 IP地址 (e.g., 1.1.1.1)
Note over Local: 缓存结果<br>(根据TTL设置)
Local-->>User: 8. 返回最终IP地址
Note over User,Auth: 后续流程
User->>Auth: 9. 使用IP地址建立TCP连接<br>开始HTTP请求
对于首次或长时间未访问的请求,这个过程意味着至少 4 次网络往返(RTT),而在涉及到 CNAME 等情况时则会更多。对于那些拥有完美缓存的大型网站来说,这块石头可能已被别人推到了山顶;但对小型站点,它总是在山脚等待它的西西弗斯。
多重世界:Anycast 的镜像迷宫
“既然 DNS 冷启动的代价如此之高,那我能否使用脚本定时访问自己的网站,提前让公共 DNS 缓存预热起来呢?”这是我曾经设想的解题思路。
然而,这一思路在现代互联网的 Anycast(泛播)架构下,往往徒劳无功。
Anycast 的核心理念是:同一个 IP 地址在全球多个节点同时存在,用户请求会被路由到“距离最近”或“网络路径最优”的节点。
这意味着,Google DNS (8.8.8.8) 、Cloudflare DNS (1.1.1.1)、阿里 DNS (223.5.5.5)、腾讯 DNS (119.29.29.29) 等公共 DNS 服务器背后并不是一台中心化的服务器,而是一组分布在世界各地、动态路由的节点集群。
于是问题出现了:
● 我在上海运行的预热脚本,也许命中了 223.5.5.5 的上海节点;
● 但来自北京的访问者,却会被路由到 223.5.5.5 的北京节点;
● 这两个节点的缓存,彼此独立、互不共享。
从站长的视角来看,DNS 缓存不再是一个可预测的实体,而是分裂成一片片地理隔离、随时可变的“镜像迷宫”。
每个访客都在不同的山脚下推着自己的那块石头,仿佛世界上有成千上万个西西弗斯,孤独地在各自的路径上前行。
不可控的缓存与「冷启动的常态化」
这也解释了为什么即便一个小型网站有规律地被脚本访问,仍可能在真实访客那里出现明显的 DNS 延迟。因为「预热」只是局部生效 —— 它温暖的是某一个任播节点的缓存,而不是整个网络的全貌。而当 TTL 到期或缓存被公共 DNS 服务器采用 LRU 等算法清理时,这份温度也会悄然散去。
从宏观上看,这让“小流量站点”陷入了某种宿命循环:
1. 因访问量低,缓存不易命中;
2. 因缓存不命中,解析耗时高;
3. 因解析耗时高,首屏性能差,用户更少访问;
4. 因用户更少访问,缓存更难命中。
冷启动不再是偶发的“意外”,而是一种被动的“常态”。
我们能否让石头变轻?—— 减缓冷启动影响的策略
西西弗斯的困境看似无解,但我们并非完全无能为力。虽然无法彻底消除 DNS 冷启动,但通过一系列策略,我们可以显著减轻这块石头的重量,缩短它每次滚落后被推上山顶的时间。
权衡的艺术:调整 DNS TTL (Time-To-Live)
TTL(生存时间)是 DNS 记录中的一个关键值,它告知递归解析器(如公共 DNS、本地缓存)可以将一条解析记录缓存多久,尽管他们可能会被 LRU 算法淘汰。
拉长 TTL 可以有效提高缓存的命中率,减少 DNS 冷启动的情况,尽可能让西西弗斯之石保留在山顶上。
但拉长 TTL 是以牺牲灵活性作为代价的:如果你因为某些原因需要更换域名做对应的 IP 地址,过长的 TTL 可能会导致访客在很长一段时间内取得的都是已经失效的 IP 地址。
选择更快的“信使”:使用合适的权威 DNS 服务器
DNS 解析的最后一公里——从公共 DNS 服务器到你的权威 DNS 服务器——的耗时同样至关重要。如果你的域名所采用的 Nameserver 服务响应缓慢、全球节点稀少、又或者距离访客所请求的公共 DNS 服务器距离太远,那么即使用户的公共 DNS 节点就在身边,整个解析链条依然会被这最后一环拖慢。
如果我正在写的是一篇英文博客,那么我只需要说把 Nameserver 换成 Cloudflare、Google 等一线大厂就完事了。这些大厂提供免费的权威 DNS 托管业务,且在全球各地拥有大量节点,在这方面是非常专业且值得信赖的。
但我现在正在使用简体中文,根据我的博客统计数据,我的读者大多来自中国大陆,他们的站点访客大多也来自中国大陆,他们请求的公共 DNS 服务器大概率也都部署在中国大陆,而 Cloudflare/Google Cloud DNS 完全没有权威 DNS 服务器的中国大陆节点,这会拖慢速度。所以如果你的访客主要来自中国大陆境内,或许可以试试阿里云或者 Dnspod,他们主要的权威 DNS 服务器节点都在中国大陆境内,这在理论上可以减少公共 DNS 服务器与 权威 DNS 服务器之间的通信时长。
结语:推石头的人
DNS 冷启动的问题,从未有完美的解决方案。它像是互联网架构中注定存在的一段“延迟的诗意”——每个访问者都从自己的网络拓扑出发,沿着看不见的路径,一步步推着那块属于自己的石头,直到抵达你的服务器山顶,换得屏幕上第一个像素的亮起。
对小型站点而言,这或许是命运的重量;但理解它、优化它、监测它,便是我们在这条漫长上坡路上,为石头磨出更光滑的棱角。
via 竹林里有冰的博客 (author: 竹林里有冰 (zhullyb@outlook.com))
一句话蒸发近5000亿,OpenAI CFO失言背后是财务真相还是公关危机?|OpenAI 大到不能倒 政府支持 人工智能 CFO 政府资金
via 老范讲故事的博客站 (author: Luke Fan)
via 老范讲故事的博客站 (author: Luke Fan)
Telegraph
一句话蒸发近5000亿,OpenAI CFO失言背后是财务真相还是公关危机?|OpenAI 大到不能倒 政府支持 人工智…
OpenAI到底需不需要政府兜底?一句话带崩整个的美股科技股 大家好,欢迎收听老范讲故事的YouTube频道。 一句话引发的“血案” 今天咱们来讲一讲这个“一句话引发的血案”。这个话是谁说的呢?是OpenAI的CFO,叫萨拉·弗利尔。真的是一句话,引发了5,000亿美金的市值震荡。他自己也就是估值5,000亿美金,一句话,5,000亿美金就直接灰飞烟灭了。 这句话什么时候说的呢?2025年11月5日,华尔街日报商业会议上。他讲的是: “我们正在寻求构建一个由银行、私募股权,以及联邦政府兜底或担保组成的生…
让我们统一Linux桌面环境
将所有Windows风格的Linux桌面环境整合为一,甚至仅整合三四种,都是不可能的。用C语言编写的大型程序与C++或Vala语言编写的程序无法有效整合,基于Gtk开发的程序也无法与Qt构建的程序兼容。
via TecHug (author: techug)
将所有Windows风格的Linux桌面环境整合为一,甚至仅整合三四种,都是不可能的。用C语言编写的大型程序与C++或Vala语言编写的程序无法有效整合,基于Gtk开发的程序也无法与Qt构建的程序兼容。
via TecHug (author: techug)
Vibe Coding 何必只在桌面 IDE,编码智能体协同的思考与设计
依托于我们领先(于国内的)下一代开源的 AutoDev 架构,在最新发布的 AutoDev 多平台预览版(0.1.6)中,我们实现了 AutoDev Server 与
via Blog | Phodal - A Growth Engineer (author: Phodal Huang)
依托于我们领先(于国内的)下一代开源的 AutoDev 架构,在最新发布的 AutoDev 多平台预览版(0.1.6)中,我们实现了 AutoDev Server 与
via Blog | Phodal - A Growth Engineer (author: Phodal Huang)
.NET 10 性能优化
.NET 10的性能故事并非迪士尼式的魔法奇想,而是通过在操作中精雕细琢——此处削减纳秒级延迟,彼处压缩数十字节数据——最终优化了万亿次级别的运行操作。
via TecHug (author: techug)
.NET 10的性能故事并非迪士尼式的魔法奇想,而是通过在操作中精雕细琢——此处削减纳秒级延迟,彼处压缩数十字节数据——最终优化了万亿次级别的运行操作。
via TecHug (author: techug)
不要用 Claude 的 AI 模型编程
因为不好用。特指 Claude Sonnet 4.5。
在日常的使用中已经被坑过几次:
1. 一味按照我说的做,不会提出任何反驳意见或者提醒
2. 在代码里留下 TODO,然后说完美,功能完成了
3. 会执行一些危险操作,比如
4. 对于有执行顺序的数据库 schema 变更记录,竟然直接修改某一个历史节点
相比之下,GPT-5 几乎不会犯这种错误。
所以可以放心地禁用掉所有来自 Claude 的 AI 模型。除非你的项目允许生成有逻辑漏洞的代码。
----------------------
顺便分享一个 instructions 文件,用于指导 AI Agent 编程:yincs-coding-style.md
via smallyu的博客
因为不好用。特指 Claude Sonnet 4.5。
在日常的使用中已经被坑过几次:
1. 一味按照我说的做,不会提出任何反驳意见或者提醒
2. 在代码里留下 TODO,然后说完美,功能完成了
3. 会执行一些危险操作,比如
git checkout —4. 对于有执行顺序的数据库 schema 变更记录,竟然直接修改某一个历史节点
相比之下,GPT-5 几乎不会犯这种错误。
所以可以放心地禁用掉所有来自 Claude 的 AI 模型。除非你的项目允许生成有逻辑漏洞的代码。
----------------------
顺便分享一个 instructions 文件,用于指导 AI Agent 编程:yincs-coding-style.md
via smallyu的博客
SIMD 加速字符串查找(strchr/strstr)完整指南
本篇基于 Wojciech Mula 的 "SIMD string find" 文章,结合实践给出更完整的思路、代码和注意事项。 原文链接: http://0x80.pl/notesen/2016-11-28-simd-strfind.html
via 土法炼钢兴趣小组的算法知识备份
本篇基于 Wojciech Mula 的 "SIMD string find" 文章,结合实践给出更完整的思路、代码和注意事项。 原文链接: http://0x80.pl/notesen/2016-11-28-simd-strfind.html
via 土法炼钢兴趣小组的算法知识备份
一致性哈希中的溢出问题:为什么你的集群比你想象的更容易爆满
一致性哈希(Consistent Hashing)是分布式系统中广为人知的技术,被用于 Memcached、Cassandra、DynamoDB 等众多系统中。它优雅地解决了节点动态增删时的数据重新分配问题。
via 土法炼钢兴趣小组的算法知识备份
一致性哈希(Consistent Hashing)是分布式系统中广为人知的技术,被用于 Memcached、Cassandra、DynamoDB 等众多系统中。它优雅地解决了节点动态增删时的数据重新分配问题。
via 土法炼钢兴趣小组的算法知识备份
.NET 10 有哪些新特性?你对.NET 10 的计划是什么?是迁移还是暂缓?
.NET 10无疑是款稳健的版本,既堪称周年纪念版,亦符合长期支持版本的标准。开发者持续聚焦性能优化并保持标准库逐年更新的态势令人鼓舞。
via TecHug (author: techug)
.NET 10无疑是款稳健的版本,既堪称周年纪念版,亦符合长期支持版本的标准。开发者持续聚焦性能优化并保持标准库逐年更新的态势令人鼓舞。
via TecHug (author: techug)