<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2025-09-07T05:27:50+00:00</updated><id>/feed.xml</id><title type="html">张星海的个人博客-星博客-前端开发</title><subtitle>张星海的文档,专注前端技术总结,记录生活点滴,网站建设,个人博客搭建,曾经的大连,未来的武汉,分享朴素、实用的前端技术</subtitle><entry><title type="html">月亮</title><link href="/journal/2025/08/09/the-bright-moon-08-08.html" rel="alternate" type="text/html" title="月亮" /><published>2025-08-09T00:00:00+00:00</published><updated>2025-08-09T00:00:00+00:00</updated><id>/journal/2025/08/09/the-bright-moon-08-08</id><content type="html" xml:base="/journal/2025/08/09/the-bright-moon-08-08.html"><![CDATA[<p>月亮升起，明亮如日，
其為自然，不足掛齒。
凝望久矣，始覺神秘，
低頭回味，驚恐忽至。
不能言傳，惟可意會，
億萬年月，如是終始。
有如鬼魂，操弄無形，
使物百態，生死不止。</p>

<p><img src="https://pbs.twimg.com/media/Gx2JfmWbsAEvnqA?format=jpg&amp;name=medium" alt="" /></p>]]></content><author><name>Singhi</name></author><category term="journal" /><summary type="html"><![CDATA[月亮升起，明亮如日， 其為自然，不足掛齒。 凝望久矣，始覺神秘， 低頭回味，驚恐忽至。 不能言傳，惟可意會， 億萬年月，如是終始。 有如鬼魂，操弄無形， 使物百態，生死不止。]]></summary></entry><entry><title type="html">歡迎新星際訪客：A11pl3Z 或 3I/ATLAS</title><link href="/journal/2025/07/04/the-interstellar-in-2025-copy.html" rel="alternate" type="text/html" title="歡迎新星際訪客：A11pl3Z 或 3I/ATLAS" /><published>2025-07-04T00:00:00+00:00</published><updated>2025-07-04T00:00:00+00:00</updated><id>/journal/2025/07/04/the-interstellar-in-2025%20copy</id><content type="html" xml:base="/journal/2025/07/04/the-interstellar-in-2025-copy.html"><![CDATA[<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://miro.medium.com/v2/resize:fit:1400/format:webp/1*sAxXZgiOP2lp2xIIuu-OQA.jpeg')">
    
    <img class="photo__entity lazy" alt="新星際物體 A11pl3Z 穿越內太陽系的推斷軌跡。 (圖片來源：Tony Dunn)" title="新星際物體 A11pl3Z 穿越內太陽系的推斷軌跡。 (圖片來源：Tony Dunn)" src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*sAxXZgiOP2lp2xIIuu-OQA.jpeg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">新星際物體 A11pl3Z 穿越內太陽系的推斷軌跡。 (圖片來源：Tony Dunn)</div>
  
</div>

<p>2025 年 7 月 2 日清晨兩點，我醒來準備接受 Coast to Coast 電台長達兩小時的採訪，討論我對星際物體的研究。這次時機非常湊巧，因為就在一夜之間，X 和 Bluesky 上出現了關於發現新星際物體 A11pl3Z 的傳聞。</p>

<p>來自太陽系外的物體，其速度會高於脫離太陽系所需的最低速度，在地球附近約為每秒 42 公里——比高速公路的速限快了一千倍——以此作為標誌。第一個被報導的星際物體 <strong>‘Oumuamua</strong> 既不像熟悉的彗星，也不像熟悉的小行星。據推測，它呈盤狀，並表現出非重力加速度，這增加了其可能是人造物體的可能性。第二個被報導的星際物體 <strong>Borisov</strong> 則看起來像一顆熟悉的天然彗星。那麼，下一個出現在星際輪盤上的物體會是異常的還是熟悉的呢？</p>

<p>國際天文學聯合會小行星中心於 2025 年 7 月 1 日將 A11pl3Z 加入近地物體確認清單，NASA/JPL CNEOS 網站上也有類似的列表。A11pl3Z 軌跡的初步擬合表明其離心率約為 6，雙曲線速度約為每秒 66 公里，源自星際。有趣的是，這與我一年前與 Morgan MacLeod 發表的一篇關於矮星將岩石行星義大利麵化（spaghettification）產生星際物體的論文中預測的星際物體典型速度相符。</p>

<p>A11pl3Z 軌道的推算顯示，它距離地球最近的距離將是地日距離（=天文單位，簡稱 AU）的 2.4 倍，發生在 2025 年 12 月 17 日，並且在 2026 年 3 月 10 日左右會非常接近木星。這是因為 A11pl3Z 接近太陽時，地球恰好位於其繞太陽軌道的另一側。預計它距離太陽最近的距離約為 1.4 AU，發生在 2025 年 10 月 27 日，比它經過火星 0.4 AU 範圍內晚三週。截至 2025 年 7 月 2 日，A11pl3Z 距離地球約 3.8 AU，距離太陽約 4.8 AU。</p>

<p>業餘天文學家 Sam Deen 在 <a href="https://www.virtualtelescope.eu/2025/07/02/the-new-interstellar-object-a11pl3z-online-observation-3-july-2025/">ATLAS 巡天</a> 中發現了 A11pl3Z 於 2025 年 6 月 25 日至 29 日的早期影像，這幾乎證實了它源自星際。業餘天文學家 Filipp Romanov 將來自智利 iTelescope.Net T72（0.51 米 f/6.8 反射鏡 + CCD）的 5 張 20 秒影像疊加，檢測到 G 星等為 17.5。NASA/JPL 列出的 H 星等為 12，表明其直徑約為 20 公里，比 6600 萬年前導致地球非鳥類恐龍滅絕的希克蘇魯伯撞擊器略大。更好的數據將有助於精確估計 A11pl3Z 的大小以及軌道參數。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://miro.medium.com/v2/resize:fit:1278/format:webp/1*2DTHd2ZnEM5nfGpq7woJ6g.jpeg')">
    
    <img class="photo__entity lazy" alt="圖說：由 Filipp Romanov 於 2025 年 7 月 2 日在智利使用 iTelescope.Net T72 拍攝的 A11pl3Z 影像。" title="圖說：由 Filipp Romanov 於 2025 年 7 月 2 日在智利使用 iTelescope.Net T72 拍攝的 A11pl3Z 影像。" src="https://miro.medium.com/v2/resize:fit:1278/format:webp/1*2DTHd2ZnEM5nfGpq7woJ6g.jpeg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">圖說：由 Filipp Romanov 於 2025 年 7 月 2 日在智利使用 iTelescope.Net T72 拍攝的 A11pl3Z 影像。</div>
  
</div>

<p>透過韋伯望遠鏡觀測 A11pl3Z，該望遠鏡位於距離地球地面望遠鏡一百萬英里的位置，將能透過視差極其精確地偵測任何非重力加速度，正如我與我的學生 Sriram Elango 在最近的一篇論文中所展示的。韋伯望遠鏡還能測量 A11pl3Z 釋放的紅外光通量和表面溫度——結合其已知的視差距離，可用於推斷其表面積。如果該物體正在翻轉，則可以利用其沿視線方向投影的表面積變化，來繪製物體的三維形狀。物體已知的尺寸、形狀以及反射的太陽光通量將使我們能夠推斷其對太陽光的表面反照率（反射係數）。我們並未對 <strong>‘Oumuamua</strong> 進行直接的面積、表面溫度或反照率測量。</p>

<p>如果 <strong>A11pl3Z</strong> 的亮度源於以約 10% 的典型反照率反射太陽光，那麼它 20 公里的直徑約是 <strong>‘Oumuamua</strong> 估計長度的 100-200 倍（比 <strong>‘Oumuamua</strong> 的寬度大一千多倍），並且約是彗星 <strong>Borisov</strong> 核心的 50-100 倍。如果這三個物體都是岩石，那麼 <strong>A11pl3Z</strong> 的質量將比 <strong>‘Oumuamua</strong> 大一千萬倍以上，並且至少比 <strong>Borisov</strong> 的核心質量大十萬倍。</p>

<p>這令人驚訝，因為通常預期大質量物體會更為罕見。根據太陽系主小行星帶的數據，預計在每個達到 <strong>A11pl3Z</strong> 質量規模的物體出現時，會同時有數百萬個類似 <strong>‘Oumuamua</strong> 規模的物體。</p>

<p>那麼，為何我們在發現 <strong>A11pl3Z</strong> 之前沒有觀測到數百萬個 <strong>‘Oumuamua</strong> 規模的物體呢？</p>

<p>當然，我們可能錯過了其中許多，但不太可能是數百萬個。也可能是星際岩石的尺寸分佈是雙峰的，峰值約在直徑 20 公里處。最有可能的可能性是 <strong>A11pl3Z</strong> 是一顆彗星，我們偵測到的是其彗髮（由氣體和塵埃組成）反射的太陽光，而其主要質量則包含在一個小得多的核心中。事實上，小行星中心於 2025 年 7 月 2 日發布的新通知將該物體標記為 <strong>3I/ATLAS</strong>，正式確認其為星際物體，並暗示了彗髮存在的初步證據。彗星通常分佈在行星系統的外圍，並且很容易被經過的恆星撞擊而進入星際空間，因為它們與宿主恆星的引力束縛較為鬆散。其他更具推測性的可能性是 <strong>3I/ATLAS</strong> 的反照率遠大於一般情況，或者它會自行發光。在彗星的情況下，<strong>3I/ATLAS</strong> 的性質將更接近彗星 <strong>Borisov</strong>，而與 <strong>‘Oumuamua</strong> 大相徑庭，因為 <strong>‘Oumuamua</strong> 並未顯示彗髮，並且具有極端的盤狀形狀，其反射的太陽光量在每 8 小時的翻轉中變化了十倍。</p>

<p>根據其運動方向，<strong>3I/ATLAS</strong> 似乎正以相對於地球軌道平面 175 度的逆行軌道，從銀河系薄盤中的恆星群而來。在未來數月，我們將根據包括智利新建的魯賓天文台在內的多個地面望遠鏡以及可能來自韋伯太空望遠鏡的數據，獲取更多關於 <strong>3I/ATLAS</strong> 特性的資訊。準備好你的爆米花吧。</p>

<h2 id="關於作者">關於作者</h2>

<p><img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*LE3Xlzc3hNG5VDAGlDP8KQ.jpeg" alt="Avi Loeb" title="圖片來源：Chris Michel, 美國國家科學院, 2023" /></p>

<p><strong>Avi Loeb</strong> 是伽利略計畫（Galileo Project）的負責人，哈佛大學「黑洞倡議」（Black Hole Initiative）的創始主任，哈佛-史密松天體物理中心（Harvard-Smithsonian Center for Astrophysics）理論與計算研究所的主任，以及哈佛大學天文系前主任（2011–2020 年）。他曾任總統科學技術顧問委員會成員，並曾擔任美國國家科學院物理與天文學委員會主席。</p>

<p>他是暢銷書《地外文明：地球外智慧生命的最初跡象》（Extraterrestrial: The First Sign of Intelligent Life Beyond Earth）的作者，並於 2021 年合著了教科書《宇宙中的生命》（Life in the Cosmos）。他的新書《星際》（Interstellar）平裝版已於 2024 年 8 月出版。</p>]]></content><author><name>Avi Loeb</name></author><category term="journal" /><summary type="html"><![CDATA[新星際物體 A11pl3Z 穿越內太陽系的推斷軌跡。 (圖片來源：Tony Dunn)]]></summary></entry><entry><title type="html">一场新的中国冲击正席卷全球</title><link href="/journal/2025/06/18/A-new-China-shock-is-sweeping-across-the-globe.html" rel="alternate" type="text/html" title="一场新的中国冲击正席卷全球" /><published>2025-06-18T00:00:00+00:00</published><updated>2025-06-18T00:00:00+00:00</updated><id>/journal/2025/06/18/A-new-China-shock-is-sweeping-across-the-globe</id><content type="html" xml:base="/journal/2025/06/18/A-new-China-shock-is-sweeping-across-the-globe.html"><![CDATA[<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-02-wfvl/00Biz-New-China-Shock-02-wfvl-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="中国重庆的航运码头，这里是连接中国与东南亚国家贸易航线的枢纽。 Gilles Sabrié for The New York Times" title="中国重庆的航运码头，这里是连接中国与东南亚国家贸易航线的枢纽。 Gilles Sabrié for The New York Times" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-02-wfvl/00Biz-New-China-Shock-02-wfvl-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">中国重庆的航运码头，这里是连接中国与东南亚国家贸易航线的枢纽。 Gilles Sabrié for The New York Times</div>
  
</div>

<p>20 年前，中国以其前所未有的快速、廉价的制造和运输能力震惊了美国。由此产生的出口激增重塑了美国的经济和政治。</p>

<p>如今，从印度尼西亚到德国再到巴西，一场新的中国冲击正在席卷全球。</p>

<p>随着特朗普总统的关税开始将中国挡在其最大市场美国之外，中国工厂正以一种正在重塑经济和地缘政治的速度将玩具、汽车和鞋子运往其他国家。</p>

<p>今年到目前为止，中国对世界的贸易顺差接近 5000 亿美元，比去年同期增长了 40%以上。</p>

<p>随着世界上两个超级大国在贸易问题上展开较量，世界其他地区正准备迎接更大的中国冲击。</p>

<p>“中国有很多东西需要出口，无论美国是否对中国征收关税，都几乎不可能阻止商品流动的变化，”凯投宏观的中国经济学家利亚·费伊说。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-06-pctj/00Biz-China-Overseas-06-pctj-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="重庆的一条电动汽车装配线。与一年前相比，中国今年生产的电动汽车数量增加了45%。 Gilles Sabrié for The New York Times" title="重庆的一条电动汽车装配线。与一年前相比，中国今年生产的电动汽车数量增加了45%。 Gilles Sabrié for The New York Times" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-06-pctj/00Biz-China-Overseas-06-pctj-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">重庆的一条电动汽车装配线。与一年前相比，中国今年生产的电动汽车数量增加了45%。 Gilles Sabrié for The New York Times</div>
  
</div>

<p>中国大量出口是政府政策和国内经济放缓的结果。房地产危机使数百万家庭的财富缩水，为了减轻危机的打击，北京多年来一直在向制造业投入大量资金，制造业生产的产品远远超过国内需求。</p>

<p>根据费伊的分析，中国在所有类别商品的全球市场份额都大幅上升。尽管征收了关税，这种情况仍将继续，因为北京不太可能改变其出口导向政策的方向。</p>

<p>通过将其货物流向东南亚、拉丁美洲和欧洲，中国已缓解了美国需求急剧下降所带来的经济影响。但这将使中国与同样面临华盛顿压力的贸易伙伴发生潜在冲突。</p>

<p>特朗普威胁要对越南、柬埔寨和印度尼西亚等被更多中国商品淹没的国家征收高额关税。目前，这些关税已暂停，有待进一步谈判。一些国家因外国公司增加投资而受益，这些公司正试图尽快将生产从中国转移出去。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-09-fjkc/00Biz-New-China-Shock-09-fjkc-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="一艘装满集装箱的驳船停靠在武汉阳逻港，这是长江上的一个国内和国际货运港口。 Gilles Sabrié for The New York Times" title="一艘装满集装箱的驳船停靠在武汉阳逻港，这是长江上的一个国内和国际货运港口。 Gilles Sabrié for The New York Times" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-09-fjkc/00Biz-New-China-Shock-09-fjkc-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">一艘装满集装箱的驳船停靠在武汉阳逻港，这是长江上的一个国内和国际货运港口。 Gilles Sabrié for The New York Times</div>
  
</div>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-03-ljkg/00Biz-China-Overseas-03-ljkg-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="将出口产品流向其他国家有助于中国缓解美国需求骤降带来的影响。 Gilles Sabrié for The New York Times" title="将出口产品流向其他国家有助于中国缓解美国需求骤降带来的影响。 Gilles Sabrié for The New York Times" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-03-ljkg/00Biz-China-Overseas-03-ljkg-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">将出口产品流向其他国家有助于中国缓解美国需求骤降带来的影响。 Gilles Sabrié for The New York Times</div>
  
</div>

<p>还有一些公司通过向美国出口来转运一些中国商品。但如果他们不能通过谈判大幅降低关税，东南亚和其他地区面临美国严重关税的国家的本土企业可能会被来自中国企业的竞争压垮。</p>

<p>尽管特朗普以一个世纪未见的关税水平扰乱了贸易，但早在他今年 1 月上任之前，中国出口的急剧变化就已经在形成。</p>

<p>中国的房地产危机——住房过剩、价格暴跌和普遍破产——在 2021 年开始影响整个经济。中国的政策制定者不失时机地将低息贷款从开发商转移到出口商和制造商，此举最终抵消了建筑业的崩溃，建筑业在其鼎盛时期对中国经济增长的贡献达到三分之一。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-16-zhmt/00Biz-New-China-Shock-16-zhmt-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="2022年10月，中国南昌一个在建的住宅开发项目。 Qilai Shen for The New York Times
" title="2022年10月，中国南昌一个在建的住宅开发项目。 Qilai Shen for The New York Times
" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-16-zhmt/00Biz-New-China-Shock-16-zhmt-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">2022年10月，中国南昌一个在建的住宅开发项目。 Qilai Shen for The New York Times
</div>
  
</div>

<p>对北京来说，这是一个屡试不爽的举措：砸钱解决问题。</p>

<p>“他们往往先进行过度投资以扩大规模，然后再通过政府政策来推动这一进程，”德国商业银行经济学家汤米·吴（音）表示。“这就是我们今天遇到这个问题的原因。”</p>

<p>中国在 2015 年启动了一项名为《中国制造 2025》的国内产业政策，以生产技术含量更高、价值更高的产品，如精密电脑芯片和电动汽车。这一举措导致美国和欧洲提高了电动汽车、太阳能电池板和其他高科技产品的关税。</p>

<p>但是，自房地产市场崩溃以来，中国推动制造业的努力走得更远。在制造更先进产品的同时，中国制造商也在加倍努力制造小商品，也就是中国 20 年前擅长制造的那些相对便宜的东西。中国改写了游戏规则，令经济学家感到困惑。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-13-jktb/00Biz-New-China-Shock-13-jktb-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="中国出口繁荣的部分原因是政府鼓励在制造业中使用先进技术的广泛政策。 Gilles Sabrié for The New York Times" title="中国出口繁荣的部分原因是政府鼓励在制造业中使用先进技术的广泛政策。 Gilles Sabrié for The New York Times" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-13-jktb/00Biz-New-China-Shock-13-jktb-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">中国出口繁荣的部分原因是政府鼓励在制造业中使用先进技术的广泛政策。 Gilles Sabrié for The New York Times</div>
  
</div>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-16-tlvq/00Biz-New-China-Shock-16-tlvq-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="中国在大幅增加先进制造业投资同时，还加倍生产廉价商品，这令经济学家感到困惑。 Adek Berry/Agence France-Presse — Getty Images" title="中国在大幅增加先进制造业投资同时，还加倍生产廉价商品，这令经济学家感到困惑。 Adek Berry/Agence France-Presse — Getty Images" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-16-tlvq/00Biz-New-China-Shock-16-tlvq-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">中国在大幅增加先进制造业投资同时，还加倍生产廉价商品，这令经济学家感到困惑。 Adek Berry/Agence France-Presse — Getty Images</div>
  
</div>

<p>新加坡经济学家普里扬卡·基肖尔说：“中国并没有按照经济理论所建议的方式发展，现在我们面临着一种新的模式。”她所称的经济理论建议的方式是指，随着经济变得更加成熟和发达，传统的经济轨迹会逐渐摆脱低端制造业。</p>

<p>“这是一个挑战，因为它加剧了世界其他地区的压力，”基肖尔说。</p>

<p>随着关税开始重新调整贸易流动和供应链，经济效应开始显现。</p>

<p>在德国，中国商品上个月的出货量比去年同期增长了 20%，一些公司向德国商业银行的经济学家汤米·吴表达了担忧。汽车制造商对此感受最为强烈。</p>

<p>今年，中国的电动汽车产量增加了 45%，尽管由于消费者需求下降，中国企业在国内陷入了一场恶性价格战。根据中国汽车工业协会的数据，今年电动汽车的出口量飙升了 64.6%。</p>

<p>首当其冲受到中国进口激增影响的国家，其本国制造业也出现了大幅下滑，导致失业和破产。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-01-pmcf/00Biz-China-Overseas-01-pmcf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="长安汽车在重庆生产的电动汽车，它们将出口到泰国。 Gilles Sabrié for The New York Times
" title="长安汽车在重庆生产的电动汽车，它们将出口到泰国。 Gilles Sabrié for The New York Times
" src="https://static01.nyt.com/images/2025/06/13/multimedia/00Biz-New-China-Shock-01-pmcf/00Biz-China-Overseas-01-pmcf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">长安汽车在重庆生产的电动汽车，它们将出口到泰国。 Gilles Sabrié for The New York Times
</div>
  
</div>

<p>在印度尼西亚，服装厂正在关闭，理由是他们无法与来自中国的廉价服装竞争。印尼长丝纱线和纤维生产商协会主席莱德玛·吉塔·维拉瓦斯塔表示，2023 年和 2024 年，服装业约有 25 万人失业。由于中国的电动汽车，泰国汽车零部件制造商已经关闭。巴西汽车制造商呼吁政府对在巴西销售的中国汽车发起反倾销调查。</p>

<p>对于大多数国家来说，有两种选择。第一种是什么都不做，眼睁睁地看着制造业被掏空，日本银行野村证券负责日本以外亚洲地区的首席经济学家索纳尔·瓦尔马说。</p>

<p>另一种选择是提高关税，并在特定部门采取其他保护主义措施，就像美国对中国所做的那样。这可能会激怒以贸易和投资作为外交姿态杠杆的中国或美国。</p>

<p>“供应链正沿着地缘政治路线分化，”瓦尔马说。“对很多国家来说，这成了一个艰难得多的决定：你打算站哪一边？”</p>]]></content><author><name>艾莎</name></author><category term="journal" /><summary type="html"><![CDATA[中国重庆的航运码头，这里是连接中国与东南亚国家贸易航线的枢纽。 Gilles Sabrié for The New York Times]]></summary></entry><entry><title type="html">六月的吶喊</title><link href="/journal/2025/06/18/the-shout-loudly.html" rel="alternate" type="text/html" title="六月的吶喊" /><published>2025-06-18T00:00:00+00:00</published><updated>2025-06-18T00:00:00+00:00</updated><id>/journal/2025/06/18/the-shout-loudly</id><content type="html" xml:base="/journal/2025/06/18/the-shout-loudly.html"><![CDATA[<h2 id="城市鬼故事十八層公寓的吶喊">城市鬼故事：十八層公寓的吶喊</h2>

<blockquote>
  <p><strong>啊——！</strong></p>

  <p>一聲粗獷的嘶喊，從十八層的陽台震盪而出，劃破夜色，像某種無聲絕望的回聲。</p>
</blockquote>

<p>它來自一個中年男人，矮小，失業，略禿，臉色蒼白、鬍渣未剃。沒有精氣神，眼神裡泛著疲乏與濁意。</p>

<p>他哭了，無聲地，一滴淚悄悄滾過臉頰。</p>

<p>他還有個朋友——或許是少數還能聯絡的——問他：「你幹嘛要這麼難過？」</p>

<p>男人說：「我受夠了這種沒有希望的生活。」</p>

<p>他沒有方向，不想成為那種滿街亂晃的精神流浪漢，但人生似乎正往那條路去。他怕。</p>

<p>他說：「生活，是苦的。」</p>

<p>朋友試探地問：「就一點快樂都沒有？」</p>

<p>他想了想：「1% 吧。」</p>

<p>朋友更疑惑了：「可你又沒碰到什麼大挫折呀？你每天還喝得起咖啡、吃得上點好東西，也租著不錯的 loft 公寓。」</p>

<p>男人冷笑了一聲：「那些都是暫時的。」</p>

<p>他明白，更大的苦難在不遠處等著他。</p>

<blockquote>
  <p><strong>這時代不同了。</strong></p>
</blockquote>

<p>以前家裡有幾畝地，勤快點，踏實活著就能過一生。現在呢？你必須拼了命在城市裡活下來，否則你連活著的權利都沒有。</p>

<p>每個人都盯著那個從村裡開 BMW 回來的少年；
每個人都刷著那個抖音帳號——生活極度奢華、有趣、俊俏、才華橫溢。</p>

<p>「去他媽的同村發小，去他媽的抖音。」他怒吼了一聲。</p>

<p>他說，是這種社會性比較，把人搞瘋了。</p>

<p>什麼是美？
什麼是幸福？
什麼是爺們？</p>

<p>這些問題的答案，越來越被統一、被算法定義，被市場格式化。沒有個性，也沒人敢有個性。</p>

<p>這只是中國的問題嗎？他不確定。但他知道，<strong>在中國，這種窒息的壓力尤其致命</strong>。</p>

<hr />

<p>最讓他崩潰的，就是房地產。</p>

<p>「300 萬買套公寓？請問幾個年輕人能有 300 萬存款？你有嗎？」</p>

<p>朋友沒回答。</p>

<p>他又說：「是不是就像聽鬼故事一樣？聽說有人月入十萬，買房不眨眼，但你從沒真正見過。」</p>

<p>「那種人，大概就是鬼吧。」</p>

<p>這才是最煩的地方。</p>

<p>這個世界到底是怎樣的一群人在推高房價？
其他人呢？
剩下的，是不是就該去睡天橋底下？</p>]]></content><author><name></name></author><category term="journal" /><summary type="html"><![CDATA[城市鬼故事：十八層公寓的吶喊]]></summary></entry><entry><title type="html">成都为何成了中国“最有幸福感城市”</title><link href="/journal/2025/06/18/why-has-chengdu-become-chinas-happiest-city.html" rel="alternate" type="text/html" title="成都为何成了中国“最有幸福感城市”" /><published>2025-06-18T00:00:00+00:00</published><updated>2025-06-18T00:00:00+00:00</updated><id>/journal/2025/06/18/why-has-chengdu-become-chinas-happiest-city</id><content type="html" xml:base="/journal/2025/06/18/why-has-chengdu-become-chinas-happiest-city.html"><![CDATA[<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-01-ptwf/00Biz-China-Econ-01-ptwf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="成都动物园，这座城市被誉为“中国最具幸福感城市”。 The New York Times" title="成都动物园，这座城市被誉为“中国最具幸福感城市”。 The New York Times" src="https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-01-ptwf/00Biz-China-Econ-01-ptwf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">成都动物园，这座城市被誉为“中国最具幸福感城市”。 The New York Times</div>
  
</div>

<p>中国西南部的内陆城市成都常因其慢节奏和悠闲的生活方式被调侃。这座城市被描绘成懒人的避风港，缺乏上海、广州和深圳等富裕沿海贸易中心那种不断进取、勤奋工作的文化氛围。</p>

<p>几十年来，勤奋的年轻人离开成都及其他内陆城市，前往沿海地区追寻机会——随着中国建设工厂并向全球出口商品，财富不断涌入这些地区。</p>

<p>甚至在中国与美国的贸易战前，就已经有更多的年轻人开始远离一线城市高度竞争性的工作文化，选择在成都过上更放松的生活，这座城市也因此赢得了“中国最具幸福感城市”的美誉。</p>

<p>如今，成都是中国发展最快的城市之一。过去五年里，该市人口激增 30%，达到 2150 万，房地产市场蓬勃发展，成为中国房地产危机中罕见的亮点。</p>

<p>这座拥有 2300 多年历史的古城的吸引力反映出年轻人中逐渐萌芽的幻灭感：他们看到中国经济已经无法像父辈时代那样创造大量机会。</p>

<p>在出口激增招致特朗普政府关税同时，中国国内经济陷入困境。消费者一直不敢消费，周一发布的最新月度政府数据再次印证了这一持续趋势。</p>

<p>无休止的工作日和在拥挤、生活成本高昂的城市中挣扎已经不能保证可以换来更高的薪水和成功的事业。过去四年，另一个内陆城市、湖北省会武汉的人口也显著增长。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-02-ptwf/00Biz-China-Econ-02-ptwf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="成都的房价上涨是中国所有大城市中最快的，没有受到该国持续已久的房地产颓势影响。 Agence France-Presse — Getty Images" title="成都的房价上涨是中国所有大城市中最快的，没有受到该国持续已久的房地产颓势影响。 Agence France-Presse — Getty Images" src="https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-02-ptwf/00Biz-China-Econ-02-ptwf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">成都的房价上涨是中国所有大城市中最快的，没有受到该国持续已久的房地产颓势影响。 Agence France-Presse — Getty Images</div>
  
</div>

<p>成都的薪资水平普遍低于其他主要城市，职业晋升机会也更有限，但这里的生活压力较小。</p>

<p>“成都无论在哪个方面，我觉得都对年轻人更友好一些，”澳门大学历史教授王笛说，他撰写过大量关于这座城市的著作。他将成都比作美国得克萨斯州的奥斯汀——另一座以拥抱艺术和反主流文化著称的城市。</p>

<p>尽管中国政府的管控日益严格，成都仍拥有活跃的 LGBTQ 群体、繁荣的嘻哈文化和许许多多的茶馆。</p>

<p>当然，还有大熊猫。成都生活着数以百计大熊猫。</p>

<p>据中国官方媒体报道，成都大熊猫繁育研究基地去年吸引了超过 1220 万游客。</p>

<p>随着外来人口和返乡者的涌入，成都房价的涨幅超过中国其他所有主要城市。</p>

<p>房地产研究机构中国指数研究院的数据显示，自 2021 年以来，成都住宅每平方米均价上涨 16.8%，而中国 10 个主要城市的平均涨幅为 5.4%。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-03-ptwf/00Biz-China-Econ-03-ptwf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="成都的人口在过去五年里增长了30%，达到2150万。 Cheng Xin/Getty Images" title="成都的人口在过去五年里增长了30%，达到2150万。 Cheng Xin/Getty Images" src="https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-03-ptwf/00Biz-China-Econ-03-ptwf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">成都的人口在过去五年里增长了30%，达到2150万。 Cheng Xin/Getty Images</div>
  
</div>

<p>36 岁的胡胜（音）从四川省内一个较小的城市搬到成都，从事建筑和装修行业。他一直在寻找一套三居室公寓，但他说，优质房源很快就会售罄。</p>

<p>“现在大家买房子买房的人挺多的，”胡胜说，“大家都在抢那个房子。”</p>

<p>作为中国西部的主要城市，成都长期在国家安全方面扮演重要角色。从 20 世纪 60 年代开始，政府大力投资，将国防和运输制造业转移到内陆，以保护这些关键产业免受潜在外国侵略者的威胁。</p>

<p>中国最高领导人习近平承诺要加强半导体等尖端技术产业，并减少对外国公司的依赖。经济学家推测，对国内战略产业的类似关注可能会将更多企业带到成都及其他内陆城市。</p>

<p>目前，成都约 70%的经济来源于服务业，包括旅游业和在生意火爆的麻辣火锅店的消费。它不像其他地区那样依赖制造业，这使其在与美国的关税战中免受最具破坏性的影响。</p>

<p>成都的娱乐产业也十分繁荣。今年上映后成为中国有史以来票房最高电影的动画片《哪吒 2》就是由成都一家工作室制作的。随着成都成为电子竞技产业的中心，它也成为了电子游戏开发的枢纽。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-04-ptwf/00Biz-China-Econ-04-ptwf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="成都大熊猫繁育研究基地去年吸引了超过1220万游客。 The New York Times" title="成都大熊猫繁育研究基地去年吸引了超过1220万游客。 The New York Times" src="https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-04-ptwf/00Biz-China-Econ-04-ptwf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">成都大熊猫繁育研究基地去年吸引了超过1220万游客。 The New York Times</div>
  
</div>

<p>房地产市场数据提供商中国指数研究院成都分院总经理黄雪（音）表示，相比其他城市，成都的房价与工资水平的匹配更合理。</p>

<p>不过，她指出，归根结底，人们选择成都的原因在于：在中国经济充满不确定性的当下，“该享受要享受。”</p>

<p>三年前，30 岁的艾玛·马（音）从北京搬到成都，与伴侣一起经营一家制作音乐视频的工作室。</p>

<p>她说，她租了一套两居室，每月租金约 2900 元人民币，这笔钱在北京租合租房里的一间卧室都勉强。她和伴侣还雇了一位”阿姨“帮忙做一些杂事，并给他们做晚饭。</p>

<p>“它的幸福感的成本其实并不需要特别高，”艾玛·马说。</p>

<p>王笛表示，在新冠疫情期间上海等城市被封锁数月后，中国人对慢生活的负面看法已发生改变。他说，成都的日常生活相对稳定，曾经被认为是枯燥的，如今却越来越有吸引力。</p>

<p>特雷热·吴（音）2018 年离开成都，去上海做计算机程序员。他说在那里的生活并不愉快：房租昂贵，听不懂上海话，而那些著名景点他很快就厌倦了。</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-05-ptwf/00Biz-China-Econ-05-ptwf-master1050.jpg')">
    
    <img class="photo__entity lazy" alt="成都的一处街边市场。 Raul Ariano/Bloomberg" title="成都的一处街边市场。 Raul Ariano/Bloomberg" src="https://static01.nyt.com/images/2025/05/19/multimedia/00Biz-China-Econ-05-ptwf/00Biz-China-Econ-05-ptwf-master1050.jpg" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">成都的一处街边市场。 Raul Ariano/Bloomberg</div>
  
</div>

<p>两年后，他搬回了成都。当时公司正在扩张，他获得了调职机会。</p>

<p>特雷热·吴说，2022 年，他在成都买了一套公寓，花费约 220 万元人民币。他说，同样大小的公寓在上海的价格是这里的三倍。</p>

<p>“我的薪资在这边能够支撑我想买什么买什么，”特雷热·吴说，“我在成都的幸福感会很高。”</p>]]></content><author><name>CLAIRE FU</name></author><category term="journal" /><summary type="html"><![CDATA[成都动物园，这座城市被誉为“中国最具幸福感城市”。 The New York Times]]></summary></entry><entry><title type="html">Julia Butterfly Hill: The Woman Who Lived in a Tree for 738 Days</title><link href="/journal/2025/06/17/julia-butterflyfill-julia.html" rel="alternate" type="text/html" title="Julia Butterfly Hill: The Woman Who Lived in a Tree for 738 Days" /><published>2025-06-17T00:00:00+00:00</published><updated>2025-06-17T00:00:00+00:00</updated><id>/journal/2025/06/17/julia-butterflyfill-julia</id><content type="html" xml:base="/journal/2025/06/17/julia-butterflyfill-julia.html"><![CDATA[<p>In a world filled with pressing challenges and ever-growing environmental concerns, Julia Butterfly Hill emerged as a prominent figure who captivated hearts and ignited change. Through unwavering dedication and remarkable, almost unbelievable, acts of activism, she etched her name in the history books.</p>

<p>Julia’s story prompts us to question the true extent of an individual’s impact. How much can one person achieve in the face of adversity? And how far would each of us be willing to go for a cause we wholeheartedly believe in?</p>

<p>This is the extraordinary journey of Julia Butterfly Hill. Her story exemplifies the power of conviction and the profound influence one person can have on shaping the world we inhabit.</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://www.historydefined.net/wp-content/uploads/2023/06/Julia_Butterfly_Hill_2006.png')">
    
    <img class="photo__entity lazy" alt="Photo by Carl-John Veraja" title="Photo by Carl-John Veraja" src="https://www.historydefined.net/wp-content/uploads/2023/06/Julia_Butterfly_Hill_2006.png" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">Photo by Carl-John Veraja</div>
  
</div>

<h2 id="julias-early-life">Julia’s Early Life</h2>

<p>Julia Butterfly Hill seemed destined for a remarkable journey as an environmental activist. She was born in Mount Vernon, Missouri, in 1974. She was raised in a nomadic family led by her evangelical minister father.</p>

<p>She developed a deep connection with nature from a young age. It was during a family hike when she was just six years old that a butterfly gently alighted on her finger. It left an indelible mark and earned her the cherished nickname, ‘Butterfly.’</p>

<p>After a near-fatal car accident in her early twenties, Julia experienced a spiritual awakening in California’s redwood forests.</p>

<p>She was inspired by a group of “tree sitters.” They were protesting the destruction of ancient redwoods by the Pacific Lumber Company. After that, she dedicated herself to environmental activism.</p>

<p>Guided by her newfound purpose, Julia immersed herself in the environmentalist movement. She dedicated herself to preserving these magnificent forests. However, her most notable act of resistance was yet to come.</p>

<h2 id="an-unbelievable-783-days-spent-living-in-a-tree">An Unbelievable 783 Days Spent Living in a Tree</h2>

<p>On December 10, 1997, Julia Butterfly Hill embarked on a groundbreaking protest high above the ground. She perched on a platform nestled within the branches of a majestic, thousand-year-old California redwood tree named Luna.</p>

<p>Her mission was threefold:</p>

<ul>
  <li>Halt the deforestation plans of the Pacific Lumber Company</li>
  <li>Expose their disregard for the environment</li>
  <li>Raise awareness about the crucial role forests play in stabilizing hillsides</li>
</ul>

<p>With the support of Earth First!, an alliance of radical environmental groups, Julia endured a remarkable 738 days in Luna’s canopy. This was a feat that shattered world records for tree sitting.</p>

<p>Initially, she expected her tree-sit protest to only last a handful of weeks. However, it quickly grew longer and longer. In the end, she spent two years and eight days without leaving the towering redwood.</p>

<p>Life in the tree presented extraordinary challenges. Julia occupied a modest 6-by-8-foot platform that was shielded by tarps. She communicated with the world via a cell phone.</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://www.historydefined.net/wp-content/uploads/2023/06/1_xOaMB_sCJIom2ZVRW6kBTA-1-2048x1386.webp')">
    
    <img class="photo__entity lazy" alt="Julia Butterfly Hill in her treetop home. Photo by Yann Gamblin" title="Julia Butterfly Hill in her treetop home. Photo by Yann Gamblin" src="https://www.historydefined.net/wp-content/uploads/2023/06/1_xOaMB_sCJIom2ZVRW6kBTA-1-2048x1386.webp" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">Julia Butterfly Hill in her treetop home. Photo by Yann Gamblin</div>
  
</div>

<p>Volunteers painstakingly worked to deliver food, water, and supplies to her often, enabling her to continue. She faced relentless weather extremes, battled illness, and encountered numerous attempts to dislodge her. Some even resorted to tactics like floodlights and loudspeakers.</p>

<p>How she found the resolve to continue, day after day, month after month is difficult to understand. Yet, despite the many hardships, Julia’s resilience and determination held strong throughout it all. Finally, on December 18, 1999, now 26 years old, Julia clambered down from the tree.</p>

<p>Her steadfast vigil ultimately resulted in a momentous victory. It secured protection for Luna and its immediate surroundings. They even received a $50,000 donation to Humboldt State University for forestry research.</p>

<p>Throughout her remarkable tree-sit, Julia’s bond with Luna grew deeper. The ancient redwood certainly left an indelible impression on her. While enduring the harsh conditions, Julia claims to have found strength in the profound connection she forged with the tree. She drew inspiration from its enduring presence and unwavering spirit.</p>

<p>Despite the discomfort, fear, and occasional threats she faced, her love for Luna and her unwavering commitment to environmental preservation fueled her unwavering determination to make a difference in the world.</p>

<h2 id="impacts-of-hills-tree-sit">Impacts of Hill’s Tree-Sit</h2>

<p>Julia Butterfly Hill’s tree-sit in Luna had a profound impact on multiple fronts. After more than two years of steadfast vigilance, her determined effort yielded a win.</p>

<p>Luna, the thousand-year-old redwood tree, along with a three-acre buffer zone filled with many other trees, received permanent protection. Julia and her supporters also raised $50,000 during the protest. But it was unfortunately given to the Pacific Lumber Company as part of the resolution.</p>

<div class="photo-wrapper">
  <div class="photo" onclick="showPhotoModal('https://www.historydefined.net/wp-content/uploads/2023/06/1_dfytJk1N2wjjMvbAUirP4w-1.webp')">
    
    <img class="photo__entity lazy" alt="Photo by Yann Gamblin" title="Photo by Yann Gamblin" src="https://www.historydefined.net/wp-content/uploads/2023/06/1_dfytJk1N2wjjMvbAUirP4w-1.webp" onload="__determineThePicDim(event)" onerror="__determineThePicLoadErr(event)" />
  </div>
  
  <div class="photo__title">Photo by Yann Gamblin</div>
  
</div>

<p>However, the funds were then donated to Humboldt State University for research in sustainable forestry. This showcased the positive outcome that emerged from this unique agreement.</p>

<p>Julia’s courageous act of civil disobedience garnered global attention. It effectively shone a spotlight on the plight of ancient forests. Her tree-sit drew widespread media coverage. It raised awareness not only for the redwoods but also for broader environmental and social justice issues.</p>

<p>Unfortunately, Luna faced subsequent challenges, including vandalism by some chainsaw-wielding individuals. Measures were taken to preserve and stabilize the tree. The gash inflicted on Luna’s trunk was successfully treated.</p>

<p>As of spring 2007, Luna continued to thrive, showing signs of new growth each year. Today, Luna is under the stewardship of Sanctuary Forest. This is a nonprofit organization and it ensures Luna’s continued protection and care.</p>

<p>Ultimately, Julia Butterfly Hill’s tree-sit not only safeguarded Luna but also served as a powerful symbol of the ongoing fight to protect ancient forests and the vital ecosystems they sustain.</p>

<h2 id="julias-continued-activism-today">Julia’s Continued Activism, Today</h2>

<p>Following her remarkable experience, Julia Butterfly Hill has remained engaged in environmental activism. She continues to leave her mark and inspire through her writing. She’s written the bestsellers “The Legacy of Luna” and “One Makes the Difference” handbook.</p>

<p>Julia’s dedication to defending nature and pursuing social justice has also led her to co-found several environmental organizations. One is called the Circle of Life Foundation.</p>

<p>And her activism has taken her to many different corners of the globe. In 2002, she was deported while protesting a pipeline that threatened indigenous communities in Ecuador. Also, in 2006, she took part in a tree-sit demonstration at a community farm situated in South Central Los Angeles.</p>

<p>Still, to this day, Julia’s impact reaches far beyond her writing and her protests.</p>

<p>She has toured worldwide, captivating audiences with her storytelling, and sharing the lessons she learned during her 738 days in Luna. She also speaks at university campuses, spent time lobbying Congress, and has even addressed the United Nations.</p>

<p>Julia Butterfly Hill continues to be at the forefront of environmental and social justice issues, advocating for a more sustainable and equitable world.</p>]]></content><author><name>Justin Brown</name></author><category term="journal" /><summary type="html"><![CDATA[In a world filled with pressing challenges and ever-growing environmental concerns, Julia Butterfly Hill emerged as a prominent figure who captivated hearts and ignited change. Through unwavering dedication and remarkable, almost unbelievable, acts of activism, she etched her name in the history books.]]></summary></entry><entry><title type="html">Two Months of Struggle in SPH Fluid Simulation: The Inner Journey of a Web3D Developer</title><link href="/tech/2025/05/26/sph-failed-en.html" rel="alternate" type="text/html" title="Two Months of Struggle in SPH Fluid Simulation: The Inner Journey of a Web3D Developer" /><published>2025-05-26T00:00:00+00:00</published><updated>2025-05-26T00:00:00+00:00</updated><id>/tech/2025/05/26/sph-failed-en</id><content type="html" xml:base="/tech/2025/05/26/sph-failed-en.html"><![CDATA[<p>Unknowingly, I’ve been deeply immersed in SPH fluid simulation for over two months now. The CPU version is nearly complete, but the shader-based version has been far less smooth—plagued with various small issues. After introducing Grid Lookup, the system fell into chaos. I’m feeling a bit exhausted, and doubts are starting to surface: can I really continue my career in the Web3D field?</p>

<p>It’s honestly been a painful process.</p>

<p>The SPH model, conceptually, isn’t that complicated. But when it comes to implementing it in shaders, I often feel lost. The biggest challenge is that you can’t directly “see” the problems—you just know the outcome doesn’t look right. While there are plenty of detailed articles online explaining the SPH model, they often leave me more confused—maybe it’s my weak math background.</p>

<p>I turned to ChatGPT for help, and it has indeed been helpful. Most of the conceptual explanations and even large portions of the code came from ChatGPT. I reviewed and modified them, but they rarely worked out-of-the-box for my project. Understanding the logic and adapting it to fit the implementation is also quite painful.</p>

<p>In the SPH model, fluids are represented as particles—an abstraction that encapsulates the position, density, pressure, and viscosity of matter in space. After calculating these attributes for each particle, we apply motion equations and external forces to simulate fluid flow. The result is something that visually resembles water, gas, or lava. It’s fascinating, but it also requires strong mathematical and programming skills from the developer.</p>

<p>Neighbor search is one of the most performance-intensive tasks in SPH. It’s essential for computing the influence of nearby particles within a certain radius, which in turn affects the particle’s density and forces. On the CPU, this is so costly that the particle count has to be kept under 1200. On the GPU, however, the number can rise to 5,000, 10,000, or even more. I’ve been eager to see this effect, but once Grid Lookup is introduced, everything becomes unstable. I spent many days trying to debug it, but made no real progress.</p>

<p>So, I’ve decided to pause for now.</p>

<p>My feelings are mixed. I don’t even fully understand why I’m so obsessed with this project, but it’s definitely shaken my confidence. I’m currently unemployed and urgently seeking a job—preferably something involving Web3D. I believe I need to narrow my focus and go deeper into one field; maybe then, I’ll find my opportunity. If I keep following others’ advice to “go broad,” to “see the big picture,” I feel like I’ll end up achieving nothing at all.</p>

<p>And by “achieving something,” I don’t mean doing anything grand. I just want to complete one small task that brings peace to my heart. Whether others notice it or not doesn’t matter to me anymore—as long as it makes me feel fulfilled. Of course, if what I build can bring even a little value to a team, a company, or society, then I believe the market will eventually recognize it. I don’t want to follow the market blindly. Life is too short for that—it simply doesn’t work.</p>

<p>I still want to work in Web3D, and I plan to continue building more and more projects. I hope you can see my efforts and passion, and I’d love to bring that passion into a team. I’m also considering documenting my research and thoughts, organizing them into a book or publishing them online, to let others see the real journey of a developer.</p>

<p>I believe that if your heart is good, your surroundings will gradually improve, and your life will slowly become better, too.</p>

<p>I choose to believe in hope—not to retreat into pessimism, even in the face of a harsh job market.</p>]]></content><author><name></name></author><category term="tech" /><summary type="html"><![CDATA[Unknowingly, I’ve been deeply immersed in SPH fluid simulation for over two months now. The CPU version is nearly complete, but the shader-based version has been far less smooth—plagued with various small issues. After introducing Grid Lookup, the system fell into chaos. I’m feeling a bit exhausted, and doubts are starting to surface: can I really continue my career in the Web3D field?]]></summary></entry><entry><title type="html">在 SPH 流体模拟中挣扎的两个月：一位 Web3D 开发者的心路</title><link href="/tech/2025/05/26/sph-failed.html" rel="alternate" type="text/html" title="在 SPH 流体模拟中挣扎的两个月：一位 Web3D 开发者的心路" /><published>2025-05-26T00:00:00+00:00</published><updated>2025-05-26T00:00:00+00:00</updated><id>/tech/2025/05/26/sph-failed</id><content type="html" xml:base="/tech/2025/05/26/sph-failed.html"><![CDATA[<p>不知不觉，我已经深陷在 SPH 流体模拟的实践中两个多月了。CPU 版本的实现基本完成，但 Shader 版本进展并不顺利，始终伴随着各种小问题，尤其是在引入 Grid Lookup 之后，系统几乎完全紊乱了。我开始有些力不从心，也开始怀疑：自己还能不能在 Web3D 这个领域里继续走下去，开启下一段职业旅程。</p>

<p>说真的，这段过程很痛苦。</p>

<p>SPH 模型在原理上其实不算复杂，但当真正落地到 Shader 编程时，我却常常感到迷茫。问题常常是“看不见”的，只能通过最终的效果判断哪里出了错。而网上关于 SPH 的大篇幅文章虽然看似详细，但读完却仍让我摸不着头脑——也许是我数学不够好吧。</p>

<p>我向 ChatGPT 求助，它确实帮了不少忙。大量的概念解释和大部分代码，都是它提供的。我再逐行审阅、理解、修改，但这些代码并不能直接应用于我的项目，需要根据实际情况进行调整和重构，这过程也并不轻松。</p>

<p>在 SPH 模型中，流体被离散为粒子。粒子是一种抽象，它代表在空间中某个位置上的物质密度、压强、压力和粘性力等属性。我们通过计算这些物理量，并结合运动方程，再施加外力，就能模拟出流动的水、气体甚至岩浆的动态效果。这非常有趣，但同时也极大考验开发者的数学基础与编程能力。</p>

<p>邻近粒子的查找是 SPH 模型中的关键，也是性能瓶颈。我们需要在一定半径范围内找出其他粒子，并据此计算它们对当前粒子的影响。这在 CPU 上非常耗时，粒子数量若超过 1200 就难以承受。而迁移到 GPU 后，粒子数可大幅提升至五千、一万甚至几万。我一直期待能看到这种大规模效果，但引入 Grid Lookup 后系统就开始紊乱，我连续研究了很多天，却迟迟找不到原因。</p>

<p>所以，我决定暂时停下脚步。</p>

<p>心情很复杂。我也不清楚自己为何如此执着于这件事，它严重打击了我的自信。目前我处于无业状态，急需一份收入稳定的工作。最好是与 Web3D 有关的职位，我想自己应该将方向收窄一些，深入一些，也许这样才有机会。若总是听从他人说要“视野广”“格局大”，那我可能永远无法真正做成一件事。其实，我所谓“成一事”，并不是要成就什么大事业，而是完成一件能让自己内心平静的小事。别人是否看得见、认可与否，我已不在乎，只要自己问心无愧就足够。</p>

<p>当然，如果我做的事情能为一个团队、企业，乃至社会带去哪怕一丁点价值，我相信终有一天，市场会回应这份努力。我不愿随波逐流。人生短暂，若仅为了“符合市场”而活，反而容易迷失。</p>

<p>我仍然热爱 Web3D 开发，并愿意投入更多时间去产出作品。我希望你能看到我的努力和热情，并愿意将这份热情带入一家企业。我也考虑把自己研究的过程与心得慢慢记录、整理成册，将来出版或发布在公开平台上，让大家看到一个真实开发者的成长历程与心路历程。</p>

<p>我相信：人的心要好，周围的环境才会慢慢变好，生活才有可能变得更好。</p>

<p>我选择相信希望，而不是因为当前就业环境的艰难，就轻易放弃或退缩。</p>]]></content><author><name></name></author><category term="tech" /><summary type="html"><![CDATA[不知不觉，我已经深陷在 SPH 流体模拟的实践中两个多月了。CPU 版本的实现基本完成，但 Shader 版本进展并不顺利，始终伴随着各种小问题，尤其是在引入 Grid Lookup 之后，系统几乎完全紊乱了。我开始有些力不从心，也开始怀疑：自己还能不能在 Web3D 这个领域里继续走下去，开启下一段职业旅程。]]></summary></entry><entry><title type="html">How I Achieved Smooth Rendering in My 3D Warehouse System</title><link href="/tech/2025/05/06/performance-issues-shooting-warehouse-layout-design.html" rel="alternate" type="text/html" title="How I Achieved Smooth Rendering in My 3D Warehouse System" /><published>2025-05-06T00:00:00+00:00</published><updated>2025-05-06T00:00:00+00:00</updated><id>/tech/2025/05/06/performance-issues-shooting-warehouse-layout-design</id><content type="html" xml:base="/tech/2025/05/06/performance-issues-shooting-warehouse-layout-design.html"><![CDATA[<div style="text-align: center;">
<iframe width="424" height="238" src="https://www.youtube.com/embed/VVTQTGhVmd4" title="Warehouse Visualization With Wik (Based On ThreeJs)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
</div>

<p>A few strangers recently reached out to me after watching the 3D warehouse system demo I posted on YouTube. They asked whether I could share the source code or at least explain how I made the system run so smoothly.</p>

<p>I’ve been traveling recently and haven’t had the time or focus to sit down and write about it. But this question has been on my mind for a while. So I decided to write something—at least a short article—to share my approach. Partly to help those curious friends, and partly to help myself revisit the original design from a higher-level perspective.</p>

<p>I hope this article helps you—and helps me too.</p>

<hr />

<h2 id="drawing-the-shapes-conveyor-belts-packages-and-boxes">Drawing the Shapes: Conveyor Belts, Packages, and Boxes</h2>

<p>You may not believe it, but all the shapes in the scene were <strong>not imported as models</strong>—I generated them entirely in code.</p>

<p>Every object is built using <code class="language-plaintext highlighter-rouge">THREE.BufferGeometry</code>, by calculating the vertices manually: containers, packages, racks, and even the complex conveyor belts.</p>

<h3 id="conveyor-belts-built-from-json-and-geometry">Conveyor Belts: Built from JSON and Geometry</h3>

<p>In the real world, conveyor systems are made up of different segments: straight lines, curves, inclines, and more. I abstracted each segment as a JSON definition and wrote logic to generate the appropriate vertices based on that input.</p>

<p>Yes, it’s a bit tedious—and not necessarily the perfect solution—but it gives me full control. For instance, I can mount devices onto individual segments if needed.</p>

<p>You can explore the key files here:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ConveyorReal.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Item.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Rack.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Container.class.ts</code></li>
</ul>

<hr />

<h2 id="efficient-rendering-of-massive-numbers-of-similar-objects">Efficient Rendering of Massive Numbers of Similar Objects</h2>

<p>Since racks, containers, and packages all share the same shape (only differing in size, color, or position), I used <strong><code class="language-plaintext highlighter-rouge">THREE.InstancedMesh</code></strong> to improve rendering performance.</p>

<p>I also wrapped it into a custom class called <code class="language-plaintext highlighter-rouge">wik.InstancedMesh</code>, adding enhanced interactivity, search, addition, and removal capabilities.</p>

<h3 id="why-instancedmesh-boosts-performance">Why InstancedMesh Boosts Performance</h3>

<ul>
  <li>
    <p><strong>Reduced Draw Calls</strong>
Normally, rendering 1000 objects takes 1000 draw calls. InstancedMesh requires only one, drastically reducing CPU-GPU overhead.</p>
  </li>
  <li>
    <p><strong>Shared Geometry and Material</strong>
All instances share the same model and material, saving memory and avoiding state switching.</p>
  </li>
  <li>
    <p><strong>GPU Batch Processing</strong>
The GPU handles all position, rotation, and scale data in parallel, making it much faster.</p>
  </li>
</ul>

<p>📌 <strong>Summary:</strong>
“Less communication, more batch processing”—let the GPU do the heavy lifting.</p>

<hr />

<h3 id="what-wikinstancedmesh-adds">What <code class="language-plaintext highlighter-rouge">wik.InstancedMesh</code> Adds</h3>

<p>My custom wrapper around InstancedMesh provides:</p>

<ul>
  <li>Support for <strong>adding/removing</strong> instances dynamically</li>
  <li>Optimized updates using <code class="language-plaintext highlighter-rouge">updateRange</code> to reduce data upload size</li>
  <li>Ability to convert a specific instance into an individual object for animation via <code class="language-plaintext highlighter-rouge">toIndividual</code>, and revert back via <code class="language-plaintext highlighter-rouge">toInstanced</code></li>
</ul>

<hr />

<h2 id="interaction-and-state-management">Interaction and State Management</h2>

<p>Every object in the warehouse system needs to be selectable, with hover effects for visual feedback. To support that, I designed a general mouse interaction protocol.</p>

<h3 id="how-it-works">How It Works</h3>

<p>If you want your object to respond to mouse events, simply implement the required interface from <code class="language-plaintext highlighter-rouge">Interactive.ts</code>. Once implemented, the object will:</p>

<ul>
  <li>React to hover events (e.g., highlight)</li>
  <li>Handle selection clicks</li>
  <li>Maintain interaction state</li>
</ul>

<p>This works for both <code class="language-plaintext highlighter-rouge">Object3D</code> and <code class="language-plaintext highlighter-rouge">InstancedMesh</code> objects and greatly improves system extensibility.</p>

<hr />

<h2 id="animation-framework">Animation Framework</h2>

<p>The animation system is based on registering and removing <strong>frame functions</strong> dynamically.</p>

<p>You can register an animation function at any time, and remove it once the animation ends. You are in full control of the animation logic.</p>

<p>Here’s an example:</p>

<div class="language-ts highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">ffn</span> <span class="o">=</span> <span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">elapsed</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="c1">// Your custom animation logic</span>
  <span class="k">if </span><span class="p">(</span><span class="cm">/* animation ends */</span><span class="p">)</span> <span class="k">this</span><span class="p">.</span><span class="nf">unframe</span><span class="p">(</span><span class="nx">ffn</span><span class="p">);</span>
<span class="p">};</span>

<span class="k">this</span><span class="p">.</span><span class="nf">onframe</span><span class="p">(</span><span class="nx">ffn</span><span class="p">);</span>  <span class="c1">// Register the animation function</span>
</code></pre></div></div>

<p>This system is lightweight, flexible, and easy to manage for both temporary and continuous animations.</p>

<hr />

<h2 id="summary">Summary</h2>

<p>When rendering a large number of similar objects, performance is critical. Here’s how I addressed it:</p>

<ul>
  <li>Use <code class="language-plaintext highlighter-rouge">InstancedMesh</code> to minimize draw calls</li>
  <li>Use <code class="language-plaintext highlighter-rouge">updateRange</code> to reduce data upload frequency and volume</li>
  <li>Encapsulate interaction and rendering logic for modularity</li>
  <li>Abstract conveyor segments with JSON to allow for flexible, dynamic structures</li>
</ul>

<p>This approach may not be perfect, but it solved the problems I was facing at the time—and helped the system run smoothly.</p>

<hr />

<p>If you’re interested in a particular part of the implementation or want a deeper dive into specific areas, feel free to leave a comment or reach out. I’ll try to share more technical details when I have the time.</p>

<p>Thanks for reading!</p>]]></content><author><name></name></author><category term="tech" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">我的 3D 仓库系统是如何实现高效渲染的？</title><link href="/tech/2025/05/04/performance-issues-shooting-warehouse-layout-design.html" rel="alternate" type="text/html" title="我的 3D 仓库系统是如何实现高效渲染的？" /><published>2025-05-04T00:00:00+00:00</published><updated>2025-05-04T00:00:00+00:00</updated><id>/tech/2025/05/04/performance-issues-shooting-warehouse-layout-design</id><content type="html" xml:base="/tech/2025/05/04/performance-issues-shooting-warehouse-layout-design.html"><![CDATA[<div style="text-align: center;">
<iframe width="424" height="238" src="https://www.youtube.com/embed/VVTQTGhVmd4" title="Warehouse Visualization With Wik (Based On ThreeJs)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
</div>

