<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IDE on Ricky</title><link>https://linzeyan.github.io/tags/ide/</link><description>Recent content in IDE on Ricky</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 03 Jun 2026 10:07:17 +0800</lastBuildDate><atom:link href="https://linzeyan.github.io/tags/ide/index.xml" rel="self" type="application/rss+xml"/><item><title>Articles</title><link>https://linzeyan.github.io/posts/2026/20260603-articles/</link><pubDate>Wed, 03 Jun 2026 10:07:17 +0800</pubDate><guid>https://linzeyan.github.io/posts/2026/20260603-articles/</guid><description>&lt;ul>
&lt;li>&lt;a href="https://medium.com/@0050211" target="_blank" rel="noopener">https://medium.com/@0050211&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://bitcoinbook-3nd-zh.doge.tg/" target="_blank" rel="noopener">精通比特幣&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://virtualosmuseum.org/" target="_blank" rel="noopener">https://virtualosmuseum.org/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://polypad.amplify.com/" target="_blank" rel="noopener">mathematical playground&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://hub.twinkleai.tw/" target="_blank" rel="noopener">台灣資料的 MCP Hub&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.kindyinfo.com/" target="_blank" rel="noopener">幼園通：幼兒園地圖查詢系統&lt;/a>&lt;/li>
&lt;li>&lt;strong>Github&lt;/strong>
&lt;ul>
&lt;li>&lt;a href="https://github.com/xiaolincoder/CS-Base" target="_blank" rel="noopener">小林 x 图解计算机基础&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/Haxxnet/Compose-Examples" target="_blank" rel="noopener">Awesome Docker Compose Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/studyplace-io/Golang-Concurrency-Pattern-Demo" target="_blank" rel="noopener">Golang-Concurrency-Pattern-Demo&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/quii/learn-go-with-tests" target="_blank" rel="noopener">Learn Go with Tests&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/Admol/SystemDesign" target="_blank" rel="noopener">SystemDesign&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/erdong/prometheus-notes" target="_blank" rel="noopener">Prometheus Notes&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/rustcn-org/rust-algos" target="_blank" rel="noopener">Rust算法题解&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/jbranchaud/til" target="_blank" rel="noopener">📝 Today I Learned&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/GoogleCloudPlatform/golang-samples" target="_blank" rel="noopener">golang-samples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/lifei6671/interview-go" target="_blank" rel="noopener">Golang 面试题搜集&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/xdite/learn-hack" target="_blank" rel="noopener">打造超人學習能力&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/smallnest/network_benchmark" target="_blank" rel="noopener">单机百万级别QPS 网络传输&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ruanyf/ai-test-case" target="_blank" rel="noopener">AI 编程的测试用例&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/Andyyyy64/whichllm" target="_blank" rel="noopener">whichllm: Find the best local LLM that actually runs on your hardware.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/neuphonic/neutts" target="_blank" rel="noopener">NeuTTS: On-device TTS model by Neuphonic&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/simonoppowa/OpenNutriTracker" target="_blank" rel="noopener">OpenNutriTracker is a free and open source calorie tracker with a focus on simplicity and privacy.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/xai-org/x-algorithm" target="_blank" rel="noopener">Algorithm powering the For You feed on X&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/DigitalPlatDev/FreeDomain" target="_blank" rel="noopener">DigitalPlat FreeDomain: Free Domain For Everyone&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/antoinezambelli/forge" target="_blank" rel="noopener">forge: A Python framework for self-hosted LLM tool-calling and multi-step agentic workflows.&lt;/a>: Three ways to use it: Proxy server, WorkflowRunner, Guardrails middleware.&lt;/li>
&lt;li>&lt;a href="https://github.com/KeygraphHQ/shannon" target="_blank" rel="noopener">Shannon Lite is an autonomous, white-box AI pentester for web applications and APIs. It analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/manaflow-ai/cmux" target="_blank" rel="noopener">cmux: Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/superset-sh/superset" target="_blank" rel="noopener">superset: Code Editor for the AI Agents Era - Run an army of Claude Code, Codex, etc. on your machine&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/soxoj/maigret" target="_blank" rel="noopener">Maigret collects a dossier on a person by username only, checking for accounts on a huge number of sites and gathering all the available information from web pages. No API keys required.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/OpenBMB/VoxCPM" target="_blank" rel="noopener">VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/Donchitos/Claude-Code-Game-Studios" target="_blank" rel="noopener">Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/alistaitsacle/free-llm-api-keys" target="_blank" rel="noopener">https://github.com/alistaitsacle/free-llm-api-keys&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/helloianneo/ian-xiaohei-illustrations" target="_blank" rel="noopener">Ian Xiaohei Illustrations 是一个 Codex Skill，用来指导 AI Agent 为中文文章、帖子、博客、Notion 文档和方法论内容生成正文配图。&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/pewdiepie-archdaemon/odysseus" target="_blank" rel="noopener">odysseus: A self-hosted AI workspace &amp;ndash; meant to be the self-hosted version of the UI experience you get from ChatGPT and Claude. But with more jank and fun. Running on your own hardware, with your own data &amp;ndash; local-first, privacy-first, and no trojan.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/mengxi-ream/read-frog" target="_blank" rel="noopener">🐸 Read Frog - Open Source Immersive Translate | 🐸 陪读蛙 - 开源沉浸式翻译&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/LiveContainer/LiveContainer" target="_blank" rel="noopener">LiveContainer is an app launcher (not emulator or hypervisor) that allows you to run iOS apps inside it.&lt;/a>: Allows you to install unlimited apps (3 app/10 app id free developer account limit does not apply here) with only one app &amp;amp; app id. You can also have multiple versions of an app installed with multiple data containers.&lt;/li>
&lt;li>&lt;a href="https://github.com/T8RIN/ImageToolbox" target="_blank" rel="noopener">Image Toolbox is a powerful app for advanced image manipulation. It offers dozens of features, from basic tools like crop and draw to filters, OCR, and a wide range of image processing options&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/evilsocket/nyx" target="_blank" rel="noopener">Nyx (goddess of the night in Greek mythology) is a self-contained script for cleaning forensic traces on Linux, macOS, and Windows.&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/bobeff/open-source-games" target="_blank" rel="noopener">Open source games&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/golang/groupcache" target="_blank" rel="noopener">groupcache&lt;/a>
&lt;ul>
&lt;li>&lt;a href="https://github.com/groupcache/groupcache-go" target="_blank" rel="noopener">groupcache-go&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://github.com/Archeb/peer.as" target="_blank" rel="noopener">PEER.AS — explore global BGP routing, IP prefixes, ASNs, AS_PATH, origins and peering. The whole thing runs in your browser: there is no backend, no API, and no database server. The site is just a bundle of static files you can host, fork, or mirror anywhere.&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Tool&lt;/strong>
&lt;ul>
&lt;li>&lt;a href="https://instances.vantage.sh/" target="_blank" rel="noopener">ec2instances.info&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://imagefree.net/zh-Hant" target="_blank" rel="noopener">https://imagefree.net/zh-Hant&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Article&lt;/strong>
&lt;ul>
&lt;li>&lt;a href="https://xdgbasedirectoryspecification.com/" target="_blank" rel="noopener">XDG Base Directory Spec&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://zackoverflow.dev/writing/zig-vs-rust-in-2026/" target="_blank" rel="noopener">Zig vs Rust in 2026&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://emschwartz.me/your-clippy-config-should-be-stricter/" target="_blank" rel="noopener">Your Clippy Config Should Be Stricter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blogblog.club/blogrollroll/" target="_blank" rel="noopener">部落卷卷&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://refactoringenglish.com/tools/hn-popularity/" target="_blank" rel="noopener">HN Popularity Contest&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blainsmith.com/articles/httptrace-with-go/" target="_blank" rel="noopener">Tracing HTTP Requests with Go&amp;rsquo;s &lt;code>net/http/httptrace&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>免費 3D 列印模型網站&lt;/strong>
&lt;ul>
&lt;li>&lt;a href="https://makerworld.com" target="_blank" rel="noopener">MakerWorld&lt;/a>: Bambu Lab 官方模型平台。很多模型已經附好列印參數（3MF），下載後可直接列印。適合新手。&lt;/li>
&lt;li>&lt;a href="https://www.printables.com" target="_blank" rel="noopener">Printables&lt;/a>: Prusa 官方社群平台。高品質免費模型很多，分類清楚。實用工具、收納、機械零件特別豐富。&lt;/li>
&lt;li>&lt;a href="https://www.thingiverse.com" target="_blank" rel="noopener">Thingiverse&lt;/a>: 歷史最悠久的 3D 模型網站之一。免費模型數量非常大。&lt;/li>
&lt;li>&lt;a href="https://thangs.com" target="_blank" rel="noopener">Thangs&lt;/a>: 兼具模型搜尋引擎與模型平台。可以搜尋多個模型網站的內容。有免費也有付費模型。&lt;/li>
&lt;li>&lt;a href="https://cults3d.com" target="_blank" rel="noopener">Cults3D&lt;/a>: 設計師作品較多。公仔、模型、Cosplay 道具品質高。付費模型比例較高，但也有免費下載區。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="xdg-base-directory-spec">XDG Base Directory Spec&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Category&lt;/th>
&lt;th>Environment Variable&lt;/th>
&lt;th>Default Value&lt;/th>
&lt;th>FHS Approximation&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Configuration&lt;/td>
&lt;td>$XDG_CONFIG_HOME&lt;/td>
&lt;td>$HOME/.config&lt;/td>
&lt;td>/etc&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Data&lt;/td>
&lt;td>$XDG_DATA_HOME&lt;/td>
&lt;td>$HOME/.local/share&lt;/td>
&lt;td>/usr/share&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>State&lt;/td>
&lt;td>$XDG_STATE_HOME&lt;/td>
&lt;td>$HOME/.local/state&lt;/td>
&lt;td>/var/lib&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cache&lt;/td>
&lt;td>$XDG_CACHE_HOME&lt;/td>
&lt;td>$HOME/.cache&lt;/td>
&lt;td>/var/cache&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">package&lt;/span> &lt;span style="color:#a6e22e">main&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;os&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;log&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;path/filepath&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">func&lt;/span> &lt;span style="color:#a6e22e">getConfigDir&lt;/span>() (&lt;span style="color:#66d9ef">string&lt;/span>, &lt;span style="color:#66d9ef">error&lt;/span>) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">configDir&lt;/span> &lt;span style="color:#f92672">:=&lt;/span> &lt;span style="color:#a6e22e">os&lt;/span>.&lt;span style="color:#a6e22e">Getenv&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;XDG_CONFIG_HOME&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// If the value of the environment variable is unset, empty, or not an absolute path, use the default&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#a6e22e">configDir&lt;/span> &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span> &lt;span style="color:#f92672">||&lt;/span> &lt;span style="color:#a6e22e">configDir&lt;/span>[&lt;span style="color:#ae81ff">0&lt;/span>:&lt;span style="color:#ae81ff">1&lt;/span>] &lt;span style="color:#f92672">!=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;/&amp;#34;&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">homeDir&lt;/span>, &lt;span style="color:#a6e22e">err&lt;/span> &lt;span style="color:#f92672">:=&lt;/span> &lt;span style="color:#a6e22e">os&lt;/span>.&lt;span style="color:#a6e22e">UserHomeDir&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#a6e22e">err&lt;/span> &lt;span style="color:#f92672">!=&lt;/span> &lt;span style="color:#66d9ef">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>, &lt;span style="color:#a6e22e">err&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> &lt;span style="color:#a6e22e">filepath&lt;/span>.&lt;span style="color:#a6e22e">Join&lt;/span>(&lt;span style="color:#a6e22e">homeDir&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;.config&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;my-application-name&amp;#34;&lt;/span>), &lt;span style="color:#66d9ef">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">// The value of the environment variable is valid; use it&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> &lt;span style="color:#a6e22e">filepath&lt;/span>.&lt;span style="color:#a6e22e">Join&lt;/span>(&lt;span style="color:#a6e22e">configDir&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;my-application-name&amp;#34;&lt;/span>), &lt;span style="color:#66d9ef">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">func&lt;/span> &lt;span style="color:#a6e22e">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">config_dir&lt;/span>, &lt;span style="color:#a6e22e">err&lt;/span> &lt;span style="color:#f92672">:=&lt;/span> &lt;span style="color:#a6e22e">getConfigDir&lt;/span>()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#a6e22e">err&lt;/span> &lt;span style="color:#f92672">!=&lt;/span> &lt;span style="color:#66d9ef">nil&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> panic(&lt;span style="color:#a6e22e">err&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">fmt&lt;/span>.&lt;span style="color:#a6e22e">Println&lt;/span>(&lt;span style="color:#a6e22e">config_dir&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="whichllm">whichllm&lt;/h2>
&lt;p>&lt;code>uvx whichllm@latest&lt;/code>&lt;/p></description></item></channel></rss>