<?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>Help on Ben&#39;s Blog</title>
    <link>https://jinpeng.cv/en/tags/help/</link>
    <description>Recent content in Help on Ben&#39;s Blog</description>
    <generator>Hugo -- 0.154.0</generator>
    <language>en</language>
    <copyright>©️ 2025 Ben</copyright>
    <lastBuildDate>Mon, 09 Mar 2026 22:26:59 -0600</lastBuildDate>
    <atom:link href="https://jinpeng.cv/en/tags/help/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2026-01-08</title>
      <link>https://jinpeng.cv/en/diary/2026/january/2026-01-08/</link>
      <pubDate>Thu, 08 Jan 2026 23:50:14 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/january/2026-01-08/</guid>
      <description>&lt;h2 id=&#34;english&#34;&gt;English&lt;/h2&gt;
&lt;p&gt;There is so much worth recording today. Since it’s getting late, I’ll write this down now and keep it for my records.&lt;/p&gt;
&lt;p&gt;First, my &lt;strong&gt;English-related anxiety&lt;/strong&gt; eased up significantly today, especially after attending classes with Derek and Victor. I was amazed to find that I could understand &lt;strong&gt;nearly 90% of the content&lt;/strong&gt;; the remaining 10% didn&amp;rsquo;t hinder my overall comprehension at all. My confidence in English is finally coming back.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="english">English</h2>
<p>There is so much worth recording today. Since it’s getting late, I’ll write this down now and keep it for my records.</p>
<p>First, my <strong>English-related anxiety</strong> eased up significantly today, especially after attending classes with Derek and Victor. I was amazed to find that I could understand <strong>nearly 90% of the content</strong>; the remaining 10% didn&rsquo;t hinder my overall comprehension at all. My confidence in English is finally coming back.</p>
<p>Another thing I noticed during class was that Victor seemed <strong>exhausted and low on energy</strong>. I really want him to feel better, so I’m planning to gather my courage and stop by his office tomorrow just to <strong>chat for a bit</strong>. I realized that many people need care and connection. In their own worlds, they might be bogged down by trivial, stressful matters and simply need a chance to <strong>relax and talk</strong>.</p>
<p>In the evening, Huan forwarded me a photo of He You that Xiao Xue had sent. It occurred to me that I hadn&rsquo;t talked to them in a long time, so I spent some time <strong>chatting and joking</strong> with them in our group chat. Those old days were so happy, especially during my first two years of university. Here, there isn&rsquo;t such affordable hotpot, cheap alcohol, or <strong>friendships that feel quite that pure</strong>.</p>
<p>Things that seem difficult can lead to <strong>surprising changes</strong> if you just persist day by day. Whether it’s for a dream, a passion, or the future, it is worth sticking with the things that might cause short-term struggle but lead to long-term growth.</p>
<h2 id="chinese">Chinese</h2>
<p>今天有很多值得记录的事情。因为时间太晚了，就直接用中文记录吧，明天再翻译成英文。</p>
<p>第一就是今天的英语焦虑好了一些，尤其是上完 Derek 和 victor 的课之后。惊叹自己能够听懂几乎 90%的内容，而其他的内容已经不能够影响理解。英语自信又回来许多。</p>
<p>另一个就是在上课的时候，发现 victor 总是感觉很累，感觉很缺少能量的样子。我希望他开心一些，所以我打算明天鼓起勇气去他办公室里闲聊一会儿。突然发现很多人都需要别人的关心，他们在自己的世界里面可能会被各种各样琐碎烦心的事情困扰，他们需要放松和倾诉。</p>
<p>晚上小欢欢给我转发了小雪发的何优的照片，想着很久没有找他们聊天了。于是在群里和他们吹了会儿牛，以前的时光可真快乐啊，尤其是大一大二大时候。这边没有那么便宜的火锅，没有那么便宜的酒，也没有那么纯粹的朋友了。</p>
<p>看似很难的事情，一点一点的坚持，突然会在某一天发现有惊喜的改变。对于梦想，对于热爱，对于未来，都应该去坚持做一些短期会让自己痛苦的事情。</p>
]]></content:encoded>
    </item>
    <item>
      <title>2026-01-01</title>
      <link>https://jinpeng.cv/en/diary/2026/january/2026-01-01/</link>
      <pubDate>Thu, 01 Jan 2026 23:59:21 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/january/2026-01-01/</guid>
      <description>&lt;p&gt;Slept in and watched TV (Ted Lasso) all day again!&lt;/p&gt;