<p>最近有不少陌生朋友看了我在 YouTube 上发布的 3D 仓库系统演示视频，写信来询问源码或实现思路，尤其好奇为何系统运行如此流畅。</p>

<p>由于前段时间一直在外旅行，没能静下心来系统地谈谈这个问题，但我一直惦记着。觉得有必要写点什么——一方面是回应这些热情的朋友，另一方面也是为了帮助自己从更高的角度回顾和整理当初的设计思路。</p>

<p>希望这篇简短的文章，既能帮到你，也能帮到我自己。</p>

<hr />

<h2 id="图形的绘制从零生成的输送线与包裹">图形的绘制：从零生成的输送线与包裹</h2>

<p>你可能不相信，页面上所有的图形都<strong>不是模型导入的</strong>，而是我直接在代码中「写」出来的。所有形状都是基于 <code class="language-plaintext highlighter-rouge">THREE.BufferGeometry</code>，通过计算顶点来构建图形，包括料箱、包裹、货架，甚至复杂的输送线系统。</p>

<h3 id="输送线的绘制与抽象设计">输送线的绘制与抽象设计</h3>

<p>现实中的输送线由不同类型的线体构成，比如直线段、弧线段、倾斜段等。为了模拟这一点，我将每个线体的形状抽象成一段 JSON 数据，通过读取这段描述来动态计算对应的顶点，实现线体的拼接。</p>

