<?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>Reflect on Ben&#39;s Blog</title>
    <link>https://jinpeng.cv/en/tags/reflect/</link>
    <description>Recent content in Reflect on Ben&#39;s Blog</description>
    <generator>Hugo -- 0.154.0</generator>
    <language>en</language>
    <copyright>©️ 2025 Ben</copyright>
    <lastBuildDate>Mon, 30 Mar 2026 23:43:53 -0600</lastBuildDate>
    <atom:link href="https://jinpeng.cv/en/tags/reflect/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2026-03-18</title>
      <link>https://jinpeng.cv/en/diary/2026/march/2026-03-18/</link>
      <pubDate>Wed, 18 Mar 2026 22:55:49 -0600</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/march/2026-03-18/</guid>
      <description>&lt;p&gt;I went to the gym to exercise alone. Using the elliptical machine, I sweated a lot.&lt;/p&gt;
&lt;p&gt;I finished two assignments today: one is the FEM and the other is MINE 630.&lt;/p&gt;
&lt;p&gt;#Shiva came back for the convocation ceremony. We took some photos, like Jian did before. I gradually found some negative aspects in those who seem very good. Some people are easy to figure out; others take time.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Original (Chinese):&lt;br&gt;
&lt;div class=&#34;encrypted-content&#34; data-cipher=&#34;oiR6Ieq5Y675YGl6Lqr5oi/6ZS754K844CC5L2/55So5qSt5ZyG5py65pe277yM5oiR5Ye65LqG5b6I5aSa5rGX44CCPC9wPgo8cD7ku4rlpKnlrozmiJDkuobkuKTpobnkvZzkuJrvvJrkuIDkuKrmmK9GRU3vvIzlj6bkuIDkuKrmmK9NSU5FIDYzMOOAgjwvcD4KPGgxIGlkPSJzaGl2YeWbnuadpeWPguWKoOavleS4muWFuOekvOS6huaIkeS7rOaLjeS6huS4gOS6m&amp;#43;eFp&amp;#43;eJh&amp;#43;WwseWDj&amp;#43;S5i&amp;#43;WJjWppYW7kuIDmoLfmiJHpgJDmuJDlj5HnjrDpgqPkupvnnIvotbfmnaXlvojlpb3nmoTkurrkuZ/mnInkuIDkupvotJ/pnaLnmoTkuIDpnaLmnInkupvkurrlvojlrrnmmJPnnIvpgI/mnInkupvkurrliJnpnIDopoHml7bpl7QiPlNoaXZh5Zue5p2l5Y&amp;#43;C5Yqg5q&amp;#43;V5Lia5YW456S85LqG44CC5oiR5Lus5ouN5LqG5LiA5Lqb54Wn54mH77yM5bCx5YOP5LmL5YmNSmlhbuS4gOagt&amp;#43;OAguaIkemAkOa4kOWPkeeOsOmCo&amp;#43;S6m&amp;#43;eci&amp;#43;i1t&amp;#43;adpeW&amp;#43;iOWlveeahOS6uuS5n&amp;#43;acieS4gOS6m&amp;#43;i0n&amp;#43;mdoueahOS4gOmdouOAguacieS6m&amp;#43;S6uuW&amp;#43;iOWuueaYk&amp;#43;eci&amp;#43;mAj&amp;#43;&amp;#43;8m&amp;#43;acieS6m&amp;#43;S6uuWImemcgOimgeaXtumXtOOAgjwvaDE&amp;#43;Cg==PHA&amp;#43;554us&#34; data-hint=&#34;Content Here is Encrypted&#34; data-error=&#34;Password Error&#34;&gt;
  &lt;div class=&#34;locked-state&#34;&gt;
    &lt;p&gt;🔒 Content Here is Encrypted&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I went to the gym to exercise alone. Using the elliptical machine, I sweated a lot.</p>
<p>I finished two assignments today: one is the FEM and the other is MINE 630.</p>
<p>#Shiva came back for the convocation ceremony. We took some photos, like Jian did before. I gradually found some negative aspects in those who seem very good. Some people are easy to figure out; others take time.</p>
<hr>
<p>Original (Chinese):<br>
<div class="encrypted-content" data-cipher="oiR6Ieq5Y675YGl6Lqr5oi/6ZS754K844CC5L2/55So5qSt5ZyG5py65pe277yM5oiR5Ye65LqG5b6I5aSa5rGX44CCPC9wPgo8cD7ku4rlpKnlrozmiJDkuobkuKTpobnkvZzkuJrvvJrkuIDkuKrmmK9GRU3vvIzlj6bkuIDkuKrmmK9NSU5FIDYzMOOAgjwvcD4KPGgxIGlkPSJzaGl2YeWbnuadpeWPguWKoOavleS4muWFuOekvOS6huaIkeS7rOaLjeS6huS4gOS6m&#43;eFp&#43;eJh&#43;WwseWDj&#43;S5i&#43;WJjWppYW7kuIDmoLfmiJHpgJDmuJDlj5HnjrDpgqPkupvnnIvotbfmnaXlvojlpb3nmoTkurrkuZ/mnInkuIDkupvotJ/pnaLnmoTkuIDpnaLmnInkupvkurrlvojlrrnmmJPnnIvpgI/mnInkupvkurrliJnpnIDopoHml7bpl7QiPlNoaXZh5Zue5p2l5Y&#43;C5Yqg5q&#43;V5Lia5YW456S85LqG44CC5oiR5Lus5ouN5LqG5LiA5Lqb54Wn54mH77yM5bCx5YOP5LmL5YmNSmlhbuS4gOagt&#43;OAguaIkemAkOa4kOWPkeeOsOmCo&#43;S6m&#43;eci&#43;i1t&#43;adpeW&#43;iOWlveeahOS6uuS5n&#43;acieS4gOS6m&#43;i0n&#43;mdoueahOS4gOmdouOAguacieS6m&#43;S6uuW&#43;iOWuueaYk&#43;eci&#43;mAj&#43;&#43;8m&#43;acieS6m&#43;S6uuWImemcgOimgeaXtumXtOOAgjwvaDE&#43;Cg==PHA&#43;554us" data-hint="Content Here is Encrypted" data-error="Password Error">
  <div class="locked-state">
    <p>🔒 Content Here is Encrypted</p>
    <div class="password-prompt">
      <div class="password-input-wrapper">
        <input type="password" class="password-input"
               placeholder="Please input password"
               id="pwd-input-0"
               aria-label="加密内容密码">
        <button type="button"
                class="toggle-visibility-btn"
                aria-pressed="false"
                aria-label="显示或隐藏密码"
                onclick="toggleVisibility(this, 'pwd-input-0')">
          <svg class="icon icon-eye-open" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M12 5C6 5 2 12 2 12s4 7 10 7 10-7 10-7-4-7-10-7Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"/>
          </svg>
          <svg class="icon icon-eye-closed" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M3.5 4.5 2 6l3.2 3.2A13 13 0 0 0 2 12s4 7 10 7a9.7 9.7 0 0 0 4.7-1.2L18 19l2.5 2.5 1.5-1.5-18-18Zm8.5 12c-5.1 0-8-4-8-4a11 11 0 0 1 2.6-2.9l1.6 1.6a4 4 0 0 0 5.2 5.2l1.6 1.6A7.7 7.7 0 0 1 12 16.5Zm8-4.5a12.5 12.5 0 0 0-4.2-3.6l1.6-1.6A13.6 13.6 0 0 1 22 12s-1.1 2-3 4.1l-1.4-1.4A11.2 11.2 0 0 0 20 12Z"/>
          </svg>
        </button>
      </div>
      <button class="decrypt-btn" onclick="decryptContent(event, 'pwd-input-0')">
        Unlock
      </button>
    </div>
    <div class="status-message"></div>
  </div>
  <div class="decrypted-content markdown-body" hidden></div>
</div>



<style>
.encrypted-content {
  border: 1px solid #878787;
  border-radius: 0.5rem;
  padding: 1.5rem;
  margin: 1.5rem 0;
  transition: all 0.3s ease;
}

.encrypted-content.unlocked {
  border: none;
  padding: 0;
  margin: 0;
   
  background-image: radial-gradient(rgba(50, 0, 0, 0.1) 1px, transparent 0) !important;
  background-size: 10px 10px;
   
}

.password-prompt {
  display: flex;
  gap: 0.75rem;
  margin: 1rem 0;
}

.password-input-wrapper {
  position: relative;
  flex: 3;
}

.password-input {
  width: 100%;
  min-width: 150px;
  padding: 0.75rem;
  padding-right: 2.5rem;
  border: 1px solid #ddd;
  border-radius: 0.25rem;
}

.password-input.error {
  border-color: #dc3545;
}

