41554 blogs · [ { "id": "01a0bbaa-3a08-730b-a60e-2ff480471f54", "title": "Gemini-Powered Siri Features Delayed", "url": "https://mjtsai.com/blog/2026/02/13/gemini-powered-siri-features-delayed/", "published_at": "2026-02-13T21:57:31+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff4812a0865", "title": "macOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/macos-26-3/", "published_at": "2026-02-12T22:20:37+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff4818e0b5a", "title": "iOS 26.3 and iPadOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/ios-26-3-and-ipados-26-3/", "published_at": "2026-02-12T22:20:21+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff48218704b", "title": "macOS 15.7.4 and macOS 14.8.4", "url": "https://mjtsai.com/blog/2026/02/12/macos-15-7-4-and-macos-14-8-4/", "published_at": "2026-02-12T22:20:05+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff4823a25e0", "title": "watchOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/watchos-26-3/", "published_at": "2026-02-12T22:19:53+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff482f73f07", "title": "audioOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/audioos-26-3/", "published_at": "2026-02-12T22:19:44+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff4839bdf8b", "title": "tvOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/tvos-26-3/", "published_at": "2026-02-12T22:19:41+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff484067b6f", "title": "visionOS 26.3", "url": "https://mjtsai.com/blog/2026/02/12/visionos-26-3/", "published_at": "2026-02-12T22:19:36+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff484f62ef8", "title": "Apple Creator Studio and the App Store", "url": "https://mjtsai.com/blog/2026/02/10/apple-creator-studio-and-the-app-store/", "published_at": "2026-02-10T21:24:43+00:00" }, { "id": "01a0bbaa-3a08-730b-a60e-2ff48569def1", "title": "Apple Creator Studio Icons", "url": "https://mjtsai.com/blog/2026/02/10/apple-creator-studio-icons/", "published_at": "2026-02-10T21:24:33+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd2d0fb72", "title": "Apple Creator Studio Now Shipping", "url": "https://mjtsai.com/blog/2026/02/10/apple-creator-studio-now-shipping/", "published_at": "2026-02-10T21:24:17+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd30bff6b", "title": "Retrocade 1.3", "url": "https://mjtsai.com/blog/2026/02/09/retrocade-1-3/", "published_at": "2026-02-09T19:32:00+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd3664a12", "title": "Apple XNU: Clutch Scheduler", "url": "https://mjtsai.com/blog/2026/02/09/apple-xnu-clutch-scheduler/", "published_at": "2026-02-09T19:31:49+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd436445e", "title": "NetNewsWire 7", "url": "https://mjtsai.com/blog/2026/02/09/netnewswire-7/", "published_at": "2026-02-09T19:31:39+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd4ebc84d", "title": "Apple News Scam Ads", "url": "https://mjtsai.com/blog/2026/02/06/apple-news-scam-ads/", "published_at": "2026-02-06T21:34:40+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd5639c1f", "title": "LLMs and Software Development Roundup", "url": "https://mjtsai.com/blog/2026/02/06/llms-and-software-development-roundup/", "published_at": "2026-02-06T21:34:35+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd5c5ca49", "title": "AEQuery", "url": "https://mjtsai.com/blog/2026/02/05/aequery/", "published_at": "2026-02-05T19:17:58+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd5f03f77", "title": "Time Machine in Tahoe", "url": "https://mjtsai.com/blog/2026/02/05/time-machine-in-tahoe/", "published_at": "2026-02-05T19:17:53+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd60a8a5f", "title": "Accessing the Unified System Log From a Standard User Account", "url": "https://mjtsai.com/blog/2026/02/05/accessing-the-unified-system-log-from-a-standard-user-account/", "published_at": "2026-02-05T19:17:47+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd65d23ad", "title": "Tahoe SwiftUI Table Bugs", "url": "https://mjtsai.com/blog/2026/02/05/tahoe-swiftui-table-bugs/", "published_at": "2026-02-05T19:17:40+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd71a5a97", "title": "Xcode 26.3", "url": "https://mjtsai.com/blog/2026/02/04/xcode-26-3/", "published_at": "2026-02-04T22:33:05+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd7ccc85d", "title": "Testing Tip: Always Show Scrollbars", "url": "https://mjtsai.com/blog/2026/02/04/testing-tip-always-show-scrollbars/", "published_at": "2026-02-04T22:32:57+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd8906e20", "title": "SuperDuper 3.12", "url": "https://mjtsai.com/blog/2026/02/04/superduper-3-12/", "published_at": "2026-02-04T22:32:41+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd94048ef", "title": "Tahoe NSTableView Scrolling Bug", "url": "https://mjtsai.com/blog/2026/02/03/tahoe-nstableview-scrolling-bug/", "published_at": "2026-02-03T19:05:49+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd98041e8", "title": "Apple Platform Security Guide (January 2026)", "url": "https://mjtsai.com/blog/2026/02/03/apple-platform-security-guide-january-2026/", "published_at": "2026-02-03T19:05:40+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bd9cd7816", "title": "Sinofsky on Cook and Forstall", "url": "https://mjtsai.com/blog/2026/02/03/sinofsky-on-cook-and-forstall/", "published_at": "2026-02-03T19:05:22+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bda6b0546", "title": "The Fallen Apple", "url": "https://mjtsai.com/blog/2026/02/03/the-fallen-apple/", "published_at": "2026-02-03T19:04:22+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdb4b362c", "title": "Codex App", "url": "https://mjtsai.com/blog/2026/02/02/codex-app/", "published_at": "2026-02-02T22:21:44+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdb91d5a8", "title": "DFU Port on the 16-Inch MacBook Pro", "url": "https://mjtsai.com/blog/2026/02/02/dfu-port-on-16-inch-macbook-pro/", "published_at": "2026-02-02T22:21:37+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdb9df53e", "title": "iOS 26.3: Limit Carrier Location Tracking", "url": "https://mjtsai.com/blog/2026/02/02/ios-26-3-limit-carrier-location-tracking/", "published_at": "2026-02-02T22:21:29+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdc55c777", "title": "Apple and Kakao Pay Fined Over Privacy", "url": "https://mjtsai.com/blog/2026/02/02/apple-and-kakao-pay-fined-over-privacy/", "published_at": "2026-02-02T22:21:07+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdc9a6b24", "title": "Apple’s Q1 2026 Results", "url": "https://mjtsai.com/blog/2026/01/30/apples-q1-2026-results/", "published_at": "2026-01-30T22:03:58+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdd51008a", "title": "Apple Acquires Q.ai", "url": "https://mjtsai.com/blog/2026/01/30/apple-acquires-q-ai/", "published_at": "2026-01-30T22:03:58+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bddc07e2f", "title": "Sebastiaan de With Rejoining Apple", "url": "https://mjtsai.com/blog/2026/01/30/sebastiaan-de-with-rejoining-apple/", "published_at": "2026-01-30T22:03:22+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bde5fc359", "title": "Halide Mark III Preview", "url": "https://mjtsai.com/blog/2026/01/30/halide-mark-iii-preview/", "published_at": "2026-01-30T22:03:11+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bde85982a", "title": "OpenClaw (Formerly Moltbot)", "url": "https://mjtsai.com/blog/2026/01/30/openclaw-formerly-moltbot/", "published_at": "2026-01-30T22:02:55+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bde88708f", "title": "Patreon IAP Deadline of November 2026", "url": "https://mjtsai.com/blog/2026/01/30/patreon-iap-deadline-of-november-2026/", "published_at": "2026-01-30T22:02:47+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdf7d74ac", "title": "Fixing iPhone Disconnects From Image Capture", "url": "https://mjtsai.com/blog/2026/01/28/fixing-iphone-disconnects-from-image-capture/", "published_at": "2026-01-28T20:29:04+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bdf9a3624", "title": "Irish Communications (Interception and Lawful Access) Bill", "url": "https://mjtsai.com/blog/2026/01/28/irish-communications-interception-and-lawful-access-bill/", "published_at": "2026-01-28T20:28:59+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be005f2c9", "title": "Cloudflare Matrix Homeserver", "url": "https://mjtsai.com/blog/2026/01/28/cloudflare-matrix-homeserver/", "published_at": "2026-01-28T20:28:47+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be019947e", "title": "Deploying Moltbot (Formerly Clawdbot)", "url": "https://mjtsai.com/blog/2026/01/28/deploying-moltbot-formerly-clawdbot/", "published_at": "2026-01-28T20:28:34+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be0f75014", "title": "iOS 26.2.1", "url": "https://mjtsai.com/blog/2026/01/27/ios-26-2-1/", "published_at": "2026-01-27T19:09:17+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be163b155", "title": "watchOS 26.2.1", "url": "https://mjtsai.com/blog/2026/01/27/watchos-26-2-1/", "published_at": "2026-01-27T19:08:32+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be236ca69", "title": "Swift Pitch: Borrowing Sequence", "url": "https://mjtsai.com/blog/2026/01/27/swift-pitch-borrowing-sequence/", "published_at": "2026-01-27T19:08:05+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be25fa489", "title": "curl Removes Bug Bounties", "url": "https://mjtsai.com/blog/2026/01/27/curl-removes-bug-bounties/", "published_at": "2026-01-27T19:07:49+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be26c651d", "title": "AirTag 2026", "url": "https://mjtsai.com/blog/2026/01/26/airtag-2026/", "published_at": "2026-01-26T20:51:20+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be302bdcc", "title": "UK Age Verification for VPNs", "url": "https://mjtsai.com/blog/2026/01/26/uk-age-verification-for-vpns/", "published_at": "2026-01-26T20:51:10+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be3523bf5", "title": "Microsoft Sharing BitLocker Keys With FBI", "url": "https://mjtsai.com/blog/2026/01/26/microsoft-sharing-bitlocker-keys-with-fbi/", "published_at": "2026-01-26T20:51:04+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be3f65597", "title": "Improving the Usability of C Libraries in Swift", "url": "https://mjtsai.com/blog/2026/01/23/improving-the-usability-of-c-libraries-in-swift/", "published_at": "2026-01-24T00:28:42+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be4050ca0", "title": "TikTok US Joint Venture", "url": "https://mjtsai.com/blog/2026/01/23/tiktok-us-joint-venture/", "published_at": "2026-01-24T00:28:37+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be49b22bf", "title": "A Lament for Aperture", "url": "https://mjtsai.com/blog/2026/01/23/a-lament-for-aperture/", "published_at": "2026-01-24T00:28:30+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be4e5b520", "title": "Bugs Apple Loves", "url": "https://mjtsai.com/blog/2026/01/23/bugs-apple-loves/", "published_at": "2026-01-24T00:28:22+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be4f48ced", "title": "LosslessCut 1.13", "url": "https://mjtsai.com/blog/2026/01/22/losslesscut-1-13/", "published_at": "2026-01-22T21:52:20+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be4ffeec4", "title": "Clawdbot", "url": "https://mjtsai.com/blog/2026/01/22/clawdbot/", "published_at": "2026-01-22T21:52:17+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be51e9977", "title": "Backseat Software", "url": "https://mjtsai.com/blog/2026/01/22/backseat-software/", "published_at": "2026-01-22T21:52:06+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be5fe8fa7", "title": "Lessons From 14 Years at Google", "url": "https://mjtsai.com/blog/2026/01/22/lessons-from-14-years-at-google/", "published_at": "2026-01-22T21:51:59+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be6422122", "title": "Why Walmart Still Doesn’t Support Apple Pay", "url": "https://mjtsai.com/blog/2026/01/21/why-walmart-still-doesnt-support-apple-pay/", "published_at": "2026-01-21T23:24:04+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be67febd6", "title": "AppleEvent Recording Bug", "url": "https://mjtsai.com/blog/2026/01/21/appleevent-recording-bug/", "published_at": "2026-01-21T23:23:50+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be6b674e9", "title": "Notes on Apple’s Nano Texture", "url": "https://mjtsai.com/blog/2026/01/20/notes-on-apples-nano-texture/", "published_at": "2026-01-20T23:09:31+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be6c074fa", "title": "Mac Code Signing at 20", "url": "https://mjtsai.com/blog/2026/01/20/mac-code-signing-at-20/", "published_at": "2026-01-20T23:09:06+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be6fe8b8f", "title": "Blurring App Store Ads and Search Results", "url": "https://mjtsai.com/blog/2026/01/20/blurring-app-store-ads-and-search-results/", "published_at": "2026-01-20T23:08:58+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be7daea84", "title": "My Apple Watch SE 3 Experience", "url": "https://mjtsai.com/blog/2026/01/16/my-apple-watch-se-3-experience/", "published_at": "2026-01-16T20:24:49+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be8ce5695", "title": "Closing Setapp Mobile Marketplace", "url": "https://mjtsai.com/blog/2026/01/15/closing-setapp-mobile-marketplace/", "published_at": "2026-01-15T21:34:09+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be92902a5", "title": "Tahoe Broke Resizing Finder Column View", "url": "https://mjtsai.com/blog/2026/01/15/tahoe-broke-resizing-finder-columns-view/", "published_at": "2026-01-15T21:33:35+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be9a95c9e", "title": "How Markdown Took Over the World", "url": "https://mjtsai.com/blog/2026/01/15/how-markdown-took-over-the-world/", "published_at": "2026-01-15T21:32:27+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9be9f1832d", "title": "Bulk Setting “Catch Up Automatically” in OmniFocus", "url": "https://mjtsai.com/blog/2026/01/14/bulk-setting-catch-up-automatically-in-omnifocus/", "published_at": "2026-01-14T20:47:33+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bea8cfadc", "title": "India May Want iOS’s Source Code", "url": "https://mjtsai.com/blog/2026/01/14/india-may-want-ioss-source-code/", "published_at": "2026-01-14T20:47:15+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9beac5c14a", "title": "Apple Creator Studio", "url": "https://mjtsai.com/blog/2026/01/13/apple-creator-studio/", "published_at": "2026-01-13T20:03:44+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9beb583060", "title": "Gmail Ending Support for Gmailify and POP Fetching", "url": "https://mjtsai.com/blog/2026/01/13/gmail-ending-support-for-gmailify-and-pop/", "published_at": "2026-01-13T20:03:15+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bec44645b", "title": "Apple Services in 2025", "url": "https://mjtsai.com/blog/2026/01/13/apple-services-in-2025/", "published_at": "2026-01-13T20:03:07+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bed09bdea", "title": "UK Child Protections and Messaging Backdoor", "url": "https://mjtsai.com/blog/2026/01/13/uk-child-protections-and-messaging-backdoor/", "published_at": "2026-01-13T20:02:14+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bed33992c", "title": "Apple Picks Gemini", "url": "https://mjtsai.com/blog/2026/01/12/apple-picks-gemini/", "published_at": "2026-01-12T19:35:17+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bed4feefc", "title": "The Struggle of Resizing Windows on Tahoe", "url": "https://mjtsai.com/blog/2026/01/12/the-struggle-of-resizing-windows-on-tahoe/", "published_at": "2026-01-12T19:35:09+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bedf65d6b", "title": "Mac Screenshot Utilities", "url": "https://mjtsai.com/blog/2026/01/12/mac-screenshot-utilities/", "published_at": "2026-01-12T19:34:59+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9beec16d71", "title": "Cloudflare Defies Italy’s Piracy Shield", "url": "https://mjtsai.com/blog/2026/01/12/cloudflare-defies-italys-piracy-shield/", "published_at": "2026-01-12T19:34:35+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9beecf2731", "title": "Slow iOS 26 Adoption", "url": "https://mjtsai.com/blog/2026/01/09/slow-ios-26-adoption/", "published_at": "2026-01-09T22:05:06+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bef9935dc", "title": "Search vs. Primary Action in the iOS 26 Tab Bar", "url": "https://mjtsai.com/blog/2026/01/09/search-vs-primary-action-in-the-ios-26-tab-bar/", "published_at": "2026-01-09T22:04:59+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9befc17771", "title": "Choosing a Driving Route in CarPlay", "url": "https://mjtsai.com/blog/2026/01/09/choosing-a-driving-route-in-carplay/", "published_at": "2026-01-09T22:04:54+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9befd55258", "title": "David Rosen, RIP", "url": "https://mjtsai.com/blog/2026/01/09/david-rosen-rip/", "published_at": "2026-01-09T22:04:41+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9befee6066", "title": "Anker Soundcore Sleep A30 Special Earbuds", "url": "https://mjtsai.com/blog/2026/01/08/anker-soundcore-sleep-a30-earbuds/", "published_at": "2026-01-08T23:32:12+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf0dd0e5b", "title": "Bose Opens SoundTouch API", "url": "https://mjtsai.com/blog/2026/01/08/bose-opens-soundtouch-api/", "published_at": "2026-01-08T23:32:10+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf1171e30", "title": "Duolingo Dynamic Island Ads", "url": "https://mjtsai.com/blog/2026/01/07/duolingo-dynamic-island-ads/", "published_at": "2026-01-07T20:44:30+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf14be5e9", "title": "Logitech Certificate Expiration Breaks App", "url": "https://mjtsai.com/blog/2026/01/07/logitech-certificate-expiration-breaks-app/", "published_at": "2026-01-07T20:43:46+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf1a9176e", "title": "1Password Browser Extension Code Injection", "url": "https://mjtsai.com/blog/2026/01/07/1password-browser-extension-code-injection/", "published_at": "2026-01-07T20:43:38+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf1d91146", "title": "Clicks Communicator and Clicks Power Keyboard", "url": "https://mjtsai.com/blog/2026/01/06/clicks-communicator-and-clicks-power-keyboard/", "published_at": "2026-01-06T21:50:04+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf2c26d83", "title": "iOS 26.2: Alternative Browser Engines in Japan", "url": "https://mjtsai.com/blog/2026/01/06/ios-26-2-alternative-browser-engines-in-japan/", "published_at": "2026-01-06T21:48:55+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf39367cf", "title": "Microsoft Rust and Copilot", "url": "https://mjtsai.com/blog/2026/01/06/microsoft-rust-and-copilot/", "published_at": "2026-01-06T21:48:44+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf3ada1c0", "title": "NetNewsWire Moves to Discourse", "url": "https://mjtsai.com/blog/2026/01/05/netnewswire-moves-to-discourse/", "published_at": "2026-01-05T22:18:40+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf47538fe", "title": "Python Numbers Every Programmer Should Know", "url": "https://mjtsai.com/blog/2026/01/05/python-numbers-every-programmer-should-know/", "published_at": "2026-01-05T22:18:17+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf493eba8", "title": "Latency Numbers Every Programmer Should Know", "url": "https://mjtsai.com/blog/2026/01/05/latency-numbers-every-programmer-should-know/", "published_at": "2026-01-05T22:18:07+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf56bf8e3", "title": "Clearing iOS App Data", "url": "https://mjtsai.com/blog/2026/01/05/clearing-ios-app-data/", "published_at": "2026-01-05T22:17:54+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf656f19f", "title": "The Year in LLMs: 2025", "url": "https://mjtsai.com/blog/2026/01/01/the-year-in-llms-2025/", "published_at": "2026-01-02T01:40:01+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf68297f7", "title": "Ruby 4", "url": "https://mjtsai.com/blog/2026/01/01/ruby-4/", "published_at": "2026-01-02T01:39:50+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf6c9ac26", "title": "Apple LLM Generating SwiftUI", "url": "https://mjtsai.com/blog/2025/12/31/apple-llm-generating-swiftui/", "published_at": "2025-12-31T22:02:57+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf6e2e46c", "title": "Top Programming Languages of 2025", "url": "https://mjtsai.com/blog/2025/12/31/top-programming-languages-of-2025/", "published_at": "2025-12-31T22:02:06+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf7803bab", "title": "“Reasonably Necessary” External Purchase Fee", "url": "https://mjtsai.com/blog/2025/12/30/reasonably-necessary-external-purchase-fee/", "published_at": "2025-12-30T21:03:04+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf7dd825d", "title": "screensizes.app", "url": "https://mjtsai.com/blog/2025/12/30/screensizes-app-2/", "published_at": "2025-12-30T21:02:52+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf8a1cf9c", "title": "Liquid Glass Disbelief", "url": "https://mjtsai.com/blog/2025/12/29/liquid-glass-disbelief/", "published_at": "2025-12-29T21:20:38+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf8ab3fce", "title": "MailMate License Model: One Year Later", "url": "https://mjtsai.com/blog/2025/12/29/mailmate-license-model-one-year-later/", "published_at": "2025-12-29T21:20:34+00:00" }, { "id": "01a0bbaf-3d76-7274-bd0a-1a9bf8eb7e09", "title": "watchOS 26 Removed Offline Workout Voice Alerts", "url": "https://mjtsai.com/blog/2025/12/26/watchos-26-removed-offline-workout-voice-alerts/", "published_at": "2025-12-26T20:04:29+00:00" } ] posts Claim your blog
Back to Michael Tsai
Blog · corpus.blog/blogs/mjtsai.com/posts

Michael Tsai

mjtsai.com

2026

2025