<p>这个过程虽然有些繁琐，也未必是最优解，但它带来了极大的灵活性——你可以在任意线体上安装设备，甚至动态调整结构。</p>

<p>你可以参考以下核心文件：</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ConveyorReal.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Item.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Rack.class.ts</code></li>
  <li><code class="language-plaintext highlighter-rouge">Container.class.ts</code></li>
</ul>

<hr />

<h2 id="大批量相似物体的高效渲染">大批量相似物体的高效渲染</h2>

<p>由于仓库中的货架、料箱、包裹形状都完全相同，仅尺寸、颜色、位置不同，为了提升渲染效率，我使用了 <strong><code class="language-plaintext highlighter-rouge">THREE.InstancedMesh</code></strong>，并封装成了自定义的 <code class="language-plaintext highlighter-rouge">wik.InstancedMesh</code> 类，增强了它的交互性与动态能力。</p>

<h3 id="为什么使用-instancedmesh">为什么使用 InstancedMesh？</h3>

<p>InstancedMesh 能带来如下性能优势：</p>

<ul>
  <li>
    <p><strong>极大减少 draw call</strong>
渲染 1000 个物体本来需要 1000 次调用，用 InstancedMesh 只需一次调用，极大减轻 CPU 到 GPU 的通信负担。</p>
  </li>
  <li>
    <p><strong>共用几何体与材质</strong>