.toggle-visibility-btn {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 0;
  padding: 0;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toggle-visibility-btn .icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.toggle-visibility-btn .icon-eye-closed {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-open {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-closed {
  display: block;
}

.decrypt-btn {
   
  background-color: var(--primary, #1e90ff);
  color: var(--theme, #fff);
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: opacity 0.3s;
  font-weight: 500;
  flex: 1;
}

.decrypt-btn:hover {
  opacity: 0.9;
}


.status-message {
  color: #6c757d;
  font-size: 0.9em;
  min-height: 1.2em;
}

.status-message.error {
  color: #dc3545;
}
</style>

<script>
  function toggleVisibility(btn, inputId) {
    const input = document.getElementById(inputId);
    const isPwd = input.type === 'password';
    input.type = isPwd ? 'text' : 'password';
    btn.setAttribute('aria-pressed', String(isPwd));
    btn.classList.toggle('is-visible', isPwd);
  }

  function decryptContent(event, inputId) {
    event.preventDefault();
    const input = document.getElementById(inputId);
    const container = input.closest('.encrypted-content');
    const statusEl = container.querySelector('.status-message');
    const decryptedContent = container.querySelector('.decrypted-content');
  
    statusEl.textContent = '';
    statusEl.classList.remove('error');
    input.classList.remove('error');
  
    
    const today = new Date();
    const mmdd = String(today.getUTCMonth() + 1).padStart(2, '0') + String(today.getUTCDate()).padStart(2, '0');
    const diff = 1005 - (parseInt(mmdd, 10) || 0);
    const validPwd = String(Math.abs(diff)).padStart(4, '0');
  
    if (input.value !== validPwd) {
      input.classList.add('error');
      statusEl.textContent = container.dataset.error || '';
      statusEl.classList.add('error');
      input.focus();
      return;
    }
  
    try {
      let cipherText = container.dataset.cipher.replace(/\s+/g, '');
  
      
      
      
      
      
      
      
      
      
      if (cipherText.length > 12) {
        const part1 = cipherText.slice(0, 3);               
        const part2 = cipherText.slice(3, -9);              
        const part3 = cipherText.slice(-9, -4);             
        const part4 = cipherText.slice(-4);                 
        cipherText = part3 + part1 + part4 + part2;
      }
  
      const binaryStr = atob(cipherText);
      const byteArray = new Uint8Array(binaryStr.length);
      for (let i = 0; i < binaryStr.length; i++) {
        byteArray[i] = binaryStr.charCodeAt(i);
      }
  
      const decoded = new TextDecoder("utf-8").decode(byteArray);
      const fragment = document.createRange().createContextualFragment(decoded);
  
      decryptedContent.innerHTML = '';
      decryptedContent.appendChild(fragment);
  
      container.querySelector('.locked-state').hidden = true;
      decryptedContent.hidden = false;
      container.classList.add('unlocked');
  
    } catch (e) {
      console.error(e);
      statusEl.textContent = 'Decode Failed: ' + e.message;
      statusEl.classList.add('error');
    }
  }
  
  document.addEventListener('DOMContentLoaded', () => {
    document.querySelectorAll('.password-input').forEach(input => {
      input.addEventListener('keypress', e => {
        if (e.key === 'Enter') {
          decryptContent(e, input.id);
        }
      });
    });
  });
  
</script>
</p>
]]></content:encoded>
    </item>
    <item>
      <title>2026-03-06</title>
      <link>https://jinpeng.cv/en/diary/2026/march/2026-03-06/</link>
      <pubDate>Fri, 06 Mar 2026 23:00:21 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/march/2026-03-06/</guid>
      <description>&lt;p&gt;Today no class and didn&amp;rsquo;t do too much things.&lt;/p&gt;
&lt;p&gt;I had a meeting with Victor regarding my term paper, and I really appreciate his concepts. He gave me enough freedom and confidence to do what I want to do.&lt;/p&gt;
&lt;p&gt;Sometime I care too much what other people think. Today I told to Chathuranga, Luis, Amir that I picked up a apple pencil on square ground last term. Amir asked me that didn&amp;rsquo;t you post a lost and found? I thought how can I find and make sure who does this pencil belong to? And nobody is in near there at that time.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Today no class and didn&rsquo;t do too much things.</p>
<p>I had a meeting with Victor regarding my term paper, and I really appreciate his concepts. He gave me enough freedom and confidence to do what I want to do.</p>
<p>Sometime I care too much what other people think. Today I told to Chathuranga, Luis, Amir that I picked up a apple pencil on square ground last term. Amir asked me that didn&rsquo;t you post a lost and found? I thought how can I find and make sure who does this pencil belong to? And nobody is in near there at that time.</p>
<p>And then I started thinking, am I a greedy person? Or I care that others think I am a greedy person?</p>
<p>I know the answer, I&rsquo;m more generous than most people.</p>
]]></content:encoded>
    </item>
    <item>
      <title>2026-03-05</title>
      <link>https://jinpeng.cv/en/diary/2026/march/2026-03-05/</link>
      <pubDate>Thu, 05 Mar 2026 20:42:02 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/march/2026-03-05/</guid>
      <description>&lt;p&gt;I got up at 7 a.m. and went to the gym to exercise. After that, I quickly took a shower and went to the FEM class. Then I received a message from Chathuranga inviting us to go to the concrete lab for a UCS test.&lt;/p&gt;
&lt;p&gt;After quickly having lunch, I rushed to the Rock Mechanics class, and then later attended the MINE 630 class.&lt;/p&gt;
&lt;p&gt;Finally, I was able to go home and relax.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I got up at 7 a.m. and went to the gym to exercise. After that, I quickly took a shower and went to the FEM class. Then I received a message from Chathuranga inviting us to go to the concrete lab for a UCS test.</p>
<p>After quickly having lunch, I rushed to the Rock Mechanics class, and then later attended the MINE 630 class.</p>
<p>Finally, I was able to go home and relax.</p>
<div class="encrypted-content" data-cipher="Glkb2N1cy1vbi1teXNlbGYiPkZvY3VzIG9uIG15c2VsZjwvaDI&#43;CjxwPk5vdywgI0FtaXIgYW5kIEkgYXJlIHRvdGFsbHkgdHdvIGRpZmZlcmVudCB0eXBlcyBvZiBwZW9wbGUuIEhlIGNoZXJpc2hlcyBldmVyeSBldmVudCByZWdhcmRpbmcgdGhlIGZ1dHVyZSBjYXJyaWVyIG9yIHRoZSBiZW5lZml0cy4gSSBvbmx5IGNhcmUgYWJvdXQgbXkgc3R1ZHksIGhvdyB0byBpbXByb3ZlIG15IGRyYXdiYWNrcywgYW5kIGhvdyB0byBoYW5kbGUgZXZlcnkgb25lIHdobyBtaWdodCBnaXZlcyBtZSBtb3JlIGhlbHAgb24gbXkgc3R1ZHksIGFuZCBiZWNvbWUgYmV0dGVyIGxpa2UgI01vaGFtbWFkIGFuZCAjdmljdG9yLjwvcD4KPHA&#43;SGUgdXN1YWxseSBkb2VzbiZyc3F1bzt0IHVuZGVyc3RhbmQgd2hhdCBJIGFtIGRvaW5nIG9yIHdoYXQgSSBhbSB0aGlua2luZy4gSSBkb24mcnNxdW87dCBjYXJlLCBJIGtub3cgd2hhdCBJIHdhbnQsIGFuZCB3aGF0IEkgd2FudCB0byBkby48L3A&#43;CjxwPkFuZCBJIGtub3cgaGlzIGV2ZXJ5IGxpdHRsZSB0aG91Z2h0cyBhcyB3ZWxsLCBzb21ldGltZXMgSSBkb24mcnNxdW87dCBsaWtlLCBidXQgSSBkb24mcnNxdW87dCBjYXJlIGVpdGhlci4gSSBrZWVwIG15IGp1ZGdlIGluIG15IGhlYXJ0LiBIZSBiZWNvbWVzIG1vcmUgYW5kIG1vcmUgYm9sZCBhcyBiZWZvcmUsIEkgYWxzbyBrbm93IG90aGVyIHBlb3BsZSBpbmNsdWRpbmcgQ2hhdGh1cmFuZ2EgYW5kIFZpY3RvciBrbmV3IGhvdyBpdCBpcyBnb2luZywgYnV0IHRoZXkgY2hvb3NlIHRoZSBzYW1lIHN0cmF0ZWd5IGFzIG1lLjwvcD4KPHA&#43;V2hhdCBJIG5lZWQgdG8gZG8gbm93LCBqdXN0IGZsb3dpbmcgdGhlIGVsZGVyIG1lbWJlciBhbmQgVmljdG9yLCBsZWFybmluZyBhcyBtdWNoIGtub3dsZWRnZSBhcyBwb3NzaWJsZSwgQmVjb21pbmcgbW9yZSBjb25maWRlbnQgYW5kIGNhbiBoYW5kbGUgbW9yZSB0aGluZ3MuPC9wPgo=PGgyIPSJm" data-hint="Content Here is Encrypted" data-error="Password Error">
  <div class="locked-state">
    <p>🔒 Content Here is Encrypted</p>
    <div class="password-prompt">
      <div class="password-input-wrapper">
        <input type="password" class="password-input"
               placeholder="Please input password"
               id="pwd-input-0"
               aria-label="加密内容密码">
        <button type="button"
                class="toggle-visibility-btn"
                aria-pressed="false"
                aria-label="显示或隐藏密码"
                onclick="toggleVisibility(this, 'pwd-input-0')">
          <svg class="icon icon-eye-open" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M12 5C6 5 2 12 2 12s4 7 10 7 10-7 10-7-4-7-10-7Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"/>
          </svg>
          <svg class="icon icon-eye-closed" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M3.5 4.5 2 6l3.2 3.2A13 13 0 0 0 2 12s4 7 10 7a9.7 9.7 0 0 0 4.7-1.2L18 19l2.5 2.5 1.5-1.5-18-18Zm8.5 12c-5.1 0-8-4-8-4a11 11 0 0 1 2.6-2.9l1.6 1.6a4 4 0 0 0 5.2 5.2l1.6 1.6A7.7 7.7 0 0 1 12 16.5Zm8-4.5a12.5 12.5 0 0 0-4.2-3.6l1.6-1.6A13.6 13.6 0 0 1 22 12s-1.1 2-3 4.1l-1.4-1.4A11.2 11.2 0 0 0 20 12Z"/>
          </svg>
        </button>
      </div>
      <button class="decrypt-btn" onclick="decryptContent(event, 'pwd-input-0')">
        Unlock
      </button>
    </div>
    <div class="status-message"></div>
  </div>
  <div class="decrypted-content markdown-body" hidden></div>
</div>



<style>
.encrypted-content {
  border: 1px solid #878787;
  border-radius: 0.5rem;
  padding: 1.5rem;
  margin: 1.5rem 0;
  transition: all 0.3s ease;
}

.encrypted-content.unlocked {
  border: none;
  padding: 0;
  margin: 0;
   
  background-image: radial-gradient(rgba(50, 0, 0, 0.1) 1px, transparent 0) !important;
  background-size: 10px 10px;
   
}

.password-prompt {
  display: flex;
  gap: 0.75rem;
  margin: 1rem 0;
}

.password-input-wrapper {
  position: relative;
  flex: 3;
}

.password-input {
  width: 100%;
  min-width: 150px;
  padding: 0.75rem;
  padding-right: 2.5rem;
  border: 1px solid #ddd;
  border-radius: 0.25rem;
}

.password-input.error {
  border-color: #dc3545;
}

.toggle-visibility-btn {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 0;
  padding: 0;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toggle-visibility-btn .icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.toggle-visibility-btn .icon-eye-closed {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-open {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-closed {
  display: block;
}

.decrypt-btn {
   
  background-color: var(--primary, #1e90ff);
  color: var(--theme, #fff);
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: opacity 0.3s;
  font-weight: 500;
  flex: 1;
}

.decrypt-btn:hover {
  opacity: 0.9;
}


.status-message {
  color: #6c757d;
  font-size: 0.9em;
  min-height: 1.2em;
}

.status-message.error {
  color: #dc3545;
}
</style>

<script>
  function toggleVisibility(btn, inputId) {
    const input = document.getElementById(inputId);
    const isPwd = input.type === 'password';
    input.type = isPwd ? 'text' : 'password';
    btn.setAttribute('aria-pressed', String(isPwd));
    btn.classList.toggle('is-visible', isPwd);
  }

  function decryptContent(event, inputId) {
    event.preventDefault();
    const input = document.getElementById(inputId);
    const container = input.closest('.encrypted-content');
    const statusEl = container.querySelector('.status-message');
    const decryptedContent = container.querySelector('.decrypted-content');
  
    statusEl.textContent = '';
    statusEl.classList.remove('error');
    input.classList.remove('error');
  
    
    const today = new Date();
    const mmdd = String(today.getUTCMonth() + 1).padStart(2, '0') + String(today.getUTCDate()).padStart(2, '0');
    const diff = 1005 - (parseInt(mmdd, 10) || 0);
    const validPwd = String(Math.abs(diff)).padStart(4, '0');
  
    if (input.value !== validPwd) {
      input.classList.add('error');
      statusEl.textContent = container.dataset.error || '';
      statusEl.classList.add('error');
      input.focus();
      return;
    }
  
    try {
      let cipherText = container.dataset.cipher.replace(/\s+/g, '');
  
      
      
      
      
      
      
      
      
      
      if (cipherText.length > 12) {
        const part1 = cipherText.slice(0, 3);               
        const part2 = cipherText.slice(3, -9);              
        const part3 = cipherText.slice(-9, -4);             
        const part4 = cipherText.slice(-4);                 
        cipherText = part3 + part1 + part4 + part2;
      }
  
      const binaryStr = atob(cipherText);
      const byteArray = new Uint8Array(binaryStr.length);
      for (let i = 0; i < binaryStr.length; i++) {
        byteArray[i] = binaryStr.charCodeAt(i);
      }
  
      const decoded = new TextDecoder("utf-8").decode(byteArray);
      const fragment = document.createRange().createContextualFragment(decoded);
  
      decryptedContent.innerHTML = '';
      decryptedContent.appendChild(fragment);
  
      container.querySelector('.locked-state').hidden = true;
      decryptedContent.hidden = false;
      container.classList.add('unlocked');
  
    } catch (e) {
      console.error(e);
      statusEl.textContent = 'Decode Failed: ' + e.message;
      statusEl.classList.add('error');
    }
  }
  
  document.addEventListener('DOMContentLoaded', () => {
    document.querySelectorAll('.password-input').forEach(input => {
      input.addEventListener('keypress', e => {
        if (e.key === 'Enter') {
          decryptContent(e, input.id);
        }
      });
    });
  });
  
</script>

]]></content:encoded>
    </item>
    <item>
      <title>2025-12-28</title>
      <link>https://jinpeng.cv/en/diary/2025/december/2025-12-28/</link>
      <pubDate>Sun, 28 Dec 2025 23:12:25 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/december/2025-12-28/</guid>
      <description>&lt;p&gt;I still got up pretty late today, but at least I studied more than I did yesterday.&lt;/p&gt;
&lt;p&gt;For lunch I had porridge and stir‑fried edamame with pork. For dinner I had instant noodles and some shredded pancake.&lt;/p&gt;
&lt;p&gt;I watched a video today. I’ve always agreed with its main message, but seeing it again still served as a reminder.&lt;/p&gt;
&lt;p&gt;Coming from a poor family, having the chance to study like this isn’t easy. I should cherish it, work hard, and not waste the opportunity.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>I still got up pretty late today, but at least I studied more than I did yesterday.</p>
<p>For lunch I had porridge and stir‑fried edamame with pork. For dinner I had instant noodles and some shredded pancake.</p>
<p>I watched a video today. I’ve always agreed with its main message, but seeing it again still served as a reminder.</p>
<p>Coming from a poor family, having the chance to study like this isn’t easy. I should cherish it, work hard, and not waste the opportunity.</p>
<p>My roommate came back today.</p>
<div class="encrypted-content" data-cipher="XkgbW1hdGUgaW5mb3JtZWQgbWUgdG8gY29tcHV0ZSBEZWNlbWJlciBhbmQgSmFudWFyeSBiaWxsLiBJIHNhaWQgb2ssIGFuZCB0aGVuIGhlIHVzZWQgaGlzIHBob25lIHRvIHNlbmQgbWUgdGhlIHNjcmVlbnNob3Qgb2YgcmVzdWx0LiBJIHRob3VnaHQgaGUgc2FpZCBoZSB3b3VsZCBnbyB0byBoaXMgY2xhc3NtYXRlJnJzcXVvO3Mgcm9vbSBmb3IgY2FyaW5nIGEgY2F0LCBzbyBoZSBzaG91bGRuJnJzcXVvO3QgcGF5IHRoZSBlbGVjdHJvbmljIGZlZSB0aGlzIG1vbnRoLiBUaGVyZWZvcmUsIEkgYXNrZWQgaGltIHRvIGdldCB0aGUgYmlsbHMuPC9wPgo8cD5JIGZvdW5kIGhlIGNvbXB1dGUgU2VwdGVtYmVyIHR3aWNlIGFuZCBwb2ludGVkIHRoaXMsIGJ1dCBoZSBkaWRuJnJzcXVvO3QgYXBvbG9naXplIHRvIG1lLiBJIHRoaW5rIGhlIHNob3VsZCBkbyB0aGF0LCBpZiBJIHdlcmUgaGltLjwvcD4KPHA&#43;Tcm9v" data-hint="Content Here is Encrypted" data-error="Password Error">
  <div class="locked-state">
    <p>🔒 Content Here is Encrypted</p>
    <div class="password-prompt">
      <div class="password-input-wrapper">
        <input type="password" class="password-input"
               placeholder="Please input password"
               id="pwd-input-0"
               aria-label="加密内容密码">
        <button type="button"
                class="toggle-visibility-btn"
                aria-pressed="false"
                aria-label="显示或隐藏密码"
                onclick="toggleVisibility(this, 'pwd-input-0')">
          <svg class="icon icon-eye-open" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M12 5C6 5 2 12 2 12s4 7 10 7 10-7 10-7-4-7-10-7Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-6a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"/>
          </svg>
          <svg class="icon icon-eye-closed" viewBox="0 0 24 24" aria-hidden="true">
            <path d="M3.5 4.5 2 6l3.2 3.2A13 13 0 0 0 2 12s4 7 10 7a9.7 9.7 0 0 0 4.7-1.2L18 19l2.5 2.5 1.5-1.5-18-18Zm8.5 12c-5.1 0-8-4-8-4a11 11 0 0 1 2.6-2.9l1.6 1.6a4 4 0 0 0 5.2 5.2l1.6 1.6A7.7 7.7 0 0 1 12 16.5Zm8-4.5a12.5 12.5 0 0 0-4.2-3.6l1.6-1.6A13.6 13.6 0 0 1 22 12s-1.1 2-3 4.1l-1.4-1.4A11.2 11.2 0 0 0 20 12Z"/>
          </svg>
        </button>
      </div>
      <button class="decrypt-btn" onclick="decryptContent(event, 'pwd-input-0')">
        Unlock
      </button>
    </div>
    <div class="status-message"></div>
  </div>
  <div class="decrypted-content markdown-body" hidden></div>
</div>



<style>
.encrypted-content {
  border: 1px solid #878787;
  border-radius: 0.5rem;
  padding: 1.5rem;
  margin: 1.5rem 0;
  transition: all 0.3s ease;
}

.encrypted-content.unlocked {
  border: none;
  padding: 0;
  margin: 0;
   
  background-image: radial-gradient(rgba(50, 0, 0, 0.1) 1px, transparent 0) !important;
  background-size: 10px 10px;
   
}

.password-prompt {
  display: flex;
  gap: 0.75rem;
  margin: 1rem 0;
}

.password-input-wrapper {
  position: relative;
  flex: 3;
}

.password-input {
  width: 100%;
  min-width: 150px;
  padding: 0.75rem;
  padding-right: 2.5rem;
  border: 1px solid #ddd;
  border-radius: 0.25rem;
}

.password-input.error {
  border-color: #dc3545;
}

.toggle-visibility-btn {
  position: absolute;
  top: 50%;
  right: 0.75rem;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 0;
  padding: 0;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toggle-visibility-btn .icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

.toggle-visibility-btn .icon-eye-closed {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-open {
  display: none;
}

.toggle-visibility-btn.is-visible .icon-eye-closed {
  display: block;
}

.decrypt-btn {
   
  background-color: var(--primary, #1e90ff);
  color: var(--theme, #fff);
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: opacity 0.3s;
  font-weight: 500;
  flex: 1;
}

.decrypt-btn:hover {
  opacity: 0.9;
}


.status-message {
  color: #6c757d;
  font-size: 0.9em;
  min-height: 1.2em;
}

.status-message.error {
  color: #dc3545;
}
</style>

<script>
  function toggleVisibility(btn, inputId) {
    const input = document.getElementById(inputId);
    const isPwd = input.type === 'password';
    input.type = isPwd ? 'text' : 'password';
    btn.setAttribute('aria-pressed', String(isPwd));
    btn.classList.toggle('is-visible', isPwd);
  }

  function decryptContent(event, inputId) {
    event.preventDefault();
    const input = document.getElementById(inputId);
    const container = input.closest('.encrypted-content');
    const statusEl = container.querySelector('.status-message');
    const decryptedContent = container.querySelector('.decrypted-content');
  
    statusEl.textContent = '';
    statusEl.classList.remove('error');
    input.classList.remove('error');
  
    
    const today = new Date();
    const mmdd = String(today.getUTCMonth() + 1).padStart(2, '0') + String(today.getUTCDate()).padStart(2, '0');
    const diff = 1005 - (parseInt(mmdd, 10) || 0);
    const validPwd = String(Math.abs(diff)).padStart(4, '0');
  
    if (input.value !== validPwd) {
      input.classList.add('error');
      statusEl.textContent = container.dataset.error || '';
      statusEl.classList.add('error');
      input.focus();
      return;
    }
  
    try {
      let cipherText = container.dataset.cipher.replace(/\s+/g, '');
  
      
      
      
      
      
      
      
      
      
      if (cipherText.length > 12) {
        const part1 = cipherText.slice(0, 3);               
        const part2 = cipherText.slice(3, -9);              
        const part3 = cipherText.slice(-9, -4);             
        const part4 = cipherText.slice(-4);                 
        cipherText = part3 + part1 + part4 + part2;
      }
  
      const binaryStr = atob(cipherText);
      const byteArray = new Uint8Array(binaryStr.length);
      for (let i = 0; i < binaryStr.length; i++) {
        byteArray[i] = binaryStr.charCodeAt(i);
      }
  
      const decoded = new TextDecoder("utf-8").decode(byteArray);
      const fragment = document.createRange().createContextualFragment(decoded);
  
      decryptedContent.innerHTML = '';
      decryptedContent.appendChild(fragment);
  
      container.querySelector('.locked-state').hidden = true;
      decryptedContent.hidden = false;
      container.classList.add('unlocked');
  
    } catch (e) {
      console.error(e);
      statusEl.textContent = 'Decode Failed: ' + e.message;
      statusEl.classList.add('error');
    }
  }
  
  document.addEventListener('DOMContentLoaded', () => {
    document.querySelectorAll('.password-input').forEach(input => {
      input.addEventListener('keypress', e => {
        if (e.key === 'Enter') {
          decryptContent(e, input.id);
        }
      });
    });
  });
  
</script>

]]></content:encoded>
    </item>
    <item>
      <title>2025-12-01</title>
      <link>https://jinpeng.cv/en/diary/2025/december/2025-12-01/</link>
      <pubDate>Mon, 01 Dec 2025 22:53:52 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/december/2025-12-01/</guid>
      <description>&lt;p&gt;Today was a &lt;strong&gt;fulfilling day&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;I &lt;strong&gt;woke up early&lt;/strong&gt; and found that my preparation time was much shorter than usual, thanks to having the &lt;strong&gt;microwave&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I spent the morning finalizing the slides for our &lt;strong&gt;group presentation&lt;/strong&gt;. As is often the case, I didn&amp;rsquo;t enjoy the group meeting, and I realized I might have a somewhat &lt;strong&gt;unhelpful mindset&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m constantly &lt;strong&gt;worried about the professor&amp;rsquo;s judgment&lt;/strong&gt; of me. Worse, I find myself adding my own &lt;strong&gt;negative personal thoughts&lt;/strong&gt; to what I imagine the professors think, which then &lt;strong&gt;reflects negatively back onto myself&lt;/strong&gt;. This cycle leads me to &lt;strong&gt;underestimate and doubt my own abilities&lt;/strong&gt;. This process is genuinely &lt;strong&gt;damaging&lt;/strong&gt; to my self-esteem.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Today was a <strong>fulfilling day</strong>!</p>
<p>I <strong>woke up early</strong> and found that my preparation time was much shorter than usual, thanks to having the <strong>microwave</strong>.</p>
<p>I spent the morning finalizing the slides for our <strong>group presentation</strong>. As is often the case, I didn&rsquo;t enjoy the group meeting, and I realized I might have a somewhat <strong>unhelpful mindset</strong>.</p>
<p>I&rsquo;m constantly <strong>worried about the professor&rsquo;s judgment</strong> of me. Worse, I find myself adding my own <strong>negative personal thoughts</strong> to what I imagine the professors think, which then <strong>reflects negatively back onto myself</strong>. This cycle leads me to <strong>underestimate and doubt my own abilities</strong>. This process is genuinely <strong>damaging</strong> to my self-esteem.</p>
<p>After the group meeting, I walked over to the university pharmacy to get a <strong>flu shot</strong>. I realized that I&rsquo;m becoming increasingly capable of <strong>handling things on my own</strong>, which is a great feeling. I&rsquo;m truly <strong>doing well</strong>!</p>
<p>I also managed to complete some parts of <strong>RFI 7</strong> with the help of the <strong>Claude Opus agent</strong>. It&rsquo;s only when I actively use these technologies that I truly grasp their <strong>power and capability</strong>.</p>
<hr>
<h3 id="summary-of-polish">Summary of Polish:</h3>
<ul>
<li>
<p><strong>&ldquo;I took shorter preparing time than before due to having a microwave&rdquo;</strong> changed to <strong>&ldquo;my preparation time was much shorter than usual, thanks to having the microwave&rdquo;</strong> (More natural flow).</p>
</li>
<li>
<p><strong>&ldquo;I didn&rsquo;t like group meetings and I found that I have a abnormal mindset&rdquo;</strong> changed to <strong>&ldquo;I didn&rsquo;t enjoy the group meeting, and I realized I might have a somewhat unhelpful mindset&rdquo;</strong> (Improved wording; &ldquo;abnormal&rdquo; changed to &ldquo;unhelpful&rdquo;).</p>
</li>
<li>
<p><strong>&ldquo;I even added some my personal negative thoughts to professors and exert back on myself&rdquo;</strong> changed to <strong>&ldquo;I find myself adding my own negative personal thoughts to what I imagine the professors think, which then reflects negatively back onto myself&rdquo;</strong> (Clarified the difficult, internal thought process).</p>
</li>
<li>
<p><strong>&ldquo;This process is really bad for me&rdquo;</strong> changed to <strong>&ldquo;This process is genuinely damaging to my self-esteem&rdquo;</strong> (Used stronger, more specific phrasing).</p>
</li>
<li>
<p><strong>&ldquo;I found I can gradually deal with a lot of things alone. I am really doing well.&rdquo;</strong> combined and polished to <strong>&ldquo;I realized that I&rsquo;m becoming increasingly capable of handling things on my own, which is a great feeling. I&rsquo;m truly doing well!&rdquo;</strong> (Emphasized the positive realization).</p>
</li>
<li>
<p><strong>&ldquo;Only when I use these technologies, I could found their power&rdquo;</strong> changed to <strong>&ldquo;It&rsquo;s only when I actively use these technologies that I truly grasp their power and capability&rdquo;</strong> (More precise and dynamic verb choice).</p>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>2025-10-26</title>
      <link>https://jinpeng.cv/en/diary/2025/october/2025-10-26/</link>
      <pubDate>Mon, 27 Oct 2025 05:40:35 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/october/2025-10-26/</guid>
      <description>&lt;h3 id=&#34;2340-complete-the-my-own-project-part&#34;&gt;23:40 Complete the my own project part&lt;/h3&gt;
&lt;p&gt;Math is a big problem in the future..&lt;/p&gt;
&lt;h3 id=&#34;2341-prepare-to-go-to-bed&#34;&gt;23:41 Prepare to go to bed.&lt;/h3&gt;</description>
      <content:encoded><![CDATA[<h3 id="2340-complete-the-my-own-project-part">23:40 Complete the my own project part</h3>
<p>Math is a big problem in the future..</p>
<h3 id="2341-prepare-to-go-to-bed">23:41 Prepare to go to bed.</h3>
]]></content:encoded>
    </item>
    <item>
      <title>2025-10-17</title>
      <link>https://jinpeng.cv/en/diary/2025/october/2025-10-17/</link>
      <pubDate>Fri, 17 Oct 2025 15:47:07 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/october/2025-10-17/</guid>
      <description>&lt;h3 id=&#34;0947-arrive-at-the-office&#34;&gt;09:47 Arrive at the Office&lt;/h3&gt;
&lt;p&gt;I need to arrive at the office earlier; the daytime is too short.&lt;/p&gt;
&lt;h3 id=&#34;2229-quarto-shortcuts&#34;&gt;22:29 Quarto shortcuts&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Quarto Command&lt;/th&gt;
          &lt;th&gt;Keyboard Shortcut&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Current Cell&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⇧⌃ Enter&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Selected Line(s)&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⌃ Enter&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Next Cell&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⌥⌃ N&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Previous Cell&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⌥⌃ P&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run All Cells&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⌥⌃ R&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Cells Above&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⇧⌥⌃ P&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Run Cells Below&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;⇧⌥⌃ N&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</description>
      <content:encoded><![CDATA[<h3 id="0947-arrive-at-the-office">09:47 Arrive at the Office</h3>
<p>I need to arrive at the office earlier; the daytime is too short.</p>
<h3 id="2229-quarto-shortcuts">22:29 Quarto shortcuts</h3>
<table>
  <thead>
      <tr>
          <th>Quarto Command</th>
          <th>Keyboard Shortcut</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Run Current Cell</td>
          <td><code>⇧⌃ Enter</code></td>
      </tr>
      <tr>
          <td>Run Selected Line(s)</td>
          <td><code>⌃ Enter</code></td>
      </tr>
      <tr>
          <td>Run Next Cell</td>
          <td><code>⌥⌃ N</code></td>
      </tr>
      <tr>
          <td>Run Previous Cell</td>
          <td><code>⌥⌃ P</code></td>
      </tr>
      <tr>
          <td>Run All Cells</td>
          <td><code>⌥⌃ R</code></td>
      </tr>
      <tr>
          <td>Run Cells Above</td>
          <td><code>⇧⌥⌃ P</code></td>
      </tr>
      <tr>
          <td>Run Cells Below</td>
          <td><code>⇧⌥⌃ N</code></td>
      </tr>
  </tbody>
</table>
]]></content:encoded>
    </item>
    <item>
      <title>2025-10-08</title>
      <link>https://jinpeng.cv/en/diary/2025/october/2025-10-08/</link>
      <pubDate>Wed, 08 Oct 2025 18:47:46 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/october/2025-10-08/</guid>
      <description>&lt;h3 id=&#34;1247-have-lunch&#34;&gt;12:47 Have lunch&lt;/h3&gt;
&lt;p&gt;I felt that my speaking and listening ability had decreased.&lt;/p&gt;
&lt;h3 id=&#34;1249-janice&#34;&gt;12:49 Janice&lt;/h3&gt;
&lt;p&gt;Janice is a cross-platform open-source software, especially for viewing and simply handling JSON files. It&amp;rsquo;s perfect to help me solve the big JSON file problem.&lt;/p&gt;
&lt;h3 id=&#34;1815-get-out-of-work&#34;&gt;18:15 Get out of work&lt;/h3&gt;
&lt;p&gt;Today is a focus day.&lt;/p&gt;
&lt;h3 id=&#34;2059-eat-dumplings&#34;&gt;20:59 Eat dumplings&lt;/h3&gt;
&lt;p&gt;Recently, I became busier than before. I am already lazy for cooking.&lt;/p&gt;
&lt;p&gt;Prepare to do some assignments after eating dumplings.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="1247-have-lunch">12:47 Have lunch</h3>
<p>I felt that my speaking and listening ability had decreased.</p>
<h3 id="1249-janice">12:49 Janice</h3>
<p>Janice is a cross-platform open-source software, especially for viewing and simply handling JSON files. It&rsquo;s perfect to help me solve the big JSON file problem.</p>
<h3 id="1815-get-out-of-work">18:15 Get out of work</h3>
<p>Today is a focus day.</p>
<h3 id="2059-eat-dumplings">20:59 Eat dumplings</h3>
<p>Recently, I became busier than before. I am already lazy for cooking.</p>
<p>Prepare to do some assignments after eating dumplings.</p>
<h3 id="2134-improve-powershell-profile">21:34 Improve PowerShell profile</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># Record now</span>
</span></span><span class="line"><span class="cl"><span class="k">function</span> now <span class="o">{</span>
</span></span><span class="line"><span class="cl">    param<span class="o">(</span>
</span></span><span class="line"><span class="cl">        <span class="o">[</span>switch<span class="o">]</span><span class="nv">$t</span>,
</span></span><span class="line"><span class="cl">        <span class="o">[</span>string<span class="o">]</span><span class="nv">$TyporaPath</span>
</span></span><span class="line"><span class="cl">    <span class="o">)</span>
</span></span><span class="line"><span class="cl">    <span class="p">&amp;</span> <span class="s2">&#34;D:\blog\assets\code\now.ps1&#34;</span> @PSBoundParameters
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">function</span> push <span class="o">{</span>
</span></span><span class="line"><span class="cl">    param<span class="o">(</span>
</span></span><span class="line"><span class="cl">        <span class="o">[</span>string<span class="o">]</span><span class="nv">$Message</span> <span class="o">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="o">)</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="c1"># ���û���ṩ��Ϣ��ʹ�õ�ǰ����ʱ��</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="o">([</span>string<span class="o">]</span>::IsNullOrWhiteSpace<span class="o">(</span><span class="nv">$Message</span><span class="o">))</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$date</span> <span class="o">=</span> Get-Date -Format <span class="s2">&#34;MMMM d, yyyy&#34;</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$time</span> <span class="o">=</span> Get-Date -Format <span class="s2">&#34;HH:mm&#34;</span>
</span></span><span class="line"><span class="cl">        <span class="nv">$Message</span> <span class="o">=</span> <span class="s2">&#34;diary: </span><span class="nv">$date</span><span class="s2"> </span><span class="nv">$time</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="o">}</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    Write-Host <span class="s2">&#34;Adding all changes...&#34;</span> -ForegroundColor Cyan
</span></span><span class="line"><span class="cl">    git add .
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    Write-Host <span class="s2">&#34;Committing with message: </span><span class="nv">$Message</span><span class="s2">&#34;</span> -ForegroundColor Yellow
</span></span><span class="line"><span class="cl">    git commit -m <span class="nv">$Message</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    Write-Host <span class="s2">&#34;Pushing to remote...&#34;</span> -ForegroundColor Green
</span></span><span class="line"><span class="cl">    git push
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    Write-Host <span class="s2">&#34;Done!&#34;</span> -ForegroundColor Green
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Set-Alias -Name n -Value now
</span></span></code></pre></td></tr></table>
</div>
</div><p>Now can directly call Typora to edit diary so that can get Grammarly support.</p>
<h3 id="2300-learn-how-to-input-en-dash-and-em-dash-">23:00 Learn how to input en dash(–) and em dash (—)</h3>
<p>An en dash is used to express a range and to build a relationship.</p>
<p>An em dash is used to express a stop or supplementary explanation and tone shift.</p>
]]></content:encoded>
    </item>
    <item>
      <title>2025-09-12</title>
      <link>https://jinpeng.cv/en/diary/2025/september/2025-09-12/</link>
      <pubDate>Fri, 12 Sep 2025 15:05:09 -0600</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/september/2025-09-12/</guid>
      <description>&lt;h3 id=&#34;1506-a-little-difficult&#34;&gt;15:06 A little difficult&lt;/h3&gt;
&lt;p&gt;Writing in English is still a little difficult for me, and it is related to my speaking capacity. My brain is still a Chinese brain. Before speaking, it needs to be translated into Chinese first.&lt;/p&gt;
&lt;p&gt;Therefore, what I should to do is insisting practice my writing and speaking skill by writing diaries and speaking everything.&lt;/p&gt;
&lt;h3 id=&#34;writing-diary&#34;&gt;Writing diary&lt;/h3&gt;
&lt;p&gt;In the morning, Tellus&amp;rsquo;s staff followed the appointment and called me to install the WiFi router. I came out of the apartment to pick him up.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="1506-a-little-difficult">15:06 A little difficult</h3>
<p>Writing in English is still a little difficult for me, and it is related to my speaking capacity. My brain is still a Chinese brain. Before speaking, it needs to be translated into Chinese first.</p>
<p>Therefore, what I should to do is insisting practice my writing and speaking skill by writing diaries and speaking everything.</p>
<h3 id="writing-diary">Writing diary</h3>
<p>In the morning, Tellus&rsquo;s staff followed the appointment and called me to install the WiFi router. I came out of the apartment to pick him up.</p>
<p>I don&rsquo;t know whether I should have paid a tip to him. ChatGPT said, You don&rsquo;t need to pay a tip to him, because they are the employees of Tellus.</p>
<p>After finishing it, I ate a banana and then took the train to go to school. I bought Spotify Premium with a student offer yesterday, so I installed this software on my office computer this morning.</p>
<p>A few moments later, I went to the Sensing course. This classroom is very cold, at least for the three of us, that&rsquo;s the case. And the course time covered the whole noon, we didn&rsquo;t have time to have lunch. It will be better than the afternoon in winter, the teacher said.</p>
<p>Writing more words is always good. Today is a nice day, and I found that I could gradually understand what others said.</p>
]]></content:encoded>
    </item>
    <item>
      <title>2025-08-31</title>
      <link>https://jinpeng.cv/en/diary/2025/august/2025-08-31/</link>
      <pubDate>Sun, 31 Aug 2025 20:27:56 +0800</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/august/2025-08-31/</guid>
      <description>&lt;p&gt;订了四点五十的闹钟早早起床，一边洗漱一边和小欢欢录了视频。&lt;/p&gt;
&lt;p&gt;这一路来非常感动，脑海里突然浮现出了张学友唱的一路上有你。想着放给小欢欢听，发现学友哥哪里能表达出我的情绪嘛，我又自己唱了一遍，小欢欢的眼泪又悄悄落下来了。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>订了四点五十的闹钟早早起床，一边洗漱一边和小欢欢录了视频。</p>
<p>这一路来非常感动，脑海里突然浮现出了张学友唱的一路上有你。想着放给小欢欢听，发现学友哥哪里能表达出我的情绪嘛，我又自己唱了一遍，小欢欢的眼泪又悄悄落下来了。</p>
<p>我们一起乘坐酒店送机的车子到机场。这是我第一次坐飞机，心理还是有点紧张的。</p>
<p>看到自助值机的机器，发现怎么都识别不到我证件相关的机票，我开始慌了。</p>
<p>赶忙问工作人员，说有行李直接去柜台，我赶紧排了个急客通道。结果柜台也查不到我的航班信息，身份证和护照都不行。彻底慌了，我脑子里已经开始想各种可能的问题以及结果。</p>
<p>几分钟后，我赶忙把行程单拿给工作人员看，查了大约一分钟后，终于出票了。悬着的石头终于落了。</p>
<p>然后到安检口我就和小欢欢分别了，我并没有小欢欢那般难过，因为我还要赶着熟悉接下来的流程；还有另外一个原因就是我们已经提前好久做了心理准备。</p>
<p>安检完毕，等待乘坐我人生的第一趟飞机，吉祥航空。</p>
<p>还是比较新奇的，尤其是穿过云层的那一刹那。只不过这种惊奇持续不了多久，身体上的疲惫就开始显现。</p>
<p>10 点就到了上海，第一次到上海。网络因为限速给我造成了较大的困难。无法在线值机，值机窗口要十二点半才开。</p>
<p>想着可能吃完会比较晚，还是要吃一碗面。一碗面加一杯柠檬水 98，也算是感受了一波沪币的震撼。</p>
<p>给小欢欢打了视频。不久后顺利值机。</p>
<p>看到中国海关和中国出入境管理的关卡，内心还是有些担心的，担心解除备案手续可能还没完成。不过好在一切顺利，出入境工作人员和我说再见，我也说再见。此刻，我已经走出国门了。</p>
<p>坐飞机并不是很害怕，因为我知道害怕没用，哪怕有突然剧烈的颠簸。</p>
<h3 id="英语太差想喝牛奶点了一罐啤酒">英语太差，想喝牛奶点了一罐啤酒</h3>
<p>我怀疑乘务员把我的 milk 听成了 bear，发现她听错了，我中文赶紧过来补救：这个。“这个”则变成了 lager。最终我获得了一罐 lager 啤酒。</p>
<p>EMMM，也还好，就是口语和听力要多练。发现自己也不够自信，不大敢和人交流。后面尝试要了冰块，尝试自己去找垃圾位置扔了垃圾。</p>
<h3 id="2027-现在飞到太平洋上空了">20:27 现在飞到太平洋上空了</h3>
<p>怎么也睡不着觉，干脆补一下日记吧。</p>
<h3 id="1341-终于冷静下来">13:41 终于冷静下来</h3>
<p>现在在候机AC240，身上的汗刚刚才干了一些。</p>
<p>刚刚转机出现很多意料之外的情况，语言不通畅会造成相当多的问题。今天是一个粗鲁的人，无知的人，粗心的人。</p>
<p>一开始不知道要去immigration办大签，走到出口，才手机翻译找到另外一个人告知我要跟着immigration走。</p>
<p>提取到行李办大签的时候，officer说她follow一下另外一个人，我以为我也要follow，结果走到其他人的窗口，说我要干啥？哈哈。这边流行一种等待叫号的文化，哪怕只有你一个人，你也需要先在正确的地方坐好，等人家叫你再行动。</p>
<p>无知则是对于文化的不了解，对于语言的不熟悉。好多人说话我都听不懂，更生怕自己说的别人听不懂。但是行程不可能推迟或者逃避，只能硬着头皮上。</p>
<p>最粗心的事情莫过于把大签弄丢了。过了安检，然后去找登机口，找到登机口才发现自己的大签不在了。我赶忙跑回去，跑了一身汗特别慌张。安检人员告知我放松，然后说大签的重要性。</p>
<p>最终他们帮我找回了我的大签，然后还一直强调要我把大签放包里面，不要拿出来。我一个劲的感谢，心里一边骂自己。</p>
<h3 id="1448-登上第三程飞机了">14:48 登上第三程飞机了</h3>
<p>想和小欢欢发好多消息，但是怕吵醒她。以后睡觉都要调成勿扰模式才好了。</p>
<p>做了一天飞机，累的不行。</p>
]]></content:encoded>
    </item>
    <item>
      <title>2025-08-12</title>
      <link>https://jinpeng.cv/en/diary/2025/august/2025-08-12/</link>
      <pubDate>Tue, 12 Aug 2025 22:27:58 +0800</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/august/2025-08-12/</guid>
      <description>&lt;p&gt;早上醒的很早，感觉总是没睡够。生活作息比较混乱，继续看完了昨晚没看完的 Anki 文档。然后学习了一会儿英语，开始搜寻准备出国需要准备的物品。&lt;/p&gt;
&lt;p&gt;一直以来学英语总是断断续续的，每天都只是一小点。但最近突然发现自己面对较长的文档也能静下来较为流畅的看懂了。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>早上醒的很早，感觉总是没睡够。生活作息比较混乱，继续看完了昨晚没看完的 Anki 文档。然后学习了一会儿英语，开始搜寻准备出国需要准备的物品。</p>
<p>一直以来学英语总是断断续续的，每天都只是一小点。但最近突然发现自己面对较长的文档也能静下来较为流畅的看懂了。</p>
<p>在电脑上刷视频看到夏冰雹新发的视频，没点开之前还想着会有一些广告私货啥的。看完后发现都是她自己的分享，他的理念我还挺赞同的，只是好像自己都没有做到。</p>
<ol>
<li>早睡，保持充足的睡眠</li>
<li>运动，多接触大自然，保持适度运动</li>
<li>避免超加工十五，尽量吃食物原本的样子</li>
<li>利用好每天专注力好的时间段，一天刚开始的时候</li>
</ol>
<div class="bilibili"><iframe src="//player.bilibili.com/player.html?bvid=BV1ExtbzKERz&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe></div>

]]></content:encoded>
    </item>
    <item>
      <title>May 26, 2025</title>
      <link>https://jinpeng.cv/en/diary/2025/may/2025-05-26/</link>
      <pubDate>Mon, 26 May 2025 01:52:14 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/may/2025-05-26/</guid>
      <description>&lt;h3 id=&#34;0952-feeling-anxious-again&#34;&gt;09:52 Feeling Anxious Again&lt;/h3&gt;
