{"lang":"en","count":12,"issues":[{"title":"270. Qiao Cun","link":"https://weekly.tw93.fun/en/posts/270/","pubDate":"Mon, 15 Jun 2026 00:00:00 GMT","description":"<img src=\"https://cdn.fliggy.com/pic/27034.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/27034.jpg\" data-pswp-src=\"https://cdn.fliggy.com/pic/27034.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"5691\" data-pswp-height=\"4268\" style=\"aspect-ratio: 1.3334;\" width=\"800\">\n<p><small>The cover photo was taken over the weekend when I went to Qiao Cun for a meal, just a casual snap. Their food is great, the avocado and salmon are really tasty. Whenever a friend visits Hangzhou, I usually take them here or to Zhang’s Mansion.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"new-recommendation\">New Recommendation</h2>\n<p><strong>If a friend of yours needs to update their resume soon, you have to recommend Kami to them</strong><br>\n<a href=\"https://github.com/tw93/Kami\">https://github.com/tw93/Kami</a><br>\nIf a friend of yours needs to update their resume soon, you have to recommend Kami to them. I tuned a dedicated version carefully, so Kami alone makes writing a resume genuinely handy, good-looking, and clear. Have them get their raw source material ready in Markdown, then tell the AI <code>/kami help me produce a resume</code>, tweak it once or twice, and it’s pretty much done. It’s not just layout, it also helps optimize and organize your resume content, looking at the talent profile from the perspective of a technical final-round interviewer.<br>\n<img src=\"https://cdn.fliggy.com/pic/9MamaP33.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/9MamaP33.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/9MamaP33.png\" loading=\"lazy\" data-pswp-width=\"1241\" data-pswp-height=\"1754\" style=\"aspect-ratio: 0.7075;\" width=\"800\"></p>\n<h2 id=\"product-releases\">Product Releases</h2>\n<p><strong>Mole’s desktop client 1.7.2 is here</strong><br>\n<a href=\"https://mole.fit/\">https://mole.fit/</a><br>\nThis release updates a ton of things, including support for users with accessibility needs. Status and the menu bar are faster and more stable, Software, uninstall, and updates are more complete, Clean is more thorough while still keeping review-first, the privacy check is more accurate, quieter, and smarter, Analyze, Doctor, and Clean Screen are more stable too, and there are quite a few optimizations for fan control on Apple silicon.</p>\n<p>It’s been exactly one month since Mole’s Mac version launched, written in my spare time, and the numbers are kind of fun. In total I wrote 110,000 lines of Swift, including 36,000 lines of test code and 1,983 unit tests, shipped 8 releases, added 145 new features, and supported 9 languages. It’s the last day of the early-bird price and MOLEWEEKLY still works, so anyone interested is welcome to give it a try. More surprises to come.</p>\n<p><video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/mole318.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>Kaku has finally updated to version 0.12 as well</strong><br>\nKaku even has its own little official site now <a href=\"https://kaku.fun/\">https://kaku.fun/</a>, go take a look. This update brings quite a few things: it now restores session history after you reopen a window, supports AI features you can use directly once logged in with the Codex backend, opens PDFs, images, audio and video, archives, and Office documents with the system default app, and when all panels are sitting at the shell prompt, Cmd+Q quits directly, plus other fun features. Go check out the Release.<br>\n<img src=\"https://cdn.fliggy.com/pic/8fKF3s43.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/8fKF3s43.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/8fKF3s43.png\" loading=\"lazy\" data-pswp-width=\"3116\" data-pswp-height=\"1540\" style=\"aspect-ratio: 2.0234;\" width=\"800\"></p>\n<p><strong>Some fun recent updates to Pake</strong><br>\n<a href=\"http://github.com/tw93/Pake\">http://github.com/tw93/Pake</a><br>\nPake packages a web page into a lightweight desktop app with one command, supporting macOS, Windows, and Linux. Recently it added cmd+f content search, right-click download support, dots in desktop app names, clearer error messages when AppImage builds fail on Linux, a pnpm 11 compatibility fix, and more.<br>\n<img src=\"https://cdn.fliggy.com/pic/pake128.gif\" width=\"800\"></p>\n<h2 id=\"just-chatting\">Just Chatting</h2>\n<p><strong>I’m not an influencer, not a content creator, not a KOL, so what am I</strong><br>\n<img src=\"https://cdn.fliggy.com/pic/jDQIRZ22.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/jDQIRZ22.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/jDQIRZ22.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1080\" style=\"aspect-ratio: 1.7778;\" width=\"800\"><br>\nMy Twitter earnings are only a bit over 100 dollars each time, probably far less than most blue checkmarks, even lower than that friend who got burned twice by Tauri, which is kind of funny. Why so little? Haha, I should reflect on it, and along the way share my failure experience with everyone.</p>\n<p>First off, I’m not an influencer, not a content creator, not a KOL, nothing really, just an ordinary engineer who writes a bit of hobby code. Twitter, to me, is a way to sync the changelogs of my open-source products to everyone, and to share daily life posts about where I went, what I ate, what I watched. There’s no traffic pressure at all, and no pressure to turn traffic into money, so if the earnings are small, so be it. That actually happens to make this an account I like more and more.</p>\n<p>Content creators usually make money by taking ads, and AI companies tend to pay quite well, sharing lots of altruistic products to get more people to follow, earning their due while being helpful, which is honestly pretty nice too. But there’s usually traffic pressure: you have to keep chasing hot topics and obsessing over headlines, and the longer you do it the better you get. I just feel that’s too exhausting, and I can’t pull it off.</p>\n<p>I actually took some ads before, but I haven’t for a long time now. I remember an agency once contacted me and said advertisers don’t like an account like mine, they prefer the kind that constantly posts AI hot takes. When I heard that, I was actually happy, haha. My account hasn’t turned into the high-quality traffic account they see it as, so I guess I’m keeping things pretty well.</p>\n<p>I kept wondering, if I had to describe my account in one word, what would it be? I thought about it for a long time, and finally figured it out today, which is why this casual article exists: my account should be a continuously iterated “Tw93 Engineer Magazine”.</p>\n<p>This magazine has roughly these few columns: Product Notes, recording the updates and interesting ideas behind products like Pake, Mole, and Kaku; a Tech Column, where I write about technical thoughts, thoughts on AI, and learning topics in new tech areas; Good Stuff, all tools I actually use myself, none of the paid-promotion kind; and a Just Looking Around module where you can see my daily life, what I eat, play, and watch.</p>\n<p>Every engineer can flip through it casually, find something they’re interested in, and dive in to play with it. Friends who want to learn can also read through my long articles one by one, then head to my blog and the trending weekly to find more interesting past content.</p>\n<p>This magazine has almost no ads, and won’t say things against my conscience just to promote my own products. Updates are pretty casual too, usually at most two posts a day, just one when I’m too busy, posting whatever comes to mind. At the same time this magazine is a continuously iterating product: through it you can see how I change year by year, like a tech friend who keeps you company, and you can also reach the magazine’s editor via DM.</p>\n<p>The magazine is slowly growing its own side business, Mole. It sells not because the product is so great, but more because of people’s trust in the magazine itself. This made me realize that low-traffic content doesn’t mean it has no value. Not many people read it, but the trust runs deep, and that can actually bring some unexpected conversions, which is pretty magical. It’s just run rather casually, but fairly consistently.</p>\n<p>So what am I really running? It should just be this magazine called Tw93. Whatever kind of person I am, I write that kind of content, and naturally I’ll meet that kind of reader, with no need to worry about what to write. In the end, what I most want to do is let the engineers reading this magazine and me learn from and grow with each other, but without the anxiety.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"269. Tianmu Scenery","link":"https://weekly.tw93.fun/en/posts/269/","pubDate":"Sun, 07 Jun 2026 00:00:00 GMT","description":"<img src=\"https://cdn.fliggy.com/pic/IMG_151828.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_151828.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_151828.JPG\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"5712\" data-pswp-height=\"4284\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo was taken at Tianmu Scenery on Mount Tianmu in Lin’an, where I went the weekend before last. A really nice place, super cool in summer with plenty of fresh air. The Liuchun House up the mountain is delicious, highly recommend a visit, way fewer people than Jiuxi Yanshu.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"new-article\">New Article</h2>\n<p><strong>You Don’t Know Embodied AI: From a Tiny Robot Dog to Optimus</strong><br>\n<a href=\"https://tw93.fun/en/2026-06-07/robot.html\">https://tw93.fun/en/2026-06-07/robot.html</a><br>\nNew article is here. Back in April I assembled a little robot dog. I posted a few things about the build on Twitter, you’ve probably seen them. Then I wrote on and off for almost 2 months and finally finished it, the longest article I’ve ever written. Give it a read.<br>\n<img src=\"https://tw93.fun/images/2026/robot/00-perception-space-action-torque.png\" width=\"800\"></p>\n<h2 id=\"product-releases\">Product Releases</h2>\n<p><strong>Mole’s desktop client 1.6.2 is here</strong><br>\n<a href=\"https://mole.fit/\">https://mole.fit/</a><br>\nI’m working to round out Mole desktop’s nice features as fast as I can. Just shipped 1.6.2, go update. If you haven’t bought it yet and are interested, you’re welcome to grab it. The price is expected to return to normal after June 15.</p>\n<ol>\n<li>Keep Screen On (new): keep your Mac awake from the menu bar, with selectable durations. Restoring on launch now completes quietly, no more sudden admin-permission prompts.</li>\n<li>Privacy Check (new): the menu bar popover shows camera or microphone usage status and sends a local notification, so you can see it without opening the main window.</li>\n<li>Clean Screen (new): switch the screen to a solid color to make wiping the screen and keyboard easier. Press Escape to exit, and you can enable input lock too.</li>\n<li>Software updates cover more apps: Software now checks the Mac App Store, Sparkle, Electron, Homebrew cask/formula, Homebrew catalog, and GitHub Releases, with clearer progress.</li>\n<li>Uninstall finds more leftovers: leftover detection now covers receipts, Launch Items, Group Containers, Darwin temp caches, and more App Support traces.</li>\n<li>Clean is more useful while staying careful: Mole finds large directories like build, dist, target, and node_modules in your projects, but leaves them for you to review by default.</li>\n<li>Analyze scans faster: disk analysis adds concurrent computation, cache reuse, and subdirectory prewarming, so large directories open faster.</li>\n</ol>\n<img src=\"https://cdn.fliggy.com/pic/2QNwTk40.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/2QNwTk40.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/2QNwTk40.png\" loading=\"lazy\" data-pswp-width=\"4096\" data-pswp-height=\"2027\" style=\"aspect-ratio: 2.0207;\" width=\"800\">\n<p><strong>Kami, where good content deserves good layout, has shipped a bunch of updates</strong><br>\n<a href=\"http://kami.tw93.fun\">http://kami.tw93.fun</a></p>\n<ol>\n<li>Added a landing-page module. The Mole site and Kami’s own site you’ve seen are actually generated by Kami bootstrapping itself. It’s great for your product intro page, and it even thinks through Geo, Sitemap, and Vercel deployment for you, so you can build a site worry-free.</li>\n<li>Finally supports Marp slide mode, back to the days of writing slides in Markdown. One md file exports to HTML, PDF, or PPTX via marp-cli. The theme ships with Kami’s colors and fonts, works out of the box, and stays lightweight.</li>\n<li>Turns out there are quite a few Korean users, so on top of Simplified Chinese, Traditional Chinese, English, and Japanese, Kami now has fine-grained Korean support and multi-template designs. If you’re a friend from Korea, you’re very welcome to try it and send me feedback.</li>\n<li>The one-pager module, portfolio, and slides now all support importing your brand logo and other brand cues, so Kami blends right into your brand style.</li>\n<li>Since we’re engineers, Kami also does automatic syntax highlighting for code, coloring it for you at build time with no external CSS needed.</li>\n<li>One more fun thing: although Kami is also a Skill, it’s actually 70% code rather than Markdown. If you want to learn how to write a Skill that’s obedient and useful by default, you’re welcome to read the code, it might help <a href=\"https://github.com/tw93/Kami\">https://github.com/tw93/Kami</a></li>\n</ol>\n<p><video width=\"800px\" preload=\"metadata\" loop autoplay muted><source src=\"https://cdn.fliggy.com/pic/kami04.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>Made a nice website for Kaku</strong><br>\n<a href=\"http://kaku.fun\">http://kaku.fun</a><br>\nFinally done, built using the Kami skill, with a lot of docs filled in, and it supports both Chinese and English. Little Kaku finally has its own website, go take a look. Also, Kaku 0.12 is out, remember to update~<br>\n<img src=\"https://cdn.fliggy.com/pic/Jyw4Z940.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/Jyw4Z940.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/Jyw4Z940.png\" loading=\"lazy\" data-pswp-width=\"3818\" data-pswp-height=\"2562\" style=\"aspect-ratio: 1.4902;\" width=\"800\"></p>\n<h2 id=\"just-looking-around\">Just Looking Around</h2>\n<p><strong>Come check out my latest desk setup</strong><br>\nReally happy, it arrived over the weekend. Before, I had a thick book plus a slab of mahjong tiles under my monitor, and the height was just right, but my OCD wanted a clean, unobtrusive 30×20×10 block to put underneath. I looked at lots of dedicated monitor risers, all too big, and looked at acrylic boards too, a bit rough, no solution.<br>\nHere’s the kicker: somehow while browsing PDD I stumbled onto these Buddha-statue bases. A perfect fit, ten times cheaper, and they work great!</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"38%\">\n          <img src=\"https://cdn.fliggy.com/pic/HM8cAV17.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/HM8cAV17.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/HM8cAV17.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"38%\">\n            <img src=\"https://cdn.fliggy.com/pic/2OEw9N23.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/2OEw9N23.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/2OEw9N23.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"24%\">\n            <img src=\"https://cdn.fliggy.com/pic/nBYIfw31.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/nBYIfw31.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/nBYIfw31.png\" loading=\"lazy\" data-pswp-width=\"943\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.4604;\" width=\"400\">\n        </td>\n    </tr>\n</tbody></table>\n<p><strong>Can’t believe I only just watched “A Love Letter to Grandma”, highly recommend</strong><br>\nOver the weekend I went to see the film “A Love Letter to Grandma”. It’s about to leave theaters, really good and really moving, the best film I’ve seen in a cinema in the past couple of years. The young actors were cast really well. If you haven’t seen it, definitely go when you have time!<br>\n<img src=\"https://cdn.fliggy.com/pic/HgIK5M29.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/HgIK5M29.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/HgIK5M29.png\" loading=\"lazy\" data-pswp-width=\"2048\" data-pswp-height=\"1536\" style=\"aspect-ratio: 1.3333;\" width=\"800\"></p>\n<h2 id=\"just-saying-thanks\">Just Saying Thanks</h2>\n<p><strong>Some trade-offs I’ve made building products</strong><br>\nMore than 20 days after Mole Mac launched, sales hit a small milestone. I want to share some of the trade-offs I made along the way, and why early on I handled every bit of user communication, Q&#x26;A, and refunds entirely by hand. Hopefully it gives some input to folks building their own indie products.</p>\n<p>First, why do I handle user Q&#x26;A, feedback, email replies, refunds, activation-code resets, price-difference refunds, and so on completely by hand, even though they’re less than 1% of users and I could honestly spend half an hour writing an Agent to handle them? This is a common trap for engineers building products, something that looks efficient but isn’t actually great. There are two considerations here. Only by genuinely handling users’ after-sales issues can you feel what users really need, why they want a refund, why something feels hard to use, their real suggestions and feedback. You can even exchange emails to surface more of their real needs, and through this process you get fluent at knowing the best replies and solutions for every kind of problem. That way, once the product gradually grows, bringing in an Agent for efficiency works much better than doing it from the start.</p>\n<p>Second, why I don’t recommend building a so-called after-sales system from day one. This is an important technical-judgment call for a product engineer: prioritize getting the main product features right, rather than standing up all your peripheral support systems up front. AI is fast, but it still pulls your precious time away from improving the product itself. It looks like it costs no time, but it actually costs you a lot. Spending that time improving the product and meeting users’ real needs is far better.</p>\n<p>Next, I want to talk about some common pitfalls when engineers transition to indie product development. First, what’s the difference between a good product and an average one? A good product is better at deciding what not to build, at which stage each feature is best for the product and users, and which features, even if good, don’t belong on the product’s main line and shouldn’t be added, otherwise it easily turns into a mishmash that’s hard to maintain. Another trait of a good product is that you actually hold the next six months of its development in your head, clearly knowing which features each version should add, which are false needs, and which features should sit right where users naturally reach for them. A product that ordinary beginners don’t need a manual for is a good product. That’s also why, when some friends suggested adding nice Mac features to Mole, I apologetically declined, staying restrained and firmly believing in the product view of “don’t add entities unless necessary”.</p>\n<p>Mole’s positioning is the quiet guardian of Mac system optimization, cleanup, and maintenance. Keep that positioning, refine it, and make it the best Mac maintenance software in the world. If 1 in every 100 Mac users worldwide used Mole, then Mole would truly be good, and that’s what I chase as a product maker: letting more non-technical folks enjoy the fun of an engineer’s product. Recently some visually impaired users have been using Mole and ran into a few accessibility issues, which I’m rushing to fix. I’m really looking forward to how it works and feels for them.</p>\n<p>Maybe in the AI era a lot of things have indeed gotten much more convenient, but communicating with people can’t be replaced by AI, otherwise it loses its meaning. AI can boost efficiency, but it can hardly deepen the feeling and trust between people. This might be a good way for products built with AI Coding to keep a human touch going forward.</p>\n<p>Since this is my first paid product, there may be things I haven’t thought through, and I welcome experienced friends to point them out and offer suggestions.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"268. Xiaohe Park","link":"https://weekly.tw93.fun/en/posts/268/","pubDate":"Mon, 25 May 2026 00:00:00 GMT","description":"<img src=\"https://cdn.fliggy.com/pic/26829.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/26829.jpg\" data-pswp-src=\"https://cdn.fliggy.com/pic/26829.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"5712\" data-pswp-height=\"4284\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo is of a textured building I shot last weekend at Xiaohe Park. The sunlight happened to be perfect, paired with the green trees, it looked really nice.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"product-releases\">Product Releases</h2>\n<p><strong>The Mole desktop client is here</strong><br>\n<a href=\"https://mole.fit/\">https://mole.fit/</a><br>\nFinally, finally, Mole’s Mac desktop version is out. The CLI will keep being free and open source forever. The desktop client is for folks who enjoy a more interactive product feel. We recently shipped 1.5, which adds various sprite animations in the menu bar, login-item management, software update management, and the most fun part, fan control, plus more. Head over to the official site for the full rundown. Weekly readers get 20% off with code MOLEWEEKLY. Early-bird price is currently $9.</p>\n<p>If you’ve contributed code to Mole or sponsored me on GitHub, DM me and I’ll send a 100% discount code.</p>\n<p><video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/mole206.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>Mole CLI updated to 1.39</strong><br>\n<a href=\"https://github.com/tw93/Mole\">https://github.com/tw93/Mole</a></p>\n<ol>\n<li>mo clean major hardening: GUI app dotdirs and Gradle DSL caches are no longer wiped by mistake; dry-run now matches actual cleanup so no more false reports; simctl probing retries to fix the first-error-after-restart issue; Trash cleanup no longer triggers blocking macOS warning dialogs; TMPDIR cleanup is roughly an order of magnitude faster; added cache coverage for UTM/Lima/Arc/QQ Browser/Codex CLI/Antigravity/Gemini; VS Code family now cleans leftover extensions by the .obsolete marker.</li>\n<li>mo uninstall: bundle ID matching upgraded to boundary checks so it won’t hit by mistake; leftover login items are now called out with their cleanup paths in the summary. mo purge: hardened with timeout protection and trap handling, any exit path restores the cursor and clears temp files.</li>\n<li>mo analyze: hardlinks are now deduped by inode, so FCP and other managed media no longer report tens of times inflated. mo status: available-memory math now aligns with Activity Monitor.</li>\n<li>mo touchid: PAM writes switched to atomic operations to preserve read-only permissions. mo optimize: removed Bluetooth reset to avoid accidentally kicking devices.</li>\n<li>Global NO_COLOR=1 support. When Trash isn’t available, it now fails closed to prevent silent permanent deletion.\n<img src=\"https://cdn.fliggy.com/pic/XjXNoU39.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/XjXNoU39.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/XjXNoU39.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1080\" style=\"aspect-ratio: 1.7778;\" width=\"800\">\n</li>\n</ol>\n<p><strong>Kami now builds product landing pages</strong><br>\n<a href=\"https://github.com/tw93/Kami\">https://github.com/tw93/Kami</a><br>\nKami has shipped a bunch of updates lately. Beyond the original PDF generation, you can now tell it you want a landing page for product XX, and it’ll build something in the same quiet style as the Mole site.<br>\n<img src=\"https://cdn.fliggy.com/pic/XdDecf51.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/XdDecf51.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/XdDecf51.png\" loading=\"lazy\" data-pswp-width=\"4096\" data-pswp-height=\"2201\" style=\"aspect-ratio: 1.8610;\" width=\"800\"></p>\n<p><strong>Waza has had a bunch of updates lately</strong><br>\n<a href=\"https://github.com/tw93/Waza\">https://github.com/tw93/Waza</a><br>\nWaza (技, わざ), the engineer’s skill collection, has had a bunch of updates recently. Posting a tweet to keep everyone in the loop. If you’re using it, remember to update. I’ve folded in nearly a month of dev best practices, especially a lot of lessons from the recent Mole client work.</p>\n<p>First, Waza finally supports codex end-to-end. One command and you’re done, every capability is supported, because codex has felt really good to use lately.</p>\n<p>The biggest one: the original health skill was just for checking whether Claude config and usage matched best practices, but now it’s evolved into a full Agent Health check. There’s a fun phenomenon with people writing code with AI now, it feels amazing at first, but after a while it becomes unmaintainable and hard to extend. In that case try /health, it’ll check your code, including whether the various capabilities still look ok, whether it’s maintainable, whether things should be split apart, whether dead files should be deleted. Think of it as a scavenger for the bad code AI generates.</p>\n<p>Then /think (Thinking Mode) also has many updates. You can discuss with it whether a feature should be built, and it’ll give you a Kill / Keep / Pivot judgment across multiple dimensions. Honestly, a lot of the time a product is defined by what you choose not to add, not by what else you could add.</p>\n<p>I’ve always felt that adding rules to AI calls for restraint. Every rule you add becomes a ceiling for it. When the model gets stronger, your rules start dragging it down. That’s why I don’t like Superpowers or so-called Spec programming, too verbose, too many rules. That’s also why I wrote Waza, it’s like installing my code-writing avatar onto your computer.</p>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>Lightpanda: a headless browser written from scratch in Zig</strong><br>\n<a href=\"https://github.com/lightpanda-io/browser\">https://github.com/lightpanda-io/browser</a><br>\nA headless browser written from scratch in Zig, designed for agents and automation. The pitch is -9x memory and +11x speed vs Chrome, compatible with the CDP protocol (Playwright/Puppeteer). Worth a look as browser infrastructure for the agent era.<br>\n<img src=\"https://cdn.fliggy.com/pic/aQKcGc14.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/aQKcGc14.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/aQKcGc14.png\" loading=\"lazy\" data-pswp-width=\"1956\" data-pswp-height=\"1124\" style=\"aspect-ratio: 1.7402;\" width=\"800\"></p>\n<p><strong>Mise: Dev tools, env vars, and tasks in one CLI</strong><br>\n<a href=\"https://github.com/jdx/mise\">https://github.com/jdx/mise</a><br>\nA single tool that unifies runtime versions (nvm/asdf) + env vars (direnv) + tasks (make), all managed by a single mise.toml. Lightweight Rust binary. Worth a try if you’re interested.<br>\n<img src=\"https://cdn.fliggy.com/pic/demo34.gif\" width=\"800\"></p>\n<h2 id=\"just-looking-around\">Just Looking Around</h2>\n<p><strong>Recommending this lemon-flavored sparkling water</strong><br>\nYou have to chill it first, then it’s really good. Don’t drink the plain one, this lemon one is the best!</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"50%\">\n          <img src=\"https://cdn.fliggy.com/pic/XcWaIV34.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/XcWaIV34.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/XcWaIV34.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"50%\">\n            <img src=\"https://cdn.fliggy.com/pic/PVaCgF40.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/PVaCgF40.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/PVaCgF40.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n    </tr>\n</tbody></table>\n<p><strong>This eye drop I’ve been using is pretty good</strong><br>\nIf you often lose yourself in AICoding, grab a bottle of Hai-Lu eye drops, and have your watch remind you to stand up and walk around.<br>\n<img src=\"https://cdn.fliggy.com/pic/ybMdQk09.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/ybMdQk09.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/ybMdQk09.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\"></p>\n<p><strong>Bought a few nice wooden things</strong><br>\nFirst is a shoehorn, no more bending over to put on shoes. Second is a laptop riser, very useful, with anti-slip. Third is a small holder for aroma bottles. Fourth is the little brush I use to sweep up coffee grounds when I make coffee.</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"25%\">\n          <img src=\"https://cdn.fliggy.com/pic/gv97iD44.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/gv97iD44.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/gv97iD44.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"25%\">\n            <img src=\"https://cdn.fliggy.com/pic/UXoeo050.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/UXoeo050.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/UXoeo050.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"25%\">\n            <img src=\"https://cdn.fliggy.com/pic/NUPl0m57.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/NUPl0m57.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/NUPl0m57.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n    <td width=\"25%\">\n            <img src=\"https://cdn.fliggy.com/pic/j7ICAj15.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/j7ICAj15.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/j7ICAj15.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n    </tr>\n</tbody></table>\n<p><strong>Some thoughts on the Mole desktop release</strong><br>\nOn the back of the recent Mole Mac release, I want to share the magic moments I’ve had over the past couple days. Thanks to this little toy project I started by the Sanya pool last year, I’ve met many interesting overseas developers from all kinds of countries.</p>\n<p>The Mac client took two weekends to build. Plenty of overseas users had brought it up before, saying their parents and siblings don’t use a CLI but really want this feature, asking if I could put out a simple, easy-to-use desktop version. Back then there was the time issue, plus I didn’t think the Mole CLI was mature enough yet, so it kept getting pushed back until now.</p>\n<p>It’s only been half a year since Mole launched, and somehow it’s over 50K stars, 500 user-submitted cleanup-suggestion issues, 300 high-quality feature PRs, and contributions from 100 developers around the world, delivering cleanup capabilities arguably stronger than tools like CleanMyMac. I even racked up 60T of traffic in one week from just 2 images I hosted on Vercel for the README, which left me owing Vercel $80, that’s when I realized how many people are actually using it, so the desktop version was worth doing.</p>\n<p>A lot of the small clever touches in the Mole desktop client only came to me once I started building. Like using planets to represent each feature, which traces back to my childhood love of watching planets move, plus 10 years ago when I picked up frontend, the very first thing I wanted to learn was WebGL. I started using WebGL to render the planets, and each planet’s character lined up nicely with what Mole does, so I worked that theme in:</p>\n<p>Clean uses Earth, “Rain washes the old soil, dust drifts with the tide”<br>\nUninstall uses Mars, “Red dust covers the old, travel light to journey on”<br>\nOptimize uses Mercury, “Swift along the near orbit, small fixes ring out”<br>\nAnalyze uses Jupiter, “From afar it becomes a map, the smallest details visible”<br>\nStatus uses the Sun, “Light that doesn’t strike the eye, a heartbeat that stays bright”</p>\n<p>Like the little mole’s digging and exploration moving from a small patch to the wide world, but still quiet, not getting in your way.</p>\n<p>Another design touch: I swapped each planet’s texture map more than 10 times, downloading and picking through many from NASA’s site to find the best fit. The rotation direction and axis, the speed, the post-completion flight characteristics of each planet, all reference how the actual planets move. That part was one of the more enjoyable bits of AI Coding. These details might feel only loosely connected to Mole-the-mole, and I could have just built a simple click-to-clean menu bar app, but I didn’t want to. There’s already too much cyber junk being generated by AI. I needed to make something that feels a bit more pleasant, so that my tokens aren’t wasted, and so I’m not polluting your timeline.</p>\n<p>I released it around 10pm that night. So grateful for the many friends who shared it on their own, and especially thankful to all the users who bought it, some folks even bought it purely because of the value the CLI had given them. Lots of European and American users, with French, German, all kinds of currencies coming in, really magical. There’s still a lot to round out on the Mac desktop, and I appreciate everyone’s patience, prepaying $9 for a pretty little toy. I’ll keep working on the features.</p>\n<p>I really like things that come together naturally, I don’t like chasing short-term results. This kind of long-term iteration, continuously meeting new friends, getting so much input and discussion, is the most precious treasure. Really fun.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"267. Westlake Stone Characters","link":"https://weekly.tw93.fun/en/posts/267/","pubDate":"Mon, 11 May 2026 00:00:00 GMT","description":"<img src=\"https://cdn.fliggy.com/pic/26722.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/26722.jpg\" data-pswp-src=\"https://cdn.fliggy.com/pic/26722.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"5712\" data-pswp-height=\"4284\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo was taken last weekend. To get a feel for the strokes for my type design project Luo, I went looking for these kinds of stone-carved characters along the road by West Lake and snapped this shot.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"just-writing\">Just Writing</h2>\n<p><strong>You Didn’t Know GEO: AI Visibility Principles, Practices, and Trade-offs</strong><br>\n<a href=\"https://tw93.fun/en/2026-05-01/ai-visibility.html\">https://tw93.fun/en/2026-05-01/ai-visibility.html</a><br>\nA bunch of friends have @-ed me lately saying my open source tools are getting recommended unprompted when they ask AI questions. I hadn’t done anything special, so I figured why not spend an hour structuring the content properly. After doing it I fired off a quick tweet, but the structure was messy. People seemed genuinely interested, so I decided to write it up as a proper article for reference and lookup.<br>\n<img src=\"https://cdn.fliggy.com/pic/OMaEoa53.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/OMaEoa53.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/OMaEoa53.png\" loading=\"lazy\" width=\"800\"></p>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>Kami, the typesetting system that gives good content the layout it deserves, has been upgraded</strong><br>\n<a href=\"https://github.com/tw93/Kami\">https://github.com/tw93/Kami</a><br>\nKami has had several upgrades recently, including fixing Chinese garbled text in PPT, speeding up the engineering, expanding doc analogues to 8 categories, polishing many layout details, updating the built-in chart capabilities, and more. Welcome to update and try it out.<br>\n<img src=\"https://cdn.fliggy.com/pic/rPlaVb01.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/rPlaVb01.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/rPlaVb01.png\" loading=\"lazy\" data-pswp-width=\"3276\" data-pswp-height=\"2392\" style=\"aspect-ratio: 1.3696;\" width=\"800\"></p>\n<p><strong>Waza, the engineer’s 8 skill trees, has been updated</strong><br>\n<a href=\"https://github.com/tw93/Waza\">https://github.com/tw93/Waza</a></p>\n<ol>\n<li>Durable Context: six skills (think, check, hunt, design, write, health) can consume optional memory/preview context. Safety contract: current state always wins, raw conversation reads disabled by default, hardcoded machine paths not allowed.</li>\n<li>Plan Execution Mode: /check executes approved implementation plans step by step, defaults to review-then-ship continuation, document review routes to /write.</li>\n<li>Evaluation Mode: /think now outputs Kill/Keep/Pivot, deciding whether something should be done or kept.</li>\n<li>Validation guardrails: trigger word overlap detection, routing drift checks, attribution leak interception, preventing silent skill conflicts and accidental personal info leaks.</li>\n<li>Design and Write references: added typography traps, design tokens, aesthetic quality, Chinese-English mixed typesetting standards, release-note style guide.\n<img src=\"https://gw.alipayobjects.com/zos/k/qa/waza_repaired_v4.svg\" width=\"800\">\n</li>\n</ol>\n<p><strong>Kaku finally updated to V0.10</strong><br>\n<a href=\"https://github.com/tw93/kaku\">https://github.com/tw93/kaku</a><br>\n🥷 Long wait, everyone. Kaku finally hits V0.10. I held this version back through several minor releases while I kept tuning a really handy in-app Agent assistant. The vibe is a clean, no-nonsense tech buddy. You can summon it with Cmd + L without disturbing any of your existing content, but it’s smart enough to read your context, and I’ve equipped it with a curated set of solid tools. You configure its brain through kaku ai. I highly recommend setting up search capabilities, and pipellm is a nice option.</p>\n<p>AI features are something I’ve always wanted to build but didn’t want to disturb users with. If you’re more of a pure terminal user, I’ve also added plenty of features worth catching up on.</p>\n<p>First, there’s a fun smart window-close intercept. When you haven’t configured whether to intercept window closing in kaku config, if you’re in the middle of AI work it’ll dynamically intercept and ask whether you really want to close, so you don’t accidentally kill it.</p>\n<p>It also finally supports window snapshot. Kaku auto-saves multi-tab and multi-pane layouts. When needed, hit Cmd+Option+Shift+T or use Shell → Restore Previous Window to recover. This nicely solves the pain of accidentally closing a window and wanting to start back up.</p>\n<p>Some folks suggested that the light mode looks great but the dark mode contrast is a bit too strong. Got it. I’ve now tuned a much softer dark mode, dropping the saturation of highlight colors and slightly dimming foreground text, so staring at the screen for a long time is easier on the eyes.</p>\n<p>I’m also obsessive about startup speed, especially cold start. I want to build the fastest terminal. Through Lua bytecode caching, lazy initialization of fonts and config, shell user variable caching, and similar tricks, your Kaku now opens almost instantly. Still a tiny bit behind Alacritty, but I’m working on it.</p>\n<p>Lastly, fixed full-screen crashes and freezes, multi-monitor race conditions, resize gaps, cursor reflow, links, selection, light theme readability, TUI copy, and many other detail issues.</p>\n<p>If this is your first time hearing about Kaku, welcome to give it a try. Still not mature, actively being polished. Any suggestions or bugs, please file an issue and I’ll handle them.<br>\n<video width=\"800px\" preload=\"metadata\" loop autoplay muted><source src=\"https://cdn.fliggy.com/pic/kaku14.mp4\" type=\"video/mp4\"></video></p>\n<h2 id=\"just-looking-around\">Just Looking Around</h2>\n<p><strong>M5 Pro in black finally arrived. Stunning. Very excited</strong><br>\n16-inch M5 Pro / 48GB / 1TB black with standard glass. I think this config is a great fit for anyone considering a new machine.<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/mac36.MP4\" type=\"video/mp4\"></video></p>\n<p><strong>Picked up an iPhone SE3 to play with</strong><br>\nHow can such a small phone feel this refined? Just lovely to hold.</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"33%\">\n          <img src=\"https://cdn.fliggy.com/pic/IMG_099853.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_099853.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_099853.JPG\" loading=\"lazy\" data-pswp-width=\"4284\" data-pswp-height=\"5712\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"33%\">\n            <img src=\"https://cdn.fliggy.com/pic/IMG_099901.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_099901.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_099901.JPG\" loading=\"lazy\" data-pswp-width=\"4284\" data-pswp-height=\"5712\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n        <td width=\"33%\">\n            <img src=\"https://cdn.fliggy.com/pic/IMG_100106.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_100106.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_100106.JPG\" loading=\"lazy\" data-pswp-width=\"4284\" data-pswp-height=\"5712\" style=\"aspect-ratio: 0.7500;\" width=\"400\">\n        </td>\n    </tr>\n</tbody></table>\n<p><strong>A neat UI bug debugging trick of mine</strong><br>\nSharing a really useful UI bug debugging approach. Back in my old-school coding days I often used screen-recording with slow-motion playback. AI struggles with this kind of thing, but humans get it instantly. Find the frame with the problem, and you basically know where the issue is. Then hand the screenshot to AI. Way better than logging or guessing.<br>\n<img src=\"https://cdn.fliggy.com/pic/44JbuE11.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/44JbuE11.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/44JbuE11.png\" loading=\"lazy\" data-pswp-width=\"3434\" data-pswp-height=\"2314\" style=\"aspect-ratio: 1.4840;\" width=\"800\"></p>\n<p><strong>Somehow it’s been 4 years on Twitter, posted a little reflection</strong><br>\nJoined X 4 years ago already. The journey has been really fun, and it’s also been a great outlet for my urge to share tech and product stuff.</p>\n<p>I was just chatting with a new friend about how I ended up here. Back then it was still called Twitter. MiaoYan had just been written, and I was looking for somewhere to sync update logs. Yes, that simple. So I signed up with Google login and posted MiaoYan’s intro. Magically, it turned out MiaoYan was already being recommended by lots of folks with big followings as a simple and handy markdown-native notes app. Coming over felt like, oh, there are so many friends here. We finally meet. The Twitter environment back then was great. Not so many ads or money-grabbing. More sharing, conversation, pure tech discussion. Sad to say, many of those friends whose output quality was way higher than mine slowly stopped posting much.</p>\n<p>Later I gradually started sharing some good open source products I’d come across each morning, or the latest releases of my own products, and bits of my own thinking. Slowly I met many like-minded friends, and they put a lot of energy into contributing to my open source projects. Friends from Taiwan, Japan, Turkey, Europe, the US, and especially many friends who helped with Pake. That was a kind of pure code-writing era from before AICoding existed.</p>\n<p>When ChatGPT first came out, I immediately registered an account and started playing with 3.5. It really was a magic moment. Back then we shared funny prompts, very fun, but it now reads like ancient literature. I even wrote an article on 2022-12-04 titled “How Ordinary People Avoid Being Replaced by OpenAI.” Haha, you can see how shallow I was. The first deep question I asked was even “give me some online docs to learn Rust.” How AI has developed since then is beyond comparison.</p>\n<p>That was about when I felt all in on AI. At the company, I handed off all my main business support tech to my direct reports, and went looking for a bigger ceiling for my team in AI. I even paid out of pocket with my international credit card to buy official OpenAI API for the team to use, so we could understand the latest stuff. I solved a lot of business problems that had been giving managers headaches with AI. Meanwhile, since I’m good at sketching solutions and product flows, I also pushed AI application R&#x26;D platforms, B-side digital employee solutions, and the deep integration of business efficiency tools with AI. Three years on, much of it is now well-productized and efficiency has improved dramatically.</p>\n<p>Because the results in practice were so clear, in early 2023 I moved all my Chinese ADRs and company-allocated stock all in on AI direction. I sold them very cheaply, but bought what now look like treasures. Like Tesla I love at around 130, NVIDIA at around 90, SMH at around 160, etc. Around then I started intentionally learning to invest, analyzing companies and their underlying value, and read many books to sharpen my thinking. The books didn’t help much operationally, since most were written decades before AI, but the mindset is useful. Investing in AI also can’t follow the old playbook. It gave me an interest outside of programming, which is fun. Maybe one day I’ll build an investing-related AI product.</p>\n<p>Then, as you all know, came Mole, written last National Day during a Sanya pool vacation between swims and rests. Mole introduced me to many overseas developers. My overseas follower count grew sharply because developers from all over the world have been actively spreading the word almost daily. So grateful! Then came Kaku written during this year’s Spring Festival, plus the recently efficiency-boosting Waza and Kami, and now that the new machine is here I’m planning a font called Luo. The journey has been wonderful, and I’m really looking forward to what’s next. New friends are very welcome.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"266. Masked Sculpture","link":"https://weekly.tw93.fun/en/posts/266/","pubDate":"Mon, 27 Apr 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/31/266.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/31/266.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/31/266.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"2800\" data-pswp-height=\"2100\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo is a sculpture of a child wearing a mask, taken on the weekend while running errands over in Gongshu. In a flash, the pandemic already feels like a long time ago, and yet it also feels like just yesterday. Those years are still worth remembering.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"introducing-the-tw93-open-source-family\">Introducing the Tw93 Open Source Family</h2>\n<p><a href=\"https://github.com/tw93\">https://github.com/tw93</a><br>\n<img src=\"https://gw.alipayobjects.com/zos/k/sa/family.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/sa/family.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/sa/family.png\" loading=\"lazy\" data-pswp-width=\"1586\" data-pswp-height=\"992\" style=\"aspect-ratio: 1.5988;\" width=\"800\"></p>\n<p>After finishing Kami, I suddenly realized that Kaku, Waza, and Kami feel a lot like a small family. Then I kept thinking, and actually Pake, MiaoYan, and Mole have always been quietly part of this family too. Some of them were even out doing real work before AI showed up. Today let me introduce you to this warm and happy little family.</p>\n<p>Kaku is the dad. He mainly handles writing code, the terminal, and builds. Very reliable and capable in the AI era, he holds the family together well.</p>\n<p>Pake is the mom. She has been quietly packaging, organizing, and delivering apps all along. Gentle and efficient. She is the kids’ favorite in the family.</p>\n<p>MiaoYan is the older brother. Sensible and steady, he likes writing, Markdown, and reflective thinking. A quiet young man who thinks for himself, has his own opinions, shares his views, and never chases trends or follows the crowd.</p>\n<p>Waza is the older sister. Her personality is similar to mom’s, very sharp and capable. As a kid she even practiced taekwondo. She loves learning, and through endless practice and reflection she sharpens her skills until they become instinct.</p>\n<p>Kami is the younger sister. The youngest little sweetheart in the family, generated based on my daughter’s photo. Bright and cheerful, always smiling, very sunny. She has a kind of order-keeping presence at home, loves tidiness, and loves drawing pretty pictures. Small, but very warm.</p>\n<p>Mole is the family’s little pet mole. Brought home one year while swimming by a pool in Sanya. A round little mole with a tiny headlamp and a small shovel. He loves rummaging through corners, finding things you no longer need and helping you throw them away. He loves cleanliness. The moment he spots trash, before you can react, it is already gone. Always there, keeping us company.</p>\n<p>So, which member of the Tw93 Open Source Family did you meet first? Let me introduce the rest of the family to you, hoping they bring a little something good into your life. And of course, feel free to introduce them to your friends too.</p>\n<h2 id=\"product-releases\">Product Releases</h2>\n<p><strong>Kami: A Comfortable Typesetting and Design System for the AI Era</strong><br>\n<a href=\"https://github.com/tw93/kami\">https://github.com/tw93/kami</a><br>\nThe weekend before last I started working on a new Skill called Kami (紙, かみ). You can think of him as the younger sister of Waza (技, わざ) and the daughter of Kaku (書く), focused on Paper typesetting scenarios. Last Monday I finished the open source release. Welcome to give it a try.</p>\n<p>For example, when you need to produce a one-page report, write a white paper, generate a polished slide deck, or build a portfolio PDF to send to someone. Any printing or typesetting scenario works. It auto-generates beautiful PDFs, and even has the ability to draw clear charts automatically.</p>\n<p>Plenty of updates lately. The most fun one: I added support for 12 inline SVG charts, things like stock investment charts and architecture diagrams, all with colors that match Kami. While generating your layout, it automatically decides whether chart capabilities are needed, helping you explain things more clearly.</p>\n<p>I also spent some time supporting English and Japanese scenarios, carefully picking fonts, letter spacing, line heights, and font sizes that I think work well for typesetting. If you have English or Japanese use cases, give it a try.</p>\n<p>The output also supports image and slide deck export, including HTML display. The best output for typesetting is still PDF in my opinion, since it reads very comfortably for others.</p>\n<img src=\"https://gw.alipayobjects.com/zos/k/qr/iCgeq1.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/qr/iCgeq1.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/qr/iCgeq1.png\" loading=\"lazy\" data-pswp-width=\"2992\" data-pswp-height=\"2308\" style=\"aspect-ratio: 1.2964;\" width=\"800\">\n<p><strong>Mole has updates, plus good news: progress on the desktop client</strong><br>\n<a href=\"https://github.com/tw93/Mole\">https://github.com/tw93/Mole</a></p>\n<ol>\n<li>mo uninstall: cleans up leftover LaunchAgent/LaunchDaemon plists after uninstall; recognizes pkg-installed apps under non-standard paths like /usr/local and /opt; nested helper apps no longer block login item cleanup; sudo is dropped before calling brew, avoiding cask uninstall failures from “running as root”; Homebrew bottles now run correctly under prefixes that contain spaces (such as Applite).</li>\n<li>mo clean: Service Worker ScriptCache is no longer cleaned while Chrome / Arc / Brave / Vivaldi / VS Code / Cursor are running, so MV3 extensions stay intact; TCC-protected Group Containers are skipped to avoid repeated privacy prompts.</li>\n<li>Cloud &#x26; Office segments now have timeout and SIGINT handling, no more freezing; Microsoft Office helpers and research software bundles are no longer flagged as orphans (compatible with macOS’s built-in bash 3.2); added Yarn v1 global cache cleanup.</li>\n<li>mo clean: legacy AI coding assistant cleanup adds GitHub Copilot CLI (~/.copilot/pkg/universal/<version>/), handled alongside Claude Code and Cursor Agent.</version></li>\n<li>mo analyze: worker pool cap lowered again to prevent system thread exhaustion in Steam-like fan-out scenarios; uses incremental cache invalidation when deleting files, no full rescan needed; bundle parsing falls back to the filesystem after mdfind timeouts.</li>\n<li>mo optimize: gracefully skips periodic maintenance on macOS 26+ where the underlying tool no longer exists; adds mo optimise alias and completion.</li>\n</ol>\n<h2 id=\"just-writing\">Just Writing</h2>\n<p><strong>The AI Coding You Don’t Know: Onboarding, Scenarios, and Practice for Non-Technical Folks</strong><br>\n<a href=\"https://tw93.fun/en/2026-04-26/ai-coding.html\">https://tw93.fun/en/2026-04-26/ai-coding.html</a><br>\nLast month I gave a session at work for product and business folks on how to get started with AI Coding. Recently I also posted about it on Twitter, and a lot of people brought up that subscription costs prevent them from accessing the top-tier AI Coding tools. The methods and habits can actually be learned for free first, so I decided to write up the onboarding part. To make it easier to grasp, the article includes plenty of simple illustrations, which should make it more direct.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/z1/00.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/z1/00.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/z1/00.png\" loading=\"lazy\" data-pswp-width=\"1500\" data-pswp-height=\"600\" style=\"aspect-ratio: 2.5000;\" width=\"800\"></p>\n<p><strong>Video version of “The Agent You Don’t Know: Principles, Architecture, and Engineering Practice”</strong><br>\n<a href=\"https://www.youtube.com/watch?v=Z5If1L3eFtw\">https://www.youtube.com/watch?v=Z5If1L3eFtw</a><br>\nFinally uploaded to YouTube. If you read the article and did not fully follow it, or want a deeper look, the video version is up. New to YouTube here, so please like, subscribe, and share. From now on I will try to record more sessions and share them here.</p>\n<img src=\"https://gw.alipayobjects.com/zos/k/bp/SCR-20260423-tuzj.jpeg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/bp/SCR-20260423-tuzj.jpeg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/bp/SCR-20260423-tuzj.jpeg\" loading=\"lazy\" data-pswp-width=\"3288\" data-pswp-height=\"1876\" style=\"aspect-ratio: 1.7527;\" width=\"800\">\n<p>The <a href=\"https://tw93.fun/files/share/agent.html\">slides</a> are also fun. They are the predecessor of Kami. Kami started as a small investment report generator I was tinkering with inside CC. Around the same time I had a session about agents to give, and writing such a long deck felt tedious, so I just used the existing capability to generate and tweak versions until I was satisfied. That is how Kami was born. Welcome to read.</p>\n<p><strong>Moments of Happiness</strong><br>\nA lazy Sunday afternoon coding in the study<br>\nNothing else to deal with<br>\nEndless Claude Code<br>\nCode that works on the first try<br>\nLook up and see the sunset coming through the window<br>\nA very simple kind of happiness<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/pv/PHyc1R.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/pv/PHyc1R.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/pv/PHyc1R.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\"></p>\n<p><strong>Some thoughts after sharing, and they have shifted again</strong><br>\nRecently I interviewed a number of 985 university interns for campus recruiting. One strong impression: AI tools are rapidly widening the resource gap between students.</p>\n<p>From what I have seen, the gap can really reach 5x. The students clearly ahead, without exception, all got into Claude Code, Codex, and other top AI Coding tools relatively early, and were willing to pay for subscriptions themselves. They do not just use the tools, they have made them part of their daily learning and development. Talking models, engineering, agents, and code practice, the conversation flows naturally for an hour. In many places they understand things more deeply than I do.</p>\n<p>But there are also quite a few students with great grades and solid CS fundamentals who, because of family conditions or budget limits, can only use domestic relays or cheaper local model packages. That gap is very real. The best domestic models and top international ones still have about half a year of difference in overall capability. Before AI, the resource gap mostly meant slightly different efficiency. Now it directly affects vision, depth of practice, and confidence.</p>\n<p>I have been thinking about this a lot. For students with real potential, missing out on so much just because of a few dozen dollars a month feels like a real shame. It reminds me of when I was in college, also pretty broke most of the time. Lucky for me, in my second year I met some senior developers who pulled me into commercial projects and got me on my feet. I am very grateful to all the friends who patiently taught me technical things back then.</p>\n<p>So I want to try a small experiment: take part of the X posting revenue and sponsor a few students who do well academically, love computer science, but come from less wealthy families. Give them a few months of Claude Code or a similar AI Coding subscription, so they actually experience what good models and dev workflows feel like.</p>\n<p>But I am also pretty busy on my end and cannot personally handle applications, screening, verification, and long-term follow-up alone. So I want to invite some friends with similar interests to do it together. University teachers, student leads, open source community members, or friends already working in education, public welfare, or developer communities. Together we can come up with a more reliable mechanism.</p>\n<p><del>I do not want to make this big or complex for now. Start small, maybe 5 to 6 students per round, 3 to 4 months each, perhaps with short weekly video chats with me. Prioritize recommendations, work portfolios, learning records, and real usage feedback, to avoid turning this into pure cash handouts or a contest of who writes the best application. Of course, college students who are on X probably do not lack this money, so we still need better channels.</del></p>\n<p>If you have reliable channels, or want to help with rule design, recommendations, vetting, or follow-up, please DM me. If we can make this trustworthy, maybe we really can help a few students with real potential.</p>\n<p><strong>Update Reply</strong>:</p>\n<p>After the message went out, I received plenty of suggestions and reminders from friends. I read them all carefully.</p>\n<p>This really cannot be pushed forward on enthusiasm alone. On one side there are tool usage boundaries and compliance risks. On the other, the real needs of the student community, the screening method, and the follow-up feedback all need a more solid mechanism. Some friends mentioned getting badly burned doing similar things in the past, even bitten back in the end. I find that reminder very valuable.</p>\n<p>So the plan now is to first gather more on the actual situation, like the real pain points college students face when using AI Coding tools, budget limits, learning scenarios, and real needs. Then put together a clearer proposal.</p>\n<p>Going forward, I will prioritize working with domestic large model vendors, developer communities, and university teachers to see if there is a more formal and sustainable way to push this small step forward.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"265. Xixi Window View","link":"https://weekly.tw93.fun/en/posts/265/","pubDate":"Mon, 20 Apr 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/ky/265.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/ky/265.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/ky/265.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"2400\" data-pswp-height=\"1800\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo is from lunch at Yueya in Xixi Wetland one noon this week. I had not been there in a long time. The place still feels great. The sun was out, short sleeves felt just right, and I took this shot outside the window. Spring moves fast.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"talking-about-wazas-design-ideas\">Talking About Waza’s Design Ideas</h2>\n<p>I want to write a few pieces introducing the implementation references behind some interesting skills in Waza. Last week I wrote one every morning, so I am collecting them here for everyone.<br>\n<a href=\"https://github.com/tw93/waza\">https://github.com/tw93/waza</a></p>\n<img src=\"https://gw.alipayobjects.com/zos/k/7o/4OUzkd.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/7o/4OUzkd.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/7o/4OUzkd.png\" loading=\"lazy\" data-pswp-width=\"1200\" data-pswp-height=\"775\" style=\"aspect-ratio: 1.5484;\" width=\"800\">\n<h3 id=\"introducing-the-design-skill\">Introducing the /design Skill</h3>\n<p>I really dislike those AI-generated websites that all look the same, often with emoji and blue-purple gradients. They look ugly to me. Usable, sure, but that is about it.</p>\n<p>So I asked Claude Code to study my tuning notes from all the UI websites I have built recently. It produced a basic set of what I consider best practices and anti-patterns. That became the initial shape. Then I learned the useful parts from the Claude frontend design skill, and a pattern basically came together.</p>\n<p>For concrete rules, I learned quite a bit from pbakaus/impeccable. It contributed many specific rules for me, including banned font lists, color systems, theme styles, forbidden CSS patterns, animation standards, and more. These help give AI some aesthetic knowledge.</p>\n<p>Then I took a capability from getdesign: a nine-part scaffold structure originally from Google Stitch. I simplified it and folded it into /design. At that point, the skill had a proper knowledge system.</p>\n<p>Finally, when I ask you to use this skill, it first asks a few questions: who will use it, what aesthetic direction to choose, what you want users to remember from the page, what you dislike most, and what kind of signature micro-interaction the page should have. With this important context plus /design, Claude Code often gets much better results.</p>\n<h3 id=\"how-i-designed-the-check-code-review-skill\">How I Designed the /check Code Review Skill</h3>\n<p>First, we need to understand that when a model says it is done, it may not actually be done. It may have left behind nonexistent things or problematic details, and issues often stay hidden. In Agent design, my engineering experience is to give the model a checklist to verify whether the work is truly complete. This tends to work far better than simply asking it to check the result.</p>\n<p>From the beginning, /check was not designed as one big all-in-one reviewer. It is an orchestration and division-of-labor system. SKILL.md is the lead reviewer, responsible for review levels and process control. Under agents/, there are independent security and architecture reviewers. Each handles its own area without interfering with the others. Which reviewer gets pulled in, and when, is decided by activation rules rather than the keyword matching people usually use.</p>\n<p>The level logic is also interesting. Code changes under 100 lines get a fast review. Changes between 100 and 500 lines bring in experts as needed. Changes above 500 lines bring in the full set, followed by a round of adversarial testing. The adversarial testing looks for problems from four angles: violated assumptions, possible issues under combined failures, errors across parent-child chains, abuse scenarios, and so on.</p>\n<p>The issues found are handled in four levels. Things that can be safely fixed are fixed directly. Things that are probably right but need confirmation are packaged up for you to approve manually. Things that require judgment are asked about. Reference-only items are also reported, but it will not ask you about every tiny issue, and it will not overstep by changing behavior logic for you.</p>\n<p>There is also a hard requirement: if verification has not finished, the task is not complete. It includes a detection script that can identify project types such as Cargo, TypeScript, and Python, then run the relevant tests. If it cannot detect the project type, it reports an error directly instead of pretending everything passed.</p>\n<p>This makes it feel more like an experienced technical expert applying review judgment to different situations. I happened to distill that experience into Waza’s /check skill in a very simple way.</p>\n<h3 id=\"how-i-designed-the-think-skill\">How I Designed the /think Skill</h3>\n<p>This is already the third part of the Waza skill design notes. Today I want to share how I designed /think, the skill used for planning before writing code.</p>\n<p>I have two very interesting settings when using Claude Code. The first is /model opusplan, which means planning uses the strongest Opus model by default, while execution uses the regular Sonnet model. This helps save my Max quota for places where it matters more.</p>\n<p>The second is that I usually run Claude Code with the alias <code>c=\"claude --dangerously-skip-permissions\"</code>. I do not recommend this for technical beginners. I use it because I know what it is doing, and mainly because I am lazy.</p>\n<p>Back to the main topic: how does /think help the strongest model perform better? It starts with the model itself. Models do not like taking a position, but I prefer engineers who can take a position and recommend the best plan. So the first thing I did was require the model to state its position at the beginning, explain what evidence could overturn that position, and explicitly ban correct but useless filler like “There are many ways to think about this”. Giving 2 or 3 options is fine, but there must be a clear recommendation, and it must include a minimal option.</p>\n<p>A plan is not done just because it has been thought up. The second step asks it to argue against itself: under what conditions would this plan fail? If the issue can be fixed, it adds the fix back into the plan and presents it again. If the issue breaks the plan outright, it directly explains when and why the plan does not work. At least the plan you receive is one you understand clearly.</p>\n<p>It also checks assumptions carefully. First, confirm whether the target directory and code location are correct. I have actually seen it produce a plan against the wrong path. Then it checks old technical design documents to avoid reinventing things. Then it searches GitHub to see whether others have handled similar problems. Only after these three steps does it start thinking about solutions, so the plan is not built on a wrong premise from the start.</p>\n<p>There is also complexity grading. If more than 8 files are involved or a new service is added, it clearly states the scale. If more than 3 components exchange data, it draws an ASCII diagram to look for cycles. All API keys and third-party dependencies are listed during the planning stage, preventing wasted work and unreliable plans.</p>\n<p>Finally, there is a hard rule: the plan cannot contain TBD, TODO, “leave it for later”, or “similar to step N”. This goes back to AI’s behavior. If you leave these openings, execution can easily miss things or improvise too much. Do not give AI any escape route that can lead to poor results.</p>\n<p>The output format is also defined: what to do, what not to do, which option was chosen and why, 3 to 5 decision points, and explicit unknowns. /think never writes code. It waits for user approval before execution.</p>\n<p>When I designed the Think skill, I was also using my idea of how a good technical expert writes a technical plan: detailed analysis and research, a decisive best plan, no loose ends, and immediate plan refinement when challenged.</p>\n<h3 id=\"talking-about-the-hunt-skill-for-engineers\">Talking About the /hunt Skill for Engineers</h3>\n<p>This is finally part 4 of the Waza skill design notes. After this, it is almost complete, because the other two, /read and /learn, were already briefly covered before. This time I will continue with the engineering skills and talk about /hunt, which is the skill for debugging and investigating problems.</p>\n<p>One major difference between superficial AI coding and serious AI coding is visible in how users use AI to investigate problems that have stayed unsolved for a long time. The troubleshooting process shows a clear gap. This is also why experienced engineers can use AI to solve much more complex problems than people who understand less about technology.</p>\n<p>I often ran into this before: Claude Code hits a problem and fixes it with a patch. You say it is wrong, so it gives you another patch. After 4 or 5 rounds, new problems appear. It is easy to keep patching without diagnosing the actual issue, much like junior developers did before AI.</p>\n<p>The core rule of /hunt is interesting: before AI can state the root cause in one sentence, it is not allowed to touch the code. That sentence also has a precision requirement. It needs to clearly explain the cause.</p>\n<p>Then I designed a self-deception checklist to prevent the model from falling into several common patterns of self-justifying thinking. Each pattern has matching rules, and the gotchas include real cases. I summarize and abstract this again based on issues I ran into while debugging over the past month.</p>\n<p>The hypothesis verification stage also has concrete work requirements. For example, add a fresh observation method, teach AI to add logs, add assertions, or run a minimal failing test case. If there are still problems after the fix, it should immediately switch plans. It organizes what it checked, which directions it investigated, and what remains unknown into a handoff for the user to decide how to continue, instead of trying endlessly.</p>\n<p>The output also guides AI to include the root cause at file:line, what changed at file:line, what evidence confirms the fix, and which tests passed. The final state has three options: resolved, resolved with caveats, or blocked.</p>\n<p>You can see that /hunt behaves like an experienced technical expert. When it hits a problem, it does not guess. It slows down, looks for where the problem is, diagnoses the cause clearly, and then fixes it in one pass. This often saves a lot of time.</p>\n<h2 id=\"things-to-browse\">Things to Browse</h2>\n<p><strong>MiaoYan released version 3.2.0, Nargacuga</strong><br>\n<a href=\"http://github.com/tw93/MiaoYan\">http://github.com/tw93/MiaoYan</a></p>\n<ol>\n<li>Faster preview: two-stage rendering shows text immediately, while local images lazy-load in the background. This noticeably reduces the wait for the first preview screen.</li>\n<li>Terminal shortcut: added Cmd+J as a global shortcut to open the terminal for the current folder anytime. The folder right-click menu also has the same entry.</li>\n<li>Copy path: right-click any note to copy its full file path directly.</li>\n<li>Spanish localization: complete Spanish translation coverage for menus, settings pages, and system strings.</li>\n<li>Mermaid upgraded to v11.14.0, fixing subgraph edge rendering issues and adding new chart features.</li>\n<li>Real-time reload fix: notes modified by other tools now correctly trigger reloads, including files inside symlinked directories (closes #502).</li>\n<li>Startup and window fixes: opening .md files directly from Finder no longer shows a blank screen. In single-column mode, notes are no longer lost during startup or exit.</li>\n<li>Export and mode switching: fixed blank previews when switching notes, timing issues when exiting PPT presentation mode, export timeout handling errors, and more.</li>\n<li>Concurrency safety: fixed ExportCache data races, security-scoped URL leaks, and note state confusion after async rendering.\n<img src=\"https://raw.githubusercontent.com/tw93/static/main/miaoyan/miaoyan.gif\" width=\"800px\">\n</li>\n</ol>\n<p><strong>Kaku has an interesting feature coming soon. It should ship in a few days</strong><br>\n<a href=\"https://github.com/tw93/Kaku\">https://github.com/tw93/Kaku</a><br>\nKaku has been developing an interesting feature recently: a real Agent assistant that can move smoothly inside the terminal. It gradually realizes the quiet Kaku AI idea I mentioned during Chinese New Year, and it also helps me move 100% of my coding work fully into Kaku.</p>\n<p>A very convenient context environment, useful CLI tools, models, and a restrained personality make Kaku feel different. It is not cold, and it is not the over-the-top “I have got you” style of GPT either. Kaku AI is positioned as a technically strong, friendly, and concise engineer friend. Once I test it for a few days without bugs, I will release Kaku 0.10 for everyone to try.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/hq/bPJ8tk.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/hq/bPJ8tk.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/hq/bPJ8tk.png\" loading=\"lazy\" data-pswp-width=\"1645\" data-pswp-height=\"1079\" style=\"aspect-ratio: 1.5246;\" width=\"800\"></p>\n<p><strong>My Claude Code Max usage suggestions</strong><br>\nFirst, I add an alias in <code>.zshrc</code>, so every time I press <code>c</code>, it starts dangerous unrestricted mode directly. If you are a beginner, I do not recommend starting this way. Auto mode is enough. Another big suggestion is to set the automatic context window compaction to 400k. Together, the alias below goes into the file, which means the 1m context window starts compacting at 40%. The result feels much better.</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"sh\"><code><span class=\"line\"><span style=\"color:#F97583\">alias</span><span style=\"color:#E1E4E8\"> c</span><span style=\"color:#F97583\">=</span><span style=\"color:#9ECBFF\">'CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 claude --dangerously-skip-permissions'</span></span></code></pre>\n<p>Then I set /model to opusplan. You can run the hidden command <code>/model opusplan</code> directly inside Claude Code to enable it. If you want it faster, you can turn on <code>/fast</code>, which nicely makes up for the token savings above.</p>\n<p>Finally, someone gave me a really good suggestion: when using opusplan, make sure to set <code>showClearContextOnPlanAccept</code> to <code>true</code> in the Claude config file <code>~/.claude/settings.json</code>. Otherwise, Sonnet can run into serious cache miss issues. Once this is configured, the experience feels much smoother.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"264. Finally Done","link":"https://weekly.tw93.fun/en/posts/264/","pubDate":"Mon, 06 Apr 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/kd/264.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/kd/264.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/kd/264.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"800\">\n<p><small>The cover photo is a shot of my hardware toy finally finished. It was a fun ride, and I wanted to document the whole process in this week’s issue. Hope you enjoy reading it.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"new-article\">New Article</h2>\n<p><strong>How I Deep-Dive into a New Technical Domain in the AI Era</strong><br>\n<a href=\"https://tw93.fun/2026-04-06/learn.html\">https://tw93.fun/2026-04-06/learn.html</a><br>\nA follow-up to the learning writeup from last time, combined with the /learn skill inside Waza, walking through how I actually wrote that previous large model article. Hope it is useful to you.<br>\n<img src=\"https://cdn.fliggy.com/pic/deep04.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/deep04.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/deep04.png\" loading=\"lazy\" data-pswp-width=\"1500\" data-pswp-height=\"600\" style=\"aspect-ratio: 2.5000;\" width=\"800\"></p>\n<h2 id=\"building-a-little-robot-dog\">Building a Little Robot Dog</h2>\n<p><strong>April 4: Back to hardware basics. I want to build something that combines software and hardware.</strong><br>\nAll the parts and tools had finally arrived, a whole table full of them. Saving it all for the Qingming holiday to dig in properly.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/gu/gOR0gb.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/gu/gOR0gb.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/gu/gOR0gb.png\" loading=\"lazy\" data-pswp-width=\"2048\" data-pswp-height=\"1536\" style=\"aspect-ratio: 1.3333;\" width=\"800\"></p>\n<p><strong>April 4, 9:45 PM: v0.1.0-beta</strong><br>\nThe first sign of life. I was so happy I couldn’t describe it.<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://gw.alipayobjects.com/os/k/4s/IMG_0321.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>April 5, 12:07 AM: v0.1.0-beta1</strong><br>\nGot the WiFi module, AI module, microcontroller module, and quad-leg module all running together. Tomorrow I’ll attach the legs and tune the screen. Going to sleep right now!<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/IMG_032613.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>April 5, 1:45 PM: v0.1.0-beta2</strong><br>\nMechanical leg control is working. It can crouch, sleep, and walk. Still rough around the edges, but one of the leg motors from the order looks like it has a problem. Waiting on a replacement part.<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/new01.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>April 6, 10:33 AM: v0.1.0-beta3</strong><br>\nAll four legs are fully under control now. But I burned the screen during debugging. Waiting on shipping. Can’t wait to release.<br>\n<img src=\"https://cdn.fliggy.com/pic/IMG_0379.jpg06.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_0379.jpg06.jpg\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_0379.jpg06.jpg\" loading=\"lazy\" data-pswp-width=\"3880\" data-pswp-height=\"2910\" style=\"aspect-ratio: 1.3333;\" width=\"800\"></p>\n<p><strong>April 8, 11:37 PM: v0.1.0-beta4</strong><br>\nThe replacement screen arrived after work. Got it running, then tuned the temperature, CO2, infrared, and lighting sensors all in one go. Still working on WiFi provisioning. It’s basically taking shape now, just need to seal and secure everything.<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/IMG_043028.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>April 11, 11:30 AM: v0.1.0 finally ships 🎉</strong><br>\nSealed up the battery pack and tied a few straps around it to keep things from falling apart. Got the WiFi and AI conversation module working too. Using DeepSeek makes it noticeably faster, response speed is decent. Next up: something with more advanced hardware.<br>\n<video width=\"800px\" preload=\"metadata\" controls><source src=\"https://cdn.fliggy.com/pic/26F9D347-A9C8-4DCC-811A-033887BD049515.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>A few photos from different angles to mark the moment</strong></p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"50%\">\n           <img src=\"https://cdn.fliggy.com/pic/26410.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/26410.jpg\" data-pswp-src=\"https://cdn.fliggy.com/pic/26410.jpg\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n        <td width=\"50%\">\n           <img src=\"https://cdn.fliggy.com/pic/IMG_050519.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_050519.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_050519.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n    </tr>\n    <tr>\n        <td width=\"50%\">\n           <img src=\"https://cdn.fliggy.com/pic/IMG_050736.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_050736.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_050736.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n        <td width=\"50%\">\n           <img src=\"https://cdn.fliggy.com/pic/IMG_050944.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/IMG_050944.JPG\" data-pswp-src=\"https://cdn.fliggy.com/pic/IMG_050944.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n    </tr>\n</tbody></table>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>App Store Price: Look up app prices across different countries and regions</strong><br>\n<a href=\"https://app.vbr.me\">https://app.vbr.me</a><br>\nA handy little tool. You can check what an app costs in any App Store region, like figuring out which country has the cheapest Claude subscription. I’ll probably find a use for this soon.<br>\n<img src=\"https://cdn.fliggy.com/pic/Pnc8XN58.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/Pnc8XN58.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/Pnc8XN58.png\" loading=\"lazy\" data-pswp-width=\"1200\" data-pswp-height=\"886\" style=\"aspect-ratio: 1.3544;\" width=\"800\"></p>\n<h2 id=\"random-thoughts\">Random Thoughts</h2>\n<p><strong>Let me share what I think makes for a genuinely good product experience.</strong></p>\n<p>There’s a followup to my lost drone story. The signal cut out mid-flight, I searched for a long time, couldn’t find it. I uploaded the flight logs and DJI couldn’t find a clear cause either. Even without being sure it was actually lost, they asked for very minimal proof and, under their Care Refresh service, just shipped me a brand new one. They even threw in a 128GB card in case it would be more convenient. Not once did anyone ask me to explain how it got lost or whether I had gone looking for it.</p>\n<p>That experience made me a real fan of DJI. Their customer service and technical support engineers were professional and clear throughout the whole process. I want to use that story to share what I think makes a good product experience.</p>\n<p>Good product experience is not just what people usually say: great interaction design, beautiful UI, easy to use, no bugs. Those matter, but what matters even more is this: when a user is in a tough spot, you give them something far better than they expected. Something so good that they get excited and tell their friends about it. That is what I consider truly good product experience, the kind that is good for business too. The only thing I worry about is that this culture of trust and simplicity gets taken advantage of by people trying to game the system. It’s something we all have to protect together.</p>\n<p>Two other experiences that stood out to me involved Ctrip.</p>\n<p>The first was three years ago during the Spring Festival. Tickets home were nearly impossible to get. They suggested I buy tickets for a few extra stops to guarantee I could board, and I was already grateful for that because nothing else had worked. But then, even better: I was at the movies that afternoon, feeling like everything was handled, when I got a call from an unknown number that I declined. Right after, a text came in saying they had found me a direct option that didn’t require the extra stops, and could I please go to the app to confirm. You could tell a real person had made that call and sent that message. It wasn’t the few dollars saved. It was the feeling that someone was genuinely working hard for me and delivering better than I had hoped. That is good experience.</p>\n<p>The second happened recently, during National Day. I had gotten two first-class seats but they weren’t together, pretty far apart. I had noted I was traveling with an 18-month-old. Then, the day before departure, Ctrip quietly swapped our seats. Just a simple notification: we found an open seat in your carriage and moved you both together. Another moment where someone gave me more than I expected.</p>\n<p>So if you are building a product, think about giving your users something far beyond what they expect in the moments when they really need it, rather than chasing clicks with tricks. When you do that, people will genuinely love your product and become your most loyal fans.</p>\n<img src=\"https://cdn.fliggy.com/pic/lxEYPC26.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/lxEYPC26.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/lxEYPC26.png\" loading=\"lazy\" data-pswp-width=\"2048\" data-pswp-height=\"1536\" style=\"aspect-ratio: 1.3333;\" width=\"800\"><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"263. Hardware Beauty","link":"https://weekly.tw93.fun/en/posts/263/","pubDate":"Mon, 06 Apr 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/e5/263.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/e5/263.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/e5/263.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"4029\" data-pswp-height=\"3022\" style=\"aspect-ratio: 1.3332;\" width=\"800\">\n<p><small>The cover photo is from a hardware toy I spent three days playing with at home during the holiday. I was soldering, applying glue, and debugging through a pile of components. I was almost at the final step when I burned the screen during testing. Now I am waiting for the replacement to arrive so I can keep going. Lots of fun.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"new-article\">New Article</h2>\n<p><strong>What You Don’t Know About LLM Training: Principles, Paths, and New Practices</strong><br>\n<a href=\"https://tw93.fun/2026-04-03/llm.html\">https://tw93.fun/2026-04-03/llm.html</a><br>\nThis is the longest article I have ever written. The good news is I finally got a handle on the basics of large model training. The gap between what I assumed I knew before and what I actually found was massive. I highly recommend this to anyone working in AI applications or anyone curious about AI. It should give you a clear picture without leaving you lost.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/4q/Group.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/4q/Group.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/4q/Group.png\" loading=\"lazy\" data-pswp-width=\"1500\" data-pswp-height=\"600\" style=\"aspect-ratio: 2.5000;\" width=\"800\"></p>\n<h2 id=\"product-releases\">Product Releases</h2>\n<p><strong>Waza, My Engineer-Alter-Ego Skill Set</strong><br>\n<a href=\"https://github.com/tw93/waza\">https://github.com/tw93/waza</a><br>\nI packaged my personal skills into something new called Waza. In Japanese, 技（わざ）means technique or skill, often used in martial arts. This is the first time I have released an open-source project with zero code, just markdown files. In the pre-AI era, for a programmer, that would have been embarrassing.</p>\n<p>When Superpowers came out, I installed it once and deleted it right away. Too heavy, not my thing. A lot of people kept telling me “You don’t know Superpowers? If you’re not using it you’re not with the times, it’s amazing.” Then I found gstack, which was better, but still felt like too much. I still wasn’t used to it. I wanted something simple and useful where I could clearly see what it was doing.</p>\n<p>So I built Waza the way I like it. For me, this set is enough. No need to mess with other skills. Not too many, not too few, just right. New iterations can be added over time.</p>\n<p>The 8 skills correspond to 8 abilities I think a good engineer in the AI era should have:</p>\n<ol>\n<li>\n<p><strong>Think clearly.</strong> AI writes code fast, but if the direction is wrong, the faster you go the further off course you get. A good engineer questions the problem itself before touching any code, stress-tests the plan, and has a clear mental architecture before asking AI to execute. /think locks this habit in.</p>\n</li>\n<li>\n<p><strong>Design well.</strong> Building a product is not just about making features work. AI-generated things tend to look the same. Good engineers have an aesthetic standard for what they deliver and a clear design direction. /design handles this.</p>\n</li>\n<li>\n<p><strong>Debug systematically.</strong> AI fixing bugs most easily falls into a “try this, try that” loop. A good engineer diagnoses problems systematically, confirms the root cause before touching the code, and gets it right in one shot. I turned this habit into /hunt.</p>\n</li>\n<li>\n<p><strong>Review before merging.</strong> AI-generated code needs human oversight even more. Check the diff before merging, auto-fix what can be auto-fixed, group the judgment calls together, and verify with evidence rather than gut feeling. That is /check.</p>\n</li>\n<li>\n<p><strong>Read primary sources.</strong> Good engineers read original material, not second-hand summaries. Converting URLs or PDFs into clean Markdown and pulling it directly into the workflow is what /read does.</p>\n</li>\n<li>\n<p><strong>Write clearly.</strong> No matter how technically strong you are, if you can’t explain it clearly, others won’t receive it. A good engineer can convey what they have learned and what they want to express to the right audience. /write helps you nail this step.</p>\n</li>\n<li>\n<p><strong>Learn actively.</strong> Tech moves faster in the AI era. Entering an unfamiliar domain is not just skimming a few articles. It is collecting, digesting, outlining, drafting, refining, and publishing. Output drives learning. That entire flow is /learn.</p>\n</li>\n<li>\n<p><strong>Maintain the toolchain.</strong> A good engineer does not only care about business code. The toolchain itself needs regular checkups. When something feels off with CLAUDE.md, rules, hooks, or MCP configs, run /health and find out what is wrong.</p>\n<img src=\"https://gw.alipayobjects.com/zos/k/yx/JMouVn.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/yx/JMouVn.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/yx/JMouVn.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1920\" style=\"aspect-ratio: 1.0000;\" width=\"800\">\n</li>\n</ol>\n<h2 id=\"product-updates\">Product Updates</h2>\n<p><strong>Kaku 0.9 is out and it is really good</strong><br>\n<a href=\"https://github.com/tw93/kaku\">https://github.com/tw93/kaku</a><br>\nA few fun features shipped in this version that should be genuinely helpful.</p>\n<ol>\n<li><strong>Natural language command generation</strong>: Type <code># &#x3C;description></code> and press Enter, and the auto-generated command is injected back into the prompt.</li>\n<li><strong>Option+Click to move the cursor</strong>: Click anywhere on the current line to move the cursor there.</li>\n<li><strong>Window pinning</strong>: Pin the window to the front via the Window menu, and toggle it on or off anytime.</li>\n</ol>\n<p><video width=\"800px\" preload=\"\" loop autoplay controls muted><source src=\"https://gw.alipayobjects.com/os/k/ke/kaku.mp4\" type=\"video/mp4\"></video></p>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>Claude HUD helps you track your Claude usage</strong><br>\n<a href=\"https://github.com/jarrodwatts/claude-hud\">https://github.com/jarrodwatts/claude-hud</a><br>\nIt is a little feature-heavy, but after some simple configuration it works well. Worth trying if you are curious. The code feels a bit complex, and when I have time I will probably simplify it myself. Minimalism is the goal.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/bc/l4yelI.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/bc/l4yelI.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/bc/l4yelI.png\" loading=\"lazy\" data-pswp-width=\"2440\" data-pswp-height=\"884\" style=\"aspect-ratio: 2.7602;\" width=\"800\"></p>\n<p><strong>A super minimal, AI-friendly Markdown doc generator</strong><br>\n<a href=\"https://docmd.io\">https://docmd.io</a><br>\nStumbled on docmd. It is a zero-config documentation generator built for developers. It converts Markdown into fast, clean static docs with automatic routing, built-in search, and context that AI can easily use.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/rx/u4S6HX.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/rx/u4S6HX.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/rx/u4S6HX.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1080\" style=\"aspect-ratio: 1.7778;\" width=\"800\"></p>\n<p><strong>Picked up a 140W charger and it is great</strong><br>\nGot a 140W charger. Good size, finally free from my old 45W. Four ports, which makes it way more convenient on the go. The display showing real-time power output is a nice touch.</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"33%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/2s/4R4qMs.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/2s/4R4qMs.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/2s/4R4qMs.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"300\">\n        </td>\n        <td width=\"33%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/k5/XWLwvO.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/k5/XWLwvO.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/k5/XWLwvO.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"300\">\n        </td>\n        <td width=\"33%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/vr/2oXfRE.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/vr/2oXfRE.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/vr/2oXfRE.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"300\">\n        </td>\n    </tr>\n</tbody></table>\n<h2 id=\"random-thoughts\">Random Thoughts</h2>\n<p><strong>Let me share how I dive deep into a new technical domain in the AI era.</strong></p>\n<p>Before AI, I mostly read books and went through every blog post from notable people in the field, both domestic and international, writing notes by hand. It was slow but genuinely fun. Learning WebGL back then felt like that. Getting a solid understanding of something might take half a year of free time. Slow, but happy.</p>\n<p>Now that AI is here, I still can’t stand those “summarize a hundred-year-old novel in 3 minutes” things online. I also dislike short-episode dramas and watching shows at 2x speed. I mostly still choose good things and take time with them.</p>\n<p>But recently while writing the “You Don’t Know Claude Code” and Agent series, outside of the parts I already understood, there were huge areas I wasn’t clear on. Luckily I had saved a lot of articles, and this was the perfect chance to clear the backlog, fully digest everything, and write it all out. I have always believed that what matters is not how much you read, how much you hear, or how much you take in. Most of that doesn’t really stick. What matters is how much you output. That is what becomes truly yours.</p>\n<p>A couple of weeks ago I started a deep challenge: studying the training pipeline of large language models and making sure even non-specialists could understand it. I explored for two weeks, and the experience is now ready to share. The article is basically done and should be coming out soon.</p>\n<p>I organize this learning process like writing code. Step one: collect high-quality material. Recent top papers in the field, blog posts from major model providers about their key releases, threads from model leads on X, recent courses from Stanford and similar schools, and classic “build an LLM from scratch” repos. These are my sources. I use tools to automate downloading everything, converting to Markdown, cleaning, and organizing it all into a structured repo for this research.</p>\n<p>For content I understand, I read it all through, delete the bad parts, and keep the good ones. For content I don’t understand, I use Claude to help me get it. The more complex parts I translate into Chinese and read that way. For code that can run locally, I run it. For code that can’t, I read the structure. Either way, I end up with a rough understanding of the technical principles. This phase usually cuts the original material by half.</p>\n<p>At this point you have a general picture of the field, so you can start writing an outline and figuring out which source material belongs with each section. All of it works well in Markdown. What do you want to say, or more accurately, what do you want your reader to know? Always remember: an article is written for its readers. You need to know your audience’s level. It is a lot like giving a presentation.</p>\n<p>Then comes the grind, which is also a review of everything you have covered. It feels a lot like cramming before an exam in college. You fill in each section completely, and what you end up with is a very long and somewhat rambling article.</p>\n<p>This is where AI really helps. You can ask it to remove the redundant parts and smooth out the disconnected bits, without changing your original meaning or your voice. You can also ask it to flag gaps and help fill them in. That process teaches you even more things you had missed.</p>\n<p>Once that is done, read through it yourself one more time, not AI. AI is just a tool here. Do not let it replace your brain, that defeats the whole point. Reading through yourself, you can keep adjusting and polishing. It feels a lot like testing your own code: fix issues, fix more issues. After reading it twice and feeling good about it, you can publish it for everyone to see.</p>\n<p>Some folks worry that nobody will read what they write, so they hold back or just don’t write at all. Honestly, if your content has real value, readers will come. Worry about quality, not the audience.</p>\n<p>That took 10 minutes to write. Done. Happy to hear how you learn new fields. The video below is a recording of the learning repo for the LLM training article I mentioned, the one coming out soon. It shows my “industrial-scale” way of learning. Kind of fun to look at.</p>\n<p><video width=\"800px\" preload=\"\" controls muted><source src=\"https://cdn.fliggy.com/pic/llm45.mp4\" type=\"video/mp4\"></video></p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"262. Lost My Drone","link":"https://weekly.tw93.fun/en/posts/262/","pubDate":"Mon, 30 Mar 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/c6/262.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/c6/262.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/c6/262.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"3400\" data-pswp-height=\"1898\" style=\"aspect-ratio: 1.7914;\" width=\"800\">\n<p><small>The cover photo is here in memory of my drone, which I finally lost. This was the last shot it ever took. Thankfully I have DJI Care Refresh, so I should be able to get a replacement for free.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"product-updates\">Product Updates</h2>\n<p><strong>Kaku released version 0.8</strong><br>\n<a href=\"https://github.com/tw93/Kaku\">https://github.com/tw93/Kaku</a><br>\nThis release is called Fish 🐟. Most of the work in this round went into shell compatibility, tab behavior, and overall stability.<br>\nIt now has full fish shell bootstrap support, including Starship, Yazi, theme sync, and config handling. Tab management was also improved, with remembered last directories, isolated tabs for <code>update</code> and <code>doctor</code>, and a new option to show directory names only in tab titles.<br>\nOn top of that, it fixes a batch of issues around fast output and Claude Code viewport jumping, plus window hiding, link clicking, paste behavior, emoji width, SSH aliases, Cmd+Q crashes, and transparent rounded-corner rendering. Worth updating.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/t6/9UTHLG.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/t6/9UTHLG.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/t6/9UTHLG.png\" loading=\"lazy\" data-pswp-width=\"2560\" data-pswp-height=\"1407\" style=\"aspect-ratio: 1.8195;\" width=\"800\"></p>\n<p><strong>Mole released version 1.32</strong><br>\n<a href=\"https://github.com/tw93/mole\">https://github.com/tw93/mole</a><br>\nThis version is called Rorqual 🐋, and there are quite a few updates again.<br>\n<code>mo clean</code> now fixes the long-skipped wallpaper proxy and Messages preview caches, and adds cache and log cleanup for PCSX2 and RPCS3. It also improves Python bytecode cache output, the Brave cleanup guard, Spotify playback detection, and the error handling around Service Worker cache cleanup.<br>\nBesides that, <code>mo uninstall</code> now filters out invisible background helper apps, the main menu shows more accurate Touch ID detection and a version shortcut, and the install flow now grabs sudo permission up front so you do not have to keep entering your password over and over.</p>\n<p><strong>Pake released version 3.11</strong><br>\n<a href=\"http://github.com/tw93/Pake\">http://github.com/tw93/Pake</a><br>\nThis release is called Evolve 👻. It had been a while since the last update, and this one is mostly focused on bug fixes plus a few new features.<br>\nOn macOS, <code>--install</code> now supports one-command installation into <code>/Applications</code>. The new <code>--new-window</code> flag keeps popup and OAuth windows inside the app instead of constantly bouncing out to the system browser. It also adds <code>--camera</code>, <code>--microphone</code>, and <code>--identifier</code> for on-demand media permissions and custom Bundle IDs, which helps reduce conflicts between apps.<br>\nThere are also plenty of cross-platform fixes in this release, including Gemini download failures, parts of the ChatGPT UI disappearing after zooming, Windows icon copy errors, and crashes when clicking external links in macOS new-window mode. Overall it feels more stable.</p>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>The 4 Claude MCPs I use the most</strong><br>\n<a href=\"https://tinyfish.ai\">https://tinyfish.ai</a><br>\nThe first one is TinyFish MCP. I like it a lot because it lets Claude browse the web directly, fetch pages, do research, and return structured results instead of just a static answer. Lately I have been using it to collect AI news for this weekly, like pulling the most popular Hacker News items from the past few hours and turning them into a clean summary list. It saves a lot of time.<br>\nThe second is GitHub MCP. It makes everyday things like reading commits, tracing changes, and understanding a repository much smoother, without constantly switching between tools.<br>\nThe third is Figma MCP. You can inspect design files, check layout and spacing, and pull UI details directly into the conversation, which is very handy when you are aligning implementation with design.<br>\nThe fourth is Excalidraw MCP. This one is better for thinking through things, especially flows and system structure. When words are not enough, drawing it out is much faster.<br>\nThe last three are probably already familiar to many people. I also recorded a short video showing how TinyFish works in a real workflow.<br>\n<video width=\"800px\" preload=\"\" loop autoplay controls muted><source src=\"https://cdn.fliggy.com/pic/TinyFish28.mp4\" type=\"video/mp4\"></video></p>\n<p><strong>I have really been enjoying the gstack skill lately</strong><br>\n<a href=\"https://github.com/garrytan/gstack\">https://github.com/garrytan/gstack</a><br>\nI highly recommend trying it. It feels like having a solid team of specialists around you, covering roles like CEO, tech lead, design, QA, and security, all helping you reason through the code development process.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/5q/Hh8cHR.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/5q/Hh8cHR.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/5q/Hh8cHR.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1920\" style=\"aspect-ratio: 1.0000;\" width=\"800\"></p>\n<h2 id=\"random-looks\">Random Looks</h2>\n<p><strong>Chinese Painting from the Yuan to the Qing is an excellent book</strong><br>\n<a href=\"https://book.douban.com/subject/37156716/\">https://book.douban.com/subject/37156716/</a><br>\nThis book is really good. It is dense in the best way, and Wu Hung’s scholarship is seriously impressive. If you want an art history book to get started with, this is a good one.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/s9/suseYb.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/s9/suseYb.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/s9/suseYb.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"500\"></p>\n<p><strong>A drone clip from the Yangjiapai hike</strong><br>\nThis is exactly where I lost my drone, for your amusement. “Dear DJI customer, we are very sorry to hear that your aircraft has gone missing. Please rest assured that DJI will do its best to assist you. Your flyaway report has been successfully accepted. You may first refer to the Find My Drone guide and try to locate the aircraft.”<br>\n<video width=\"800px\" preload=\"\" loop autoplay controls muted><source src=\"https://cdn.fliggy.com/pic/177467994477812.mp4\" type=\"video/mp4\"></video></p>\n<h2 id=\"random-thoughts\">Random Thoughts</h2>\n<p><strong>Kill the Manual Programmer</strong></p>\n<p><img src=\"https://gw.alipayobjects.com/zos/k/zc/sha.png\" alt=\"\"></p>\n<p>The title is adapted from a song I loved 12 years ago, “Kill That Shijiazhuang Man” by Omnipotent Youth Society. The scene they wrote about feels a little similar to what we are looking at now.</p>\n<p>I have not taken a bus in years. Last time I went to Prince Bay, the scenic area had traffic restrictions, so I had to park outside and take the free shuttle in.</p>\n<p>In the seat ahead of me, a little girl kept swiping through those AI-generated short videos. The visuals were rough, the content felt fake, and when she moved to the next one, it was somehow more of the same. She was completely absorbed. The strangest part was that every video had a huge number of likes. Watching that made me a little sad. I kept thinking, when my own kid grows up, will they also be surrounded by this kind of low-grade AI-made content from the start, to the point that it becomes hard to even find something genuinely beautiful?</p>\n<p>Once AI showed up, producing things suddenly became much easier. Making content got easier, and making software got easier too. In the past, if you wanted to build something, you had to spend real time on it, go back and forth, solve actual problems, and only then dare to ship it. Now a lot of those steps have been flattened. Writing something is easy, building a product is easy, you buy some tokens, ask AI, stitch together a workflow, throw on an interface, and pretty quickly you have something that runs.</p>\n<p>Today I also saw someone say they could recreate a Claude Code in two days. I both believe that and do not. In voice AI alone, dozens of products have appeared all at once, and a lot of them are actually pretty decent. Even Doubao is competing in that space now. I have also seen quite a few Claude Code wrapper clients lately, and honestly some of them are very usable.</p>\n<p>For programmers, a lot of things that used to require professional skill, a learning curve, and years of accumulation are quickly turning into abundant supply. In the future, the least scarce thing may be products that look like products. They work, they run, they look fine. You can only try to do them a bit faster, a bit better, or wrap one more layer around them and maybe there is still some value there. But that value will get matched by AI more and more easily.</p>\n<p>Not long ago I was having dinner with a colleague and we got onto an interesting topic. I told him that over the past year I have really enjoyed listening to cassette tapes, and that every song somehow feels more durable and more beautiful. Why did cassettes, CDs, TV shows, and even many old books often feel higher quality overall? The reason is actually simple: production and distribution used to be heavy. If you wanted to release an album, you first had to make the work good enough, and only then would it make sense to produce tens of thousands of tapes. Otherwise they would not sell, and the company probably would not back your next release. Publishing a book was similar. You could not just finish it casually and push it in front of a huge audience right away. Back then, the act of making something was already a filter.</p>\n<p>Now you can upload a song to a platform and that is it. You can post an article to a public account and that is it. Software is becoming similar after AI, and in some cases AI will even upload the code to GitHub for you, a place many people used to find intimidating, and even generate the CI that publishes the release for you. A lot of thresholds that once required long-term accumulation to cross have been filled in by tools, and so the world slowly gets flooded with things that are all kind of the same and kind of usable.</p>\n<p>The trouble is not just that quality drops. Over time, people’s sense of quality drops with it. The more rough things there are, and the wider they spread, plus the pressure to make money, the more our judgment gets pulled off course. Eventually what people get used to is fast stimulation, fast feedback, and fast satisfaction.</p>\n<p>When I think back to that little girl watching videos, that is the part that feels uncomfortable. She was not just watching a few rough clips. She may be growing up inside a world filled with lower-cost, higher-frequency, emptier things.</p>\n<p>Code is clearly entering the same phase now. In the future, ordinary beginners will be able to use AI to build products that satisfy their own needs. Product managers will be able to make things that used to require engineers working alongside them. So what exactly is left for real engineers to do? That is something we need to think about seriously.</p>\n<p>I have also heard that a lot of bosses at big internet companies are now staying up day and night vibe coding. In a single afternoon they can build a demo they personally consider usable, and some of them are deeply hooked on it. This could have a major effect on people doing frontline work. Once the boss gets a few flows working in code, the natural conclusion becomes: writing software is not that big a deal after all. Things that used to take six months, can they now be done in one? Things that used to need 100 people, can they now be done with 10? It is hard not to think about where that leads.</p>\n<p>There is still room for engineers to keep building products that are more usable and more efficient. But if we stop at that layer, the field will only get more crowded. More people can enter, and more people can ship something that looks convincing. The competition will get brutal.</p>\n<p>I suspect the real way forward is something closer to how singers and actors responded. Yes, they still release albums, but they also make concerts, stage productions, and live performances. Those are not things you can casually replace by putting a wrapper around something. They require organization, density of detail, and a sense of wholeness that only comes after long polishing, and they face the world directly.</p>\n<p>Looking ahead, software may move in that direction too. Everyone will be able to vibe code a product. Everyone will be able to make something that is more or less usable. What will really open up the gap later is still system capability, engineering depth, understanding of real scenarios, and all the things people do not notice at first glance but that ultimately determine whether a product has real weight.</p>\n<p>The faster the outside world moves, the less we can afford to lower our own standards for software along with it. Low-level supply will definitely keep increasing, but that does not mean we also have to become rough. The things that survive are usually the ones that feel smooth, comfortable, restrained, almost bug-free, the kind where you can tell the maker treated the work seriously.</p>\n<p>I am also thinking through my own next step. I still want to keep building open-source software that is useful, approachable, language-independent, and can earn tens of thousands of stars. I also want to keep playing with low-level rendering, terminals, editors, Rust, and related directions. Before AI, all of that felt very rewarding. After AI, though, once you have an idea, so much suddenly becomes easy that the meaning of it can start to feel less obvious.</p>\n<p>Maybe the next thing for me lives in a different dimension, a hardware-software product, or the kind of platform product that used to require thousands of people at a big company, or maybe something that breaks out of the current frame entirely. What exactly it is still needs more thought.</p>\n<p>Some of my products and content have already been slowly moving toward English, toward a bigger world. When everything here starts to feel more similar and more crowded, going outward may be one answer. A bigger market, more varied users, and higher expectations make it impossible to stay at the level of wrappers, speed, and timing alone. That pressure forces you to build something more solid, and it also forces you to think again about what you actually want to make.</p>\n<p>AI has made many things easier. But precisely because things are easier now, it has become harder to figure out what is truly worth doing and worth trading years of your life for. What to build may matter more than how quickly you can build something.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"261. miss spring","link":"https://weekly.tw93.fun/en/posts/261/","pubDate":"Mon, 23 Mar 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/58/261.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/58/261.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/58/261.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"4000\" data-pswp-height=\"2667\" style=\"aspect-ratio: 1.4998;\" width=\"800\">\n<p><small>The cover photo was taken looking up at the spring sky. Spring in Hangzhou is truly beautiful. I kind of hope summer doesn’t come too quickly—weather like this is incredibly comfortable.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech seen every week, published here after filtering. If you find it useful, feel free to subscribe to this weekly newsletter for update notifications.</strong></p>\n</blockquote>\n<h2 id=\"wrote-a-long-article\">Wrote a Long Article</h2>\n<p><strong>The Agent You Don’t Know: Principles, Architecture, and Engineering Practices</strong><br>\n<a href=\"https://tw93.fun/en/2026-03-21/agent.html\">https://tw93.fun/en/2026-03-21/agent.html</a><br>\nAfter writing “The Claude Code You Don’t Know: Architecture, Governance, and Engineering Practices,” I realized my understanding of the underlying Agent mechanics wasn’t deep enough. Plus, our team has accumulated quite a bit of business implementation experience in the Agent direction, yet we’ve always lacked a systematic summary. So, I went through the materials, open-source implementations, and the code I wrote myself again, ultimately organizing it all into this article.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/7q/agent.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/7q/agent.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/7q/agent.png\" loading=\"lazy\" width=\"800\"></p>\n<h2 id=\"product-updates\">Product Updates</h2>\n<p><strong>Mole Released Version 1.31</strong><br>\n<a href=\"https://github.com/tw93/mole\">https://github.com/tw93/mole</a><br>\nMole released version v1.31.0 over the weekend, codenamed Makima. It features faster performance and more accurate system status reporting. Huge thanks to all the contributors! I also made a video so everyone can feel the power of open source.<br>\n<video width=\"800px\" preload=\"\" loop autoplay controls muted><source src=\"https://cdn.fliggy.com/pic/mole04.mp4\" type=\"video/mp4\"></video></p>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>Get Inspired by These Projects Built with Claude</strong><br>\n<a href=\"https://claude.com/resources/use-cases\">https://claude.com/resources/use-cases</a><br>\nDefinitely worth a look. It covers various use cases in daily work, from research, writing, programming, to analysis. The content is much more in-depth than I expected.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/m1/HavtgM.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/m1/HavtgM.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/m1/HavtgM.png\" loading=\"lazy\" data-pswp-width=\"1200\" data-pswp-height=\"780\" style=\"aspect-ratio: 1.5385;\" width=\"800\"></p>\n<p><strong>Highly Recommend This Service from Jina in the Agent Era</strong><br>\n<a href=\"https://r.jina.ai\">https://r.jina.ai</a><br>\nSometimes you need an AI to read the content of a live website, but often it can’t fetch it due to various reasons. You can try this service: just append the URL you need to fetch after it, and it will convert it into nicely formatted markdown for you, making it super convenient for AI to use.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/jw/ydmbnn.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/jw/ydmbnn.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/jw/ydmbnn.png\" loading=\"lazy\" data-pswp-width=\"4096\" data-pswp-height=\"2362\" style=\"aspect-ratio: 1.7341;\" width=\"800\"></p>\n<p><strong>Pi, This Minimalist Agent Framework, is Worth Getting to Know</strong><br>\n<a href=\"https://github.com/badlogic/pi-mono\">https://github.com/badlogic/pi-mono</a><br>\nIt’s very small. The openclaw project was previously implemented based on this framework. It serves as a great entry point for understanding Agents.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/1q/sMGuUv.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/1q/sMGuUv.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/1q/sMGuUv.png\" loading=\"lazy\" data-pswp-width=\"1200\" data-pswp-height=\"900\" style=\"aspect-ratio: 1.3333;\" width=\"800\"></p>\n<h2 id=\"random-thoughts\">Random Thoughts</h2>\n<p><strong>Try Buying Pre-made Ice Cubes This Summer</strong><br>\nI had been debating whether to buy an ice maker, but since I’m the only one at home who likes drinking ice water, I felt the usage rate would be low and it would just take up space. Freezing ice cubes myself was also inconvenient—I’d usually realize I forgot to make them right when I wanted a drink. I found a great solution: just buy some pre-made ice cubes and keep them in the freezer. When you need them, just take them out. You can even use them directly to make Americanos in the summer. The cost-effectiveness is super high.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/ob/IMG_9934.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/ob/IMG_9934.JPG\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/ob/IMG_9934.JPG\" loading=\"lazy\" data-pswp-width=\"5712\" data-pswp-height=\"4284\" style=\"aspect-ratio: 1.3333;\" width=\"800\"></p>\n<p><strong>Got a Singapore HSBC Card</strong><br>\nIf you already have HSBC accounts in mainland China and Hong Kong, you can ask your relationship manager to help you apply for a Singapore one. Although it kind of feels like a supermarket loyalty card. The registered mail didn’t arrive for three months; after a phone call, they remade it and it arrived via express delivery in a week.<br>\n<img src=\"https://cdn.fliggy.com/pic/KeRlkk25.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://cdn.fliggy.com/pic/KeRlkk25.png\" data-pswp-src=\"https://cdn.fliggy.com/pic/KeRlkk25.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"400\"></p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"260. Prince Bay","link":"https://weekly.tw93.fun/en/posts/260/","pubDate":"Mon, 16 Mar 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/eu/260.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/eu/260.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/eu/260.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"4000\" data-pswp-height=\"2667\" style=\"aspect-ratio: 1.4998;\" width=\"800\">\n<p><small>Cover photo taken on Saturday when I took the kid to Prince Bay Park at West Lake. Originally wanted to see the tulips, but there were way too many people. I wouldn’t recommend going to join the crowds.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"wrote-a-long-article\">Wrote a Long Article</h2>\n<p><strong>The Claude Code You Don’t Know: Architecture, Governance, and Engineering Practices</strong><br>\n<a href=\"https://tw93.fun/en/2026-03-12/claude.html\">https://tw93.fun/en/2026-03-12/claude.html</a><br>\nRevolves around Context Management, Skills, Hooks, Subagents, Prompt Caching, and CLAUDE.md design. It focuses on how to make the collaboration process more stable and controllable, sharing best practices from an engineer’s technical perspective. Welcome to exchange ideas.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/g7/SCR-20260311-rtkf%252520copy.jpeg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/g7/SCR-20260311-rtkf%252520copy.jpeg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/g7/SCR-20260311-rtkf%252520copy.jpeg\" loading=\"lazy\" data-pswp-width=\"2750\" data-pswp-height=\"1108\" style=\"aspect-ratio: 2.4819;\" width=\"800\"></p>\n<h2 id=\"product-updates\">Product Updates</h2>\n<p><strong>Mole has released version 1.30</strong><br>\n<a href=\"https://github.com/tw93/mole\">https://github.com/tw93/mole</a><br>\nI started writing Mole last November, and surprisingly, 30 versions have been released up to today. This update includes:</p>\n<ol>\n<li>Strengthened orphan app data cleanup strategy. General orphan cleanup now uses a 30-day resting window.</li>\n<li>Optimized Application Support and project cache scanning logic in large directory scenarios, reducing the risk of stuttering, and converging the scanning scope to a safer root path.</li>\n<li>Strengthened LaunchServices refresh fallback logic, stabilized Homebrew uninstall and update paths, and reduced unnecessary sudo behaviors.\n<img src=\"https://gw.alipayobjects.com/zos/k/mi/C4Lrgz.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/mi/C4Lrgz.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/mi/C4Lrgz.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1080\" style=\"aspect-ratio: 1.7778;\" width=\"800\">\n</li>\n</ol>\n<p><strong>Kaku released version 0.7</strong><br>\n<a href=\"https://github.com/tw93/Kaku\">https://github.com/tw93/Kaku</a><br>\nI really like the transparent frosted effect in this release, you can give it a try. Updates are as follows:</p>\n<ol>\n<li>Kaku will now automatically switch between dark and light modes along with macOS, and has optimized transparency rendering and Yazi theme synchronization experience.</li>\n<li>Added closing confirmation for tabs and panes, reworked the close overlay style, and added custom rounded scrollbars. Try <code>kaku config</code>.</li>\n<li>kaku ai now supports Antigravity model configuration, quota tracking, and background loading.\n<img src=\"https://gw.alipayobjects.com/zos/k/dc/YitxG7.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/dc/YitxG7.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/dc/YitxG7.png\" loading=\"lazy\" data-pswp-width=\"4096\" data-pswp-height=\"2356\" style=\"aspect-ratio: 1.7385;\" width=\"800\">\n</li>\n</ol>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>Learning the principles of Claude Code-like systems</strong><br>\n<a href=\"https://learn.shareai.run/en/\">https://learn.shareai.run/en/</a><br>\nIt will guide you step-by-step from scratch to build a minimalist Agent similar to Claude Code, and explain each mechanism in detail. Worth a look.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/vx/fYMKXY.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/vx/fYMKXY.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/vx/fYMKXY.png\" loading=\"lazy\" data-pswp-width=\"3384\" data-pswp-height=\"2302\" style=\"aspect-ratio: 1.4700;\" width=\"800\"></p>\n<p><strong>RentAHuman: AI hiring humans to work</strong><br>\n<a href=\"http://RentAHuman.ai\">http://RentAHuman.ai</a><br>\nWhen an AI Agent encounters a task that cannot be completed online, it can post the job online and hire a real human to complete the task. Haha, quite interesting.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/s3/RXXfRO.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/s3/RXXfRO.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/s3/RXXfRO.png\" loading=\"lazy\" data-pswp-width=\"3680\" data-pswp-height=\"2392\" style=\"aspect-ratio: 1.5385;\" width=\"800\"></p>\n<p><strong>A fantastic interactive MicroGPT demo</strong><br>\n<a href=\"https://growingswe.com/blog/microgpt\">https://growingswe.com/blog/microgpt</a><br>\nThis is a learning website based on Andrej Karpathy’s GPT implemented in about 200 lines of Python code, explaining how language models work in a visual way. Worth checking out.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/6o/Xrmn73.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/6o/Xrmn73.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/6o/Xrmn73.png\" loading=\"lazy\" data-pswp-width=\"3680\" data-pswp-height=\"2392\" style=\"aspect-ratio: 1.5385;\" width=\"800\"></p>\n<p><strong>A public OpenClaw exposure monitoring site</strong><br>\n<a href=\"https://openclaw.allegro.earth\">https://openclaw.allegro.earth</a><br>\nLists OpenClaw instances accessible over the network. In many cases, you can click into these instances and directly view what is running inside. Actually, a lot of people who don’t understand the technology are installing OpenClaw. Many things are very dangerous, and surprisingly, many belong to Alibaba, which is scary.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/ph/fwcGXW.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/ph/fwcGXW.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/ph/fwcGXW.png\" loading=\"lazy\" data-pswp-width=\"3680\" data-pswp-height=\"2392\" style=\"aspect-ratio: 1.5385;\" width=\"800\"></p>\n<h2 id=\"random-looks\">Random Looks</h2>\n<p><strong>My CodeX configuration, for your reference</strong><br>\nModel: Fast GPT-5.4 High<br>\nPersonality: Pragmatic.<br>\nCustom Instructions:<br>\nAct like a high-performing senior engineer. Be concise, direct, and execution-focused.<br>\nPrefer simple, maintainable, production-friendly solutions. Write low-complexity code that is easy to read, debug, and modify.<br>\nDo not overengineer or add heavy abstractions, extra layers, or large dependencies for small features.<br>\nKeep APIs small, behavior explicit, and naming clear. Avoid cleverness unless it clearly improves the result.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/1k/kUaT0p.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/1k/kUaT0p.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/1k/kUaT0p.png\" loading=\"lazy\" data-pswp-width=\"2952\" data-pswp-height=\"1898\" style=\"aspect-ratio: 1.5553;\" width=\"800\"></p>\n<p><strong>Cooked 4 dishes on Sunday</strong></p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/gg/IMG_9948.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/gg/IMG_9948.JPG\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/gg/IMG_9948.JPG\" loading=\"lazy\" data-pswp-width=\"5712\" data-pswp-height=\"4284\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/8e/IMG_9949.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/8e/IMG_9949.JPG\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/8e/IMG_9949.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n    </tr>\n    <tr>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/97/IMG_9950.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/97/IMG_9950.JPG\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/97/IMG_9950.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/p2/IMG_9951.JPG?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/p2/IMG_9951.JPG\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/p2/IMG_9951.JPG\" loading=\"lazy\" data-pswp-width=\"4032\" data-pswp-height=\"3024\" style=\"aspect-ratio: 1.3333;\" width=\"600\">\n        </td>\n    </tr>\n</tbody></table><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"},{"title":"259. Jingshan from Above","link":"https://weekly.tw93.fun/en/posts/259/","pubDate":"Mon, 09 Mar 2026 00:00:00 GMT","description":"<img src=\"https://gw.alipayobjects.com/zos/k/sj/259.jpg?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/sj/259.jpg\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/sj/259.jpg\" loading=\"eager\" fetchpriority=\"high\" data-pswp-width=\"3608\" data-pswp-height=\"2030\" style=\"aspect-ratio: 1.7773;\" width=\"800\">\n<p><small>Cover photo taken during a weekend trip to Jingshan Flower Sea with my drone. Currently only rapeseed flowers are blooming - the other flowers haven’t really opened yet. Flew the drone to maximum altitude for some photos and spotted quite a few nice views.</small></p>\n<blockquote>\n<p><strong>Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications</strong></p>\n</blockquote>\n<h2 id=\"trending-tools\">Trending Tools</h2>\n<p><strong>MiaoYan recently got updated with CLI support</strong><br>\n<a href=\"https://github.com/tw93/miaoyan\">https://github.com/tw93/miaoyan</a></p>\n<ol>\n<li>CLI support via <code>miao</code> command - list all notes, search, create new ones, and cat content from the terminal. Very practical for AI workflows.</li>\n<li>Apple notarization complete: No more “App is damaged” warnings or having to click “Open Anyway” in System Settings!</li>\n<li>Preview stability upgrade: Fixed occasional blank preview issues and enhanced recovery capabilities after WebContent process crashes.</li>\n<li>Editing experience optimization: Fixed input method issues in split-column mode, resolved system shortcut conflicts, and eliminated highlight flickering when switching notes.\n<img src=\"https://gw.alipayobjects.com/zos/k/si/ZSMT9v.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/si/ZSMT9v.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/si/ZSMT9v.png\" loading=\"lazy\" data-pswp-width=\"3108\" data-pswp-height=\"1980\" style=\"aspect-ratio: 1.5697;\" width=\"800\">\n</li>\n</ol>\n<p><strong>Pake released version 3.10</strong><br>\n<a href=\"https://github.com/tw93/Pake\">https://github.com/tw93/Pake</a></p>\n<ol>\n<li>Multi-window support: New <code>--multi-window</code> parameter allows opening multiple windows in the same App instance. When enabled, macOS File menu (Cmd+N) and system tray menu will both show “New Window” entry. Restarting the App opens new windows instead of focusing existing ones.</li>\n<li>Internal link regex control: New <code>--internal-url-regex</code> parameter supports precise control over which URLs are treated as internal links via regex, as an alternative to the default same-domain judgment. Falls back to default logic on invalid regex.</li>\n<li>Windows ICO icon fix: Reordered multi-resolution ICO files to prioritize 256px icons, improving App icon display quality on Windows.</li>\n<li>DMG background image fix: Restored Retina metadata for macOS DMG background images and adjusted dimensions, fixing background display issues in CI builds.\n<img src=\"https://raw.githubusercontent.com/tw93/static/main/pake/pake1.gif\" width=\"800\">\n</li>\n</ol>\n<p><strong>nanobot: A lighter OpenClaw form factor perfect for personal computers</strong><br>\n<a href=\"https://github.com/HKUDS/nanobot\">https://github.com/HKUDS/nanobot</a><br>\nI currently have two nanobots running locally - one focused on code that helps me review issues, organize thoughts, and push technical solutions forward; another for life stuff handling daily tasks. Basically replaced my ChatBot habit from six months ago. Plus a cron job that keeps watching - if the service goes down it automatically restarts, and I use Amphetamine to keep my home computer always online. After running for a while, it becomes a stable part of your environment that doesn’t require you to consciously open, maintain, or fuss with it.</p>\n<p>Often when you’re halfway through coding or when you’re out and can’t conveniently open your computer, you can casually toss tasks to it to work on first. When you come back later, some of the prep work is already done. This experience is very practical and feels natural for engineers who prefer lightweight, simple, self-controllable solutions. If you don’t want to tinker, I’d actually recommend using the installer version - works out of the box. For those who want to add custom features like me, you can clone it locally and have nanobot optimize its own code and iterate on itself. Recently added quite a few fun features.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/gr/ci8Zk6.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/gr/ci8Zk6.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/gr/ci8Zk6.png\" loading=\"lazy\" data-pswp-width=\"1920\" data-pswp-height=\"1920\" style=\"aspect-ratio: 1.0000;\" width=\"800\"></p>\n<p><strong>Amphetamine keeps your Mac awake</strong><br>\n<a href=\"https://apps.apple.com/us/app/amphetamine/id937984704\">https://apps.apple.com/us/app/amphetamine/id937984704</a><br>\nWhen running things like OpenClaw or nanobot, you really don’t want the screen to sleep or even want it to keep running with the lid closed. Found this software - free and works great. Perfect for when you’re using a home Mac but want it to stay on with the screen off.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/8k/B4NycU.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/8k/B4NycU.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/8k/B4NycU.png\" loading=\"lazy\" data-pswp-width=\"2584\" data-pswp-height=\"1672\" style=\"aspect-ratio: 1.5455;\" width=\"800\"></p>\n<p><strong>Maple browser bookmark tool latest update</strong><br>\n<a href=\"https://github.com/tw93/Maple\">https://github.com/tw93/Maple</a></p>\n<ol>\n<li>New tab opening setting: Added “Open in new tab” option in settings, with hover tooltips disabled by default for a cleaner interface.</li>\n<li>Multi-language support: Optimized settings page styling and added multi-language support for better accessibility.</li>\n<li>File protocol support: Fixed issues with opening file protocol bookmarks (file://).</li>\n<li>Bug fixes: Fixed Bing date issues, sorting problems, and various UX improvements.\n<img src=\"https://raw.githubusercontent.com/tw93/static/master/pic/maple1.gif\" width=\"800\">\n</li>\n</ol>\n<p><strong>Discovered a very modern VSCode theme: Islands Dark</strong><br>\n<a href=\"https://github.com/bwya77/vscode-dark-islands\">https://github.com/bwya77/vscode-dark-islands</a><br>\nHas that new Apple system feel with glass arc effects, rounded corners - very modern looking, though you might not get used to it.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/iz/JgqaH9.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/iz/JgqaH9.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/iz/JgqaH9.png\" loading=\"lazy\" data-pswp-width=\"1802\" data-pswp-height=\"1389\" style=\"aspect-ratio: 1.2973;\" width=\"800\"></p>\n<p><strong>Readout: Visualize your Claude Code projects</strong><br>\n<a href=\"https://readout.org\">https://readout.org</a><br>\nVisualizes your Claude Code environment in real-time. Shows AI, sessions, repos, costs, MCPs, ports, and more. Provides instant global search and complete session replay with timeline scrubbing. Runs locally, no account needed. Looking forward to its future development.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/r7/GC1Jxv.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/r7/GC1Jxv.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/r7/GC1Jxv.png\" loading=\"lazy\" data-pswp-width=\"2798\" data-pswp-height=\"1792\" style=\"aspect-ratio: 1.5614;\" width=\"800\"></p>\n<h2 id=\"random-finds\">Random Finds</h2>\n<p><strong>Gaidihu floor drain core is excellent, worth trying</strong><br>\nAfter buying the Gaidihu floor drain core that topped my “best purchases of the year” list and testing one, I bought another and replaced all the bathroom floor drains in my house. Very smooth drainage without clogging, easy to install. Highly recommended.<br>\n<img src=\"https://gw.alipayobjects.com/zos/k/ml/S8ecc2.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/ml/S8ecc2.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/ml/S8ecc2.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"500\"></p>\n<p><strong>Haven’t eaten coconut meat in years, quite interesting</strong><br>\nLearned how to open a coconut without a knife: First peel off the top, then you’ll see 3 faces. Gently press to find the spot that’s noticeably softer, then look for the hole there.</p>\n<p>As for cracking the shell open - use another coconut. Hold one in each hand and smash the three raised ridges against each other. Hit hard a few times and one will crack, then break it open. The coconut meat is very refreshing!</p>\n<table style=\"margin-top:-20px\">\n    <tbody><tr>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/fh/7ufDAD.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/fh/7ufDAD.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/fh/7ufDAD.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"600\">\n        </td>\n        <td width=\"50%\">\n           <img src=\"https://gw.alipayobjects.com/zos/k/8r/3XWXW6.png?x-oss-process=image/auto-orient,1/resize,w_2000/format,webp\" data-lightense-src=\"https://gw.alipayobjects.com/zos/k/8r/3XWXW6.png\" data-pswp-src=\"https://gw.alipayobjects.com/zos/k/8r/3XWXW6.png\" loading=\"lazy\" data-pswp-width=\"1536\" data-pswp-height=\"2048\" style=\"aspect-ratio: 0.7500;\" width=\"600\">\n        </td>\n    </tr>\n</tbody></table>\n<h2 id=\"random-thoughts\">Random Thoughts</h2>\n<p><img src=\"https://gw.alipayobjects.com/zos/k/2v/4CGWQA.png\" alt=\"\"></p>\n<p>Last Friday I saw Tencent Tower installing OpenClaw company-wide. Quite thought-provoking - felt a bit like “The Great OpenClaw Leap Forward”.</p>\n<p>Recently many big tech companies have been frantically pushing frontline non-technical employees to install OpenClaw. There’s even a real 500 RMB on-site installation service online. Everyone’s desperately searching for use cases, demanding implementation, trying to prove this thing is too important to miss. The whole process gives me a strong sense of cyber-tech folding.</p>\n<p>Saw an interesting quote: “People who can’t even install OpenClaw, how would they use it?” Taking it a step further - if you haven’t even established basic usage, yet you’re expected to first create complete scenarios, deliver results, and prove value - that’s even harder.</p>\n<p>There are two things叠加 (stacked) behind this. One is illusion: many bosses have watched too many WeChat video clips, been repeatedly bombarded by exaggerated narratives and universal case studies, and really start hallucinating that this thing can do anything, connect anywhere, everyone should install it, and installing it should immediately produce output. The other is anxiety: everyone fears missing this wave, so they start using administrative actions to push adoption, using collective anxiety to replace real demand.</p>\n<p>So you see a strong contrast. On one side, slogans are huge - as if everyone must enter the AI-native era. On the other side, many people can’t even clearly articulate what things are worth handing over to it. This contrast will only grow stronger and increasingly absurd.</p>\n<p>Because tools never generate value through installation. Tools only generate value through task density, clear processes, and visible results. Without continuous tasks, without SOPs, without conditions for online completion, without clear inputs and outputs - even the strongest thing sitting there is just an icon. It won’t automatically grow scenarios just because it’s installed.</p>\n<p>So I’ve always felt OpenClaw isn’t for everyone.</p>\n<p>It suits commanders, solo entrepreneurs, and people who constantly have things they want to push forward, can break work into steps, and can complete many things online. Especially if you’ve used skills and tools, understand AI’s capability boundaries, can string processes together, build scenarios, and complete things step by step - then it’s very suitable.</p>\n<p>For me, this scenario comes naturally. Especially when there’s lots to push forward but I’m not home or at the office - out with just my phone or can’t conveniently open my computer - I’ll have my two nanobots check my open source product issues, produce technical solutions, then have another review and submit. All in one go. Lets me elegantly get things done during my morning commute. Really convenient.</p>\n<p>But for someone who normally has no work to complete outside, or who doesn’t even want to open their computer when they get home - how could you force scenarios to exist? Eating well and having fun is comfortable enough. No scenario means no scenario, really no need for anxiety.</p>\n<p>I think what’s most easily amplified in this wave isn’t capability gap - it’s scenario gap. People with scenarios will use it more smoothly, run faster, eventually feeling like they have multiple selves. People without scenarios will easily spin around in concepts, tutorials, case studies, and videos, ending up with nothing changed except having installed more software.</p>\n<p>Many people’s biggest problem today isn’t not having installed OpenClaw - it’s treating having installed a tool as having entered the AI era. The real watershed has always been in task understanding, process design, and result judgment. Do you actually have continuous problems to solve? Can you break problems down and hand them to the system? Can you judge whether results are correct? These determine whether you can truly extract value from AI.</p>\n<p>So no need for anxiety. Installing OpenClaw when you have no real use case doesn’t mean much.</p>\n<p>If you really want to experience where this generation of AI is strong, better spend $20 on Claude Code, or more interestingly get a ChatGPT subscription, use GPT 5.4 to handle something you truly find difficult - produce a solution, push execution forward, experience this simple, efficient, problem-solving process once. That’s way better than installing OpenClaw.</p>\n<p>OpenClaw suits people with scenarios, suits commanders, suits solo entrepreneurs, suits those who can SOP-ize, online-ize, and complete processes step by step. It’s certainly powerful, but it proves its power through completing work for you, not through being installed.</p>\n<p>What many people are installing today is OpenClaw. What’s more important to figure out first: What problem do I actually have that’s worth solving with AI?</p>\n<p>That question may be more important than installing anything.</p><hr style=\"border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;\" />\n    <p style=\"text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\">\n      <a\n        href=\"https://cats.tw93.fun?name=潮流周刊\"\n        style=\"\n          display:inline-block;\n          padding:6px 18px;\n          border-radius:999px;\n          background:#222;\n          color:#fff;\n          font-size:13px;\n          text-decoration:none;\n        \"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >Buy me a coke 🥤</a>\n    </p>"}]}