所有实例共用一套模型与材质，节省内存，减少状态切换。</p>
  </li>
  <li>
    <p><strong>GPU 并行处理实例变换</strong>
每个实例的位置、旋转、缩放等信息可以一次性传给 GPU 并行处理，效率更高。</p>
  </li>
</ul>

<p>一句话总结：“少沟通、多批量处理”，GPU 干活才高效。</p>

<hr />

<h3 id="wikinstancedmesh-实现了什么">wik.InstancedMesh 实现了什么？</h3>

<p>我封装的 <code class="language-plaintext highlighter-rouge">wik.InstancedMesh</code>，具备以下特性：</p>

<ul>
  <li>支持 <strong>动态添加 / 删除实例</strong></li>
  <li>使用 <code class="language-plaintext highlighter-rouge">updateRange</code> 合并更新区域，减少数据上传</li>
  <li>可通过 <code class="language-plaintext highlighter-rouge">toIndividual</code> 分离某个实例为独立物体，便于动画等个体操作，再用 <code class="language-plaintext highlighter-rouge">toInstanced</code> 恢复回去</li>
</ul>

<hr />

<h2 id="交互与状态管理">交互与状态管理</h2>

<p>在这个 3D 仓库系统中，任何物体都可以被选中，且在鼠标悬停时具有样式变化。这背后我实现了一套统一的鼠标交互规范。</p>