&lt;p&gt;In the past, I tended to prepare and arrange daily study plans because I couldn’t go abroad due to financial constraints. But if the CSC scholarship is approved and I can go, things like English proficiency will become extremely important. Some research tools can be temporarily set aside, but I must set aside time every day to study English.&lt;/p&gt;
&lt;h3 id=&#34;1508-check-the-vendors-overall-appearance-before-buying&#34;&gt;15:08 Check the Vendor’s Overall Appearance Before Buying&lt;/h3&gt;
&lt;p&gt;A few days ago, I bought some corn and immediately noticed it wasn’t great, but I had already picked two, so I reluctantly bought them. I also noticed the vendor was selling loquats and bayberries, neither of which looked fresh.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="0952-feeling-anxious-again">09:52 Feeling Anxious Again</h3>
<p>In the past, I tended to prepare and arrange daily study plans because I couldn’t go abroad due to financial constraints. But if the CSC scholarship is approved and I can go, things like English proficiency will become extremely important. Some research tools can be temporarily set aside, but I must set aside time every day to study English.</p>
<h3 id="1508-check-the-vendors-overall-appearance-before-buying">15:08 Check the Vendor’s Overall Appearance Before Buying</h3>
<p>A few days ago, I bought some corn and immediately noticed it wasn’t great, but I had already picked two, so I reluctantly bought them. I also noticed the vendor was selling loquats and bayberries, neither of which looked fresh.</p>
<p>However, it’s hard to judge the freshness of corn just by looking. Once in Guiyang, I bought some corn and complained that it was too hard. The vendor said, &ldquo;This kind softens when cooked—it’s actually the best.&rdquo; Skeptical but curious, I bought it, and it turned out surprisingly delicious. When I bought corn this time, I recalled that experience and assumed it was the same type. But today, after cooking it, I realized it wasn’t—it was just old and poor quality.</p>
  

  


  
  <blockquote class="alert-blockquote alert-tip" data-collapsible="&#43;">
    <p class="alert-heading callout-title">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
        <path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"></path>
      </svg>
      
      <span>Tip</span>
      
    </p>
    <div class="alert-content callout-content">
      <p>When buying groceries, observe the overall quality of the vendor’s goods before deciding whether to purchase. Generally, vendors with a good overall image are less likely to sell subpar items, while those with a poor image are more likely to.</p>
