{
  "version": "https://jsonfeed.org/version/1",
  "title": "Mango Umbrella",
  "home_page_url": "https://mangoumbrella.com",
  "feed_url": "https://mangoumbrella.com/posts.json",
  "description": "Y2Mango's Quality Indie Apps",
  "icon": "https://mangoumbrella.com/s/img/umbrella/logo512.png",
  "favicon": "https://mangoumbrella.com/s/img/umbrella/logo64.png",
  "author": {
    "name": "y2mango",
    "url": "https://mangoumbrella.com/contact"
  },
  "items": [
    {
      "id": "/post/section-230",
      "url": "https://mangoumbrella.com/post/section-230",
      "content_html": "<p>突然意识到, 我不用再为section 230焦虑了</p>\n",
      "date_published": "2026-02-20T14:13:48.693329Z"
    },
    {
      "id": "/post/changelog-v2026.1",
      "url": "https://mangoumbrella.com/post/changelog-v2026.1",
      "title": "Changelog v2026.1",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2026-01-24</code> <a href=\"https://mangoumbrella.com/post/mango-exposure-v2026.1\">Mango Exposure v2026.1</a></li>\n</ul>\n<h1>New posts</h1>\n<ul>\n<li><code>2026-01-04</code> <a href=\"https://mangoumbrella.com/post/sequoia-national-park\">Sequoia National Park</a></li>\n</ul>\n<h1>New short posts</h1>\n<ul>\n<li><code>2026-01-04</code> <a href=\"https://mangoumbrella.com/post/fastlane-rsync-issue\">fastlane-rsync-issue</a></li>\n</ul>\n",
      "date_published": "2026-01-31T08:37:06.027563Z"
    },
    {
      "id": "/post/mango-exposure-v2026.1",
      "url": "https://mangoumbrella.com/post/mango-exposure-v2026.1",
      "title": "Mango Exposure v2026.1",
      "content_html": "<p>After 4 months of deliberation, I have decided to adopt Liquid Glass in <a href=\"https://apps.apple.com/us/app/mango-exposure/id1487020105\">Mango Exposure v2026.1</a>. Why? Because Apple told me to.</p>\n<p>Anyway, happy photographing no matter where you are ^_^</p>\n",
      "date_published": "2026-01-25T06:45:14.146349Z"
    },
    {
      "id": "/post/fastlane-rsync-issue",
      "url": "https://mangoumbrella.com/post/fastlane-rsync-issue",
      "content_html": "<p>Somehow my <a href=\"https://fastlane.tools/\">fastlane</a> upload pipeline stopped working, due to shadowing the system <code>rsync</code> binary.</p>\n<p>I would have never guessed this root cause.</p>\n<p>Historically it would take me hours of debugging and head banging, but Opus 4.5 just did it under one minute by itself.</p>\n<blockquote>\n<p>Found it! You have a Homebrew rsync (3.4.1) that's being used instead of Apple's built-in openrsync:</p>\n<ul>\n<li>which rsync → /Users/mango/tools/brew/bin/rsync (Homebrew 3.4.1)</li>\n<li>/usr/bin/rsync → Apple's openrsync (protocol 29)</li>\n</ul>\n<p>Xcode's export process is mixing these two incompatible versions, causing the &quot;syntax or usage error&quot; when they try to communicate.</p>\n</blockquote>\n",
      "date_published": "2026-01-05T03:37:40.353633Z"
    },
    {
      "id": "/post/sequoia-national-park",
      "url": "https://mangoumbrella.com/post/sequoia-national-park",
      "title": "Sequoia National Park",
      "content_html": "<p>In the afternoon before our spontaneous road trip to Sequoia National Park, I discovered a bulge on the front right tire. I immediately called my repair shop <a href=\"https://www.menloathertonautorepair.com\">Menlo Atherton Auto Repair</a>, and thanks to Anthony, we were able to depart before noon the next day. We stayed for two nights in Three Rivers, close to the south entrance.</p>\n<figure>\n<img src=\"/m/images/79/79bc5df9-06d7-4bb4-8794-935c590b841b.jpeg\" alt=\"The view at our AirBnb in Three Rivers\" />\n<figcaption><p>The view at our AirBnb in Three Rivers</p></figcaption>\n</figure>\n<p>The first 20 miles entering the park are steep with numerous switchbacks. I drove much more slowly, but with frequent turnouts along the road, it was a pleasantly relaxing experience.</p>\n<figure>\n<img src=\"/m/images/cd/cd67c6a4-96af-4a30-8f0a-e538d3010c03.jpeg\" alt=\"River near Sequoia National Park south entrance\" />\n<img src=\"/m/images/c0/c0e539d9-8f0a-4130-ae5c-39121c80e493.jpeg\" alt=\"Sequoia trees with snow on the ground\" />\n<img src=\"/m/images/b4/b4d17433-2964-4b47-9478-406273f1317e.jpeg\" alt=\"Sunset view in Sequoia National Park\" />\n<figcaption><p>Landscapes in the Sequoia National Park</p></figcaption>\n</figure>\n<p>Snow appeared once we entered the Giant Forest. On a holiday during winter, the parking space near General Sherman are accessible spots only. So we took the shuttle service instead. It ran quite frequently. On the way back to Three Rivers, we saw a spectacular sunset.</p>\n",
      "date_published": "2026-01-03T16:54:01.589177Z"
    },
    {
      "id": "/post/changelog-v2025.12",
      "url": "https://mangoumbrella.com/post/changelog-v2025.12",
      "title": "Changelog v2025.12",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2025-12-27</code> New Python package <a href=\"https://github.com/mangoumbrella/mdit-py-heading-attrs\"><code>mdit-py-heading-attrs</code></a>: a <a href=\"https://github.com/executablebooks/markdown-it-py\"><code>markdown-it-py</code></a> plugin to add attribute support to headings..</li>\n<li><code>2025-12-27</code> New Python package <a href=\"https://github.com/mangoumbrella/mdit-py-figure\"><code>mdit-py-figure</code></a>: a <a href=\"https://github.com/executablebooks/markdown-it-py\"><code>markdown-it-py</code></a> plugin to parse markdown paragraphs that start with an image into HTML <code>&lt;figure&gt;</code> elements.</li>\n<li><code>2025-12-27</code> goldmark-figure <a href=\"https://github.com/mangoumbrella/goldmark-figure/releases/tag/v1.4.0\"><code>v1.4.0</code></a>: Fix a bug where the last character in the end of the doc could be swallowed.</li>\n</ul>\n<h1>New linked posts</h1>\n<ul>\n<li><code>2025-12-30</code> <a href=\"https://mangoumbrella.com/post/mango-baby-won-upgradies-2025-best-ios-app\">∞ Mango Baby Won Upgradies 2025 Best iOS App</a></li>\n</ul>\n<h1>New short posts</h1>\n<ul>\n<li><code>2025-12-31</code> <a href=\"https://mangoumbrella.com/post/2025-is-weird\">2025-is-weird</a></li>\n<li><code>2025-12-24</code> <a href=\"https://mangoumbrella.com/post/2024-was-so-painful\">2024-was-so-painful</a></li>\n<li><code>2025-12-23</code> <a href=\"https://mangoumbrella.com/post/dun-and-bradstreet-spam\">dun-and-bradstreet-spam</a></li>\n</ul>\n",
      "date_published": "2026-01-04T20:04:39.239841Z"
    },
    {
      "id": "/post/2025-is-weird",
      "url": "https://mangoumbrella.com/post/2025-is-weird",
      "content_html": "<p>2025 has been the weirdest year so far, and 2026 is going to be weirder.</p>\n<p>I’m not prepared for this. But 2025 has truly taught me preparedness is overrated.</p>\n<p>When there is a high mountain in front of you, just climb on with your heart. And I’m more ready than ever to continue climbing.</p>\n",
      "date_published": "2026-01-03T06:22:52.925221Z"
    },
    {
      "id": "/post/mango-baby-won-upgradies-2025-best-ios-app",
      "url": "https://mangoumbrella.com/post/mango-baby-won-upgradies-2025-best-ios-app",
      "external_url": "https://upgradies.com/year/2025",
      "title": "Mango Baby Won Upgradies 2025 Best iOS App",
      "content_html": "<p>Thank you <a href=\"https://www.theenthusiast.net/about/\">Myke Hurley</a> and <a href=\"https://sixcolors.com/jason/\">Jason Snell</a> for awarding Mango Baby the Best iOS App of 2025 🤯</p>\n<p>Being an Upgrade listener for 11 years+, I can't express how honored I feel right now. Mango Baby was made from my heart when I was a new parent. And reading the overwhelmingly positive messages from my users, including Myke(!), has kept me going with this app. Thank you. ❤️</p>\n",
      "date_published": "2026-01-04T19:56:28.983736Z"
    },
    {
      "id": "/post/2024-was-so-painful",
      "url": "https://mangoumbrella.com/post/2024-was-so-painful",
      "content_html": "<p>2024 was so painful, but looking back I’m quite glad it happened.</p>\n",
      "date_published": "2026-01-04T19:52:05.124738Z"
    },
    {
      "id": "/post/dun-and-bradstreet-spam",
      "url": "https://mangoumbrella.com/post/dun-and-bradstreet-spam",
      "content_html": "<p>The spam volume I receive from Dun &amp; Bradstreet is astonishing.</p>\n",
      "date_published": "2026-01-04T19:51:14.436042Z"
    },
    {
      "id": "/post/changelog-v2025.11",
      "url": "https://mangoumbrella.com/post/changelog-v2025.11",
      "title": "Changelog v2025.11",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2025-11-08</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.11\"><code>v2025.11</code></a>: Added custom search engine instructions; support search symbols by packages; added new PyPI packages.</li>\n</ul>\n<h1>New linked posts</h1>\n<ul>\n<li><code>2025-11-15</code> <a href=\"https://mangoumbrella.com/post/bambu-printer-poop-basket-for-p1s-p1p-x1c\">∞ Bambu Printer Poop Basket for P1S/P1P/X1C</a></li>\n</ul>\n",
      "date_published": "2026-01-04T19:44:30.836430Z"
    },
    {
      "id": "/post/bambu-printer-poop-basket-for-p1s-p1p-x1c",
      "url": "https://mangoumbrella.com/post/bambu-printer-poop-basket-for-p1s-p1p-x1c",
      "external_url": "https://makerworld.com/en/models/2002186-bambu-printer-poop-basket-for-p1s-p1p-x1c",
      "title": "Bambu Printer Poop Basket for P1S/P1P/X1C",
      "content_html": "<figure>\n<img src=\"/m/images/94/9471789e-b2e9-4074-b0e4-fcdbb1ccc6e5.jpg\" alt=\"Bambu Printer Poop Basket for P1S/P1P/X1C\" />\n<figcaption><p>Bambu Printer Poop Basket for P1S/P1P/X1C</p></figcaption>\n</figure>\n<p>This is an adaptation from <a href=\"https://makerworld.com/en/models/677116-slim-bambulab-poop-shoot-bucket-p1s-p1p-x1c\">this model</a> but with hex holes for better visibility and filament savings.</p>\n",
      "date_published": "2026-01-04T19:46:30.378842Z"
    },
    {
      "id": "/post/changelog-v2025.10",
      "url": "https://mangoumbrella.com/post/changelog-v2025.10",
      "title": "Changelog v2025.10",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2025-10-15</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.10\"><code>v2025.10</code></a>: Added Python 3.14 standard libraries; improved search; added new PyPI packages.</li>\n</ul>\n",
      "date_published": "2026-01-04T19:41:18.190527Z"
    },
    {
      "id": "/post/changelog-v2025.9",
      "url": "https://mangoumbrella.com/post/changelog-v2025.9",
      "title": "Changelog v2025.9",
      "content_html": "<h1>New short posts</h1>\n<ul>\n<li><code>2025-09-15</code> <a href=\"https://mangoumbrella.com/post/congrats-everyone-on-shipping\">congrats-everyone-on-shipping</a></li>\n</ul>\n",
      "date_published": "2026-01-04T19:39:35.085206Z"
    },
    {
      "id": "/post/congrats-everyone-on-shipping",
      "url": "https://mangoumbrella.com/post/congrats-everyone-on-shipping",
      "content_html": "<p>Congrats everyone on shipping!</p>\n",
      "date_published": "2026-01-04T19:38:24.596892Z"
    },
    {
      "id": "/post/changelog-v2025.8",
      "url": "https://mangoumbrella.com/post/changelog-v2025.8",
      "title": "Changelog v2025.8",
      "content_html": "<h1>New short posts</h1>\n<ul>\n<li><code>2025-08-14</code> <a href=\"https://mangoumbrella.com/post/first-lutron-smart-switch\">first-lutron-smart-switch</a></li>\n</ul>\n",
      "date_published": "2026-01-04T19:36:46.672942Z"
    },
    {
      "id": "/post/first-lutron-smart-switch",
      "url": "https://mangoumbrella.com/post/first-lutron-smart-switch",
      "content_html": "<p>After hearing from <a href=\"https://www.caseyliss.com/\">Casey Liss</a> so many times, finally installed our first Lutron smart switch in their Caseta system.</p>\n<p>The setup is quite smooth and it just showed up in HomeKit. Can recommend!</p>\n<p>Also, I wasn’t shocked replacing a switch. Phew.</p>\n",
      "date_published": "2026-01-04T19:33:28.190280Z"
    },
    {
      "id": "/post/changelog-v2025.7",
      "url": "https://mangoumbrella.com/post/changelog-v2025.7",
      "title": "Changelog v2025.7",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2025-07-26</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.9\"><code>v2025.9</code></a>: Added new PyPI packages; iproved the indexer.</li>\n<li><code>2025-07-18</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.8\"><code>v2025.8</code></a>: Improved search and the indexer.</li>\n<li><code>2025-07-09</code> Mango Baby <a href=\"https://mangobaby.app/release-notes/v2025.2\"><code>v2025.2</code></a>: Allow non-premium users can now use all premium features when someone shares their profile with them.</li>\n<li><code>2025-07-08</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.7\"><code>v2025.7</code></a>: Added search.</li>\n<li><code>2025-07-08</code> pyref.dev <a href=\"https://github.com/mangoumbrella/pyref.dev/releases/tag/v2025.6\"><code>v2025.6</code></a>: Added <code>-p/--print</code> flag to <code>pyrefdev</code> CLI; added new PyPI packages.</li>\n<li><code>2025-07-05</code> yib <a href=\"https://github.com/mangoumbrella/yib/releases/tag/v0.4.0\"><code>v0.4.0</code></a>: Added documentation site <a href=\"https://yib.readthedocs.io\">yib.readthedocs.io</a>.</li>\n</ul>\n<h1>New blog posts</h1>\n<ul>\n<li><code>2025-07-30</code> <a href=\"https://mangoumbrella.com/post/my-monitor-shelf\">My Monitor Shelf</a></li>\n</ul>\n",
      "date_published": "2026-01-04T19:16:17.281159Z"
    },
    {
      "id": "/post/my-monitor-shelf",
      "url": "https://mangoumbrella.com/post/my-monitor-shelf",
      "title": "My Monitor Shelf",
      "content_html": "<p>I built myself a monitor shelf with a cutout for the stand, so it stays flush on the surface.</p>\n<figure>\n<img src=\"/m/images/41/413e3693-c3d5-4daa-b8e7-1c6a4a1ac37f.jpeg\" alt=\"Photo of my custom built monitor shelf\" />\n<img src=\"/m/images/c3/c3a1aebc-2f0a-4298-89b4-fbf9327e6642.jpeg\" alt=\"Photo of my custom built monitor shelf\" />\n<img src=\"/m/images/39/39762e1c-529c-4eb5-9042-4829458f0707.jpeg\" alt=\"Photo of my custom built monitor shelf\" />\n<figcaption><p>Photos of my custom built monitor shelf.</p></figcaption>\n</figure>\n<p>Routers do wonders.</p>\n",
      "date_published": "2026-01-04T19:29:26.432203Z"
    },
    {
      "id": "/post/changelog-v2025.6",
      "url": "https://mangoumbrella.com/post/changelog-v2025.6",
      "title": "Changelog v2025.6",
      "content_html": "<h1>New umbrella releases</h1>\n<ul>\n<li><code>2025-06-29</code> <a href=\"https://pyref.dev\">pyref.dev</a> <code>v2025.2-v2025.5</code>: Added 85 PyPI packages and released the indexer.</li>\n<li><code>2025-06-23</code> Mango Baby <a href=\"https://mangobaby.app/release-notes/v2025.2\">v2025.2</a>.</li>\n<li><code>2025-06-19</code> <a href=\"https://github.com/mangoumbrella/yib\">yib</a>: One Python utility library.</li>\n<li><code>2025-06-12</code> <a href=\"https://github.com/mangoumbrella/y2\">y2</a>: Why have two when one will do?</li>\n</ul>\n<h1>New blog posts</h1>\n<ul>\n<li><code>2025-06-02</code> <a href=\"https://mangoumbrella.com/post/passwords-app\">I Migrated My Passwords From Keepassxc to Password.app</a></li>\n</ul>\n<h1>New short posts</h1>\n<ul>\n<li><code>2025-06-15</code> <a href=\"https://mangoumbrella.com/post/got-a-lingo\">got-a-lingo</a></li>\n<li><code>2025-06-13</code> <a href=\"https://mangoumbrella.com/post/pip-install-y2\">pip-install-y2</a></li>\n</ul>\n",
      "date_published": "2025-12-29T04:36:13.424915Z"
    }
  ]
}