<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Rongbin Fan</title>
    <link>https://fanrongbin.com/</link>
    <description></description>
    <language>en</language>
    <managingEditor>hi@rongb.in (Rongbin Fan)</managingEditor>
    <webMaster>hi@rongb.in (Rongbin Fan)</webMaster>
    <lastBuildDate>Sun, 04 Jan 2026 13:11:27 &#43;0000</lastBuildDate>


    
      <atom:link href="https://fanrongbin.com/index.xml" rel="self" type="application/rss&#43;xml" />
    


    
      <item>
        <title>只有感受是真实的</title>
        <link>https://fanrongbin.com/2025-whats-real/</link>
        <guid isPermaLink="true">https://fanrongbin.com/2025-whats-real/</guid>
        <pubDate>Wed, 31 Dec 2025 23:22:13 &#43;0300</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;就是现在了——你触碰过的每个瞬间，比唾手可得的知识来得更宝贵。&lt;/p&gt;
&lt;p&gt;你所感受的世界，才是真实的世界。&lt;/p&gt;
&lt;p&gt;今年没有最喜欢的新专辑，单首歌倒是挺多的。期待2026吧。&lt;/p&gt;
&lt;p class=&#34;right-date&#34; align=&#34;right&#34;&gt;2025 年 12 月 31 日&lt;/p&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *; clipboard-write&#34; frameborder=&#34;0&#34; height=&#34;175&#34; style=&#34;width:100%;max-width:660px;overflow:hidden;border-radius:10px;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/song/ladida/1824330592&amp;l=en-GB&#34;&gt;&lt;/iframe&gt;</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #8</title>
        <link>https://fanrongbin.com/hybrid-8/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-8/</guid>
        <pubDate>Mon, 29 Dec 2025 21:18:38 &#43;0300</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>先乱来、走路、AI is a faith-based technology、断联、不要装成人等</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/20251230023811.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;© &lt;a href=&#34;https://joachimperez.com/fussnoten&#34;&gt;Wiensowski &amp;amp; Harborde&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;So many endeavors – we saw examples from writing, math, creative cooking, and design – start with messy, rough, experimental thought and then focus down, usually going through cycles of revision and iteration.&lt;/p&gt;
&lt;p&gt;Most of the time we hide that mess. Others only see the final show. They don’t see the countless hours of failed experiments and rehearsal.&lt;/p&gt;
&lt;p&gt;What might we build to support the messier stages of thought for students? Knowing that it’s absolutely normal to start messy is certainly a great lesson. It’s also great to understand how to systematically get to creative clarity by alternating generative and editorial mindsets.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://klr.tumblr.com/post/154784481858/messy-thought-neat-thought&#34;&gt;Messy thought, neat thought&lt;/a&gt;&lt;/em&gt;, May-Li Khoe&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To love walking is to love the body, and this has been a barrier for me. Walking requires us to be a physical presence moving in a physical space. Your body is on display, with all its jostling parts and creaky joints. I know it’s vanity—this self-consciousness, this awareness of other people’s eyes—but it was something I shouldered when I walked, something that made me seek the comfort of a climate-controlled car.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;I stopped in the middle of the sidewalk to look up at it. Such an odd sensation to straighten and tilt my head back. It was a rare sunny day in Exeter. I shielded my eyes with my hand and felt like a flower willing itself through the ground. Then I waved at the gargoyle. I don’t know why. Cars whizzed by. People walked on both sides of the street—parents like me, getting their kids from school. The steeple of St. Leonard’s Church was in the distance, a beautiful marker of how far it was to Bodhi’s school. I headed toward it, my head high, learning a new way of being.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://www.thesunmagazine.org/articles/600-on-walking&#34;&gt;On Walking&lt;/a&gt;&lt;/em&gt;, Ira Sukrungruang&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;digital content of low quality that is produced usually in quantity by means of artificial intelligence&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ Merriam-Webster&amp;rsquo;s &lt;em&gt;&lt;a href=&#34;https://www.merriam-webster.com/dictionary/slop&#34;&gt;2025 Word of the Year: Slop&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are waiting because a defining feature of generative AI, according to its true believers, is that it is never in its final form. Like ChatGPT before its release, every model in some way is also a “low-key research preview”—a proof of concept for what’s really possible. You think the models are good now? Ha! &lt;em&gt;Just wait&lt;/em&gt;. Depending on your views, this is trademark showmanship, a truism of innovation, a hostage situation, or a long con. Where you fall on this rapture-to-bullshit continuum likely tracks with how optimistic you are for the future. But you are waiting nonetheless—for a bubble to burst, for a genie to arrive with a plan to print money, for a bailout, for Judgment Day. In that way, &lt;a href=&#34;https://www.theatlantic.com/technology/archive/2024/07/thrive-ai-health-huffington-altman-faith/678984/&#34;&gt;generative AI is a faith-based technology&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://www.theatlantic.com/technology/2025/11/chatgpt-third-anniversary/685084/&#34;&gt;&lt;em&gt;The World Still Hasn’t Made Sense of ChatGPT&lt;/em&gt;&lt;/a&gt;, Charlie Warzel&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And what’s worse is that other industries are getting increasingly comfortable with that &lt;em&gt;monetise &amp;amp; weaponise&lt;/em&gt; strategy I was mentioning above. The mainstream gaming industry, which has weaponised fun and entertainment and monetised the hell out of it with online services, microtransactions, and gambling-like tactics that have turned players into ludopaths. The car industry, which has transformed cars into smartphones or tablets on wheels, and showered them with tech gadgets while almost forgetting basic stuff like offering vehicles that are pleasant to drive simply for the sake of driving and that can help people disconnect from a daily routine already drowning in tech and bad habits. Or basic stuff like providing a driving experience that is more focused on security than infotainment systems that distract drivers and passengers, and ‘smart solutions’ that dangerously lull drivers into a false sense of security (hi, Tesla!)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://morrick.me/archives/10176&#34;&gt;This time it’s not fatigue, but disconnection&lt;/a&gt;&lt;/em&gt;, Riccardo Mori&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The new &lt;a href=&#34;https://www.aboutamazon.com/news/devices/new-alexa-generative-artificial-intelligence&#34;&gt;Amazon Alexa with AI&lt;/a&gt; has the same basic problem of all AI bots, it acts as if it&amp;rsquo;s human, with a level of intimacy that you really don&amp;rsquo;t want to think about, because Alexa is in your house, with you, listening, all the time. Calling attention to an idea that there&amp;rsquo;s a psuedo-human spying on you is bad. Alexa depends on the opposite impression, that it&amp;rsquo;s just a computer. I think AI&amp;rsquo;s should give up the pretense that they&amp;rsquo;re human, and this one should be first.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;http://scripting.com/2025/11/20.html#a143930&#34;&gt;Dave Winer&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;For example, in the same entry in which Queen Victoria proclaimed her love of industry and loathing of idleness, she gave a precise schedule of her day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I awoke at ½ past 7 and got up at a ¼ past 8. At ½ past 9 we breakfasted. At 1 we lunched … At ½ past 1 came Baroness Howe and Sir Wathen Waller. At a ¼ past 2 we went out walking … till a ¼ to 3. At a ¼ to 6 I played with Mamma till a ¼ past 6 … At 7 we dined. I stayed up till a ¼ to 9.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://aeon.co/essays/victorian-diary-writers-kicked-off-our-age-of-self-optimisation&#34;&gt;&lt;em&gt;Victorian diary-writers kicked off our age of self-optimisation&lt;/em&gt;&lt;/a&gt;, Elena Mary&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If people feel a little like audience members observing their friends’ lives when looking at social media, that’s probably in part because people think of their friends as audiences when posting. Certain scholars describe social-media posts as falling somewhere in between interpersonal and mass communication. (They call it “&lt;a href=&#34;https://web.archive.org/web/20251023193642mp_/https://journals.sagepub.com/doi/abs/10.1177/1461444816686104&#34;&gt;masspersonal&lt;/a&gt;.”) Research has also shown that when posting, people tend to have an “&lt;a href=&#34;https://web.archive.org/web/20251023193642mp_/https://journals.sagepub.com/doi/10.1177/2056305116633482&#34;&gt;imagined audience&lt;/a&gt;” in mind—which may not always line up with who really sees their posts. Contributing to the blending of the social with the parasocial, many &lt;a href=&#34;https://web.archive.org/web/20251023193642mp_/https://www.dazeddigital.com/life-culture/article/68349/1/everyone-is-a-content-creator-now-influencers-social-media-instagram&#34;&gt;regular people post&lt;/a&gt; to their small followings in the &lt;a href=&#34;https://web.archive.org/web/20251023193642mp_/https://embedded.substack.com/p/when-your-friend-starts-posting-like&#34;&gt;style of influencers&lt;/a&gt;&lt;a href=&#34;https://web.archive.org/web/20251023193642mp_/https://embedded.substack.com/p/when-your-friend-starts-posting-like&#34;&gt;:&lt;/a&gt; They speak directly to the camera (“Hey, guys”), or curate their photo dumps to display just the right blend of playful, cool effortlessness.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;This, in turn, affects how people consume posts. As the ratio shifts toward content that isn’t truly social—and as social media is experienced more as entertainment than as a place for connection—perhaps, people will be more likely to just tune in and zone out rather than bothering to interact with the friends they do still see there. “My gut tells me that that expectation that the audience responds has plummeted,” Jeffrey A. Hall, a communications professor at the University of Kansas, told me. So it would make sense that “any gains we used to get from that amount of small interaction in the social-media stream also go away.” Although researchers aren’t yet sure exactly what this phenomenon means for relationships, Hall said that he considers it “part of the long sunset of the public social network as being the place where we see sociality.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://www.theatlantic.com/family/2025/10/social-media-relationships-parasocial/684551/&#34;&gt;The Great Friendship Flattening&lt;/a&gt;&lt;/em&gt;, Julie Beck&lt;/p&gt;
&lt;/span&gt;
&lt;h2 id=&#34;更多&#34;&gt;更多&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=R0XmBKsRJF8&#34;&gt;Pixar&amp;rsquo;s Early Days - A Never-Before-Seen Interview With Steve Jobs, 1996&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.latepost.com/news/dj_detail?id=3272&#34;&gt;大疆览沃前负责人洪小平创业：我做的不是一台电动轮椅丨具身智能对话#18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stratechery.com/2025/the-benefits-of-bubbles/&#34;&gt;The Benefits of Bubbles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.theatlantic.com/magazine/2025/12/ai-companionship-anti-social-media/684596/&#34;&gt;The Age of Anti-Social Media Is Here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.usv.com/2025-annual-meeting&#34;&gt;10 Highlights from USV&amp;rsquo;s 2025 Annual Meeting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sspai.com/post/64749&#34;&gt;工作日的冬夜吃什么？15 分钟就能搞定的绝味火锅们&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nintil.com/longevity/&#34;&gt;Longevity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>DPS退押金时的Statutory Declaration</title>
        <link>https://fanrongbin.com/dps-statutory-declaration/</link>
        <guid isPermaLink="true">https://fanrongbin.com/dps-statutory-declaration/</guid>
        <pubDate>Tue, 25 Nov 2025 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>请尽量指定仍在当地的室友为nominated tenant</description>
        <content:encoded>&lt;p&gt;会搜索到这篇文章，一般是不走运需要raise a dispute了，希望你注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;假设中介未在DPS系统里开启流程，需要租客先行开启&lt;/li&gt;
&lt;li&gt;流程开启后，有14天的时间供双方在系统提交证据
&lt;ul&gt;
&lt;li&gt;在开启流程时&lt;strong&gt;需要选择nominated tenant来负责通信和证据提交等。请尽量选择在英国境内的租客&lt;/strong&gt;，因为如果进入Statutory Declaration process，需要线下走一些程序（如下述）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如果中介装死，需要在&lt;strong&gt;14天过后主动&lt;/strong&gt;申请进入&lt;a href=&#34;https://www.depositprotection.com/repayments/statutory-declaration-process-tenants&#34;&gt;Statutory Declaration process&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;进入Statutory Declaration process：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;需要下载一个系统生成的表格，填写打印后由nominated tenant在&lt;strong&gt;律师见证&lt;/strong&gt;下签字，寄给DPS&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This must be witnessed by a Solicitor, a Commissioner for Oaths or a Magistrate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对这个表格的律师见证，在英国基本各律所都能够进门当场办理，费用一般小于10镑&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果选择的nominated tenant不在英国，DPS也允许在其他国家地区作律师见证，发生的费用因各律所费率而不同&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;如果确实要修改nominated tenant：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只能取消当前的claim，重新生成一个claim
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;这意味着需要再等14天重新进入Statutory Declaration process&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;也可以咨询DPS（邮件、电话、在线三种方式，建议不时存档对话避免后续纠纷）
&lt;ul&gt;
&lt;li&gt;我们在25年10月咨询得知，可以在不取消当前claim的情况下，授权另外一名租户来承担nominated tenant的责任，&lt;strong&gt;但这意味着如果之后需要递交证据材料，必须以线下邮寄的方式递交&lt;/strong&gt;，不能线上提交&lt;/li&gt;
&lt;li&gt;也许有其他方法，但我们没问出来&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Excel礼仪</title>
        <link>https://fanrongbin.com/evergreen/modelling/</link>
        <guid isPermaLink="true">https://fanrongbin.com/evergreen/modelling/</guid>
        <pubDate>Wed, 08 Oct 2025 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>
            &lt;link rel=&#34;stylesheet&#34; href=&#34;https://fanrongbin.com/css/vendors/admonitions.02779140835f452cb4ca8e7db2ae0343d32da5f75cd96f68d9c5d7d655d622a1.css&#34; integrity=&#34;sha256-AneRQINfRSy0yo59sq4DQ9Mtpfdc2W9o2cXX1lXWIqE=&#34; crossorigin=&#34;anonymous&#34;&gt;
    &lt;div class=&#34;admonition note&#34;&gt;
      &lt;div class=&#34;admonition-header&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 576 512&#34;&gt;&lt;path d=&#34;M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z&#34;/&gt;&lt;/svg&gt;
        &lt;span&gt;Note&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&#34;admonition-content&#34;&gt;
        &lt;p&gt;推荐你试试：Arixcel（追踪单元格、自定义快捷键）、白描OCR、UiPath Clipboard AI、以及Quicker。&lt;/p&gt;
&lt;p&gt;此外还有老牌的Macabacus、世外数豆人的IBD Tools、方方格子等VBA插件。&lt;/p&gt;
&lt;p&gt;还可以试试&lt;a href=&#34;https://tracelight.ai/?src=fanrongbin.com&#34;&gt;Tracelight&lt;/a&gt;，注意合规。&lt;/p&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;h2 id=&#34;格式&#34;&gt;格式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;input：蓝色&lt;/li&gt;
&lt;li&gt;reference：绿色&lt;/li&gt;
&lt;li&gt;formula：黑色&lt;/li&gt;
&lt;li&gt;for edit：边框（+米黄色）&lt;/li&gt;
&lt;li&gt;pending/emphasis：黄色高亮&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;excel&#34;&gt;Excel&lt;/h2&gt;
&lt;h3 id=&#34;快捷键&#34;&gt;快捷键&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;行列
&lt;ul&gt;
&lt;li&gt;选中行：&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;空格&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;往上插入行/左插入列：选中后，&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;+&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;删除行列：选中后，&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;-&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;快速填充
&lt;ul&gt;
&lt;li&gt;向下：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;D&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;向右：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;R&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;到行末/列末注意需要最末输入内容占位，或者选择隐藏空白行列&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;隐藏列：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;0&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;切换工作表：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;PgUp&lt;/kbd&gt;或&lt;kbd&gt;PgDn&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;快速求和：&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;=&lt;/kbd&gt;
&lt;ul&gt;
&lt;li&gt;现金流出项目，把减号做进单元格里&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;单元格格式：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;1&lt;/kbd&gt;
&lt;ul&gt;
&lt;li&gt;整数：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;1&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;日期：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;3&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;百分号：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;5&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;加小数位：&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;H&lt;/kbd&gt;+&lt;kbd&gt;0&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;减小数位：&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;H&lt;/kbd&gt;+&lt;kbd&gt;9&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;单元格加边框：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;7&lt;/kbd&gt;
&lt;ul&gt;
&lt;li&gt;去掉边框：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;-&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;只粘贴值：
&lt;ul&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;H&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;重复执行上一步操作：&lt;kbd&gt;F4&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;加批注：&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;F2&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;Go to Special：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;G&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;建议发出前完成：&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;缩放到100%：&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;W&lt;/kbd&gt;+&lt;kbd&gt;J&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;选中A1单元格：&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Home&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;自查名称管理器、宏，是否有重复/弃用/掉链接/报错，尽量不用range names&lt;/li&gt;
&lt;li&gt;自查空白单元格是否空白（带格式需要删掉，影响文件体积）&lt;/li&gt;
&lt;li&gt;公式里不出现任何hard-coded的数值，包括换算单位、天数等&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;建议跨列居中代替合并单元格&#34;&gt;建议跨列居中代替合并单元格&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;理由
&lt;ul&gt;
&lt;li&gt;可调整，不会提示“无法对合并单元格执行此操作”&lt;/li&gt;
&lt;li&gt;不改变单元格值的位置&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;锁定或解锁受保护区域&#34;&gt;锁定或解锁受保护区域&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://support.microsoft.com/zh-cn/office/%E9%94%81%E5%AE%9A%E6%88%96%E8%A7%A3%E9%99%A4%E9%94%81%E5%AE%9A%E5%8F%97%E4%BF%9D%E6%8A%A4%E5%B7%A5%E4%BD%9C%E8%A1%A8%E7%9A%84%E7%89%B9%E5%AE%9A%E5%8C%BA%E5%9F%9F-75481b72-db8a-4267-8c43-042a5f2cd93a&#34;&gt;锁定或解除锁定受保护工作表的特定区域 - Microsoft 支持&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;模拟运算表&#34;&gt;模拟运算表&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;双因素
&lt;ul&gt;
&lt;li&gt;引用行：横向变化范围&lt;/li&gt;
&lt;li&gt;引用列：竖向变化范围&lt;/li&gt;
&lt;li&gt;模拟运算表和输入单元格，必须在同一张sheet&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;单因素
&lt;ul&gt;
&lt;li&gt;引用行：横向变化范围&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mp.weixin.qq.com/s/AA8QoaowBZpGOIMvjCfvMA&#34;&gt;超过二维以及多个项目处理&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;多情景&#34;&gt;多情景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;灵活使用&lt;code&gt;=CHOOSE()&lt;/code&gt;和&lt;code&gt;=SWITCH()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;vba&#34;&gt;VBA&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;模块命名使用英文，避免不同语言系统打不开文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;modelling相关&#34;&gt;Modelling相关&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;常量假设（constant input，fixed）和动态假设（dynamic input，time-variable，带timeline）分开&lt;/li&gt;
&lt;li&gt;先做时间线和flag
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;=SEQUENCE()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;先根据一般假设做清楚draft版本（勾稽正确），然后再逐个item去拆&lt;/li&gt;
&lt;li&gt;所有增长率/trend的假设，线性或指数，都需要backup解释&lt;/li&gt;
&lt;li&gt;假设建议引两次，一次在工作表前面，一次在使用的item前面&lt;/li&gt;
&lt;li&gt;item分层，建议缩小前面几列，按照层级放置，方便&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;↑&lt;/kbd&gt;或&lt;kbd&gt;↓&lt;/kbd&gt;跳转&lt;/li&gt;
&lt;li&gt;如果用到&lt;code&gt;=NPV()&lt;/code&gt;，注意第0期手动加回&lt;/li&gt;
&lt;li&gt;一个不成文的做法是，sheet的排布从左到右派生，即逐个从右往左删掉sheet时，不会因此而改变前序sheet&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #7</title>
        <link>https://fanrongbin.com/hybrid-7/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-7/</guid>
        <pubDate>Wed, 08 Oct 2025 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>他不沉默的样子、装、品味、俗气、兴趣养成理论，以及几串对投资的思考</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/20250929142419.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;© &lt;a href=&#34;https://www.twreporter.org/a/photo-light-up-the-houses-expropriated-for-taoyuan-aerotropolis&#34;&gt;林肇圀&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;我想象，他不沉默的时候是什么样子？&lt;/p&gt;
&lt;p&gt;他一定也坐过绿皮火车。那时从湖北出发，只能坐火车，睡一晚，第二天一大早到北京。他会不会也有过买不到座位的经历？他也许是那种为了省钱一路站着的人，不会像我，明明买了卧铺票，还要点一碗50元却半生不熟的黄焖鸡米饭。&lt;/p&gt;
&lt;p&gt;他是一个节俭的人，但对我很大方。小学时，我中午到爷爷奶奶家吃午饭，一般只有爷爷在家，奶奶在外摆摊卖布。我找他要零花钱买零食，他便从自己抽屉里拿出钢镚来。他的木质抽屉十分整洁，钱币整齐摆放在盒子里，旁边摞起几个记事本，角落还有一些姑姑的首饰。我总是贪心，觉得爷爷是温和内敛之人，如果找他多要点钱，他不会拒绝。我总是成功了，从他那里，我经常能拿一元甚至两元，而从其他人那儿，我只能拿五角。&lt;/p&gt;
&lt;p&gt;张叔说以前的火车票3块钱一张，在爷爷的年代，也许更便宜吧？如果和他一起坐火车，他可能会给我点一餐，让我坐在沙发上。&lt;/p&gt;
&lt;p&gt;不过其实，我并不确定他对我的情感是什么模样，也不确定自己对他是何种感情。&lt;/p&gt;
&lt;p&gt;又到了下午四点，火车已经开了24小时。车厢里很安静，一些人在睡觉，隔壁卧铺的三个阿姨在聊年轻人不会讲云南话。我坐在走廊旁的椅子上，贴着车窗写日记：&lt;/p&gt;
&lt;p&gt;“没有见到他最后一面，我没有掉眼泪。我是何时对他的感情开始淡漠的？又或许，我是否一直没有对他有过亲密的情感？&amp;hellip; 毕竟我们从未有过深入的交流，毕竟他从未袒露过他的内心。”&lt;/p&gt;
&lt;p&gt;他沉默地活，沉默地死。没有过情感表达的人，是否意味留不下情感的痕迹？但是，在这个问题之前，他是自愿沉默的吗？&lt;/p&gt;
&lt;p&gt;我小时候，爷爷知道我喜欢吃糖醋排骨，也喜欢吃奶奶自制的热干面，照顾完我的午饭，他便回房，坐在窗边抽烟。有时我坐不住，说想出去玩，爷爷会牵着我的手出门走路。我向他展示地上捡到的树叶，他会尴尬地微笑回应：“好”，然后扭过头去，一言不发。&lt;/p&gt;
&lt;p&gt;我想他也是想出门的。有一次，他独自出门散步了，几个小时没有回来，全家人很着急。不记得最后他们在哪里找到了爷爷，只记得将他接回家后，所有人教训了他一顿，指责他出门“非常危险”，下次再也不要出去了。他们就像对待一个不听话，需要管教的小孩。而爷爷极少回击，回到房内，仿佛无事发生，置身事外，旁观他人对自己的评判。&lt;/p&gt;
&lt;p&gt;自此之后，他应该再也没有离开过家，或许他也渐渐放弃了出门。家庭聚会时，他是躲在房间或客厅角落里坐着抽烟的那位，眼神并非空洞，而是一副事不关己，无所谓的态度。毕竟我们在一旁所有的讨论，他都能听懂。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ Wanqing Chen：&lt;a href=&#34;https://likeawildvine.substack.com/p/personal-essay-28-hours-on-a-green&#34;&gt;二十八小时绿皮火车记&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;It’s never been so easy to pretend to know so much without actually knowing anything. We pick topical, relevant bits from Facebook, Twitter or emailed news alerts, and then regurgitate them. Instead of watching “Mad Men” or the Super Bowl or the Oscars or a presidential debate, you can simply scroll through someone else’s live-tweeting of it, or read the recaps the next day. Our cultural canon is becoming determined by whatever gets the most clicks.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;What we all feel now is the constant pressure to know enough, at all times, lest we be revealed as culturally illiterate. So that we can survive an elevator pitch, a business meeting, a visit to the office kitchenette, a cocktail party, so that we can post, tweet, chat, comment, text as if we have seen, read, watched, listened. What matters to us, awash in petabytes of data, is not necessarily having actually consumed this content firsthand but simply knowing that it exists — and having a position on it, being able to engage in the chatter &lt;em&gt;about&lt;/em&gt; it. We come perilously close to performing a pastiche of knowledgeability that is really a new model of know-nothingness.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;The information is everywhere, a constant feed in our hands, in our pockets, on our desktops, our cars, even in the cloud. The data stream can’t be shut off. It pours into our lives a rising tide of words, facts, jokes, GIFs, gossip and commentary that threatens to drown us. Perhaps it is this fear of submersion that is behind this insistence that we’ve seen, we’ve read, we &lt;em&gt;know&lt;/em&gt;. It’s a none-too-convincing assertion that we are still afloat. So here we are, desperately paddling, making observations about pop culture memes, because to admit that we’ve fallen behind, that we don’t know what anyone is talking about, that we have nothing to say about each passing blip on the screen, is to be dead.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://www.nytimes.com/2014/05/25/opinion/sunday/faking-cultural-literacy.html&#34;&gt;Faking Cultural Literacy&lt;/a&gt;&lt;/em&gt;, Karl Taro Greenfeld, NYT&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;品味在&lt;strong&gt;創造屬於自己的東西&lt;/strong&gt;時特別重要，不論是做研究、拍影片、寫程式都是一樣，即使有了主題，還是需要創作者做「選擇」，判斷需要添加什麼素材，亦或是更重要的，不要增加什麼與何時該停下來，透過一連串的判斷，仔細組織成自己的作品。品味是每個人都如此特別的原因，人們在這世界上各種有形和無形的資源中採集，動態形成屬於自己的組合。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ Ya-Xuan：&lt;a href=&#34;https://yaxuanhe.me/post/taste/&#34;&gt;品味&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;這形形色色的事物間有一個公共的成分——量的過度：鉆戒戴在手上是極悅目的，但是十指尖尖都拶著鉆戒，太多了，就俗了！胭脂擦在臉上是極助嬌艷的，但是涂得仿佛火燒一樣，太濃了，就俗了！肚子對于人體曲線美是大有貢獻的，但是假使凸得像掛了布袋，太高了，就俗了！以此類推。同時我們胸中還潛伏一個道德觀念：我們不贊成一切夸張和賣弄，一方面因為一切夸張和賣弄總是過量的，上自媒人的花言巧語，下至戲里的丑表功，都是言過其實、表過其里的。另一方面也因為人家的夸大反襯出我們的渺小來，所以我們看見我們認為過當的事物，我們不知不覺地聯想到賣弄，不管那樁事物確是在賣弄（像戴滿鉆戒的手）或是出于不得已（像大肚子）。因此，我們暫時的結論是：當一個人認為一樁東西為俗的時候，這一個東西里一定有這個人認為太過火的成分，不論在形式上或內容上。這個成分的本身也許是好的，不過假使這個人認為過多了(too much of a good thing)，包含這個成分的整個東西就要被認為俗氣。所以，俗氣不是負面的缺陷(default)，是正面的過失(fault)。&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;俗的意思是“通俗”，大凡通俗的東西都是數量多的，價錢賤的；照經濟常識，東西的價值降賤，因為供過于求，所以，在一個人認為俗的事物中，一定有供過于求的成分——超過那個人所希望或愿意有的數量的成分。從“通俗”兩個字，我們悟到俗氣的第二個特點：俗的東西就是可以感動“大多數人”的東西&amp;ndash;此地所謂“大多數人”帶著一種譴責的意味，不僅指數量說，并且指品質說，是卡萊爾(Carlyle)所謂“不要崇拜大多數”(don’t worship the majority)的“大多數”，是易卜生(Ibsen)所謂“大多數永遠是錯誤的”(a majority is always wrong)的“大多數”。&lt;/p&gt;
&lt;p&gt;綜括以上來說，假使一個人批評一樁東西為“俗”，這個批評包含兩個意義：（一）他認為這樁東西組織中某成分的量超過他心目中以為適當的量。（二）他認為這樁東西能感動的人數超過他自以為隸屬著的階級的人數。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ 錢鐘書：&lt;a href=&#34;http://www.rocidea.com/one?id=24665&#34;&gt;論俗氣&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;I think I do think sometimes we spend too much time on nostalgia. I think people always ask what was that based on or what was your inspiration? And sure, people have inspirations and they have unconscious thoughts in their heads, but true creative design, I&amp;rsquo;m talking about the fashion world, true creative designers, and I&amp;rsquo;m sure it&amp;rsquo;s the same with with your world, it&amp;rsquo;s original. It comes from their mind, not from somebody else&amp;rsquo;s mind. Maybe they had some influences, but the idea is theirs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://www.youtube.com/watch?v=pq9TGMzlLbU&#34;&gt;Anna Wintour Embraces a New Era at Vogue | The New Yorker Interview&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“What are the consequences of that?” asked Paul O’Keefe, an assistant professor of psychology at Yale—NUS College. “That means that if you do something that feels like work, it means you don’t love it.” He gave me the example of a student who jumps from lab to lab, trying to find one whose research topic feels like her passion. “It’s this idea that if I’m not completely overwhelmed by emotion when I walk into a lab, then it won’t be my passion or my interest.”&lt;/p&gt;
&lt;p&gt;That’s why he and two co-authors—Dweck and Greg Walton of Stanford—recently performed a study that suggests it might be time to change the way we think about our interests. Passions aren’t “found,” they argue. They’re developed.&lt;/p&gt;
&lt;p&gt;In a &lt;a href=&#34;https://web.archive.org/web/20180916190207/http://mindsets-and-motivation-lab.commons.yale-nus.edu.sg/wp-content/uploads/sites/39/2018/06/PSCI-15-2069-PubMed.pdf&#34;&gt;paper that is forthcoming in &lt;em&gt;Psychological Science&lt;/em&gt;&lt;/a&gt;, the authors delineate the difference between the two mind-sets. One is a “fixed theory of interests”—the idea that core interests are there from birth, just waiting to be discovered—and the other is a “growth theory,” the idea that interests are something anyone can cultivate over time.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Dweck told me that “find your passion” has a laudable history. “Before that, people were saying, ‘Find your genius,’ and that was so intimidating. It implied that only people who were really brilliant at something could succeed,” she said. “‘Find your passion’ felt more democratic. Everybody can have an interest.” But this study suggests that even the idea of finding your “true” interest can intimidate people and keep them from digging further into a field.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;K. Ann Renninger, a professor at Swarthmore College who was not involved with the study, has researched the development of interests and said that “neuroscience has confirmed that interests can be supported to develop.” In other words, with the right help, most people can get interested in almost anything. Before the age of 8, she said, kids will try anything. Between the ages of 8 and 12, they start to compare themselves with others and become insecure if they’re not as good as their peers at something. That’s when educators have to start to find new ways to keep them interested in certain subjects.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;https://www.theatlantic.com/science/archive/2018/07/find-your-passion-is-terrible-advice/564932/&#34;&gt;‘Find Your Passion’ Is Awful Advice&lt;/a&gt;&lt;/em&gt;, Olga Khazan&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;&lt;a href=&#34;https://stratechery.com/2017/the-local-news-business-model/&#34;&gt;from The Local News Business Model&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This last point is at the crux of why many ad-based newspapers will find it all but impossible to switch to a real subscription business model. When asking people to pay, quality matters far more than quantity, and the ratio matters: a publication with 1 valuable article a day about a well-defined topic will more easily earn subscriptions than one with 3 valuable articles and 20 worthless ones covering a variety of subjects. Yet all too many local newspapers, built for an ad-based business model that calls for daily content to wrap around ads, spend their limited resources churning out daily filler even though those ads no longer exist.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;In short, every leg of the stool that supported the open web is at best wobbly: users are less likely to go to ad-supported content-based websites, even as the long tail of advertisers might soon lose their conduit to place ads on those websites, leaving said websites even less viable than they are today — and they’re barely hanging on as it is!&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;No, the real neglect and missed opportunity in terms of payments is happening right now: Microsoft is on to the right idea with its adoption of MCP and introduction of NLWeb, but its proposal, by virtue of not including native payments, isn’t nearly as compelling as it should be. The key difference from the 1990s is that on the agentic web native digital payments are both viable and the best possible way to not only keep the web alive, but also in the process create better and more useful AI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://stratechery.com/2025/the-agentic-web-and-original-sin/&#34;&gt;&lt;em&gt;The Agentic Web and Original Sin&lt;/em&gt;&lt;/a&gt;, Stratechery by Ben Thompson&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Spend time efficiently
&lt;ul&gt;
&lt;li&gt;Choose good problems&lt;/li&gt;
&lt;li&gt;Have a bunch of them&lt;/li&gt;
&lt;li&gt;Make a list
&lt;ul&gt;
&lt;li&gt;Integrate the list with your life&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Make your time higher quality
&lt;ul&gt;
&lt;li&gt;Ease physical constraints
&lt;ul&gt;
&lt;li&gt;Carry pen and paper&lt;/li&gt;
&lt;li&gt;Avoid being interrupted&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ease mental constraints
&lt;ul&gt;
&lt;li&gt;Eat, sleep, exercise&lt;/li&gt;
&lt;li&gt;Talk to cheerful people&lt;/li&gt;
&lt;li&gt;Share the load&lt;/li&gt;
&lt;li&gt;Procrastination and the mental force field
&lt;ul&gt;
&lt;li&gt;Hard problems: break it down, simplify it, think about it&lt;/li&gt;
&lt;li&gt;Assigned problems: create a false assignment, don&amp;rsquo;t assign problems to yourself, make things fun&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;&lt;a href=&#34;http://www.aaronsw.com/weblog/productivity&#34;&gt;HOWTO: Be more productive&lt;/a&gt;&lt;/em&gt;, Aaron Swartz&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Selecting a Goal: main mission/quest, level up along the way, and side quests&lt;/li&gt;
&lt;li&gt;Getting Triggered: try again, be in a state where you can be consistently triggered&lt;/li&gt;
&lt;li&gt;Escape the Noise: have some time to reflect&lt;/li&gt;
&lt;li&gt;Shifting Your Perspective: a learning mindset&lt;/li&gt;
&lt;li&gt;Measure Your Progress: give yourself feedback&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://medium.com/write-a-catalyst/how-i-study-consistently-with-a-full-time-job-fc3362793def&#34;&gt;&lt;em&gt;How I Study Consistently With A Full-Time Job&lt;/em&gt;&lt;/a&gt;, Jordan Brown&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/640.jpg&#34; alt=&#34;640&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Price is the most important factor to use in relation to value.&lt;/li&gt;
&lt;li&gt;Try to establish the value of the company. Remember that a share of stock represents a part of a business and is not just a piece of paper.&lt;/li&gt;
&lt;li&gt;Use book value as a starting point to try and establish the value of the enterprise. Be sure that debt does not equal 100% of the equity. (Capital and surplus for the common stock).&lt;/li&gt;
&lt;li&gt;Have patience. Stocks don&amp;rsquo;t go up immediately.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t buy on tips or for a quick move. Let the professionals do that, if they can. Don&amp;rsquo;t sell on bad news.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t be afraid to be a loner but be sure that you are correct in your judgment. You can&amp;rsquo;t be 100% certain but try to look for weaknesses in your thinking. Buy on a scale and sell on a scale up.&lt;/li&gt;
&lt;li&gt;Have the courage of your convictions once you have made a decision.&lt;/li&gt;
&lt;li&gt;Have a philosophy of investment and try to follow it. The above is a way that I&amp;rsquo;ve found successful.&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t be in too much of a hurry to sell. If the stock reaches a price that you think is a fair one, then you can sell but often because a stock goes up say 50%, people say sell it and button up your profit. Before selling try to re-evaluate the company again and see where the stock sells in relation to its book value. Be aware of the level of the market historically high. Are people very optimistic etc?&lt;/li&gt;
&lt;li&gt;When buying a stock, I find it helpful to buy near the low of the past few years. A stock may go as high as 124 and then decline to 60 and you think it attractive. 3 years before the stock sold at 20 which shows that there is some vulnerability in it.&lt;/li&gt;
&lt;li&gt;Try to buy assets at a discount than to buy earnings. Earnings can change dramatically in a short time. Usually assets change slowly. One has to know much more about a company if one buys earnings.&lt;/li&gt;
&lt;li&gt;Listen to suggestions from people you respect. This doesn&amp;rsquo;t mean you have to accept them. Remember it&amp;rsquo;s your money and generally it is harder to keep money than to make it. Once you lose a lost of money it is hard to make it back.&lt;/li&gt;
&lt;li&gt;Try not to let your emotions affect your judgment. Fear and greed are probably the worst emotions to have in connection with the purchase and sale of stocks.&lt;/li&gt;
&lt;li&gt;Remember the work compounding. For example, if you can make 12% a year and reinvest the money back, you will double your money in 6 years, taxes excluded. Remember the rule of 72. Your rate of return into 72 will tell you the number of years to double your money.&lt;/li&gt;
&lt;li&gt;Prefer stocks over bonds. Bonds will limit your gains and inflation will reduce your purchasing power.&lt;/li&gt;
&lt;li&gt;Be careful of leverage. It can go against you.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;em&gt;On common stocks&lt;/em&gt;, March 10, 1994, Walter &amp;amp; Edwin Schloss Associates, L.P.&lt;/p&gt;
&lt;/span&gt;
&lt;blockquote&gt;
&lt;p&gt;回看当时的很多判断，只是典型的外部正反馈：有人投关注、有人抛出估值、市场制造幻觉，整套节奏都是外部环境给出的。那段时间离所谓&amp;quot;成功&amp;quot;最近，也离实质积累最远。&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;这些工具表面上解决不同问题，但底层逻辑是一样的：把凭感觉的决策变成可回放、可复盘的流程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ 马大伟：&lt;a href=&#34;https://www.bmpi.dev/self/35/&#34;&gt;三十五&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;不過最近我們有另一個心得：大家拼命學 prompt 的這件事，可能兩三年後就沒那麼重要了。因為 AI model 會越來越聰明，越來越會「通靈」，你根本不需要講得那麼仔細。到那個時候，身為一個操作者，真正需要的能力是什麼？&lt;/p&gt;
&lt;p&gt;我們覺得是「辨別」。辨別 AI 講的到底是不是真的、是不是在騙你，或是它的邏輯是不是走歪了。這東西需要的不只是知識，更需要「常識」。&lt;/p&gt;
&lt;p&gt;但回頭看我們自己這一代三四十歲的人受的教育，學校通常教了知識、教了技能，給了特定學科當作未來專業的基礎，但從來沒有一堂課是教怎麼擁有常識。&lt;/p&gt;
&lt;p&gt;這真的很可怕。當有 AI 這麼 powerful 的工具，想藉助它跨到別的領域時，才赫然發現自己根本沒有一個常識的基底去判斷，AI 給的結果到底是不是對的。&lt;/p&gt;
&lt;p&gt;尤其現在，我們每天在社群或任何地方，看到的內容越來越多是 AI 生成的，裡面可能充滿假新聞或各種被渲染的消息，該怎麼判斷？&lt;/p&gt;
&lt;p&gt;這就是為什麼我們覺得《真確》這本 2018 年的老書在這個時代特別重要。它不是直接教你如何「邁向真實」，而是反過來告訴你，在這條路上，有十種會阻撓你的直覺偏誤。&lt;/p&gt;
&lt;p&gt;這些偏誤其實都是你大腦為了節省耗能而發展出來的「偷懶機制」，它幫你快速篩選資訊，但也常常讓你遠離真相。如果我們要跳脫被這些謬誤支配的困境，就必須先了解它們是什麼。&lt;/p&gt;
&lt;p&gt;書裡提到的十種謬誤，分別是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;二分化直覺偏誤：習慣把世界分成黑與白。&lt;/li&gt;
&lt;li&gt;負面型直覺偏誤：總是把事情想得很糟。&lt;/li&gt;
&lt;li&gt;直線型直覺偏誤：認為趨勢會像一條直線一樣無限延伸。&lt;/li&gt;
&lt;li&gt;恐懼型直覺偏誤：因為恐懼而誇大危險。&lt;/li&gt;
&lt;li&gt;失真型直覺偏誤：對事物的比例、大小有錯誤的概念。&lt;/li&gt;
&lt;li&gt;概括型直覺偏誤：把不同的東西歸為同一類。&lt;/li&gt;
&lt;li&gt;宿命型直覺偏誤：認為某些事是注定且無法改變。&lt;/li&gt;
&lt;li&gt;單一觀點直覺偏誤：只相信某個權威或單一的解釋。&lt;/li&gt;
&lt;li&gt;怪罪型直覺偏誤：出事了就一定要找個戰犯。&lt;/li&gt;
&lt;li&gt;急迫型直覺偏誤：覺得每件事都很緊急，必須馬上行動。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://mailchi.mp/manny-li/063-17460274&#34;&gt;曼報 #238：[長文] 重讀真確（Factfulness）&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;首先，企業主的決策不一定都有策略脈絡可循，尤其當特定行動是「首次出現」的時候，最好不要過度解讀。&lt;/p&gt;
&lt;p&gt;例如，市場（或媒體）通常會在一間公司成長的時候，將其所有行為解讀成策略的一環，因為替成長中的公司寫什麼故事都有機會是對的。&lt;/p&gt;
&lt;p&gt;但，我個人幾次比較深刻的經驗是：通常都是老闆的一時興起。&lt;/p&gt;
&lt;p&gt;然而，真正應該注意的，是這些企業在「繳完學費」後的行動。如果該企業還持續有投資（不論是投資新創或發展新事業），通常都是想好了，甚至是找到關鍵的執行角色。&lt;/p&gt;
&lt;p&gt;其次，情感連結（人脈）在早期投資中往往扮演至關重要的因素。像劉偉這種「師生投資」的案例不僅在中國不少，在美國也不少見，甚至會發展成越洋案件。&lt;/p&gt;
&lt;p&gt;最後，早期投資失敗是常態、絕非例外，但真正成功過的人通常更有堅持下去的信念，因為就像劉偉說的：「搞不好投到下一個『米哈游』。」人是很難靠想像就維持信念的生物，如果沒有嚐過百倍、萬倍以上的回報率，很難長期面對失敗。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⤷ &lt;a href=&#34;https://mailchi.mp/manny-li/063-17457172&#34;&gt;曼報 #226：[電子報] AI 比人類還有說服力、Meta 反壟斷訴訟開打、川普連電影都能課關稅&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/The%20Startup%20Process%20%E2%80%94%20from%20the%20whiteboard%20at%20YC.jpg&#34; alt=&#34;The Startup Process — from the whiteboard at YC&#34;&gt;&lt;/p&gt;
&lt;p&gt;⤷ The Startup Process from the whiteboard at YC.&lt;/p&gt;
&lt;h2 id=&#34;更多&#34;&gt;更多&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://mp.weixin.qq.com/s/cEFuj8Iww-xmkLvLLbSSng&#34;&gt;澎湃人物：一所县中的孩子想要“如厕自由”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href=&#34;https://blog.google/products/ads-commerce/google-ai-max-for-search-campaigns/#introduction&#34;&gt;Unlock next-level performance with AI Max for Search campaigns&lt;/a&gt;&lt;/em&gt;, Google Ads&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>商业计划书</title>
        <link>https://fanrongbin.com/evergreen/bp/</link>
        <guid isPermaLink="true">https://fanrongbin.com/evergreen/bp/</guid>
        <pubDate>Wed, 08 Oct 2025 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>
            &lt;link rel=&#34;stylesheet&#34; href=&#34;https://fanrongbin.com/css/vendors/admonitions.02779140835f452cb4ca8e7db2ae0343d32da5f75cd96f68d9c5d7d655d622a1.css&#34; integrity=&#34;sha256-AneRQINfRSy0yo59sq4DQ9Mtpfdc2W9o2cXX1lXWIqE=&#34; crossorigin=&#34;anonymous&#34;&gt;
    &lt;div class=&#34;admonition note&#34;&gt;
      &lt;div class=&#34;admonition-header&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 576 512&#34;&gt;&lt;path d=&#34;M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z&#34;/&gt;&lt;/svg&gt;
        &lt;span&gt;Note&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&#34;admonition-content&#34;&gt;
        &lt;p&gt;Also works for pitch deck while &lt;a href=&#34;https://www.alumni.hbs.edu/Documents/events/NVCPitchDeckTemplate.pdf&#34;&gt;the goal for a pitch deck&lt;/a&gt; is to give a snapshot of your investment opportunity, taking into consideration your impact, growth potential, viability, the ability of your team to execute your plan. And the product/service is your &lt;a href=&#34;https://www.dfc.gov/sites/default/files/2019-08/Key_Elements_of_a_Pitch_Book_for_IFIP.pdf&#34;&gt;portfolio/investment strategy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What to include in a fund pitch deck, examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.kkrreit.com/~/media/Files/K/KKR-V2/reports-and-presentations/kref-1q25-investor-presentation.pdf&#34;&gt;KREF 1Q&#39;25 Investor Presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.blackstonemortgagetrust.com/wp-content/uploads/sites/14/2025/04/BXMT-1Q-2025-Company-Presentation.pdf&#34;&gt;BXMT 1Q&#39;25 Company Presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://shareholders.tpg.com/static-files/0b993935-3e48-4ec3-bb89-3565fe7cdad8&#34;&gt;TPG Investor Presentation, November 2022&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://investor.capitaland.com/newsroom/20210729_172002_C31_Y5STFXO4R106A0GN.1.pdf&#34;&gt;Strategic Restructuring of CapitaLand Limited and Listing of CapitaLand Investment, July 2021&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://www.10xebitda.com/investment-banking-presentations/&#34;&gt;10xebitda&lt;/a&gt; has some IB presentations.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://pitchdeckguy.beehiiv.com/&#34;&gt;PitchDeckGuy&lt;/a&gt; gives weekly analyses.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;h2 id=&#34;整体&#34;&gt;整体&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;问题/机会从何而来，什么需求没被解决（市场背景、需求痛点）&lt;/li&gt;
