[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-gentoo-kernel-config-menuconfig-workflow-zh":3,"article-related-gentoo-kernel-config-menuconfig-workflow-zh":30,"series-tools-d09affdd-1109-4194-ba42-05c53062a038":73},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"d09affdd-1109-4194-ba42-05c53062a038","gentoo-kernel-config-menuconfig-workflow-zh","Gentoo 核心設定把 menuconfig 變流程","\u003Cp data-speakable=\"summary\">我把 Gentoo kernel \u003Ca href=\"\u002Fnews\u002Fspec-kit-guided-ai-workflow-setup-zh\">設定\u003C\u002Fa>整\u003Ca href=\"\u002Fnews\u002Fopenai-jalapeno-chip-cuts-inference-costs-zh\">理成\u003C\u002Fa>可重複流程，從 menuconfig、模組重建到 installkernel，都能照著做。\u003C\u002Fp>\u003Cp>我在 Gentoo 上玩 kernel 夠久了，早就知道它最煩的不是 compile。compile 很單純，真正會讓人火大的是：這個 driver 到底要 built-in、module，還是根本別碰？外部模組有沒有一起顧到？我是不是又把 boot chain 弄成一坨，六小時後還講不清楚自己改了什麼？最惱人的就是這種「看起來都對，實際上很容易出事」的設定。Gentoo Wiki 的 \u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\u002FConfiguration\">Kernel\u002FConfiguration\u003C\u002Fa> 這頁，剛好把這堆雜訊整理成我能直接拿來用的流程。\u003C\u002Fp>\u003Cp>這次拆的來源就是這頁，外加它連到的 \u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\">Kernel\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\u002FGentoo_Kernel_Configuration_Guide\">Kernel\u002FGentoo Kernel Configuration Guide\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FInstallkernel\">installkernel\u003C\u002Fa>。我不是在自己發明一套新宗教，我只是把它們串成一個比較不會踩雷的工作法。\u003C\u002Fp>\u003Ch2>別把 kernel config 當一次性儀式\u003C\u002Fh2>\u003Cblockquote>“The kernel offers several user facing tools with which to configure itself.”\u003C\u002Fblockquote>\u003Cp>白話一點就是：Gentoo 不押寶單一入口，它給你多種配置\u003Ca href=\"\u002Fnews\u002Fproduct-hunt-best-prompt-engineering-tools-2026-zh\">工具\u003C\u002Fa>，重點是你要知道每個工具適合幹嘛。頁面列了 \u003Ccode>make config\u003C\u002Fcode>、\u003Ccode>make menuconfig\u003C\u002Fcode>、\u003Ccode>make nconfig\u003C\u002Fcode>、\u003Ccode>make xconfig\u003C\u002Fcode>、\u003Ccode>make gconfig\u003C\u002Fcode>、\u003Ccode>make oldconfig\u003C\u002Fcode>、\u003Ccode>make olddefconfig\u003C\u002Fcode>。看起來很多，但本質上就三種：互動編修、升級沿用、重置重來。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782523096027-38qx.png\" alt=\"Gentoo 核心設定把 menuconfig 變流程\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我以前也傻傻用 \u003Ccode>make config\u003C\u002Fcode>，它很誠實，會一題一題問你。問題是你只要中途發現前面漏掉一個選項，就得一路翻回去重走。這不是工作流，這是體力活。我不想每次都像在補考。\u003C\u002Fp>\u003Cp>實操上，我現在會這樣分：日常改設定用 \u003Ccode>make menuconfig\u003C\u002Fcode>；從已知可用的 \u003Ccode>.config\u003C\u002Fcode> 升級時，用 \u003Ccode>make olddefconfig\u003C\u002Fcode> 讓新預設吃進來但不要一直打斷我；真的要整個重洗，就用 \u003Ccode>make defconfig\u003C\u002Fcode>。另外，動手前先備份目前的 \u003Ccode>.config\u003C\u002Fcode>，這不是保守，這是避免自己把自己逼進角落。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>menuconfig\u003C\u002Fcode>：日常互動修改\u003C\u002Fli>\u003Cli>\u003Ccode>olddefconfig\u003C\u002Fcode>：升級時少問廢話\u003C\u002Fli>\u003Cli>\u003Ccode>defconfig\u003C\u002Fcode>：要重來就直接重來\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>看懂符號，不然你根本沒看懂 menu\u003C\u002Fh2>\u003Cp>這頁花篇幅解釋 menu UI，這不是廢話，這是救命。它把符號講得很清楚：方括號代表 built-in toggle，尖括號代表 built-in 或 module 的選擇，花括號代表被依賴關係鎖住的狀態，還有那些被別的選項固定住的項目。標籤像 \u003Ccode>(NEW)\u003C\u002Fcode>、\u003Ccode>(EXPERIMENTAL)\u003C\u002Fcode>、\u003Ccode>(DEPRECATED)\u003C\u002Fcode>、\u003Ccode>(OBSOLETE)\u003C\u002Fcode> 也都不是裝飾品。\u003C\u002Fp>\u003Cp>翻譯一下就是：你不能只看顏色、縮排、或名字像不像你熟悉的東西。\u003Ccode>[*]\u003C\u002Fcode> 跟 \u003Ccode>&lt;M&gt;\u003C\u002Fcode> 差很多。前者是直接進 kernel image，後者是變成可載入模組。這個差別會影響開機、救援、還有你能不能在不重編整顆 kernel 的情況下把問題救回來。\u003C\u002Fp>\u003Cp>我之前就踩過一次，某台機器的 storage 支援被我做成 module，結果早期開機路徑需要它先活著，偏偏我又沒把依賴顧完整。那台機器不是直接炸掉，而是一直表現得很有個性：有時候能開、有時候卡住、有時候像在故意考我記不記得自己改了什麼。這種不穩定最煩，因為它不會馬上告訴你錯在哪。\u003C\u002Fp>\u003Cp>實操寫法很簡單：在 \u003Ccode>menuconfig\u003C\u002Fcode> 裡，別憑感覺猜。每個選項只問一件事：它是不是必須在 modules 載入前就存在？如果是，就 built-in；如果不是，module 通常比較好回頭。看到 experimental 或 deprecated，先停一下，不要讓好奇心直接接手。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>[*]\u003C\u002Fcode> = built in\u003C\u002Fli>\u003Cli>\u003Ccode>&lt;M&gt;\u003C\u002Fcode> = module\u003C\u002Fli>\u003Cli>\u003Ccode>(NEW)\u003C\u002Fcode>、\u003Ccode>(EXPERIMENTAL)\u003C\u002Fcode> 要多看一眼\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>先搜尋，再慢慢翻，不要用肉眼賭運氣\u003C\u002Fh2>\u003Cp>Gentoo 這頁特別提到 \u003Ccode>menuconfig\u003C\u002Fcode> 裡面的 \u003Ccode>\u002F\u003C\u002Fcode> 搜尋。這種小功能很常被忽略，但它其實超有用。搜尋結果會列出 symbol 名稱、目前狀態、所在位置，還有 dependency chain。頁面用 \u003Ccode>HCIBTUSB\u003C\u002Fcode> 當例子，直接跳到 Bluetooth USB support，整個路徑一清二楚。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782523095913-v9ua.png\" alt=\"Gentoo 核心設定把 menuconfig 變流程\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>也就是說，你不用記住每個 submenu 的路徑。你只要知道 driver 或 subsystem 名稱，直接搜尋，然後順著依賴往下看就好。kernel config 其實大部分時間都在處理依賴，只是它披著 UI 外衣，看起來很像在選功能。\u003C\u002Fp>\u003Cp>我以前很常犯一個蠢事：明明有搜尋，卻硬是靠翻菜單找東西，像在逛百貨公司。結果找到選項後改了三個相關設定，還是不知道為什麼能動。搜尋把流程變成手術刀，不是逛街。它也讓 help text 變得更有價值，因為你是在正確的位置看正確的說明。\u003C\u002Fp>\u003Cp>實操上，我會先用 driver 名稱或 subsystem 名稱搜尋，再順著依賴鏈看它到底要求什麼。只要它依賴 \u003Ccode>USB\u003C\u002Fcode> 或 \u003Ccode>NET\u003C\u002Fcode>，就別假裝沒看到。搜尋結果不是答案本身，它是地圖。你要自己走路。\u003C\u002Fp>\u003Cp>這裡我也會搭配 \u003Ca href=\"https:\u002F\u002Fdocs.kernel.org\u002Fkbuild\u002Fkconfig.html\">Kconfig 文件\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FHardware_detection\">Hardware detection\u003C\u002Fa>，以及 upstream kernel tree：\u003Ca href=\"https:\u002F\u002Fgit.kernel.org\u002Fpub\u002Fscm\u002Flinux\u002Fkernel\u002Fgit\u002Ftorvalds\u002Flinux.git\">kernel.org\u003C\u002Fa>。有時候你真的得回 upstream 看 symbol 到底在講什麼，不然只看 distro 文檔很容易半懂不懂。\u003C\u002Fp>\u003Ch2>Gentoo 的 common settings 是底線，不是偷懶捷徑\u003C\u002Fh2>\u003Cp>頁面提到 \u003Ccode>CONFIG_GENTOO_LINUX\u003C\u002Fcode>，這個選項在 \u003Ccode>sys-kernel\u002Fgentoo-sources\u003C\u002Fcode> 和一些 Kernel Project 維護的 kernels 裡可用。重點不是名字，而是它會幫你選一組 Gentoo 常見安裝需要的基本選項，像 \u003Ccode>tmpfs\u003C\u002Fcode>、\u003Ccode>devtmpfs\u003C\u002Fcode> 這些跟 \u003Ccode>\u002Fdev\u003C\u002Fcode> 管理有關的東西。\u003C\u002Fp>\u003Cp>翻譯一下就是：Gentoo 給你一個合理底線，避免你每次都忘掉那些很無聊、但又絕對不能漏的設定。它不是替你做決策，它只是先把通用前提鋪好，讓你把腦力留給真正跟硬體有關的部分。\u003C\u002Fp>\u003Cp>我其實滿喜歡這種設計，因為它承認現實：沒有人想每次都重選一遍所有通用 kernel knob。那不叫精緻，那叫重複勞動。把基礎盤先固定住，才有空去處理 storage、input、network、graphics、virtualization，還有那些只有你那台機器才會碰到的怪東西。\u003C\u002Fp>\u003Cp>實操上，如果你用的是 Gentoo sources，就先確認這個 helper config 在不在，然後把 help text 看完。把它當 baseline 用，但不要假設它已經涵蓋所有 edge case。它不會。\u003C\u002Fp>\u003Cul>\u003Cli>適合當 Gentoo 基本盤\u003C\u002Fli>\u003Cli>不是硬體細節的替代品\u003C\u002Fli>\u003Cli>help text 先看再說\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>工具鏈別亂混，不然錯得很像玄學\u003C\u002Fh2>\u003Cp>這頁有一句我很認同的警告：不要混用 GNU binutils 和 LLVM binutils。它甚至直接舉例：\u003Ccode>make CC=gcc LD=ld.lld AR=llvm-ar\u003C\u002Fcode> 這種組合不行，因為 LLVM 的 \u003Ccode>ar\u003C\u002Fcode> 和 \u003Ccode>ld\u003C\u002Fcode> 跟 GCC 那套不相容。這種話我希望更多 build doc 都能直接講白，不要假裝工具鏈都能隨便拼。\u003C\u002Fp>\u003Cp>也就是說，kernel build 看的不是你以為自己選了哪個 compiler 而已，它看的是整組工具鏈。你要走 LLVM，就整套都走 LLVM；你要走 GCC + GNU binutils，就乖乖待在那條路。混著來，失敗通常會看起來像隨機，其實只是你自己配出來的。\u003C\u002Fp>\u003Cp>我遇過最煩的那種 build error，就是看起來像 source code 問題，結果翻半天發現是前面某次實驗留下一組半換不換的 toolchain 設定。kernel build system 很彈性，彈性到你可以很精準地傷害自己。\u003C\u002Fp>\u003Cp>實操寫法：先決定工具鏈策略，再開始 build。如果你要 LLVM，最簡單就是照頁面建議用 \u003Ccode>make LLVM=1\u003C\u002Fcode>。如果你還要額外 optimization flags，就明白寫出來，不要把一堆看不懂的變數塞進命令列。你如果不知道某個環境變數在幹嘛，先別抄。\u003C\u002Fp>\u003Cp>我也會搭配 \u003Ca href=\"https:\u002F\u002Fdocs.kernel.org\u002Fkbuild\u002Fllvm.html\">Clang\u002FLLVM in the kernel docs\u003C\u002Fa> 看 upstream 說法，然後對照 Gentoo 上實際裝了什麼。distro 預設跟你手上的 compiler\u002F binutils 狀態，常常不是同一回事。\u003C\u002Fp>\u003Ch2>build、install、驗證要當成同一條線\u003C\u002Fh2>\u003Cp>設定完之後，頁面把流程講得很直白：用 \u003Ccode>make -j$(nproc)\u003C\u002Fcode> 編譯、用 \u003Ccode>make modules_install\u003C\u002Fcode> 安裝模組、用 \u003Ccode>make install\u003C\u002Fcode> 安裝 kernel。這些看起來很基本，但真正會出問題的是它們之間的銜接。模組預設會進 \u003Ccode>\u002Flib\u002Fmodules\u003C\u002Fcode>，除非你改 \u003Ccode>MODLIB\u003C\u002Fcode>。而 kernel install 其實是透過 \u003Ccode>\u002Fsbin\u002Finstallkernel\u003C\u002Fcode>，也就是 \u003Ccode>sys-kernel\u002Finstallkernel\u003C\u002Fcode> 這條路。\u003C\u002Fp>\u003Cp>翻譯一下就是：Gentoo 不是把 kernel install 當成單純複製檔案，它是 boot workflow 的一部分。如果你有用 \u003Ccode>installkernel\u003C\u002Fcode> 搭 initramfs 自動化，頁面還特別提醒：先重建外部模組，再去裝 kernel，這樣它們才會被納入 initramfs。像 \u003Ca href=\"\u002Ftag\u002Fnvidia\">NVIDIA\u003C\u002Fa>、ZFS 這類外部模組，順序錯了就很容易出事。尤其開了 dracut USE flag 的時候，這個順序更不能亂。\u003C\u002Fp>\u003Cp>我喜歡這個提醒，因為它很貼近真實故障模式。module stack 跟 kernel image 不同步，不一定會報大錯。很多時候它只是讓你 reboot 之後某些功能消失，然後你開始花整個下午追一個其實只是順序問題的 bug。\u003C\u002Fp>\u003Cp>實操上，我現在會把 \u003Ccode>make modules_install\u003C\u002Fcode> 和 \u003Ccode>make install\u003C\u002Fcode> 看成一個動作，不是兩個獨立命令。只要你依賴 external modules，就先重建它們，再去刷新 initramfs。如果你用 dracut，就照 wiki 建議的順序走。不要賭你的 boot path 比現實更寬容。\u003C\u002Fp>\u003Cp>安裝這段我也會一直開著 \u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FInstallkernel\">installkernel 頁面\u003C\u002Fa>，因為它就是從 kernel build 接到 bootloader-ready artifacts 的那個交界點。\u003C\u002Fp>\u003Ch2>用 diff 看 config，才知道自己到底改了什麼\u003C\u002Fh2>\u003Cp>這頁最後一段我覺得最實用：把目前的 kernel config 跟預設值比對。做法很簡單，先把現有 \u003Ccode>.config\u003C\u002Fcode> 複製一份，再用 \u003Ccode>make defconfig\u003C\u002Fcode> 產生預設設定，存下來，最後用 \u003Ccode>scripts\u002Fdiffconfig\u003C\u002Fcode> 去比兩份檔案。這樣你看到的是變更清單，不是面對一整坨 config 檔假裝自己有記憶力。\u003C\u002Fp>\u003Cp>白話講就是：你可以開始審核自己的選擇。kernel config 會慢慢長出一堆你根本忘記為什麼存在的選項。今天為了某台機器開一個功能，六個月後你早就忘了它的背景。diff 會把這些東西攤平，讓你真的能讀懂。\u003C\u002Fp>\u003Cp>我很常在整理舊 config、或升級後想知道為什麼某台機器行為不一樣時用這招。它也能幫你抓出 dependency 帶來的連鎖變化，因為一個選項真的可能悄悄改掉好幾個別的選項。頁面有明講這件事：改一個設定，可能會連動其他設定。這不是 bug，這就是 kernel config 的本性。\u003C\u002Fp>\u003Cp>實操寫法：實驗前先存 working config，產生 default baseline，比對兩者，把 diff 留到測完為止。如果你不確定某個 symbol 為什麼變了，就回 \u003Ccode>menuconfig\u003C\u002Fcode> 用搜尋追它的來源和 help text。不要靠腦補。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Gentoo kernel config workflow template\n# Source: https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\u002FConfiguration\n\n# 1) 進入 kernel tree\ncd \u002Fusr\u002Fsrc\u002Flinux\n\n# 2) 開互動設定介面\nmake menuconfig\n\n# 3) 在 menuconfig 裡搜尋 symbol\n# 按 \u002F\n# 例如：查 driver 或 subsystem 名稱\n\n# 4) 編譯 kernel\nmake -j$(nproc)\n\n# 5) 如果有模組，就安裝模組\nmake modules_install\n\n# 6) 如果你有 external modules，且會進 initramfs\n# 先重建 external modules，再安裝 kernel\n# emerge --ask @module-rebuild\n\n# 7) 透過 installkernel 安裝 kernel\nmake install\n\n# 8) 升級既有 config 時，用這個\nmake olddefconfig\n\n# 9) 想比較 working config 跟預設值時\ncp -p .config ..\u002F.config.working\nmake defconfig\nmv .config ..\u002F.config.default\ncp -p ..\u002F.config.working .config\ncd ..\n\u002Fusr\u002Fsrc\u002Flinux\u002Fscripts\u002Fdiffconfig .config.working .config.default &gt; .config.diff\n\n# 10) 用完清掉暫存檔\nrm .config.working .config.default .config.diff\n\n# 11) 工具鏈例子\n# LLVM build:\n# make LLVM=1\n#\n# 自訂 flags：\n# make LLVM=1 KCFLAGS=\"-O3 -march=native -pipe\"\n\n# 12) menuconfig 記號提醒\n# [*] = built in\n# &lt;M&gt; = module\n# \u002F = search\n# H = help\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>我如果要自己重寫一次，會把重點縮成一句話：先選一致的工具鏈，再用 \u003Ccode>menuconfig\u003C\u002Fcode> 改設定，external modules 先重建，最後用 diff 檢查自己到底動了什麼。這樣做不帥，但很穩。\u003C\u002Fp>\u003Cp>這篇大部分是我根據 Gentoo Wiki 的內容整理成工作流，原始資料主要來自 \u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\u002FConfiguration\">Kernel\u002FConfiguration\u003C\u002Fa>，另外參考了 \u003Ca href=\"https:\u002F\u002Fdocs.kernel.org\u002Fkbuild\u002Fkconfig.html\">Kconfig\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.kernel.org\u002Fkbuild\u002Fllvm.html\">LLVM build docs\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FInstallkernel\">installkernel\u003C\u002Fa>。命令與概念是衍生自原文，我的部分是把它整理成比較能直接抄走的版本。\u003C\u002Fp>","我把 Gentoo kernel 設定整理成可重複流程，從 menuconfig、模組重建到 installkernel，都能照著做。","wiki.gentoo.org","https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FKernel\u002FConfiguration",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782523096027-38qx.png","tools","zh","79194d55-f22c-465f-90b8-8050b2c278fb",[17,18,19,20,21],"Gentoo","kernel config","menuconfig","installkernel","Kconfig",[23,24,25],"把 kernel config 拆成可重複流程，而不是一次性儀式","先讀符號與依賴，再決定 built-in 或 module","安裝 kernel 前先顧好 external modules 與 initramfs 順序",0,"2026-06-27T01:17:51.461891+00:00","2026-06-27T01:17:51.445+00:00","adb5b3aa-825f-4612-96d8-cae6e5d0b045",{"tags":31,"relatedLang":32,"relatedPosts":36},[],{"id":15,"slug":33,"title":34,"language":35},"gentoo-kernel-config-menuconfig-workflow-en","Gentoo kernel config turns menuconfig into a workflow","en",[37,43,49,55,61,67],{"id":38,"slug":39,"title":40,"cover_image":41,"image_url":41,"created_at":42,"category":13},"7a129fc2-20dd-451f-b118-ea4eab053d8a","dockers-apt-repo-update-ubuntu-cleanly-zh","Docker APT 讓 Ubuntu 更新不亂套","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782516777598-3r4p.png","2026-06-26T23:32:35.230193+00:00",{"id":44,"slug":45,"title":46,"cover_image":47,"image_url":47,"created_at":48,"category":13},"c614316e-6910-49e8-83d1-da7e7c2c3e79","spec-kit-guided-ai-workflow-setup-zh","Spec Kit 把設定變成導引流程","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782505105249-9o62.png","2026-06-26T20:17:59.33633+00:00",{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"69cbfbfb-8532-4bd3-814b-559a260cdd4a","litefuse-agent-observability-single-binary-doris-zh","Litefuse 不是 Langfuse 的補丁，而是 Agent 可觀測的正…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782500574117-ul0z.png","2026-06-26T19:02:21.266856+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"4f42621b-c5ca-42ca-a567-c48e1cb34222","20-ai-coding-assistants-stripped-down-2026-zh","20 個 AI 寫碼助手，拆成可用清單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782498806913-57hj.png","2026-06-26T18:32:53.614602+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"0ca67afc-db75-48f7-8185-0a539685ce60","open-code-review-turns-ai-reviews-line-accurate-checks-zh","Open Code Review 把 AI 審查變準","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782490706378-ts02.png","2026-06-26T16:17:57.066004+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"2d745abb-9cb8-4d94-b2a6-cb3558904f27","grok-imagine-1-5-turns-prompts-into-720p-video-zh","Grok Imagine 1.5把提示詞變720p短片","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782475410787-cu25.png","2026-06-26T12:03:02.703582+00:00",[74,79,84,89,94,99,104,109,114,119],{"id":75,"slug":76,"title":77,"created_at":78},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":80,"slug":81,"title":82,"created_at":83},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]