<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
    >
<channel>
    <title>olivida.eth</title>
    <atom:link href="https://olivida.eth.sucks/rss.xml" rel="self" type="application/rss+xml" />
    <link>https://olivida.eth.sucks/</link>
    <description><![CDATA[
    <p>Building <a href="https://planetable.xyz">planetable.xyz</a></p>

    ]]></description>
    
    
    <item>
        <title>Planet Quality Update 1</title>
        <link>https://olivida.eth.sucks/B55208F6-AE50-4963-B593-7FA2F80D0375/</link>
        <guid>https://olivida.eth.sucks/B55208F6-AE50-4963-B593-7FA2F80D0375/</guid>
        <pubDate>Tue, 20 May 2025 04:15:00 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/quality-update-1/pixel-nomad.png" />    
        
        
        <description><![CDATA[
            <p>这是 Planet 的首次质量更新。在这个版本中，我们专注于提升软件的稳定性、易用性，并清理了底层的源代码。</p> 
<ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.21.1/Planet.zip">Planet 0.21.1</a></li> 
</ul> 
<h2>全新欢迎界面</h2> 
<p>启动应用时，现在会看到一个新的欢迎界面，简要介绍了功能特色。你还可以点击 <code>Follow Featured</code> 按钮，一键关注精选内容源。</p> 
<img width="1130" alt="planet-onboarding" src="https://olivida.eth.sucks/B55208F6-AE50-4963-B593-7FA2F80D0375/planet-onboarding.png" /> 
<h2>Pixel Nomad</h2> 
<p>Pixel Nomad 是由 Ann 设计的一组全新站点头像。点击工具栏上的笑脸图标，即可选择一个作为你的站点头像。</p> 
<img width="2800" alt="pixel-nomad" src="https://olivida.eth.sucks/B55208F6-AE50-4963-B593-7FA2F80D0375/pixel-nomad.png" /> 
<h2>源代码库清理</h2> 
<p>清除了大部分编译警告，并优化了部分多线程处理逻辑。整体上，你会感觉应用响应更加流畅。</p> 
<p>Planet 是一个基于 SwiftUI 构建的原生 macOS 开源应用。如果你感兴趣，可以访问我们的源码仓库：</p> 
<p><a href="https://github.com/Planetable/Planet">https://github.com/Planetable/Planet</a></p> 
<h2>其他改进</h2> 
<ul> 
 <li>为侧边栏中右键点击 Planet 最常用的菜单项添加了图标。</li> 
 <li>为 Farcaster Mini App 增加了用于设置 <code>.well-known/farcaster.json</code> 的新表单。</li> 
 <li>提高了在睡眠/唤醒时的稳定性。</li> 
 <li>现在关注使用 ENS 地址的 Planet 更加快速。</li> 
 <li>移除了不再可用的公共网关选项 ipfs2.eth.limo。</li> 
 <li>降低了 IPFS swarm 连接数，以减少服务器资源消耗。</li> 
 <li>修复了拖拽内容进 Markdown Writer 窗口时的一个动画问题。</li> 
 <li>在使用 IPFS 垃圾回收功能时，现在可以从已经 unfollow 的，不再需要的历史内容中释放更多空间。</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 14</title>
        <link>https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/</link>
        <guid>https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/</guid>
        <pubDate>Fri, 14 Feb 2025 17:29:00 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-14/sns-planetable.jpeg" />    
        
        
        <description><![CDATA[
            <ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.20.2/Planet.zip">Planet 0.20.2</a></li> 
</ul> 
<h2>Solana Name Service</h2> 
<img src="https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/sns-planetable.jpeg" alt="SNS x Planetable" width="100%" /> 
<p>Solana Name Service (Bonfida) 是 Solana 网络上最流行的名称服务。你可以在 sns.id 上买到 .sol 名称。付费方式是，如果名称长度是 5 个字母或者更多，那么 $20 USDC。更短的名称的价格会更贵。或者也可以从二级市场购买。和 ENS 相比，.sol 的初次购买价格要更高一些，但因为是一次买断，所以不存在后续的续费问题。而且，后续当你开始实际使用这个 .sol 名称的时候，gas fee 和性能，在目前会优于 ETH 主网。期待之后 ENS 的 Name Chain 上线能够带来转变。</p> 
<p>你可以把用 Planet 搭建的网站链接到你的 .sol 域名，然后就可以通过一个全新的 .sol 网关 <a href="https://sol.build/" target="_blank">sol.build</a> 访问。或者也可以通过 Planet 内置的 IPFS 网关，现在也提供了对 .sol 的完全支持。</p> 
<p>比如，你现在看到的这个网站，也可以通过这个 .sol 地址访问：</p> 
<p><a href="https://olivida.sol.build/" target="_blank">olivida.sol</a></p> 
<p>这是如何绑定 Planet 网站到 .sol 的步骤：</p> 
<p><a href="https://www.planetable.xyz/guides/solana/" target="_blank"></a><a href="https://www.planetable.xyz/guides/solana/">https://www.planetable.xyz/guides/solana/</a></p> 
<h2>全新的头像图片集：Pixel Planet</h2> 
<img src="https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/pixel-planet.png" alt="Pixel Planet" width="100%" /> 
<p>Pixel Planet 是一组由 Ann 设计的全新的头像图片集。你可以在 Planet 主界面工具栏的笑脸按钮找到，然后就可以选择和设置为你的站点新头像。</p> 
<img src="https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/pixel-planet.gif" alt="Pixel Planet" width="100%" /> 
<p>希望你会喜欢。</p> 
<h2>Web 客户端</h2> 
<p>我们一直在持续改进 Planet 的 API 服务器，这个 API 服务器现在已经可以驱动这个全新的 Web 客户端，让你可以从任意浏览器使用你的 Planet。</p> 
<p>你可以在 API 端口后面附加 <code>/app/</code> 就可以访问到这个新的 Web 客户端。假设你的 Planet API 服务器的端口是 8086，那么你就可以用下面这样的地址访问到：</p> 
<p><a href="http://127.0.0.1:8086/app/">http://127.0.0.1:8086/app/</a></p> 
<p>你可以在设置中找到 API 服务器相关的信息。</p> 
<p>在之前的 Planet 版本中，当时还在测试中的 Web 客户端是一个需要手动安装的组件。在本次的更新中，Planet 已经内置了一个更新组件，会自动获取 Web 客户端的最新版本。</p> 
<figure> 
 <img width="1024" alt="Planet Web Client on Window Maker" src="https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/wmlive-planet.png" /> 
 <figcaption>
  Planet Web Client on Window Maker
 </figcaption> 
</figure> 
<figure> 
 <img width="1280" alt="eos-planet" src="https://olivida.eth.sucks/A98068BD-9ABC-4296-BF4E-663C71040B1D/eos-planet.webp" /> 
 <figcaption>
  Planet Web Client on Elementary OS
 </figcaption> 
</figure> 
<h2>试验性的 Farcaster URL 网关</h2> 
<p><a href="https://furl.pro/" target="_blank">furl.pro</a> 是一个用于 Farcaster 账号 URL 地址的 IPFS 网关。</p> 
<p>如果你在你的 Farcaster 账号的 URL 字段中填入一个 IPFS CID 或者 IPNS 地址，那么你就可以通过 [your-fc-username].furl.pro 这样的地址访问到你的 IPFS 网站。比如：</p> 
<p><a href="https://livid.furl.pro/">livid.furl.pro</a></p> 
<p><a href="https://docs.farcaster.xyz/reference/hubble/httpapi/userdata">URL 字段是 Farcaster 协议的一部分</a>，只是目前 Warpcast 的前端中没有提供修改这个字段的界面。你可以通过像 <a href="https://recaster.org">Recaster</a> 这样的第三方客户端来修改你的 Farcaster 账号的 URL 字段。</p> 
<h2>其他修复和改进</h2> 
<ul> 
 <li>修复了由于 RPC 地址导致的一些 ENS 解析问题</li> 
 <li>增加了一个可以手动触发 IPFS 垃圾回收机制的按钮（如果你使用本地 Gateway 访问过 IPFS 网络上的其他资源，那么这个按钮可以让你回收一些磁盘空间）</li> 
 <li>修复了 macOS Sequoia 上 SwiftUI 相关的一些界面问题</li> 
 <li>修复了 API 服务器的一些性能问题</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 13</title>
        <link>https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/</link>
        <guid>https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/</guid>
        <pubDate>Sun, 15 Sep 2024 06:59:03 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-13/sepia-microblog.png" />    
        
        
        <description><![CDATA[
            <ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.19.4/Planet.zip">Planet 0.19.4</a></li> 
</ul> 
<h2>Sepia</h2> 
<p>Sepia 是一个为轻博客（microblog）优化的主题，在这次的更新中，我们为这种使用方式带来了多个功能和设计上的更新，让你可以更频繁和简单地使用 Planet 发布想法，图片，甚至音视频。</p> 
<img width="921" alt="sepia-microblog" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/sepia-microblog.png" /> 
<p>写长文章不是一件容易和经常的事情，所以很多人通常会在使用多个不同的平台，一个用于长文章，其他地方是一些更简短和快速的输出。比如 Vitalik 会把他的长文章写在 <a href="https://vitalik.eth.sucks/">vitalik.eth</a>，而在 <a href="https://x.com/vitalikbuterin">X</a> 和 <a href="https://warpcast.com/vitalik.eth">Warpcast</a> 这样的平台上进行一些更频繁和轻量级的输出。</p> 
<p>Sepia 主题，及新的 <kbd>⌘+D</kbd> 快捷键输入框，让你可以用 Planet 搭建一个完全属于自己的 microblog 轻博客。</p> 
<figure> 
 <img width="543" alt="quick-post-new" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/quick-post-new.png" /> 
 <figcaption>
  ⌘+D 快捷输入框
 </figcaption> 
</figure> 
<p>本次更新后，快捷输入框可以支持支持图片、视频和音频的添加。</p> 
<p>现在 Planet 的两个主要地址 <a href="https://olivida.eth.sucks/">olivida.eth</a> 和 <a href="https://planetable.eth.sucks/">planetable.eth</a> 也从默认的 Plain 主题切换到了 Sepia 主题。同时，在下面这个网站可以看到 Sepia 主题的另外一个实际例子：</p> 
<p><a href="https://sepia.olivida.eth.sucks/">https://sepia.olivida.eth.sucks/</a></p> 
<h3>在网页上接受 ETH 打赏</h3> 
<p>你可以通过 Planet 的一个新功能，在网站上快速开启接受 ETH 打赏。</p> 
<figure> 
 <img width="392" alt="accept-donation" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/accept-donation.png" /> 
 <figcaption>
  右键点击 My Planet 然后选择 Accept Donation
 </figcaption> 
</figure> 
<figure> 
 <img width="568" alt="donation-settings" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/donation-settings.png" /> 
 <figcaption>
  在 Accept Donation 设置中填入你的 ETH 地址
 </figcaption> 
</figure> 
<p>然后访客点击导航栏中的 Donate 按钮，连接钱包，就可以发送打赏。</p> 
<img width="967" alt="donation-modal" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/donation-modal.png" /> 
<p>目前打赏功能支持的是 mainnet 上的 ETH。在后续的更新中，我们会加入其他 L2 上的选择，并继续优化这个页面。</p> 
<p>如果你是内容创作者、开源软件开发者，之前用过 PayPal 或者 Ko-Fi 的打赏，那么来试试这种新的方式吧。不需要向任何人申请，也没有任何人可以扣留你收到的款项，一切都只需要代码。</p> 
<h3>颜色定制及配色的输出输入</h3> 
<figure> 
 <img width="341" alt="template-settings" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/template-settings.png" /> 
 <figcaption>
  右键点击 My Planet 然后选择 Template Settings，就可以对 Sepia 主题的颜色进行定制。
 </figcaption> 
</figure> 
<figure> 
 <img width="556" alt="template-settings-colors" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/template-settings-colors.png" /> 
 <figcaption>
  你甚至可以将定制结果输出成 JSON 文件，然后就可以用于分享配色。也可以在这个界面选择恢复默认配色。
 </figcaption> 
</figure> 
<p>如果你在定制主题的过程中遇到问题，欢迎加入我们的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Telegram 中文用户群</a>讨论。</p> 
<p>在下面的这个地址，可以看到一个深色定制的 Sepia 站点的例子：</p> 
<p><a href="https://k51qzi5uqu5dgy9qlqct5gsbggde32kc8wkz6419j67t9aw38bmyuwtkzmwdtn.eth.sucks/">https://k51qzi5uqu5dgy9qlqct5gsbggde32kc8wkz6419j67t9aw38bmyuwtkzmwdtn.eth.sucks/</a></p> 
<h2>API</h2> 
<p>我们改进了 Planet 内置的 REST API 服务器的实现，并增加了一个用于查看最近请求的 API Console。</p> 
<img width="841" alt="api-console" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/api-console.png" /> 
<p>Planet API 的具体文档可参考这个地址：</p> 
<p><a href="https://github.com/Planetable/Planet/blob/main/Technotes/API.md">https://github.com/Planetable/Planet/blob/main/Technotes/API.md</a></p> 
<p>基于 Planet API，我们做了一个实验性的 Web Client。你可以用这样的方式获得这个 Web Client：</p> 
<pre><code class="language-shell">cd ~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Public/
git clone https://github.com/livid/planet-web app
</code></pre> 
<p>从设置中打开 API 服务器：</p> 
<img width="534" alt="planet-api-server" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/planet-api-server.png" /> 
<p>假设你使用的也是 8086 这个端口，那么访问 <code>http://localhost:8086/app/</code> 就可以看到这个实验性的 Web Client。</p> 
<img width="1215" alt="experimental-api-client" src="https://olivida.eth.sucks/96B694AB-6E7C-4ABA-AB61-84BEA4487C46/experimental-api-client.png" /> 
<p>如果你在使用 API 的过程中遇到任何问题，欢迎加入我们的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Telegram 中文用户群</a>讨论。</p> 
<h2>其他修复和改进</h2> 
<ul> 
 <li>修复了插入 Retina Display 截图时 img 标签里的 width</li> 
 <li>在 Follow Planet 时，如果 paste 了 eth.limo 或者 eth.sucks 地址现在会自动从中提取 ENS</li> 
 <li>分享照片时，照片文件里的 GPS 信息会被去掉</li> 
 <li>修复和优化了一个在保存和发布 Planet 站点时的并行处理问题</li> 
 <li>可以获得每篇文章的基于 CID 的永久链接。基于 CID 的永久链接，即使站点的 IPNS 地址无法解析，也依然可以在大部分 IPFS Gateway 上快速打开。</li> 
 <li>Smart Feeds 现在会显示总条目数</li> 
 <li>每次新内容发布时，如果 prewarm 开关打开，那么 tags 和 archive 页面也会在网关上被预热，这样可以让网站被初次访问的访客更快打开。</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Sepia</title>
        <link>https://olivida.eth.sucks/466FC360-8C0C-4B46-B93A-A1C7BBF2E37B/</link>
        <guid>https://olivida.eth.sucks/466FC360-8C0C-4B46-B93A-A1C7BBF2E37B/</guid>
        <pubDate>Thu, 18 Jul 2024 17:08:21 -0700</pubDate>
        
        
        <description><![CDATA[
            <p><a href="https://sepia.olivida.eth.sucks/">https://sepia.olivida.eth.sucks/</a></p> 
<p>Sepia is a microblog template for Planet.</p> 
<p>Sepia 是一个为 microblog 设计的模版。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 12</title>
        <link>https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/</link>
        <guid>https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/</guid>
        <pubDate>Tue, 16 Jul 2024 11:54:37 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-12/monochrom.png" />    
        
        
        <description><![CDATA[
            <p>更新了对 WalletConnect 的支持，众多针对 IPFS 的改进和新功能，全新的 Monochrom 头像图片集，及其他使用体验上的改进。</p> 
<ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.18.3/Planet.zip">Planet 0.18.3</a></li> 
</ul> 
<h2>WalletConnectV2</h2> 
<p>Planet 更新了对 WalletConnect 的支持，升级到了 WalletConnectV2 版本。现在你可以使用手机钱包，比如 <a href="https://www.rainbow.me/points?ref=GYP37C">Rainbow</a>，OKX 在 Planet 里登录，并用来向你关注的内容创作者打赏 ETH。同时，作为一个重要的基础架构，这也让将来 Planet 支持其他更复杂的合约调用或是 L2，成为可能。</p> 
<h2>新的 IPFS+ENS 网关</h2> 
<p>当你为站点生成分享链接时，现在可以使用一个新的高性能 IPFS+ENS 网关 <a href="https://eth.sucks">eth.sucks</a>。在设定了 content hash 的 ENS 末尾加上 .sucks 就可以访问上面的 IPFS 网站，比如：</p> 
<ul> 
 <li><a href="https://vitalik.eth.sucks">vitalik.eth.sucks</a></li> 
 <li><a href="https://olivida.eth.sucks">olivida.eth.sucks</a></li> 
 <li><a href="https://gamedb.eth.sucks">gamedb.eth.sucks</a></li> 
 <li><a href="https://justinyan.eth.sucks">justinyan.eth.sucks</a></li> 
 <li><a href="https://jango.eth.sucks">jango.eth.sucks</a></li> 
 <li><a href="https://jbdao.eth.sucks">jbdao.eth.sucks</a></li> 
</ul> 
<p>可以从设置中选择这个新的网关。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/ipfs-gateways.png" alt="" /></p> 
<p>前段时间，Cloudflare 宣布他们会<a href="https://blog.cloudflare.com/cloudflares-public-ipfs-gateways-and-supporting-interplanetary-shipyard">停止维护 cf-ipfs 网关</a>。所以，目前，还能用的 IPFS+ENS 网关，就是这些了：</p> 
<ul> 
 <li><a href="https://eth.limo">eth.limo</a></li> 
 <li><a href="https://ipfs.io">ipfs.io</a> / <a href="https://dweb.link">dweb.link</a></li> 
 <li><a href="https://eth.sucks">eth.sucks</a> / <a href="https://crop.top">crop.top</a></li> 
</ul> 
<p>一个健康的生态系统需要更多的参与者。</p> 
<h2>IPFS 控制面板</h2> 
<p>现在点击左下角显示 Online 的区域，会看到一个新的 IPFS 控制面板：</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/ipfs-status.png" alt="" /></p> 
<p>显示 IPFS 的版本信息，空间占用，及实时的带宽消耗。如果需要，甚至可以从这个控制面板里暂时关闭 IPFS 进程。</p> 
<h2>用本地 IPFS 网关打开任意 IPFS 资源</h2> 
<p>现在可以从 File 菜单下找到一个新的 Open 选项，用它来打开任意的 IPFS 或者 ENS 资源地址。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/ipfs-open.png" alt="" /></p> 
<h2>复用 Tags</h2> 
<p>在为内容选择 tag 时，现在可以从之前已经用过的 tag 里点击选择。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/tags.png" alt="" /></p> 
<h2>新的站点头像图片集 Monochrom</h2> 
<p>99 个全新设计的站点头像图片。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/monochrom.png" alt="" /></p> 
<p>在站点设置中，可以选择在保存新的站点头像图片时，存储为圆形图片。这样做的用途是，如果你希望在浏览器的收藏夹中也显示圆形图片，而不是默认的方形。</p> 
<h2>新的快速分享拖拽</h2> 
<p>可以用拖拽任意图片放到文章列表，就可以打开一个新的快速分享发帖方式。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/quick-share.gif" alt="" /></p> 
<h2>新的短文本输入发送</h2> 
<p>按下 <kbd>CMD</kbd>+<kbd>D</kbd> 就可以打开一个新的短文本输入发送框，配合 Sepia 主题，很适合用来记录和分享一些简短的想法。</p> 
<p><img src="https://olivida.eth.sucks/242AF0E1-6391-44D6-8AA4-F65ED1EE3CA1/quick-post.png" alt="" /></p> 
<p>比如这是一个使用 Sepia 主题的 microblog 站点：</p> 
<p><a href="https://sepia.olivida.eth.sucks">sepia.olivida.eth</a></p> 
<h2>其他修复和改进</h2> 
<ul> 
 <li>修复了一个会发生在 macOS 12/13 上的文章列表异常。如果你使用的是 macOS 14 那么不会遇到这个问题。</li> 
 <li>可以在搜索结果列表中使用键盘上下选择结果打开。</li> 
 <li>模版中现在可以读取到文章主图（hero image）的高宽信息。</li> 
 <li>站点 IPNS 发布完成时，会用本地通知方式显示最新的 CID。</li> 
 <li>新的站点设置：Do Not Index。写入一个 robots.txt 规则文件告知搜索引擎不要索引网站。</li> 
 <li>新的站点设置：Prewarm。每次新文章发布时，Planet 可以自动在当前选择的公共网关上访问一次新文章地址，这样新文章在公共网关的 IPFS 节点里就会有一份新鲜的副本，让其他访问者可以更快打开内容。</li> 
 <li>Insider 版本现在会有一个单独的二进制文件名称 <code>Planet-Insider</code> 以更方便地和其他版本共存。</li> 
 <li>增加了 <a href="https://www.filebase.com">Filebase</a> 节点的 Peering，如果你使用 Filebase 的 Pinning 服务，那么可以让 Filebase 的节点更容易完成同步。</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Hashes</title>
        <link>https://olivida.eth.sucks/27091CAE-3043-46FD-99FD-9372D170485A/</link>
        <guid>https://olivida.eth.sucks/27091CAE-3043-46FD-99FD-9372D170485A/</guid>
        <pubDate>Tue, 09 Jul 2024 10:52:38 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/hashes/flashget.gif" />    
        
        
        <description><![CDATA[
            <p><a href="https://no-intro.org/">No-Intro</a> 和 <a href="http://redump.org/">Redump</a> 是两个由互联网上的游戏爱好者们维护的数据库，目标是获取并保存过去那些通过卡带和碟片发行的老游戏的特征码。</p> 
<p>早期的卡带游戏，由于破解和盗版，玩家能够玩到的版本往往已经被修改过。比如你很可能就玩过一个叫做「90 坦克」的游戏，实际上是修改自 NAMCO 的一个叫做 BattleCity 的 Famicom 游戏。而在游戏的开头，往往就会有修改者加上的新的画面，也就是 intro。而 No-Intro 项目就是希望能够维护这样的一个数据库——里面是这些游戏的原始版本的特征码，也就是 hash 值。hash 是一类计算机算法，通过复杂的数学过程，可以获得一个文件的特征。如果两个文件的内容的每一个字节都是相同的，那么就会获得同样的 hash 值。常见的 hash 算法有 MD5，SHA1，SHA256 等等。</p> 
<p>IPFS 的 Content-addressing，也就是「内容寻址」技术，也是基于 hash。只是你<a href="https://discuss.ipfs.tech/t/receive-a-file-with-an-known-sha256-sum-from-ipfs/7122">不能直接在 IPFS 中使用一个文件的 SHA256 值来找到它</a>，而需要通过 IPFS 的 CID。IPFS 的 CID 包括了比整个文件的 hash 更多的信息。</p> 
<p>所以，假如像 No-Intro 这样的数据库中除了 SHA-256，同时也包括文件的 CID 值的话，那么就有可能可以通过整个互联网，而不是某台确定的服务器，来获得那个文件了。只是这种不确定性，同时带来了很多的优点和缺点。</p> 
<p>优点：</p> 
<ul> 
 <li>不需要依赖单一的网站地址或者服务器地址：互联网上的大部分地址都无法存在太长时间，<a href="https://blogs.loc.gov/thesignal/2011/11/the-average-lifespan-of-a-webpage/">平均值甚至不到半年</a>。而 SHA256 或者 CID 是确定的，因此假设如果互联网上确实有 IPFS 服务器存储了某个确定的 CID，那就有机会下载下来。</li> 
</ul> 
<p>缺点：</p> 
<ul> 
 <li>巨大的 overhead。如果你曾经看过 Jeff Dean 的 <a href="https://gist.github.com/jboner/2841832">Latency Numbers Every Programmer Should Know</a>，然后再看 IPFS 内容寻址的过程，就会看到一切都完全发生在一个不确定的网络架构中，因此需要非常多次尝试才有可能拿到有意义的数据，这是巨大的 overhead。</li> 
</ul> 
<p>基于内容寻址的技术因为其不需要依赖特定服务器，谁都可以存，因此在理想情况下，如果一个内容确实有很多节点都存了，于是也就实现高度的去中心化。所以在一些理解和需要这样架构的场景中已经得到了应用，比如 NFT 的图片。当你在 mint 一个 NFT 时，大部分情况下，你获得的 token 并不是图片文件本身，而是图片文件的 CID。理想情况下，NFT 的 CID 会有多个 IPFS 节点存储，因此通过 CID 就始终可以获得这张图片。为什么一直强调「理想情况」，因为另外一种情况是，随着时间过去，一件事情没有人在意了，于是本来存有这些 CID 的服务器逐个下线了，最终这个 CID 也就消失了。就像，如果，即使我们知道一个 ROM 的 SHA-256 值，但这个世界上最后一块存有那个 ROM 的硬盘坏了，并且原始的最后一张游戏卡带也坏了的话，那么即使知道 SHA-256 值，那个文件也会永远消失。如果要增加一个文件持续存在下去的可能性，那么尝试多种完全不同的存储和传播方式就是有意义的。</p> 
<p>前面提到 IPFS 的内容寻址过程中的不确定性，这或许是一个可能可以解决的用户体验问题。相比通过商业 CDN 加速过的内容，从 IPFS 网络下载东西的体验可能会非常糟糕——因为很多时候如果试着直接在浏览器里访问一个 CID，就卡在那里了，像是什么都没有发生。</p> 
<p>早期的拨号互联网，及 BitTorrent 下载也面临同样的用户期待值问题，于是开发者们通过更好的进度条来实现了用户体验优化。</p> 
<p><img src="https://olivida.eth.sucks/27091CAE-3043-46FD-99FD-9372D170485A/flashget.gif" alt="" /></p> 
<p>而这样的图形化手段，应该也可以用于改进 IPFS CID 的下载体验。但目前（2024 年 7 月），这样的软件存在于传统的 HTTP 协议和 BT 协议，暂时还没有看到针对 CID 下载的实现。</p> 
<p>想象这样的一种可能性：各种下载网站上提供的不只是 https 或者 torrent，也提供或者只提供 CID。下载一个文件的过程是把 CID 放进原生支持 IPFS 通讯协议的下载软件，然后下载软件就可以显示一个非常具体的进度，甚至可以通过多线程同时下载文件的不同部分。对于下载网站的维护者来说，文件存储除了完全自己维护，也有可能通过更多的其他人的服务器来分档存储。而对于各种 retro 内容存档爱好者们来说，自己在意的内容，也多了一种获得和持续存在下去的可能。</p>
        ]]></description>
    </item>
    
    <item>
        <title>&#x8001;&#x4EBA;&#xFF0C;&#x7EFF;&#x8349;&#x5730;&#xFF0C;&#x8E22;&#x7403;&#x7684;&#x5C0F;&#x5B69;</title>
        <link>https://olivida.eth.sucks/8A3161AC-974C-4317-B62D-39B528275098/</link>
        <guid>https://olivida.eth.sucks/8A3161AC-974C-4317-B62D-39B528275098/</guid>
        <pubDate>Wed, 24 Apr 2024 23:06:56 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>大约是很多年前在一本纸质的杂志上读到的一则小故事，最近时不时会想起来。刚才试着在互联网上找了一下，却怎么都没法找出来。那我就凭记忆把这个故事在这里再写一遍吧。</p> 
<hr /> 
<p>老人家门口有一块绿草地。每天下午的时候，坐在那里，是一件很惬意的事情。</p> 
<p>然后有一天，这样的宁静被打破了。来了一群小孩在草地踢球。他们的欢呼声和叫声时不时会把老人吓一跳，坐在草地旁边也不太安全了。老人对此感到苦恼。</p> 
<p>一天，他找到这群小孩，对他们说：“你们玩得好开心啊！如果你们每天都来这里玩的话，我会给你们每人 3 块钱。”</p> 
<p>小孩们觉得虽然这个请求有些奇怪，但有钱拿，他们所需要做的也是他们本来就每天想做的——来这块草地踢球，于是他们很高兴地收下了钱，并且像是受到了某种鼓励一样，踢得也更卖力了。</p> 
<p>在接下来的几天时间里，每天老人都会给小孩 3 块钱。小孩们很高兴地收下了钱，卖力地踢球。</p> 
<p>这么过了几天，又到了给钱的时候，老人对他们说，抱歉，我只能给你们 2 块钱了。虽然钱变少了，小孩们还是接过了钱。</p> 
<p>又这样过去了几天。在接下来的时间里，老人给小孩们的钱变成了 1 美元。1 块钱持续了一段时间之后，变成了 50 分。当老人要把 50 分的硬币递给小孩们时，领头的那位很愤怒地说：“我们才不会为了 50 分钱为你踢球！”</p> 
<p>于是小孩们再也不来这里踢球了。门口的绿草地，又恢复了安静。</p> 
<hr /> 
<p>一件事情，是因为一个人本来就想要做，还是因为受到了什么外部因素的驱使，真是一件很微妙的事情啊。</p> 
<p>在各种复杂的关系里，我时常会想到这个小故事。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 11</title>
        <link>https://olivida.eth.sucks/EFACEB32-A815-4687-B533-5CBA96857D84/</link>
        <guid>https://olivida.eth.sucks/EFACEB32-A815-4687-B533-5CBA96857D84/</guid>
        <pubDate>Thu, 04 Apr 2024 03:48:00 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-11/search.png" />    
        
        
        <description><![CDATA[
            <p>这是 Planet 的第 11 次主要功能更新，带来了这些新功能：搜索、更快的 IPNS 公共网关、置顶文章、文章的导入导出。</p> 
<ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.17.1/Planet.zip">Planet 0.17.1</a></li> 
</ul> 
<h2>搜索</h2> 
<p>使用快捷键 <kbd>CMD</kbd>+<kbd>F</kbd> 就可以打开 Planet 内的全局搜索功能。你可以搜索自己写的文章，或者是你跟随的其他网站上的文章。</p> 
<img width="2042" alt="Search" src="https://olivida.eth.sucks/EFACEB32-A815-4687-B533-5CBA96857D84/search.png" /> 
<h2>更快的 IPNS 公共网关</h2> 
<p>在之前的版本中，我们提供 ipfs.io 或者 cf-ipfs.com 作为公共网关的选项。在这次的新版本中，我们有了一个更快的新选项：由社区项目 <a href="https://eth.limo/">eth.limo</a> 和 <a href="https://namesys.eth.limo/">NameSys</a> 驱动。</p> 
<p>比如，你当前正在看的这个 Planet 网站的 IPNS 地址是 <code>k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk</code>，你可以用下面的这个新的网关地址打开它：</p> 
<hr /> 
<h4>IPNS + ipfs2.eth.limo</h4> 
<p><a href="https://k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk.ipfs2.eth.limo">https://k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk.ipfs2.eth.limo</a></p> 
<hr /> 
<p>通常，这个新的网关地址会比之前的这些选项更快：</p> 
<ul> 
 <li>ipfs.io: <a href="https://ipfs.io/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk">https://ipfs.io/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk</a></li> 
 <li>dweb.link: <a href="https://dweb.link/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk">https://dweb.link/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk</a></li> 
 <li>cf-ipfs.com: <a href="https://cf-ipfs.com/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk">https://cf-ipfs.com/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk</a></li> 
</ul> 
<p>这个新的公共网关也可以用来打开任意的 CIDv1 地址：</p> 
<hr /> 
<h4>CIDv1 + ipfs2.eth.limo</h4> 
<p><a href="https://bafybeihyeuqc7nv2zfwt3x6bglgxrca2xglt26jzzqpi4zxci5czxwskku.ipfs2.eth.limo">https://bafybeihyeuqc7nv2zfwt3x6bglgxrca2xglt26jzzqpi4zxci5czxwskku.ipfs2.eth.limo</a></p> 
<hr /> 
<p>当你在使用 <code>Open in Public Gateway</code> 这个功能时，现在就会默认以 ipfs2.eth.limo 打开。</p> 
<h2>置顶文章</h2> 
<p>自己的文章现在可以用置顶功能固定到列表顶部。右键单击自己的文章就可以看到这个新功能。</p> 
<img width="1244" alt="Pin Article" src="https://olivida.eth.sucks/EFACEB32-A815-4687-B533-5CBA96857D84/pin-article.png" /> 
<h2>文章导出导入</h2> 
<p>你现在可以把自己的文章导出为一个数据包，然后可以在另外一台 Mac 的 Planet 里导入。或者也可以直接使用 AirDrop 发送。</p> 
<img width="1350" alt="Export Article" src="https://olivida.eth.sucks/EFACEB32-A815-4687-B533-5CBA96857D84/export-article.png" /> 
<h2>其他修复和改进</h2> 
<ul> 
 <li>改进：完整构建（Full Rebuild）功能现在通过使用所有 CPU 核心而变得更快</li> 
 <li>改进：更好地监控发布 IPNS 文件夹（Published Folders）里的变更</li> 
 <li>新功能：新文章发布时，在公共网关上进行预加载</li> 
 <li>新功能：顶部工具栏现在有了一个新的可以编辑自己文章的按钮</li> 
 <li>修复：新创建的文章的滚动位置，之前的版本里，可能滚动位置不能在列表里完整显示新创建的文章</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 10</title>
        <link>https://olivida.eth.sucks/96DCEF75-5FB1-4D03-AA65-8212267F37A4/</link>
        <guid>https://olivida.eth.sucks/96DCEF75-5FB1-4D03-AA65-8212267F37A4/</guid>
        <pubDate>Sun, 12 Nov 2023 00:12:55 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-10/sepia.png" />    
        
        
        <description><![CDATA[
            <p>这次的更新里包括了一些重要的性能方面的改进，及一个全新的主题：Sepia！</p> 
<ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.16.0/Planet.zip">Planet 0.16.0</a></li> 
</ul> 
<h2>与 eth.limo 的直连（IPFS Peering）</h2> 
<p><a href="https://eth.limo">eth.limo</a> 是目前最好的 ENS 网站网关。IPFS 直连（Peering）功能的加入，意味着你接下来更新的任何新内容，都可以更顺畅地出现在 eth.limo 上。因为现在 eth.limo 在 IPFS 网络上可以直接找到你的节点。</p> 
<p>关于这项技术的更多细节，如果你好奇，可以阅读 IPFS 官方关于 Peering 的文档：</p> 
<p><a href="https://docs.ipfs.tech/how-to/peering-with-content-providers/">https://docs.ipfs.tech/how-to/peering-with-content-providers/</a></p> 
<h2>新主题 Sepia</h2> 
<p>Sepia 是一个全新设计的主题，非常适合更新频繁的 microblog 类型内容。</p> 
<p>点击 <a href="https://gateway.v2ex.pro/ipns/k51qzi5uqu5dgpbgbc7c3w2wjpsyqb28l5205znvbegmn5p7koctjuvgxb56r1/">这里</a> 可以看到使用这个主题的一个演示网站。</p> 
<p><img src="https://olivida.eth.sucks/96DCEF75-5FB1-4D03-AA65-8212267F37A4/sepia.png" alt="" /></p> 
<p>功能列表：</p> 
<ul> 
 <li>按时间顺序在首页展示每一个发帖的完整内容（类似 Twitter/X 的展示逻辑）</li> 
 <li>当使用桌面浏览器访问时，呈现的是两栏结构，同时针对移动设备做了响应式设计适配</li> 
 <li>支持视频、音频、及多图内容</li> 
 <li>支持 Planet 最新的标签和归档功能</li> 
</ul> 
<p>我们会继续改进围绕这个新主题的发帖功能。期待能够收到来自大家的反馈。在下一次的更新中，我们会加入一个全新的发帖界面，让更频繁的内容更新过程变得更加舒服。😌</p> 
<h2>改进了的 IPNS 发布流程</h2> 
<p>当你尝试在应用程序正在执行 IPNS 发布（侧边栏中有动画沙漏图标时）时退出应用程序，现在会显示一个确认对话框。以前，在此过程中退出应用程序可能导致 IPNS 发布未完成，并导致网站无法解析。</p> 
<p><img src="https://olivida.eth.sucks/96DCEF75-5FB1-4D03-AA65-8212267F37A4/confirm-dialog.png" alt="" /></p> 
<p>我们相信这个改进会大幅改善 IPNS 网站因为发布中断而导致的无法解析问题。</p> 
<h2>改进了的 Rebuild</h2> 
<p>现在有两种类型的 Rebuild：Quick Rebuild 和 Full Rebuild。Quick Rebuild 只会重新生成站点的首页文件，即 <code>index.html</code>。Full Rebuild 还会使用您当前为站点选择的模板重新生成每篇帖子。当你正在调试如 <a href="https://croptop.eth.limo">Croptop</a> 这样的 SPA（单页应用程序）模板时，Quick Rebuild 会非常有用。</p> 
<h2>其他修复和改进</h2> 
<ul> 
 <li>修复了在 macOS 14 上添加附件功能无法使用的问题</li> 
 <li>修复了导致侧栏站点头像模糊的图像插值设置</li> 
 <li>修复了当头像取消设置时，网站 favicon 未被移除的问题</li> 
 <li>增加了在快速分享对话框中粘贴图片的支持</li> 
 <li>为 Planet API 服务增加了 Bonjour 宣告</li> 
 <li>在头像选择器中增加了随机选择功能</li> 
 <li>增加了一个新的 API 端点：<code>/v0/id</code></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 9</title>
        <link>https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/</link>
        <guid>https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/</guid>
        <pubDate>Fri, 22 Sep 2023 10:02:41 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-9/hero-image-twitter.png" />    
        
        
        <description><![CDATA[
            <p>在这次的功能更新中，使用 Planet 来进行博客写作的体验更加完整了。我们非常高兴为你带来这些新功能：标签，归档，增强的 Pinning 服务支持，及一个在 Dock 上的动画图标！</p> 
<ul> 
 <li>下载 <a href="https://github.com/Planetable/Planet/releases/download/release-0.15.1/Planet.zip">Planet 0.15.1</a></li> 
</ul> 
<h2>Tags</h2> 
<p>你现在可以使用 Article Settings 或者 Writer 界面上的图标来为文章设置标签。</p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/tags-in-article-settings.png" alt="" /></p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/tags-in-writer.png" alt="" /></p> 
<p>每个标签会有自己的页面。这样的话，具有同样标签的所有内容就可以在一个页面上看到。</p> 
<p>比如，这是 Planet 的所有功能更新的博文，使用的是 <code>Release Notes</code> 这个标签。</p> 
<p><a href="https://planetable.eth.limo/release-notes.html">https://planetable.eth.limo/release-notes.html</a></p> 
<h2>Archive</h2> 
<p>增加了一个全新的归档页面。在这个页面上可以看到所有的历史内容。</p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/archive-page.png" alt="" /></p> 
<p>Planet 的三个内置主题都已经为这次的新功能（标签和归档页面）做了更新。</p> 
<h2>更改 App 图标</h2> 
<p>新增了 Icon Gallery 让你可以为 App 选择一个新的图标。</p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/icons-vol-1.png" alt="" /></p> 
<p>如果你持有 <a href="https://juicebox.money/v2/p/471">Pinnable NFT Series A</a>，那么你还可以解锁两个具有动画特效的图标。</p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/icons-pna.png" alt="" /></p> 
<p>要使用这些 NFT 图标，你需要首先连接你的钱包。你可以使用手机上的 <a href="https://rainbow.me">Rainbow</a> 钱包来实现在 Planet 里的扫码登录。</p> 
<h2>选择主图</h2> 
<p>当一篇文章具有多个附图时，你可以选择其中的一张作为主要图片（Hero Image）。主要图片会在当文章被分享到其他社交网络时显示。比如当文章链接被分享到 Twitter 或者 Discord 时。</p> 
<p><img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/set-hero-image.png" alt="" /></p> 
<figure> 
 <img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/hero-image-twitter.png" /> 
 <figcaption>
  设置了 Hero Image 之后在 
  <a href="https://twitter.com/PlanetableXYZ/status/1704014946416431121" target="_blank">Twitter</a> 里分享链接的效果
 </figcaption> 
</figure> 
<h2>增强的 Pinnable 支持</h2> 
<p>我们继续改进了在上一个版本中引入的 <a href="https://pinnable.xyz">Pinnable</a> 集成。现在当你为网站启用 Pinnable 服务时，各类交互的结果会以更及时的方式反馈。</p> 
<figure> 
 <img src="https://olivida.eth.sucks/457FB508-3521-461F-8DFC-B04FD768FCBE/pinned.png" /> 
 <figcaption>
  表示网站已经被 pinned 的图标
 </figcaption> 
</figure> 
<p>当你的网站名称右侧出现这个图标时，意味着 Pinnable 已经成功保存了副本。如果你使用的是笔记本电脑，这个时候你可以放心地合上盖子，你的网站会继续通过保存在 Pinnable 服务器上的副本来提供服务。当启用了 Pinnable 的服务时，从各种 IPFS 网关访问你的网站的速度和可用性都会得到提升。而你依然完全控制着网站内容的权威版本。</p>
        ]]></description>
    </item>
    
    <item>
        <title>&#x6587;&#x7AE0;&#x8BBE;&#x7F6E;&#x754C;&#x9762; Article Settings &#x7684;&#x4F7F;&#x7528;</title>
        <link>https://olivida.eth.sucks/B78D96E8-C8A9-49C8-A324-BC5D254C27CA/</link>
        <guid>https://olivida.eth.sucks/B78D96E8-C8A9-49C8-A324-BC5D254C27CA/</guid>
        <pubDate>Tue, 29 Aug 2023 03:59:00 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/article-settings/article-settings.png" />    
        
        
        <description><![CDATA[
            <p>Planet 最近更新了文章设置界面的功能，本文档是关于如何使用这些新功能。</p> 
<figure> 
 <img src="https://olivida.eth.sucks/B78D96E8-C8A9-49C8-A324-BC5D254C27CA/article-settings.png" alt="Article Settings UI" /> 
 <figcaption>
  新的文章设置界面
 </figcaption> 
</figure> 
<h2>Slug</h2> 
<p>文章的 URL 默认使用的是一个 UUID，但是你现在定制这个部分。比如，很多博客网站都会有一个叫做「About Me」的页面，那么你可以把这个页面的 URL Slug 设置为 <code>about-me</code>，那么它的完整地址就会看起来像是这样的：</p> 
<p><code>example.eth.limo/about-me/</code></p> 
<p>URL Slug 只能使用小写字母和数字，及横线。并且每篇文章所使用的 URL Slug 应该是独特的。</p> 
<h2>文章类型 Type</h2> 
<p>新的文章默认会创建为 blog 类型，这样的文章会出现在首页时间轴及 RSS 中。如果你把类型更改为 page，那么就不会出现在首页时间轴及 RSS 中。page 类型适合的就是「About Me」这类的页面。</p> 
<h2>导航设置 Navigation</h2> 
<p>如果你选中「Include in Site Navigation」，那么页面就会出现在全站顶部的导航中。这个功能也是为了像「About Me」这类的页面所设计。</p> 
<p>你也可以使用这个功能来指向外部页面。比如你可以添加一个标题为「Discord」的页面，然后在「External Link」中填入你的 Discord 邀请链接，并且将其包括在全站导航栏中，这样你就会获得一个指向 Discord 的顶部导航链接。</p> 
<p>「Navigation Weight」用于指定导航条目的排序。越大的数字会排在后面。</p> 
<figure> 
 <img src="https://olivida.eth.sucks/B78D96E8-C8A9-49C8-A324-BC5D254C27CA/top-navigation.png" alt="顶部导航栏" style="border-radius: 4px;" /> 
 <figcaption>
  比如在 planetable.eth 上 Insider Builds 链接就是顶部导航栏的一部分
 </figcaption> 
</figure>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 8</title>
        <link>https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/</link>
        <guid>https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/</guid>
        <pubDate>Tue, 08 Aug 2023 20:00:57 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-8/article-item-view.png" />    
        
        
        <description><![CDATA[
            <p>下载地址：</p> 
<ul> 
 <li><a href="https://opensource.planetable.xyz/planet/release-0.14.1/Planet.zip" target="_blank">Planet 0.14.1</a></li> 
</ul> 
<h2>Article Settings 及新的文章列表视图</h2> 
<p>增加了一个新的 <code>Article Settings</code> 右键菜单。可以用来将一篇博客文章设置为 Page。这对于创建像 About Us 和 Contact Us 之类的站点级别页面会特别有用。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/article-settings.png" alt="" /></p> 
<p>通过这些新设置，你可以获得类似 <a href="https://planetable.eth.limo">planetable.eth</a> 顶部这样的网站导航设计。这可以通过指定某些文章作为网站导航栏中的条目来实现。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/site-nav.png" alt="" /></p> 
<p>通过点击这个新的列表过滤器，你可以按类型过滤文章，更容易地找到特定页面。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/filter.png" alt="" /></p> 
<p>重新设计过的文章条目视图现在会显示内容类型及附件信息。</p> 
<img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/article-item-view.png" width="365" /> 
<h2>Planet Avatar Picker</h2> 
<p>Planet 现在有一个全新的头像选择界面。让你可以从多组充满设计感的图集中选择一张作为你的 Planet 网站的头像。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/avatar-picker.png" alt="" /></p> 
<p>这次上线的第一个图集，Nostalgia，包含了 99 个简洁而抽象的来自设计师 <a href="https://yihanphotos.eth.limo">yihanphotos.eth</a> 的作品。</p> 
<h2>快速分享</h2> 
<p>现在你可以把图片拖拽到 Planet 图标上，就可以快速分享图片。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/quick-sharing.png" alt="" /></p> 
<h2>Pinnable</h2> 
<p><a href="https://pinnable.xyz">Pinnable</a> 是一个全新的用于 ENS/IPNS 网站的 Pinning 服务。</p> 
<img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/pinned-with-pinnable.png" width="275" /> 
<p>当你使用 Planet app 创建和发布去中心化网站时，你的 Mac 会成为 P2P 网络上的一个节点，用于托管你的网站。通过使用一个 Pinning 服务，你的网站内容的额外副本会被复制到 Pinning 服务的节点上，这样可以让网站的加载速度更快，同时也增加了内容的可达性（availability）。尤其是对于笔记本用户，就不用让电脑一直开着作为服务器。每次当你发布新内容时，Pinnable 就会开始与你的本地节点进行同步，同步完成之后，你的内容就也存了一份到 Pinnable，这样你就不用一直开着自己的机器作为服务器了。</p> 
<p>虽然使用了一个远程服务，你对内容的权威版本依然具有完全的控制。远程服务无法篡改或者删除你的内容。</p> 
<h2>To-Do 列表语法</h2> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/writer-todo-syntax.png" alt="" /></p> 
<p>Planet 的 Markdown 编辑器现在也可以支持类似 GitHub 的 To-Do 语法。并且在 My Planet 的右侧视图中，可以直接点击 To-Do 列表中的项目来勾上已经完成的事项。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/todo-syntax.png" alt="" /></p> 
<h2>YouTube 嵌入</h2> 
<p>如果你在正文中包括了一个 YouTube 的视频链接，那么现在链接会自动转化为一个播放器。</p> 
<p><img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/youtube-autolink.png" alt="" /></p> 
<h2>其他改进</h2> 
<ul> 
 <li>支持用拖拽的方式调整左侧列表中 My Planet 和 Following Planet 的顺序</li> 
 <li>在 Rebuild Planet 时现在会显示一个进度条</li> 
</ul> 
<figure> 
 <img src="https://olivida.eth.sucks/6A9EE20E-55FF-4E89-8EEE-F0AA4717114D/rebuild-progress.png" /> 
 <figcaption>
  Rebuild Planet 时的进度条
 </figcaption> 
</figure> 
<ul> 
 <li>修复了移动文章时的一个问题</li> 
 <li>修复了当 App 长时间运行时可能会发生的一个崩溃问题</li> 
 <li>模版现在可以有自己的设置，这为更复杂的定制模版功能打开了可能性</li> 
 <li>增强了 Markdown Writer 在滚动时的性能</li> 
 <li>Markdown Writer 的时间选择器现在可以选择「今天」</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Colophon</title>
        <link>https://olivida.eth.sucks/40B811CA-CC8D-4A4D-B3FE-97FEDBBFA7BF/</link>
        <guid>https://olivida.eth.sucks/40B811CA-CC8D-4A4D-B3FE-97FEDBBFA7BF/</guid>
        <pubDate>Mon, 01 May 2023 22:24:03 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>这个网站使用 <a href="https://planetable.xyz">Planet</a> 生成。</p> 
<p>Planet 是一个 macOS 原生应用，提供了一个带有图形界面的静态网站生成器，及内置的 IPFS 服务器。这样的话，不仅可以生成像这个网站这样的博客，还可以直接通过本地的电脑向互联网提供服务，对远程服务器没有强依赖关系。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 7</title>
        <link>https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/</link>
        <guid>https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/</guid>
        <pubDate>Wed, 22 Mar 2023 05:57:20 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-7/writer-date-picker.png" />    
        
        
        <description><![CDATA[
            <p>这次的更新包括了新的星标类型，Planet 的 API 服务器，对移动主数据目录的支持，IPNS 私钥管理器，支持更多的社交网络连接，Insider 和 Debug 版本的新图标，及 bug 修复和功能改进。</p> 
<h2>星标类型</h2> 
<p>现在当你在给一篇文章添加星标时，你可以选择几种新的类型，来为星标赋予一个更明确的含义。其中几种类型会让 Planet 具有 To-Do 管理软件的感觉。除了右键点击，现在还可以从工具栏中来管理文章的星标。</p> 
<img width="484" alt="Stars" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/stars.png" /> 
<p>在后续的更新中，我们将会支持更具星标类型过滤文章。</p> 
<h2>文章的日期选择器</h2> 
<p>当你在编辑文章时，可以为文章选择任意日期。无论是过去还是将来。</p> 
<img width="1002" alt="Writer Date Picker" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/writer-date-picker.png" /> 
<h2>API 服务器</h2> 
<p>在 Planet 应用运行的时候，现在可以提供一个 HTTP API 服务器。下面是目前能支持的请求的列表，我们会通过文档提供更具体的使用信息。这是一个 v0 版本的 API，因此在后续的更新中有可能会更改。API 服务器为第三方客户端提供了可能性，尤其是后续对移动设备的支持。</p> 
<ul> 
 <li><code>GET /v0/planets/my</code> - List all my Planets</li> 
 <li><code>POST /v0/planets/my</code> - Create a new Planet</li> 
 <li><code>GET /v0/planets/my/:uuid</code> - Info of a specific My Planet</li> 
 <li><code>POST /v0/planets/my/:uuid</code> - Modify my Planet</li> 
 <li><code>POST /v0/planets/my/:uuid/publish</code> - Publish My Planet</li> 
 <li><code>GET /v0/planets/my/:uuid/public</code> - Expose the content built</li> 
 <li><code>GET /v0/planets/my/:uuid/articles</code> - List articles under My Planet</li> 
 <li><code>POST /v0/planets/my/:uuid/articles</code> - Create a new Article</li> 
 <li><code>GET /v0/planets/my/:uuid/articles/:uuid</code> - Get an article by UUID</li> 
 <li><code>POST /v0/planets/my/:uuid/articles/:uuid</code> - Modify an article</li> 
 <li><code>DELETE /v0/planets/my/:uuid/articles/:uuid</code> - Delete an article</li> 
</ul> 
<img width="501" alt="Planet API Server" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/planet-api-server.png" /> 
<p>你可以在应用的设置中打开 API 服务器，并设置端口号、用户名及密码。</p> 
<h2>移动主数据目录及 IPNS 私钥管理器</h2> 
<p><strong>这还是一个试验性的功能，在使用时请注意数据备份</strong></p> 
<p>Planet 应用在默认情况下，所有的数据存放在这个位置：</p> 
<pre><code>~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet
</code></pre> 
<p>现在在应用设置中，你可以移动这个位置。如果新位置位于 iCloud Drive 或者 Dropbox，那么相当于你就通过云服务备份了数据。</p> 
<p>于此同时，本地的所有 IPNS 私钥，现在可以通过一个新的 Key Manager 来管理及通过 iCloud Keychain 备份，如果你在 iCloud 设置中打开了 iCloud Keychain 功能的话。你可以在 Tools 菜单下找到新的 Key Manager。</p> 
<p>对于所有数据同步的支持还在测试中。上面提到的移动主目录功能，及新的 Key Manager 功能，为数据在几台 Mac 之间的完全同步提供了可能性。但是目前还有一些边缘情况，需要更多的测试及代码上的处理。因此我们任务这个功能目前还处在一个试验性的阶段。在使用时需要小心。## 更多的社交网络连接支持</p> 
<p>现在你可以为你的 Planet 填入这些社交网络的 ID，之后会显示在生成的网站首页，及其他人追随你的 Planet 时看到的信息面板里。</p> 
<ul> 
 <li>Juicebox</li> 
 <li>Mastodon</li> 
 <li>Twitter</li> 
 <li>Telegram</li> 
 <li>GitHub</li> 
</ul> 
<img width="570" alt="Juicebox" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/juicebox.png" /> 
<img width="551" alt="Social" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/social.png" /> 
<h2>Insider 和 Debug 版本的新图标</h2> 
<p>我们会时不时发布 Insider 版本。Insider 版本中包括了最新的功能。这些功能通常在进入稳定版本之前，需要更多的测试。因此我们通过 Insider 版本来让新功能在发布之前能够获得更充分的测试。你可以从 Planet 项目的 GitHub Releases 页面下载最新的 Insider 版本。</p> 
<p><a href="https://github.com/Planetable/Planet/releases">https://github.com/Planetable/Planet/releases</a></p> 
<p>如果你下载并运行了 Insider 版本，那么你会注意到这个版本现在具有一个独特的蓝色图标，具有类似 Xcode 及其他 Apple 开发工具的风格。同时我们也为 Insider 版本添加了专有的升级通道，因此现在 Insider 版本也可以获得自动升级。</p> 
<p>如果你是从源代码构建 Planet，那么你就可以获得这款黄色的具有建设中意味的图标。</p> 
<img width="1200" alt="Icons: Insider and Debug" src="https://olivida.eth.sucks/4D909465-3321-4710-8AEA-10A42B87B484/insider-and-debug.png" style="border-radius: 8px" /> 
<p>在后续的更新中，我们会提供更多的图标选项。比如最近在 <a href="https://pinnable.xyz">Pinnable</a> 项目中出现的<a href="https://juicebox.money/v2/p/471">新设计</a>。</p> 
<h2>其他细节改进</h2> 
<ul> 
 <li>在默认模版中为表格和 To-Do 列表增加了 CSS 样式</li> 
 <li>为 HTML 中的社交网络分享图片使用了更兼容的绝对 URL 地址</li> 
 <li>修复了一个在添加视频时的崩溃问题</li> 
 <li>修复了之前版本中音频播放器按钮不响应的问题</li> 
 <li>为工具栏中的 ETH 打赏功能换上了一个由 SF Symbol 驱动的图标</li> 
 <li>默认的 Plain 主题中的样式微调，带来整体更好的对比度</li> 
 <li>侧栏中的 Planet 图标增加了边框和投影以实现更好的对比度效果</li> 
 <li>模版中现在可以使用一个新的变量用于引用社交网络分享大图 <code>social_image_url</code></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>&#x67AB;&#x8A00;&#x67AB;&#x8BED;</title>
        <link>https://olivida.eth.sucks/460BEFAC-6A31-4561-A97D-EB5F11166B93/</link>
        <guid>https://olivida.eth.sucks/460BEFAC-6A31-4561-A97D-EB5F11166B93/</guid>
        <pubDate>Wed, 04 Jan 2023 23:19:33 -0800</pubDate>
        
        
        <description><![CDATA[
            <p><a href="https://justinyan.me/post/4904">枫言枫语</a>是一档由开发者 <a href="https://justinyan.me/">@枫影JustinYan</a> 和设计师 <a href="https://twitter.com/hzlzh">@自力hzlzh</a> 主持的播客节目，主题是听见科技与人文的声音。</p> 
<p>在 Planet 项目上线前，我有幸参加了节目的<a href="https://justinyan.me/post/4904" target="_blank">第 67 期</a>，聊了聊关于 Planet 项目的构想。</p> 
<p>最近 Justin 在 2023 年新年期间做了一个大动作：他写了一个转换程序，将他的整个 WordPress 驱动的博客的内容转换到了 Planet 的格式，其中也包括了枫言枫语播客的所有音频内容，并绑定到了他的 ENS 上：</p> 
<p><a href="https://justinyan.eth.limo" target="_blank">justinyan.eth</a></p> 
<p>大家可以直接打开那个地址（借助于伟大的 <a href="https://olivida.eth.limo/4B412A73-9C15-4E62-BFC6-157E2D28D0C1/">ETH.LIMO 项目</a>），或者在 Planet 里订阅 justinyan.eth 这个地址。</p> 
<p>因为其中包括了 81 期的音频内容，所以你可以在任何泛用型 Podcast 客户端，如 Apple Podcasts / Overcast / Castro / Pocket Casts 里，订阅下面这个地址：</p> 
<p><a href="https://justinyan.eth.limo/podcast.xml" target="_blank"></a><a href="https://justinyan.eth.limo/podcast.xml">https://justinyan.eth.limo/podcast.xml</a></p> 
<p>Justin 的内容丰富的博客为 Planet 下一步的很多功能需求的开发，提供了实实在在的场景，我们会继续将发现的很多缺失补齐。</p> 
<p>灵感闪现的时刻在每次淋浴的时候都能体会到，但是把灵感转换为行动，并且以年为单位坚持下去，就是另外一回事了。枫言枫语到目前已是第 81 期，内容和制作都在持续变得越来越精良，并且在这个过程中，他们还推出了像 <a href="https://xyzrank.com/">中文播客榜</a> 这样有意思的新项目。</p> 
<p>在第 81 期节目中，他们提到了一些关于钱的数字（<a href="https://www.xiaoyuzhoufm.com/episode/63b4f6ba92f7bae63bec1566">第 81 期节目的 42:32 开始：本台年度财政赤字大起底</a>）：在 2021 年为节目投入了大概 7500 人民币。在 2023 年，预算是 10000。因为目前并没有任何商业化，所以两位主播确实是在一个用爱发电的状态。如果你在 Planet 里 follow 了他们，可以试试用新的 <a href="https://olivida.eth.limo/77A35810-46AC-49F7-8904-8FCDDB41E00E/">WalletConnect 钱包打赏功能</a>来支持一下，所有打赏金额会 100% 直接发送到 justinyan.eth。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 6</title>
        <link>https://olivida.eth.sucks/15AEA9DA-2CD6-4FF6-969A-7899586056CA/</link>
        <guid>https://olivida.eth.sucks/15AEA9DA-2CD6-4FF6-969A-7899586056CA/</guid>
        <pubDate>Sat, 31 Dec 2022 16:33:38 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-6/yihanphotos.eth.png" />    
        
        
        <description><![CDATA[
            <p>这是 2022 年的最后一天。在我们发布这个功能更新时，有些时区已经迈入 2023 年了。新年快乐！感谢大家在这一年对 <a href="https://planetable.xyz">Planet</a> 的关注和支持。</p> 
<p>在 Feature Update 6 中的一个主要更新，是一个全新的页面主题——<strong>Grid</strong>。你可以在下面这个地址看到效果：</p> 
<p><a href="https://yihanphotos.eth.limo" target="_blank">yihanphotos.eth</a></p> 
<img width="959" alt="yihanphotos.eth" src="https://olivida.eth.sucks/15AEA9DA-2CD6-4FF6-969A-7899586056CA/yihanphotos.eth.png" /> 
<p>这是一个为大量的图片和视频所优化的设计。针对 Desktop 和 Mobile 都做了响应式的设计。为了支持这个新的主题，软件本身需要提供一系列数据层面的更新：</p> 
<h3>视频第一帧存为图片文件</h3> 
<p>视频的第一帧会被保存为一个叫做 _videoThumbnail.png 的图片文件。例如这个红冠亚马逊鹦鹉的视频：</p> 
<ul> 
 <li><a href="https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/">https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/</a></li> 
</ul> 
<p>第一帧的图片文件地址：</p> 
<ul> 
 <li><a href="https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_videoThumbnail.png">https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_videoThumbnail.png</a></li> 
</ul> 
<h3>Hero Image</h3> 
<p>如果文章附件中包括了一张足够宽的图片，那么这张图片的名字会可以在模版中以 <code>heroImage</code> 这个变量获得。这会为模版设计带来很多新的可能性。</p> 
<p>同时，这个文件会被额外转换成两个适合在方格布局中使用的版本：_grid.jpg 和 _grid.png。如果附件中包括视频，那么视频的第一帧图片会成为 Hero Image。并且生成两个方格版本，比如：</p> 
<ul> 
 <li><a href="https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.jpg">https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.jpg</a></li> 
 <li><a href="https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.png">https://yihanphotos.eth.limo/665137A4-A9D7-4D7C-92ED-56DA3B3FFF75/_grid.png</a></li> 
</ul> 
<p>这类由 Planet 在渲染时额外生成的图片文件，名称都会是 _ 下划线开头。</p> 
<hr /> 
<p>以上是关于新模版的介绍。在后续的更新中，我们会继续带来模版设计方面的更新。传统的博客系统如 WordPress、Jekyll、Ghost 等，在十多年的积累过程中，积攒了大量经过考验的信息组织方式方面的设计，而这些都是 Planet，从一个静态网站生成器的角度出发，需要接下来全部补齐的。</p> 
<hr /> 
<h2>Published Folders Dashboard</h2> 
<p>Published Folder 是 Planet 在 2022 年 10 月的功能更新加入的新功能——可以把任意的本地文件夹，发布为 IPNS。</p> 
<p>可以把这个功能理解为一个完全图形化界面操作的 IPFS 发布，尤其适合把各种静态网站生成器的 build 结果发布。比如 Jekyll。</p> 
<p>之前这个功能的入口是在 Tools 菜单下。现在你可以在 Tools -&gt; Published Folders -&gt; Dashboard 找到这个新的图形界面管理入口。</p> 
<img width="1035" alt="Published Folders Dashboard" src="https://olivida.eth.sucks/15AEA9DA-2CD6-4FF6-969A-7899586056CA/published-folders-dashboard.png" /> 
<h2>New Template Browser</h2> 
<p>模版管理工具 Template Browser 现在具有一个三栏式的布局可以用于呈现更多信息。并且可以预览模版的首页列表的设计。</p> 
<img width="948" alt="Template Browser UI" src="https://olivida.eth.sucks/15AEA9DA-2CD6-4FF6-969A-7899586056CA/template-browser-ui.png" />
        ]]></description>
    </item>
    
    <item>
        <title>WalletConnect &#x89C6;&#x9891;&#x6F14;&#x793A;</title>
        <link>https://olivida.eth.sucks/77A35810-46AC-49F7-8904-8FCDDB41E00E/</link>
        <guid>https://olivida.eth.sucks/77A35810-46AC-49F7-8904-8FCDDB41E00E/</guid>
        <pubDate>Mon, 12 Dec 2022 20:27:24 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/walletconnect-demo/_videoThumbnail.png" />    
        
        
        <description><![CDATA[
            <p>Planet 在最近的 <a href="https://olivida.eth.limo/D7AC0F34-7C35-4850-8650-3B26979F93B8/">0.11</a> 版本的更新中，加入了通过 WalletConnect 实现的 Ethereum 钱包打赏。你可以给喜欢的 ENS 域名上的内容直接打赏以太币，作者会 100% 收到你的打赏。</p> 
<p>这里是一个视频演示。</p> 
<p><a href="https://walletconnect.com">WalletConnect</a> 是一个被众多手机钱包支持的通讯协议。可以通过安全简单的方式让像 Planet 这样的原生应用，对手机上的钱包发起签名和交易请求，然后用户在手机上确认（通常还会经过指纹或者扫脸解锁）。</p> 
<p>目前 Planet 的打赏功能是通过 WalletConnect V1 实现的，可能是世界上第一个通过 WalletConnect 实现钱包登录的 macOS 原生应用。同时，我们在密切关注各个钱包 App 对 WalletConnect V2 的支持进展，会在后续跟进升级协议。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 5</title>
        <link>https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/</link>
        <guid>https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/</guid>
        <pubDate>Wed, 30 Nov 2022 18:02:32 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-5/sending.png" />    
        
        
        <description><![CDATA[
            <p>这次的功能更新会是首先以 Insider Build 的方式发布，需要从下面的这个 GitHub 链接去下载。因为其中的一些大的变更，在通过自动更新推送给所有用户之前，我们希望能够更充分地测试一下。</p> 
<ul> 
 <li><a href="https://github.com/Planetable/Planet/releases/tag/insider-20221202-1">https://github.com/Planetable/Planet/releases/tag/insider-20221202-1</a></li> 
</ul> 
<p>因为这次会有一个主要的新功能——通过 ETH 直接给内容创作者打赏。具体的使用方式是这样的：</p> 
<h2>ETH Tipping</h2> 
<p>在 0.11 版本的 Planet 中，可以在菜单 Planet 下找到一个新的选项——Connect Wallet。</p> 
<img width="495" alt="Connect Wallet" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/connect-wallet.png" /> 
<p>然后用支持 WalletConnect 的钱包应用扫描弹出的二维码，然后 Planet 应用里就可以知道你的钱包地址及向应用发起交易请求。在这个阶段，不会有签名操作。</p> 
<img width="1140" alt="Planet WalletConnect QR Code Example" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/qr-code-example.png" /> 
<p>之后当你在 Planet 里访问 .eth 域名上的网站时，在 Toolbar 里会出现这个新的打赏按钮。如果在你 Follow 的 .eth 网站的 Toolbar 里没有出现这个按钮，那么请右键在 Planet 名称上点击 Check for update 解析 ENS 后面对应的钱包地址。并且，这个打赏按钮只会在连接了钱包之后才会出现。</p> 
<img width="648" alt="Tip Button" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/tip-button.png" /> 
<p>按下之后就可以选择打赏金额——从 0.02E 到 1E 的几个不同的级别。如果你使用的是 MetaMask 的手机版本，那么这里还可以选择使用哪个网络发送，目前支持主网、测试网 Goerli 和测试网 Sepolia。</p> 
<img width="1140" alt="Tip Tiers" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/tip-tiers.png" /> 
<p>点击 Send 之后，这时手机上的钱包应用就会弹出一个转账确认。按下确认之后，打赏就发送到目标地址了。这是一笔简单的两个 ETH 地址之间的转账，你选择的打赏金额会 100% 进入内容创作者的钱包。</p> 
<img width="1140" alt="Sending 0.02 ETH to vitalik.eth" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/sending.png" /> 
<p>如果你在连接钱包的时候使用的应用是 <a href="https://rainbow.me">Rainbow</a>，那么需要注意的是 Rainbow 会在连接界面的右下角让你选择网络。如果你希望连接的是测试网 Goerli，那么需要在这里选择。如果你没有看到 Goerli 的选项，那么需要在 Rainbow 的设置中打开对 Testnet 的支持。之后在发送交易时，Rainbow 不支持交易时切换网络，会永远使用一开始的选择。</p> 
<p>点击主界面左上方的钱包地址按钮，就可以看到所有过去发出的打赏记录：</p> 
<img width="1140" alt="ETH Transaction History" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/transaction-history.png" /> 
<p><a href="https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202">MetaMask</a> 和 <a href="https://apps.apple.com/us/app/rainbow-ethereum-wallet/id1457119021">Rainbow</a> 是我们在开发这个功能的过程中，主要测试过的两个应用。如果你使用的是其他支持 WalletConnect 的应用，可以在 GitHub 的 <a href="https://github.com/Planetable/Planet/discussions">Discussions</a> 里告知我们，我们来试着进行更多的测试。目前，我们推荐使用的手机钱包 App 是 MetaMask 和 Rainbow。</p> 
<ul> 
 <li>MetaMask for iOS: <a href="https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202">https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202</a></li> 
 <li>Rainbow for iOS: <a href="https://apps.apple.com/us/app/rainbow-ethereum-wallet/id1457119021">https://apps.apple.com/us/app/rainbow-ethereum-wallet/id1457119021</a></li> 
</ul> 
<hr /> 
<p>上面是 0.11 版本中新增的 ETH 打赏功能的介绍。</p> 
<p>下面是本次更新中带来的其他功能和修复。</p> 
<h2>Published Folder 的自动发布</h2> 
<p>Published Folder 是我们在上一个版本中加入的新功能——你可以把任意的本地文件夹发布为一个 IPNS。如果你之前已经在使用某个静态网站生成器，那么这个功能可以帮助你快速把构建结果发布为 IPNS。</p> 
<img width="1039" alt="Automatically Publish" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/automatically-publish.png" /> 
<p>新增加的 <code>Automatically Publish</code> 开关可以自动监测文件夹内的内容变化，然后在每次变化发生时，将最新的 CID 写入 IPNS 实现内容的自动更新。</p> 
<h2>在不同的 Planet 之间移动文章</h2> 
<p>现在如果你右键点击文章，就可以找到一个新的选项让你可以在 Planet 之间移动文章。</p> 
<img width="1097" alt="Move Article" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/move-article.png" /> 
<p>比如你可以指定一个 Planet 来作为你的草稿箱，在里面写作和调整文章的样式，然后在完全满意之后，再把这篇文章移动到需要正式发布的那个 Planet。比如你现在看到的这篇文章，就是用这样的流程完成的。</p> 
<h2>Archive/Unarchive</h2> 
<p>现在你可以把自己创建的或者正在追踪的 Planet 设置为 Archive 状态。Archive 状态的 Planet 不会显示在侧栏中，也不会被自动发布或者更新，但是所有的数据会在本地保留。</p> 
<p>之后如果你想找回，可以从 Planet 的设置面板中 Unarchive。</p> 
<h2>用于显示 Planet 的 IPNS 和 CID 信息的新面板</h2> 
<p>如果你需要获得一个 Planet 的 IPNS 或者最新的 CID，那么现在可以右键单击，然后找到一个新的菜单选项 Show IPNS and CID 就可以看到。</p> 
<img width="1140" alt="Show IPNS and CID" src="https://olivida.eth.sucks/D7AC0F34-7C35-4850-8650-3B26979F93B8/show-ipns-and-cid.png" /> 
<hr /> 
<p>感谢大家对这个项目的持续支持。这次的新功能——ETH 打赏希望大家能够帮忙多多测试。如果需要获得 GoerliETH 测试网上的 ETH 来体验这个功能，可以通过下面这个网站挖一些试试：</p> 
<ul> 
 <li><a href="https://goerli-faucet.pk910.de/">Goerli PoW Faucet</a></li> 
</ul> 
<p>如果你在使用中遇到问题，可以从以下社区渠道向开发者反馈或者寻求社区协助：</p> 
<ul> 
 <li>Telegram 上的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Planet 中文用户群</a></li> 
</ul> 
<p>如果你十分确定遇到了软件实现上的 bug，那么可以通过 GitHub Issues 向我们描述如何复现 bug，我们会尽快调查和解决。</p> 
<ul> 
 <li>GitHub 上的 <a href="https://github.com/Planetable/Planet">Planet 项目</a></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>&#x5173;&#x4E8E;&#x7528; PubSub &#x6765;&#x5B9E;&#x73B0;&#x4E92;&#x52A8;&#x5185;&#x5BB9;&#x7684;&#x4E00;&#x4E9B;&#x6784;&#x60F3;</title>
        <link>https://olivida.eth.sucks/23F37D68-92CE-4626-9F8F-BB8C642265C3/</link>
        <guid>https://olivida.eth.sucks/23F37D68-92CE-4626-9F8F-BB8C642265C3/</guid>
        <pubDate>Mon, 07 Nov 2022 22:31:01 -0800</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/23F37D68-92CE-4626-9F8F-BB8C642265C3/pubsub.png" />    
        
        
        <description><![CDATA[
            <p><a href="https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#ipfs-pubsub">PubSub</a> 是 IPFS 中的一项实验性的功能，默认没有在 kubo 发布版本中打开。它的具体工作方式是这样的：</p> 
<ul> 
 <li>节点 A 向一个名称为 X 的 channel 发布消息</li> 
 <li>如果节点 B 和 A 互相是 peers，并且节点 B 正在监听同样名称的 channel，那么就可以实时收到这条消息</li> 
</ul> 
<p>在 Planet 搭载的 kubo 中，打开了这个功能，因为它可以实现更快的 IPNS 信息更新。这也是 kubo 的另外一个实验性的功能：<a href="https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#ipns-pubsub">通过 PubSub 更新 IPNS</a>。</p> 
<p>于是，基于 PubSub，有可能可以实现一些很有趣的互动玩法。</p> 
<h2>对文章的点赞和评论</h2> 
<p>目前 Planet 的信息发布和传播模式，是一种类似广播的单向模式：写文章的人可以把自己的作品向外传递出去，通过 IPNS 或者 ENS，但是无法收到来自读者的反馈，比如评论和点赞之类的互动是不存在的。</p> 
<p>如果，Planet 里增加一个基于 PubSub 的互动玩法，就可以这样实现：</p> 
<ul> 
 <li>Planet app 监听所有本地 IPNS 同名的 channel</li> 
 <li>读者可以向这些 channel 发送点赞或者评论</li> 
 <li>如果监听方收到这些点赞和评论，就存入本地的 <code>comments.json</code> 和 <code>likes.json</code> 这样的文件，然后定时重新渲染网站发布。</li> 
</ul> 
<p>这样的话，就在一个完全去中心化的环境里，实现了点赞和评论。</p> 
<h2>话题投稿、公共空间、话题广场</h2> 
<p>PubSub channel 的另外一种用法，可以被当作一个公共容器。</p> 
<p>比如你写了一篇关于 Ethereum 这个标签的文章，那么就可以把文章的 IPNS + UUID 作为一条消息发送到一个叫做 <code>planet:tags:ethereum</code> 的 channel。</p> 
<p>另外一端，如果有程序持续在监听这个 channel，就可以把所有收到的 URL 保存及抓取，然后生成一个专门关于这个 tag 的网站。</p> 
<p>整个发送、接收、展示的步骤，都是自组织、无需许可的。</p> 
<h2>一些可能的问题</h2> 
<p>PubSub 机制要能完全按照期待的那样正常工作，需要满足两个稍微有些苛刻的条件：</p> 
<ul> 
 <li>发送方和接收方需要同时在线。因为中间并没有任何暂存机制，而是一种广播机制，所以如果消息发送的时候，接收方没有在线。那么稍后接收方在线的时候，并不能看到之前的消息。一种解决方式是发送方重复发送很多次，把去重（deduplication）这个问题交给接收方去处理。</li> 
 <li>发送方和接收方需要是彼此的 peers。这个问题在 WAN 复杂的网络条件下，究竟会如何影响 PubSub 功能的使用体验，及能对此做什么优化，我还需要通过代码尝试更多的实际情况才能知道。</li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Elon Musk &#x5728;&#x5B8C;&#x6210;&#x6536;&#x8D2D; Twitter &#x4E4B;&#x540E;&#x5199;&#x7ED9; Advertisers &#x7684;&#x516C;&#x5F00;&#x4FE1;</title>
        <link>https://olivida.eth.sucks/B740813B-7F72-4CEC-989C-DC845EE4DCF5/</link>
        <guid>https://olivida.eth.sucks/B740813B-7F72-4CEC-989C-DC845EE4DCF5/</guid>
        <pubDate>Thu, 27 Oct 2022 15:45:22 -0700</pubDate>
        
        
        <description><![CDATA[
            <p><a href="https://twitter.com/elonmusk/status/1585619322239561728">原始链接</a>是 Twitter 的 3 张图片，下面是用 Safari 的图片转文字功能获得的文本。</p> 
<hr /> 
<p>I wanted to reach out personally to share my motivation in acquiring Twitter. There has been much speculation about why I bought Twitter and what I think about advertising. Most of it has been wrong.</p> 
<p>The reason I acquired Twitter is because it is important to the future of civilization to have a common digital town square, where a wide range of beliefs can be debated in a healthy manner, without resorting to violence. There is currently great danger that social media will splinter into far right wing and far left wing echo chambers that generate more hate and divide our society.</p> 
<p>In the relentless pursuit of clicks, much of traditional media has fueled and catered to those polarized extremes, as they believe that is what brings in the money, but, in doing so, the opportunity for dialogue is lost.</p> 
<p>That is why I bought Twitter. I didn't do it because it would be easy. I didn't do it to make more money. I did it to try to help humanity, whom I love. And I do so with humility, recognizing that failure in pursuing this goal, despite our best efforts, is a very real possibility.</p> 
<p>That said, Twitter obviously cannot become a free-for-all hellscape, where anything can be said with no consequences! In addition to adhering to the laws of the land, our platform must be warm and welcoming to all, where you can choose your desired experience according to your preferences, just as you can choose, for example, to see movies or play video games ranging from all ages to mature.</p> 
<p>I also very much believe that advertising, when done right, can delight, entertain and inform you; it can show you a service or product or medical treatment that you never knew existed, but is right for you. For this to be true, it is essential to show Twitter users advertising that is as relevant as possible to their needs. Low relevancy ads are spam, but highly relevant ads are actually content!</p> 
<p>Fundamentally, Twitter aspires to be the most respected advertising platform in the world that strengthens your brand and grows your enterprise. To everyone who has partnered with us, I thank you. Let us build something extraordinary together.</p> 
<hr /> 
<p>DeepL 的中文翻译：</p> 
<hr /> 
<p>我想以个人名义来分享我收购 Twitter 的动机。关于我为什么收购 Twitter 以及我对广告的看法，已经有很多猜测。其中大部分都是错误的。</p> 
<p>我收购推特的原因是，拥有一个共同的数字城市广场对人类文明的未来非常重要，在这里可以以健康的方式对各种信仰进行辩论，而不诉诸暴力。目前有一个很大的危险，就是社交媒体会分裂成极右翼和极左翼的回音室，产生更多的仇恨，分裂我们的社会。</p> 
<p>在对点击率的不懈追求中，许多传统媒体已经助长并迎合了这些极化的极端主义，因为他们认为这就是带来金钱的原因，但是，在这样做时，失去了对话的机会。</p> 
<p>这就是我购买 Twitter 的原因。我这样做并不是因为这很容易。我这样做不是为了赚更多的钱。我这样做是为了试图帮助我所爱的人类。我是带着谦卑的态度这样做的，因为我认识到，尽管我们做出了最大的努力，但在追求这一目标的过程中，失败是一种非常现实的可能性。</p> 
<p>也就是说，推特显然不能成为一个自由放纵的地狱，在那里可以说任何话而不承担任何后果！。除了遵守国家法律之外，我们的平台必须对所有人都是温暖的，你可以根据你的喜好选择你想要的体验，就像你可以选择，比如说，看电影或玩视频游戏，从所有年龄段到成熟。</p> 
<p>我也非常相信，广告，如果做得好的话，可以让你高兴、娱乐和知情；它可以向你展示一个你从来不知道存在的服务或产品或医疗，但却适合你。要做到这一点，向Twitter用户展示尽可能与他们的需求相关的广告是至关重要的。低相关性的广告是垃圾邮件，但高度相关的广告实际上是内容！。</p> 
<p>从根本上说，Twitter 渴望成为世界上最受尊重的广告平台，加强你的品牌，发展你的企业。对每一个与我们合作的人，我都感谢你们。让我们一起打造非凡的东西。</p> 
<p>2022 年 10 月 27 日</p> 
<hr /> 
<p>2023 年 11 月 12 日使用 GPT-4 的翻译</p> 
<hr /> 
<p>我想亲自与你分享，我收购Twitter的动机。关于我为什么买下Twitter以及我对广告的看法，一直有很多猜测。其中大部分是错误的。</p> 
<p>我收购Twitter的原因是因为它对文明的未来非常重要，需要有一个公共的数字城市广场，在这里可以健康地辩论各种信仰，而不必诉诸暴力。目前社交媒体有很大的风险，会分裂成极右翼和极左翼的回音室，这些回音室会产生更多的仇恨并分裂我们的社会。</p> 
<p>在追求点击量的无情过程中，大部分传统媒体已经助长并迎合了这些两极分化的极端，因为他们认为这就是带来金钱的方式，但在这样做的过程中，对话的机会就丧失了。</p> 
<p>这就是我为什么买下Twitter的原因。我这么做不是因为它会容易。我也不是为了赚更多的钱。我这么做是为了尝试帮助我所爱的人类。而且我怀着谦卑的态度这么做，认识到尽管我们尽了最大努力，但在追求这个目标的过程中失败是一个非常真实的可能性。</p> 
<p>话虽如此，Twitter显然不能成为一个毫无限制的恶劣空间，在那里任何话都可以无后果地说出来！除了遵守国家法律外，我们的平台必须对所有人温暖而欢迎，你可以根据自己的偏好选择你想要的体验，就像你可以选择看电影或玩游戏一样，从适合所有年龄段到成熟。</p> 
<p>我也非常相信，如果做得正确，广告可以使你感到愉悦、娱乐并且获得信息；它可以向你展示一种你从未知道的服务、产品或医疗治疗，但却适合你。为了实现这一点，向Twitter用户展示尽可能与他们需求相关的广告是至关重要的。关联度低的广告是垃圾邮件，但高度相关的广告实际上是内容！</p> 
<p>从根本上说，Twitter的愿景是成为世界上最受尊敬的广告平台，加强你的品牌并发展你的企业。对于所有与我们合作的人，我表示感谢。让我们一起建立一些非凡的东西。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 4</title>
        <link>https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/</link>
        <guid>https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/</guid>
        <pubDate>Fri, 14 Oct 2022 08:57:57 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-4/podcast-settings.png" />    
        
        
        <description><![CDATA[
            <p>欢迎来到 Planet 在 2022 年 10 月 12 日发布的 Feature Update 4。在这次的功能更新中，我们为你带来了 4 个大的主要功能，及其他细节问题上的修复。</p> 
<p>下面的链接是从 0.9.2 到 0.10.0 版本之间的所有改动的更新日志：</p> 
<p><a href="https://github.com/Planetable/Planet/compare/release-0.9.2...release-0.10.0">https://github.com/Planetable/Planet/compare/release-0.9.2...release-0.10.0</a></p> 
<h2>发布本地目录到 IPNS</h2> 
<p>现在你可以在 Planet 把本地的任意目录发布为一个 IPNS。这个功能可以在菜单 Tools -&gt; Published Folders 找到。</p> 
<img width="612" alt="published-folders" src="https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/published-folders.png" /> 
<p>这样的话，意味着可以用 Planet 发布其他静态网站生成器的构建结果，比如用 Jekyll、Hugo、Zola 等构建的网站，发布为 IPNS。</p> 
<p>比如这是一个用 Jekyll 构建的网站：</p> 
<ul> 
 <li>传统域名 <a href="https://livid.v2ex.com/">https://livid.v2ex.com/</a></li> 
 <li>使用 Planet 0.10+ 发布的 IPNS <a href="https://cf-ipfs.com/ipns/k51qzi5uqu5dk40pdgrqh5e6soy2bide88stdbkx8h7jjwvo5cb3xbkb2b7wmq">k51qzi5uqu5dk40pdgrqh5e6soy2bide88stdbkx8h7jjwvo5cb3xbkb2b7wmq</a></li> 
</ul> 
<p>上面的这个 IPNS 也可以直接在 Planet 里 Follow。</p> 
<h2>Filebase Pinning</h2> 
<img width="1238" alt="Filebase: Pinned" src="https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/filebase-pinned.png" /> 
<p><a href="https://www.filebase.com/" target="_blank">Filebase</a> 目前提供免费的 5GB 存储空间及 Pinning 服务。关于这个功能的具体使用方式，可以查看我们之前的博客内容：</p> 
<p><a href="https://olivida.eth.limo/9BE484CD-0EA5-4742-927E-FA56F7591CC2/" target="_blank"></a><a href="https://olivida.eth.limo/9BE484CD-0EA5-4742-927E-FA56F7591CC2/">https://olivida.eth.limo/9BE484CD-0EA5-4742-927E-FA56F7591CC2/</a></p> 
<p>借助 Pinning 服务，只要在每次内部发布完成之后，再稍微多等待一会让 Pinning 服务也保存一份内容之后，就可以合上你的笔记本了。同时你的访客也会获得更快的速度。</p> 
<p>我们会在将来提供对更多 Pinning 服务的支持。关于 Pinning 服务的一些设想，还可以看我之前的这篇文章：</p> 
<p><a href="https://olivida.eth.limo/09582A3A-7F32-4E3D-97B0-3105DFE42566/" target="_blank"></a><a href="https://olivida.eth.limo/09582A3A-7F32-4E3D-97B0-3105DFE42566/">https://olivida.eth.limo/09582A3A-7F32-4E3D-97B0-3105DFE42566/</a></p> 
<h2>Custom Code</h2> 
<p>如果你需要在 Planet 构建出来的网站的 HTML 的 head 或者 body 插入代码，比如各类流量统计或者第三方的评论系统。现在可以有更简单的方式了，之前需要编辑本地模版。</p> 
<p>现在可以在 My Planet 上右键选择 Custom Code 就可以设置插入代码。</p> 
<img width="429" alt="Planet: Custom Code" src="https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/custom-code.png" /> 
<p>然后就可以在 3 个可能的位置插入定制代码：</p> 
<ul> 
 <li>&lt;head&gt;&lt;/head&gt; 中间</li> 
 <li>&lt;body&gt; 开始</li> 
 <li>&lt;/body&gt; 结束之前</li> 
</ul> 
<img width="563" alt="Planet: Custom Code" src="https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/custom-code-sheet.png" /> 
<h2>RSS 及 Podcast 支持</h2> 
<p>现在 Planet 在生成网站时，也可以同时生成 RSS 文件。比如你当前正在查看的这个博客的 RSS 地址是：</p> 
<p><a href="https://olivida.eth.limo/rss.xml" target="_blank">olivida.eth.limo/rss.xml</a></p> 
<p>如果你发布过音频内容，那么 Planet 还可以为你生成符合 Apple Podcast 标准的，只包括音频内容的 XML 文件，地址是在域名根目录下的 podcast.xml：</p> 
<p><a href="https://olivida.eth.limo/podcast.xml" target="_blank">olivida.eth.limo/podcast.xml</a></p> 
<p>右键点击 My Planet 可以找到新的 Podcast 设置，里面可以单独为 Podcast 频道设置封面图及选择分类。</p> 
<img width="571" alt="Podcast Settings" src="https://olivida.eth.sucks/BE667AFC-8C21-41AD-B37E-C76341EFD988/podcast-settings.png" /> 
<p>完整的 Podcast 发布平台还有许多细节功能需要做。我们会在未来持续更新和 Podcast 有关的实现。</p> 
<h2>其他细节改进</h2> 
<ul> 
 <li>修复了在构建网站时一个没有必要的 CID 变化</li> 
 <li>增加了针对 localhost 上的 IPFS API 端口在 WKWebView 里的屏蔽规则</li> 
 <li>RSS 订阅时，如果页面上发现了多个不同格式，那么优先选择 JSON Feed</li> 
 <li>增加了 Insider Build 预览测试版的发布渠道</li> 
 <li>更新内置 kubo 版本到 0.15。我们也测试了最新的 0.16，但其中似乎有一个未修复的资源消耗问题，因此在本次更新时，没有使用最新的 0.16 而是使用了 0.15。</li> 
 <li>使用 SecureField 显示所有涉及 API Token 的部分，防止在截图或者屏幕共享时泄露敏感信息。</li> 
 <li>🌟 <a href="https://matters.news/@web3/337152-matters-lab-%E8%88%87-planetable-xyz-%E9%81%94%E6%88%90%E6%88%B0%E7%95%A5%E5%A4%A5%E4%BC%B4%E5%90%88%E4%BD%9C%E9%97%9C%E4%BF%82-bafyreifdjatteouzchvustaxj3o4a34ka6wb2xi3wxbivuvsgyzuagsolq">支持订阅 Matters Lab 发布的 IPNS</a></li> 
</ul> 
<hr /> 
<p>以上是本次 0.10 更新里的主要新功能和改进。如果你在使用中遇到问题，可以从以下社区渠道向开发者反馈或者寻求社区协助：</p> 
<ul> 
 <li>Telegram 上的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Planet 中文用户群</a></li> 
</ul> 
<p>如果你十分确定遇到了软件实现上的 bug，那么可以通过 GitHub Issues 向我们描述如何复现 bug，我们会尽快调查和解决。</p> 
<ul> 
 <li>GitHub 上的 <a href="https://github.com/Planetable/Planet">Planet 项目</a></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Insider Build &#x53CA; Pinning &#x6D4B;&#x8BD5;</title>
        <link>https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/</link>
        <guid>https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/</guid>
        <pubDate>Thu, 29 Sep 2022 22:44:23 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/insider-build/filebase-status.png" />    
        
        
        <description><![CDATA[
            <p>为了能够在正式发布功能之前进行更充分的测试，我们在 GitHub 上增加了一个新的 Release 类型：Insider Build</p> 
<p>目前最新的 Insider Build 可以从这里下载：</p> 
<p><a href="https://github.com/Planetable/Planet/releases/tag/insider-20221013-1">https://github.com/Planetable/Planet/releases/tag/insider-20221013-1</a></p> 
<p>这个版本中增加的新功能是借助 <a href="https://www.filebase.com/" target="_blank">Filebase</a> 提供的 Pinning 服务，来让 Planet 中发布的内容可以更快地分发。</p> 
<h2>Pinning 服务是什么？</h2> 
<p>在初始状态下，用 Planet 发布的内容，通过本地运行的 IPFS 节点对外提供服务。如果打个比方，这样的状态就像是在用 BitTorrent 下载时，一开始，最初的内容发布者，是整个网络里唯一的做种者（seeder）。</p> 
<p>当其他人需要访问内容时，就需要在 P2P 网络上找到做种者。所以，如果没有能够找到，或者连接不顺畅，那么也就无法访问内容。</p> 
<p>而 Pinning 服务，就是在发布内容时，使用 API 通知的方式，让 Pinning 服务也保存一份内容，这样网络上就会有更多的 seeder，内容也就会更容易被找到和下载。</p> 
<h2>Filebase</h2> 
<p>Filebase 是一家提供分布式存储的初创公司。他们在最近支持了 IPFS，并且提供了一个<a href="https://ipfs-shipyard.github.io/pinning-service-compliance/api.filebase.io.html" target="_blank">很可靠</a>的 <a href="https://docs.filebase.com/api-documentation/ipfs-pinning-service-api" target="_blank">Pinning API</a>。于是基于这个 API，我们为 Planet 添加了第一个 Pinning 服务集成。</p> 
<h2>开始使用 Filebase</h2> 
<p>以下是启用 Filebase 来为 Planet 提供 Pinning 的步骤。</p> 
<ol> 
 <li> <p>首先需要<a href="https://www.filebase.com" target="_blank">注册一个免费的 Filebase 账号</a>。目前，免费账号可以获得 5GB 的 IPFS 存储空间。</p> </li> 
 <li> <p>点击 Filebase 主界面左侧的 Buckets，然后按 Create Bucket 创建一个新的存储桶。需要输入一个名字，比如 planet，然后下面 Storage Network 就保持默认的 IPFS (Always public)</p> </li> 
</ol> 
<img width="1233" alt="filebase-create-bucket" src="https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/filebase-create-bucket.png" /> 
<ol start="3"> 
 <li>创建 bucket 完成之后，点击左侧的 Access Keys，然后在 IPFS Pinning Service API Endpoint 那里选中刚才创建的 bucket，然后按下面的 Copy 就可以获得 Pinning API 的 API Token，是一串很长的字符串，请当作一种密码保管。</li> 
</ol> 
<img width="2466" alt="filebase-access-keys" src="https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/filebase-access-keys.png" /> 
<ol start="4"> 
 <li>回到想要启用 Pinning 的 My Planet，右键点击 Edit Planet，然后切换到 Pinning Tab，填入一个 Pin Name，比如 ENS 或者其他 URL 友好的名字。及刚才获得的 API Token。然后按下 OK 保存。</li> 
</ol> 
<img width="1238" alt="filebase-api-token" src="https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/filebase-api-token.png" /> 
<ol start="5"> 
 <li>之后每次你的网站发布新内容时，就会通知 Filebase 也保存副本。目前 Filebase 会在 3 个不同的节点上保存内容。如果你 Edit Planet 然后切换到 Pinning Tab，还可以看到内容在 Filebase 上的状态：</li> 
</ol> 
<ul> 
 <li>Pinning - 内容正在被复制到 Filebase</li> 
 <li>Pinned - 内容已经完成复制</li> 
 <li>Queued - 正在排队等候</li> 
 <li>Unknown - 出错了，状态未知</li> 
</ul> 
<p>如果出现 Unknown 状态，那么需要检查输入的 API Token 是否正确。可以从 Filebase 网站上重新复制之后重新在 Planet 里填入。</p> 
<img width="1238" alt="filebase-pinned" src="https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/filebase-pinned.png" /> 
<p>那个 Pinned 状态的按钮是可以按的，会打开 Pinned 内容在 Filebase 的 Gateway 上类似这样的地址：</p> 
<p><a href="https://ipfs.filebase.io/ipfs/bafybeihkepvteld5u7rmca6ud2cmi5pnpluwpvz6wtmnepmsmyner7xkq4/">https://ipfs.filebase.io/ipfs/bafybeihkepvteld5u7rmca6ud2cmi5pnpluwpvz6wtmnepmsmyner7xkq4/</a></p> 
<p>内容成功 Pinned 之后，也可以在 Filebase 网站上看到状态：</p> 
<img width="2466" alt="filebase-status" src="https://olivida.eth.sucks/9BE484CD-0EA5-4742-927E-FA56F7591CC2/filebase-status.png" /> 
<hr /> 
<p>Pinning 服务的集成，是一个很新也很复杂的功能，如果你在使用过程中遇到任何问题，欢迎加入 Planet 的 Telegram 群讨论或寻求开发者帮助：</p> 
<p><a href="https://t.me/+5bl7FIsxeChlOWIz">https://t.me/+5bl7FIsxeChlOWIz</a></p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 3</title>
        <link>https://olivida.eth.sucks/37FAB0F7-A2CA-4AA8-AC8D-BB40CC713F49/</link>
        <guid>https://olivida.eth.sucks/37FAB0F7-A2CA-4AA8-AC8D-BB40CC713F49/</guid>
        <pubDate>Wed, 21 Sep 2022 03:05:05 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-3/general-setting-public-gateway.png" />    
        
        
        <description><![CDATA[
            <p>欢迎来到 Planet 在 2022 年 9 月 18 日发布的 Feature Update 3。在这次的功能更新中，我们为你带来了 2 个大的主要功能，及诸多细节问题上的修复。</p> 
<p>下面的链接是从 0.8.1 到 0.9.2 版本之间的所有改动的更新日志：</p> 
<p><a href="https://github.com/Planetable/Planet/compare/release-0.8.1...release-0.9.2">https://github.com/Planetable/Planet/compare/release-0.8.1...release-0.9.2</a></p> 
<h2>Follow .bit</h2> 
<p>现在在 Follow Planet 时，可以支持 <a href="https://app.did.id/explorer?inviter=olivida.bit">.bit</a> 域名。</p> 
<p>.bit 域名是另外一个基于区块链的域名系统，底层数据存储和计算用的链是 <a href="https://www.nervos.org/">Nervos Network</a>。</p> 
<p>和 ENS 类似，.bit 也提供对 dWeb 的支持，你可以在给你的 .bit 域名绑定用 Planet 生成 IPNS 地址，这样你的 .bit 域名上就可以有用 Planet 构建的网站。.bit 的公共网关是 .bit.cc，比如 olivida.bit 上的 IPNS 可以用这个地址访问到：</p> 
<p><a href="https://olivida.bit.cc">https://olivida.bit.cc</a></p> 
<p>和 ENS 不同的是，.bit 在更新 dWeb 纪录的时候，不需要付出额外的 gas 费，因为 .bit 在注册时，注册费中就已经包括了一定数量的数据更新所需要的费用。</p> 
<h2>dWebServices.xyz</h2> 
<p><a href="https://dwebservices.xyz">dWebServices.xyz</a> 提供托管的 IPNS 纪录。你可以在 Planet 的设置窗口中填入 dWebServices.xyz 的 API Key 和域名，之后每次你的 Planet 更新时，最后的 CID 就会被设置到 dWebServices.xyz 上的 IPNS 记录。这样，除了 Planet 自带的 IPNS 记录，你会获得一个额外的位于 dWebServices.xyz 上的 IPNS 记录。这对于笔记本电脑用户可能会更方便，因为这样你不需要一直开机来保证你的 IPNS 记录存活。但在 Pinning 服务被引入之前，依然需要确保网络上至少有一个节点保存了你的内容，这样其他人才能访问和 Follow 你的网站。</p> 
<img width="1214" alt="dwebservices-api-key" src="https://olivida.eth.sucks/37FAB0F7-A2CA-4AA8-AC8D-BB40CC713F49/dwebservices-api-key.png" /> 
<p>我们会在未来的功能更新中提供 Pinning 服务的集成，这样使用笔记本电脑运行 Planet 的用户，在每次内容更新后，只需要再稍微等一下，等远程的 Pinning 服务获得内容之后，就可以彻底把本子合上了。</p> 
<p>或是通过一个 <a href="../09582A3A-7F32-4E3D-97B0-3105DFE42566/">Pinning DAO</a> 来实现这样的效果。</p> 
<h2>功能细节改进</h2> 
<ul> 
 <li>现在 Planet 应用的主窗口可以记住位置和尺寸，不会在每次关闭又重开的时候回到一个默认尺寸。</li> 
 <li>全局设置中增加了选择公共网关的选项。</li> 
</ul> 
<img width="532" alt="general-setting-public-gateway" src="https://olivida.eth.sucks/37FAB0F7-A2CA-4AA8-AC8D-BB40CC713F49/general-setting-public-gateway.png" /> 
<ul> 
 <li>更新了和 Cloudflare 的 peering 设置，现在内容可以更顺畅地被 Cloudflare 的公共网关找到。</li> 
 <li>本地 IPFS 设置中增加了对 <a href="https://webui.ipfs.io">webui.ipfs.io</a> 的 CORS 允许，这样你可以通过 webui.ipfs.io 查看本地 IPFS 节点的一些状态。</li> 
 <li>增加了对 Planet 内部链接的支持，如果现在你相对链接同一个 Planet 中的其他文章，那么应用将可以正确跳转和设置焦点。</li> 
 <li>初步支持了链接到另外一个 Planet，比如 <a href="planet://zh.gamedb.eth">planet://zh.gamedb.eth</a> 。如果你已经 Follow，那么会跳转到这个 Planet。如果你还没有 Follow，那么会尝试 Follow 这个地址。</li> 
 <li>修复了文章列表中未读数更新不实时的问题。</li> 
 <li>顶部工具栏增加了单篇文章的分享按钮。</li> 
 <li>降低了 IPFS 进程保持的连接数，可以一定程度降低 IPFS 对资源的消耗。我们会在后续的更新中提供更细致的调整选项。</li> 
 <li>修复了 Mark All as Read 没有正常工作的问题。</li> 
 <li>修复了内容检查更新时可能导致风火轮的一个性能问题。</li> 
 <li>在 Planet 的信息面板中，增加对了 ENS 类型 Planet 的标识。</li> 
 <li>在 Planet 的信息面板中，可以正确显示其中的 Markdown 语法。也就是说，你可以在 Planet 的 about 信息中使用 Markdown。比如这样的链接：</li> 
</ul> 
<img width="368" alt="planet-info-markdown" src="https://olivida.eth.sucks/37FAB0F7-A2CA-4AA8-AC8D-BB40CC713F49/planet-info-markdown.png" /> 
<ul> 
 <li>在 Unfollow Planet 操作上增加了一个确认框防止误操作。</li> 
 <li>Planet 的信息设置窗口现在使用 TabView 来更好地组织更多信息。</li> 
 <li>Planet 信息中可以填入 GitHub / Twitter 用户名，在模版渲染时会用上这些信息。</li> 
 <li>修复了打开 Plausible.io Dashboard URL 时的一个编码问题。（感谢来自 <a href="https://github.com/Planetable/Planet/commit/915671892324b1ccd6369ac1ed9b7d4f8731912b">@Fatpandac</a> 的 PR）</li> 
 <li>修复了一个编辑器预览区域没有同步滚动的 regression 问题。</li> 
 <li>编辑器窗口会按照所属的 Planet 记住尺寸和位置。</li> 
 <li>支持自建版本的 Plausible.io 流量统计服务。</li> 
 <li>首页模版渲染时新增变量 hasAvatar，模版设计者可以根据这个变量定制是否显示 Planet 的图标。</li> 
 <li>如果为 Planet 设置了图标，那么图标也会被保存为 32x32 的位于根目录的 favicon.ico。</li> 
 <li>支持通过 The Iconfactory 的 <a href="https://blog.iconfactory.com/2022/06/worldwideweb-part-2/">WorldWideWeb</a> 应用来预览本地构建的网站。</li> 
</ul> 
<hr /> 
<p>以上是本次 0.9 更新里的主要新功能和改进。如果你在使用中遇到问题，可以从以下社区渠道向开发者反馈或者寻求社区协助：</p> 
<ul> 
 <li>V2EX 上的 <a href="https://www.v2ex.com/go/planet">Planet 节点</a></li> 
 <li>Telegram 上的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Planet 中文用户群</a></li> 
</ul> 
<p>如果你十分确定遇到了软件实现上的 bug，那么可以通过 GitHub Issues 向我们描述如何复现 bug，我们会尽快调查和解决。</p> 
<ul> 
 <li>GitHub 上的 <a href="https://github.com/Planetable/Planet">Planet 项目</a></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>&#x1F4A1;&#x4E3A;&#x4EC0;&#x4E48;&#x6211;&#x4EEC;&#x4F1A;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x751A;&#x81F3;&#x591A;&#x4E2A; Pinning DAO</title>
        <link>https://olivida.eth.sucks/09582A3A-7F32-4E3D-97B0-3105DFE42566/</link>
        <guid>https://olivida.eth.sucks/09582A3A-7F32-4E3D-97B0-3105DFE42566/</guid>
        <pubDate>Thu, 15 Sep 2022 23:09:44 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>通过 Planet 发布内容，是一种完全去中心化的 local-first 模式。所有的内容不仅存储是在本地，提供对外服务的 IPFS 节点，也是运行在本地机器上。这样的好处是，整个内容的发布和订阅流程，不会受制于外部的大公司的基础架构。</p> 
<p>但这样的完全去中心化的做法，也会带来一些挑战：</p> 
<p>因为提供对外服务的 IPFS 节点也在本地，因此需要程序一直运行。这对于 Mac mini 或者 Mac Studio 这样的桌面设备可能不是太大的问题，但是对于笔记本电脑的用户就会是一个问题。</p> 
<p>对于笔记本电脑的用户，因为不可能让设备保持 24x7 开机及联网，那么最简单的解决方案还是引入服务器来帮助分发。如果你有自己的 Linux 服务器，那么下面是在自己的服务器上启用 IPFS 来帮助 Planet 内容分发的操作步骤和原理。</p> 
<h2>安装 IPFS for Linux Server</h2> 
<ul> 
 <li>从这里 <a href="https://github.com/ipfs/kubo/releases">https://github.com/ipfs/kubo/releases</a> 下载 Linux 版本的 IPFS 服务器端。就是一个可执行文件，我通常的做法就是把这个文件 <code>ipfs</code> 复制到 <code>/usr/local/bin/ipfs</code>，这样就可以随时运行 <code>ipfs</code> 指令。</li> 
 <li>启动 IPFS 进程 <code>ipfs daemon</code>，可以使用 screen、tmux 或者 supervisord。</li> 
</ul> 
<p>IPFS 进程启动之后，就可以通过下面这样的指令来 pin 内容了。</p> 
<pre><code>ipfs pin add /ipns/olivida.eth
</code></pre> 
<p>所谓 pin 内容这个操作，其实很类似 BitTorrent 下载中的「做种」这个概念。就是，如果一份内容被 pin 了，意味着本地保存了一份经过完整性校验的拷贝，如果网络上的其他节点也要请求这份内容，那么就是所有有拷贝的机器来一起提供，就像 BitTorrent 下载时，是所有 seeder 来一起服务下载请求。</p> 
<p>你可以在 <code>pin add</code> 使用 IPNS 地址，无论是 k 开头的原生 IPNS 地址，或者是 ENS 地址，都可以支持：</p> 
<pre><code>ipfs pin add /ipns/planetable.eth
</code></pre> 
<pre><code>ipfs pin add /ipns/k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a
</code></pre> 
<p>如果你把这样的指令放到 crontab 中，那么就可以实现追踪 IPNS 背后的 CID 的变化，然后一直 pin 最新内容。</p> 
<h2>Pinning DAO</h2> 
<p>上面的这个操作过程，对于没有 Linux 服务器的用户来说，还是太麻烦了。我们需要更简单的方式，而这件事情非常适合做成一个 DAO。</p> 
<p>DAO 存在的意义，就是服务成员的共同需求。</p> 
<p>Pinning DAO 里，这个共同需求就是：成员需要全世界各地的服务器，来保证发布在 IPFS 上的内容，是永远可用的。为了持续实现这一点，于是需要一个或者多个这样的去中心化自治组织。</p> 
<p>我希望接下来能够看到这样的组织的出现。</p> 
<p>为了完整实现这个愿景，将会需要构建很多新的开源软件。</p> 
<p>比如一个用 <a href="https://www.rainbowkit.com/">RainbowKit</a> 或者 <a href="https://docs.family.co/connectkit">ConnectKit</a> 实现登录的网站，ENS holder 登录并且通过 Juicebox 付款成为 DAO Member 之后，就可以通过这个 DAO 部署在全球各地的基础架构来 pin 自己发布在 ENS 上的网站。</p> 
<p>而除了提供 pin 服务之外，DAO 也可以为成员提供自建的 Plausible 流量统计之类的服务。</p> 
<p>虽然内容通过 DAO 进行了分发，但是权威版本依然是完全控制在用户本地。而不是像之前，因为使用了 Web 2.0 大公司的平台来存储和分发内容，内容的实际存活就完全被大公司所控制了。如果一个 DAO 提供的服务成员不满意，那完全可以发起另外一个，充分的竞争会带来最好的产品和服务。</p>
        ]]></description>
    </item>
    
    <item>
        <title>.bit</title>
        <link>https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/</link>
        <guid>https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/</guid>
        <pubDate>Mon, 12 Sep 2022 14:56:20 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/follow-dotbit.png" />    
        
        
        <description><![CDATA[
            <p><a href="https://app.did.id/explorer?inviter=olivida.bit" target="_blank"><img width="1800" alt="hello-dotbit" src="https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/hello-dotbit.png" border="0" /></a></p> 
<p>在 9 月的这个功能更新中，Planet 加入了对另外一个区块链域名的支持：</p> 
<p><a href="https://app.did.id/explorer?inviter=olivida.bit">.bit</a></p> 
<p>点击上面的域名，就可以注册属于你自己的 .bit 域名。（利益申明：这是一个带有 referral 信息的链接，如果你通过上面这个链接注册，那么我会收到返佣。）</p> 
<p>.bit 也支持将 Planet 生成的 IPNS 设置为域名上分布式网站内容源。</p> 
<img width="1334" alt=".bit Manage" src="https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/dotbit-manage.png" /> 
<p>与 ENS 不同的是，.bit 在设置网站内容源的时候，不需用户再次支付 gas。.bit 对此的解释是两个原因：</p> 
<ol> 
 <li>.bit 的注册费用中已经包括了一定数量的后续操作所需要的 gas 费。</li> 
 <li>.bit 所依赖的区块链 <a href="https://www.nervos.org/">Nervos Network</a> 的设计让计算类型的任务的 cost 较低。</li> 
</ol> 
<p>所以，大家目前正在访问的这个博客，现在也有了一个 .bit 域名 olivida.bit，并且可以通过 .bit 的 dWeb Public Gateway 访问了：</p> 
<div style="display: flex; align-items: center;"> 
 <img width="64" alt="dotbit-logo" src="https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/dotbit-logo.png" /> 
 <div style="flex: 1; font-size: 40px;"> 
  <a href="https://olivida.bit.cc" target="_blank">olivida.bit.cc</a> 
 </div> 
</div> 
<p>Planet 的 Follow 功能，现在也可以支持 .bit 地址了：</p> 
<img width="1092" alt="Follow .bit" src="https://olivida.eth.sucks/8F4176F4-BDFB-4049-B901-FAACEBA6FFEF/follow-dotbit.png" />
        ]]></description>
    </item>
    
    <item>
        <title>ETH.LIMO</title>
        <link>https://olivida.eth.sucks/4B412A73-9C15-4E62-BFC6-157E2D28D0C1/</link>
        <guid>https://olivida.eth.sucks/4B412A73-9C15-4E62-BFC6-157E2D28D0C1/</guid>
        <pubDate>Wed, 07 Sep 2022 10:57:38 -0700</pubDate>
        
        
        <description><![CDATA[
            <p><a href="https://eth.limo" target="_blank">eth.limo</a> 是一个很特别的项目。最早是从 vitalik.eth 在 Gitcoin 的捐赠记录中了解到这个项目的存在。当时 eth.link 过期事件还没有发生，因此可以对比两个项目的性能。eth.limo 在大部分时间都更快，更稳定。</p> 
<p>两个项目做的是同一件事情：通过在互联网上设置一个特殊的代理服务器，让任何浏览器都可以通过 HTTP 方式访问到 IPFS 上的内容。如果没有这样的代理服务器项目，那么需要客户端浏览器内置 IPFS 节点，比如像 Brave 和 Planet 的做法。而 eth.limo 的实现方式就是，如果你在任意设置了 contenthash 的 ENS 上加上 .limo，那么就可以在普通浏览器里打开，比如：</p> 
<ul> 
 <li><a href="https://vitalik.eth.limo">vitalik.eth.limo</a></li> 
 <li><a href="https://planetable.eth.limo">planetable.eth.limo</a></li> 
 <li><a href="https://zh.gamedb.eth.limo">zh.gamedb.eth.limo</a> （是的，eth.limo 对 ENS 的二级域名也可以支持）</li> 
</ul> 
<p>现在 eth.limo 项目入选了最新 Gitcoin 的 <a href="https://gitcoin.co/grants/4760/ethlimo-your-privacy-focused-ens-ipfs-gateway">Grants Round 15</a>。所以现在如果你在 Gitcoin 上支持这个项目，那么项目还可以收到来自 Gitcoin 的机构的匹配支持。</p> 
<p>在他们的路线图描绘几件接下来会做的事情。其中我个人觉得最有趣是：</p> 
<p>🔵 Privacy first traffic analysis and reporting - view how many requests your ENS dwebsite has received.<br /><br />可以看到脱敏之后的流量分析。如果到时候使用流程是用自己钱包登录，然后就可以看到钱包里的所有 ENS 在 eth.limo 上的流量，那对 dWebsite 的搭建者也会是一个很好的激励。</p> 
<p>🌎 Decentralizing the LIMO infrastructure through a community run CDN.<br /><br />结合 Roadmap 中的其他条目，大概率会有一个可以在自己本地电脑上部署的 eth.limo，并且可以和全世界的其他节点结合成为一个全球加速的 CDN。</p> 
<p>完整的 Roadmap 可以在项目主页上看到：</p> 
<p><a href="https://gitcoin.co/grants/4760/ethlimo-your-privacy-focused-ens-ipfs-gateway">https://gitcoin.co/grants/4760/ethlimo-your-privacy-focused-ens-ipfs-gateway</a></p>
        ]]></description>
    </item>
    
    <item>
        <title>&#x5173;&#x4E8E;&#x4F18;&#x5316; IPFS &#x7684;&#x8D44;&#x6E90;&#x5360;&#x7528;</title>
        <link>https://olivida.eth.sucks/EB692F2E-2783-4A61-BD8B-7C1AA685C671/</link>
        <guid>https://olivida.eth.sucks/EB692F2E-2783-4A61-BD8B-7C1AA685C671/</guid>
        <pubDate>Sat, 27 Aug 2022 02:01:04 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/EB692F2E-2783-4A61-BD8B-7C1AA685C671/HighWater.png" />    
        
        
        <description><![CDATA[
            <p>我们会在之后的版本更新中，为这篇文档中提到的配置方式提供图形界面。</p> 
<p>目前如果你希望稍微降低 Planet 内置的 IPFS 的资源占用，那么可以打开这个位置的配置文件：</p> 
<p><code>~/Library/Containers/xyz.planetable.Planet/Data/Library/Application Support/ipfs/config</code></p> 
<p>上面路径中的 <code>~</code> 的意思是用户的 Home Directory。</p> 
<p>在这个文件中搜索 <code>HighWater</code>，然后你会看到这样的一组默认配置：</p> 
<img width="234" alt="HighWater" src="https://olivida.eth.sucks/EB692F2E-2783-4A61-BD8B-7C1AA685C671/HighWater.png" /> 
<ul> 
 <li>HighWater: 900</li> 
 <li>LowWater: 600</li> 
</ul> 
<p>你可以试着把这对值改低一些，比如改到：</p> 
<ul> 
 <li>HighWater: 200</li> 
 <li>LowWater: 100</li> 
</ul> 
<p>这样会降低 IPFS 在运行时的连接数，也就降低了资源消耗。但是这样的代价是，某些情况下，在 P2P 网络上寻找全新内容的速度可能会降低。</p> 
<p>为什么说是某些情况下呢，因为如果你要寻找的内容，你已经掌握它具体所在的节点位置，那么是可以通过 peering 和 pinning 的方式让内容快速同步的，同时并不需要维持很高的 peers 数量。关于 peering 和 pinning 能带来的诸多有趣可能性，我会在之后的另外一篇文章中介绍。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet &#x7684;&#x6A21;&#x7248;&#x7CFB;&#x7EDF;</title>
        <link>https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/</link>
        <guid>https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/</guid>
        <pubDate>Thu, 25 Aug 2022 16:19:35 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/template-browser.png" />    
        
        
        <description><![CDATA[
            <p>Planet 的核心功能之一，是一个静态网站生成器。所以，用 Planet 做网站，是可以支持全站模版替换的。在这篇文章里，我们会向你介绍目前系统的内置模版，及如何制作自己的新模版。</p> 
<h2>内置模版</h2> 
<p>在目前的版本中，Planet 有两个内置模版：</p> 
<h3>Plain</h3> 
<img width="930" alt="demo-olivida.eth" src="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/demo-olivida.eth.png" /> 
<p>外观简洁，尽量贴近操作系统原生 look-n-feel 的模版，支持自动切换 Light/Dark 模式。Planet 如果有新的媒体格式支持，那么 Plain 模版会最先更新，提供对新的媒体格式的支持。比如之前的更新中，对视频和音频，及附件下载的支持。</p> 
<ul> 
 <li>GitHub <a href="https://github.com/Planetable/SiteTemplatePlain">https://github.com/Planetable/SiteTemplatePlain</a></li> 
 <li>Demo Site <a href="https://olivida.eth.limo/">https://olivida.eth.limo/</a></li> 
</ul> 
<h3>8-bit GameDB</h3> 
<img width="930" alt="demo-zh.gamedb.eth" src="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/demo-zh.gamedb.eth.png" /> 
<p>一个 8-bit 风格的模版。一些新的前端技术会在这个实验性的模版中使用。比如目前这个模版中的很多组件，就是用 Vanilla JS Web Component 实现的。GameDB 模版在获得新的媒体格式支持方面会比 Plain 模版稍微慢一周。</p> 
<ul> 
 <li>GitHub <a href="https://github.com/Planetable/SiteTemplate8bit">https://github.com/Planetable/SiteTemplate8bit</a></li> 
 <li>Demo Site <a href="https://zh.gamedb.eth.limo/">https://zh.gamedb.eth.limo/</a></li> 
</ul> 
<h2>制作自己的模版</h2> 
<p>如果你希望制作自己的新模版，那么目前我们推荐的步骤是：</p> 
<ul> 
 <li>打开 Planet 的数据目录：<code>~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Templates</code></li> 
 <li>复制其中的 Plain 模版的目录到一个新的目录</li> 
 <li>打开新目录中的 <code>template.json</code> 文件，编辑其中的 name 字段，给你的新模版一个新名字 <br /><img width="1136" src="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/edit-name.png" /></li> 
 <li>然后在下次启动 Planet 之后，就可以看到和选择这个新模版了。</li> 
</ul> 
<h2>编辑和预览模版</h2> 
<p>如果你改动了自己的新模版的 HTML / JS / CSS，想要快速预览的话，我们推荐的做法是：</p> 
<p>安装来自 The Iconfactory 的 <a href="https://blog.iconfactory.com/2022/06/worldwideweb-part-2/">WorldWideWeb</a>，这是一款非常简单好用的静态网站 HTTP 服务器。它可以快速将任意目录的内容以 HTTP 方式提供服务。</p> 
<p>在安装完 WorldWideWeb 之后，你会在右键点击 My Planet 时在 Develop 菜单下看到新选项：Open in WorldWideWeb</p> 
<img width="612" src="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/open-in-www.png" alt="Open in WorldWideWeb" /> 
<p>然后 WorldWideWeb 就可以在 localhost 上预览你的 Planet 的新模版构建的网站。每次你做了修改时，只需要在 Develop 菜单下 Rebuild，然后就可以通过 WorldWideWeb 提供的 localhost 上的服务预览更改。</p> 
<p>此外，你可以通过 Planet 的 Tools 菜单下的 Template Browser 看到目前你本地的 Planet 所安装的所有模版：</p> 
<img width="1012" src="https://olivida.eth.sucks/08CC35A0-F2CC-425B-B520-E5838B17827A/template-browser.png" alt="Template Browser" /> 
<hr /> 
<p>这个关于 Planet 的 Template Engine 模版引擎的文档会在未来持续更新。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Planet and WorldWideWeb</title>
        <link>https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/</link>
        <guid>https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/</guid>
        <pubDate>Thu, 18 Aug 2022 13:40:21 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/worldwideweb-icon.png" />    
        
        
        <description><![CDATA[
            <p><a href="https://blog.iconfactory.com/2022/06/worldwideweb-part-2/">WorldWideWeb</a> 是来自图形设计公司 <a href="https://iconfactory.com">The Iconfactory</a> 的一款简单好用的 HTTP 服务器。</p> 
<img width="592" alt="worldwideweb" src="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/worldwideweb.png" /> 
<p>这个名字 WorldWideWeb 致敬了世界上第一个 HTTP 服务器，也就是当年跑在 <a href="https://en.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a> 的 NeXT 电脑上的那个。因此你也可以在 WorldWideWeb 的 Help 页面看到当年的那台机器的样子。</p> 
<img width="1884" alt="first-web-server" src="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/first-web-server.jpg" /> 
<p>WorldWideWeb 的工作方式非常简单：选择一个文件夹，然后 WorldWideWeb 就会在 8080 端口上启动，然后访问本地机器的 8080 端口就可以看到那个目录里的网站。</p> 
<p>在刚刚发布的 Planet 0.8.2 版本更新里，我们加入了对 WorldWideWeb 的支持。如果你的 Mac 上有安装 WorldWideWeb，那么现在当你右键单击自己的 Planet 时，会在 Develop 菜单下看到一个 Open in WorldWideWeb 的新选项，然后就可以用 WorldWideWeb 打开你自己的 Planet 构建的静态网站。</p> 
<img width="608" alt="open-in-worldwideweb" src="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/open-in-worldwideweb.png" /> 
<p>这样的用途是？如果你在开发自己的 Planet 模版，那么配合新的 Develop 菜单的 Rebuild 功能，每次你在自己的模版中改动了什么的时候，就可以方便地马上看到改动之后的效果了。</p> 
<img width="1920" alt="the-workflow" src="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/the-workflow.png" /> 
<div style="background-color: rgba(0, 0, 0, 0.1); padding: 10px; display: flex; gap: 10px; border-radius: 30px; align-items: center; margin-top: 20px; box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.1)"> 
 <div> 
  <img width="128" alt="worldwideweb-icon" src="https://olivida.eth.sucks/C90EEACD-807B-4CCA-8D44-5AD0D9C5D79C/worldwideweb-icon.png" style="vertical-align: bottom" /> 
 </div> 
 <div style="flex: 1;">
  <p>你可以从 App Store 免费下载 WorldWideWeb：</p> 
  <p><a href="https://apps.apple.com/us/app/worldwideweb-desktop/id1621370168?mt=12" target="_blank">WorldWideWeb for macOS</a></p>
 </div>
 <p></p> 
</div>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 2</title>
        <link>https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/</link>
        <guid>https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/</guid>
        <pubDate>Sat, 13 Aug 2022 15:36:54 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-2/deep-look.png" />    
        
        
        <description><![CDATA[
            <p>这是 Planet 的第二个功能更新，版本号 0.8.0，发布于 2022 年 8 月 13 日。这次的更新的代码来自于以下贡献者：</p> 
<ul> 
 <li><a href="https://github.com/stdc105">@stdc105</a></li> 
 <li><a href="https://github.com/kailuo">@kailuo</a></li> 
 <li><a href="https://github.com/livid">@livid</a></li> 
</ul> 
<p>下面的链接是从 0.7.0 到 0.8.0 版本之间的所有改动的更新日志：</p> 
<p><a href="https://github.com/Planetable/Planet/compare/release-0.7.0...release-0.8.0">https://github.com/Planetable/Planet/compare/release-0.7.0...release-0.8.0</a></p> 
<p>下面是这个版本里带来的新功能和改进。</p> 
<h2>Plausible.io 数据统计</h2> 
<p><a href="https://plausible.io">Plausible.io</a> 是一个开源的数据统计平台，创始团来自欧洲。现在 Planet 支持在 Info 面板中填入 Plausible 的 domain 和 API token，这样就可以通过 Plausible.io 看到有多少人访问过你的 Planet。</p> 
<p><img src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/toolbar-plausible.png" alt="" /></p> 
<p>比如下面的链接是 <a href="https://olivida.eth.limo/">olivida.eth</a> 的访问数据例子：</p> 
<p><a href="https://plausible.io/olivida.eth.limo">https://plausible.io/olivida.eth.limo</a></p> 
<p><img src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/plausible-olivida.eth.png" alt="" /></p> 
<p>另外一个例子，Plausible.io 官方网站的流量：</p> 
<p><a href="https://plausible.io/plausible.io">https://plausible.io/plausible.io</a></p> 
<p>Plausible.io 的实现方式是<a href="https://plausible.io/privacy-focused-web-analytics">尊重隐私</a>的。这个平台不会收集个人信息，甚至都没有使用 cookie。因此不需要在使用 Plausible.io 的页面上弹出 cookie banner。</p> 
<p>我们会在未来的版本更新中加入对 self-hosted 版本的 Plausible 的支持。</p> 
<h2>博客 Podcast 和附件支持</h2> 
<p>现在你可以在撰写内容时，选择附加一个音频文件，或者是直接将音频文件拖拽到写作窗口中。之后在发布时，页面上就会出现一个音频播放器。</p> 
<p><img src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/writer-podcast.png" alt="" /></p> 
<p>在本篇博客的内容中，就附加了一段音频内容。这是我在 5 月份 Planet 上线之前，和 <a href="https://justinyan.me/post/4904">枫言枫语播客</a> 录制的。里面分享了关于 Planet 在制作过程中的一些思考。</p> 
<p>如果是在 0.8.0 之后版本的 Planet 客户端中访问这样的带有音频的内容，那么在工具栏中会看到一个耳机按钮，点击之后就会启动一个全局的音频播放器去播放内容中所携带的音频内容。得益于这个全局播放器的存在，播放时切换查看的文章内容，播放不会被打断。</p> 
<img width="818" alt="planet-audio-player" src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/planet-audio-player.png" /> 
<p>我们会在未来的版本中继续优化这个全局音频播放器的使用体验。</p> 
<p>如果你将其他格式的文件，比如 PDF 或者 DMG 之类拖拽进入写作窗口，那么这样的内容在发布之后，会在 0.8.0 的客户端中显示为附件。访客可以点击工具栏中的附件图标就可以下载。</p> 
<h2>内置模版的细节改进</h2> 
<p>Planet 目前内置了两个网站模版用于切换样式。</p> 
<p><img src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/template-browser-8bit.png" alt="" /></p> 
<p>在这次的更新中，我们为这两个模版加入了众多的细节改进：</p> 
<ul> 
 <li>对音频内容的支持</li> 
 <li>针对视频和图片内容的 CSS 样式优化</li> 
 <li>在顶部区域，从内容页面返回到首页的链接</li> 
 <li>在 iOS 移动设备上访问时的 safe-area 问题</li> 
 <li>Plain 主题首页对 Dark Mode 的支持</li> 
</ul> 
<p>模版的功能完备是 Planet 的重要部分。所有的内置模版和 Planet App 一样，也都是开源软件，所以如果你发现任何模版相关的问题，也可以通过 GitHub Issues 甚至 PR 的方式反馈给我们：</p> 
<ul> 
 <li><a href="https://github.com/Planetable/SiteTemplatePlain">https://github.com/Planetable/SiteTemplatePlain</a></li> 
 <li><a href="https://github.com/Planetable/SiteTemplate8bit">https://github.com/Planetable/SiteTemplate8bit</a></li> 
</ul> 
<p>接下来，我们会在 2022 年 8 月发布关于如何自己构建新模版的详细文档。</p> 
<p>下面这个项目是来自开发者 <a href="https://github.com/FledgeXu">Fledge Shiu</a> 的一个有意思的模版，实现了中文竖排的效果：</p> 
<p><a href="https://github.com/FledgeXu/Vertical">https://github.com/FledgeXu/Vertical</a></p> 
<p>然后这里是一个用 8-bit 模版的关于经典老游戏的博客：</p> 
<p><a href="https://zh.gamedb.eth.limo/">https://zh.gamedb.eth.limo/</a></p> 
<h2>内置 go-ipfs 版本升级</h2> 
<p>Planet 内置的 go-ipfs 版本从 0.12 升级到了 0.14。从 0.13 版本开始，上游 Protocol Labs 将 go-ipfs 项目更名为了 <a href="https://github.com/ipfs/kubo">kubo</a>，所以之后我们如果需要在文档中提到 go-ipfs，我们会使用它的新名字 kubo。</p> 
<p>由于 kubo 的版本升级，会在 Planet 启动时有一个迁移仓库的操作。如果你的本地 IPFS repo 的文件数量较大，那么这个迁移可能会需要一些时间，让它跑一会就好。</p> 
<p>我们会在未来的版本中提供更多针对本地 IPFS repo 的图形界面管理功能。</p> 
<h2>RSS 订阅器相关的细节改进</h2> 
<p>其实从 Planet 的第一个发布版本开始，这个软件就是带有 RSS 订阅功能的。但是因为一些细节还不够好用，所以我们之前没有公开宣布过这个功能的存在。</p> 
<p>在这次的 0.8.0 更新中，我们针对 RSS 订阅的很多细节功能做了改进和测试，所以现在我们可以有一些信心来邀请你试用一下。</p> 
<p>这里有一些有趣的 RSS 订阅源：</p> 
<ul> 
 <li><a href="https://solar.lowtechmagazine.com/">Low Tech Magazine</a>: 一个完全靠太阳能驱动的网站，所以阴天的时候可能会断线。</li> 
 <li>YouTube 上的 <a href="https://www.youtube.com/c/KQEDDeepLook">Deep Look</a> 频道：各种有趣动物的 4K 科普视频</li> 
</ul> 
<p><img src="https://olivida.eth.sucks/7CD979D8-B4E8-43ED-96DA-A012FDDC81BE/deep-look.png" alt="YouTube Channel: Deep Look" /></p> 
<p>很多会持续更新内容的网站，很可能都带有 RSS 订阅地址，一个例子就是 YouTube 上的各类 Channel 的首页。你可以尝试直接把网址填入到 Follow Planet 那里，如果内容源上确实存在 RSS 地址，那么就可以用 Planet 订阅。</p> 
<p>如果你在使用 RSS 订阅功能的过程中遇到问题，欢迎反馈到下面这些社区渠道：</p> 
<ul> 
 <li>Telegram 上的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Planet 中文用户群</a></li> 
</ul> 
<h2>提醒相关的细节改进</h2> 
<p>我们在这次更新中进一步改进了 Local Notification 的工作方式。现在如果你收到了订阅的 Planet 的内容更新提醒，那么点击 Notification 就可以直接跳转到这篇文章。</p> 
<h2>其他细节改进</h2> 
<ul> 
 <li>更换了 Markdown 渲染引擎，现在 Planet 可以输出和 <a href="https://github.github.com/gfm/">GitHub Flavored Markdown</a> 完全一致的结果，同时也解决了之前由于使用 <a href="https://github.com/JohnSundell/Ink">Ink</a> 渲染所带来的一些 crash 问题。</li> 
 <li>现在在查看文章时，如果执行了任何的下载相关的操作，那么这些操作可以正常工作了，并且可以从一个新的 Download Manager 窗口中看到下载进度。之前的版本中由于缺乏对 WKDownloadDelegate 的实现而导致了下载相关的操作没有反应。</li> 
 <li>改进了对 DNSLink 加载内容的支持。值得注意的是，如果你希望以 DNSLink 方式订阅一个 IPFS 上的网站，那么需要在 Follow Planet 窗口使用 planet 协议，比如这样去输入域名 <code>planet://zu1k.com</code>。</li> 
 <li>从 Planet 发布的 IPNS 记录的 TTL 时间从 1 周调整到了 1 年。但 IPNS 记录在节点上的存在时间，依然取决于很多其他因素。所以，如果你希望保持你的 IPNS 记录有效，那么至少每周打开 Planet 运行一段时间，就肯定没有问题的。关于 IPNS 及 Pinning 这几个复杂而又重要的技术细节，我们会在接下来的一篇博客里详细介绍。</li> 
</ul> 
<hr /> 
<p>以上是本次 0.8.0 更新里的主要新功能和改进。如果你在使用中遇到问题，可以从以下社区渠道向开发者反馈或者寻求社区协助：</p> 
<ul> 
 <li>V2EX 上的 <a href="https://www.v2ex.com/go/planet">Planet 节点</a></li> 
 <li>Telegram 上的 <a href="https://t.me/+5bl7FIsxeChlOWIz">Planet 中文用户群</a></li> 
</ul> 
<p>如果你十分确定遇到了软件实现上的 bug，那么可以通过 GitHub Issues 向我们描述如何复现 bug，我们会尽快调查和解决。</p> 
<ul> 
 <li>GitHub 上的 <a href="https://github.com/Planetable/Planet">Planet 项目</a></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Planet Feature Update 1</title>
        <link>https://olivida.eth.sucks/5C9A4ABD-0F63-447A-A0DE-589AFBEAAA4C/</link>
        <guid>https://olivida.eth.sucks/5C9A4ABD-0F63-447A-A0DE-589AFBEAAA4C/</guid>
        <pubDate>Wed, 13 Jul 2022 21:46:48 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/feature-update-1/_videoThumbnail.png" />    
        
        
        <description><![CDATA[
            <p>这是 Planet 的第一个功能更新，版本号 0.7.0。</p> 
<h2>视频发布</h2> 
<p>现在在发布文章时，可以为文章附加一条视频。效果就像现在你看到的这篇一样。如果你现在在用的屏幕支持 HDR（比如新款 14 和 16 MacBook Pro 的屏幕），你会注意到这个视频是 HDR 的。</p> 
<h2>数据存储优化</h2> 
<p>我们对 App 底层的数据架构做了一次比较大的重构，来解决在上个月初次发布的版本中遇到的一些问题。在有了这个新的数据层之后，整个 App 的性能会有一个明显的提升。比如之前在打开 Unread 时可能会感受到的延迟现在消失了。如果你在升级之后遇到任何和数据相关的问题，可以到这个 Telegram 群寻求开发者支持 <a href="https://t.me/+5bl7FIsxeChlOWIz">https://t.me/+5bl7FIsxeChlOWIz</a></p> 
<p>另外就是，现在 App 在检查到新的内容更新时，会发送本地通知。我们会继续增强和 Notification 有关的功能的使用体验。</p> 
<h2>增强的 ENS 支持</h2> 
<p>最近我们发现了一个性能很好的 ENS Gateway——<a href="https://eth.limo">ETH.LIMO</a>，然后我们把 App 里如果用传统浏览器打开 ENS 链接的地方都换成了这个。这样如果你需要把自己发布在 ENS 上的内容发给没有安装 Planet 也没有在使用 Brave 的朋友，那么你可以使用类似下面这样的连接：</p> 
<p><a href="https://olivida.eth.limo/">https://olivida.eth.limo/</a></p>
        ]]></description>
    </item>
    
    <item>
        <title>&#x81EA;&#x5DF1;&#x7684;&#x6570;&#x636E;</title>
        <link>https://olivida.eth.sucks/E099F6AF-968E-45AA-B909-0DE04BFAA8E4/</link>
        <guid>https://olivida.eth.sucks/E099F6AF-968E-45AA-B909-0DE04BFAA8E4/</guid>
        <pubDate>Sat, 25 Jun 2022 11:59:58 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/my-data/wunderlist.jpg" />    
        
        
        <description><![CDATA[
            <p><img src="https://olivida.eth.sucks/E099F6AF-968E-45AA-B909-0DE04BFAA8E4/wunderlist.jpg" alt="wunderlist.jpg" /></p> 
<p>在过去几年的时间里，有这么几件事情让我印象深刻。</p> 
<p>Microsoft 收购了 Wunderlist。基于 Wunderlist 推出了 Microsoft To Do，但是却并没有 Wunderlist 的所有功能。比如一直都没有评论功能。后来 Microsoft 宣布会在 2020 年 5 月彻底关闭 Wunderlist。Wunderlist 的创始人 Christian Reber 试图买回公司，但是却没有得到回应。</p> 
<p><a href="https://www.atlassian.com/migration/assess/journey-to-cloud">Atlassian 宣布之后将只会提供云版本的 Jira</a>，不会再出售新的 Jira on-premise 的授权。也就是说，以后就不会再有可以跑在自己服务器上的 Jira 了。</p> 
<p>Google 宣布会终止一直免费的自建域名版本 Gmail。如果要继续使用，那么请绑定信用卡。收费模式是每用户每月 6 美元起。</p> 
<p>大公司的这些决定让我作为他们曾经的用户，而不得不去花额外的时间和资源，寻找替代方案、改变使用习惯。而有些产品，虽然有不错的替代方案——比如 <a href="https://linear.app">Linear</a> 是很好的 Jira 替代品，但我不知道如果什么时候 Linear 被一家大公司收购，然后大公司关闭 Linear？那我之前在 Wunderlist 和 Jira server 关闭时所经历的一切无奈就会被迫又经历一次。</p> 
<p>于是所有的这些事情，都促成了我后来在很长一段时间内的思考——自己接下来新产生的那些创作及创作过程，到底应该放在一个什么样的地方？</p>
        ]]></description>
    </item>
    
    <item>
        <title>20220612</title>
        <link>https://olivida.eth.sucks/44A8A7F5-6484-4141-B65C-E57B09E83BCF/</link>
        <guid>https://olivida.eth.sucks/44A8A7F5-6484-4141-B65C-E57B09E83BCF/</guid>
        <pubDate>Mon, 13 Jun 2022 01:09:53 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/44A8A7F5-6484-4141-B65C-E57B09E83BCF/template-browser.png" />    
        
        
        <description><![CDATA[
            <p>上周（2022 年 6 月初）的 <a href="https://planetable.xyz">Planet</a> 是第一个提供了公开下载链接的版本。里面出现了一些我们在之前更小范围测试时，没有发现的问题。其中最尴尬的一些 crash 问题，已经在 2022 年 6 月 12 日的 0.6.16 里修复。这件事情刚刚开始，重要的是之后用稳定的节奏，把计划中的事情一件一件全部交付。</p> 
<p>那么，后续的计划是什么？这里大概说一下。</p> 
<ol> 
 <li>视频和音频。在传统的 Web 2.0 场合，视频和音频是一种「上传」体验。而将来在 Planet 里，应该只是一件拖拽进来，加上描述，然后发布之后放在那里就好的体验。</li> 
 <li>评论和 Web Ping。</li> 
 <li>移动版本。具体细节还在设计中。但考虑到不太可能会让手机来运行 IPFS 的服务器（网络流量消耗和电池都是问题），所以一种可能的实现方式是 Planet 的 Desktop 版本提供一个 API，然后手机来连接这个 API。现在有 <a href="https://www.tailscale.com/">Tailscale</a> 和 <a href="https://www.zerotier.com/">ZeroTier</a> 这样的技术可以让手机在任意网络上都和家里的电脑保持内网直连状态，因此如果能够实现这样的一种卫星式的体验，应该会很有意思。</li> 
 <li>更多更强更美的页面主题。Planet 内部在渲染每一个网站时，使用了一套基于 <a href="https://jinja.palletsprojects.com/">Jinja</a> 语法的模版系统。借助这套模版系统，每一个 Planet 都有可能可以使用完全个性化的设计。</li> 
</ol> 
<p>我们会在后续发布详细的模版设计相关的文档。但是如果你是经验丰富的前端工程师，想提前试试的话，那么可以在菜单里 Tools -&gt; Template Browser 找到模版浏览器，然后在 Template Item 上右键 Reveal in Finder。每一个 Template 都在一个自己的文件夹，你可以把文件夹复制一份，改个名，然后里面的 <code>template.json</code> 的元信息也改一改，就可以做自己的模版了。剩余的文件结构并不复杂，一看就明白。如果你机器上安装了 Visual Studio Code，那么可以直接右键 <code>Open in VSCode</code>：</p> 
<p><img src="https://olivida.eth.sucks/44A8A7F5-6484-4141-B65C-E57B09E83BCF/template-browser.png" alt="template-browser.png" /></p> 
<p>要支持一个完整的模版设计系统，会需要很多的支持变量（variables），不过这不会是一件很复杂的事情。我们会尽快把这件事情补齐。</p>
        ]]></description>
    </item>
    
    <item>
        <title>IPNS</title>
        <link>https://olivida.eth.sucks/11BD26DD-A0C9-4B82-AB26-6E20E1CD2D51/</link>
        <guid>https://olivida.eth.sucks/11BD26DD-A0C9-4B82-AB26-6E20E1CD2D51/</guid>
        <pubDate>Wed, 08 Jun 2022 08:22:38 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>IPNS 是 IPFS 生态中的一个重要组件，全称是 InterPlanetary Name System，一个去中心化的类似域名的系统。</p> 
<p>这里是 IPNS 的官方介绍：</p> 
<ul> 
 <li><a href="https://docs.ipfs.io/concepts/ipns/">InterPlanetary Name System</a></li> 
</ul> 
<p>内容寻址是 IPFS 找到内容的最基础的方式。但是会有一个问题是，内容 ID 其实是内容的 hash。因此如果内容本身如果发生了任何变化，那么 hash 也会变。所以如果是用内容 ID（CID）来绑定给 ENS 的话，每更新一次博客就去烧 gas 重新设置 ENS 的 Content Hash，在现有的 gas fee 情况下，就太贵了。</p> 
<p>而 IPNS 可以解决这个问题。每一个 IPNS 类似加密货币的钱包，会有一对 public key 和 private key。public key 就是 IPNS 的对外的地址，而 private key 可以用来修改这个对外地址所对应的 CID。</p> 
<p>因此，当你用 IPNS 来绑定给 ENS 作为 Content Hash 的时候，完整的链条是这样的：</p> 
<p>ENS -&gt; IPNS -&gt; CID</p> 
<p>其中 ENS 到 IPNS 这层绑定，会需要一次性的 gas 费。</p> 
<p>IPNS 到 CID 这一层，是免费的。</p> 
<p>这样我们就可以实现用 IPFS 更新内容之后，ENS 上的网站也就能够动态更新，同时只需要消耗一次性的 gas 费。</p> 
<hr /> 
<p>比如本站的 IPNS 地址是：</p> 
<pre><code>k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk
</code></pre> 
<p>然后绑定到了 olivida.eth 这个 ENS 域名上。</p> 
<p>在所有支持 IPFS + ENS 生态系统的应用中，你可以使用上面的 IPNS 地址或者 ENS 找到同样的内容。</p> 
<ul> 
 <li><a href="https://ipfs.io/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk/">https://ipfs.io/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk/</a></li> 
 <li><a href="https://ipfs.io/ipns/olivida.eth/">https://ipfs.io/ipns/olivida.eth/</a></li> 
</ul> 
<p><img src="https://olivida.eth.sucks/11BD26DD-A0C9-4B82-AB26-6E20E1CD2D51/olivida-eth.png" alt="olivida-eth.png" /></p>
        ]]></description>
    </item>
    
    <item>
        <title>&#x5173;&#x4E8E;&#x5907;&#x4EFD; IPNS Key</title>
        <link>https://olivida.eth.sucks/A72693B7-095D-4EC2-8A7A-A730C68B467C/</link>
        <guid>https://olivida.eth.sucks/A72693B7-095D-4EC2-8A7A-A730C68B467C/</guid>
        <pubDate>Mon, 06 Jun 2022 18:40:21 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/backup-ipns-key/export-planet.png" />    
        
        
        <description><![CDATA[
            <p>目前 Planet 还处在一些非常大的变化中，因此时不时备份你的 IPNS key 是非常有必要的。在 0.6.* 版本中备份的操作方式是侧栏中选中自己的 Planet，然后从 Tools 菜单中按 Export Planet。</p> 
<p><img src="https://olivida.eth.sucks/A72693B7-095D-4EC2-8A7A-A730C68B467C/export-planet.png" alt="export-planet.png" /></p>
        ]]></description>
    </item>
    
    <item>
        <title>IPFS &#x7684;&#x6027;&#x80FD;&#x53CA;&#x4F18;&#x5316;</title>
        <link>https://olivida.eth.sucks/930EAD16-718F-4553-87C8-F54FCCD1C4B1/</link>
        <guid>https://olivida.eth.sucks/930EAD16-718F-4553-87C8-F54FCCD1C4B1/</guid>
        <pubDate>Sun, 05 Jun 2022 10:08:03 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>如果你之前曾经尝试过去用 IPFS 发布一些东西给别人访问，那么你很可能已经体会过这个技术的慢。比如 ipfs.io 上的各种超时。</p> 
<p>因为这个技术的底层是 DHT，也就是类似 BitTorrent 和电驴下载的那种 P2P 技术。如果你曾经用过 BitTorrent 的 DHT 下载，你肯定也经历过刚开始下载的时候，漫长的找节点的过程。及就算是找到了节点之后，各种连不上或者没速度。作为使用同样基础技术的 IPFS，这些问题也同样存在于 IPFS。</p> 
<p>所以，如果使用场景场景是发布一些东西，然后让用户去浏览器中通过 ipfs.io 这样的 Public Gateway 去加载，那么很有可能就卡在那里直接卡超时了。Web 2.0 时代的 HTTP 已经被优化到了极致，但是 Public Gateway 的架构决定了那些优化到了 P2P 网络上并不完全适用。</p> 
<p>但是，当你在用本地电脑作为 IPFS 节点时，依然是可以有一些技术手段对发布性能进行优化的。</p> 
<h2>端口转发</h2> 
<p>你可以把你的公网 IP 的 4001 端口转发到你运行 Planet 的本地电脑上。</p> 
<h2>IPv6 的入流量</h2> 
<p>如果你的运营商提供 IPv6 并且你知道怎么设置 IPv6 防火墙，那么你可以在防火墙上打开外部对 4001 端口的访问。</p> 
<h2>UPnP</h2> 
<p>如果你的路由器支持 UPnP，那么打开 UPnP 支持可以允许 IPFS 节点更好地进行 P2P 通讯。</p> 
<hr /> 
<p>4001 端口是 IPFS 的 peer 流量端口，上面的所有操作是只读的。在公网上打开这个端口不会造成安全问题。但是部分入侵检测系统可能会抱怨，比如 UniFi Network 的 IDS 系统就会报告这个端口上有异常。</p>
        ]]></description>
    </item>
    
    <item>
        <title>Introducing Planet</title>
        <link>https://olivida.eth.sucks/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/</link>
        <guid>https://olivida.eth.sucks/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/</guid>
        <pubDate>Sun, 05 Jun 2022 01:56:09 -0700</pubDate>
        
        <itunes:image href="https://olivida.eth.sucks/introducing-planet/set-content-hash.png" />    
        
        
        <description><![CDATA[
            <p><a href="https://github.com/Planetable/Planet">Planet</a> 是一个开源的 macOS 原生 App，让你可以直接从自己的电脑上发布一个网站或者博客到 IPFS，并且这个网站或者博客可以绑定到一个 ENS 域名（比如 .eth 结尾）上。因为 IPFS 和 ENS 都是去中心化的，所以你发布的这个网站也是去中心化的。其他人可以通过这个 App 来 follow 你最新的更新，你的更新可以直接到达你的观众，不依赖一个中心化的云。</p> 
<p>目前这个 App 还处在一个非常早期的阶段，还有很多实现上的问题。我们会在后续继续更新。如果你之前玩过 IPFS 或者 ENS，那么你可能会想要试试这个完全的 GUI 体验的发布方案。</p> 
<h2>开始使用</h2> 
<p>在 App 第一次启动时，会自动 follow 下面的这两个 ENS：</p> 
<ul> 
 <li>vitalik.eth - Ethereum 的创始人之一</li> 
 <li>planetable.eth - Planet 项目的博客</li> 
</ul> 
<p>点击主界面下方的加号，就可以创建自己的 Planet。在创建并写了第一个篇文章之后，你的 Planet 就会被发布为一个 IPNS。右键点击侧栏里你的网站，选择 Copy IPNS。然后你就会在剪贴板中获得像这样的一串东西：</p> 
<p><code>k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk</code></p> 
<p>然后你把这串 IPNS 发给其他 Planet 用户，他们就可以收到来自你的更新了。</p> 
<p>你用 Planet 发布的网站，也可能可以通过各种 Public Gateway 访问，比如这是你当前正在阅读的这篇文章在各个 Gateway 上的地址（URL 拼接规则是 Public Gateway 域名 + /ipns/ + Planet.ipns + / + Article.UUID）：</p> 
<ul> 
 <li><a href="https://ipfs.io/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/">ipfs.io</a></li> 
 <li><a href="https://dweb.link/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/">dweb.link</a></li> 
 <li><a href="https://www.cf-ipfs.com/ipns/k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/">cf-ipfs.com</a></li> 
</ul> 
<h2>绑定 ENS</h2> 
<p>你可以把 Planet 发布出来的 IPNS 设置为你的 ENS 域名的 Content Hash。这类似于在传统 DNS 中设置一条 A 记录。</p> 
<p>打开 app.ens.domains 然后在 Content 处填入你刚才获得的 IPNS，记得在前面加上协议 <code>ipns://</code>，就像下面截图中这样：</p> 
<p><img src="https://olivida.eth.sucks/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/set-content-hash.png" alt="set-content-hash.png" /></p> 
<p>注意因为设定 Content Hash 会是一个 ENS 合约上的操作，所以这一步会有 gas 费。但是之后你在 Planet 里发布新的内容，你的 IPNS 不会发生改变，也不会再有 gas 费的问题。</p> 
<p>在完成了 ENS 绑定之后，也可以直接用类似下面这样的地址通过 Public Gateway 打开你的 ENS：</p> 
<ul> 
 <li><a href="https://ipfs.io/ipns/olivida.eth">https://ipfs.io/ipns/olivida.eth</a></li> 
 <li><a href="https://olivida.eth.limo">https://olivida.eth.limo</a></li> 
</ul> 
<p>在原生支持 IPFS 的 <a href="https://www.brave.com">Brave</a> 浏览器里，你甚至可以用 ipns://olivida.eth 这样的地址直接打开你用 Planet 发布的网站。</p> 
<p><img src="https://olivida.eth.sucks/D2FC97F4-4F27-4FE2-A6BE-12C8DF44BBC1/brave-eth.png" alt="brave-eth.png" /></p> 
<p>记得在 Brave 设置中将 Method to resolve IPFS resources 设置为 Brave local IPFS node，这样你才可以通过真正的去中心化方式访问。</p> 
<p><strong>因为目前 Planet 还处在一些非常大的变化中，因此时不时备份你的 IPNS key 是非常有必要的。在 0.8+ 版本中备份的操作方式是侧栏中选中自己的 Planet，然后从右键菜单中选择 Export Planet。</strong></p> 
<h2>一些已知问题</h2> 
<p>由于 IPFS 的 DHT 本质，虽然你用 Planet 发布出来的 IPNS 可以通过 IPFS 的 Public Gateway 访问，但是第一次的速度可能会非常缓慢，甚至打不开。</p> 
<p>当你把 IPNS 发给其他人，让其他人 follow 你时，你的 App 必须处于打开状态，否则别人无法获得内容。当然，如果你熟悉 IPFS 的特性，那么你可以用 Pin 的方式加速和解决这个问题。关于 Pin 的优化，我们会在之后的文档中详细解释。每一个 follower 的获取更新时，也会做一个 pin 操作。因此如果一个内容的访问者越多，那么在 IPFS 网络中的性能也就会越好。</p> 
<p>你的网站内容每次更新时，所有 follow 你的人在获得更新时大概会是一个分钟级别的延迟。</p> 
<p>目前 Planet 里有一些地方允许你用 Public Gateway 去测试打开你发布的内容。我们目前使用的 Public Gateway 是 dweb.link，之后这个地方会变成一个可以更改的选项。</p> 
<p>另外值得说明的是，由于 IPFS 的 DHT 本质，所以是可以看到一条内容可以通过哪些 IP 提供服务。就像你通过 BitTorrent 下载时，你的 IP 也会被其他节点看到。</p> 
<h2>开源及下载</h2> 
<p>Planet 的最新版本会在 planetable.xyz 的首页或者我们的 GitHub 项目首页提供。</p> 
<ul> 
 <li><a href="https://planetable.xyz">https://planetable.xyz</a></li> 
 <li><a href="https://github.com/Planetable/Planet">https://github.com/Planetable/Planet</a></li> 
</ul> 
<p>如果你遇到了什么问题，或者是想要新功能，可以在 GitHub 上以创建 issue 的方式提给我们。</p> 
<p>或者加入我们在 Telegram 上的中文用户群：</p> 
<p><a href="https://t.me/+5bl7FIsxeChlOWIz">https://t.me/+5bl7FIsxeChlOWIz</a></p>
        ]]></description>
    </item>
    
    <item>
        <title>Hello World</title>
        <link>https://olivida.eth.sucks/29381FD0-9C8F-485B-A51D-A33310168319/</link>
        <guid>https://olivida.eth.sucks/29381FD0-9C8F-485B-A51D-A33310168319/</guid>
        <pubDate>Thu, 02 Jun 2022 13:22:37 -0700</pubDate>
        
        
        <description><![CDATA[
            <p>按照两个月之前的计划，在 2022 年 6 月 1 日这天上线了 <a href="https://planetable.xyz">planetable.xyz</a></p> 
<p>这一年一直在想的就是，如果我能够有机会，把一个 idea 给完整地执行出来会怎样。现在这个机会就这样正在实现中，我很感激走过来的每一步。</p> 
<p>如果每一个细节背后，都能够有足够的思考和设计，那结果就不会是一个赶着上线的垃圾，而是在很多年之后，你甚至都会想去高清重制它。</p> 
<p>我们生活在这样的一个千兆网络、高速 SSD、多核 CPU 逐渐变成日常用品的时代。未来已经到来，只是没有均匀分布。Planet 就是这个时代的一种全新的互联网内容创作和分发的试验。</p>
        ]]></description>
    </item>
    
</channel>
</rss>