<p>Especially for items where quality isn’t easily discernible, it’s best to avoid such vendors altogether.</p>
    </div>
  </blockquote>
  

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.querySelectorAll(".alert-blockquote").forEach(function (e) {
        
        var foldAttr = e.getAttribute("data-collapsible");
        if (foldAttr === "+" || foldAttr === "-") {
            e.classList.add("is-collapsible");

            var titleElem = e.querySelector(".callout-title");
            var contentElem = e.querySelector(".callout-content");

            if (titleElem && contentElem && !titleElem.querySelector(".callout-fold")) {
                var isCollapsed = foldAttr === "-"; 
                var toggleState = function () {
                    updateState(!isCollapsed, true);
                };

                var updateState = function (collapsed, animate) {
                    isCollapsed = collapsed;
                    e.classList.toggle("is-collapsed", collapsed);
                    contentElem.style.display = collapsed ? "none" : "block";

                    
                    
                    var svgIcon = foldButton.querySelector("svg");
                    if (svgIcon) {
                        svgIcon.style.transform = collapsed ? "rotate(-90deg)" : "rotate(0deg)";
                        svgIcon.style.transition = "transform 0.2s ease-in-out";
                    }
                };

                
                var foldButton = document.createElement("div");
                foldButton.className = "callout-fold";

                
                foldButton.innerHTML = `
                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-chevron-down">
                        <path d="m6 9 6 6 6-6"></path>
                    </svg>
                `;

                foldButton.addEventListener("click", function (event) {
                    event.preventDefault();
                    toggleState();
                });

                
                titleElem.appendChild(foldButton);

                
                titleElem.addEventListener("click", function (event) {
                    if (!event.defaultPrevented) {
                        event.preventDefault();
                        toggleState();
                    }
                });

                
                updateState(isCollapsed, false);
            }
        }
    });
});
</script>
<h3 id="1722-went-out-for-a-walk">17:22 Went Out for a Walk</h3>
<p>My eyes have been bothering me the past few days. At first, I thought it was due to staring at my phone screen for too long. Gradually, though, I realized my wisdom tooth was inflamed—it seems every time it acts up, my eyes suffer first. I quickly took two metronidazole pills.</p>
<p>I just went to deliver a folding umbrella to my mom and picked up some mulberries my uncle had picked. I also took a stroll outside. I came across some very fresh corn, bought two, and threw away the three I had bought earlier. Then I found some fresh bayberries—I’d been craving them for days—so I bought half a kilo.</p>
  

  


  
  <blockquote class="alert-blockquote alert-tip" data-collapsible="&#43;">
    <p class="alert-heading callout-title">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
        <path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"></path>
      </svg>
      
      <span>Tip</span>
      
    </p>
    <div class="alert-content callout-content">
      <p>For fresh bayberries, if you pluck off the stem at the base, a small piece of flesh comes off with it, forming a tiny, berry-like ball.</p>
    </div>
  </blockquote>
  

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.querySelectorAll(".alert-blockquote").forEach(function (e) {
        
        var foldAttr = e.getAttribute("data-collapsible");
        if (foldAttr === "+" || foldAttr === "-") {
            e.classList.add("is-collapsible");

            var titleElem = e.querySelector(".callout-title");
            var contentElem = e.querySelector(".callout-content");

            if (titleElem && contentElem && !titleElem.querySelector(".callout-fold")) {
                var isCollapsed = foldAttr === "-"; 
                var toggleState = function () {
                    updateState(!isCollapsed, true);
                };

                var updateState = function (collapsed, animate) {
                    isCollapsed = collapsed;
                    e.classList.toggle("is-collapsed", collapsed);
                    contentElem.style.display = collapsed ? "none" : "block";

                    
                    
                    var svgIcon = foldButton.querySelector("svg");
                    if (svgIcon) {
                        svgIcon.style.transform = collapsed ? "rotate(-90deg)" : "rotate(0deg)";
                        svgIcon.style.transition = "transform 0.2s ease-in-out";
                    }
                };

                
                var foldButton = document.createElement("div");
                foldButton.className = "callout-fold";

                
                foldButton.innerHTML = `
                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-chevron-down">
                        <path d="m6 9 6 6 6-6"></path>
                    </svg>
                `;

                foldButton.addEventListener("click", function (event) {
                    event.preventDefault();
                    toggleState();
                });

                
                titleElem.appendChild(foldButton);

                
                titleElem.addEventListener("click", function (event) {
                    if (!event.defaultPrevented) {
                        event.preventDefault();
                        toggleState();
                    }
                });

                
                updateState(isCollapsed, false);
            }
        }
    });
});
</script>
<h3 id="2255-i-think-ive-lost-the-ability-to-notice-beauty">22:55 I Think I’ve Lost the Ability to Notice Beauty</h3>
<p>I remember I used to be someone who easily spotted beautiful things in everyday life and was enthusiastic about capturing those little moments with photos.</p>
<p>But now, I find it hard to notice beauty, and I rarely feel the urge to photograph the lovely things I see.</p>
<p>Maybe it’s because my surroundings lack beauty these days? Maybe I don’t go out enough to experience life? Or perhaps my inner state has changed? In any case, my phone hasn’t had any new landscape or candid photos in a long time.</p>
<p>Maybe this is a good thing—maybe I’ve shifted to appreciating life more with my eyes and memory? I don’t really know myself anymore.</p>
]]></content:encoded>
    </item>
    <item>
      <title>May 12, 2025</title>
      <link>https://jinpeng.cv/en/diary/2025/may/2025-05-12/</link>
      <pubDate>Mon, 12 May 2025 01:34:19 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/may/2025-05-12/</guid>
      <description>&lt;h2 id=&#34;0832-got-up-after-playing-on-my-phone-for-a-long-time&#34;&gt;08:32 Got up after playing on my phone for a long time&lt;/h2&gt;