&lt;li&gt;问题被我们解决、机会被我们把握（业务/产品介绍、团队介绍）
&lt;ul&gt;
&lt;li&gt;而不是被别人解决（竞争对手分析、进入壁垒）&lt;/li&gt;
&lt;li&gt;而且我们能够做大做强（商业模式和GTM策略，飞轮，scalable）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;我们能达到什么高度（收入测算、市场规模测算、未来前景）&lt;/li&gt;
&lt;li&gt;我们需要多少资源的投入（成本测算、投资条款、后续规划）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;目的&#34;&gt;目的&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;帮助创业者梳理自己的想法、梳理故事线&lt;/li&gt;
&lt;li&gt;帮助创业者以务实和市场/商业的眼光看待自己的产品，思考商业化的模式&lt;/li&gt;
&lt;li&gt;帮助创业者理解市场、从全局的角度去看目前市场的发展状况，从而和自己公司的现状和未来规划做对比&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;分项商业模式&#34;&gt;分项：商业模式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;三种传统模式
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;生产——销售&lt;/strong&gt;：一次性交易，价值在于产品本身
&lt;ul&gt;
&lt;li&gt;直销货品、服务、空间&lt;/li&gt;
&lt;li&gt;直销内容、App买断&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;批发贸易——零售&lt;/strong&gt;：低买高卖，信息不对称或渠道价值
&lt;ul&gt;
&lt;li&gt;分销货品，买卖价差、佣金
&lt;ul&gt;
&lt;li&gt;超市卖可乐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;分销内容或App等虚拟商品，买卖价差、佣金
&lt;ul&gt;
&lt;li&gt;iTunes买电影&lt;/li&gt;
&lt;li&gt;数字荔枝（源头厂商不支持部分支付方式或某地区未开展运营）&lt;/li&gt;
&lt;li&gt;代发货（不做库存只做运营，供营商直接发货）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务收费&lt;/strong&gt;，价值在于服务或时间&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平台/连接/市场(marketplace)，抽佣&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;B2B、B2C、网络效应：多个群体撮合，例如亚马逊&lt;/li&gt;
&lt;li&gt;共享经济、P2P：非商家的个人作为交易主体，例如Uber、Airbnb&lt;/li&gt;
&lt;li&gt;按需服务：根据数量的即时性交付，例如Deliveroo、Uber&lt;/li&gt;
&lt;li&gt;O2O、线上到线下，例如Deliveroo、Ticketmaster&lt;/li&gt;
&lt;li&gt;C2B，例如广告联盟（SHEIN推广大使）、众筹&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;订阅——无法买断&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;按是否存在paywall分类
&lt;ul&gt;
&lt;li&gt;必须付费解锁&lt;/li&gt;
&lt;li&gt;有免费tier（freemium）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;按产品服务属性分类
&lt;ul&gt;
&lt;li&gt;内容，例如Apple TV+&lt;/li&gt;
&lt;li&gt;SaaS（工具、功能）
&lt;ul&gt;
&lt;li&gt;纯虚拟，例如ChatGPT Plus&lt;/li&gt;
&lt;li&gt;虚拟+物理，例如Plaud&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;权利（特权/优先级、优惠、便利），例如BFI优先购票&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用量——实际消耗或效果&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;API
&lt;ul&gt;
&lt;li&gt;调用次数&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;数据
&lt;ul&gt;
&lt;li&gt;调用次数&lt;/li&gt;
&lt;li&gt;授权时限&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;空间/时间
&lt;ul&gt;
&lt;li&gt;可增量订购的虚拟存储空间，例如网盘&lt;/li&gt;
&lt;li&gt;按面积或小时计价的实际物理空间，例如WeWork&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;广告
&lt;ul&gt;
&lt;li&gt;曝光次数&lt;/li&gt;
&lt;li&gt;成功点击次数&lt;/li&gt;
&lt;li&gt;注意力经济&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;特许经营
&lt;ul&gt;
&lt;li&gt;加盟费&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;分项设计商业模式&#34;&gt;分项：设计商业模式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;从客户角度出发&lt;strong&gt;定价&lt;/strong&gt;，盈利属于内含前提
&lt;ul&gt;
&lt;li&gt;你的价值主张 + 解决客户实际需求 → 议价能力，base
&lt;ul&gt;
&lt;li&gt;产品服务内含的价值、开发的成本cover&lt;/li&gt;
&lt;li&gt;价值主张有人买单，符合决策人的利益&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;你的差异性 + 定位客群的付费能力 → 溢价水平，premium
&lt;ul&gt;
&lt;li&gt;客户选择你的理由&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;你希望维持的客户关系 → 正/负方向的溢价调整&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;价值如何交付（&lt;strong&gt;渠道和价值转化的通路&lt;/strong&gt;）
&lt;ol&gt;
&lt;li&gt;价值主张被传达&lt;/li&gt;
&lt;li&gt;价值主张被认知&lt;/li&gt;
&lt;li&gt;价值主张被认可&lt;/li&gt;
&lt;li&gt;价值主张转化为实际价值
&lt;ul&gt;
&lt;li&gt;市场教育情况、客户接受程度&lt;/li&gt;
&lt;li&gt;内部偏好、内部具备的资源能力&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;商业模式需要不断验证和优化&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;分项设计价值主张&#34;&gt;分项：设计价值主张&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;本质：在用户心智中，你的产品服务占据什么位置&lt;/li&gt;
&lt;li&gt;形式：差异化表述&lt;/li&gt;
&lt;li&gt;入手
&lt;ol&gt;
&lt;li&gt;明确市场和目标用户
&lt;ul&gt;
&lt;li&gt;进入的行业和品类（做什么和不做什么）&lt;/li&gt;
&lt;li&gt;谁最可能买单&lt;/li&gt;
&lt;li&gt;从大到小思考
&lt;ul&gt;
&lt;li&gt;例如定位to B：快消大企业？&lt;/li&gt;
&lt;li&gt;例如定位to C：细分人口学社会学特征？&lt;/li&gt;
&lt;li&gt;例如定位to Gov/School/Hospital：细分地域/服务对象收入水平等？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;寻找竞品和替代品
&lt;ul&gt;
&lt;li&gt;直接&lt;/li&gt;
&lt;li&gt;间接（替代）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;确定自己的差异化表述
&lt;ul&gt;
&lt;li&gt;别人没有抓住，但用户格外在意的点（竞争者感知图）&lt;/li&gt;
&lt;li&gt;产品服务本身具备的差异价值&lt;/li&gt;
&lt;li&gt;产品服务之上再叠加的价值，例如售后、私有化部署技术团队、本地团队等&lt;/li&gt;
&lt;li&gt;使用场景差异&lt;/li&gt;
&lt;li&gt;价格差异&lt;/li&gt;
&lt;li&gt;品牌差异&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;（以一种statement/slogan，在用户心智中反复强化）&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;分项使用场景挖掘&#34;&gt;分项：使用场景挖掘&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;什么用户在什么情况（场景）下会想到你、使用你、愿意为你买单&lt;/li&gt;
&lt;li&gt;入手
&lt;ol&gt;
&lt;li&gt;从用户需求出发
&lt;ul&gt;
&lt;li&gt;用户要完成什么任务&lt;/li&gt;
&lt;li&gt;用户为什么要完成这个任务（背后动机和痛点）&lt;/li&gt;
&lt;li&gt;如果没有我的产品，他现在会怎么做（替代方案）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;确定场景三个要素
&lt;ul&gt;
&lt;li&gt;人物（正推或反推）&lt;/li&gt;
&lt;li&gt;时间地点&lt;/li&gt;
&lt;li&gt;动机（选择原因）&lt;/li&gt;
&lt;li&gt;例子：爱喝品质咖啡的上班族、早上9点在地铁口、需要快速带走一杯比办公室咖啡机出品更好的咖啡&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;调研和验证场景的合理性
&lt;ul&gt;
&lt;li&gt;用户访谈、用户日记、实际观察（行为或数据）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;优先聚焦高价值场景
&lt;ul&gt;
&lt;li&gt;选择标准
&lt;ul&gt;
&lt;li&gt;频率高&lt;/li&gt;
&lt;li&gt;痛点强烈&lt;/li&gt;
&lt;li&gt;转化付费可能性高&lt;/li&gt;
&lt;li&gt;单次付费或生命价值高&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;场景驱动产品服务设计和营销&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;欢迎大家&lt;a href=&#34;https://fanrongbin.com/contact&#34;&gt;补充&lt;/a&gt;。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>邮件检查</title>
        <link>https://fanrongbin.com/evergreen/email/</link>
        <guid isPermaLink="true">https://fanrongbin.com/evergreen/email/</guid>
        <pubDate>Wed, 08 Oct 2025 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;h2 id=&#34;格式&#34;&gt;格式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Word编辑，复制到邮件系统发出&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 重点内容划线+加粗，不滥用&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 超过3个bullet，改用数字有序列表（并且考虑是否过多事项？）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;礼节&#34;&gt;礼节&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 名字：所有的人名、组织名、项目名、地名（复制粘贴替代手动输入）正确&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 称呼、头衔、职级正确&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 人称代词、特殊用词（专业词汇、简称等）：前后一致、表义准确、不混用&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 有开头有结尾，第一次往来写全，后续视往来频率可简略&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 谦辞（若有）：确认是否为下对上&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 如果存在历史往来，开头结尾、代词、称呼、头衔等与历史往来保持一致&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;内容&#34;&gt;内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 开门见山：先给答案，后给论述，论述简要谈及论据&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 简练：在保证完整和准确的前提下，越短越好；每句话都有它背后的目的&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 逻辑：按照人脑读取的顺序思路，安排内容&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 段落：篇幅合适、错落合理&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 讲好该讲的事：不要发散、不要提及没有要求develop的新内容&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 前后一致：提到的答案和论述，与其他渠道的讨论、附件内容保持一致&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 英文邮件请避免被动语态&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;内容检查&#34;&gt;内容检查&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 定性文字、定量数据，double check（数值、单位、来源等）&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 附件：文件是否正确、是否为当前最终版本（使用邮件系统内的预览查看）、文件命名&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 敏感处理：是否有需要隐去的信息（删除或替换为占位符）&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 语法和拼写错误&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;发出&#34;&gt;发出&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 邮件主题：简洁明了&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 收件人邮件地址（复制粘贴替代手动输入/自动联想），留在最后写，避免误点发送键&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 抄送、密送：排列从上到下、从外到内；询问supervisor需要loop in哪些人&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 签名：第一次往来完整，后续简略&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 免责声明：是否需要包含&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 定时：日期时间是否正确（注意邮件系统时区）、是否为对方工作时间&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 约定日期时间：是否为工作日（确认所有stakeholder所在地区节假日安排）以及是否需要写明时区&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;回复转发&#34;&gt;回复/转发&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 一般不使用reply all&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 删除多余的Re:和Fw:&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 内外部，往来是否需要删除&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 是否开启新loop，视是否需要讨论新的主题&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;further-reading&#34;&gt;Further Reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href=&#34;https://www.law.georgetown.edu/wp-content/uploads/2021/04/Handout_7-Thau_Kelley_EmailingProfessionallyHandout.pdf&#34;&gt;Emailing Professionally&lt;/a&gt;&lt;/em&gt;, The Writing Center at Georgetown University Law Center&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.law.georgetown.edu/wp-content/uploads/2018/07/checklistclient_000.pdf&#34;&gt;&lt;em&gt;Checklist for the Client Letter or Memo&lt;/em&gt;&lt;/a&gt;, The Writing Center at Georgetown University Law Center&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.law.columbia.edu/sites/default/files/2022-08/WC%20Memo%20Checklist.pdf&#34;&gt;&lt;em&gt;Memo Writing Checklist&lt;/em&gt;&lt;/a&gt;, Columbia Law School Writing Center&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.csb.gov.hk/tc_chi/publications_stat/publication/2707.html&#34;&gt;政府公文寫作手冊（第三版）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.iso.cuhk.edu.hk/chinese/documents/resource/useful-ref/style-guide-c.pdf&#34;&gt;大學刊物編輯指引（中文）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=F3CC9BEF482524C895FDA7A08BB4A70E&#34;&gt;党政机关公文格式（GB/T 9704-2012）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=22EA6D162E4110E752259661E1A0D0A8&#34;&gt;标点符号用法（GB/T 15834-2011）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;欢迎大家&lt;a href=&#34;https://fanrongbin.com/contact&#34;&gt;补充&lt;/a&gt;。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>快速上手 QGIS</title>
        <link>https://fanrongbin.com/qgis-get-started/</link>
        <guid isPermaLink="true">https://fanrongbin.com/qgis-get-started/</guid>
        <pubDate>Fri, 27 Jun 2025 14:21:00 &#43;0100</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>一款开源、流畅、多插件的地图软件</description>
        <content:encoded>&lt;p&gt;使用&lt;a href=&#34;https://qgis.org/&#34;&gt;QGIS&lt;/a&gt;可以很方便地对地图做样式处理。例如高亮某条马路、标记某个位置、圈出某个园区等等。&lt;/p&gt;
&lt;p&gt;下载安装后，首先点击菜单栏&lt;code&gt;Plugins&lt;/code&gt;，搜索安装QuickMapServices（&lt;a href=&#34;https://nextgis.com/blog/quickmapservices/&#34;&gt;官网&lt;/a&gt;）以在线使用包括Google Maps在内的底图。&lt;/p&gt;
&lt;p&gt;新建一个project后，从菜单栏&lt;code&gt;Web&lt;/code&gt;中找到安装好的QuickMapServices，点击所需的底图即加载，在左下角Layers窗口就能看到。&lt;/p&gt;
&lt;p&gt;这些底图中有带labels的，有的不带。如果需要自己做样式处理（如下图，把高速公路做成了绿色），需要加载无labels的底图（如Google Satellite），再用QuickOSM下载需要的路网、建筑等。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/aeb45a2e3d026e03351e3e28a2633f2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;使用quickosm下载路网等&#34;&gt;使用QuickOSM下载路网等&lt;/h2&gt;
&lt;p&gt;搜索安装QuickOSM插件（&lt;a href=&#34;https://github.com/3liz/QuickOSM&#34;&gt;Github&lt;/a&gt;）以连接Overpass和Nominatim API，从OpenStreetMap（OSM）下载道路、基础设施等objects。&lt;/p&gt;
&lt;p&gt;从菜单栏&lt;code&gt;Vector&lt;/code&gt;或者顶栏绿色背景的放大镜图标即可进入QuickOSM。使用&lt;code&gt;Quick query&lt;/code&gt;来筛选并下载需要的objects。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/20250627143621.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Preset&lt;/code&gt;里有很多已经设定好的objects可以使用，例如&lt;code&gt;Buildings/House&lt;/code&gt;、&lt;code&gt;Highways/Barriers/Toll Booth&lt;/code&gt;等等。你也可以自行键入&lt;code&gt;Key&lt;/code&gt;和&lt;code&gt;Value&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;以高速公路为例，&lt;code&gt;Key&lt;/code&gt;为&lt;code&gt;highway&lt;/code&gt;，&lt;code&gt;Value&lt;/code&gt;为&lt;code&gt;motorway&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;随后需要输入范围，如&lt;code&gt;In = Jeddah, Saudi Arabia&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;你可以在&lt;code&gt;Advanced&lt;/code&gt;部分规定需要下载的类型，建议都下载，因为之后如果需要显示labels，不一定都有存放（例如可能港口的labels会存在polygons里而不是lines里）。&lt;/p&gt;
&lt;p&gt;点击&lt;code&gt;Run query&lt;/code&gt;开始下载，完成后自动加载图层。&lt;/p&gt;
&lt;p&gt;如果网络环境不好，可以尝试在边栏&lt;code&gt;Parameters&lt;/code&gt;里更换API地址。&lt;/p&gt;

            &lt;link rel=&#34;stylesheet&#34; href=&#34;https://fanrongbin.com/css/vendors/admonitions.02779140835f452cb4ca8e7db2ae0343d32da5f75cd96f68d9c5d7d655d622a1.css&#34; integrity=&#34;sha256-AneRQINfRSy0yo59sq4DQ9Mtpfdc2W9o2cXX1lXWIqE=&#34; crossorigin=&#34;anonymous&#34;&gt;
    &lt;div class=&#34;admonition info&#34;&gt;
      &lt;div class=&#34;admonition-header&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;path d=&#34;M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z&#34;/&gt;&lt;/svg&gt;
        &lt;span&gt;注意QuickOSM不会自动保存下载的图层&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&#34;admonition-content&#34;&gt;
        &lt;p&gt;如果你希望下次继续使用，请在&lt;code&gt;Quick query - Advanced&lt;/code&gt;中编辑好&lt;code&gt;Directory&lt;/code&gt;。&lt;a href=&#34;https://www.reddit.com/r/QGIS/comments/13v3zux/recovering_lost_scratch_layers_from_quickosm/&#34;&gt;可能也可以使用Memory Layer Saver插件&lt;/a&gt;，但我个人没尝试过。&lt;/p&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;h2 id=&#34;标出特定坐标&#34;&gt;标出特定坐标&lt;/h2&gt;
&lt;p&gt;要在地图上标示出某些坐标，可以将坐标先存放在表格文件如&lt;code&gt;*.csv&lt;/code&gt;中（&lt;code&gt;*.xlsx&lt;/code&gt;尽量记得&lt;code&gt;UTF-8&lt;/code&gt;保存，避免乱码）。&lt;/p&gt;
&lt;p&gt;快捷键&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;T&lt;/kbd&gt;或者在菜单栏选择&lt;code&gt;Layer&lt;/code&gt;-&amp;gt;&lt;code&gt;Add Layer&lt;/code&gt;-&amp;gt;&lt;code&gt;Add Delimited Text Layer&lt;/code&gt;，点击&lt;code&gt;File name&lt;/code&gt;右侧按钮选择保存好的表格文件（或直接输入文件路径）。&lt;/p&gt;
&lt;p&gt;需要配置File Format。如果文件是tab分隔的，需要用&lt;code&gt;Custom delimiters&lt;/code&gt;并选择&lt;code&gt;Tab&lt;/code&gt;。配置到下方的预览符合你的需要即可。&lt;/p&gt;
&lt;p&gt;还要配置好经纬度对应的列并设置坐标系。&lt;code&gt;X field&lt;/code&gt;为经度（longitude），&lt;code&gt;Y field&lt;/code&gt;为纬度（latitude）。设置&lt;code&gt;Geometry CRS&lt;/code&gt;为&lt;code&gt;EPSG:4326 - WGS 84&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;点击&lt;code&gt;Add&lt;/code&gt;即导入图层。&lt;/p&gt;
&lt;h2 id=&#34;更改图层样式&#34;&gt;更改图层样式&lt;/h2&gt;
&lt;p&gt;要更改样式，在左下角&lt;code&gt;Layers&lt;/code&gt;里双击某个图层，或右键进入&lt;code&gt;Properties&lt;/code&gt;即可。进入后在&lt;code&gt;Symbology&lt;/code&gt;界面修改。&lt;/p&gt;
&lt;p&gt;如果要添加&lt;code&gt;Labels&lt;/code&gt;则进&lt;code&gt;Labels&lt;/code&gt;，选择&lt;code&gt;Single Labels&lt;/code&gt;后找到需要的值，如&lt;code&gt;name:en&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/20250627145913.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Github Actions &#43; fonttools 拉取字符并创建中文字体子集</title>
        <link>https://fanrongbin.com/hugo-font-subsetting/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hugo-font-subsetting/</guid>
        <pubDate>Sat, 14 Jun 2025 10:41:41 &#43;0100</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>帮助解决中文字体体积过大的问题</description>
        <content:encoded>&lt;p&gt;创建子集部分参考自谢益辉老师的&lt;a href=&#34;https://github.com/yihui/yihui.org/discussions/1547&#34;&gt;做法&lt;/a&gt;。如果你需要的中文字体在&lt;a href=&#34;https://chinese-font.netlify.app/zh-cn/cdn/&#34;&gt;字图CDN&lt;/a&gt;有覆盖，用这个也能一定程度上提升性能。&lt;/p&gt;
