[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-copilot-keeps-old-amd-linux-gpus-alive-zh":3,"article-related-copilot-keeps-old-amd-linux-gpus-alive-zh":30,"series-tools-048fe239-c575-457f-87b3-7a11dcc92b45":83},{"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},"048fe239-c575-457f-87b3-7a11dcc92b45","copilot-keeps-old-amd-linux-gpus-alive-zh","Copilot 讓舊 AMD GPU 活下來","\u003Cp data-speakable=\"summary\">我拆 \u003Ca href=\"\u002Ftag\u002Fcopilot\">Copilot\u003C\u002Fa> 怎麼幫 Linux 維護者清理 R600 驅動，讓 HD 2000 到 HD 6000 這批老 AMD 顯卡繼續可用。\u003C\u002Fp>\u003Cp>我用老硬體跑 Linux 很久了，最熟的感受就是：系統能開、桌面能進，但總有一個小地方提醒你，這東西其實早就該退休了。老 AMD 顯卡特別明顯。驅動還在，編譯也過，偏偏每次修補都像在搬一間快塌掉的老屋裡的碗盤。我看到這則案例時，第一反應不是「AI 好神」，而是終於有一個比較像樣的用途：不是拿 Copilot 亂寫新產品，而是拿它去整理那些沒人想碰、但又不能死掉的舊碼。\u003C\u002Fp>\u003Cp>這次把我拉進來的來源是 Tom’s Hardware 的這篇 \u003Ca href=\"https:\u002F\u002Fwww.tomshardware.com\u002Fsoftware\u002Flinux\u002Flinux-developers-are-using-ai-vibe-coding-to-keep-vintage-amd-gpus-alive-r600-driver-cleaned-up-with-github-copilot-gives-hd-2000-to-hd-6000-series-a-new-lease-of-life\">Linux developers are using AI vibe coding to keep vintage AMD GPUs alive\u003C\u002Fa>，作者是 Aaron Klotz。文中再指到 Phoronix 的相關報導與 Gert Wollny 的提交紀錄，重點是他在整理 R600 Gallium3D driver 時用了 \u003Ca href=\"\u002Ftag\u002Fgithub-copilot\">GitHub Copilot\u003C\u002Fa> auto mode。這不是 AI 取代驅動開發，而是 AI 幫一個維護者把舊子系統從「快變化石」的狀態拉回來。\u003C\u002Fp>\u003Ch2>Copilot 沒有寫驅動，它只是幫忙收拾爛攤子\u003C\u002Fh2>\u003Cblockquote>“GitHub Copilot was used to clean up code pertaining to vintage AMD R600 Linux graphics drivers, helping keep the driver relevant for people still using these late 2000s-era GPUs.”\u003C\u002Fblockquote>\u003Cp>這句話翻成白話就是：Copilot 不是在從零生出一個驅動，它是在做重構、整理、去重複、縮邏輯。也就是那種最沒戲劇性、但最吃人耐性的工作。對驅動來說，這類整理通常發生在 shader compiler code、分支邏輯、重複判斷、命名不一致這些地方。看起來都很小，累積起來就是未來少一堆 bug。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781242402748-dls4.png\" alt=\"Copilot 讓舊 AMD GPU 活下來\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我其實很討厭 \u003Ca href=\"\u002Ftag\u002Fai-coding\">AI coding\u003C\u002Fa> 常被講成兩種極端：一邊把模型吹成永遠不累的資深\u003Ca href=\"\u002Fnews\u002Fmlops-vs-ml-engineer-self-taught-career-guide-zh\">工程師\u003C\u002Fa>，另一邊把任何 AI 參與都講成道德淪喪。老驅動維護剛好卡在中間。你如果盯著一段只有少數人看得懂的 C\u002FC++，我寧可讓工具先提議一版清理方案，也不要自己一個人對著三層巢狀 if 硬磨三小時，最後還是改得很醜。\u003C\u002Fp>\u003Cp>實操上，我會把 AI 的角色縮到很小：幫我找重複、幫我改命名、幫我把機械性改動先做一輪。然後我自己再看每個 diff。這種用法很無聊，但很對。你在 driver、kernel、compiler 這種地方要的不是「靈感」，是可控。\u003C\u002Fp>\u003Cul>\u003Cli>把 AI 用在 refactor，不是用在把關 correctness。\u003C\u002Fli>\u003Cli>一次只做一種改動，別一口氣讓它重構整個模組。\u003C\u002Fli>\u003Cli>把每個輸出都當成「很熱心但沒上下文的實習生」看。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>所謂 vibe coding，在這裡其實是 maintenance coding\u003C\u002Fh2>\u003Cp>Tom’s Hardware 用了「AI \u003Ca href=\"\u002Ftag\u002Fvibe-coding\">vibe coding\u003C\u002Fa>」這個詞，聽起來很潮，但我看下來覺得它真正的意思很樸素：不是叫模型幫你做一個 app，而是幫你把一個活了快二十年的舊 driver 收拾乾淨。這裡的 vibe 不是衝刺，是維護。\u003C\u002Fp>\u003Cp>文中提到 Gert Wollny 為了清理 shader compiler code 做了 59 個 commits，而且 commit note 還有提到 Copilot auto mode。這種資訊很重要，因為它透露的不是「按一下就出神作」，而是反覆迭代：看程式、叫工具做一輪清理、人工檢查、跑測試、再修。這才像真實世界，不像 demo。\u003C\u002Fp>\u003Cp>我以前碰過一段舊 infra code，功能沒錯，但讀起來像在翻一本沒有標點的手寫筆記。那時候最有價值的不是大翻修，而是一連串低風險、可驗證的小整理。AI 在這裡真的有用，因為它擅長處理重複模式、機械改寫、格式一致化，剛好把人從最煩的部分解放出來。\u003C\u002Fp>\u003Cul>\u003Cli>先挑一個小範圍，像是一個 function、一組重複判斷、一段命名不一致的 code path。\u003C\u002Fli>\u003Cli>每次只問一種變更，別讓模型同時碰架構和行為。\u003C\u002Fli>\u003Cli>如果它開始「很有創意」，通常代表你問太大了。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>實操寫法很簡單：你可以直接對 AI 說「把這段重複邏輯合併，但不要改輸出行為」、「把這些變數命名統一，但別動 public interface」。這種 prompt 雖然不性感，但很適合舊 code。\u003C\u002Fp>\u003Ch2>老 AMD GPU 之所以重要，是因為它們真的還在被用\u003C\u002Fh2>\u003Cp>R600 驅動涵蓋 AMD\u002FATI HD 2000 到 HD 6000 系列，時間大概落在 2007 到 2010 年。這些卡在 GPU 世界裡早就算古董了，可是它們還活在家用主機、實驗室、工控機、老電腦裡。Tom’s Hardware 也提到其中一些卡快 20 年了。這不是懷舊，這是安裝基數。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781242407441-yb9j.png\" alt=\"Copilot 讓舊 AMD GPU 活下來\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>Linux 一直有個很奇怪但很實際的優勢：它常常比原廠更願意讓舊硬體繼續能用。原因有時候是社群維護，有時候是沒有別人接手驅動路徑。不管原因是什麼，使用者得到的結果都一樣：硬體還能再撐一陣子。你如果碰過「看起來支援、實際上快壞光」的 GPU，就知道這有多煩。比起明確不支援，半死不活的驅動更討厭，因為它會讓人誤以為自己還安全。\u003C\u002Fp>\u003Cp>所以這種維護工作沒有什麼光環，但很值錢。R600 不是最新遊戲堆疊，不是什麼大\u003Ca href=\"\u002Fnews\u002Fcnbc-crypto-world-turns-news-into-brief-zh\">新聞\u003C\u002Fa>主角，它做的事很單純：別讓一批老卡在 Mesa 改動後直接\u003Ca href=\"\u002Fnews\u002Fliveramp-turns-chatgpt-ads-into-sales-proof-zh\">變成\u003C\u002Fa>磚。\u003C\u002Fp>\u003Cp>實操上，如果你也在維護 library、plugin、driver，或任何還有老使用者的東西，我會建議你固定留一點時間做「不加功能」的整理。舊碼不是因為沒人愛才需要維護，而是因為它還在被用。\u003C\u002Fp>\u003Ch2>Copilot 在這裡有用，因為瓶頸根本是人的注意力\u003C\u002Fh2>\u003Cp>這篇文章也提到 Linux 社群在維護老驅動時，常常只有少數人，甚至只剩一個人還在動。這句話我看得很有感。問題從來不是 CPU 不夠快，也不是磁碟不夠大，而是人腦的注意力不夠。\u003C\u002Fp>\u003Cp>一個 subsystem 如果只剩一個 maintainer，每次改動都很貴。你要記得歷史包袱、相容性、罕見分支、那些從來沒寫進文件的假設。AI 最適合的地方，就是幫你把這種重複性工作壓縮掉，讓你把腦力留給真正要判斷的部分。它不是專家，它是加速器。\u003C\u002Fp>\u003Cp>我喜歡這個案例，因為它很誠實地講出 Copilot 能做什麼、不能做什麼。它可以幫你找 pattern、提議 cleanup、做機械式調整；它不能理解 kernel 維護的社會契約，也不能替你判斷一個 patch 上 stable branch 之後會不會炸。最後還是人說了算。\u003C\u002Fp>\u003Cul>\u003Cli>讓 AI 提案，不要讓它批准。\u003C\u002Fli>\u003Cli>測試要貼著改動走，尤其是老 driver。\u003C\u002Fli>\u003Cli>不要假設工具懂歷史脈絡，除非你有先餵給它。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>實操寫法：如果你是那個唯一還在碰舊子系統的人，先把不變條件寫出來，再讓 AI 幫你整理周邊的機械改動。它很會搬東西，不太會理解為什麼這些東西不能亂搬。\u003C\u002Fp>\u003Ch2>Linus 的態度很直接：你可以用，但責任還是你的\u003C\u002Fh2>\u003Cp>文章也提到 Linus Torvalds 對 AI 使用並不是完全封殺；Linux 開發可以接受適當的 AI 輔助，但提交時要標註，出問題的人還是要對測試與 bug 負責。這個規則我覺得很正常，甚至可以說是唯一合理的做法。\u003C\u002Fp>\u003Cp>重點不是「AI 可以免費代工」，而是「你可以用工具，但你要扛結果」。這句話很重要，因為它把責任鏈講清楚了。patch 壞掉，不會因為你旁邊有個模型就飄去雲端。責任還是在送 patch 的人身上。這件事不只適用 kernel，任何嚴肅軟體都該這樣。\u003C\u002Fp>\u003Cp>我看過不少團隊一旦能產生看起來像樣的 code，就開始偷懶。解法不是禁用工具，而是把 ownership 說死。你要速度，可以；你要方便，可以；但你也要承擔 review、測試、回滾。這樣才健康。\u003C\u002Fp>\u003Cp>實操上，如果你的團隊真的在用 AI 寫 code，我會建議 commit 或 PR 裡直接註明 AI 參與，並且把測試、\u003Ca href=\"\u002Ftag\u002Fbenchmark\">benchmark\u003C\u002Fa>、rollback plan 都歸到作者名下。不要遮，也不要把責任稀釋掉。\u003C\u002Fp>\u003Ch2>我會盯 Amber2，因為它很像真正的維護思路\u003C\u002Fh2>\u003Cp>文章最後提到 Linux 開發者正在討論一個叫「Amber2」的 legacy branch，目標是把 R600 這類舊支援從 Mesa 主線切出去，避免新工作一直踩到老路徑。這種想法我很買單，因為它承認一件事：舊相容性永遠會變成主線負擔。\u003C\u002Fp>\u003Cp>如果你把「持續演進」和「不能改行為」硬塞在同一棵樹上，最後就是每次新功能都可能順手把老東西弄壞。拆分主線和維護線不會解決一切，但至少能讓舊碼有一個比較安全的地方待著。這比一直把歷史包袱丟回主線乾淨多了。\u003C\u002Fp>\u003Cp>我在 app backend、SDK、內部 library 都看過這種狀況。只要把「一直在變」和「絕對不能變」混在一起，回歸測試就會越來越痛。分開管理很麻煩，但長期便宜很多。\u003C\u002Fp>\u003Cul>\u003Cli>如果你在維護舊 API，考慮獨立 maintenance branch。\u003C\u002Fli>\u003Cli>如果你有老硬體路徑，考慮 compatibility package 或隔離模組。\u003C\u002Fli>\u003Cli>不要讓 mainline 永遠背所有歷史債務。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Legacy code cleanup with AI assistance: 可直接套用版\n\n## 目標\n用 AI 幫忙整理舊 code，但不改行為。\n\n## 原則\n- 人類負責 correctness、測試、合併。\n- AI 只負責提議 refactor、命名整理、去重複、機械式修改。\n- 不要讓 AI 單獨決定架構或政策。\n- 每次改動都要跑 build、test、必要時手動驗證。\n- 如果有用 AI，commit 或 PR 要寫清楚。\n\n## 工作流程\n1. 先選一個很小的範圍。\n   - 一個 function\n   - 一組重複判斷\n   - 一段命名不一致的邏輯\n\n2. 先寫不變條件。\n   - 哪些輸出不能變？\n   - 哪些相容性不能壞？\n   - 哪些歷史行為要保留？\n\n3. 只叫 AI 做一種變更。\n   - 「把這段重複邏輯合併，但不要改行為」\n   - 「把這些變數命名統一，但不要改 semantics」\n   - 「簡化這個 function 的分支，但保留所有輸出」\n\n4. 逐行 review diff。\n   - 任何你沒要求的行為變更都退回\n   - 任何更難解釋的 code 都退回\n\n5. 立刻測試。\n   - build\n   - unit tests\n   - subsystem-specific checks\n   - 如果是 driver\u002Fkernel，盡量上實機\n\n6. commit 時寫清楚。\n   - 哪裡用了 AI\n   - 哪些地方已驗證\n   - 哪些風險你已經看過\n\n## Prompt 模板\n你正在幫我重構 legacy code。\n\n限制：\n- 不要改行為\n- 不要引入不必要的新抽象\n- 保留所有 public interface 與相容性\n- 優先做小而機械的修改，不要花俏重寫\n\n任務：\n請把下面的 code 做可讀性與維護性整理，但行為必須完全一致。\n\nCode:\nPASTE_CODE_HERE\n\n輸出：\n- 整理後的 code\n- 變更摘要\n- 我需要手動檢查的風險點\n\n## Commit message 模板\nrefactor: clean up legacy code with no behavior change\n\n- Simplify repeated logic in the subsystem\n- Improve readability of old code paths\n- Verified with build\u002Ftests\u002Fmanual inspection\n- AI-assisted cleanup reviewed and approved by human maintainer\n\n## PR checklist\n- [ ] Scope 小而可 review\n- [ ] 行為沒有變\n- [ ] Tests 有過\n- [ ] 相容性有保住\n- [ ] AI 參與有被人工 review\n- [ ] PR 說明有寫清楚為什麼要做這次 cleanup\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這段就是我會真的拿去用的版本。它不是在吹 AI 多厲害，而是在限制 AI 能做的事，讓它只負責那些最適合它的整理工作。對老驅動、老 library、老 subsystem 來說，這種用法才算有腦。\u003C\u002Fp>\u003Cp>來源我主要拆的是 Tom’s Hardware 這篇 \u003Ca href=\"https:\u002F\u002Fwww.tomshardware.com\u002Fsoftware\u002Flinux\u002Flinux-developers-are-using-ai-vibe-coding-to-keep-vintage-amd-gpus-alive-r600-driver-cleaned-up-with-github-copilot-gives-hd-2000-to-hd-6000-series-a-new-lease-of-life\">文章\u003C\u002Fa>，並參照 \u003Ca href=\"https:\u002F\u002Fwww.phoronix.com\u002F\">Phoronix\u003C\u002Fa> 的相關脈絡與 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorvalds\u002Flinux\">Linux kernel\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.mesa3d.org\u002F\">Mesa\u003C\u002Fa> 的維護背景。上面的模板段落是我自己整理出的可複製版本，不是原文照抄。","我拆 Copilot 怎麼幫 Linux 維護者清理 R600 驅動，讓 HD 2000 到 HD 6000 這批老 AMD 顯卡繼續可用。","www.tomshardware.com","https:\u002F\u002Fwww.tomshardware.com\u002Fsoftware\u002Flinux\u002Flinux-developers-are-using-ai-vibe-coding-to-keep-vintage-amd-gpus-alive-r600-driver-cleaned-up-with-github-copilot-gives-hd-2000-to-hd-6000-series-a-new-lease-of-life",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781242402748-dls4.png","tools","zh","4b7af584-521a-4d95-a347-f52bad4a53fb",[17,18,19,20,21],"GitHub Copilot","Linux driver","Mesa","legacy maintenance","AMD R600",[23,24,25],"AI 在這裡不是寫新功能，而是幫舊驅動做低風險清理。","真正的瓶頸是 maintainer 的注意力，不是模型能力。","最實用的 AI 工作流，是小範圍 refactor + 人工 review + 立即測試。",1,"2026-06-12T05:32:53.912906+00:00","2026-06-12T05:32:53.897+00:00","49324189-69a6-40fd-8ec3-b79eb1cc3e7d",{"tags":31,"relatedLang":42,"relatedPosts":46},[32,34,36,38,40],{"name":17,"slug":33},"github-copilot",{"name":20,"slug":35},"legacy-maintenance",{"name":19,"slug":37},"mesa",{"name":21,"slug":39},"amd-r600",{"name":18,"slug":41},"linux-driver",{"id":15,"slug":43,"title":44,"language":45},"copilot-keeps-old-amd-linux-gpus-alive-en","Copilot keeps old AMD Linux GPUs alive","en",[47,53,59,65,71,77],{"id":48,"slug":49,"title":50,"cover_image":51,"image_url":51,"created_at":52,"category":13},"9947d432-419a-4fb2-b63e-2df73e5503f0","vibe-coding-lets-you-ship-a-tiny-app-fast-zh","Vibe coding 讓你先把小工具做出來","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781254115147-lr0c.png","2026-06-12T08:47:56.34535+00:00",{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":13},"f7cfd9fc-4795-40e6-9ccf-8d1d320d8560","what-vibe-coding-means-for-developers-zh","Vibe Coding 對開發者的真正意義","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781253188911-llz7.png","2026-06-12T08:32:32.032314+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":13},"6371d809-9372-4a40-bf34-09ca516bf1c5","product-hunt-vibe-coding-tools-2026-zh","Product Hunt 的 vibe-coding 堆疊怎麼配","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781252320426-k29l.png","2026-06-12T08:18:03.871398+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":13},"851e075c-b22f-4425-a5c8-28132574da25","fine-tune-slm-emotion-recognition-zh","情緒辨識 SLM 微調實作指南","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781231575451-p3g5.png","2026-06-12T02:32:23.646134+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":13},"5c8150a0-bd9a-4b69-bba3-09548f5dcc84","midjourney-pricing-guide-2026-plans-costs-zh","Midjourney 2026 訂閱費用與方案判讀","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781230674954-vf1u.png","2026-06-12T02:17:24.385566+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":13},"bcfbcfbd-a89b-4b58-9ac0-3dad4b83bd99","midjourney-pricing-2026-gpu-hours-costs-zh","Midjourney 2026 定價：月費與 GPU 時數","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781229774274-rqw7.png","2026-06-12T02:02:23.656893+00:00",[84,89,94,99,104,109,114,119,124,129],{"id":85,"slug":86,"title":87,"created_at":88},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"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":95,"slug":96,"title":97,"created_at":98},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"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":105,"slug":106,"title":107,"created_at":108},"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":110,"slug":111,"title":112,"created_at":113},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"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":125,"slug":126,"title":127,"created_at":128},"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":130,"slug":131,"title":132,"created_at":133},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]