&lt;p&gt;Woke up in the morning, took a shower, and tossed my dirty clothes into the washing machine. Sniffed the rice I cooked on Friday night—no weird smell yet—so I stir-fried it with some potatoes and eggs.&lt;/p&gt;
&lt;h2 id=&#34;0935-checked-csc-and-talent-recruitment-programs&#34;&gt;09:35 Checked CSC and talent recruitment programs&lt;/h2&gt;
&lt;p&gt;Time flies—it’s almost mid-May already. Just opened the CSC website, and as expected, no results yet. Then I checked the talent expo website for updates on the talent recruitment progress—same deal, not even an interview notice.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="0832-got-up-after-playing-on-my-phone-for-a-long-time">08:32 Got up after playing on my phone for a long time</h2>
<p>Woke up in the morning, took a shower, and tossed my dirty clothes into the washing machine. Sniffed the rice I cooked on Friday night—no weird smell yet—so I stir-fried it with some potatoes and eggs.</p>
<h2 id="0935-checked-csc-and-talent-recruitment-programs">09:35 Checked CSC and talent recruitment programs</h2>
<p>Time flies—it’s almost mid-May already. Just opened the CSC website, and as expected, no results yet. Then I checked the talent expo website for updates on the talent recruitment progress—same deal, not even an interview notice.</p>
<p>Started feeling anxious again, unsure of what to do next.</p>
<p>QQ Music recommended a song called &ldquo;Don’t Panic, There’s Moonlight After Sunset.&rdquo; The singer moaned lyrics like:</p>
<blockquote>
<p>Don’t be lost~<br>
Don’t panic~<br>
……<br>
Don’t waver~<br>
Don’t be disheartened~</p>
</blockquote>
<p>It genuinely annoyed me. These verb-object structures made up entirely of negative words—if you just listen to it as background music, all you hear is <em>don’t, lost, panic, disheartened, be lost</em>, and so on. For someone who isn’t lost, panicked, wavering, or disheartened, it might not seem off. But for someone actually feeling those emotions, it’s nothing but irritating.</p>
<h2 id="2136-streetlight-landmarks">21:36 Streetlight landmarks</h2>
<p>Made a cold-tossed lettuce and stir-fried cabbage for dinner—ate too much. Decided to go for a walk and called my mom while on Kang Le Road to ask if she wanted to join. She said sure.</p>
<p>Ended up lecturing her the whole evening. At first, I pointed out the municipal government bus stop to her. She studied it carefully and said she could use the nearby postal newsstand as a landmark. I said those things are everywhere. Then she suggested using a forked roadside tree as a marker.</p>
<p>I said, &ldquo;There are so many trees—you might as well use the streetlights as landmarks.&rdquo; Of course, I was being sarcastic, but she took it seriously and started taking photos of the lampposts with her phone.</p>
<p>I was torn between laughing and facepalming. I said, &ldquo;What about the China Agricultural Development Bank right there?&rdquo; Then I explained that landmarks should be things like malls, schools, hospitals, or intersections.</p>
<h2 id="2201-buying-mangoes">22:01 Buying mangoes</h2>
<p>I’d been wanting to buy some mangoes since yesterday, but my mom said they weren’t good—the ones with a bit of red on the skin taste better. When we passed by the fruit stand earlier, I almost bought some but held back, afraid she’d nag me.</p>
<p>After passing the stadium, I saw another vendor with a cart selling mangoes. They weren’t expensive and looked fresh, so I decided to buy a few. As soon as I asked the vendor, my mom predictably started up: &ldquo;These don’t taste good, why waste money,&rdquo; blah blah blah&hellip;</p>
<p>It really got on my nerves. I bought them anyway, and after walking a bit, I started lecturing her. I said, &ldquo;I just want to eat them now. They’re not expensive, and I’m not buying a ton. Do you have to keep nagging?&rdquo;</p>
<p>Then I took one out of the bag and handed it to her. &ldquo;Try it. Is it really that bad? Is it worth the price?&rdquo;<br>
She stopped talking after that.</p>
<p>Later, I told Huanhuan about it, and she said I sometimes do the same—judging her based on my own experiences and opinions. I thought about it, and she’s right.</p>
]]></content:encoded>
    </item>
    <item>
      <title>April 27, 2025</title>
      <link>https://jinpeng.cv/en/diary/2025/april/2025-04-27/</link>
      <pubDate>Sun, 27 Apr 2025 12:01:49 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/april/2025-04-27/</guid>
      <description>&lt;p&gt;Recently, I haven’t been in a good state, and I couldn’t even pinpoint what was wrong, let alone identify the specific issues.&lt;/p&gt;