&lt;p&gt;本文将通过解释写好的workflow文件来展开，完整代码见最下方。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;workflow_dispatch&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;workflow_run&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;workflows&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deploy&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;types&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;completed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;告诉Github Actions什么时候自动运行，&lt;code&gt;workflow_dispatch:&lt;/code&gt;使得这个workflow能在对应页面手动点击运行，&lt;code&gt;workflow_run:&lt;/code&gt;这里我定义了使其在名字为&lt;code&gt;deploy&lt;/code&gt;的workflow完成后运行。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Checkout repository&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/checkout@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;checkout&lt;/code&gt;把仓库的代码从Github克隆到workflow构建的运行环境中。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Install fonttools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install -y fonttools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装&lt;a href=&#34;https://github.com/fonttools/fonttools&#34;&gt;&lt;code&gt;fonttools&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Extract used characters from content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      mkdir -p font
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      find . -name &amp;#39;*.md&amp;#39; -o -name &amp;#39;*.html&amp;#39; | xargs cat \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        | grep -oP &amp;#39;[\x{3000}-\x{30FF}\x{31F0}-\x{31FF}\x{4E00}-\x{9FFF}\x{AC00}-\x{D7AF}\x{FF00}-\x{FFEF}\x{FE10}-\x{FE1F}]&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        | sort | uniq &amp;gt; used-chars.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;从所在项目的&lt;code&gt;.md&lt;/code&gt;和&lt;code&gt;.html&lt;/code&gt;提取出出现过的中日韩字符（CJK）：在工作环境创建&lt;code&gt;/font&lt;/code&gt;文件夹，查找当前目录及子目录下所有以&lt;code&gt;.md&lt;/code&gt;或&lt;code&gt;.html&lt;/code&gt;结尾的文件，用&lt;code&gt;cat&lt;/code&gt;拼接成一个文件，用&lt;code&gt;grep&lt;/code&gt;来匹配字符范围（Unicode区间可自行重新设定），&lt;code&gt;sort&lt;/code&gt;排序，&lt;code&gt;uniq&lt;/code&gt;去重，&lt;code&gt;&amp;gt; used-chars.txt&lt;/code&gt;保存到一个文本文件。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Download fonts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      mkdir -p font/raw
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      cd font/raw
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      declare -A urls
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      urls[&amp;#34;SourceHanSansSC-Regular&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/SimplifiedChinese/SourceHanSansSC-Regular.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      for name in &amp;#34;${!urls[@]}&amp;#34;; do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        echo &amp;#34;Downloading ${name}...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        wget -nv --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 3 &amp;#34;${urls[$name]}&amp;#34; -O &amp;#34;${name}.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      done
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      echo &amp;#34;Copying local fonts STKaiti and DFKai-SB...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      cp ../../resources/STKaiti.otf .
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      cp ../../resources/DFKai-SB.otf .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;创建&lt;code&gt;/font/raw&lt;/code&gt;目录来保存在线下载的中文字体文件（&lt;code&gt;.otf&lt;/code&gt;格式）。定义了一个关联数组&lt;code&gt;urls&lt;/code&gt;来储存字体名和链接。用&lt;code&gt;for&lt;/code&gt;遍历，用&lt;code&gt;wget&lt;/code&gt;下载每个字体（&lt;code&gt;--retry-connrefused&lt;/code&gt;访问被拒绝的话自动重试，&lt;code&gt;--t 3&lt;/code&gt;最多重试3次）并保存到&lt;code&gt;/font/raw&lt;/code&gt;中。&lt;/p&gt;
&lt;p&gt;如果手动准备了字体（这里存储在仓库的&lt;code&gt;/resources&lt;/code&gt;下），用&lt;code&gt;cp&lt;/code&gt;也复制到&lt;code&gt;/font/raw&lt;/code&gt;。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Subset fonts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    mkdir -p font/woff2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    for font in font/raw/*.otf; do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      name=$(basename &amp;#34;$font&amp;#34; .otf)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      pyftsubset &amp;#34;$font&amp;#34; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        --text-file=used-chars.txt \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        --flavor=woff2 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        --no-hinting \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        --layout-features=&amp;#39;*&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        --output-file=&amp;#34;font/woff2/${name}-subset.woff2&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;创建&lt;code&gt;/font/woff2&lt;/code&gt;来存放生成的子集字体。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;for&lt;/code&gt;循环遍历&lt;code&gt;.otf&lt;/code&gt;字体，使用&lt;code&gt;pyftsubset&lt;/code&gt;生成子集字体，只保留&lt;code&gt;used-chars.txt&lt;/code&gt;列出的字符，输出格式为&lt;code&gt;woff2&lt;/code&gt;，&lt;code&gt;--no-hinting&lt;/code&gt;不保留字体hinting信息，&lt;code&gt;--layout-features=&amp;quot;*&amp;quot;&lt;/code&gt;保留OpenType的功能，&lt;code&gt;--output-file&lt;/code&gt;指定输出文件路径。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Move subset fonts to static/font&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    mkdir -p static/font
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    mv font/woff2/*.woff2 static/font/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;移动到仓库的&lt;code&gt;/static/font&lt;/code&gt;目录下。（如果你不需要在这个仓库存一份，可以省去这一步）&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Commit and push subset fonts to Github Pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;TOKEN&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ secrets.PERSONAL_TOKEN }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git clone --depth 1 https://x-access-token:${TOKEN}@github.com/rongbinf/rongbinf.github.io.git out
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    cp -f static/font/*.woff2 out/font/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    cp -f used-chars.txt out/font/used-chars.txt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    cd out
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git config user.name github-actions
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git config user.email github-actions@github.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git add font/*.woff2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git add font/used-chars.txt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git commit -m &amp;#34;chore: update subset Source Han Sans fonts&amp;#34; || echo &amp;#34;No changes to commit&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    git push&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;推送到Github Pages仓库，使用环境变量&lt;code&gt;TOKEN&lt;/code&gt;认证Git操作（可参考之前写的&lt;a href=&#34;https://fanrongbin.com/github-actions-deploy-hugo&#34;&gt;自动部署Hugo教程&lt;/a&gt;），克隆下来到&lt;code&gt;/out&lt;/code&gt;后把子集字体放到&lt;code&gt;/out/font&lt;/code&gt;下，然后配置并push变更。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;完整&lt;code&gt;yml&lt;/code&gt;如下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Subset Source Han Sans&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;workflow_dispatch&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;workflow_run&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;workflows&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deploy&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;types&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;completed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;subset-fonts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;runs-on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Checkout repository&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/checkout@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Install fonttools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install -y fonttools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Extract used characters from content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          mkdir -p font
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          find . -name &amp;#39;*.md&amp;#39; -o -name &amp;#39;*.html&amp;#39; | xargs cat \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            | grep -oP &amp;#39;[\x{3000}-\x{30FF}\x{31F0}-\x{31FF}\x{4E00}-\x{9FFF}\x{AC00}-\x{D7AF}\x{FF00}-\x{FFEF}\x{FE10}-\x{FE1F}]&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            | sort | uniq &amp;gt; used-chars.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Download fonts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          mkdir -p font/raw
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          cd font/raw
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          declare -A urls
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansSC-Regular&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/SimplifiedChinese/SourceHanSansSC-Regular.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansTC-Regular&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/TraditionalChinese/SourceHanSansTC-Regular.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSans-Regular&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/Japanese/SourceHanSans-Regular.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansK-Regular&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/Korean/SourceHanSansK-Regular.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansSC-Bold&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/SimplifiedChinese/SourceHanSansSC-Bold.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansTC-Bold&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/TraditionalChinese/SourceHanSansTC-Bold.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSans-Bold&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/Japanese/SourceHanSans-Bold.otf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          urls[&amp;#34;SourceHanSansK-Bold&amp;#34;]=&amp;#34;https://github.com/adobe-fonts/source-han-sans/raw/release/OTF/Korean/SourceHanSansK-Bold.otf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#ae81ff&#34;&gt;for name in &amp;#34;${!urls[@]}&amp;#34;; do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#ae81ff&#34;&gt;echo &amp;#34;Downloading ${name}...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#ae81ff&#34;&gt;wget -nv --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 3 &amp;#34;${urls[$name]}&amp;#34; -O &amp;#34;${name}.otf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#ae81ff&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#ae81ff&#34;&gt;echo &amp;#34;Copying local fonts STKaiti and DFKai-SB...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#ae81ff&#34;&gt;cp ../../resources/STKaiti.otf .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#ae81ff&#34;&gt;cp ../../resources/DFKai-SB.otf .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Subset fonts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          mkdir -p font/woff2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          for font in font/raw/*.otf; do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            name=$(basename &amp;#34;$font&amp;#34; .otf)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            pyftsubset &amp;#34;$font&amp;#34; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              --text-file=used-chars.txt \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              --flavor=woff2 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              --no-hinting \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              --layout-features=&amp;#39;*&amp;#39; \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              --output-file=&amp;#34;font/woff2/${name}-subset.woff2&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Move subset fonts to static/font&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          mkdir -p static/font
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          mv font/woff2/*.woff2 static/font/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Commit and push subset fonts to Github Pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;TOKEN&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ secrets.PERSONAL_TOKEN }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git clone --depth 1 https://x-access-token:${TOKEN}@github.com/rongbinf/rongbinf.github.io.git out
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          cp -f static/font/*.woff2 out/font/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          cp -f used-chars.txt out/font/used-chars.txt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          cd out
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git config user.name github-actions
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git config user.email github-actions@github.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git add font/*.woff2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git add font/used-chars.txt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git commit -m &amp;#34;chore: update subset Source Han Sans fonts&amp;#34; || echo &amp;#34;No changes to commit&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          git push&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #6</title>
        <link>https://fanrongbin.com/hybrid-6/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-6/</guid>
        <pubDate>Sat, 14 Jun 2025 01:44:32 &#43;0100</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>打开 Teams 要花 96 亿个时钟周期、人生最后一段、怀疑内容、写作，以及你的注意力一小时 2 美元</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/P1655845.webp&#34; alt=&#34;&#34;&gt;
Windows 3.1 Style Clock © Retrofied, The Cave&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;p&gt;Pocket即将于2025年7月8日正式关闭。&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Pocket has helped millions save articles and discover stories worth reading. But the way people save and consume content on the web has evolved, so we’re channeling our resources into projects that better match browsing habits today. Discovery also continues to evolve; Pocket helped shape the curated content recommendations you already see in Firefox, and that experience will keep getting better. Meanwhile, new features like &lt;a href=&#34;https://blog.mozilla.org/en/firefox/firefox-tab-groups/&#34;&gt;Tab Groups&lt;/a&gt; and enhanced bookmarks now provide built-in ways to manage reading lists easily.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;This shift allows us to shape the next era of the internet – with tools like vertical tabs, smart search and more AI-powered features on the way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.mozilla.org/en/mozilla/building-whats-next/&#34;&gt;Mozilla&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;马晖：……在公司内部，我们这个业务叫“city making”，它分两个主要板块，第一个是advisory咨询类，第二个偏于设计和实施。如果业务的未来目标不清晰、定位不准确、执行路线有较多的不确定，我们会从咨询的角度与业主协商，看我们有没有机会从项目伊始就开始参与、贡献我们在过往项目里得到的经验甚至教训。&lt;/p&gt;
&lt;p&gt;在咨询之外，可以看到我们现行的开发建设中一个普遍需要增进的地方，就是如何进行更全方位的整合。整合一方面来自项目背后的利益相关者，另一个部分就是技术专家和管理者对解决方案的整合。&lt;strong&gt;某些解决方案可能是单一技术最优，但不是工程整体利益的最优&lt;/strong&gt;；在这种情况下，整合是奥雅纳能帮助我们的业主、合作伙伴为项目增值的重要举措。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.archiposition.com/items/73ce5b02ec&#34;&gt;奥雅纳 Arup：在前海的十年︱有方专访&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple TV+ is streaming &lt;a href=&#34;https://www.youtube.com/watch?v=JRnDYB28bL8&#34;&gt;an 8-hour remix of the Severance theme&lt;/a&gt; by &lt;a href=&#34;https://odesza.com/&#34;&gt;ODESZA&lt;/a&gt; that is perfect music for your innie to &lt;a href=&#34;https://lumon-industries.com/&#34;&gt;refine macrodata&lt;/a&gt; to. The workday-long video is a 23-minute mix that’s looped and set to footage from the show. Legit adding this to the work music rotation. (via &lt;a href=&#34;https://bsky.app/profile/margarita.bsky.social/post/3liptolksrc2k&#34;&gt;@margarita.bsky.social&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://kottke.org/25/02/severance-music-to-refine-to&#34;&gt;Severance: Music To Refine To&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Modern hardware is unbelievably fast. The M1 Max that I’m writing this article on runs at 3.2GHz. That is &lt;a href=&#34;https://www.cpubenchmark.net/cpu.php?cpu=Apple+M1+Max+10+Core+3200+MHz&amp;amp;id=4585&#34;&gt;3.2 &lt;em&gt;BILLION&lt;/em&gt; clock cycles per second&lt;/a&gt;. Yet, Microsoft Teams takes 3 seconds to open a link, and I refuse to believe it takes 9.6 BILLION clock cycles to open a link. Obviously, that’s an over-simplification, but the point stands: how is it that hardware gets faster, but the applications we use only get slower?&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;The real responsibility lies with the companies building these apps. It’s definitely possible to build good Electron apps - Slack, Obsidian, and Notion are prime examples. You just have to care.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Clearly, these issues aren’t localized to a specific programming language, operating system, or industry. It’s a broader trend to build things faster and worse. Delivery over quality.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Stop doing less with more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.preyneyv.dev/doing-less-with-more&#34;&gt;I Waited 10 Billion Cycles and All I Got Was This Loading Screen&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;她認為，年輕人對死亡問題比較沒有包袱，特別是「安寧度假村」會在網路上引發這麼多人共鳴，是因為跟他們日後切身相關。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「年輕人沒有地方死，其實是另一種居住不正義，可是當台灣人現在連死亡都還不能談、不願意談的時候，不會有人去想到臨終地點的問題，要推廣臨終場所實在太困難了。」&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;佳吟在注射免疫療法隔週就因為喘得離不開氧氣，緊急住進安寧病房。最後一個月，除了醫院安寧團隊的照顧，就依靠朋友的支持跟陪伴。佳吟大學好友怡佳說，佳吟不願意麻煩別人，什麼都要自己做好，但是怎麼可能呢？怡佳幫著佳吟退租房子；在網上建立Google表單，讓好友們每天排班，陪伴佳吟。佳吟每天寫下自己身體的變化跟心情，好友們給她回應。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;人生最後一段為什麼不在家裡度過呢？阿媛說，即使找居家醫療團隊來家裡，也不是很周全，好的看護又不好找，「我不怕孤獨死，但是我擔心鄰居會怕，而且可能讓整棟大樓跌價，那我就太對不起他們了。」&lt;/p&gt;
&lt;p&gt;可是當阿媛計畫住到養生村或安養院時，她發現養生村只收健康的老人，而品質評價較好的安養院，她排了多年，都還沒輪到。愛好自由的她，也不確定自己是否能適應安養院的生活。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://www.twreporter.org/a/no-place-to-die-1&#34;&gt;在醫院很難死，但哪兒可以好死──4個有家「走」不得的血淚告白&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;阿珍阿嬤述說和其它長者不同的遭遇。家裡做生意，她年幼時家境很好，雖然沒唸很多書，卻嫁給了大學畢業生，先生也對她很好，可是，她卻無法生育。數年後，她為公婆所迫而離婚，只好回到娘家，父母對待她雖然很好，弟弟卻說：「家裡多一個人吃飯！」讓她十分心寒。&lt;/p&gt;
&lt;p&gt;這些陳年傷痛經驗，深埋在長輩心中，並未隨時間流逝而淡然；在與同伴互相傾吐後，大家紛紛以同理心互相安慰，抒懷後，深埋心中的遺憾與情結也漸漸放下了。&lt;/p&gt;
&lt;p&gt;第四次、也是最後一次團體活動， 我們談的主題是道別。我試探性地或詢問：「如果有一天，你病得很嚴重，可能不久於人世，您最想見誰？」阿桑阿嬤一向都是要再三邀請、一再哄騙才發言的，這次卻主動出來分享。她說：「我的二兒子早年過世，留下兩個孩子，二媳婦出家， 由大兒子將這兩個小孩撫養成人。我很感謝大兒子，希望離世時能見到他。」&lt;/p&gt;
&lt;p&gt;一生未娶的阿祥阿公面帶笑容， 他說自己單身， 沒什麼人會來探望他， 我再鼓勵他想想：是否有哪位親人他最想見他最後一面？阿祥阿公表示最想見到妹妹，「我和妹妹相差17歲，從小媽媽就交代我要好好照顧妹妹，我還曾揹著妹妹、餵妹妹喝牛奶。」一般長輩多希望與兒女道別，但那些孤家寡人的長者，多已跟親人失聯多年，相對下較少依戀，也沒什麼捨不得或放不下的。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;在老吾老院服務的長者，大多來自獨居或窮困家庭，他們的一生可能經歷了貧苦或悲苦的事件，但是他們從中也感受到他人的愛心，令他們感恩，他們曾有受傷、遺憾的經歷，需要被瞭解與接納，最後得以釋懷。&lt;/p&gt;
&lt;p&gt;道謝、道愛、道歉、道別， 四道人生的習題並非臨終時才做； 由於面對死亡是相對漫長的過程，可以鼓勵長者趁自己意識清楚時就談， 就像前述帶領的四道人生團體經驗，長輩在回顧自己一生經歷同時，也學會了化解恩怨情仇， 放下遺憾， 最後才能充滿感恩地離開。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://www.hospice.org.tw/content/1361&#34;&gt;四道人生 · 生死兩相安&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;What will happen when A.I. systems begin pulling people into formation? We can get a glimpse of the possible consequences by looking at what’s already happened on the pre-A.I. Internet. Harari cites a 2022 study, conducted by the digital-intelligence firm Similarweb, which showed that between twenty and thirty per cent of the content on Twitter was posted by bots, which in turn constituted only five per cent of that platform’s user base. It’s no stretch to say that a platform like Twitter is in itself a kind of bot; its algorithms decide, in an automated fashion, what users should see. On such a platform, therefore, swarms of bots interact with a mega-bot, while human beings read and respond alongside. If this phenomenon were amplified—and if the bots and algorithms were capable of holding intelligent conversations—the likely outcome is “digital anarchy,” as Harari puts it. Conversations among machines will shape conversations about humans. “The public sphere will be flooded by computer-generated fake news, citizens will not be able to tell whether they are having a debate with a human friend or a manipulative machine, and no consensus will remain about the most basic rules of discussion or the most basic facts.”&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;The key step is the last one. As the density, pace, and fluidity of information have increased, we’ve become more conscious of the role it plays in our lives—and more suspicious of it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://www.newyorker.com/culture/open-questions/are-we-living-in-the-age-of-info-determinism&#34;&gt;Are We Living in the Age of Info-Determinism?&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;什么是自我构建？我对它的理解就在上面的这三个小故事里：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;表达自己&lt;/li&gt;
&lt;li&gt;理解自己&lt;/li&gt;
&lt;li&gt;找到自己的最佳位置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这三件事，又指向了三种盲区：&lt;/p&gt;
&lt;p&gt;情绪盲区，我们对情绪以及它背后的来源并不清楚；
认知盲区，我们过往的经历藏着我们理解自己的线索，但我们并未仔细回顾；
行动盲区，我们自我挑战的想法容易被禁锢在旧有的互动模式中；
而在写作中，我们可以尝试三件事：&lt;/p&gt;
&lt;p&gt;通过自我觉察，识别那些被压抑、被忽略的的情绪；
通过回顾过往，让感受和经历建立起连接，更清晰地了解自己；
通过主动激发，鼓励自己和外界发起新的互动。&lt;/p&gt;
&lt;p&gt;针对这三件事，我在整理写作内容时，还会问自己几个问题：&lt;/p&gt;
&lt;p&gt;我的感受是什么
我的联想是什么
我的困惑是什么
我的认知转变是什么
我接下来准备做什么&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://princessateh2022.blogspot.com/2022/03/blog-post_3.html&#34;&gt;自我构建的写作&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这是我的一个写作理念，我认为在非虚构写作里分析文献是不合适的。你不知道是在写理论的探讨、社会的分析，还是在写人。而我所有写作都是写人的，不是写人的群体，就是写人的个体。包括《汉水的身世》，我写的也是一条河和它周围的人。&lt;/p&gt;
&lt;p&gt;我基本上不会把人的故事当作一种阶级属性、社会属性来写。如果皮村文学小组的成员们是一个群体，我也仅仅觉得是因为他们在这里共同学习，他们彼此之间有情感的连接，在处境和人性上有一些共通之处，我不会做进一步的延伸。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;在文学里写人，你关心的是人，不是他身上的社会属性。他本身是一个立体的、活生生的人，你把他归到一些社会属性里去后，他就变成了一个扁平的、被分析的社会对象。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;我的书也许有个问题——我不太提供问题的解法，提供“心灵的膏药”。但是这个时代，大家的心灵都很脆弱，需要这种膏药。&lt;/p&gt;
&lt;p&gt;但书不能只是按摩几下人的心灵，古往今来，伟大的文学作品都是让你不能释怀的，没有完美的结局，没有情绪的出口。卡夫卡会给人出口吗？他就让我们感到很难受。&lt;/p&gt;
&lt;p&gt;我认为读者应该保持一种疼痛的能力，而作者的职责是当一个守夜人，而不是一个心理按摩师。生活本身就不释放你，我来提供释放，只会显得虚假。&lt;/p&gt;
&lt;p&gt;尤其是疫情以来，大家对真实的承受能力下降了，更愿意让作者带着我们去分析议题，满足一种简单的正义感。&lt;/p&gt;
&lt;p&gt;当一个议题已经很显眼的时候，它需要的不是人们把它推到极致，而是对它本身有一些思考。议题本身可能是出于真实的需求，但也很容易成为脱离了真实的东西。我很警惕预先的议题设置，所以我会远离议题写作，诉诸个体，诉诸人本身。&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;可能眼下我们需要文学带来情节的满足、情绪的按摩，大家只有能力承受这些。但是也许有一天，我们的精神有能力去面对一些真实的人和事了，却发现我们没有参照物了，我们写下的记录都是虚假的——我们的历史不在了，只有鸡汤与诗和远方。那不可惜吗？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://mp.weixin.qq.com/s/_F-Y4I1NPdz_8Q22-cckAw?utm_source=substack&amp;amp;utm_medium=email&#34;&gt;为什么袁凌没有成为爆款作家？&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;m still trying to solve this intesity dilemma, but it seems the only way to become a better writer is to write more. Consider this a disclaimer, an advance apology, and a big &amp;ldquo;student driver&amp;rdquo; sign for this blog.&lt;/p&gt;
&lt;p&gt;To help me grow more quickly, please post feedback. Poke holes in my theories. Give counterexamples to my claims. Share your experience.&lt;/p&gt;
&lt;p&gt;Thank you for all the insightful comments across the link aggregators. Thank you for brightening up &lt;a href=&#34;mailto:hello@taylor.town&#34;&gt;my inbox&lt;/a&gt;. Thank you for bringing the best parts of the internet to my feeds on &lt;a href=&#34;https://x.com/surprisetalk&#34;&gt;X&lt;/a&gt;, &lt;a href=&#34;https://bsky.app/profile/taylor.town&#34;&gt;Bluesky&lt;/a&gt;, and &lt;a href=&#34;https://mastodon.social/@surprisetalk&#34;&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks. With your continued help, I can [probably] become a better writer, and [maybe] a better thinker.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://taylor.town/shit-invitation&#34;&gt;An Invitation To Shit On My Ideas&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;It was the anti-Twitter. People were literally running from Twitter to Bluesky, and that is not a way to build something successful.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;And when you’re entirely dependent on that, if a brand like P&amp;amp;G or Unilever doesn’t like what’s happening on the platform, and they threaten to pull the budget, which accounts for like 20% of your revenue? You have no choice, and&amp;hellip; you have no choice. If you take a stance, and they pull the budget, and the stock market sees that, the stock price goes from like 70 bucks to 30. Then you have employees leave because they can get greater value elsewhere, and that’s the whole conundrum that you’re stuck in.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;I find it fascinating to watch how these things play out. Again, I think it points to the need for a protocol where you don’t have to make these decisions at all, right? Because you don’t control the protocol. There’s no one single point of failure you can chokehold and bring before Congress and yell at. It’s like Bitcoin, it doesn’t have one leader or one central chokehold element. And I think that’s critical for what it’s intended to do.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.piratewires.com/p/interview-with-jack-dorsey-mike-solana&#34;&gt;The End of Social Media: An Interview With Jack Dorsey&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;In the advertising business this differential between qualities of attention is often reflected in a metric called CPM, or Cost Per Thousand (M is Latin for thousand). That’s a thousand views, or a thousand readers. This measurement originated in the print business as a way for magazines or periodicals to charge premium prices for material earning greater attention from readers. One luxury publication might demand a CPM of $10, while the local free paper might only get $1. The metric migrated to other media, roughly translating the original “impressions” of printed copies into viewers of shows and hits on websites. Since this cross comparison is a bit of apple-to-oranges, the estimated average CPM of various media platforms range widely. The graph below shows CPM averages (which I compiled from three sources) that range widely, from cheap outdoor billboards to the most expensive AdWords-like ads on search engines like Google.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Fifteen years ago I calculated the average hourly costs for various media platforms, including music, books, newspapers, movies and the new thing on the block, digital rides (a kind of virtual reality experience). There was some variation between media, but the price stayed within the same order of magnitude. Remarkably they tended to converge on a fairly uniform mean of $2.00 per hour. In 1995 we tended to pay, on average, two bucks per hour no matter for media use. (Below is the chart that appeared in Wired in 1995.) &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Recently I recalculated the value of our attention for a similar set of media using the same method with this year’s data. The media costs ranged between 50 cents and 5 dollars per hour. Averaged over all media, we tend to spend about $2.50 per hour on media experiences. When I adjusted the 1995 figures for inflation, the average is close to $2.40 in 2010 dollars. That means that the value of our attention is remarkably stable, gaining only a few percent in 15 years. No matter what we are consuming – books, newspapers, movie, music, games — we tend to price it at about $2.50 an hour.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://kk.org/thetechnium/your-attention/&#34;&gt;Your Attention is Cheap: $2.50/per Hour&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;I am not compelled to bake bread, nor provision servers, nor build chips. Yet that itch pervades, and it pulls me toward humor and systems and life and software and structure. And when emotion becomes unbearable, it erupts out of me: fiction, HTML/CSS, crappy robots, sad songs, and so on.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Soon it will become something else entirely. Because it’s my website and I’m perpetually becoming somebody else.&lt;/p&gt;
&lt;p&gt;You’ll change too. Your passions and values will pollinate; your ugly thing – whatever it is – will come alive again and again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://goodinternetmagazine.com/my-website-is-ugly-because-i-made-it/#&#34;&gt;My website is ugly because I made it&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;I listen and translate. I research and analyze. I strategize and create. I delight and design.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User Research&lt;/li&gt;
&lt;li&gt;Data Analyzation (&lt;a href=&#34;http://www.saturateapp.com/&#34;&gt;Saturate App&lt;/a&gt;, &lt;a href=&#34;https://stormboard.com/&#34;&gt;Stormboard&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Translating Data into Design Principles&lt;/li&gt;
&lt;li&gt;Making Design Features Align with Data&lt;/li&gt;
&lt;li&gt;Usability Testing our Interface&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ovetta-sampson.com/ux-process&#34;&gt;My UX Process is Simple.&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Don&amp;rsquo;t lie to your users&lt;/li&gt;
&lt;li&gt;Show empathy and face the backlash&lt;/li&gt;
&lt;li&gt;Good faith gestures&lt;/li&gt;
&lt;li&gt;Give your users enough time to migrate&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.notesnook.com/the-skiff-privacy-fiasco/&#34;&gt;The Skiff Privacy Fiasco, or How not to Shutdown Your Startup&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;其他&#34;&gt;其他&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://how-i-experience-web-today.com/&#34;&gt;How I Experience Web Today&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://earth.nullschool.net/&#34;&gt;earth :: a global map of wind, weather, and ocean conditions&lt;/a&gt;, &lt;a href=&#34;https://globalsolaratlas.info/&#34;&gt;Global Solar Atlas&lt;/a&gt; (Solargis)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/twodollarshourSm.jpg&#34; alt=&#34;&#34;&gt;&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>在无知的森林里，喊出空旷的再见</title>
        <link>https://fanrongbin.com/2024-in-the-midst-of-voidness/</link>
        <guid isPermaLink="true">https://fanrongbin.com/2024-in-the-midst-of-voidness/</guid>
        <pubDate>Tue, 31 Dec 2024 23:32:17 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;有时忘了说再见，也是一种再见。意识到忘了说再见的瞬间，这句再见也早已说不上了。不知从哪里说起，也不知道以何种方式说起。&lt;/p&gt;
&lt;p&gt;大多数时候我们没忘，却选择不说——好一个开放式结局，以为不说，就有“退路”。&lt;/p&gt;
&lt;p&gt;跟一个人说再见，跟一栋楼房说再见，跟一棵树、一株草说再见，跟一本书说再见，跟一首歌说再见，像脱下一件又一件穿在身上的地图写满了从南到北、从东到西的答案，流亡在无所谓的年代。&lt;/p&gt;
&lt;p&gt;怔怔站在这无知的森林里，喊出空旷的再见。&lt;/p&gt;
&lt;p&gt;那回音传不到山和海的对岸，行囊里塞着的几件毛衣是否就成了最后的暖？&lt;/p&gt;
&lt;p&gt;今年听到最喜欢的新专辑有：林強《The Realm of Otherness》、Jacek Sienkiewicz《Directions: Meaning &amp;amp; Truth》、宇多田ヒカル《SCIENCE FICTION》、Flore Laurentienne《8 tableaux》。&lt;/p&gt;
&lt;p class=&#34;right-date&#34; align=&#34;right&#34;&gt;2024 年 12 月 31 日&lt;/p&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *; clipboard-write&#34; frameborder=&#34;0&#34; height=&#34;175&#34; style=&#34;width:100%;max-width:660px;overflow:hidden;border-radius:10px;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/cn/album/water-play/1759953391?i=1759953405&amp;l=en-GB&#34;&gt;&lt;/iframe&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #5</title>
        <link>https://fanrongbin.com/hybrid-5/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-5/</guid>
        <pubDate>Fri, 06 Dec 2024 20:29:16 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>创造带来持续价值的产品、“推荐文化”、在母语里流浪、当你离开的时候，以及一些旅游建议等</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/Jennifer-Mehigan_DHG_300DPI-54.jpg&#34; alt=&#34;Jennifer Mehigan&#34;&gt;
© &lt;a href=&#34;https://cowardess.online/&#34;&gt;Jennifer Mehigan&lt;/a&gt;&lt;/p&gt;


&lt;div style=&#34;align:middle;&#34;&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *; clipboard-write&#34; frameborder=&#34;0&#34; height=&#34;175&#34; style=&#34;width:100%;max-width:100%;overflow:hidden;border-radius:10px;background:transparent;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/cn/album/dating/1405002907?i=1405003097&amp;l=en&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;I like to think I mostly get done what I set out to accomplish. My success right there is pretty high in terms of delivering products that have lasting value. I&amp;rsquo;m not the guy to tweak things in production – it’s either a clean piece of paper or a complete disaster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.anandtech.com/show/16762/an-anandtech-interview-with-jim-keller-laziest-person-at-tesla&#34;&gt;An AnandTech Interview with Jim Keller: &amp;lsquo;The Laziest Person at Tesla&amp;rsquo;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One problem with recommendations as the grist for the digital content mill is that there are only so many things to recommend. Repetition, or scalability, is the enemy of taste, because in time it reveals a latent sameness in what we all like to like. Bainbridge acknowledged the problem: “You want to feel unique and you want to feel like you have your own thing. The minute more people are talking about Bar Italia”—an indie London rock band—“or whatever, you feel like you’re less of an individual.” Sharing recommendations online now can present a quandary when it comes to spreading things you are deeply, personally passionate about: if the algorithmic content feeds get hold of it, it’s likely to be blasted to millions of people and erode your personal claim to whatever the thing is that you love. (Or worse, fed into the maw of generative A.I. and reproduced.) A restaurant grows insurmountably booked; a musician’s work gets churned through social-media discourse. It might be safer just to recommend nasal spray.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.newyorker.com/culture/infinite-scroll/the-banality-of-online-recommendation-culture&#34;&gt;The Banality of Online Recommendation Culture - The New Yorker&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The costs of never finishing extend far beyond just missed opportunities. While starting projects might expose you to new technologies or concepts, it’s in the act of finishing — of solving those last, trickiest problems — where real &lt;em&gt;skill growth&lt;/em&gt; often occurs. Each unfinished project can chip away at your confidence. Over time, you might start to doubt your ability to complete anything substantial, creating a self-fulfilling prophecy of incompletion.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bytedrum.com/posts/art-of-finishing&#34;&gt;The Art of Finishing - ByteDrum&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;但是，去對我們身處的時代下一個賭注又是何其孤注，一個人在母體之外寫母體裏的故事，那種身首異處的錯位感是極其凜冽的，像自己身上那根文化的臍帶在太平洋上斷成兩截，從此你開始在新大陸上尋找新的榫卯，一切只為了讓自己有根。我生長的故土，實則是一個東方和西方不斷拉扯和聯姻的農村舊式舞台，百多年前的摧枯拉朽暗合了近些年倒著轉的輪迴，真是一再否定，一再螺旋，都讓我無從知曉自己到底處於世界史的何種座標。你只感到你像是背著一個戴滿了翠玉花鈿的老嫗，在「時間的無垠的荒涯」上一會兒往東一會兒往西，顛到哪兒，哪兒就是原點。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://theinitium.com/article/20220409-strangers-study-screenwriting-in-canada&#34;&gt;異鄉人：在自己的母語裏流浪，我在加拿大學編劇&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Yet the end point for the working artist is to create an object for sale. Once the art object enters the market, art’s intrinsic value is emptied out, compacted by the market’s logic of ranking, until there’s only relational worth, no interior worth. Two novelists I know publish essays one week apart; in a grim coincidence, each writer recounts their own version of the same traumatic life event. Which essay is better, a friend asks. I explain they’re different; different life circumstances likely shaped separate approaches. Yes, she says, but which one is &lt;em&gt;better&lt;/em&gt;?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://thewalrus.ca/collapse-of-self-worth-in-the-digital-age/&#34;&gt;The Collapse of Self-Worth in the Digital Age - The Walrus&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I used to blame advertisers for that restlessness and dissatisfaction, but I don’t think that’s right. We were already restless; we always have been. The advertisers just figured out how to nurture, tend, exacerbate, and capitalize on the pre-existing condition, that innate restlessness, promising that something new is going to set all to rights. When the flashing sidebar connects that hand lotion, those hiking boots, a beach vacation, or some rugged SUV with satisfaction, joy, and inner peace, it sure &lt;em&gt;feels&lt;/em&gt; like we’d be suckers &lt;em&gt;not&lt;/em&gt; to buy it. And when that thing inevitably disappoints, we hardly even notice. There’s always something new to buy. That narrative of elusive satisfaction isn’t just something we’re repeatedly being told; it is a story we’re literally buying into all the time. No surprise, then, that when our beloved to whom we once upon a time “pledged our troth” inevitably disappoints, we start thinking it might be time to get a new beloved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://comment.org/repair-and-remain&#34;&gt;Repair and Remain - Comment&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;p&gt;刚好在听：&lt;a href=&#34;https://www.youtube.com/watch?v=xEiD1wQ5EvU&#34;&gt;当你离开的时候 - 蔡健雅&lt;/a&gt;。&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Good thinking is about pushing past your current understanding and reaching the thought behind the thought. This often requires breaking old ideas, which is much easier to do when the ideas are as rigid as they get on the page. In a fluid medium like thought or conversation, you can always go, “Well, I didn’t mean it like &lt;em&gt;that&lt;/em&gt;” or rely on the fact that your short-term memory is too limited for you to notice the contradiction between what you are saying now and what you said 12 minutes ago.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You are interested only in proofs which ‘prove’ what they have set out to prove. I am interested in proofs even if they do not accomplish their intended task. Columbus did not reach India but he discovered something interesting.&lt;/p&gt;
&lt;p&gt;—Lakatos&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;There are several subtle problems with this conclusion. But the point is—these problems didn’t come into view until we had stretched and probed our original position.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.henrikkarlsson.xyz/p/writing-to-think&#34;&gt;How to think in writing - Escaping Flatland&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol start=&#34;30&#34;&gt;
&lt;li&gt;Time seems to speed up as you get older. And you wonder—is it biological, or is it because life had more novelty when you were a child? Travel partly answers this question—with more novelty, time slows way down again.&lt;/li&gt;
&lt;li&gt;My favorite part of of travel is the perspective it gives on “regular” life. Why do I live the way I do? Is the stuff I do for work what I want to be doing? Should I blog about a “topic” instead of whatever shiny object last caught my eye? These thoughts seem healthy but also… not particularly related to traveling? If you &lt;em&gt;designed&lt;/em&gt; an experience to create this kind of perspective, what would that look like?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;ol start=&#34;40&#34;&gt;
&lt;li&gt;Most people incorrectly prefer aisle seats to window seats. They’re sure to discover their error sooner or later, but in the meantime, use it to your advantage.&lt;/li&gt;
&lt;li&gt;Many of the people who seem “best” at travel seem to be really good at &lt;em&gt;having sensory experiences&lt;/em&gt;—at shutting down the internal dialog and letting the sights and sounds and smells wash over them. I am by nature horrendous at having sensory experiences, but if I make a conscious choice, then it’s pretty easy and often quite profound.&lt;/li&gt;
&lt;li&gt;Don’t confuse scarcity with value. A really good afternoon in the park (a &lt;em&gt;really&lt;/em&gt; good one) is maybe about as good as it gets.&lt;/li&gt;
&lt;li&gt;Travel reveals the value of stability, roots, routine, community, relationships, and cooking at home.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://dynomight.net/travel&#34;&gt;Obvious travel advice - Dynomight&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;h2 id=&#34;更多&#34;&gt;更多&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span lang=&#34;zh-Hant&#34;&gt;&lt;a href=&#34;https://www.bbc.com/zhongwen/trad/world-64891644&#34;&gt;BBC紀錄片：走近柬埔寨詐騙園的「殺豬盤」愛情陷阱&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://larahogan.me/blog/be-a-thermostat-not-a-thermometer/&#34;&gt;Be a thermostat, not a thermometer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ukfoundations.co/&#34;&gt;Foundations - Why Britain has stagnated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mitadmissions.org/blogs/entry/how-to-restore-an-old-whiteboard/&#34;&gt;how to restore an old whiteboard, mit style by Paolo A. &amp;lsquo;21 G&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kinopio.club/&#34;&gt;Kinopio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://makeityourself.org/&#34;&gt;Make it Yourself - 1000 Useful Things to Make&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.hubermanlab.com/topics/nsdr-meditation-and-breathwork&#34;&gt;NSDR, Meditation and Breathwork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tally.so/&#34;&gt;Tally&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://thelongcontext.com/&#34;&gt;You Exist In The Long Context&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hugo Markdownify 无法生成 &lt;p&gt; tag</title>
        <link>https://fanrongbin.com/hugo-markdownify-generate-p-tag/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hugo-markdownify-generate-p-tag/</guid>
        <pubDate>Wed, 07 Feb 2024 11:25:24 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>加个条件判断</description>
        <content:encoded>&lt;p&gt;在尝试为&lt;a href=&#34;https://web.archive.org/web/*/fanrongbin.com/stream&#34;&gt;Stream&lt;/a&gt;页面利用&lt;a href=&#34;https://gohugo.io/content-management/shortcodes/&#34;&gt;Hugo Shortcodes&lt;/a&gt;添加新的&lt;code&gt;movie&lt;/code&gt;和&lt;code&gt;tv&lt;/code&gt;标签时，使用&lt;code&gt;{{ .Inner | Markdownify }}&lt;/code&gt;无法正确对Markdown文本生成HTML&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;tag。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt; .= &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;What a *nice* day!&amp;#34;&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt; | &lt;span style=&#34;color:#a6e22e&#34;&gt;Markdownify&lt;/span&gt;}} &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;What&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; &amp;lt;&lt;span style=&#34;color:#a6e22e&#34;&gt;em&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;nice&lt;/span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;em&lt;/span&gt;&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;day&lt;/span&gt;!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但我预期生成的应是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt; | &lt;span style=&#34;color:#a6e22e&#34;&gt;Markdownify&lt;/span&gt; }} &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&amp;gt; &amp;lt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;What&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; &amp;lt;&lt;span style=&#34;color:#a6e22e&#34;&gt;em&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;nice&lt;/span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;em&lt;/span&gt;&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;day&lt;/span&gt;!&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这是个&lt;a href=&#34;https://github.com/gohugoio/hugo/issues/3040&#34;&gt;老问题&lt;/a&gt;：&lt;code&gt;Markdownify&lt;/code&gt;最主要被用来生成标题之类的&lt;em&gt;inline&lt;/em&gt;元素，而不是类似段落的&lt;em&gt;blocks&lt;/em&gt;。但很多Hugo主题都在使用&lt;code&gt;Markdownify&lt;/code&gt;，所以一时想要用&lt;a href=&#34;https://gohugo.io/methods/page/renderstring/&#34;&gt;&lt;code&gt;RenderString&lt;/code&gt;&lt;/a&gt;取代&lt;a href=&#34;https://discourse.gohugo.io/t/deprecate-markdownify/37789/&#34;&gt;也不太可能&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;解决方法&#34;&gt;解决方法&lt;/h2&gt;
&lt;p&gt;在我的情况中，&lt;a href=&#34;https://github.com/gohugoio/hugo/issues/3040#issuecomment-352190818&#34;&gt;先识别是否存在&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;tag&lt;/a&gt;的方式：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; .&lt;span style=&#34;color:#a6e22e&#34;&gt;intro&lt;/span&gt; | &lt;span style=&#34;color:#a6e22e&#34;&gt;markdownify&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;not&lt;/span&gt; ( &lt;span style=&#34;color:#a6e22e&#34;&gt;strings&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Contains&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;p&amp;gt;&amp;#34;&lt;/span&gt; ) }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; }}&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#a6e22e&#34;&gt;end&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或&lt;a href=&#34;https://github.com/gohugoio/hugo/issues/3040#issuecomment-539296048&#34;&gt;进一步&lt;/a&gt;匹配以&lt;code&gt;h&lt;/code&gt;、&lt;code&gt;p&lt;/code&gt;开头的tag都可以：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; .&lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt; | &lt;span style=&#34;color:#a6e22e&#34;&gt;markdownify&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;not&lt;/span&gt; ( &lt;span style=&#34;color:#a6e22e&#34;&gt;findRE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;[h|p][^&amp;gt;]*&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; ) }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;{{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; }}&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {{ &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;markdown&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ &lt;span style=&#34;color:#a6e22e&#34;&gt;end&lt;/span&gt; }}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded>
      </item>
    
      <item>
        <title>用 Webmention 接收 Mastodon 互动</title>
        <link>https://fanrongbin.com/hugo-webmention-bridgy-mastodon/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hugo-webmention-bridgy-mastodon/</guid>
        <pubDate>Sat, 06 Jan 2024 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>变相用长毛象作为 Hugo 的评论系统、加入联邦宇宙，本文还讨论了使用 Github Actions 自动化</description>
        <content:encoded>
            &lt;link rel=&#34;stylesheet&#34; href=&#34;https://fanrongbin.com/css/vendors/admonitions.02779140835f452cb4ca8e7db2ae0343d32da5f75cd96f68d9c5d7d655d622a1.css&#34; integrity=&#34;sha256-AneRQINfRSy0yo59sq4DQ9Mtpfdc2W9o2cXX1lXWIqE=&#34; crossorigin=&#34;anonymous&#34;&gt;
    &lt;div class=&#34;admonition note&#34;&gt;
      &lt;div class=&#34;admonition-header&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 576 512&#34;&gt;&lt;path d=&#34;M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z&#34;/&gt;&lt;/svg&gt;
        &lt;span&gt;Note&lt;/span&gt;
      &lt;/div&gt;
      &lt;div class=&#34;admonition-content&#34;&gt;
        &lt;p&gt;更新于2024-07-09：&lt;/p&gt;
&lt;p&gt;已删去此功能。原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;维护麻烦（大改了一下Stream页面后，没法正常同步fediverse上回应，跟&lt;a href=&#34;https://github.com/aaronpk/webmention.io/issues/187&#34;&gt;这个issue&lt;/a&gt;差不多）&lt;/li&gt;
&lt;li&gt;用的人少（well, that&amp;rsquo;s what we called &lt;em&gt;indie&lt;/em&gt;）&lt;/li&gt;
&lt;li&gt;确实有一些&lt;a href=&#34;https://shkspr.mobi/blog/2022/12/the-ethics-of-syndicating-comments-using-webmentions/&#34;&gt;ethical problem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;h2 id=&#34;什么是-webmention&#34;&gt;什么是 webmention&lt;/h2&gt;
&lt;p&gt;Webmention是由&lt;a href=&#34;https://indieweb.org&#34;&gt;IndieWeb&lt;/a&gt;发起的W3C标准，用来实现网页间相互提及，不必借助平台或引入评论系统。它的工作流程如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;我上传了一篇文章&lt;/li&gt;
&lt;li&gt;文章被你引用&lt;/li&gt;
&lt;li&gt;你向我的网站发送带有引用处url的webmention&lt;/li&gt;
&lt;li&gt;我通过&lt;a href=&#34;https://webmention.io&#34;&gt;webmention.io&lt;/a&gt;等服务或自行挂载，接收到你的webmention&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;现在你就可以试试，在自己的页面提及此页url，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://fanrongbin.com/hugo-webmention-bridgy-mastodon&amp;#34;&lt;/span&gt;&amp;gt;I&amp;#39;m trying webmention!&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后把你的页面url在文末输入框提交，大约一分钟后刷新此页，就会看到你的webmention。&lt;/p&gt;
&lt;h2 id=&#34;接收-webmention&#34;&gt;接收 webmention&lt;/h2&gt;
&lt;p&gt;这里给出使用webmention.io的步骤，你也可以自行挂载：&lt;/p&gt;
&lt;h3 id=&#34;1-用-indieauth-标识你的身份&#34;&gt;1. 用 IndieAuth 标识你的身份&lt;/h3&gt;
&lt;p&gt;Webmention.io使用&lt;a href=&#34;https://indieweb.org/IndieAuth&#34;&gt;IndieAuth&lt;/a&gt;登录，所以需要先设置IndieAuth。在&lt;code&gt;index.html&lt;/code&gt;中，对自己的帐号说明为&lt;code&gt;rel=&amp;quot;me&amp;quot;&lt;/code&gt;，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;me&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mailto:your_email@email.com&amp;#34;&lt;/span&gt;&amp;gt;Send me an email&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;a&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者以隐藏的方式在&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;说明：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;me&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mailto:your_email@email.com&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样一来，采用IndieAuth登录的地方，会通过这些方式验证你的身份，例如向邮箱发送邮件，或跳转Github登录。&lt;/p&gt;
&lt;h3 id=&#34;2-使用-webmentionio-挂载&#34;&gt;2. 使用 webmention.io 挂载&lt;/h3&gt;
&lt;p&gt;在webmention.io登录后，你会看到一个Settings-Setup页面，给出了需要你在&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;加入的tag：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;webmention&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://webmention.io/your_domain/webmention&amp;#34;&lt;/span&gt; /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这条tag说明你的页面能够&lt;strong&gt;接受&lt;/strong&gt;别人的提及，你可以通过&lt;a href=&#34;https://webmention.rocks/receive/1&#34;&gt;webmention.rocks&lt;/a&gt;测试能否接收到。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;到此，你已经实现了webmention的接收。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你可以在webmention.io的Dashboard，或它提供的Mentions Feed，查看他人提及。&lt;/p&gt;
&lt;h3 id=&#34;3-借助-webmentionjs-在博文页面显示-webmention&#34;&gt;3. 借助 webmention.js 在博文页面显示 webmention&lt;/h3&gt;
&lt;p&gt;Webmention.io提供API返回你接受到的具体内容，这里我们借助前人造好的轮子&lt;a href=&#34;https://github.com/PlaidWeb/webmention.js/&#34;&gt;webmention.js&lt;/a&gt;，根据readme，在你的网站存放&lt;code&gt;webmention.min.js&lt;/code&gt;文件并用&lt;code&gt;&amp;lt;script src=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;引入，在需要展示webmention列表的地方插入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;webmentions&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;div&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你可以新建一个测试页面，用来提及目标页，以测试是否能正常发出和显示。也可以在连接Mastodon后，通过发toot和回复的方式测试。webmention列表的样式可通过&lt;code&gt;css&lt;/code&gt;自定义。&lt;/p&gt;
&lt;h2 id=&#34;发送-webmention&#34;&gt;发送 webmention&lt;/h2&gt;
&lt;p&gt;很多支持webmention的站点，都会给出一个form方便你手动提交自己的链接。&lt;/p&gt;
&lt;p&gt;你也可以用&lt;a href=&#34;https://indieweb.org/webmention-implementation-guide#One-liner_webmentions&#34;&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/a&gt;发出webmention，发送前需检查对方收不收得到webmention，下面这条指令会进行检查。&lt;code&gt;$your_url&lt;/code&gt;替换为你自己的引用页，&lt;code&gt;$target_url&lt;/code&gt;替换为目标页。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -i -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;source=&lt;/span&gt;$your_url&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;amp;target=&lt;/span&gt;$target_url&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;curl -i -s $target_url | grep &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;rel=&amp;#34;http://webmention.org/&amp;#34;&amp;#39;&lt;/span&gt; | sed &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/rel=&amp;#34;webmention&amp;#34;//&amp;#39;&lt;/span&gt; | grep -o -E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https?://[^ &amp;#34;&amp;gt;]+&amp;#39;&lt;/span&gt; | sort | uniq&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;也可以用&lt;a href=&#34;https://telegraph.p3k.io/&#34;&gt;telegraph.p3k.io&lt;/a&gt;（需要IndieAuth登录），或&lt;a href=&#34;http://mention-tech.appspot.com/&#34;&gt;mention.tech&lt;/a&gt;（不需要登录）的在线服务。&lt;/p&gt;
&lt;h3 id=&#34;使用-webmentionapp-自动发送&#34;&gt;使用 webmention.app 自动发送&lt;/h3&gt;
&lt;p&gt;你可能一次在博文中引用多个网页，但是不想再进行繁琐的手动发送webmention。&lt;a href=&#34;https://webmention.app/&#34;&gt;Webmention.app&lt;/a&gt;可以读取页面&lt;a href=&#34;https://microformats.org/wiki/h-entry&#34;&gt;&lt;code&gt;class=&amp;quot;h-entry&amp;quot;&lt;/code&gt;&lt;/a&gt;中的链接，帮你一键发送。&lt;/p&gt;
&lt;p&gt;可以使用&lt;a href=&#34;https://webmention.app/check&#34;&gt;Test页面&lt;/a&gt;检查（只会检查前10个&lt;code&gt;h-entry&lt;/code&gt;），也可以通过API。登录服务获得token后没有request限制。具体请参见官网。&lt;/p&gt;
&lt;h2 id=&#34;将你的博文发送到社交平台&#34;&gt;将你的博文发送到社交平台&lt;/h2&gt;
&lt;h3 id=&#34;连接到-bridgy&#34;&gt;连接到 Bridgy&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://brid.gy/&#34;&gt;Bridgy&lt;/a&gt;可将网站和社交平台相联，使得没有个人页面的用户，也能通过支持的平台进行回复，Bridgy会帮助进行webmention。&lt;/p&gt;
&lt;p&gt;进入主页选择Mastodon，使用cross-post或直接连接联邦宇宙的方式均可。如果cross-post，你需要用验证过的帐号publish带有博文链接的toot，在这条toot下的回复、转发、喜爱才会作为webmention传过来。&lt;/p&gt;
&lt;p&gt;如果直接连接（也就是我目前的做法），你会以&lt;code&gt;@your-domain.com@your-domain.com&lt;/code&gt;加入联邦宇宙，向Bridgy的每次update都会对应更新这个账号下的toot。&lt;/p&gt;
&lt;h3 id=&#34;使用-github-actions-自动化&#34;&gt;使用 Github Actions 自动化&lt;/h3&gt;
&lt;p&gt;我使用Hugo作为博客系统，希望实现根据我是否上传或更新&lt;code&gt;.md&lt;/code&gt;，自动发出webmention。&lt;a href=&#34;https://github.com/marketplace/actions/changed-files&#34;&gt;tj-actions/changed-files&lt;/a&gt;能够找到repo下文件的修改情况，故可以先寻找是否有文件被修改，之后发出 &lt;code&gt;curl&lt;/code&gt;命令即可。&lt;/p&gt;
&lt;p&gt;在&lt;a href=&#34;https://fanrongbin.com/github-actions-deploy-hugo&#34;&gt;之前的博文&lt;/a&gt;里，我设置了&lt;code&gt;deploy.yml&lt;/code&gt;用来自动部署Hugo、生成静态文件。故对应在此设置为在&lt;code&gt;deploy&lt;/code&gt;后才运行。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;send webmentions to bridgy according to md changes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;workflow_run&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;workflows&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deploy&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;types&lt;/span&gt;: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;completed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;branches&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;changed_files_send_webmention&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;runs-on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;send webmentions according to md changes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/checkout@v4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;fetch-depth&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;get changed files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;id&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;changed-files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;tj-actions/changed-files@v41&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &lt;span style=&#34;color:#f92672&#34;&gt;files&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;content/posts/*.md&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 注意这里根据实际需要修改目录位置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;list all changed files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          ALL_CHANGED_FILES=&amp;#34;${{ steps.changed-files.outputs.all_changed_files }}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          for file in $ALL_CHANGED_FILES; do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            echo &amp;#34;$file was changed&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;send webmentions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;if&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;steps.changed-files.outputs.all_changed_files != &amp;#39;&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# 判断不为空才运行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          CHANGED_FILES=$(echo &amp;#34;${{ steps.changed-files.outputs.all_changed_files }}&amp;#34; | tr &amp;#39;,&amp;#39; &amp;#39;\n&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          for FILE in $CHANGED_FILES; do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            if [[ $FILE == content/posts/*.md ]]; then
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              POST_NAME=$(basename &amp;#34;$FILE&amp;#34; .md)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              POST_URL=&amp;#34;https://your-domain.com/${POST_NAME}&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              echo &amp;#34;Sending Webmention for $POST_URL&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;              curl -i -d source=${POST_URL} -d target=https://fed.brid.gy https://fed.brid.gy/webmention
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            fi
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你还可以接着使用&lt;code&gt;${POST_URL}&lt;/code&gt;trigger webmention.app的webhook。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;最初是看到IndieWeb上关于webmention的介绍，于是想着要不要自己也折腾一下，搜索到&lt;a href=&#34;https://aaronparecki.com/2018/06/30/11/your-first-webmention&#34;&gt;Aaron Parecki的博文&lt;/a&gt;，以及&lt;a href=&#34;https://www.jayeless.net/2021/02/integrating-webmentions-into-hugo.html&#34;&gt;Jayeless.net的博文&lt;/a&gt;后，觉得配置起来也不是很难嘛，然后就开始了……用第三方服务接收很简单，主要是一直卡在Bridgy这边。我新建了一个&lt;a href=&#34;https://web.archive.org/web/*/fanrongbin.com/stream&#34;&gt;Stream&lt;/a&gt;页面，相当于有了自己的一条时间轴，为了传上联邦宇宙，需要把每条小note以锚点&lt;code&gt;#id&lt;/code&gt;的方式传到Bridgy。但，用webmention.app或者是telegraph.p3k.io始终没法发现到&lt;code&gt;https://fed.brid.gy/&lt;/code&gt;这条链接，导致我没法API传出去，后来：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;尝试以&lt;code&gt;&amp;lt;a href=&amp;quot;https://fed.brid.gy&amp;quot; hidden=&amp;quot;from-humans&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;的方式，加到带&lt;code&gt;class=&amp;quot;e-content&amp;quot;&lt;/code&gt;的元素里面。但如果note不包含其他url，具有Link Preview功能的地方，还是会显示出&lt;code&gt;fed.brid.gy&lt;/code&gt;的链接卡片。&lt;/li&gt;
&lt;li&gt;在对Stream页面部署自动化时，分成了三个部分：
&lt;ul&gt;
&lt;li&gt;固定以&lt;code&gt;url#id&lt;/code&gt;作为source并以Bridgy作为target、&lt;/li&gt;
&lt;li&gt;检查这条note的类型并以相关url作为target（例如reply、like）&lt;/li&gt;
&lt;li&gt;检查这条note的内容并以相关url作为target（里面所有的&lt;code&gt;&amp;lt;a href=&amp;quot;...&amp;quot;&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;一些遗留的问题&#34;&gt;一些遗留的问题&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;如果fediverse上对博文的回应（回复、转发、喜爱）被修改或删除，无法触发Bridgy自动更新，即以回应为source，以博文为target重新发一次webmention&lt;/li&gt;
&lt;li&gt;如果发出回应的用户更改了自己的个人信息，也无法触发Bridgy自动更新，这个应该更没法解决了。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded>
      </item>
    
      <item>
        <title>我的时间是水</title>
        <link>https://fanrongbin.com/2023-my-time-is-like-water/</link>
        <guid isPermaLink="true">https://fanrongbin.com/2023-my-time-is-like-water/</guid>
        <pubDate>Sun, 31 Dec 2023 01:45:30 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;时间过得越来越快，但我越来越不去想着要抓住它，而是任凭它流过我，所以无法包裹我。面对高楼大厦，面对空无一人的房间，面对攒动的人群，面对自己，这些时刻里真实与臆造的界限那么清晰，像几条线拉下我耸着肩的心脏，呼吸才能沉住气。&lt;/p&gt;
&lt;p&gt;这是好还是坏呢？听上去，像是一种主动的麻木。但这毕竟不是我的任务，这就是一种中性的“状态”，一种持续的动感，不是什么姿态。更不应该是什么习惯，那时我会把它摔个粉碎。现在我们还相安无事。没有强加的判断，没有好坏，也没有强加在判断之上的循环自证。有结论了再寻找因果，挺偷懒的，或许抛弃结论中的好坏就是一种没办法的有办法。&lt;/p&gt;
&lt;p&gt;它也顺便帮我带走了很多东西，时间就是水，水也就是时间，这是第一个意思。水一水，一天又过去了，这也是一种意思。反正，我确实在这之中变得轻盈了。而轻盈一定会让人变得肤浅。总之，人是一块儿——面包，靠吞食自己饱腹，边吃边拉，当然变得越来越轻。沾上水，有的部分就变重了，久而久之它也变质了、化了。那些填满了水的气孔。&lt;/p&gt;
&lt;p&gt;车轱辘话说完了，希望你没明白！反正，今年听到最喜欢的新专辑有：yeule《softscars》、Olivia Dean《Messy》、Kelena《Raven》、Moby《Ambient 23》、Laufey &amp;amp; Iceland Symphony Orchestra《A Night At The Symphony》、Complete Mountain Almanac《Folk》、Victoria Monét《JAGUAR II》。&lt;/p&gt;
&lt;p class=&#34;right-date&#34; align=&#34;right&#34;&gt;2023 年 12 月 31 日&lt;/p&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *; clipboard-write&#34; frameborder=&#34;0&#34; height=&#34;175&#34; style=&#34;width:100%;max-width:660px;overflow:hidden;border-radius:10px;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/cn/album/unconventional-mornings/1647124261?i=1647124728&amp;l=en-GB&#34;&gt;&lt;/iframe&gt;</content:encoded>
      </item>
    
      <item>
        <title>斜交策略 Oblique Strategies</title>
        <link>https://fanrongbin.com/oblique-strategies/</link>
        <guid isPermaLink="true">https://fanrongbin.com/oblique-strategies/</guid>
        <pubDate>Wed, 22 Nov 2023 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>当创作变成工作</description>
        <content:encoded>&lt;p&gt;被我们落下的想象力，以什么挽留他？&lt;/p&gt;
&lt;p&gt;Brian Eno和Peter Schmidt设计了超过一百个prompt，写在卡片上，来帮你打破寻找创意的障碍。这里有英文版本的&lt;a href=&#34;https://matt-rickard.com/list-of-all-oblique-strategies&#34;&gt;完整列表&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;这组卡片叫Oblique Strategies，有人翻译成迂回策略或间接策略。我喜欢叫它“斜交策略”。因素分析中，你会遇到“正交旋转”与“斜交旋转”，激发创造力，就像从这些卡片中寻找能联动我们潜意识的相关因素。&lt;/p&gt;
&lt;p&gt;当创作的&lt;strong&gt;工作&lt;/strong&gt;属性变强、时间压力变重时，Eno和Schmidt意识到这会让他们偏离思考和创作的本质。于是他们都写下一些要旨，帮助保持思维活跃，提醒自己不要忘记那些能从侧面推进的有趣方法，整合成了这组卡片。&lt;/p&gt;
&lt;p&gt;1980年初，Eno在接受Charles Amirkhanian采访时说道：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Oblique Strategies evolved from me being in a number of working situations when the panic of the situation - particularly in studios - tended to make me quickly forget that there were others ways of working and that there were tangential ways of attacking problems that were in many senses more interesting than the direct head-on approach. If you&amp;rsquo;re in a panic, you tend to take the head-on approach because it seems to be the one that&amp;rsquo;s going to yield the best results Of course, that often isn&amp;rsquo;t the case - it&amp;rsquo;s just the most obvious and - apparently - reliable method. The function of the Oblique Strategies was, initially, to serve as a series of prompts which said, &amp;ldquo;Don&amp;rsquo;t forget that you could adopt &lt;em&gt;this&lt;/em&gt; attitude,&amp;rdquo; or &amp;ldquo;Don&amp;rsquo;t forget you could adopt &lt;em&gt;that&lt;/em&gt; attitude.&lt;/p&gt;
&lt;p&gt;The first Oblique Strategy said &amp;ldquo;Honour thy error as a hidden intention.&amp;rdquo; And, in fact, Peter&amp;rsquo;s first Oblique Strategy - done quite independently and before either of us had become conscious that the other was doing that - was &amp;hellip;I think it was &amp;ldquo;Was it really a mistake?&amp;rdquo; which was, of course, much the same kind of message. Well, I collected about fifteen or twenty of these and then I put them onto cards. At the same time, Peter had been keeping a little book of messages to himself as regards painting, and he&amp;rsquo;d kept those in a notebook. We were both very surprised to find the other not only using a similar system but also many of the messages being absolutely overlapping, you know&amp;hellip;there was a complete correspondence between the messages. So subsequently we decided to try to work out a way of making that available to other people, which we did; we published them as a pack of cards, and they&amp;rsquo;re now used by quite a lot of different people, I think.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们也可以从这组卡片的第一个版本中，得到他们的初衷：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;These cards evolved from our separate observations on the principles underlying what we were doing. Sometimes they were recognized in retrospect (intellect catching up with intuition), sometimes they were identified as they were happening, sometimes they were formulated.&lt;/p&gt;
&lt;p&gt;They can be used as a pack (a set of possibilities being continuously reviewed in the mind) or by drawing a single card from the shuffled pack when a dilemma occurs in a working situation. In this case, the card is trusted even if its appropriateness is quite unclear. They are not final, as new ideas will present themselves, and others will become self-evident.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;观察我们日常的创作，他们背后大多衍生于：回顾（智力追随直觉）、识别、公式。这些卡片可以作为一组，也可以随机抽出一张来使用。不论卡片上的prompt是否完全适合，既然我们有所判断，ideas本身就能得到自我确证。&lt;/p&gt;
&lt;p&gt;（参考自 &lt;a href=&#34;http://www.rtqe.net/ObliqueStrategies/OSintro.html&#34;&gt;&lt;em&gt;A Primer on Oblique Strategizing&lt;/em&gt;&lt;/a&gt; by Gregory Taylor 1997）&lt;/p&gt;
&lt;h2 id=&#34;卡片列表&#34;&gt;卡片列表&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Abandon normal instruments&lt;/li&gt;
&lt;li&gt;Accept advice&lt;/li&gt;
&lt;li&gt;Accretion&lt;/li&gt;
&lt;li&gt;A line has two sides&lt;/li&gt;
&lt;li&gt;Allow an easement (an easement is the abandonment of a stricture)&lt;/li&gt;
&lt;li&gt;Are there sections? Consider transitions&lt;/li&gt;
&lt;li&gt;Ask people to work against their better judgment&lt;/li&gt;
&lt;li&gt;Ask your body&lt;/li&gt;
&lt;li&gt;Assemble some of the instruments in a group and treat the group&lt;/li&gt;
&lt;li&gt;Balance the consistency principle with the inconsistency principle&lt;/li&gt;
&lt;li&gt;Be dirty&lt;/li&gt;
&lt;li&gt;Breathe more deeply&lt;/li&gt;
&lt;li&gt;Bridges -build -burn&lt;/li&gt;
&lt;li&gt;Cascades&lt;/li&gt;
&lt;li&gt;Change instrument roles&lt;/li&gt;
&lt;li&gt;Change nothing and continue with immaculate consistency&lt;/li&gt;
&lt;li&gt;Children&amp;rsquo;s voices -speaking -singing&lt;/li&gt;
&lt;li&gt;Cluster analysis&lt;/li&gt;
&lt;li&gt;Consider different fading systems&lt;/li&gt;
&lt;li&gt;Consult other sources -promising -unpromising&lt;/li&gt;
&lt;li&gt;Convert a melodic element into a rhythmic element&lt;/li&gt;
&lt;li&gt;Courage!&lt;/li&gt;
&lt;li&gt;Cut a vital connection&lt;/li&gt;
&lt;li&gt;Decorate, decorate&lt;/li&gt;
&lt;li&gt;Define an area as `safe&amp;rsquo; and use it as an anchor&lt;/li&gt;
&lt;li&gt;Destroy -nothing -the most important thing&lt;/li&gt;
&lt;li&gt;Discard an axiom&lt;/li&gt;
&lt;li&gt;Disconnect from desire&lt;/li&gt;
&lt;li&gt;Discover the recipes you are using and abandon them&lt;/li&gt;
&lt;li&gt;Distorting time&lt;/li&gt;
&lt;li&gt;Do nothing for as long as possible&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t be afraid of things because they&amp;rsquo;re easy to do&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t be frightened of cliches&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t be frightened to display your talents&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t break the silence&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t stress one thing more than another&lt;/li&gt;
&lt;li&gt;Do something boring&lt;/li&gt;
&lt;li&gt;Do the washing up&lt;/li&gt;
&lt;li&gt;Do the words need changing?&lt;/li&gt;
&lt;li&gt;Do we need holes?&lt;/li&gt;
&lt;li&gt;Emphasize differences&lt;/li&gt;
&lt;li&gt;Emphasize repetitions&lt;/li&gt;
&lt;li&gt;Emphasize the flaws&lt;/li&gt;
&lt;li&gt;Faced with a choice, do both (given by Dieter Roth)&lt;/li&gt;
&lt;li&gt;Feedback recordings into an acoustic situation&lt;/li&gt;
&lt;li&gt;Fill every beat with something&lt;/li&gt;
&lt;li&gt;Get your neck massaged&lt;/li&gt;
&lt;li&gt;Ghost echoes&lt;/li&gt;
&lt;li&gt;Give the game away&lt;/li&gt;
&lt;li&gt;Give way to your worst impulse&lt;/li&gt;
&lt;li&gt;Go slowly all the way round the outside&lt;/li&gt;
&lt;li&gt;Honor thy error as a hidden intention&lt;/li&gt;
&lt;li&gt;How would you have done it?&lt;/li&gt;
&lt;li&gt;Humanize something free of error&lt;/li&gt;
&lt;li&gt;Imagine the music as a moving chain or caterpillar&lt;/li&gt;
&lt;li&gt;Imagine the music as a set of disconnected events&lt;/li&gt;
&lt;li&gt;Infinitesimal gradations&lt;/li&gt;
&lt;li&gt;Intentions -credibility of -nobility of -humility of&lt;/li&gt;
&lt;li&gt;Into the impossible&lt;/li&gt;
&lt;li&gt;Is it finished?&lt;/li&gt;
&lt;li&gt;Is there something missing?&lt;/li&gt;
&lt;li&gt;Is the tuning appropriate?&lt;/li&gt;
&lt;li&gt;Just carry on&lt;/li&gt;
&lt;li&gt;Left channel, right channel, center channel&lt;/li&gt;
&lt;li&gt;Listen in total darkness, or in a very large room, very quietly&lt;/li&gt;
&lt;li&gt;Listen to the quiet voice&lt;/li&gt;
&lt;li&gt;Look at a very small object; look at its center&lt;/li&gt;
&lt;li&gt;Look at the order in which you do things&lt;/li&gt;
&lt;li&gt;Look closely at the most embarrassing details and amplify them&lt;/li&gt;
&lt;li&gt;Lowest common denominator check -single beat -single note -single&lt;/li&gt;
&lt;li&gt;riff&lt;/li&gt;
&lt;li&gt;Make a blank valuable by putting it in an exquisite frame&lt;/li&gt;
&lt;li&gt;Make an exhaustive list of everything you might do and do the last&lt;/li&gt;
&lt;li&gt;thing on the list&lt;/li&gt;
&lt;li&gt;Make a sudden, destructive, unpredictable action; incorporate&lt;/li&gt;
&lt;li&gt;Mechanicalize something idiosyncratic&lt;/li&gt;
&lt;li&gt;Mute and continue&lt;/li&gt;
&lt;li&gt;Only one element of each kind&lt;/li&gt;
&lt;li&gt;(Organic) machinery&lt;/li&gt;
&lt;li&gt;Overtly resist change&lt;/li&gt;
&lt;li&gt;Put in earplugs&lt;/li&gt;
&lt;li&gt;Remember those quiet evenings&lt;/li&gt;
&lt;li&gt;Remove ambiguities and convert to specifics&lt;/li&gt;
&lt;li&gt;Remove specifics and convert to ambiguities&lt;/li&gt;
&lt;li&gt;Repetition is a form of change&lt;/li&gt;
&lt;li&gt;Reverse&lt;/li&gt;
&lt;li&gt;Short circuit&lt;/li&gt;
&lt;li&gt;improve his virility shovels them straight into his lap)&lt;/li&gt;
&lt;li&gt;Shut the door and listen from outside&lt;/li&gt;
&lt;li&gt;Simple subtraction&lt;/li&gt;
&lt;li&gt;Spectrum analysis&lt;/li&gt;
&lt;li&gt;Take a break&lt;/li&gt;
&lt;li&gt;Take away the elements in order of apparent non-importance&lt;/li&gt;
&lt;li&gt;Tape your mouth (given by Ritva Saarikko)&lt;/li&gt;
&lt;li&gt;The inconsistency principle&lt;/li&gt;
&lt;li&gt;The tape is now the music&lt;/li&gt;
&lt;li&gt;Think of the radio&lt;/li&gt;
&lt;li&gt;Tidy up&lt;/li&gt;
&lt;li&gt;Trust in the you of now&lt;/li&gt;
&lt;li&gt;Turn it upside down&lt;/li&gt;
&lt;li&gt;Twist the spine&lt;/li&gt;
&lt;li&gt;Use an old idea&lt;/li&gt;
&lt;li&gt;Use an unacceptable color&lt;/li&gt;
&lt;li&gt;Use fewer notes&lt;/li&gt;
&lt;li&gt;Use filters&lt;/li&gt;
&lt;li&gt;Use &amp;ldquo;unqualified&amp;rdquo; people&lt;/li&gt;
&lt;li&gt;Water&lt;/li&gt;
&lt;li&gt;What are you really thinking about just now? Incorporate&lt;/li&gt;
&lt;li&gt;What is the reality of the situation?&lt;/li&gt;
&lt;li&gt;What mistakes did you make last time?&lt;/li&gt;
&lt;li&gt;What would your closest friend do?&lt;/li&gt;
&lt;li&gt;What wouldn&amp;rsquo;t you do?&lt;/li&gt;
&lt;li&gt;Work at a different speed&lt;/li&gt;
&lt;li&gt;You are an engineer&lt;/li&gt;
&lt;li&gt;You can only make one dot at a time&lt;/li&gt;
&lt;li&gt;You don&amp;rsquo;t have to be ashamed of using your own ideas&lt;/li&gt;
&lt;li&gt;[blank white card]&lt;/li&gt;
&lt;/ul&gt;
&lt;style&gt;ul{width:unset;max-width:85%;font-family:var(--sans);}&lt;/style&gt;</content:encoded>
      </item>
    
      <item>
        <title>使用 Github Actions 自动部署 Hugo</title>
        <link>https://fanrongbin.com/github-actions-deploy-hugo/</link>
        <guid isPermaLink="true">https://fanrongbin.com/github-actions-deploy-hugo/</guid>
        <pubDate>Sat, 18 Nov 2023 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>随时随地上传或修改博文</description>
        <content:encoded>&lt;p&gt;回应痛点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;写作所用的设备不带环境，没有Git，必须换回原来用的设备&lt;code&gt;hugo&lt;/code&gt;生成网页并部署&lt;/li&gt;
&lt;li&gt;只想好好写东西，不想再管我的终端/命令行&lt;/li&gt;
&lt;li&gt;随时随地上传或修改博文&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本文假设你已经在本地拥有一个用Hugo搭建的完整站点，且已经&lt;code&gt;push&lt;/code&gt;到了&lt;code&gt;username/username.github.io&lt;/code&gt;这个仓库。&lt;/p&gt;
&lt;h2 id=&#34;1-把源仓库传到一个新库&#34;&gt;1. 把源仓库传到一个新库&lt;/h2&gt;
&lt;p&gt;整体上传到一个新库后，我们可以使用Git方便地进行管理，相当于把原本在本地的博客系统传到网盘。在设置好Github Actions后，既可以整个库&lt;code&gt;clone&lt;/code&gt;下来，也可以通过上传单个&lt;code&gt;.md&lt;/code&gt;文件到&lt;code&gt;content/posts&lt;/code&gt;文件夹的手动&lt;code&gt;push&lt;/code&gt;方式来自动部署，而这都不需要重新搭建Hugo环境。&lt;/p&gt;
&lt;p&gt;在这里我们使用Github Desktop：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;点击菜单栏File，选择Create a new repository。&lt;/li&gt;
&lt;li&gt;为了避免文件夹识别的混乱，在设置local path时，可以新建一个文件夹，之后再将博客系统文件（&lt;code&gt;config.toml&lt;/code&gt;所在的整个文件夹和子文件夹）复制进来。&lt;/li&gt;
&lt;li&gt;复制后，回到Github Desktop，填写Summary，Commit to main，然后Push。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-将新库和github-pages仓库串起来&#34;&gt;2. 将新库和Github Pages仓库串起来&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;username/username.github.io&lt;/code&gt;下是&lt;code&gt;public&lt;/code&gt;文件夹内生成的静态网页（你一定记得的，在本地我们需要&lt;code&gt;cd public&lt;/code&gt;），而我们希望通过添加或修改源仓库的&lt;code&gt;.md&lt;/code&gt;来实现这一系列的生成和部署，这涉及到跨仓库的联动，需要通过token实现。&lt;/p&gt;
&lt;p&gt;网页版，点击头像，进入Github个人的Settings：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;边栏最下方Developer Settings，&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择Personal access tokens下的Tokens (classic)
&lt;ul&gt;
&lt;li&gt;点击右方Generate a new token (classic)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输入密码后进入设置，在Note框中填写方便识别的名字，如&lt;code&gt;Deploy&lt;/code&gt;，有效期（Expiration）建议选择永不过期（No expiration），访问范围（Scopes）我们需要选中repo和workflow&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;点击生成后token即出现，注意它只会出现这唯一的一次，将其复制保存下来&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;得到token后，进入源仓库的Settings：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择Secrets and variables下的Actions，在右侧选择New repository secret&lt;/li&gt;
&lt;li&gt;在Name中填入&lt;code&gt;PERSONAL_TOKEN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在Secret中填入刚才生成的token，点击Add secret保存&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-设置好github-actions&#34;&gt;3. 设置好Github Actions&lt;/h2&gt;
&lt;p&gt;接下来我们进入源仓库的Actions，若之前有使用过，点击左侧New workflow；若无，默认会给出许多推荐，我们任选一个开始configure即可：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重命名&lt;code&gt;.yml&lt;/code&gt;为方便识别的名字，如&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;修改编辑框内容如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;deploy &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 这个 action 的名字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;push&lt;/span&gt;: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# 代表每次 push 都会 turn on action&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;workflow_dispatch&lt;/span&gt;: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# 代表我们也可以手动 turn on&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;runs-on&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;checkout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;actions/checkout@v2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;submodules&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;fetch-depth&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;setup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;peaceiris/actions-hugo@v2.6.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;hugo-version&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;latest&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;extended&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 按需选择是否使用 hugo-extended&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;run&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;hugo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;deploy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;peaceiris/actions-gh-pages@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;PERSONAL_TOKEN&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ secrets.PERSONAL_TOKEN }} &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 生成的 token 就用在这里，因为下面用到 external repository&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;EXTERNAL_REPOSITORY&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;username/username.github.io &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 修改为你的 Github Pages 仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;PUBLISH_BRANCH&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;main &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 以及对应的分支 main/master&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;PUBLISH_DIR&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;./public &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 指定将自动部署得到的 public 文件夹 push 上去&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;commit_message&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ github.event.head_commit.message }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若点击保存，则将自动完成第一次commit，注意提前备份原Github Pages仓库里的内容。（没备份也可以通过历史commit找到啦，哈哈）&lt;/p&gt;
&lt;h2 id=&#34;4-如果你还希望刷新-cloudflare-缓存&#34;&gt;4. 如果你还希望刷新 Cloudflare 缓存&lt;/h2&gt;
&lt;p&gt;我还使用Cloudflare Pages来加速访问。为了在更新博文后刷新&lt;code&gt;posts&lt;/code&gt;页面的缓存，可以借助&lt;a href=&#34;https://github.com/marketplace/actions/cloudflare-purge-cache&#34;&gt;Cloudflare Purge Cache&lt;/a&gt;，或者&lt;a href=&#34;https://github.com/marketplace/actions/cloudflare-cache-purge-action&#34;&gt;Cloudflare Cache Purge Action&lt;/a&gt;等。&lt;/p&gt;
&lt;p&gt;以后者为例，在&lt;code&gt;deploy&lt;/code&gt;之后加入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Purge cache&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;uses&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;nathanvaughn/actions-cloudflare-purge@master&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;cf_zone&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ secrets.CLOUDFLARE_ZONE }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;cf_auth&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;${{ secrets.CLOUDFLARE_AUTH_KEY }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;files&lt;/span&gt;: |&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;         https://fanrongbin.com/posts/index.html
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;         https://fanrongbin.com/index.html
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;         https://fanrongbin.com/main.css&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;需要新增两个&lt;code&gt;secret&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLOUDFLARE_ZONE&lt;/code&gt;：在Cloudflare的Dashboard取得，即&lt;code&gt;Zone ID&lt;/code&gt;（区域ID）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLOUDFLARE_AUTH_KEY&lt;/code&gt;：在&lt;a href=&#34;https://dash.cloudflare.com/profile/api-tokens&#34;&gt;API页面&lt;/a&gt;配置一个专用于刷新缓存的API，具体可以参考&lt;a href=&#34;https://github.com/marketplace/actions/cloudflare-cache-purge-action&#34;&gt;Action页面教程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>汉字标准格式</title>
        <link>https://fanrongbin.com/hugo-hanzi-pro/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hugo-hanzi-pro/</guid>
        <pubDate>Sat, 18 Nov 2023 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>支持中英文混排间距、标点挤压与悬挂</description>
        <content:encoded>&lt;blockquote&gt;


&lt;p lang=&#34;zh-Hans&#34;&gt;&lt;h-char unicode=&#34;300c&#34; class=&#34;biaodian cjk bd-open&#34;&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;h-inner&gt;「&lt;/h-inner&gt;&lt;/h-char&gt;&lt;a href=&#34;https://github.com/ethantw/Han&#34; target=&#34;_blank&#34;&gt;汉字标准格式&lt;/a&gt;&lt;h-char unicode=&#34;300d&#34; class=&#34;biaodian cjk bd-close bd-end&#34;&gt;&lt;h-inner&gt;」&lt;/h-inner&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;/h-char&gt;是一套支援各种印刷效果的&lt;!--
--&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;Sass + JavaScript&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;排版框架&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;，&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;包含&lt;!--
--&gt;&lt;u&gt;相邻&lt;/u&gt;&lt;u class=&#34;adjacent&#34;&gt;文字装饰线&lt;/u&gt;&lt;u class=&#34;adjacent&#34;&gt;跳脱&lt;/u&gt;&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;&lt;h-ruby class=&#34;rightangle complex&#34; rightangle=&#34;true&#34;&gt;&lt;h-ru class=&#34;rightangle complex&#34; span=&#34;2&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;汉&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;ˋ&#34;&gt;&lt;h-yin&gt;ㄏㄢ&lt;/h-yin&gt;&lt;h-diao&gt;ˋ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;字&lt;/rb&gt;&lt;h-zhuyin length=&#34;1&#34; diao=&#34;ˋ&#34;&gt;&lt;h-yin&gt;ㄗ&lt;/h-yin&gt;&lt;h-diao&gt;ˋ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;rt rbspan=&#34;2&#34;&gt;hànzì&lt;/rt&gt;&lt;/h-ru&gt;&lt;h-ru class=&#34;rightangle complex&#34; span=&#34;2&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;标&lt;/rb&gt;&lt;h-zhuyin length=&#34;3&#34; diao=&#34;&#34;&gt;&lt;h-yin&gt;ㄅㄧㄠ&lt;/h-yin&gt;&lt;h-diao&gt;&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;音&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;&#34;&gt;&lt;h-yin&gt;ㄧㄣ&lt;/h-yin&gt;&lt;h-diao&gt;&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;rt rbspan=&#34;2&#34;&gt;biāoyīn&lt;/rt&gt;&lt;/h-ru&gt;&lt;/h-ruby&gt;&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;&lt;em style=&#34;-moz-text-emphasis: filled circle;
 -webkit-text-emphasis: filled circle;
 text-emphasis: filled circle;
 -moz-text-emphasis-position: under;
 -webkit-text-emphasis-position: under;
 text-emphasis-position: under;
 font-style: inherit;
 border-bottom: 2px dotted;
 padding-bottom: 0.05em;
 border-bottom-width: -webkit-calc(0px);
 padding-bottom: -webkit-calc(0px);&#34;&gt;着重号&lt;/em&gt;&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;&lt;!--
--&gt;标点符号修正&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;&lt;abbr title=&#34;黑、宋、楷、仿宋&#34;&gt;中文四大印刷体&lt;/abbr&gt;&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;汉字&lt;h-char unicode=&#34;ff0d&#34; class=&#34;biaodian cjk &#34;&gt;－&lt;/h-char&gt;西文&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;mixed&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;间隙&lt;h-hangable&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;&lt;h-char-group class=&#34;biaodian cjk portion&#34;&gt;&lt;h-char unicode=&#34;300c&#34; class=&#34;biaodian cjk bd-open&#34;&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;h-inner&gt;「&lt;/h-inner&gt;&lt;/h-char&gt;&lt;/h-char-group&gt;标点&lt;h-char unicode=&#34;300e&#34; class=&#34;biaodian cjk bd-open&#34;&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;h-inner&gt;『&lt;/h-inner&gt;&lt;/h-char&gt;挤压&lt;h-char unicode=&#34;300f&#34; class=&#34;biaodian cjk bd-close bd-end&#34;&gt;&lt;h-inner&gt;』&lt;/h-inner&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;/h-char&gt;与&lt;h-char unicode=&#34;300e&#34; class=&#34;biaodian cjk bd-open&#34;&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;h-inner&gt;『&lt;/h-inner&gt;&lt;/h-char&gt;悬挂&lt;h-hangable&gt;&lt;h-char unicode=&#34;300f&#34; class=&#34;biaodian cjk bd-close bd-end&#34;&gt;&lt;h-inner&gt;』&lt;/h-inner&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;/h-char&gt;&lt;h-char unicode=&#34;300d&#34; class=&#34;biaodian cjk bd-close bd-end&#34;&gt;&lt;h-inner&gt;」&lt;/h-inner&gt;&lt;h-cs hidden=&#34;&#34;&gt; &lt;/h-cs&gt;&lt;/h-char&gt;&lt;h-cs&gt;&lt;h-inner hidden=&#34;&#34;&gt; &lt;/h-inner&gt;&lt;h-char class=&#34;biaodian bd-close bd-end cjk&#34;&gt;、&lt;/h-char&gt;&lt;/h-cs&gt;&lt;/h-hangable&gt;章节边界调整&lt;h-char unicode=&#34;2026&#34; class=&#34;biaodian cjk bd-liga&#34;&gt;……&lt;/h-char&gt;&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;首先要引入两个源文件：&lt;code&gt;han.min.css&lt;/code&gt;与&lt;code&gt;han.min.js&lt;/code&gt;，最简便的方式，可以通过&lt;a href=&#34;https://hanzi.pro/manual/anzhuang_yu_qiyong#cdn&#34;&gt;CDN&lt;/a&gt;或直接下载后（访问两条代码中的对应链接，另存至本地）放入Hugo博客系统下的&lt;code&gt;/static&lt;/code&gt;文件夹中。建议使用后者，以方便我们在本地调整样式上的冲突。&lt;/p&gt;
&lt;p&gt;这两种方式，都需要在HTML对应处汇入。为了让Hugo在生成页面时自动汇入，以我所使用的&lt;code&gt;hugo-tufte&lt;/code&gt;主题为例：&lt;/p&gt;
&lt;h2 id=&#34;1-添加hanmincss&#34;&gt;1. 添加&lt;code&gt;han.min.css&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;修改&lt;code&gt;/themes/hugo-tufte&lt;/code&gt;主题文件夹内的&lt;code&gt;/layouts/partials/header.includes.html&lt;/code&gt;（核心即找到&lt;code&gt;/layouts&lt;/code&gt;中哪个&lt;code&gt;.html&lt;/code&gt;对应&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;的生成），在末尾对应加入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;media&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;all&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;//cdnjs.cloudflare.com/ajax/libs/Han/3.2.7/han.min.css&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- 如果使用 CDN，直接复制官网给出的那条 link rel... --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;stylesheet&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/han.min.css&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- 如果为本地汇入 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;2-添加hanminjs&#34;&gt;2. 添加&lt;code&gt;han.min.js&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;/layouts/_default/baseof.html&lt;/code&gt;中&lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt;到&lt;code&gt;&amp;lt;/html&amp;gt;&lt;/code&gt;的中间，对应加入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;//cdnjs.cloudflare.com/ajax/libs/Han/3.2.7/han.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- 如果使用 CDN，直接复制官网给出的那条 link rel... --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/han.min.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- 如果为本地汇入 --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;3-启动脚本渲染&#34;&gt;3. 启动脚本渲染&lt;/h2&gt;
&lt;p&gt;如果你只希望对于文章内容进行渲染，不影响菜单栏等，在&lt;code&gt;/layouts/_default/single.html&lt;/code&gt;中找到对应你文章内容部分的&lt;code&gt;label&lt;/code&gt;，如&lt;code&gt;&amp;lt;article id=&amp;quot;main&amp;quot;&amp;gt;&lt;/code&gt;，加入&lt;code&gt;class=&amp;quot;han-init-context&amp;quot;&lt;/code&gt;属性即可。&lt;/p&gt;
&lt;p&gt;到此我们已完成两个文件的汇入和启动渲染，&lt;code&gt;hugo server&lt;/code&gt;查看，大部分情况下你会发现页面许多处的错乱，以及原&lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;的强调样式变成了陌生的着重号等。同时，你也会惊讶地发现在中英文混排时，中英文之间自动加上了间距，且标点符号的显示有明显的优化。&lt;/p&gt;
&lt;p&gt;接下来，你需要根据自身需要调整&lt;code&gt;han.min.css&lt;/code&gt;或override冲突的地方，这是我们最关键的工作。&lt;code&gt;css&lt;/code&gt;文件下载下来是没有缩进的，你可以通过一些工具标准化，看得会清楚一点。 一般来说，解决冲突最方便的方式是：哪里看不顺眼就&lt;strong&gt;注释&lt;/strong&gt;掉哪里。&lt;/p&gt;
&lt;h2 id=&#34;测试范例&#34;&gt;测试范例&lt;/h2&gt;
&lt;p&gt;测试省略号：……&lt;/p&gt;
&lt;p&gt;文章引用区块内的重点：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;不做则中心与的说很笔分士：&lt;strong&gt;校此诉平是里春家善客总外公；做南多中。&lt;/strong&gt; 足酒脸理特指第常三紧资现工们家化民，公政我热良，中以家是。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;字级语意类：&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;#&#34; pcked=&#34;1&#34;&gt;超连结元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;a&lt;/a&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;u&gt;注记元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;u&lt;/u&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;u&gt;注记元素甲&lt;/u&gt;&lt;u class=&#34;adjacent&#34;&gt;注记元素乙&lt;/u&gt;一般文字节点&lt;!--
--&gt;&lt;u&gt;注记元素丙&lt;/u&gt;一般文字节点&lt;!--
--&gt;&lt;u&gt;注记元素丁&lt;/u&gt;&lt;h-char unicode=&#34;3002&#34; class=&#34;biaodian cjk bd-end bd-cop bd-jiya bd-hangable&#34;&gt;&lt;h-inner&gt;。&lt;/h-inner&gt;&lt;/h-char&gt;&lt;br&gt;&lt;cite&gt;来源元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;cite&lt;/cite&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;strong&gt;重点元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;strong&lt;/strong&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;dfn&gt;术语元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;dfn&lt;/dfn&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;b&gt;关键字元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;b&lt;/b&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;em&gt;强调元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;em&lt;/em&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;i&gt;变音文字元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;i&lt;/i&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;var&gt;变数元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;var&lt;/var&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;q&gt;引用元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;q&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;及&lt;q&gt;子引用&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;q&lt;/q&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;元素示例&lt;/q&gt;&lt;br&gt;&lt;s&gt;讹讯元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;s&lt;/s&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;s&gt;讹讯元素甲&lt;/s&gt;&lt;s class=&#34;adjacent&#34;&gt;讹讯元素乙&lt;/s&gt;一般文字节点&lt;!--
--&gt;&lt;s&gt;讹讯元素丙&lt;/s&gt;一般文字节点&lt;!--
--&gt;&lt;s&gt;讹讯元素丁&lt;/s&gt;&lt;h-char unicode=&#34;3002&#34; class=&#34;biaodian cjk bd-end bd-cop bd-jiya bd-hangable&#34;&gt;&lt;h-inner&gt;。&lt;/h-inner&gt;&lt;/h-char&gt;&lt;br&gt;&lt;code&gt;代码元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;code&lt;/code&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;kbd&gt;输入键元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;kbd&lt;/kbd&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;samp&gt;计算机输出示例元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;samp&lt;/samp&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;ruby&gt;行间注元素&lt;rt&gt;ruby annotation&lt;/rt&gt;&lt;/ruby&gt;示例&lt;br&gt;复合式&lt;h-ruby class=&#34;complex&#34; doubleline=&#34;true&#34;&gt;&lt;h-ru class=&#34;complex&#34; span=&#34;2&#34; order=&#34;1&#34; annotation=&#34;true&#34;&gt;&lt;h-ru class=&#34;complex&#34; span=&#34;1&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;rb&gt;行间注&lt;/rb&gt;&lt;rt rbspan=&#34;1&#34;&gt;hángjiānzhù&lt;/rt&gt;&lt;/h-ru&gt;&lt;h-ru class=&#34;complex&#34; span=&#34;1&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;rb&gt;元素&lt;/rb&gt;&lt;rt rbspan=&#34;1&#34;&gt;yuansu&lt;/rt&gt;&lt;/h-ru&gt;&lt;rt rbspan=&#34;3&#34;&gt;ruby annotation&lt;/rt&gt;&lt;/h-ru&gt;&lt;/h-ruby&gt;&lt;br&gt;直角&lt;h-ruby class=&#34;rightangle complex&#34; rightangle=&#34;true&#34;&gt;&lt;h-ru class=&#34;rightangle complex&#34; span=&#34;3&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;行&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;ˊ&#34;&gt;&lt;h-yin&gt;ㄏㄤ&lt;/h-yin&gt;&lt;h-diao&gt;ˊ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;间&lt;/rb&gt;&lt;h-zhuyin length=&#34;3&#34; diao=&#34;&#34;&gt;&lt;h-yin&gt;ㄐㄧㄢ&lt;/h-yin&gt;&lt;h-diao&gt;&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;注&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;ˋ&#34;&gt;&lt;h-yin&gt;ㄓㄨ&lt;/h-yin&gt;&lt;h-diao&gt;ˋ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;rt rbspan=&#34;3&#34;&gt;hángjiānzhù&lt;/rt&gt;&lt;/h-ru&gt;&lt;h-ru class=&#34;rightangle complex&#34; span=&#34;2&#34; order=&#34;0&#34; annotation=&#34;true&#34;&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;元&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;ˊ&#34;&gt;&lt;h-yin&gt;ㄩㄢ&lt;/h-yin&gt;&lt;h-diao&gt;ˊ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;h-ru zhuyin=&#34;true&#34;&gt;&lt;rb&gt;素&lt;/rb&gt;&lt;h-zhuyin length=&#34;2&#34; diao=&#34;ˋ&#34;&gt;&lt;h-yin&gt;ㄙㄨ&lt;/h-yin&gt;&lt;h-diao&gt;ˋ&lt;/h-diao&gt;&lt;/h-zhuyin&gt;&lt;/h-ru&gt;&lt;rt rbspan=&#34;2&#34;&gt;yuánsù&lt;/rt&gt;&lt;/h-ru&gt;&lt;/h-ruby&gt;&lt;/p&gt;
&lt;p&gt;&lt;abbr&gt;缩写元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;abbr&lt;/abbr&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;及&lt;abbr title=&#34;abbreviation&#34;&gt;包含标题属性的缩写元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;abbr&lt;/abbr&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;mark&gt;凸显元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;mark&lt;/mark&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;small&gt;批注元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;small&lt;/small&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;span&gt;文字范围元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;span&lt;/span&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;sub&gt;下标元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;sub&lt;/sub&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;sup&gt;上标元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;sup&lt;/sup&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;/section&gt;&lt;/p&gt;
&lt;p&gt;修订类：&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;增订元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;ins&lt;/ins&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;ins&gt;增订元素甲&lt;/ins&gt;&lt;ins class=&#34;adjacent&#34;&gt;增订元素乙&lt;/ins&gt;一般文字节点&lt;!--
--&gt;&lt;ins&gt;增订元素丙&lt;/ins&gt;一般文字节点&lt;!--
--&gt;&lt;ins&gt;增订元素丁&lt;/ins&gt;&lt;h-char unicode=&#34;3002&#34; class=&#34;biaodian cjk bd-end bd-cop bd-jiya bd-hangable&#34;&gt;&lt;h-inner&gt;。&lt;/h-inner&gt;&lt;/h-char&gt;&lt;br&gt;&lt;del&gt;删订元素&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;del&lt;/del&gt;&lt;h-hws hidden=&#34;&#34;&gt; &lt;/h-hws&gt;示例&lt;br&gt;&lt;del&gt;删订元素甲&lt;/del&gt;&lt;del class=&#34;adjacent&#34;&gt;删订元素乙&lt;/del&gt;一般文字节点&lt;!--
--&gt;&lt;del&gt;删订元素丙&lt;/del&gt;一般文字节点&lt;!--
--&gt;&lt;del&gt;删订元素丁&lt;/del&gt;&lt;h-char unicode=&#34;3002&#34; class=&#34;biaodian cjk bd-end bd-cop bd-jiya bd-hangable&#34;&gt;&lt;h-inner&gt;。&lt;/h-inner&gt;&lt;/h-char&gt;&lt;/section&gt;&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #4</title>
        <link>https://fanrongbin.com/hybrid-4/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-4/</guid>
        <pubDate>Thu, 16 Feb 2023 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>向用户学习、生活没法厘清、丢掉的中圈友谊，以及消失的互联网垂直社群等</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/Zine5.webp&#34; alt=&#34;&#34;&gt;
SUMMER DAYS / Moritz Schorpp - DECALOGUE Magazine&lt;/p&gt;
&lt;div style=&#34;align:middle;&#34;&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *; clipboard-write&#34; frameborder=&#34;0&#34; height=&#34;175&#34; style=&#34;width:100%;max-width:100% !important;overflow:hidden;background:transparent;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/cn/album/raven/1652665077?i=1652665088&amp;l=en&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;It took me a long time to figure out why founders don&amp;rsquo;t listen. At first I thought it was mere stubbornness. That&amp;rsquo;s part of the reason, but another and probably more important reason is that so much about startups is &lt;a href=&#34;http://www.paulgraham.com/before.html&#34;&gt;counterintuitive&lt;/a&gt;. And when you tell someone something counterintuitive, what it sounds to them is wrong. So the reason founders don&amp;rsquo;t listen to us is that they don&amp;rsquo;t &lt;em&gt;believe&lt;/em&gt; us. At least not till experience teaches them otherwise.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://www.paulgraham.com/users.html&#34;&gt;What I&amp;rsquo;ve Learned from Users -  Paul Graham&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My shortest short stories are like little dreams I’m having—I forgive myself for not totally knowing the place, not totally knowing the people, and not even totally knowing their exact problems or the exact problem of the place. Did I convey the feeling I wanted? Great. We out.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://thecreativeindependent.com/people/writer-bud-smith-on-putting-in-the-work/&#34;&gt;Writer Bud Smith on putting in the work – The Creative Independent&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It got me thinking that way as well. I was always obsessed with the Saturn return idea—the age between 27 and 32, where basically you enter a certain kind of space of criticality where life can be super challenging, but it allows you to figure out who your true self is. I also have a lot of references to home in my own work, so one thing that was really interesting about collaborating in that way was that in a way we both had similar issues. There are formulas that think about the geometry of space and light and textures and the way that they align with our own personal metaphors, our own personal mythologies. And she was centering her frame line, her obsession with the black rodeo culture in the South. We’re both from the South, but I feel like she had more experience with that than I did.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://thecreativeindependent.com/people/artist-jacolby-satterwhite-on-trusting-your-own-process/&#34;&gt;Artist Jacolby Satterwhite on trusting your own process – The Creative Independent&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I let myself be permeated by this thought – that I might be stuck with certain inner disturbances forever – I definitely feel a bit of peevishness in response: &amp;ldquo;Wait, I&amp;rsquo;m never going to get to the problem-free phase? That&amp;rsquo;s not what I signed up for!&amp;rdquo; But then comes the sense of a heavy burden having been lifted. The pressure&amp;rsquo;s off. I get to unclench, relax, and fall back into the life I&amp;rsquo;m living. Far from this being dispiriting, I find myself much more motivated to get stuck in. It turns out my really big problem was thinking I might one day get rid of all my problems, when the truth is that there&amp;rsquo;s no escaping the mucky, malodorous compost-heap of this reality. Which is OK, actually. Compost is the stuff that helps things grow.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.oliverburkeman.com/never&#34;&gt;What if you never sort your life out? | Oliver Burkeman&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;在台灣教育長大的學生常常會覺得追求頂尖是天才才要考慮的事情，但其實我覺得頂尖和平庸往往是一種自我實現的預言。覺得自己平庸的人一直在做很普通的事情，最終自然會趨於平庸；追求頂尖的人則會因為一直在做困難的事而不斷接近頂尖。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;最後補充一下，我並不是在說頂尖人才都沒學歷，也不是在說沒學歷代表你更有機會成為頂尖人才。我想表達的是：對於追求頂尖的人來說，要不要拿那個學歷大多數時候是個性問題，而不是能力問題。有些人就是極度厭惡浪費時間在沒意義的事情上，特別是當你有更困難、更有趣的事情想做的時候。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://sheracaolity.ghost.io/degree/&#34;&gt;論學歷 - Sheracaolity&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我犹豫入群的原因就是如此，从一个沉默的群，加到一个新群，新群刚开始热闹一阵后很快就陷入了沉默。毕竟毕业将近 20年了，还能保持联系的同学寥寥无几，我们能聊的话题，翻来覆去还是关于高中时期短暂的交集。
⋯⋯
为了弥合人与人之间的距离，为了找到失去的附近性，我们应该减少屏幕时间，多出去走走。去和那些生气腾腾的人交谈，去跟久未谋面的朋友联系，重新找回丢掉的中圈友谊。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://rigeng100.com/post/dayone/ooawr5yscr46c7hnvt4jhsqex2tg/2022-02-13&#34;&gt;找回丢掉的中圈友谊 - 日更100&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;过去和现在的原因都一样：太懒——以前嫌麻烦，后来有一段时间觉得找起来真方便于是就满足了；太傲慢——以为在技术加持下可以一年完成原本需要十年的浸润；太庸俗——分不清获取信息与学习。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.yitianshijie.net/2022/07/13/why-cant-we-find-good-information-now/&#34;&gt;为什么现在找不到好信息 - 一天世界&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But today, it seems that the term web2 is being perpetuated as a strawman to encompass all the follies of human nature and civilisation with some vague underpinning of centralised finance and some blockchain integrations in the fold. A marketing and PR effort to rewrite history and to redefine the internet and the WWW with an arbitrary hard line—before and after blockchain. The implication is that everything in this world, software or otherwise, that isn’t somehow connected to a distributed cryptographic ledger, is web2, and that it is bad.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://nadh.in/blog/web2-web3/&#34;&gt;But, aren&amp;rsquo;t you folks web2? - nadh.in&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这似乎又开始了让人熟悉的老剧情。场景的吸引力，模式的吸引力，大过一切，对入局的紧张大过一切，喊出做中国OpenAI的口号大过一切，小圈子的互相鼓掌也大过了一切，包括对OpenAI究竟怎么成了今天的样子的讨论。&lt;/p&gt;
&lt;p&gt;在这些热闹的朋友圈之外，关于OpenAI的各种研究也都在那里放着：&lt;/p&gt;
&lt;p&gt;OpenAI起始于一群在通用人工智能备受怀疑时仍然相信它能成的人，而非起始于着急“做另一个DeepMind”；它在屡屡碰钉子后设计了针对性极强的新的投资回报协议，而非单纯的有钱就上；它有一个提供着源源不断算力并可以从中获利的互联网巨头的支持，甚至亲身证明了没有这种支持只靠有钱有闲的大佬是做不成这个事的；甚至，它已经在暴露出只被一小群人来掌控一个通用大模型、一个所谓未来的互联网基础的问题所在。&lt;/p&gt;
&lt;p&gt;而这些可能才是后发者更应该提前考虑的问题。&lt;/p&gt;
&lt;p&gt;有些果实很高，有些果实已经落到低处。王慧文想上船，可能需要先从朋友圈出来。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.pingwest.com/a/277269&#34;&gt;着急要上ChatGPT这艘船的王慧文，被他的朋友们当成了船票 - 品玩&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I used to blame advertisers for that restlessness and dissatisfaction, but I don’t think that’s right. We were already restless; we always have been. The advertisers just figured out how to nurture, tend, exacerbate, and capitalize on the pre-existing condition, that innate restlessness, promising that something new is going to set all to rights. When the flashing sidebar connects that hand lotion, those hiking boots, a beach vacation, or some rugged SUV with satisfaction, joy, and inner peace, it sure feels like we’d be suckers not to buy it. And when that thing inevitably disappoints, we hardly even notice. There’s always something new to buy. That narrative of elusive satisfaction isn’t just something we’re repeatedly being told; it is a story we’re literally buying into all the time. No surprise, then, that when our beloved to whom we once upon a time “pledged our troth” inevitably disappoints, we start thinking it might be time to get a new beloved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://comment.org/repair-and-remain/&#34;&gt;Repair and Remain - Comment Magazine&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;And like the small towns of Sinclair Lewis’ day, these vertical communities have the ability to use social ostracism to punish those who deviate from consensus norms and political objectives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We now live in a world where our communities exist in three dimensions — the familiar hodgepodge of local humanity in two dimensions, and our self-sorted online spaces in a third.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;So for now and for the foreseeable future, our public goods are provided locally, but our social interaction happens in the cloud. In theory, this could be a dangerous recipe.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;So I’m worried about the future of our public goods. I’m worried that the online space will fragment and degrade horizontal communities, but will never manage to fully replace them either. We need to find some way to get along with the human beings who live within physical proximity to us, even as we continue to spend much of our time online. Vertical communities must make their peace with horizontal communities…somehow.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://noahpinion.substack.com/p/vertical-communities&#34;&gt;Vertical communities - by Noah Smith - Noahpinion&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;其他&#34;&gt;其他&lt;/h2&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://readwise.io/&#34;&gt;Readwise&lt;/a&gt; and &lt;a href=&#34;https://readwise.io/read&#34;&gt;Reader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.snipd.com/&#34;&gt;Snipd - Unlock the Knowledge in Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superwall.com/&#34;&gt;Superwall — Build the best mobile paywalls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://incoggo.com/&#34;&gt;Incoggo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://incoggo.com/privacy/&#34;&gt;Privacy Policy - Incoggo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=29464674&#34;&gt;Show HN: Incoggo – Free Adblocker for Paywalls | Hacker News&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;</content:encoded>
      </item>
    
      <item>
        <title>높임법 / 경어법 / 존대법 / 대우법：韩语敬语梳理</title>
        <link>https://fanrongbin.com/honorific-ko/</link>
        <guid isPermaLink="true">https://fanrongbin.com/honorific-ko/</guid>
        <pubDate>Tue, 17 Jan 2023 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>主体敬语法、客体敬语法、相对敬语法、压尊法以及事物尊称</description>
        <content:encoded>&lt;h2 id=&#34;tldr-小结&#34;&gt;tl;dr 小结&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;说的是谁？&lt;/strong&gt;：主体敬语法（对其人的尊敬 + 对其动作的尊敬）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;句中是否涉及第三人/各种所属物？&lt;/strong&gt;：客体敬语法&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对谁说？&lt;/strong&gt;：对听者的尊敬与否：相对敬语法&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主语和听者之间谁更“大”？&lt;/strong&gt;：压尊法&lt;/li&gt;
&lt;li&gt;（主体如果是尊敬的人的所属事物：事物尊称）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;“该尊敬谁？”“什么场合？”等因人而异的话题，本文不做过多讨论。&lt;/p&gt;
&lt;h2 id=&#34;对句中主体主语주체主體-높임법&#34;&gt;对句中主体/主语：&lt;span lang=&#34;kr&#34;&gt;주체(主體) 높임법&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;主要有三：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;谓词：添加“&lt;span lang=&#34;kr&#34;&gt;-(으)시-&lt;/span&gt;”&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;以及需要换用的情况，如：&lt;span lang=&#34;kr&#34;&gt;(잠을) 자다→주무시다, 먹다→드시다, 주다→드리다, 있다→계시다&lt;/span&gt;(be; be located)&lt;/li&gt;
&lt;li&gt;注意&lt;span lang=&#34;kr&#34;&gt;계시다&lt;/span&gt;只表示&lt;span lang=&#34;kr&#34;&gt;있다&lt;/span&gt;中“在”的意思，不表示“有”的意思，如：
&lt;ul&gt;
&lt;li&gt;&lt;span lang=&#34;kr&#34;&gt;선생님께서는 교실에 계시다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang=&#34;kr&#34;&gt;선생님의 따님이 있으시다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;助词：主格助词&lt;span lang=&#34;kr&#34;&gt;께서&lt;/span&gt;（以及再附加“&lt;span lang=&#34;kr&#34;&gt;는&lt;/span&gt;”“&lt;span lang=&#34;kr&#34;&gt;도&lt;/span&gt;”等），与格助词&lt;span lang=&#34;kr&#34;&gt;께&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;人名/称呼：在之后添加“&lt;span lang=&#34;kr&#34;&gt;님&lt;/span&gt;”&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;对第三人各种所属物객체客體-높임법&#34;&gt;对第三人/各种所属物：&lt;span lang=&#34;kr&#34;&gt;객체(客體) 높임법&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;对于第三人（即客体，此时他作为句子中的目的语&lt;span lang=&#34;kr&#34;&gt;(목적어)&lt;/span&gt;或副词语&lt;span lang=&#34;kr&#34;&gt;(부사어)&lt;/span&gt;）
&lt;ul&gt;
&lt;li&gt;所跟的谓词需要换用
&lt;ul&gt;
&lt;li&gt;例如：&lt;span lang=&#34;kr&#34;&gt;데리다→모시다, 주다→드리다, 뵈다(보이다)/만나다→뵙다, 묻다→여쭈다→여쭙다&lt;/span&gt;（主要是这四个）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;对于各种所属物
&lt;ul&gt;
&lt;li&gt;名词的换用
&lt;ul&gt;
&lt;li&gt;例如：&lt;span lang=&#34;kr&#34;&gt;밥→진지, 집→댁, 생일→생신, 나이→연세, 이름→성함, 딸→따님, 아들→아드님&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不过，在说话人身份高于客体时，可选择性使用：&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;할아버지: 네 어머니를 &lt;strong&gt;데리고&lt;/strong&gt; 시장에 가라.&lt;/li&gt;
&lt;li&gt;할아버지: 네 어머니를 &lt;strong&gt;모시고&lt;/strong&gt; 시장에 가라.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h2 id=&#34;对听者상대相對-높임법&#34;&gt;对听者：&lt;span lang=&#34;kr&#34;&gt;상대(相對) 높임법&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;关注划分的两大层次：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正式性（formality）：格式体、非格式体&lt;/li&gt;
&lt;li&gt;礼貌程度（politeness）：尊敬阶、卑阶&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两张表：&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/honorific-ko-1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/honorific-ko-2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;对应的英文如下&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;：&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;ul&gt;
&lt;li&gt;합쇼체(하십시오체)：formal style&lt;br&gt;&lt;/li&gt;
&lt;li&gt;하오체：semiformal style&lt;br&gt;&lt;/li&gt;
&lt;li&gt;해요체：polite style&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;하게체：familiar style&lt;br&gt;&lt;/li&gt;
&lt;li&gt;해라체：plain style&lt;br&gt;&lt;/li&gt;
&lt;li&gt;해체：intimate style&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;하소서체&lt;/span&gt;在现代韩语中实际不再使用，属于尊敬阶格式体，表格中不再列出。在一些宗教、历史文本仍可见。&lt;/p&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;하라체&lt;/span&gt;虽然也是一种文体，但没有尊卑意味，表格中不再列出。一般在报刊杂志可见。&lt;/p&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;하오체&lt;/span&gt;在现代韩语中也非常少使用，基本被&lt;span lang=&#34;kr&#34;&gt;해요체&lt;/span&gt;取代，但习惯上仍保留。一般是年龄较长的人使用。&lt;/p&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;하게체&lt;/span&gt;一般在听者地位较低但在年龄上仍长于说话者时被说话者使用，又或者是两个不够亲近的成年男性之间互用等等，有些过于讲究，在现代韩语中和하오체一样使用频率很低。&lt;/p&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;해요체&lt;/span&gt;和&lt;span lang=&#34;kr&#34;&gt;합쇼체(하십시요체)&lt;/span&gt;最大的区别在于使用场合的不同，相信读者在韩语的入门阶段已了解，前者不在新闻放送、事务发表等正式场合使用，只能使用后者。&lt;/p&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;반말(半-)&lt;/span&gt;指的就是&lt;span lang=&#34;kr&#34;&gt;해체&lt;/span&gt;。&lt;/p&gt;
&lt;p&gt;关于语尾：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在&lt;span lang=&#34;kr&#34;&gt;합쇼체(하십시요체)&lt;/span&gt;的&lt;span lang=&#34;kr&#34;&gt;청유법&lt;/span&gt;中，理论上使用终结语尾“&lt;span lang=&#34;kr&#34;&gt;-십시다&lt;/span&gt;”，但面对需要尊敬的听者，使用“&lt;span lang=&#34;kr&#34;&gt;-십시다&lt;/span&gt;”并不显得自然且尊敬意味不突出（“&lt;span lang=&#34;kr&#34;&gt;다&lt;/span&gt;”而不是“&lt;span lang=&#34;kr&#34;&gt;요&lt;/span&gt;”），所以一般改用“&lt;span lang=&#34;kr&#34;&gt;-시지요&lt;/span&gt;”。&lt;/li&gt;
&lt;li&gt;使用&lt;span lang=&#34;kr&#34;&gt;하오체&lt;/span&gt;的女性相对更多，她们一般会将“&lt;span lang=&#34;kr&#34;&gt;-오&lt;/span&gt;”改为“&lt;span lang=&#34;kr&#34;&gt;-우&lt;/span&gt;”。&lt;/li&gt;
&lt;li&gt;&lt;span lang=&#34;kr&#34;&gt;해라쳉&lt;/span&gt;的&lt;span lang=&#34;kr&#34;&gt;의문법&lt;/span&gt;“&lt;span lang=&#34;kr&#34;&gt;-냐? -니?&lt;/span&gt;”语尾，在书面中一般改用“&lt;span lang=&#34;kr&#34;&gt;-ㄴ/는가?&lt;/span&gt;”，&lt;span lang=&#34;kr&#34;&gt;명령법&lt;/span&gt;“&lt;span lang=&#34;kr&#34;&gt;-아/어/여라&lt;/span&gt;”语尾，在口语中一般改用“&lt;span lang=&#34;kr&#34;&gt;-(으)라&lt;/span&gt;”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以“&lt;span lang=&#34;kr&#34;&gt;하다&lt;/span&gt;”为例：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/honorific-ko-3.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;압존법壓尊法&#34;&gt;&lt;span lang=&#34;kr&#34;&gt;압존법(壓尊法)&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;在听者身份高于主体时使用，即不再对句子里的主体使用敬语。&lt;/p&gt;
&lt;p&gt;目前，压尊法已经被废止&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;，现代韩语只在家庭、师生关系中使用。在职场中，一般只使用“一半”：&lt;u&gt;对谓词使用敬语，但对主体的&lt;strong&gt;助词&lt;/strong&gt;不使用。&lt;/u&gt;不过随着语言和社会的变迁，家庭中使用“一半”的情况也越来越多。&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;사장님, 부장님 &lt;u&gt;오셨습니다&lt;/u&gt;. ✅&lt;/li&gt;
&lt;li&gt;사장님, 부장님&lt;u&gt;께서&lt;/u&gt; &lt;u&gt;오셨습니다&lt;/u&gt;. ❌&lt;/li&gt;
&lt;li&gt;할아버지, 어머니&lt;u&gt;가&lt;/u&gt; 진지 잡수시라고 &lt;u&gt;하였습니다&lt;/u&gt;. ✅&lt;/li&gt;
&lt;li&gt;할아버지, 어머니&lt;u&gt;가&lt;/u&gt; 진지 잡수시라고 &lt;u&gt;하셨습니다&lt;/u&gt;. ✅&lt;/li&gt;
&lt;li&gt;할아버지, 어머니&lt;u&gt;께서&lt;/u&gt; 진지 잡수시라고 하셨습니다. ❌&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h2 id=&#34;扩展사물존칭事物尊稱&#34;&gt;扩展：&lt;span lang=&#34;kr&#34;&gt;사물존칭(事物尊稱)&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;事物尊称指的是“所属物”本身作为句子主语时，其跟随的谓词被加上了“&lt;span lang=&#34;kr&#34;&gt;-(으)시-&lt;/span&gt;”，是一种敬语的滥用。因为这个现象大概是伴随着20世纪末百货公司、服务业的兴起而来，现代韩语中已经非常熟悉这种用法，所以如果不这么使用，反而会觉得奇怪。&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;고객님, 주무하신 &lt;strong&gt;피자(가)&lt;/strong&gt; &lt;u&gt;나오셨습니다&lt;/u&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;避免的方法一般是转换主语为人。&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;고객님&lt;/strong&gt;, 주무하신 피자(를) 가져가세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;关于这个话题的讨论还涉及到尊重的“直接或间接”、韩语的“大小主语”等等，有兴趣的读者可以再搜索一下。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;参考&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.naver.com/PostView.naver?blogId=namu4991&amp;amp;logNo=222005232399&#34;&gt;경어법, 주체높임(직접높임, 간접높임) : 압존법 / 독학사 공부 : 네이버 블로그&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://m.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=216&amp;amp;qna_seq=219029&amp;amp;pageIndex=1&#34;&gt;&amp;lsquo;할아버지, 아버지는 책을 읽고 있습니다/있으십니다&amp;rsquo; - 국립국어원&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://namu.wiki/w/%EC%82%AC%EB%AC%BC%EC%A1%B4%EC%B9%AD&#34;&gt;사물존칭 - 나무위키&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;可以在此查看&lt;code&gt;svg&lt;/code&gt;文件：&lt;span lang=&#34;kr&#34;&gt;&lt;a href=&#34;https://img.fanrongbin.com/honorific-ko-1.svg&#34;&gt;1.높임등급&lt;/a&gt; / &lt;a href=&#34;https://img.fanrongbin.com/honorific-ko-2.svg&#34;&gt;2.종결어미&lt;/a&gt; / &lt;a href=&#34;https://img.fanrongbin.com/honorific-ko-3.svg&#34;&gt;3.종결어미:하다&lt;/a&gt;&lt;/span&gt;&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Pak, Miok D. 2008. &lt;em&gt;Types of Clauses and Sentence End Particles in Korean&lt;/em&gt;. Korean Linguistics 14 (1): 113–56. &lt;a href=&#34;https://doi.org/10.1075/kl.14.06mdp&#34;&gt;https://doi.org/10.1075/kl.14.06mdp&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;过往在韩国军队或是企业中，由于不熟悉上下级关系而未用、错用压尊法，以至于受恶意相向的情况非常多。韩国军队已在2016年废止使用压尊法，&lt;span lang=&#34;kr&#34;&gt;국립국어원&lt;/span&gt;出版的语言手册也列明其现代韩语只在家庭、师生关系中被使用，压尊法在社会上逐渐淡出。但毕竟无法影响所有人，仍存在许多比较保守的军队单位、企业在使用。&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>주다, 드리다, 주시다 &#43; 간접인용 명령문</title>
        <link>https://fanrongbin.com/give-ko/</link>
        <guid isPermaLink="true">https://fanrongbin.com/give-ko/</guid>
        <pubDate>Thu, 12 Jan 2023 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>“给”的敬语变化，以及在间接引语命令文（-(으)라고 하다）中引入“달다”</description>
        <content:encoded>&lt;h2 id=&#34;tldr-小结&#34;&gt;tl;dr 小结&lt;/h2&gt;
&lt;h3 id=&#34;주다-드리다-주시다&#34;&gt;&lt;span lang=&#34;kr&#34;&gt;주다, 드리다, 주시다&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/give-ko-1.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;在间接引语命令文quoted-imperative中的变化&#34;&gt;在间接引语命令文（Quoted Imperative）中的变化&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/give-ko-2.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;주다-주시다-드리다&#34;&gt;주다, 주시다, 드리다&lt;/h2&gt;
&lt;h3 id=&#34;a가는-b에게한테-n을-주다&#34;&gt;&lt;span lang=&#34;kr&#34;&gt;A가/는 B에게/한테 N을 &lt;u&gt;주다&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A给B某物&lt;/li&gt;
&lt;li&gt;平辈之间&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;그는 생일 선물로 친구에게 책을 줬다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h3 id=&#34;a가는-c께-n을-드리다&#34;&gt;A가/는 C께 N을 &lt;u&gt;드리다&lt;/u&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A&lt;strong&gt;给C&lt;/strong&gt;某物&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C为需要尊敬的人（下同）&lt;/strong&gt;，如长辈或陌生人，对“给长辈”使用敬语：께, 주다 -&amp;gt; 드리다，类似“献上”“奉上”&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;저는 생일 선물로 선생님께 책을 드렸다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h3 id=&#34;c께서-a에게한테-n을-주시다&#34;&gt;&lt;span lang=&#34;kr&#34;&gt;C께서 A에게/한테 N을 &lt;u&gt;주시다&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;C给&lt;/strong&gt;A某物&lt;/li&gt;
&lt;li&gt;对C“长辈给”使用敬语：&lt;span lang=&#34;kr&#34;&gt;주다 -&amp;gt; 주시다&lt;/span&gt;，类似“赐予”&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;선생님께서 생일 선물로 저에게 책을 주셨다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h3 id=&#34;例v아어여-주다드리다&#34;&gt;例：&lt;span lang=&#34;kr&#34;&gt;V아/어/여 주다/드리다&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;以“帮助”（&lt;span lang=&#34;kr&#34;&gt;돕다&lt;/span&gt;）为例：&lt;/p&gt;
&lt;p&gt;A为B做某事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A主动：
&lt;ul&gt;
&lt;li&gt;A给予B帮助：&lt;span lang=&#34;kr&#34;&gt;A 도와 줄까?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;B接受A的给予：&lt;span lang=&#34;kr&#34;&gt;B 응, 도와 줘.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;B主动：（反写问答）
&lt;ul&gt;
&lt;li&gt;B请求A的帮助：&lt;span lang=&#34;kr&#34;&gt;B 도와 줄래?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;A答应B，给予B帮助：&lt;span lang=&#34;kr&#34;&gt;A 응, 도와 줄게.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A为C做某事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A主动：
&lt;ul&gt;
&lt;li&gt;A&lt;strong&gt;给予C&lt;/strong&gt;帮助：&lt;span lang=&#34;kr&#34;&gt;A 도와 드리겠습나까?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;C接受A的给予：&lt;span lang=&#34;kr&#34;&gt;C 응, 도와 줘.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;C主动：（反写问答）
&lt;ul&gt;
&lt;li&gt;C请求A的帮助：&lt;span lang=&#34;kr&#34;&gt;C 도와 줄래?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;A答应C，&lt;strong&gt;给予C&lt;/strong&gt;帮助：&lt;span lang=&#34;kr&#34;&gt;A 도와 드리겠습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C为A做某事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C主动：
&lt;ul&gt;
&lt;li&gt;C给予A帮助：&lt;span lang=&#34;kr&#34;&gt;C 도와 줄까?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;A接受&lt;strong&gt;C的给予&lt;/strong&gt;：&lt;span lang=&#34;kr&#34;&gt;A 예, 도와 주십시오.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A主动：（反写问答）
&lt;ul&gt;
&lt;li&gt;A&lt;strong&gt;请求C&lt;/strong&gt;的帮助：&lt;span lang=&#34;kr&#34;&gt;A 도와 주시겠습니까?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;C答应A，给予A帮助：&lt;span lang=&#34;kr&#34;&gt;C 응 도와 줄게.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;在间接引语命令文quoted-imperative中的变化-1&#34;&gt;在间接引语命令文（Quoted Imperative）中的变化&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;新角色的出现：转述者&lt;/strong&gt;，转述者使用间接引语转述初始说话者的命令文。indirectly quoting the first speaker&amp;rsquo;s imperative sentence&lt;/p&gt;
&lt;p&gt;注意口语中经常省略行为主体，只保留转述的内容，例如&lt;a href=&#34;#1-%E5%BD%93%E5%88%9D%E5%A7%8B%E8%AF%B4%E8%AF%9D%E8%80%85%E5%92%8C%E6%8E%A5%E5%8F%97%E8%80%85%E4%B8%BA%E5%90%8C%E4%B8%80%E4%BA%BA%E6%97%B6%EC%A3%BC%EB%8B%A4---%EB%8B%AC%EB%8B%A4&#34;&gt;第一例&lt;/a&gt;第一句。&lt;/p&gt;
&lt;h3 id=&#34;1-当初始说话者和接受者为同一人时주다---달다&#34;&gt;1. 当初始说话者和接受者为同一人时，&lt;span lang=&#34;kr&#34;&gt;주다 -&amp;gt; 달다&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;转述者转述初始说话者A/C的话：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;A说&lt;/u&gt;（让B）&lt;u&gt;给A&lt;/u&gt;某物：&lt;span lang=&#34;kr&#34;&gt;N을 달라고 하다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;C说&lt;/u&gt;（让B）&lt;u&gt;&lt;strong&gt;给C&lt;/strong&gt;&lt;/u&gt;某物：&lt;span lang=&#34;kr&#34;&gt;N을 달라고 하시다&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;창문을 열어 달라고 부탁했어.&lt;br&gt;
&lt;ruby&gt;성규가&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;성환이&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt;한테 &lt;ruby&gt;물을&lt;rt&gt;N을&lt;/rt&gt;&lt;/ruby&gt; 좀 &lt;ruby&gt;달라고&lt;rt&gt;for A, themselves&lt;/rt&gt;&lt;/ruby&gt; 부탁했어.&lt;br&gt;
&lt;ruby&gt;성규가&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;성환이&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt;한테 창문을 열어 &lt;ruby&gt;달라고&lt;rt&gt;for A, themselves&lt;/rt&gt;&lt;/ruby&gt; 부탁했어.&lt;br&gt;
&lt;ruby&gt;어머니께서&lt;rt&gt;C&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나한테&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt; 방 좀 청소해 &lt;ruby&gt;달라고&lt;rt&gt;for C, themselves&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;하셨다&lt;rt&gt;honorific&lt;/rt&gt;&lt;/ruby&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h3 id=&#34;2-当初始说话者和接受者不同时仍使用-주다&#34;&gt;2. 当初始说话者和接受者不同时，仍使用 &lt;span lang=&#34;kr&#34;&gt;주다&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;转述者转述初始说话者A的话：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;A说&lt;/u&gt;（让B）&lt;u&gt;给D&lt;/u&gt;某物：&lt;span lang=&#34;kr&#34;&gt;N을 주라고 하다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;A说&lt;/u&gt;（让B）&lt;u&gt;&lt;strong&gt;给C&lt;/strong&gt;&lt;/u&gt;某物：&lt;span lang=&#34;kr&#34;&gt;N을 드리라고 하다&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;ruby&gt;내 반 친구는&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나한테&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;선물을&lt;rt&gt;N을&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;다른 반 친구한테&lt;rt&gt;D&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;주라고&lt;rt&gt;for D&lt;/rt&gt;&lt;/ruby&gt; 했다.&lt;br&gt;
&lt;ruby&gt;내 반 친구는&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나한테&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;다른 반 친구를&lt;rt&gt;D&lt;/rt&gt;&lt;/ruby&gt; 도와 &lt;ruby&gt;주라고&lt;rt&gt;for D&lt;/rt&gt;&lt;/ruby&gt; 했다.&lt;br&gt;
&lt;ruby&gt;내 반 친구는&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나한테&lt;rt&gt;B&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;선생님을&lt;rt&gt;C&lt;/rt&gt;&lt;/ruby&gt; 도와 &lt;ruby&gt;드리라고&lt;rt&gt;for C, honorific&lt;/rt&gt;&lt;/ruby&gt; 했다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;转述者转述初始说话者C的话：加上对C说话的动作使用敬语&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;C说&lt;/strong&gt;&lt;/u&gt;（让A）&lt;u&gt;给D&lt;/u&gt;某物：&lt;span lang=&#34;kr&#34;&gt;N을 주라고 하시다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;C说&lt;/strong&gt;&lt;/u&gt;（让A）&lt;u&gt;&lt;strong&gt;给E&lt;/strong&gt;&lt;/u&gt;（另一个A需要尊敬的人）某物：&lt;span lang=&#34;kr&#34;&gt;N을 드리라고 하시다&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;ruby&gt;어머니께서&lt;rt&gt;C&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나더러&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;동생&lt;rt&gt;D&lt;/rt&gt;&lt;/ruby&gt; 방 좀 청소해 &lt;ruby&gt;주라고&lt;rt&gt;for D&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;하셨다&lt;rt&gt;honorific&lt;/rt&gt;&lt;/ruby&gt;.&lt;br&gt;
&lt;ruby&gt;어머니는&lt;rt&gt;C&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;동생에게&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;할아버지께&lt;rt&gt;E&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;선물을&lt;rt&gt;N을&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;드리라고&lt;rt&gt;for E, honorific&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;하셨다&lt;rt&gt;honorific&lt;/rt&gt;&lt;/ruby&gt;.&lt;br&gt;
&lt;ruby&gt;어머니는&lt;rt&gt;C&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;나한테&lt;rt&gt;A&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;할아버지를&lt;rt&gt;E&lt;/rt&gt;&lt;/ruby&gt; 방 청소해 &lt;ruby&gt;드리라고&lt;rt&gt;for E, honorific&lt;/rt&gt;&lt;/ruby&gt; &lt;ruby&gt;하셨다&lt;rt&gt;honorific&lt;/rt&gt;&lt;/ruby&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;h2 id=&#34;为什么-주다---달다&#34;&gt;为什么 &lt;span lang=&#34;kr&#34;&gt;주다 -&amp;gt; 달다&lt;/span&gt;？&lt;/h2&gt;
&lt;p&gt;首先，根据&lt;span lang=&#34;kr&#34;&gt;국립국어원&lt;/span&gt;的定义：&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;dl&gt;
&lt;dt&gt;주다, 달다&lt;/dt&gt;
&lt;dd&gt;‘주다’는 말하는 이가 무언가를 남에게 건네는 것을 요청하는 경우에 쓴다. 이에 비해 ‘달다’는 자기에게 건네기를 요청할 때 쓴다.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;都表示“给”的意思，但“给别人”用“&lt;span lang=&#34;kr&#34;&gt;주다&lt;/span&gt;”，&lt;strong&gt;“给自己”用“&lt;span lang=&#34;kr&#34;&gt;달다&lt;/span&gt;”&lt;/strong&gt;。即先确定“到底给谁？”&lt;/p&gt;
&lt;p&gt;其次，“달다”属于不完全动词(불완전 동사)，&lt;strong&gt;只有&lt;/strong&gt;在&lt;span lang=&#34;kr&#34;&gt;해라체&lt;/span&gt;与&lt;span lang=&#34;kr&#34;&gt;하라체&lt;/span&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;的命令形（&lt;span lang=&#34;kr&#34;&gt;명령형&lt;/span&gt;）中活用，&lt;strong&gt;其他情况都使用“&lt;span lang=&#34;kr&#34;&gt;주다&lt;/span&gt;”&lt;/strong&gt;。即再“根据句形，是否要换？”&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;해라체 명령법: 아/어/여라
&lt;ul&gt;
&lt;li&gt;그 볼펜 좀 집어 다오. pick up and give me the ballpoint
&lt;ul&gt;
&lt;li&gt;달다 -&amp;gt; 다오&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;하라체 (명령법): (으)라
&lt;ul&gt;
&lt;li&gt;그 볼펜 좀 집어 달라.&lt;/li&gt;
&lt;li&gt;성규가 성환이한테 그 볼펜 좀 집어 달라고 해서.
&lt;ul&gt;
&lt;li&gt;달다 &amp;ndash; +(으)라 &amp;ndash;&amp;gt; 달라&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;使用&lt;span lang=&#34;kr&#34;&gt;주다&lt;/span&gt;：&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;span lang=&#34;kr&#34;&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;합쇼체(하십시오체): ~ 집어 주십시오.&lt;/li&gt;
&lt;li&gt;하오체: ~ 집어 주오.&lt;/li&gt;
&lt;li&gt;하게체: ~ 집어 주게.&lt;/li&gt;
&lt;li&gt;해요체: ~ 집어 줘요.&lt;/li&gt;
&lt;li&gt;해체: ~ 집어 줘.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;上述间接引语命令文（&lt;span lang=&#34;kr&#34;&gt;(으)라고 하다&lt;/span&gt;）中&lt;a href=&#34;#1-%E5%BD%93%E5%88%9D%E5%A7%8B%E8%AF%B4%E8%AF%9D%E8%80%85%E5%92%8C%E6%8E%A5%E5%8F%97%E8%80%85%E4%B8%BA%E5%90%8C%E4%B8%80%E4%BA%BA%E6%97%B6%EC%A3%BC%EB%8B%A4---%EB%8B%AC%EB%8B%A4&#34;&gt;“&lt;span lang=&#34;kr&#34;&gt;달라고 하다&lt;/span&gt;”的例子&lt;/a&gt;其实就属于&lt;span lang=&#34;kr&#34;&gt;하라체(명령법)&lt;/span&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;p&gt;Kim, S., Curtis, E., &amp;amp; Cho, H. (2018). &lt;em&gt;Korean Grammar: The Complete Guide to Speaking Korean Naturally&lt;/em&gt;. Tuttle Publishing.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;“&lt;span lang=&#34;kr&#34;&gt;하라체&lt;/span&gt;”不属于相对敬语法六种体（包括“&lt;span lang=&#34;kr&#34;&gt;하소서체&lt;/span&gt;”与否）/七种体，是没有抬高或放低等尊敬意味的一种单独设置，常用在新闻杂志。以&lt;span lang=&#34;kr&#34;&gt;되다&lt;/span&gt;为例，活用成“&lt;span lang=&#34;kr&#34;&gt;되라&lt;/span&gt;”属于&lt;span lang=&#34;kr&#34;&gt;하라체&lt;/span&gt;，而“&lt;span lang=&#34;kr&#34;&gt;돼라&lt;/span&gt;”属于&lt;span lang=&#34;kr&#34;&gt;해라체&lt;/span&gt;。&lt;br&gt;&lt;span lang=&#34;kr&#34;&gt;&lt;a href=&#34;https://twitter.com/urimal365/status/480882944601370625&#34;&gt;국립국어원&lt;/a&gt;: &amp;ldquo;@jithoven11 ‘하라체’는 상대편이 특정 개인이 아닐 때 낮춤과 높임이 중화된 느낌을 주는 종결형으로, 주로 광고문, 연설문 따위의 문장에 씁니다(붉은 물결이 되라). ‘해라체’는 상대편을 아주 낮추는 종결형입니다(제발 인간이 돼라). #표현&amp;rdquo;&lt;/span&gt;&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;实际上，现在年轻人也大多不再使用“&lt;span lang=&#34;kr&#34;&gt;다오&lt;/span&gt;”，而使用“&lt;span lang=&#34;kr&#34;&gt;주라&lt;/span&gt;”“&lt;span lang=&#34;kr&#34;&gt;줘라&lt;/span&gt;”，这是一个语用现象，感兴趣的读者可以阅读：&lt;span lang=&#34;kr&#34;&gt;김경혜. (2015). &lt;a href=&#34;https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002026840&#34;&gt;명령형 ‘주라’의 사용 확장에 대하여&lt;/a&gt;. 한국학연구, 38, 309-331.&lt;/span&gt;&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;&lt;span lang=&#34;kr&#34;&gt;&lt;a href=&#34;https://sgsg.hankyung.com/article/2020103066721&#34;&gt;[홍성호 기자의 열려라! 우리말] &amp;lsquo;달다&amp;rsquo; 자리 넘보는 &amp;lsquo;주다&amp;rsquo;&lt;/a&gt;&lt;/span&gt;&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>生活的日子里，化身躺倒在沥青路上的一滩果酱</title>
        <link>https://fanrongbin.com/jam-on-road/</link>
        <guid isPermaLink="true">https://fanrongbin.com/jam-on-road/</guid>
        <pubDate>Sat, 31 Dec 2022 01:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;这一年我新得到，也复习了许多的“告诫”，它们来自每一天、每个生活的日子。好像是四年前一个夏天下午，彭美问我们为什么总是急匆匆地，赶着下课、赶着体锻、赶着回宿舍、赶着回教室。&lt;/p&gt;
&lt;p&gt;“因为要生活啊。”&lt;/p&gt;
&lt;p&gt;那时比现在要懂得什么叫生活：一边洗衣服一边哼歌，一边吃饭一边跟朋友闲聊，或者在教室小阳台写日记，在自习的间隙看会儿闲书。生活特别简单。&lt;/p&gt;
&lt;p&gt;简单的生活一下子摔得支离破碎，现在妄想一下子拾掇好——“告别 2022，告别疫情吧！”，给这场生活送第二次终，多希望这盛大的追悼会开得圆满，实际上连该埋葬的是什么都不知道。&lt;/p&gt;
&lt;p&gt;善良的人们，每一天、每个生活的日子里，化身躺倒在沥青路上的一滩果酱，又甜，又脏：生活在离开了“生活”时才诞生。许多的蚂蚁背着这许多的告诫，像倒芝麻一样从化身中涌出。&lt;/p&gt;
&lt;p&gt;于是果酱又变成了扛着告诫的蚂蚁，躲闪着一双双黑色的皮鞋，不留神，告诫就会又被落下。&lt;/p&gt;
&lt;p&gt;好在这之中至少尝过了甜滋味，那忘了要抓住的一切渺小的东西，至少抓住过一些。被踩死之前靠着这念想，靠着舔吮善良的人们留下的果酱、扛着的告诫——&lt;/p&gt;
&lt;p&gt;和善良的人们站在一起，把拥有生活的洁白祝愿，也留给善良的人们。&lt;/p&gt;
&lt;p&gt;今年听到最喜欢的新专辑有：FELIVAND《Ties》、The Comet Is Coming《Hyper-Dimensional Expansion Beam》、Sabrina Claudio《Based On A Feeling》、Steve Lacy《Gemini Rights》、Brian Eno《FOREVERANDEVERNOMORE》、Rad Museum《RAD》、Night Swimmer《Xia Ye》、NewJeans《New Jeans》。&lt;/p&gt;
&lt;p&gt;今年听播客的频率大幅下降，原因主要有二：通勤时间减少，以及自顾不暇，听不得太多说教。&lt;/p&gt;
&lt;p class=&#34;right-date&#34; align=&#34;right&#34;&gt;2022 年 12 月 31 日&lt;/p&gt;
&lt;hr&gt;
&lt;iframe id=&#34;embedPlayer&#34; src=&#34;https://embed.music.apple.com/us/album/ties/1625027792?app=music&amp;amp;itsct=music_box_player&amp;amp;itscg=30200&amp;amp;ls=1&amp;amp;theme=auto&#34; height=&#34;450px&#34; frameborder=&#34;0&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation&#34; allow=&#34;autoplay *; encrypted-media *; clipboard-write&#34; style=&#34;width: 100%;  overflow: hidden; border-radius: 10px; transform: translateZ(0px); animation: 2s ease 0s 6 normal none running loading-indicator; background-color: rgb(228, 228, 228);&#34;&gt;&lt;/iframe&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #3</title>
        <link>https://fanrongbin.com/hybrid-3/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-3/</guid>
        <pubDate>Sun, 04 Sep 2022 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>教学是另一种获取灵感的途径、网站是怎么死的、加密货币的 costless simulation、稀粥颂，以及随感</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/lunar-pits.webp&#34; alt=&#34;&#34;&gt;
NASA’s LRO Finds Lunar Pits Harbor Comfortable Temperatures © NASA/GSFC/Arizona State Univeristy&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/Elliot_Luncheon_FeliceKnol_3.webp&#34; alt=&#34;&#34;&gt;
© Felice Knol&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;on-sharing-the-magic-of-the-creative-process-w-serbest-salih--the-creative-independent&#34;&gt;On sharing the magic of the creative process, w/ Serbest Salih,  The Creative Independent&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;They see the world from different levels. It’s a very innocent perspective because it’s without editing—it is a free moment without any pressure. When they see any moment that inspires them, they capture it. Their work is about the celebration of childhood; about seeing the world through the eyes of children, not as adults.
&amp;hellip;
When I teach them photography composition, I don’t tell them what they should do. I tell them that photography doesn’t have rules—that when you shoot, you just have to feel it. I try to make sure not to pressure them. [Even though] it’s analog photography, and it’s a limited [medium], I tell them, “You have just to feel it, you can shoot whatever you want.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://thecreativeindependent.com/people/artist-and-educator-serbest-salih-on-sharing-the-magic-of-the-creative-process/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;教学是另一种获取灵感的途径：新手们未受打磨的灵感、眼光、视角，过程中前后对比体会差异和利弊。&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;quoted-from-a-psalm-for-the-wild-built-by-becky-chambers-how-websites-die-by-wesley&#34;&gt;Quoted from &lt;em&gt;A Psalm for the Wild-Built&lt;/em&gt; by Becky Chambers, &lt;em&gt;How Websites Die&lt;/em&gt; by Wesley&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; And I also included this lovely quote from A Psalm for the Wild-Built by Becky Chambers:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is difficult for anyone born and raised in human infrastructure to truly internalize the fact that your view of the world is backward. Even if you fully know that you live in a natural world that existed before you and will continue long after, even if you know that the wilderness is the default state of things, and that nature is not something that only happens in carefully curated enclaves between towns, something that pops up in empty spaces if you ignore them for a while, even if you spend your whole life believing yourself to be deeply in touch with the ebb and flow, the cycle, the ecosystem as it actually is, you will still have trouble picturing an untouched world. You will still struggle to understand that human constructs are carved out and overlaid, that these are the places that are the in-between, not the other way around.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://notebook.wesleyac.com/how-websites-die/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;interview-vitalik-buterin-creator-of-ethereum-noahpinion&#34;&gt;Interview: Vitalik Buterin, creator of Ethereum, Noahpinion&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I definitely think that in the medium-term future cryptocurrencies will settle down and be only about as volatile as gold or the stock market. The main question is just what level the prices will settle down at.
&amp;hellip;
There&amp;rsquo;s a few pro- proof of work arguments. In my view the strongest argument is the &amp;ldquo;costless simulation&amp;rdquo; issue. Basically, the idea is that in a proof of stake chain, an attacker could reach out to the owners of the coins at some point many years ago, buy up their old keys for a very low price (because those coins have since been moved to addresses controlled by different keys), and use those coins to create a different chain that forks off from that point and, in a vacuum, looks like a valid history. A node that knows only the protocol rules, connecting to the network from scratch, would not be able to tell the difference between the actual chain and this simulated chain provided by an attacker. In PoW, on the other hand, creating such a simulated alternate chain requires redoing an equal amount of proof of work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://noahpinion.substack.com/p/interview-vitalik-buterin-creator&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;an-interview-with-venture-capitalist-bill-gurley-mba-93&#34;&gt;An Interview with Venture Capitalist Bill Gurley, MBA ’93&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the things that’s really important about venture is you have to conceptualize ideas that have lots of running room, and where the incumbents aren’t going to play.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://medium.com/texas-mccombs-news/venture-capitalist-bill-gurley-975e59758592&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;白板报两只眼睛看到的-cmkids-大地艺术&#34;&gt;白板报：两只眼睛看到的 CMkids 大地艺术&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;在回家的地铁上，小 Jo 说：&lt;/p&gt;
&lt;p&gt;「我明白了，我们应当用两只眼睛看世界。」&lt;/p&gt;
&lt;p&gt;「是哪两只眼睛呢？」&lt;/p&gt;
&lt;p&gt;我启发式地提问，很期待他说：「一只是眼睛叫科学，一只眼睛叫艺术。」&lt;/p&gt;
&lt;p&gt;然而，他回答：「一只是自己的眼睛，一只是朋友的眼睛。」&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://wangpei.net/2022/07/07/cmkids-arts-on-earth/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;人很难想象超出自己认知范围的事物，带来的要求是人与人，或者人与机器之间的交流。&lt;/p&gt;
&lt;h3 id=&#34;陈先发稀粥颂&#34;&gt;陈先发：稀粥颂&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;多年来我每日一顿稀粥。在它的清淡与
&lt;br&gt;
嶙峋之间，在若有若无的餐中低语之间&lt;/p&gt;
&lt;p&gt;我埋头坐在桌边。听雨点击打玻璃和桉叶
&lt;br&gt;这只是一个习惯。是的，一个漫无目的的习惯&lt;/p&gt;
&lt;p&gt;小时候在稀粥中我们滚铁环
&lt;br&gt;看飞转的陀螺发呆，躲避旷野的闷雷&lt;/p&gt;
&lt;p&gt;我们冒雨在荒冈筑起
&lt;br&gt;父亲的坟头，我们继承他的习惯又&lt;/p&gt;
&lt;p&gt;重回这餐桌边。像溪水提在桶中
&lt;br&gt;已无当年之怒――是的，我们为这种清淡而发抖&lt;/p&gt;
&lt;p&gt;这里面再无秘诀可言了？我听到雨点
&lt;br&gt;击打到桉叶之前，一些东西正起身离去&lt;/p&gt;
&lt;p&gt;它映着我碗中的宽袍大袖，和
&lt;br&gt;渐已灰白的双鬓。我的脸。我们的脸&lt;/p&gt;
&lt;p&gt;在裂帛中在晚霞下弥漫着的
&lt;br&gt;偏街和小巷。我坐在这里。这清淡远在拒绝之先&lt;/p&gt;
&lt;p&gt;（2010 年 7 月）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;随感&#34;&gt;随感&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;来自用户自身行为习惯的粘性与日活：人们更多地发 Instagram Story（限时动态），以至于部分的交互被框定在 24 小时内，否则被落下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.gated.com/&#34;&gt;Gated: Noise-Canceling Headphones for Email&lt;/a&gt;，以及 &lt;a href=&#34;https://www.theverge.com/2022/8/25/23318759/duckduckgo-email-protection-service-available-everyone-open-beta&#34;&gt;@duck.com&lt;/a&gt;：反思日常，反思理所当然的接受——为什么发信人预设收信人一定要“收到信件”和“看到信件”？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;无多少差异的底层逻辑，用工文化、专业求职市场买卖方在未来转变的可能。&lt;/p&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;⋯⋯最後，Legalist 是一個員工數 50 人且全遠距協作的團隊。Shang 表示這讓他們得以獵取到一些不想在傳統對沖基金文化中工作、但本身具備很強專業技能與市場嗅覺的人才。上述這點讓我印象非常深刻。過去人們常提的「破壞」是技術、商業模式上的突破，如今一種新型態的破壞或許是從更根本的地方下手：人才。畢竟，無法吸引人才的公司，都終將被超越。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://mailchi.mp/manny-li.com/063-15684649&#34;&gt;曼報 #149&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从订户身上挖钱，而少见从片商和广告商身上挖钱：&lt;strong&gt;能&lt;/strong&gt;撬得动、搅得浑的池子，谁比较深？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;生态作为一种思维工具：和链条式相比，它更圆，更接近现实世界。不过最重要的是它足够&lt;strong&gt;新&lt;/strong&gt;，对这个世界的反应足够快。&lt;/p&gt;
&lt;p&gt;一个好的例子（Alexa），一个滥用或者缺失的例子（微软）。&lt;/p&gt;
 &lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;Adner 在本書中替生態系下了一個我認為夠精簡的定義：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;一個生態系就是「合作夥伴」透過「價值結構」相互作用，向「終端客戶」傳遞「價值主張」。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;⋯⋯柯達的失敗不在於它沒有轉型，而是它只在不變的生態系假設下轉型，只關注傳統分析框架下的競爭對手（例如：富士），而忽略合作夥伴才是真正可能帶來破壞的角色。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://mailchi.mp/manny-li.com/063-15893597&#34;&gt;曼報 #154&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
  &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;丢掉数字，似乎能让我们更好理解时间。例如一个进度条，一张饼图。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;书被&lt;strong&gt;神圣化&lt;/strong&gt;了，特别是对于小孩来讲，书和其他所有的一切一样，都只是&lt;strong&gt;玩具&lt;/strong&gt;。重要的地方很多人说过：从具象的爱中来又从中抽身、朋友式的对话，以及无尽的想象力。（不过这不代表不需要监管和讨论，站在社会教化的角度）不要期待小孩子能被硬灌出什么花样。庄周梦蝶，蝶梦庄周——明天，我们能去一趟公园玩儿吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其实我们往往并非“&lt;a href=&#34;https://via.zhubai.love/posts/2156507432179023872&#34;&gt;在重大的事情上，很容易做决定，反而在微小的事情上，会思量很久&lt;/a&gt;”，而是我们总觉得那些大事“本可以有更好的结果”，由此带来的很多回想，使自己误以为是”没有经过多少的思量“。实际上这些大事在头顶回旋，找准每天的缝隙钻进颅内，成百上千，成千上万次。对意识、潜意识的丈量，好像缺少一套工具，也这么缺少一根筋。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Hybrid 是一个内容摘录计划。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #2</title>
        <link>https://fanrongbin.com/hybrid-2/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-2/</guid>
        <pubDate>Mon, 02 May 2022 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>公共生活的意义、真理的直率、平台与个人、过度教育、Feature/Product Fit，以及能成为诗的一切</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/Courtesy_of_Dorte_Mandrup_Arkitekter_2.webp&#34; alt=&#34;&#34;&gt;
Ilulissat Icefjord Center. © Dorte Mandrup Arkitekter&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/IMG_0657.webp&#34; alt=&#34;&#34;&gt;
Essaouira, Marokko, 2019 © Lea Verholen&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;h3 id=&#34;周保松公共生活的意義&#34;&gt;周保松：公共生活的意義&lt;/h3&gt;
&lt;span lang=&#34;zh-Hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;⋯⋯第三，承接以上所言，公共生活總意味著我們與他人在一起。我們在一起討論，一起行動，一起感受，也在一起改變。我們雖然有不同的身分，卻總希望在公共生活中彼此尊重，沒有人會因為出身、階級、性別、信仰等差異而受到歧視。公共生活很重要的一點，是看到和承認他人與你是平等的存在，享有同樣的權利。我們因此要學會聆聽、容忍和尊重不同的觀點。 公共性總是和開放、多元、民主這些價值聯結在一起。&lt;/p&gt;
&lt;p&gt;以上三點，都是規範性的，反映我們對公共生活的期望，而不是說現實已經如此。我們正是見到現實的不理想，才特別提出這些面向，希望我們一起努力創造條件去實現這樣的公共生活。&lt;/p&gt;
&lt;p&gt;⋯⋯公共生活是有力量的，當人與人走在一起，當人開始獨立思考，體制就會恐慌，因為他們知道自己那套東西早已經不起理性檢視。現在的社會控制，就是要將人趕回私人領域，把人變成耽於消費的經濟動物，從而令我們忽略、甚至忘記人同時也是社會存有和政治存有。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://theinitium.com/article/20200927-opinion-notes-public-life/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;王小波积极的结论&#34;&gt;王小波：积极的结论&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;我的积极结论是这样的：真理直率无比，坚硬无比，但凡有一点柔顺，也算不了真理。安徒生有一篇童话(光荣的荆棘路)，就是献给这些直率、坚硬的人，不过他提到的全是外国人。作为中国的知识分子，理应有自己的榜样。此刻我脑子里浮现出一系列名字：陈寅格教授，冯友兰教授，等等。说到陈教授，我们知道，他穷毕生精力，考据了一篇很不重要的话本，《再生缘》。想到这件事，我并不感到有多振奋，只是有点伤感。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;真理一定是坚硬的，但坚硬的不一定是真理，被视作坚不可摧的往往亦不过是玩物尔尔。不过，还有人最大的乐观主义，时间和死亡。既然知道至多是一场大火或迎来冰河，至少也有生死在这之中轮替，再无力时也多了一份安定。&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;the-verge-with-matt-mullenweg-how-wordpress-and-tumblr-are-keeping-the-internet-weird&#34;&gt;The Verge with Matt Mullenweg, &lt;em&gt;How WordPress and Tumblr are keeping the internet weird&lt;/em&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;There’s people that are sharing. That’s really, really exciting to me because it’s kind of like the personal web&amp;hellip;I go to a Medium article, or even a Substack article, and I read the article and I just remember Medium or Substack. I actually forget the author because the sites all kind of look the same. How do you bring that — not just the editorial voice, but also the visual personalization — that you can really have your own home on the web?&lt;/p&gt;
&lt;p&gt;&amp;hellip;I don’t think creators getting paid is dependent on blockchain technology. That’s a separate trend that’s happening that is part of the disintermediation of distributors. Essentially, what the social networks did was they allowed people to go more direct than before&amp;hellip;The power is in the hands of creators. I love that salaries are going up for writers and editors and all these sorts of things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;Automattic 一直给人感觉非常社区化、非常团结，从雇人的理念上就比较不同，更希望在对公司和产品真正感兴趣的人中招贤纳士。而且公司以及产品都非常注重社区的维护，例如 WordPress 的本地化，贡献者名单存放有序，而且 fully accessible。在开源和闭源、非盈利和盈利之间的微妙平衡，依然跟社区的形成不无关系，健康的用户社区自己就能把雪球越滚越大。&lt;/p&gt;
&lt;p&gt;最近对「平台与个人」的问题也有所感触。文字载体、加入智能推荐算法的平台，往往存在「平台大于个人」的倾向。以 Medium 为例自然不用说，也可以从 Twitter 的发展中看到（尤其是时间线上智能推荐的加入）。读者能不能记得创作者这个人，一个是创作者的名字要绝对 show up，像 RSS 阅读器里订阅博客，博客的名字/作者的名字作 label。另一个是用户 discover 的参与度，通过内容溯及创作者和通过创作者溯及内容是完全不同的，后者第一印象就建立在创作者本身，而且参与度更高。&lt;/p&gt;
&lt;p&gt;像 Matters 一直在说要做去中心化的写作社群，加入种种 web3 的技术和理念，如果没能扭转读者「认为平台大于个人」的倾向，那给写作者再多的工具也于事无补。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.theverge.com/2022/3/15/22977857/wordpress-tumblr-simplenote-internet-automattic-matt-mullenweg-interview&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;cho-hae-joang-the-spec-generation-who-cant-say--2015&#34;&gt;Cho Hae-joang, &lt;em&gt;The Spec Generation Who Can’t Say &amp;ldquo;No&amp;rdquo;: Overeducated and Underemployed Youth in Contemporary South Korea&lt;/em&gt;, 2015&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;It seems that to them, kindness is something to be purchased. Since they do not expect kindness without financial compensation, they tend to be moved by a little kindness and caring by professors..They have deeply internalized the principle of the “survival of the fittest,” while having little sense of “deserving inalienable rights” as students, as children, or as members of society.&lt;/p&gt;
&lt;p&gt;&amp;hellip;I found the enlightening distinction Michel Feher draws between the free laborer of liberal capitalism and the labor subjectivity of neoliberal capitalism that is generated and maintained through an endless process of human capital development&amp;hellip;To Feher, liberal capitalism draws on the concept of the free laborer, which is understood as a social being&amp;hellip;Free laborers think of their labor power as commodity but believe that they themselves are not commodities.&lt;/p&gt;
&lt;p&gt;&amp;hellip;A student confirmed her observation, saying, &amp;ldquo;I feel bad thinking that I have to feel guilty for not getting involved.&amp;rdquo; In fact, many of my students work hard to block reality out of their lives so that they could avoid being disrupted and disturbed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;韩语中有个外来词叫 &amp;lsquo;스펙&amp;rsquo;（specification），意思为「各种能证明自己能力和履历的证书、文凭、资格证等」。英语里 specification 往往作「规格；说明书」等义更常见，就像一场语言上的巧合，嵌入人被物化的简单事实。延世大名誉教授趙韓惠貞在 2015 年发表的这篇论文，关注的焦点在于韩国的「过度教育」问题、年轻人在校的「冷感」以及进入社会后的「半失业」状态。她认为这样一场对学历的追逐、对（阶层上的）安稳的希望以及衍生出对自我与社会的冷漠（特别是与轰轰烈烈的上世纪 80-90 年代相比而言），与自由资本主义向新自由主义的转型不无关系。&lt;/p&gt;
&lt;p&gt;她引 Michel Feher 的观点，Feher 首先区分出新自由主义的产生和维持依赖于无休止的人力资本。进而关注微观个人，认为诞生出一种新的劳动主体即新自由主义主体，他们并不拥有人力资本，却要对人力资本进行投资，结合经济学，劳动者应当追求投资的收益最大化，同时收益应该具有一定的可测度性，进而无可奈何地适应资本导向，放弃在自我、社会与政治方面的边界与分寸。韩国教育市场在进入千禧年后私人化程度已经臻于成熟，所以家庭在这场主体转型中也扮演着格外重要的角色。&lt;/p&gt;
&lt;p&gt;趙韓惠貞教授结合新闻与授课中的实际案例，在文中给出了多个放弃或模糊了社会再生产与自我成就、社会责任之间边界的侧面。这里再具体拿「政治冷感」说，学生们格外认同「避免不必要麻烦」的这个出发点，希望努力把社会现实阻挡在自己的生活之外，不希望再被「侵蚀」。政治家在这场「进化」中也顺利通过合作，把自己从人人皆应承担的责任转变为多数人趋于回避的生活麻烦。&lt;/p&gt;
&lt;p&gt;东亚共享太多剧情和副本，你争我赶地保持不为所动，年轻人的路收窄成「奴隶」和「抑郁」两条。已经完成重构的日本、动态中的韩国、还仅是瞥见黑夜正在来临的中国，各自有命。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://doi.org/10.1215/10679847-3125823&#34;&gt;DOI.org/10.1215/10679847-3125823&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;casey-winters-featureproduct-fit&#34;&gt;Casey Winters, &lt;em&gt;Feature/Product Fit&lt;/em&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;Feature/Product Fit has a similar process. We’ll call this the Feature/Product Fit Checklist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The feature has to retain users for that specific feature&lt;/li&gt;
&lt;li&gt;The feature has to have a scalable way to drive its own adoption&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mistakes Feature Teams make searching for feature/product fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mistake #1: Email your entire user base about your new feature&lt;/li&gt;
&lt;li&gt;Mistake #2: Put a banner at the top of the product for all users introducing the new feature&lt;/li&gt;
&lt;li&gt;Mistake #3: Launch with a lot of press about the new feature&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;原文拿 Pinterest 举例，非常精准：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Like 和 Pin 同时存在，高频/一级按钮定义的不明，用户到底该用哪个？&lt;/li&gt;
&lt;li&gt;地点 Pin 事实上把 Pin、Board 与用户之间的距离拉的更远；&lt;/li&gt;
&lt;li&gt;网格显示方式下 Pin 创建者的露出，反而退回到底是搭建「社交」网络还是「兴趣」网络的岔路口，同时也无谓地占据了更多的显示空间（它本身很难说形成 KOL 或有频繁发布的用户存在）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://caseyaccidental.com/feature-product-fit/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;span lang=&#34;en&#34;&gt;
&lt;h3 id=&#34;wesley-aptekar-cassels-a-few-things-that-could-be-poetry&#34;&gt;Wesley Aptekar-Cassels, &lt;em&gt;A few things that could be poetry&lt;/em&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The right combination of street signs, viewed from a artful vantage point&lt;/li&gt;
&lt;li&gt;Words on bit of packaging, torn to reveal and conceal as needed&lt;/li&gt;
&lt;li&gt;The output of a command line tool, perhaps unexpectedly&lt;/li&gt;
&lt;li&gt;Overheard words, drifting along, liberated from their initial context&lt;/li&gt;
&lt;li&gt;A form, at first appearing bureaucratic, revealing humanity on deeper reflection&lt;/li&gt;
&lt;li&gt;An idea, if you consider it divine enough&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;&lt;a href=&#34;https://notebook.wesleyac.com/could-be-poetry/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hybrid 是一个内容摘录计划。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/econ105-scene.webp&#34; alt=&#34;Scene - EP&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ambient EP &amp;ldquo;Scene&amp;rdquo; 已在 &lt;a href=&#34;https://econ105.bandcamp.com/album/scene&#34;&gt;Bandcamp&lt;/a&gt; 与 &lt;a href=&#34;https://soundcloud.com/econ105/sets/scene&#34;&gt;SoundCloud&lt;/a&gt; 上架。&lt;/p&gt;
&lt;iframe style=&#34;border: 0; width: 100%; height: 120px;&#34; src=&#34;https://bandcamp.com/EmbeddedPlayer/album=1016704083/size=large/bgcol=ffffff/linkcol=63b2cc/tracklist=false/artwork=small/transparent=true/&#34; seamless&gt;&lt;a href=&#34;https://econ105.bandcamp.com/album/scene&#34;&gt;Scene by ECON105&lt;/a&gt;&lt;/iframe&gt;</content:encoded>
      </item>
    
      <item>
        <title>Windows 11 的新字体：Segoe UI Variable</title>
        <link>https://fanrongbin.com/segoe-ui-variable/</link>
        <guid isPermaLink="true">https://fanrongbin.com/segoe-ui-variable/</guid>
        <pubDate>Wed, 30 Mar 2022 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;微软在 2021 年 5 月 6 日于 Windows 10 Insider Preview Build 21376 &lt;a href=&#34;https://blogs.windows.com/windows-insider/2021/05/06/announcing-windows-10-insider-preview-build-21376/&#34;&gt;发布&lt;/a&gt;了 Segoe UI 的可变字体版本：Segoe UI Variable，&lt;a href=&#34;https://docs.microsoft.com/en-us/windows/apps/design/signature-experiences/typography&#34;&gt;在 Windows 11 &lt;/a&gt;正式作为系统默认字体。得益于可变字体特性，Segoe UI Variable 可以根据不同的字重选择做出调整，在低分屏下也具有较高可读性。此次还同步推出了 Text 和 Display 两个版本，前者常用于内文，后者的装饰性元素或字体的风格更加突出，所以更常用于标题。Text 版本增加字重，x-字高更高，字母的开口以及间距更大。Display 版本字母尾部曲度更大，字间距对应缩紧，存在感更强。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/segoe-ui-v-vdisplay.webp&#34;&gt;&lt;/img&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/segoe-ui-v-vdisplay-2.webp&#34;&gt;&lt;/img&gt;&lt;/p&gt;
&lt;p&gt;风格上与旧 Segoe UI 相比，Segoe UI Variable 更圆，字母尾部增加曲度并切平，同时去掉了字母 I 和数字 1 的 crossbars，字母 Q 的小尾巴缩短改平直，整体更干练和紧凑，&lt;del&gt;看起来也更像 Product Sans 了。&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/segoe-ui-v-vdisplay-3.webp&#34;&gt;&lt;/img&gt;&lt;/p&gt;
&lt;p&gt;可以通过 Windows 的&lt;a href=&#34;https://docs.microsoft.com/en-us/windows/apps/design/downloads/#fonts&#34;&gt;官方文档&lt;/a&gt;，或直接访问&lt;a href=&#34;https://aka.ms/SegoeUIVariable&#34;&gt;此链接&lt;/a&gt;下载 Segoe UI Variable。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Hybrid #1</title>
        <link>https://fanrongbin.com/hybrid-1/</link>
        <guid isPermaLink="true">https://fanrongbin.com/hybrid-1/</guid>
        <pubDate>Sat, 05 Feb 2022 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description>母语者心态、身份政治，以及三个促使我们相信假新闻的要素</description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/n-2.webp&#34; alt=&#34;&#34;&gt;
莎玛丽丹百货公司 La Samaritaine © Simón García | arqfoto&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/n-3.webp&#34; alt=&#34;&#34;&gt;
The Optimism of Possibility © Phillip Reed&lt;/p&gt;
&lt;h2 id=&#34;摘录&#34;&gt;摘录&lt;/h2&gt;
&lt;h3 id=&#34;林宏信母語者心態&#34;&gt;林宏信：母語者心態&lt;/h3&gt;
&lt;span lang=&#34;zh-hant&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;「母語者心態」是無法為他人帶來幫助的，然而這不容易避免，畢竟每個人都有這麼多差異，大家都可能是某方面的「母語者」，難以去理解他人所面臨到的困難。我想首先要察覺到自己與別人的不同，建立正確的認知，才能真正幫助到他人。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;自主、自然的学习往往需要前期有一定程度的投入，未起步的人即使对这些所谓的学习方式有所认知，也极大可能仍在原地踏步。每个人都可能在某个领域存在一定投入，是这个领域的「精通者」，或多或少在遇到来自新手的提问时感到有些疑惑，「为什么他就不能想到我所想到的呢？」，无法先站在对方的角度理解其全程经历的困难，这便是母语者心态了。除了察觉不同、建立认知外，我想还需要把对方的问题不断细化，才能一点一点重新来过。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.wancat.cc/post/native-speaker/&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;马华灵身份自由主义的困境&#34;&gt;马华灵：身份自由主义的困境&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;身份政治的大麻烦是去公民政治。但是，公共自由主义并不排斥身份政治。这是因为身份自由主义一败涂地，表面上根源于身份政治，而实质上根源于去公民政治。如果美国自由派能够从身份政治走向公民政治，那么身份政治依旧可以从分裂的政治走向团结的政治。身份自由主义是排他性的（exclusive），它以自我为中心，只关心跟自己的身份息息相关的事务，而不关心跟自己的身份毫无干系的事务。但是，公共自由主义却是包容性的（inclusive），它不仅仅关心跟自己的身份息息相关的事务，而且还从自己的身份出发走向更广大的公民同胞。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;身份政治的一大弊病是其无穷无尽分裂的特性，走到最后人人视对方为异己、形同陌路，个人主义的实质决定其自身被终结的命运。从身份政治走向公民政治，亦正是从分裂走向团结，从诉诸运动转向诉诸选举。在冲突中进化，但最终只得在包容中收获。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://matters.news/@ififififif/%E9%A9%AC%E5%8D%8E%E7%81%B5-%E8%BA%AB%E4%BB%BD%E8%87%AA%E7%94%B1%E4%B8%BB%E4%B9%89%E7%9A%84%E5%9B%B0%E5%A2%83-bafyreihw65m2deos74iaxxjis75j2kierk252khpxqvbdmfesunleq2seq&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;paul-graham-what-you&#34;&gt;Paul Graham, &lt;em&gt;What You&amp;rsquo;ll Wish You&amp;rsquo;d Known&lt;/em&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The only real difference between adults and high school kids is that adults realize they need to get things done, and high school kids don&amp;rsquo;t. That realization hits most people around 23. But I&amp;rsquo;m letting you in on the secret early. So get to work. Maybe you can be the first generation whose greatest regret from high school isn&amp;rsquo;t how much time you wasted.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;做那些能在未来带来更多选择的选择&lt;/li&gt;
&lt;li&gt;叛逆和服从一样愚蠢&lt;/li&gt;
&lt;li&gt;别忘了自己所感兴趣的事情&lt;/li&gt;
&lt;li&gt;现在就把事情做好、做完&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.paulgraham.com/hs.html&#34;&gt;原文&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;david-rand-the-psychology-of-misinformation&#34;&gt;David Rand, &lt;em&gt;The Psychology of Misinformation&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;什么因素让我们更加相信某条信息，&lt;strong&gt;不论这条信息真实与否&lt;/strong&gt;？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重复（repetition）&lt;/li&gt;
&lt;li&gt;与已知信念保持一定的一致性（consistency with existing beliefs）（也常和单一信源「圈养」出的个人偏好有关）&lt;/li&gt;
&lt;li&gt;被信任的信源（trusted sources）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;过去总谈论要对信息源做出筛选，希望尽可能从源头避免得到错误或受到污染的信息。构建起一个比较完善的喂食器之后，对待这些粗浅过滤的信息也依然需要同对待外界其他事物一样，保持距离和警惕。关注事件&lt;strong&gt;本身&lt;/strong&gt;的构成（时间地点人物）和叙述中是否存在加工等，关注上述从其他方面加深相信可能的因素。这些因素在逻辑论证时也常常被用来混淆视听。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://youtu.be/TiO77Pdec78&#34;&gt;原视频&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hybrid 是一个内容摘录计划。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>糕点铺</title>
        <link>https://fanrongbin.com/bakery/</link>
        <guid isPermaLink="true">https://fanrongbin.com/bakery/</guid>
        <pubDate>Fri, 28 Jan 2022 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;实习，住在团结湖，附近有一家糕点铺，晚上下班总要路过它。门口常常排着不长不短的队，几乎每次我都会装作心不在焉地往亮堂堂的橱窗一瞥，看看今天是绿豆酥饼卖得好，还是有新面包出炉。暗地里，我也决定找个时间也去排排队，买一盒试试看。今天是这个月最后一天班，坐上公交，想象那条刚认识没多久的路，先过路口，拐弯，直行，再走到对面，就能到糕点铺了。刷卡下车后我抬起头走路，可劲儿往对面瞧，却怎么也看不到那面墨绿色的招牌，一时以为是自己搞混了。怀疑的脚步越来越近，才发现关了灯、拉了铁门，赖以辨认的人群四散。今天已经是廿六了，后天回家，节后总要再过来。“所以总有机会吧”，这么想着，埋头往别处走了。&lt;/p&gt;
&lt;p&gt;过去好像也是这么想的，以为是沙子，总在那里。以为像钱，攒起来当然就越攒越多。现在，恍惚间意识到自己再回来买酥饼的希望过分渺茫，被这样一份不可知不可触的酥饼想象击碎。我化成饮食大欲碎在地上，拼不成什么要“把握住机会”和“活在当下”的道理戒律，如此这般活，由着很多事情错过。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>C&#43;&#43; 模版类重载流输入输出运算符</title>
        <link>https://fanrongbin.com/cpp-template-friend/</link>
        <guid isPermaLink="true">https://fanrongbin.com/cpp-template-friend/</guid>
        <pubDate>Fri, 31 Dec 2021 22:48:59 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;在 C++ 中只能通过友元函数来重载流输入输出运算符 &lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;。由于搭配模板类的使用，编译器可能在对应编译友元函数时&lt;strong&gt;无法确定&lt;/strong&gt;其为模版，需要事先声明。&lt;/p&gt;
&lt;h2 id=&#34;方法-1提前声明并使用--确认&#34;&gt;方法 1：提前声明并使用 &amp;lt;&amp;gt; 确认&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//需要提前进行声明，以使类中对友元函数的声明进一步确认函数为模板函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;complex&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; (ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;newout, &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;A&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;m);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;complex&lt;/span&gt;{ &lt;span style=&#34;color:#75715e&#34;&gt;//以复数类为例
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  	A real, image;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		complex(A a, A b)&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;real(a),image(b){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//在运算符 &amp;lt;&amp;lt; 后加入 &amp;lt;&amp;gt; 以帮助编译器进一步确定该友元函数为模板函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;friend&lt;/span&gt; ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;gt;&lt;/span&gt;(ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;newout, &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;A&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;m); 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; (ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;newout, &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;A&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;m){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	newout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.real&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.image&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; newout;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; a(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;a&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;} 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;方法-2在声明友元函数的同时定义友元函数&#34;&gt;方法 2：在声明友元函数的同时定义友元函数&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;complex&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		A real, image;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		complex(A a, A b)&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;real(a),image(b){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//在声明友元函数的同时定义友元函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;friend&lt;/span&gt; ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; (ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;newout, &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;A&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;m){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			newout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.real&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.image&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; newout;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; a(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;a&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;} 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;如果可以不使用友元函数&#34;&gt;如果可以不使用友元函数&lt;/h2&gt;
&lt;p&gt;如果模板类中的成员为公有，则完全不需要在模板类中声明友元。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;complex&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		A real, image; &lt;span style=&#34;color:#75715e&#34;&gt;//成员为公有
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		complex(A a, A b)&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;real(a),image(b){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//		friend ostream &amp;amp; operator &amp;lt;&amp;lt; &amp;lt;&amp;gt;(ostream &amp;amp;newout, const complex&amp;lt;A&amp;gt; &amp;amp;m);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//友元在此是不必要的
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;template&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;A&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;operator&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; (ostream &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;newout, &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;A&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;m){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	newout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.real&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;m.image&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; newout;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	complex&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; a(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;a&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;} 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;参考文章&#34;&gt;参考文章&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://isocpp.org/wiki/faq/templates#template-friends&#34;&gt;Why do I get linker errors when I use template friends? - Standard C++&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>昨天一直是今天，就像今天一直是明天</title>
        <link>https://fanrongbin.com/yesterday-is-today-is-tomorrow/</link>
        <guid isPermaLink="true">https://fanrongbin.com/yesterday-is-today-is-tomorrow/</guid>
        <pubDate>Fri, 31 Dec 2021 20:51:59 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;我想了很久，因为两年过得像一年。翻了翻手机相册，还是放弃了理顺今年“所作所为”的念头，意义不大。明天开始的新一年，似乎也将和过去的十二个月，在巨大的混凝土运送车里保持匀速搅拌，作为一大团不至于凝固的泥巴。&lt;/p&gt;
&lt;p&gt;已经对新冠脱敏，指不论是日增或新变种的消息，或者突然的封校封城，在生理和心理上不为所动。其实也不仅是疫情，整体上对很多事物都看开了很多，离开了很多过去被动或主动设下的困境，或者说从源头开始避免。现在常是这样的状态，在不相调和时，我先选择离开，停止消耗，这样才能更好地拥抱自己。&lt;/p&gt;
&lt;p&gt;但这种改变的确是懦弱的、畏怯的，是不能也不值得美化的。总不是束手无策的，必须承认。&lt;/p&gt;
&lt;p&gt;很恍然，对明年原来没有什么特别的期待，这样的一个好处是对目标和进度的把控拉得更近了，就像在触控板上将拇指和食指收拢再分开。还有是继续向内走。我觉得这个不仅仅是我，也是这两年之后许多人或多或少都会有的行动，面对自身的时间多了，出现从复杂往简单调转的诉求。另一个好处是停止对自己预期看涨，幻想多头，这个应该是影响最大的。&lt;/p&gt;
&lt;p&gt;困扰我许久的那种感受，在接连读了项飙老师的访谈录《把自己作为方法》以及《正午故事 1》中另一篇对谈后有了新的把握，“悬浮”与“错置”，都在慢慢展开的脱敏中渐渐从裹挟里剥离。还有就是大概保持着每三个月跟家人吵一次架的频率，把话讲开了。&lt;/p&gt;
&lt;p&gt;这么看来，今年的收获还挺大。&lt;/p&gt;
&lt;p&gt;今年听到比较有启发的播客节目有《新闻实验室》关于非虚构写作的第 17 期（《正午故事》郭玉洁，端传媒张洁平）和第 19 期（《正面连接》梁鸣），以及《晚风说》智堡 Mikko 和 Yachak 来的两期。无意中发现的《暮酒朝谈》，也给我很多帮助。&lt;/p&gt;
&lt;p&gt;今年听到最喜欢的新专辑有：Yu Su《Yellow River Blue》、Mndsgn《Rare Pleasure》、Daniel Avery《Together in Static》、Ultraísta《Sister》、hikaru yamada and metal casting jazz ensemble《moon》、李遐怡《4 ONLY》、Leon Bridges《Gold-Diggers Sound》、Tinashe《333》。&lt;/p&gt;
&lt;p class=&#34;right-date&#34;  align=&#34;right&#34;&gt;2021 年 12 月 31 日&lt;/p&gt;
&lt;hr&gt;
&lt;iframe src=&#34;https://embed.podcasts.apple.com/cn/podcast/%E6%9A%AE%E9%85%92%E6%9C%9D%E8%B0%88/id1521684443?itsct=podcast_box_player&amp;amp;itscg=30200&amp;amp;ls=1&amp;amp;theme=auto&#34; height=&#34;450px&#34; frameborder=&#34;0&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation&#34; allow=&#34;autoplay *; encrypted-media *;&#34; style=&#34;width: 100%;  overflow: hidden; border-radius: 10px; background: transparent;&#34;&gt;&lt;/iframe&gt;
&lt;hr&gt;
&lt;iframe allow=&#34;autoplay *; encrypted-media *; fullscreen *&#34; frameborder=&#34;0&#34; height=&#34;450&#34; style=&#34;width:100%;overflow:hidden;background:transparent;&#34; sandbox=&#34;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&#34; src=&#34;https://embed.music.apple.com/cn/album/yellow-river-blue/1546173813&#34;&gt;&lt;/iframe&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;什么是蹲下起身时眼前的洁白，什么是动物园的房间。不当一切真的命中注定，指认所有被构造的一切，要声称自己是罪人，在跌落旧关卡时搜集证据。这会是水的流动，这会是卡在鞋底细缝中风干的叶片碎末，这会是酸胀的小腿和脉冲。这就是真的，这就是假的，这一直是一场戏，我一直在剧院里走走停停。很多个分成好几段陆续死去，有些是谋杀，有些是自杀，有些出于意外，一个死了，另一个被迫接着出现，不是任何人的错，新的来了。草丛里经常种下过去拯救自己的毒药，送给兔子，他们就能帮忙消化成脚印，铺在路上，以至于再试图向前爬去时，手指所沾上的只是兔子的粪便、毒药的沉淀，膝盖磨出来的血就不会看得见，路看上去也不会太远。以至于又是一种曼妙的错觉，支撑这生死的流变。&lt;/p&gt;
&lt;p class=&#34;right-date&#34; align=&#34;right&#34;&gt;2021 年 12 月 20 日&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded>
      </item>
    
      <item>
        <title>C&#43;&#43; 中的拷贝构造函数：浅拷贝、深拷贝</title>
        <link>https://fanrongbin.com/cpp-copy-constructor/</link>
        <guid isPermaLink="true">https://fanrongbin.com/cpp-copy-constructor/</guid>
        <pubDate>Mon, 29 Nov 2021 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;h2 id=&#34;什么时候会调用拷贝构造函数&#34;&gt;什么时候会调用拷贝构造函数&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一个对象以&lt;strong&gt;值传递&lt;/strong&gt;的方式&lt;strong&gt;传入函数体&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;一个对象以&lt;strong&gt;值传递&lt;/strong&gt;的方式&lt;strong&gt;从函数返回&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;一个对象&lt;strong&gt;通过另一个对象&lt;/strong&gt;以进行&lt;strong&gt;初始化&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;默认拷贝构造函数浅拷贝&#34;&gt;默认拷贝构造函数：浅拷贝&lt;/h2&gt;
&lt;p&gt;即：将被拷贝对象的数据成员的值一一赋值给新创建的对象&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果数据成员中有指针成员
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;浅拷贝只是增加了一个指针指向已经存在的内存&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;则&lt;strong&gt;新对象的指针所指向的地址&lt;/strong&gt;与&lt;strong&gt;被拷贝对象的指针所指向的地址&lt;/strong&gt;相同&lt;/li&gt;
&lt;li&gt;则析构 delete 对象时会重复 delete 两次同一个内存空间而出错&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;实例&#34;&gt;实例&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Rect&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p;     &lt;span style=&#34;color:#75715e&#34;&gt;// 一指针成员
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect(){      &lt;span style=&#34;color:#75715e&#34;&gt;// 构造函数，p 指向堆中分配的一内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// new 动态分配
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;Rect(){     &lt;span style=&#34;color:#75715e&#34;&gt;// 析构函数，释放动态分配的内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(p &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; NULL){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;delete&lt;/span&gt; p; &lt;span style=&#34;color:#75715e&#34;&gt;// delete 释放 p 所指向的内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect2(rect1);   &lt;span style=&#34;color:#75715e&#34;&gt;// 拷贝 rect1 来构造 rect2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// 也即： Rect rect2 = rect1;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// 浅拷贝，将成员的值进行拷贝 rect2.p = rect1.p （地址 = 地址）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// 会出现错误
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// 在 delete 时既要 delete rect2.p 指向的空间，又要 delete rect1.p 指向的内存。但这是同一个内存（地址 = 地址），导致同一个内存被释放两次
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;同时还造成另外两个错误：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rect2.p&lt;/code&gt; 在初始化时新建的 &lt;code&gt;p&lt;/code&gt; 所指向的内存没被释放（因为构造函数新建之后，又直接值传递换了地址），造成内存泄漏&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rect2.p&lt;/code&gt;（指针） 和 &lt;code&gt;rect1.p&lt;/code&gt;（指针）指向同一块内存（同一个地址），任何一方的变动都会影响另一方&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;自行新建拷贝构造函数并使用深拷贝&#34;&gt;自行新建拷贝构造函数：并使用深拷贝&lt;/h2&gt;
&lt;p&gt;新增加一个指针，并申请一个新的内存。新指针指向新内存。&lt;/p&gt;
&lt;h3 id=&#34;实例-1&#34;&gt;实例&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Rect&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p;			&lt;span style=&#34;color:#75715e&#34;&gt;// 一指针成员
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect(){     &lt;span style=&#34;color:#75715e&#34;&gt;// 构造函数，p指向堆中分配的一内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect(&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; Rect &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;r){ &lt;span style=&#34;color:#75715e&#34;&gt;// 自行新建拷贝构造函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;;     &lt;span style=&#34;color:#75715e&#34;&gt;// 为新对象重新动态分配内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;r.p;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;// 或带括号 *p = *(r.p);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;Rect(){    &lt;span style=&#34;color:#75715e&#34;&gt;// 析构函数，释放动态分配的内存
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(p &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; NULL){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;delete&lt;/span&gt; p;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect2(rect1);		&lt;span style=&#34;color:#75715e&#34;&gt;// 拷贝 rect1 来构造 rect2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// 也即： Rect rect2 = rect1;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 深拷贝，创建新的 p 以及其所指向的空间，然后把值赋过去 *r.p = *rect1.p; 然后 *rect2.p = *r.p;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;不妨输出地址比对一下：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Rect&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;start new: &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;p&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl; &lt;span style=&#34;color:#75715e&#34;&gt;// 无参的新构造（初始化）时创建的内存空间
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect(&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; Rect &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;r){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;copy: &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;p&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl; 			&lt;span style=&#34;color:#75715e&#34;&gt;// 拷贝构造时创建的内存空间
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;r.p;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;Rect(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;(p &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; NULL){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;de: &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;p&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl; 		&lt;span style=&#34;color:#75715e&#34;&gt;// 所析构掉的内存空间
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;delete&lt;/span&gt; p;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;rect1.p&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl;		&lt;span style=&#34;color:#75715e&#34;&gt;// rect1.p 指向的内存空间
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Rect rect2(rect1);			&lt;span style=&#34;color:#75715e&#34;&gt;// 拷贝 rect1 来构造 rect2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;rect2.p&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;endl;		&lt;span style=&#34;color:#75715e&#34;&gt;// rect2.p 指向的内存空间
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出得：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;start new: 0x10582d930
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0x10582d930
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;copy: 0x10582f220
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0x10582f220
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;de: 0x10582f220
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;de: 0x10582d930
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Program ended with exit code: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.csdn.net/xunye_dream/article/details/77547438&#34;&gt;C语言中的位拷贝与值拷贝浅谈 - CSDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.csdn.net/lwbeyond/article/details/6202256&#34;&gt;C++拷贝构造函数详解 - CSDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      </item>
    
      <item>
        <title>中间地带</title>
        <link>https://fanrongbin.com/middle-zone/</link>
        <guid isPermaLink="true">https://fanrongbin.com/middle-zone/</guid>
        <pubDate>Sun, 12 Sep 2021 00:00:00 &#43;0800</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;有一块 R 总试图从中用手抠出贝壳来的空地，过去那上面总是留下许多干脆的血迹和笑嘻嘻的淤青。空地的周围，或者再把填成它的海沙化开一点，就成了一片永远的中间地带。&lt;/p&gt;
&lt;p&gt;那天明明是台风天，R 却说：“我要去散步。”于是他真的先从海边出发，踩上两脚的沙子，然后往那片空地走去。R 过去在这片中间地带上走过的路，大都单纯而寡淡，今天他走的这段路，还没一半，就让他的小腿有些发麻。&lt;/p&gt;
&lt;p&gt;R 又拐了一个弯，故意错过一个路口。&lt;/p&gt;
&lt;p&gt;再过不久台风好像就要到了，燥热烦闷的空气已经挨家挨户提醒海边的人们关好门窗，R 还有最后大概一百米左右的路，于是他停了下来，开始环顾四周，就像谷歌地图里那个黄色的街景小人。&lt;/p&gt;
&lt;p&gt;这里是卖祭祀用品的，对面是银行，前面是学校，右边就是公园，本来在银行旁边的书店搬到了后面，小区里的菜摊和肉摊不知道还在不在，再往前面就是那条修了好几百年的四车道，通往 R 的南方地带。&lt;/p&gt;
&lt;p&gt;“南方的南方地带，不知道是在哪里。”&lt;/p&gt;
&lt;p&gt;台风到了，R 就坐在路口凭空出现的石质长椅上。&lt;/p&gt;
&lt;p&gt;“燥热烦闷的空气终于要过去了。”&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;另一块空地上，竖着很多墓碑，不管底下的墓是否已经建成。这块空地是 R 留给自己的，他先在自己这块空地上埋葬一些人，之后才能在世界的周围送他们离开。那空地上的墓碑越来越多，以至于它已经不再像是树林中突然出现的一块平地，而像是树林本身。于是它成了一片永远的中间地带。&lt;/p&gt;
&lt;p&gt;R 知道今天已经快要来了，所以昨天就打包好了行李，给保温杯装上水，换上另一双鞋，戴好帽子。他坐在屋里的木凳上等着今天到来，方便他出发。&lt;/p&gt;
&lt;p&gt;今天到来后，他开始往那片空地走去。这条路已经变得再熟悉不过了。夏天他其实不常来，因为山路会变得泥泞。往往是秋天或者冬天，反正这里气温并不会很低，R 只需要关心路况。&lt;/p&gt;
&lt;p&gt;到了空地之后，R 把行李放下，在靠近东边的一块碑上刻好名字。&lt;/p&gt;
&lt;p&gt;在 R 刻完之后，今天就结束了。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Winslow Homer 温斯洛·霍默</title>
        <link>https://fanrongbin.com/winslow-homer/</link>
        <guid isPermaLink="true">https://fanrongbin.com/winslow-homer/</guid>
        <pubDate>Sun, 08 Aug 2021 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;blockquote&gt;
&lt;p&gt;发布于 &lt;a href=&#34;https://matters.news/@laefan/%E7%9C%8B%E7%95%AB-winslow-homer-%E6%BA%AB%E6%96%AF%E6%B4%9B-%E9%9C%8D%E9%BB%98-bafyreifjxdssns3s6xkf6t7lgk6jaxjrpxg4semolhembefe4o3mi2n4ja&#34;&gt;Matters.news&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;首要的是，关注你自己最真实、直观冒出来的想法与情感。花上哪怕只是三五秒钟，先去观看和感受作品的本身。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-1.webp&#34; alt=&#34;Prout&amp;rsquo;s Neck, Breakers&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Prout&amp;rsquo;s Neck, Breakers&lt;/em&gt;, 1883, Winslow Homer, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.artic.edu/artworks/16815/prout-s-neck-breakers&#34;&gt;The Art Institute of Chicago&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;很偶然，从这幅画初次得知霍默大名，之后开始继续寻找他的画作，感叹于他融会贯通的技艺和想法。我其实不曾在阴天见过这样蓝的海浪，也许最接近画中景象的一次是在乔伊斯博物馆前的海角处。大概是被这种未曾见过的模样吸引着。&lt;/p&gt;
&lt;p&gt;除了十分显然的深蓝、亮蓝叠加使用以塑造前后关系，还能看到他多利用了纸张本身的白色，例如下半部分近礁石的部分。这也是水彩常用的方法。整幅画也给我一种非常轻快的感觉，倒不是因为画面主体的海浪，而是它前侧用或大或小的色块柔和铺排开的、礁石上附着的细浪。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-2.webp&#34; alt=&#34;Paul Morphy, the Chess Champion&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Paul Morphy, the Chess Champion&lt;/em&gt;, 1859, Winslow Homer, Print, wood engraving&lt;/p&gt;
&lt;p&gt;Credit line: The Museum of Fine Arts, Houston, The Mavis P. and Mary Wilson Kelsey Collection of Winslow Homer Graphics&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/paul-morphy-the-chess-champion-winslow-homer/6AE0gmpNUzDrzA&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;温斯洛·霍默（Winslow Homer, 1836-1910）出生于波士顿，童年在剑桥长大，父母皆为新英格兰移民。父亲是典型的商人，而母亲有着画水彩的天赋异禀，顺理成章地成为霍默的“第一任老师”。19 岁高中毕业，父亲安排他去做广告平板印刷。就这样重复进行日常工作近两年后，他开始为一些杂志刊物制作插画，在当时那个年代也意味着就是木版画。霍默的线条感和对黑白分明的把握很好，不几笔就能把最鲜明的特点勾勒出来，如上图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-3.webp&#34; alt=&#34;Mounted Bugler&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mounted Bugler&lt;/em&gt;,1862, Winslow Homer, Graphite, brush and gray wash on off-white paper&lt;/p&gt;
&lt;p&gt;Credit line: Gift of Charles Savage Homer, Jr.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/mounted-bugler-winslow-homer-american-1836%E2%80%931910/FgF0ghbzo-z6dw&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-4.webp&#34; alt=&#34;Home, Sweet Home&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Home, Sweet Home&lt;/em&gt;, 1863, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Copyright: Patrons&amp;rsquo; Permanent Fund&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/home-sweet-home/RwErgtlB6qAFTg&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;直到 1863 年他才正式进入国家设计学院（现国家学院博物馆和学校，National Academy Museum and School）学习绘画基础。美国内战期间，他被长期供图的一家报社送去前线，留下了许多战地场景与人物的插画手稿，除战争中的将士名人肖像，也有纷乱中的妇女儿童和留下的残迹。这一段时期以及之后的五到十年，也是霍默从单纯的插画师拓展成画家的时期，我们可以看见其绘画的个人风格已经渐趋成熟，例如选材的角度比起激烈、冲突的场景而言，更常描绘日常与闲暇，主题和所传达的态度也更为暧昧和难以捉摸。画面用色和明暗的对比十分优雅，线条的运用也更加果敢，构图更加简练。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-5.webp&#34; alt=&#34;Croquet Scene&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Croquet Scene&lt;/em&gt;, 1866, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Credit Line: The Art Institute of Chicago, Friends of American Art Collection; Goodman Fund, 1942.35&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/croquet-scene-winslow-homer-american-1836%E2%80%931910/xgGjRZZn3Qn5nA&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-6.webp&#34; alt=&#34;Art-Students and Copyists in the Louvre Gallery, Paris&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Art-Students and Copyists in the Louvre Gallery, Paris&lt;/em&gt;, 1868, Winslow Homer, Print, wood engraving on wove paper&lt;/p&gt;
&lt;p&gt;Object Credit Line: Davison Art Center, Wesleyan University. Purchase funds, 1958&lt;/p&gt;
&lt;p&gt;Image Credit Line: &lt;a href=&#34;http://www.wesleyan.edu/dac/openaccess&#34;&gt;Open Access Image from the Davison Art Center, Wesleyan University (http://www.wesleyan.edu/dac/openaccess)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/art-students-and-copyists-in-the-louvre-gallery-paris-winslow-homer/qwFCQK-sxPsOGQ&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-7.webp&#34; alt=&#34;Study for Eagle Head, Manchester, Massachusetts&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Study for Eagle Head, Manchester, Massachusetts&lt;/em&gt;, 1869, Winslow Homer, Painting, oil on wood&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;http://www.metmuseum.org/art/collection/search/11142&#34;&gt;The Metropolitan Museum of Art&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-8.webp&#34; alt=&#34;Eagle Head, Manchester, Massachusetts (High Tide)&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Eagle Head, Manchester, Massachusetts (High Tide)&lt;/em&gt;, 1870, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.metmuseum.org/art/collection/search/11117&#34;&gt;The Metropolitan Museum of Art&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1867-1868 年他在巴黎短住一年，这段期间他仍继续为报社供图，主题转向描述巴黎人的生活，同时作风景绘画的练习。此时亦正值印象派兴起之初，他也展示出如何更好用绘画表现自然光影的探讨，在用笔上也更加放松。但是否能够确证其受到如马奈、莫内等印象派画家的影响，我们无从得知。他的绘画风格，大角度来说是站在写实的基础上去展示光线。&lt;/p&gt;
&lt;p&gt;在上两幅画作的比较中，我们可以发现霍默对阳光和天气的捕捉，这反映在浅滩处蓝色与绿色海浪和远处海面的对比，以及三个人物身上向阳处背阳处的色彩。高度饱和、反差明显、边缘轮廓准确充实，这样的用色和线条风格从一至终，也是最吸引我的地方。中部正在拧水的女子在强日光的照射下，衣服变湿的重量感也有一定体现。&lt;/p&gt;
&lt;p&gt;我们还可以从 &lt;em&gt;Eagle Head, Manchester, Massachusetts (High Tide), 1870&lt;/em&gt; 创作的时代背景中窥见霍默关注的主题。正在快步工业化的美国，到海滩游泳、晒太阳是当时工人们的新潮休闲。三位女子身着如此厚重的衣物下水走了一遭，前两位亦未注意社会所定义的「仪态」，掀开长裙、露出小腿，当时即有评论称「exceedingly red-legged and ungainly」。但我们在绘画中难道不能呈现这样的人物吗？她们是如此的鲜活。&lt;/p&gt;
&lt;p&gt;大都会博物馆的播客中，&lt;a href=&#34;https://itunesu.itunes.apple.com/feed/id430943000&#34;&gt;有一期&lt;/a&gt;（Author Elizabeth Strout Discusses Two Paintings by Winslow Homer）邀请到了普利策小说奖得主伊丽莎白·斯特劳特（Elizabeth Strout, 1956-）分享她在这幅画中所想象出的故事。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-9.webp&#34; alt=&#34;The Country School&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Country School&lt;/em&gt;, 1871, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://commons.wikimedia.org/wiki/File:Winslow_Homer_-_The_Country_School.jpg&#34;&gt;Wikimedia Commons&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1870 年代，霍默致力于描绘田园农村的质朴生活，例如小孩子的童趣嬉闹、年轻人的热恋和大人们的劳作。可不去关注工业化又到什么阶段了，逆行。我们可以在上副画作中捕捉许多细节，例如学生神色中的专注、讲台上的鲜花、挂在黑板边上的帽子、窗布的轻盈和透过窗栅的光影。中部偏左翘起腿的、讲台右侧合看一本书的、画面右部正哭泣着的小男孩和望着他的小女孩，实在是形形色色。&lt;/p&gt;
&lt;p&gt;1875 年后他不再作商业插画，希望能凭绘制油画和水彩维持生计。他最有名的作品 &lt;em&gt;Breezing Up (A Fair Wind), 1873-1876&lt;/em&gt; 亦在这期间绘成。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-10.webp&#34; alt=&#34;Breezing Up (A Fair Wind)&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Breezing Up (A Fair Wind)&lt;/em&gt;, 1873-1876, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://commons.wikimedia.org/wiki/File:Winslow_Homer,_Breezing_Up_(A_Fair_Wind),_1873-1876,_NGA_30228.jpg&#34;&gt;Wikimedia Commons&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;当时的评论对这幅画赞赏有加，多为与霍默之前的画作相比认为要出色。但我初见这幅画作时并不懂它为何得以成为「最有名」。是船与船帆的动态感吗？是船与浪之间精妙的推移和被搅乱的倒影吗？是它各方面都很平衡恰当？想来，或是因为其被解读的意义要大于其本身吗？乘风破浪的 19 世纪美国人。在艺术上，他们应该怎么在大杂烩中「孕育本土」、在本土中「重建本土」？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Even the critic from the &lt;em&gt;Art Journal&lt;/em&gt;, who thought the picture typical of Homer&amp;rsquo;s &amp;ldquo;hasty mode of treatment,&amp;rdquo; found it winning nevertheless: &amp;ldquo;It may be accepted as the most spirited of his works; the waves roll, the boat flies swiftly before the wind, and the group of happy boys are felicitous in every pose.&amp;rdquo; Two others concurred: &amp;ldquo;It is painted in his customary coarse and negligé style, but suggests with unmistakable force the life and motion of a breezy summer day off the coast&amp;hellip;.There is no truer or heatier work in the present exhibition.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&#34;https://www.nga.gov/content/dam/ngaweb/research/publications/pdfs/american-paintings-19th-century-part-1.pdf&#34;&gt;American Paintings of the Nineteenth Century, Part I&lt;/a&gt;&lt;/em&gt;, pages 312-318, National Gallery of Art, In-gallery publication, free to download online&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-11.webp&#34; alt=&#34;Blackboard&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Blackboard&lt;/em&gt;, 1877, Winslow Homer, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.nga.gov/collection/art-object-page.71552.html&#34;&gt;National Gallery of Art&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-12.webp&#34; alt=&#34;Schooner At Sunset&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Schooner at Sunset&lt;/em&gt;, 1880, Winslow Homer, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://hvrd.art/o/299942&#34;&gt;Harvard Art Museum&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1873 年夏之后他开始将水彩作为常用工具，笔触有的放矢，画面易读。有关注细节的如 &lt;em&gt;Blackboard, 1877&lt;/em&gt;，衣着上的格子花纹、布面的褶皱、后背的绑带以及教师并不愉悦的神情。有非常印象派的如 &lt;em&gt;Schooner at Sunset, 1880&lt;/em&gt;，落日与即将入夜的天空互相切开，水面上的波光与涟漪处理得精致。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-13.webp&#34; alt=&#34;Two Figures by the Sea&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Two Figures by the Sea&lt;/em&gt;, 1882, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://artsandculture.google.com/asset/two-figures-by-the-sea-winslow-homer/IQGb5h7OYzTtrw&#34;&gt;Google Arts &amp;amp; Culture&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1881-1882 年，霍默在英格兰东北部的一个海边小镇度过。他更多关注劳动人民个体身上的英雄主义。抛开过于宏大的集体叙事后，反而打开了更加广阔的天地。其画作变得更加沉静，思考也更加深邃。这样的风格一直延续到之后。过去常作为题材的衣着时尚女子，如今更多转向塑造无私无畏的妇女。1883 年他搬到缅因州海边，整个 1880 年代中期都把精力放在海边景象与人物的创作上，除油画和水彩，他还尝试制作蚀刻版画。（更多关于他的蚀刻版画信息&lt;a href=&#34;http://oldprintshop.com/artists/3931&#34;&gt;可见此&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-14.webp&#34; alt=&#34;Undertow&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Undertow&lt;/em&gt;, 1886, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.clarkart.edu/artpiece/detail/undertow&#34;&gt;The Clark Art Institute&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这幅画戏剧性很足，在人物动作中格外显著，肌肉线条和人物比例上俨然是古希腊雕塑的架势。这样夸张的手法，无法让人忽略身体中蕴含的力量。水光与迸溅处的浪花刻画已臻于完美，占画面三分之二的海浪背景也形成了一定的压抑感，以突出海的力量意志。&lt;/p&gt;
&lt;p&gt;一连串的海边主题绘画，评论家们称其为「带着画笔的隐士（a hermit with a brush）」，但商业上不为大众所服，画作售价未达预期。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-15.webp&#34; alt=&#34;A Garden in Nassau&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A Garden in Nassau&lt;/em&gt;, 1885, Winslow Homes, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;1884-1885 年的冬季，霍默在佛州、古巴和巴哈马群岛度过。受世纪杂志（Century Magazine）所托，完成了一系列的具有热带风情的水彩画。色彩更为明亮，所体现的情感也更显欢快。和他早年的作品相比，色彩在冷暖上更加分明，而不是一味的偏向于符合日光的暖，表达场景上也就有了更多语言。有人比喻道，他的这次旅程如同高更去往塔希提岛那般，给自己带来陌生与新奇。而在阿第伦达克山脉附近村庄的夏日之旅，也给他的绘画增添不少豁达与奔放。经此几行，他更像是找到了在冷静与轻快转换的滚轮开关。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-16.webp&#34; alt=&#34;Fox Hunt&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fox Hunt&lt;/em&gt;, 1893, Winslow Homer, Painting, oil on canvas&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.pafa.org/museum/collection/item/fox-hunt&#34;&gt;Pennsylvania Academy of the Fine Arts&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1890 年后霍默创作了许多与自然中「捕猎」相关的作品，除人类的捕猎外，也包含着动物间的捕猎。正值达尔文进化论阐发、兴盛，时人称其画作表达的便是「物竞天择」。上幅画作中即一场老鹰对狐狸的捕猎，刚上架就被宾夕法尼亚美术学院买下，这也是他的画作首次藏录于主要博物馆。情节性解读这里姑且略去。值得注意的还有他所选择的视角和构图。起初我以为是选取了一个像是几乎卧倒在远处拿长焦推前去拍摄的视角，但我们能够看见老鹰的背部，说明其实是俯视。这在西方绘画里并不常见，更像是他对日本浮世绘的借鉴。1900 年后他的经济来源渐趋稳定。&lt;/p&gt;
&lt;p&gt;霍默的晚年依然热衷于创作海景画，毕竟，他可是这个领域的能者。能者多劳。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-17.webp&#34; alt=&#34;The Bather&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Bather&lt;/em&gt;, 1899, Winslow Homer, 1899, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.metmuseum.org/art/collection/search/11109&#34;&gt;The Metropolitan Museum&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;好的作品为什么能给人以震慑力？为什么能被人口耳相传、收藏至今？大都离不开对那些纯粹的、美好的事物进行追问。这种追问可以是现实主义的无限观察，可以是现代主义的打破重构，它可以是无数的一切，但它一定基于非常高的人文起点。平白展示也好，挖掘黑暗也罢，当创作想要去往「能使更多人都接受和同意」的路径时，就要自己权衡好该怎么去体现「美中不足」，就要在情趣和意味上，探讨如何才能做到先进而不造成疏离感。在这中间地带如鱼得水的霍默，无疑是成功的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-18.webp&#34; alt=&#34;Taking on Wet Provisions (Schooner Marked Newport, K. W.)&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Taking on Wet Provisions (Schooner Marked Newport, K. W.)&lt;/em&gt;, 1903, Winslow Homer, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://www.metmuseum.org/art/collection/search/11143&#34;&gt;The Metropolitan Museum&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/wh-19.webp&#34; alt=&#34;Rocky Shore, Bermuda&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rocky Shore, Bermuda&lt;/em&gt;, 1900, Winslow Homer, Painting, watercolor on wove paper&lt;/p&gt;
&lt;p&gt;Source: &lt;a href=&#34;https://collections.mfa.org/objects/5016&#34;&gt;Museum of Fine Arts Boston&lt;/a&gt;&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>雪</title>
        <link>https://fanrongbin.com/snow-2/</link>
        <guid isPermaLink="true">https://fanrongbin.com/snow-2/</guid>
        <pubDate>Tue, 01 Dec 2020 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/s-1.webp&#34; alt=&#34;alt Cars, running.&#34;&gt;&lt;/p&gt;
&lt;p&gt;见玻璃门是水淋淋的，以为要为没带伞而苦恼一阵子。推开门，却是我到北京之后下的第一场能看见的雪。急忙把帽子带好，外套拉链拉上，收拾收拾仪容仪表。&lt;/p&gt;
&lt;p&gt;而后我就迎着风往学校走回，它们也顺理成章地拍打在我的额头、眼镜、口罩和衣服上，没有重量，但也没有温度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/s-2.webp&#34; alt=&#34;alt Lights, dropping.&#34;&gt;&lt;/p&gt;
&lt;p&gt;踩下去是碎的，噼里啪啦响。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>首先是不要忘记</title>
        <link>https://fanrongbin.com/first-of-all-dont-forget/</link>
        <guid isPermaLink="true">https://fanrongbin.com/first-of-all-dont-forget/</guid>
        <pubDate>Mon, 13 Jul 2020 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;在床上坐下，挺起腰板直起背，“清理公众号列表”的念头忽的一闪，立即抓住，生怕又让它溜了过去，成为日后躺在 Inbox 里安稳过日子的“有空再做”。&lt;/p&gt;
&lt;p&gt;于是有意无意的发现自己还关注着初中一位语文老师的公众号，但上次发文已经是六年前了，一段不长不短的轨迹，我走完初高中，但他却在中途永久地被揉成零散的碎片，散落在它生活过的痕迹和仍存留着记忆的人们身上。&lt;/p&gt;
&lt;p&gt;高中的杂乱的确把我欢笑着度过的初中记忆冲淡了很多，而且我没有拼命留下什么记忆的习惯。如果记忆还准确的话，应该是在初三时很短暂地上了几周他的语文培优课。他不高的个子，风趣又真挚的讲课方式，踏实的内容，以及有条理的阐述。培优课很快结束了，但他却被我列进了心里那一撮神圣得不可替代的人里。不过，我想他是不大记得有这样一个皮肤很黑，上课总爱托着下巴的小同学曾经很刻苦地在他课上做笔记。&lt;/p&gt;
&lt;p&gt;当我得知他罹患白血病时是怎样的一番惊讶和伤感，现在也很模糊了，但此时我又在这之中的确触碰着他过去不过十分简单就留下的印痕。&lt;/p&gt;
&lt;p&gt;我从来没有像此时一样如此害怕忘记，即使我一直很擅长忘记和被忘记。&lt;/p&gt;
</content:encoded>
      </item>
    
      <item>
        <title>初探 Fluent Design System</title>
        <link>https://fanrongbin.com/glimpse-of-fluent-design/</link>
        <guid isPermaLink="true">https://fanrongbin.com/glimpse-of-fluent-design/</guid>
        <pubDate>Sun, 14 May 2017 00:00:00 &#43;0000</pubDate>
        <author>hi@rongb.in (Rongbin Fan)</author>
        <description></description>
        <content:encoded>&lt;p&gt;微软在 Build 2017 Day Two 主旨演讲中正式宣布 Fluent Design System，即先前传言为 Project Neon 的设计语言。通用，可拓展，横跨多种设备，可以说微软这一设计语言就是为 Mixed Reality 的发展做好准备。该设计语言涵盖五种理念，分别是 Light, Depth, Motion, Material, Scale。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-1.webp&#34; alt=&#34;microsoft-fluent-design-elements.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;宣传视频&#34;&gt;宣传视频&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://fluent.microsoft.com&#34;&gt;官方网页&lt;/a&gt; （无法在以中文为界面语言的 Chrome 正常浏览）| &lt;a href=&#34;http://v.youku.com/v_show/id_XMjc1ODYzMjcwMA==.html&#34;&gt;优酷&lt;/a&gt; (来自 Livesino)&lt;/p&gt;
&lt;h2 id=&#34;light-光&#34;&gt;Light (光)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-2.webp&#34; alt=&#34;2040_VRG0158.jpg&#34; title=&#34;via The Verge&#34;&gt;&lt;/p&gt;
&lt;p&gt;利用光线引导用户使用，增强现实感，使得目标和行动更加集中和准确。将光作为设计理念的一部分，或许是一种高出平面、回归自然的目的。实际应用中，设计人员需要充分考虑场景光线排布和导向性操作是否可行，需要基于用户心理的考察得出最终的设计。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Light has a way of drawing our attention. It’s warm and inviting; it’s fluid and purposeful. Light creates atmosphere and a sense of place, and it’s a practical tool to illuminate information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;引用部分是微软官方的定义。&lt;/p&gt;
&lt;p&gt;光线引起人们注意，而其特点也正是温和友好、流畅、目的性明确。光能创造氛围更能营造范围，是阐述信息的实用工具。&lt;/p&gt;
&lt;h2 id=&#34;depth-深&#34;&gt;Depth (深)&lt;/h2&gt;
&lt;p&gt;Material Design 为 UI 元素引入高度。高度将帮助用户了解每个元素的相对重要性，让他们能够集中于手边的工作，即引入了 Z 轴这一属性。Fluent Design System 中体现为 Depth，在微软尚未公布更多细节前，我们可以参考 Material Design 中相关的规范得出初步思考。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-3.webp&#34; alt=&#34;whatismaterial_3d_elevation1-1024x647.png&#34; title=&#34;via Android Developers&#34;&gt;&lt;/p&gt;
&lt;p&gt;不同高度下(Z 值)的阴影。&lt;/p&gt;
&lt;p&gt;Fluent Design System 的出现就是为了打破原有仅适用于平面的设计语言 (Metro UI)，引入三维空间的设计理念便于在今后发展 VR/AR/MR，实现统一可操作的设计规范。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Think about the frame that contains your information. Now break it apart, and reinvent how things relate to each other within a more layered, physical environment. This is how we’ll keep people in their flow – by giving them more space.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;打破原有二维框架，在层次区分度更高的物理环境（三维空间）中重新思考事物中的联系。&lt;/p&gt;
&lt;h2 id=&#34;motion-动&#34;&gt;Motion (动)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-4.webp&#34; alt=&#34;2040_VRG0159.jpg&#34; title=&#34;via The Verge&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Think of motion design like a movie. Seamless transitions keep you focused on the story, and bring experiences to life. We can invite that feeling into our designs, leading people from one task to the next with cinematic ease.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;微软认为，动效的作用在于带给用户如同观看电影般的沉浸感，做到无缝过渡、由虚转实，使用户轻松、愉快地完成多项任务。在我看来，动效一词需要分真假。「真动效」无限接近生活，能够唤起用户对物理环境下该操作引起动效的感知，因此也可叫「拟物动效」。「假动效」即对二维动画进行空间上的拓展，主要作用是提示用户完成了某一操作，并且能通过细节优化给予愉悦感。&lt;/p&gt;
&lt;h2 id=&#34;material-材&#34;&gt;Material (材)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-5.webp&#34; alt=&#34;2040_VRG0160.jpg&#34; title=&#34;via The Verge&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The things that surround us in the real world are sensory and invigorating. They bend, stretch, bounce, shatter, and glide. Those material qualities translate to digital environments, making people want to reach out and touch our designs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;真实世界中存在着「感知」和「活力」。在数字环境中运用恰当的材料，带给用户想去触碰的想法，增加了操作的可能性，是和 Light 一样体现着以自然为设计基础的理念。&lt;/p&gt;
&lt;h2 id=&#34;scale-维&#34;&gt;Scale (维)&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://img.fanrongbin.com/m-6.webp&#34; alt=&#34;2040_VRG0161.jpg&#34; title=&#34;via The Verge&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The industry lives and breathes 2D design. Now’s the time to expand our toolkit for more dimensions. We’re scaling our design system from 0D to 3D, inviting innovation across new forms. And we’re looking to you to help us imagine this new world.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;之所以把 Scale 译作「维」，是因为这一点集中体现了 Fluent Design System 最终的作用——实现从零维到三维的，多种场景适用的设计规范，利用设备提供并拓展面向多维度的体验。&lt;/p&gt;
</content:encoded>
      </item>
    

		<follow_challenge>
		    <feedId>170080560893726720</feedId>
		    <userId>99216622632586240</userId>
		</follow_challenge>
  </channel>
</rss>