<h3 id="实现方法">实现方法</h3>

<p>通过实现 <code class="language-plaintext highlighter-rouge">Interactive.ts</code> 中定义的接口，只需为你的物体（可以是 <code class="language-plaintext highlighter-rouge">Object3D</code>，也可以是 <code class="language-plaintext highlighter-rouge">InstancedMesh</code>）挂载交互逻辑，就能自动获得：</p>

<ul>
  <li>鼠标悬停高亮</li>
  <li>点击选中响应</li>
  <li>状态管理能力</li>
</ul>

<p>这一规范的设计，极大地提升了系统的扩展性与一致性。</p>

<hr />

<h2 id="动画系统设计">动画系统设计</h2>

<p>动画的实现是基于帧函数（frame function）的注册机制。你可以在任何时刻向系统添加一个帧函数来控制动画流程，并在动画结束后将其注销。</p>

<p>示例代码如下：</p>

<div class="language-ts highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">ffn</span> <span class="o">=</span> <span class="p">(</span><span class="nx">delta</span><span class="p">,</span> <span class="nx">elapsed</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="c1">// 自定义动画逻辑</span>
  <span class="k">if </span><span class="p">(</span><span class="cm">/* 动画结束条件 */</span><span class="p">)</span> <span class="k">this</span><span class="p">.</span><span class="nf">unframe</span><span class="p">(</span><span class="nx">ffn</span><span class="p">);</span>
<span class="p">};</span>