&lt;div class=&#34;encrypted-content&#34; data-cipher=&#34;29udHVsYXRpb25zISBZb3Uga25vdyB0b2RheSZyc3F1bztzIGtleSE8L3A&amp;#43;CjxwPk5vdGhpbmcgc3BlY2lhbCBvciBpbXBvcnRhbnQgaGVyZS48L3A&amp;#43;CjxwPkkgd2FudCB0byBnaXZlIHRoZSBwZW9wbGUgd2hvIGtub3cgbWUgYSBsaXR0bGUgaGVscCwgZXNwZWNpYWxseSByZWdhcmRpbmcgdGhlIGludGVybmV0LjwvcD4KPHA&amp;#43;VG8gdGVhY2ggcGVvcGxlIGhvdyB0byBpbXByb3ZlIG91ciBsaWZlIGJ5IGludGVybmV0LiBUaHJvdWdoIHRoZSBjb25mbGljdCBiZXR3ZWVuIEh1YW4gYW5kIG1lLCBJIHJlYWxpemVkIHRoYXQgc29tZW9uZSBuZWVkcyB0byBsZWFybiBob3cgdG8gYnJlYWsgdGhlIGluZm9ybWF0aW9uIGJhcnJpZXJzLjwvcD4KPHA&amp;#43;QZ3Jh&#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;
    &lt;div class=&#34;password-prompt&#34;&gt;
      &lt;div class=&#34;password-input-wrapper&#34;&gt;
        &lt;input type=&#34;password&#34; class=&#34;password-input&#34;
               placeholder=&#34;Please input password&#34;
               id=&#34;pwd-input-0&#34;
               aria-label=&#34;加密内容密码&#34;&gt;
        &lt;button type=&#34;button&#34;
                class=&#34;toggle-visibility-btn&#34;
                aria-pressed=&#34;false&#34;
                aria-label=&#34;显示或隐藏密码&#34;
                onclick=&#34;toggleVisibility(this, &#39;pwd-input-0&#39;)&#34;&gt;
          &lt;svg class=&#34;icon icon-eye-open&#34; viewBox=&#34;0 0 24 24&#34; aria-hidden=&#34;true&#34;&gt;
            &lt;path d=&#34;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&#34;/&gt;
          &lt;/svg&gt;
          &lt;svg class=&#34;icon icon-eye-closed&#34; viewBox=&#34;0 0 24 24&#34; aria-hidden=&#34;true&#34;&gt;
            &lt;path d=&#34;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&#34;/&gt;
          &lt;/svg&gt;
        &lt;/button&gt;
      &lt;/div&gt;
      &lt;button class=&#34;decrypt-btn&#34; onclick=&#34;decryptContent(event, &#39;pwd-input-0&#39;)&#34;&gt;
        Unlock
      &lt;/button&gt;
    &lt;/div&gt;
    &lt;div class=&#34;status-message&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;decrypted-content markdown-body&#34; hidden&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;style&gt;
.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;
}
&lt;/style&gt;