&lt;p&gt;All I knew was that, on the surface, I seemed to be studying, eating well, and sleeping properly every day. Yet, nothing was truly done well, and each day passed by in a daze, slipping away far too quickly.&lt;/p&gt;
&lt;p&gt;It wasn’t until today, when I watched Jay Chou’s &lt;a href=&#34;https://www.bilibili.com/video/BV1Hi421a7gv?p=28&#34;&gt;summary&lt;/a&gt; on learning, that I reflected on myself and finally understood where the problem lay.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Recently, I haven’t been in a good state, and I couldn’t even pinpoint what was wrong, let alone identify the specific issues.</p>
<p>All I knew was that, on the surface, I seemed to be studying, eating well, and sleeping properly every day. Yet, nothing was truly done well, and each day passed by in a daze, slipping away far too quickly.</p>
<p>It wasn’t until today, when I watched Jay Chou’s <a href="https://www.bilibili.com/video/BV1Hi421a7gv?p=28">summary</a> on learning, that I reflected on myself and finally understood where the problem lay.</p>
<p>The lack of focus is the main reason for my low daily efficiency and lack of a sense of accomplishment. Whenever I needed to concentrate on important tasks, my mind would suddenly drift: &ldquo;I’m hungry, let’s grab a snack,&rdquo; &ldquo;I’m thirsty, let’s drink some water,&rdquo; &ldquo;My nails are too long, time to trim them,&rdquo; &ldquo;What should I prepare for lunch?&rdquo; &ldquo;Should I go to the bathroom?&rdquo; &ldquo;Let me check my phone for messages,&rdquo; &ldquo;I’m tired, maybe I’ll watch some short videos…&rdquo;</p>
<p>These seem like perfectly normal things, but they fragment our attention into tiny pieces. Combined with other concerns—work tasks, learning goals, future plans, daily habits—everything ends up being affected to varying degrees.</p>
<p>Short videos, in particular, severely encroach on the precious productive hours of the day. They are a major reason why our sleep deteriorates, our focus wanes, and our connection with the real world weakens. Often, we attribute these issues to a lack of self-control, but the truth is, humans have an instinctual drive to seek information. This instinct makes us greedily and incessantly crave new input. The moment our minds idle, we unconsciously open apps that feed us information—and with their recommendation systems and attention algorithms, these apps exploit us relentlessly.</p>
<p>There’s nothing inherently wrong with watching videos every day, but we must always remember: <strong>time is finite.</strong></p>
<p><strong>Each day is only so long, and each year is only so long.</strong> We should strive to spend our time on our dreams, work, habits, enjoyment, and the people who matter to us.</p>
<p>I had gone a long time without watching short videos before, but somehow, I slipped back into the habit. Moving forward, I will avoid platforms like Douyin (TikTok) for non-essential information. I’ve also filtered out videos shorter than five minutes on Bilibili’s homepage. In my free time, I’ll try to read or watch longer-form content, hoping to gradually rebuild my attention span.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