<span class="k">this</span><span class="p">.</span><span class="nf">onframe</span><span class="p">(</span><span class="nx">ffn</span><span class="p">);</span>  <span class="c1">// 注册动画函数</span>
</code></pre></div></div>

<p>这套机制很轻量，适合局部控制，灵活性强，易于管理。</p>

<hr />

<h2 id="总结">总结</h2>

<p>对于需要渲染大量相似图形的场景，性能始终是首要问题。我的做法是：</p>

<ul>
  <li>使用 <code class="language-plaintext highlighter-rouge">InstancedMesh</code> 减少 draw call 数量</li>
  <li>使用 <code class="language-plaintext highlighter-rouge">updateRange</code> 精准控制数据更新区域</li>
  <li>封装交互协议和渲染逻辑，提升可扩展性</li>
  <li>抽象输送线输入结构，实现灵活构建与动态变化</li>
</ul>

<p>这些思路不一定是最完美的，但它们确实解决了我当时遇到的问题，并支撑了整个系统流畅运行。</p>

<p>如果你对某一部分实现感兴趣，或者希望我深入讲讲哪一块，欢迎留言交流。我也会在未来有空的时候，继续分享更多细节和心得。</p>

<p>感谢阅读！</p>]]></content><author><name></name></author><category term="tech" /><summary type="html"><![CDATA[]]></summary></entry></feed>