&lt;script&gt;
  function toggleVisibility(btn, inputId) {
    const input = document.getElementById(inputId);
    const isPwd = input.type === &#39;password&#39;;
    input.type = isPwd ? &#39;text&#39; : &#39;password&#39;;
    btn.setAttribute(&#39;aria-pressed&#39;, String(isPwd));
    btn.classList.toggle(&#39;is-visible&#39;, isPwd);
  }

  function decryptContent(event, inputId) {
    event.preventDefault();
    const input = document.getElementById(inputId);
    const container = input.closest(&#39;.encrypted-content&#39;);
    const statusEl = container.querySelector(&#39;.status-message&#39;);
    const decryptedContent = container.querySelector(&#39;.decrypted-content&#39;);
  
    statusEl.textContent = &#39;&#39;;
    statusEl.classList.remove(&#39;error&#39;);
    input.classList.remove(&#39;error&#39;);
  
    
    const today = new Date();
    const mmdd = String(today.getUTCMonth() + 1).padStart(2, &#39;0&#39;) + String(today.getUTCDate()).padStart(2, &#39;0&#39;);
    const diff = 1005 - (parseInt(mmdd, 10) || 0);
    const validPwd = String(Math.abs(diff)).padStart(4, &#39;0&#39;);
  
    if (input.value !== validPwd) {
      input.classList.add(&#39;error&#39;);
      statusEl.textContent = container.dataset.error || &#39;&#39;;
      statusEl.classList.add(&#39;error&#39;);
      input.focus();
      return;
    }
  
    try {
      let cipherText = container.dataset.cipher.replace(/\s+/g, &#39;&#39;);
  
      
      
      
      
      
      
      
      
      
      if (cipherText.length &gt; 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 &lt; binaryStr.length; i++) {
        byteArray[i] = binaryStr.charCodeAt(i);
      }
  
      const decoded = new TextDecoder(&#34;utf-8&#34;).decode(byteArray);
      const fragment = document.createRange().createContextualFragment(decoded);
  
      decryptedContent.innerHTML = &#39;&#39;;
      decryptedContent.appendChild(fragment);
  
      container.querySelector(&#39;.locked-state&#39;).hidden = true;
      decryptedContent.hidden = false;
      container.classList.add(&#39;unlocked&#39;);
  
    } catch (e) {
      console.error(e);
      statusEl.textContent = &#39;Decode Failed: &#39; + e.message;
      statusEl.classList.add(&#39;error&#39;);
    }
  }
  
  document.addEventListener(&#39;DOMContentLoaded&#39;, () =&gt; {
    document.querySelectorAll(&#39;.password-input&#39;).forEach(input =&gt; {
      input.addEventListener(&#39;keypress&#39;, e =&gt; {
        if (e.key === &#39;Enter&#39;) {
          decryptContent(e, input.id);
        }
      });
    });
  });
  
&lt;/script&gt;</description>
      <content:encoded><![CDATA[<p>Slept in and watched TV (Ted Lasso) all day again!</p>
<div class="encrypted-content" data-cipher="29udHVsYXRpb25zISBZb3Uga25vdyB0b2RheSZyc3F1bztzIGtleSE8L3A&#43;CjxwPk5vdGhpbmcgc3BlY2lhbCBvciBpbXBvcnRhbnQgaGVyZS48L3A&#43;CjxwPkkgd2FudCB0byBnaXZlIHRoZSBwZW9wbGUgd2hvIGtub3cgbWUgYSBsaXR0bGUgaGVscCwgZXNwZWNpYWxseSByZWdhcmRpbmcgdGhlIGludGVybmV0LjwvcD4KPHA&#43;VG8gdGVhY2ggcGVvcGxlIGhvdyB0byBpbXByb3ZlIG91ciBsaWZlIGJ5IGludGVybmV0LiBUaHJvdWdoIHRoZSBjb25mbGljdCBiZXR3ZWVuIEh1YW4gYW5kIG1lLCBJIHJlYWxpemVkIHRoYXQgc29tZW9uZSBuZWVkcyB0byBsZWFybiBob3cgdG8gYnJlYWsgdGhlIGluZm9ybWF0aW9uIGJhcnJpZXJzLjwvcD4KPHA&#43;QZ3Jh" 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-11-29</title>
      <link>https://jinpeng.cv/en/diary/2025/november/2025-11-29/</link>
      <pubDate>Sat, 29 Nov 2025 23:19:31 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/november/2025-11-29/</guid>
      <description>&lt;p&gt;My roommate decided to &lt;strong&gt;cut his own hair&lt;/strong&gt;, but he &lt;strong&gt;failed spectacularly&lt;/strong&gt;. He ended up knocking on my door and asking me to &lt;strong&gt;take a look at the damage&lt;/strong&gt;. It was hilarious! In Chinese, we&amp;rsquo;d say his haircut looked like it had been &lt;strong&gt;&amp;ldquo;eaten by a dog.&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I bought a &lt;strong&gt;secondhand microwave&lt;/strong&gt; last night, and the seller dropped it off at the Southgate station this afternoon. The microwave was &lt;strong&gt;so heavy&lt;/strong&gt; that I was &lt;strong&gt;sweating&lt;/strong&gt; by the time I got it home.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>My roommate decided to <strong>cut his own hair</strong>, but he <strong>failed spectacularly</strong>. He ended up knocking on my door and asking me to <strong>take a look at the damage</strong>. It was hilarious! In Chinese, we&rsquo;d say his haircut looked like it had been <strong>&ldquo;eaten by a dog.&rdquo;</strong></p>
<p>I bought a <strong>secondhand microwave</strong> last night, and the seller dropped it off at the Southgate station this afternoon. The microwave was <strong>so heavy</strong> that I was <strong>sweating</strong> by the time I got it home.</p>
<p>After finally putting the microwave away, I headed back out to <strong>buy some groceries</strong>. I bought a lot of items, including <strong>tomatoes, lettuce, pork</strong>, and more.</p>
]]></content:encoded>
    </item>
    <item>
      <title>2025-11-14</title>
      <link>https://jinpeng.cv/en/diary/2025/november/2025-11-14/</link>
      <pubDate>Fri, 14 Nov 2025 17:12:09 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/november/2025-11-14/</guid>
      <description>&lt;h3 id=&#34;0900-go-to-university&#34;&gt;09:00 Go to university&lt;/h3&gt;
&lt;p&gt;I mainly improved the project of sensing techniques.&lt;/p&gt;
&lt;p&gt;Dr. Zhao met a problem about machine learning, and I tried to help him solving this problem.&lt;/p&gt;
&lt;h3 id=&#34;2014-sync&#34;&gt;20:14 Sync&lt;/h3&gt;</description>
      <content:encoded><![CDATA[<h3 id="0900-go-to-university">09:00 Go to university</h3>
<p>I mainly improved the project of sensing techniques.</p>
<p>Dr. Zhao met a problem about machine learning, and I tried to help him solving this problem.</p>
<h3 id="2014-sync">20:14 Sync</h3>
]]></content:encoded>
    </item>
    <item>
      <title>2025-09-22</title>
      <link>https://jinpeng.cv/en/diary/2025/september/2025-09-22/</link>
      <pubDate>Mon, 22 Sep 2025 17:06:54 -0600</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/september/2025-09-22/</guid>
      <description>&lt;p&gt;Time always goes so fast.&lt;/p&gt;
&lt;p&gt;In the morning, I felt colder than before. I quickly washed my face and brushed my teeth, and then took some rice into my lunch box.&lt;/p&gt;
&lt;p&gt;I was the first arrival at the office. I just did some check-in procedure; the time went to noon.&lt;/p&gt;
&lt;p&gt;There was a group meeting at noon. I was a little nervous about the group meeting because I hadn&amp;rsquo;t done too much last week.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Time always goes so fast.</p>
<p>In the morning, I felt colder than before. I quickly washed my face and brushed my teeth, and then took some rice into my lunch box.</p>
<p>I was the first arrival at the office. I just did some check-in procedure; the time went to noon.</p>
<p>There was a group meeting at noon. I was a little nervous about the group meeting because I hadn&rsquo;t done too much last week.</p>
<p>In the afternoon, I just replied to some emails and helped Amirthan with the assignment for the sensing technique class.</p>
<p>Maybe I should spend more time at home.</p>
<hr>
<h3 id="附记">附记</h3>
<p>昨晚接到诈骗电话说给我送快递，说没联系上（我确实最近有买东西），然后帮我查询，然后说是我寄出去的，是违禁品，被海关查了，然后要给证据啥的说明，然后就开始不对劲了，说接到广州海关警察那边，我已经发现90%诈骗了。我继续跳转，发现警察口音明显装模作样的，我直接开始大骂，那边一开始还没反应过来，反应过来我挂了。然后开始搞我了</p>
]]></content:encoded>
    </item>
    <item>
      <title>June 12, 2025</title>
      <link>https://jinpeng.cv/en/diary/2025/june/2025-06-12/</link>
      <pubDate>Thu, 12 Jun 2025 02:34:27 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/june/2025-06-12/</guid>
      <description>&lt;h3 id=&#34;1007-organized-some-files&#34;&gt;10:07 Organized Some Files&lt;/h3&gt;
&lt;p&gt;The Vault folder was a bit messy, especially the Obsidian templates and project folders. Did a quick tidy-up and also added a reading log template to encourage myself to read more.&lt;/p&gt;
&lt;h3 id=&#34;1100-feel-pretty-good&#34;&gt;11:00 Feel pretty good&lt;/h3&gt;
&lt;p&gt;Today, my body feels fine with no discomfort, which has lifted my mood quite a bit. The courier called to notify me to pick up my ID card. After retrieving it, I strolled to the market and bought rice noodles, spinach, and cilantro. I ended up cooking too much rice noodles and ate until my stomach was bulging.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="1007-organized-some-files">10:07 Organized Some Files</h3>
<p>The Vault folder was a bit messy, especially the Obsidian templates and project folders. Did a quick tidy-up and also added a reading log template to encourage myself to read more.</p>
<h3 id="1100-feel-pretty-good">11:00 Feel pretty good</h3>
<p>Today, my body feels fine with no discomfort, which has lifted my mood quite a bit. The courier called to notify me to pick up my ID card. After retrieving it, I strolled to the market and bought rice noodles, spinach, and cilantro. I ended up cooking too much rice noodles and ate until my stomach was bulging.</p>
<h3 id="1627-read-zweigs-the-governess-and-moonbeam-alley-abandoned">16:27 Read Zweig’s <em>The Governess</em> and <em>Moonbeam Alley</em> (Abandoned)</h3>
<p>The reflection of human nature and the influence of societal norms in <strong><a href="/en/project/reading/%E5%AE%B6%E5%BA%AD%E5%A5%B3%E6%95%99%E5%B8%88/">The Governess</a></strong> is not just a tragedy of that era. Similar things exist widely in any era. The two kind-hearted little girls might have been versions of ourselves in the past. Our attitude toward the world gradually turns indifferent simply because we’ve witnessed its coldness.</p>
<p>Both the English and Chinese translations of <strong><a href="/en/project/reading/%E6%9C%88%E5%85%89%E5%B7%B7/">Moonbeam Alley</a></strong> are particularly obscure, and I think they’re poorly translated. I couldn’t get through it at all, so I gave up. That said, I do agree with the idea that factors like money, desire, and indifference can lead love to ruin. It’s not worth reading—whether the Chinese or English version—as it’s just a pile of flowery words.</p>
<h3 id="2112-went-out-for-a-walk-and-got-a-haircut">21:12 Went Out for a Walk and Got a Haircut</h3>
<h4 id="the-fun-barber">The Fun Barber</h4>
<p>I really cooked too much rice noodles today, but since I have a medical check-up tomorrow and then need to go to Guiyang, I forced myself to finish it all. Feeling overly full, I decided to go out for a walk and get a haircut along the way.</p>
<p>I figured that for job interviews, one’s appearance and demeanor are quite important. Hairstyle plays a big role in personal image, so even though my hair wasn’t very long, I thought I’d get a trim for the sake of interviews. The barber said the last cut was too short and didn’t look great, so she felt a bit awkward bringing it up, but I actually thought it looked fine. This barber has a great attitude and decent skills.</p>
<p>After the haircut, there were still a lot of loose hairs on my face, so the barber gave me a quick wash. When I asked how much it cost, she said 15 yuan. I said, “Thank you,” and she replied, “No, thank <em>you</em>.” I joked, “Now that my hair’s cut, I’m even more handsome.” She laughed and said, “Hearing your compliment will make my dreams sweet tonight.” Haha, that caught me off guard. Next time, I’ll bring Huanhuan along to get a haircut and introduce them.</p>
<h4 id="the-uncle-who-asked-for-help-charging-his-car">The Uncle Who Asked for Help Charging His Car</h4>
<p>After the haircut, I walked to the charging station, where an uncle in a worn-out leather jacket stopped me. He said he didn’t know how to charge his car and asked for my help. At first, I scanned the QR code on the public account for a while before realizing it wasn’t working—there was another one on the display screen. Then he asked me to help bind his car model info. He drove a seven-seater Changan van, and when the list popped up, there were way too many options. I randomly picked one, and it worked, so we went with that. He thanked me profusely and even offered me a cigarette, which I declined since I don’t smoke.</p>
<h4 id="called-fei-ge">Called Fei Ge</h4>
<p>Helping others felt pretty good. I thought about visiting my mom, but it was getting late. Then I realized I hadn’t called Fei Ge in a while, so I video-called him directly. Turns out, the job someone promised him fell through, and he’s been lying low in Xiamen for a month. I imagine it must be tough for him.</p>
<p>Around 9 p.m., Huanhuan finished work. I thought chatting with more people might help, so I pulled both of them into a call, completely ignoring their awkwardness. It was pretty fun and also helped Huanhuan integrate better with my circle of friends.</p>
  

  


  
  <blockquote class="alert-blockquote alert-info" 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">
        <circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path>
      </svg>
      
      <span>Ledger</span>
      
    </p>
    <div class="alert-content callout-content">
      <p>Haha, Fei Ge said that while he still has money, I should hurry to Xiamen to visit him. I joked about my usual “Australian lobster” bit, and Fei Ge said he’d budget 10k to treat us—rent a car and take a trip out to sea. I’ll hold him to that for now.</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>
]]></content:encoded>
    </item>
  </channel>
</rss>
