<?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>Reflection on Ben&#39;s Blog</title>
    <link>https://jinpeng.cv/en/tags/reflection/</link>
    <description>Recent content in Reflection 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/reflection/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>2026-02-10</title>
      <link>https://jinpeng.cv/en/diary/2026/february/2026-02-10/</link>
      <pubDate>Tue, 10 Feb 2026 21:18:50 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/february/2026-02-10/</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>来到UofA之前，我就已经做好了充足的准备，认识到这并不是一条平坦的路。孤独、挫败、自卑、贫穷……， 这些东西始终伴随着我，让我许多时候感觉能量被耗尽，也因此常常会因为一些比较小的事情而沮丧不已。</p>
<p>举个新鲜的例子：是今天期中考试，有两个题，我只做出了一个。在教室里面对不会做，却明显很简单的题目，感觉自己像个傻子一样，十分懊恼。完事之后，我归咎于自己平时练习不够，太依赖AI，没有亲自手算几遍；归咎于自己英语差，题目怎么tm不是中文的；归咎于这题目怎么和平时的作业不大一样；归咎于自己怎么这么老实胆小，不敢像部分同学一样用AI作弊；归咎于自己年纪大了，记性不好了；甚至归咎于早上和小欢欢吵架……</p>
<p>不该是这样的！我对自己说。但我还是很难受，我清楚地看到了自己的差距与不足，任何的侥幸心理在“侥幸”失败的时候，我们都会失落。可明明我们有那么多努力的方向去尝试让“侥幸”变成“确幸”的机会；哦，对了，我们会想我们没有时间，我们大脑不像之前那么好用了。</p>
<p>好了，扯到这里有点偏题了。今天的失败，似乎是一件好事情。它让我开始反思自己，甚至反思自己很久之前做的决定。我清楚的明白，我只是获得了一个获得博士学位的机会，而不是走完这条路就会成为博士。</p>
<div class="encrypted-content" data-cipher="2UgZW4gc2F5IG9uZSBzaG91bGRuJnJzcXVvO3Qgcm9tYW50aWNpemUgdGhlIHJvYWQgbm90IHRha2VuLiBCdXQgaG93IGRvIHdlIGV2YWx1YXRlIGlmIGEgY2hvaWNlIHdhcyB0cnVseSAmbGRxdW87d29ydGggaXQmcmRxdW87PyBSZWNlbnRseSwgSeKAmXZlIGJlZW4gZmVlbGluZyBkb3duLCBhbmQgaXQgbGVkIG1lIHRvIGEgc3VkZGVuIHJlYWxpemF0aW9uIHJlZ2FyZGluZyBteSBkZWNpc2lvbiB0byBwdXJzdWUgYSBQaEQgaGVyZSB2ZXJzdXMgc3RheWluZyB0byB3b3JrIGluIENoaW5hLjwvcD4KPHA&#43;VGhpcyBpc24mcnNxdW87dCBsaWtlIGNob29zaW5nIGEgcmVzdGF1cmFudCwgd2hlcmUgdGhlIG1lYWwgcHJvdmlkZXMgYW4gaW1tZWRpYXRlIGFuc3dlci4gTXkgY2hvaWNlIGlzIG1vcmUgbGlrZSBkZWNpZGluZyBiZXR3ZWVuIHRpbGxpbmcgdGhlIGVhcnRoIGluIHRoZSBjb3VudHJ5c2lkZSBvciBzdHJ1Z2dsaW5nIGluIHRoZSBjaXR5LiBJbiB0b2RheeKAmXMgd29ybGQsIG1vc3QgcGVvcGxlIGFyZSBqdXN0ICZsZHF1bztiZWFzdHMgb2YgYnVyZGVuJnJkcXVvOy4gVGhvc2UgaW4gdGhlIGZpZWxkcyBhcmUgY2xvc2VyIHRvIHRoZSByYXcgbmF0dXJlIG9mIHRvaWwsIHdoaWxlIHRob3NlIGluIHRoZSBjaXR5IGFyZSBzaW1wbHkgbW9yZSAmbGRxdW87cmVmaW5lZCZyZHF1bzsgdmVyc2lvbnMgb2YgdGhlIHNhbWUuPC9wPgo8cD5UaGUgdHJ1ZSB2YWx1ZSBvZiBhIGNob2ljZSBsaWVzIGluIHRoZSBlZmZvcnQgdGhhdCBmb2xsb3dzLiBUaGUgcnVyYWwgd29ya2VyIG11c3Qgc3RyaXZlIGZvciBpbm5lciBwZWFjZSBhbmQgaGFybW9ueSB3aXRoIG5hdHVyZTsgdGhlIHVyYmFuIHdvcmtlciBtdXN0IGhvbmUgdGhlaXIgc2tpbGxzIGFuZCBjYXJ2ZSBvdXQgYSBzYW5jdHVhcnkgd2l0aGluIHRoZSBjb25jcmV0ZSBqdW5nbGUuIEkgc2VlIHBlb3BsZSBpbiBib3RoIHBhdGhzIGZpbmRpbmcgZnVsZmlsbG1lbnQsIGJ1dCBmYXIgbW9yZSBhcmUgc2ltcGx5IGV4aGF1c3RlZC48L3A&#43;CjxwPkkgY2FtZSB0byBVb2ZBIGtub3dpbmcgdGhpcyB3b3VsZG4mcnNxdW87dCBiZSBhIHNtb290aCBwYXRoLiBMb25lbGluZXNzLCBmcnVzdHJhdGlvbiwgYW5kIHBvdmVydHkgYXJlIGNvbnN0YW50IGNvbXBhbmlvbnMgdGhhdCBkcmFpbiBteSBlbmVyZ3kuIFRvZGF54oCZcyBtaWR0ZXJtIHdhcyBhIHBlcmZlY3QgZXhhbXBsZS4gT3V0IG9mIHR3byBxdWVzdGlvbnMsIEkgb25seSBzb2x2ZWQgb25lLiBTaXR0aW5nIHRoZXJlLCB1bmFibGUgdG8gc29sdmUgYSAmbGRxdW87c2ltcGxlJnJkcXVvOyBwcm9ibGVtLCBJIGZlbHQgbGlrZSBhIGZvb2wuIEkgYmxhbWVkIGV2ZXJ5dGhpbmc6IG15IG92ZXItcmVsaWFuY2Ugb24gQUksIG15IEVuZ2xpc2gsIG15IG1lbW9yeSwgZXZlbiB0aGUgYXJndW1lbnQgSSBoYWQgd2l0aCBIdWFuIHRoaXMgbW9ybmluZy48L3A&#43;CjxwPkJ1dCBpdCBzaG91bGRuJnJzcXVvO3QgYmUgbGlrZSB0aGlzLjwvcD4KPHA&#43;SSBjbGVhcmx5IHNlZSB0aGUgZ2FwIGJldHdlZW4gd2hlcmUgSSBhbSBhbmQgd2hlcmUgSSBuZWVkIHRvIGJlLiBBbnkgaG9wZSBmb3IgJmxkcXVvO2x1Y2smcmRxdW87IGluZXZpdGFibHkgbGVhZHMgdG8gZGlzYXBwb2ludG1lbnQgd2hlbiBsdWNrIGZhaWxzLiBJIGhhdmUgc28gbWFueSBvcHBvcnR1bml0aWVzIHRvIHR1cm4gdGhhdCBsdWNrIGludG8gY2VydGFpbnR5IHRocm91Z2ggaGFyZCB3b3JrLCB5ZXQgSSB0ZWxsIG15c2VsZiBJIGRvbiZyc3F1bzt0IGhhdmUgdGhlIHRpbWUuPC9wPgo8cD5QZXJoYXBzIHRvZGF54oCZcyBmYWlsdXJlIGlzIGEgYmxlc3NpbmcuIEl0IGZvcmNlZCBtZSB0byByZWZsZWN0IG9uIGRlY2lzaW9ucyBtYWRlIGxvbmcgYWdvLiBJIG5vdyB1bmRlcnN0YW5kIG1vcmUgY2xlYXJseTogSSBoYXZlbiZyc3F1bzt0ICZsZHF1bztiZWNvbWUmcmRxdW87IGEgUGhEOyBJIGhhdmUgb25seSBlYXJuZWQgdGhlIG9wcG9ydHVuaXR5IHRvIHN0cml2ZSBmb3IgdGhlIGRlZ3JlZS48L3A&#43;Cg==PHA&#43;Vb2Z0" 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>2026-02-06</title>
      <link>https://jinpeng.cv/en/diary/2026/february/2026-02-06/</link>
      <pubDate>Fri, 06 Feb 2026 22:26:02 -0700</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/february/2026-02-06/</guid>
      <description>&lt;p&gt;#Huan said that she isn&amp;rsquo;t interested in taking the English exam.&lt;/p&gt;
&lt;p&gt;I spent the day working on my assignments. #Chathuranga provided some helpful guidance on how to approach the term paper, which gave us a clearer direction. However, by 4:00 PM, I felt like I had hit a limit and couldn&amp;rsquo;t absorb any more information. I decided to call it a day and headed home at 4:30 PM.&lt;/p&gt;
&lt;div class=&#34;encrypted-content&#34; data-cipher=&#34;GF0LCBJ4oCZdmUgYmVlbiBmZWVsaW5nIHF1aXRlIGRvd24gYWJvdXQgZXZlcnl0aGluZy4gSeKAmXZlIHJlYWxpemVkIHRoYXQgSSBzaG91bGQgcHJvYmFibHkgc3RhcnQga2VlcGluZyB0aGVzZSB0aG91Z2h0cyB0byBteXNlbGYgbW9yZSBvZnRlbjsgcmVwZWF0aW5nIHRoZW0gdG9vIGZyZXF1ZW50bHkgbWlnaHQgbGVhZCB0byB1bm5lY2Vzc2FyeSBjb25mbGljdCBvciB0cm91YmxlIHdpdGggdGhvc2UgYXJvdW5kIG1lLjwvcD4KPHA&amp;#43;Rm9yIG5vdywgSSB3aWxsIGFuZCBvbmx5IGNhbiBqdXN0IGxldCB0aGluZ3MgdGFrZSB0aGVpciBjb3Vyc2UuPC9wPgo8cD5UaGVyZSBhcmUgYSBzZXJpZXMgb2YgcXVlc3Rpb25zIGNvbWluZyB0byBteSBtaW5kLCBidXQgSeKAmW0gbm90IHN1cmUgaWYgSSB3YW50IHRvIGFuc3dlciB0aGVtIHJpZ2h0IG5vdy4gSeKAmW0gbm90IGV2ZW4gc3VyZSBpZiBJIHdhbnQgdG8gYXNrIHRoZW0gYXQgYWxsLiBNYXliZSBpdOKAmXMgYmV0dGVyIHRvIGp1c3QgbGV0IHRoZW0gYmUgZm9yIG5vdyBhbmQgc2VlIGhvdyB0aGluZ3MgdW5mb2xkLjwvcD4KPG9sPgo8bGk&amp;#43;V291bGQgZmFybWVycyBsaWtlIGZhcm1pbmc/IExpa2UgbXVkZHkgc29pbD8gRGlydHkgb3JnYW5pYyBmZXJ0aWxpemVyPyBTaG91bGQgb25lIHNoZWQgb25lJnJzcXVvO3Mgb3duIHN3ZWF0IG9uIHRoaXMgbGFuZD8gSSBvbmx5IGtub3cgdGhhdCB0aGV5IHdpbGwgYmUgaGFwcHkgd2hlbiBraWxsaW5nIHRoZSBwaWcgbmVhciBOZXcgWWVhciZyc3F1bztzIEV2ZS48L2xpPgo8bGk&amp;#43;QXJlIHR3byBwZW9wbGUgd2hvIGFyZSB1bndpbGxpbmcgdG8gcGxhbiB0aGVpciBmdXR1cmUgdG9nZXRoZXIgdHJ1bHkgaW4gbG92ZT88L2xpPgo8bGk&amp;#43;SG93IHRvIG1hbmFnZSBvdXIgZXZlcnlkYXkgbGlmZT8gV2hhdCBJIG1lYW4gaXMgdGhlIHRpbWUuPC9saT4KPC9vbD4KPHA&amp;#43;TZWx5&#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>#Huan said that she isn&rsquo;t interested in taking the English exam.</p>
<p>I spent the day working on my assignments. #Chathuranga provided some helpful guidance on how to approach the term paper, which gave us a clearer direction. However, by 4:00 PM, I felt like I had hit a limit and couldn&rsquo;t absorb any more information. I decided to call it a day and headed home at 4:30 PM.</p>
<div class="encrypted-content" data-cipher="GF0LCBJ4oCZdmUgYmVlbiBmZWVsaW5nIHF1aXRlIGRvd24gYWJvdXQgZXZlcnl0aGluZy4gSeKAmXZlIHJlYWxpemVkIHRoYXQgSSBzaG91bGQgcHJvYmFibHkgc3RhcnQga2VlcGluZyB0aGVzZSB0aG91Z2h0cyB0byBteXNlbGYgbW9yZSBvZnRlbjsgcmVwZWF0aW5nIHRoZW0gdG9vIGZyZXF1ZW50bHkgbWlnaHQgbGVhZCB0byB1bm5lY2Vzc2FyeSBjb25mbGljdCBvciB0cm91YmxlIHdpdGggdGhvc2UgYXJvdW5kIG1lLjwvcD4KPHA&#43;Rm9yIG5vdywgSSB3aWxsIGFuZCBvbmx5IGNhbiBqdXN0IGxldCB0aGluZ3MgdGFrZSB0aGVpciBjb3Vyc2UuPC9wPgo8cD5UaGVyZSBhcmUgYSBzZXJpZXMgb2YgcXVlc3Rpb25zIGNvbWluZyB0byBteSBtaW5kLCBidXQgSeKAmW0gbm90IHN1cmUgaWYgSSB3YW50IHRvIGFuc3dlciB0aGVtIHJpZ2h0IG5vdy4gSeKAmW0gbm90IGV2ZW4gc3VyZSBpZiBJIHdhbnQgdG8gYXNrIHRoZW0gYXQgYWxsLiBNYXliZSBpdOKAmXMgYmV0dGVyIHRvIGp1c3QgbGV0IHRoZW0gYmUgZm9yIG5vdyBhbmQgc2VlIGhvdyB0aGluZ3MgdW5mb2xkLjwvcD4KPG9sPgo8bGk&#43;V291bGQgZmFybWVycyBsaWtlIGZhcm1pbmc/IExpa2UgbXVkZHkgc29pbD8gRGlydHkgb3JnYW5pYyBmZXJ0aWxpemVyPyBTaG91bGQgb25lIHNoZWQgb25lJnJzcXVvO3Mgb3duIHN3ZWF0IG9uIHRoaXMgbGFuZD8gSSBvbmx5IGtub3cgdGhhdCB0aGV5IHdpbGwgYmUgaGFwcHkgd2hlbiBraWxsaW5nIHRoZSBwaWcgbmVhciBOZXcgWWVhciZyc3F1bztzIEV2ZS48L2xpPgo8bGk&#43;QXJlIHR3byBwZW9wbGUgd2hvIGFyZSB1bndpbGxpbmcgdG8gcGxhbiB0aGVpciBmdXR1cmUgdG9nZXRoZXIgdHJ1bHkgaW4gbG92ZT88L2xpPgo8bGk&#43;SG93IHRvIG1hbmFnZSBvdXIgZXZlcnlkYXkgbGlmZT8gV2hhdCBJIG1lYW4gaXMgdGhlIHRpbWUuPC9saT4KPC9vbD4KPHA&#43;TZWx5" 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>2026-01-27</title>
      <link>https://jinpeng.cv/en/diary/2026/january/2026-01-27/</link>
      <pubDate>Tue, 27 Jan 2026 17:41:58 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2026/january/2026-01-27/</guid>
      <description>&lt;h3 id=&#34;1041-wrong-common-knowledge&#34;&gt;10:41 Wrong Common Knowledge&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s colder than usual during snow melting&lt;/li&gt;
&lt;li&gt;We should create a deeply touching work, such as a poem, a song, an essay, whatever&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These two common knowledge are most likely some basic #truth in our past education, but they are actually wrong in my experience recently.&lt;/p&gt;
&lt;p&gt;Regarding the first one, I found that during snow melting, the temperature is actually higher than usual days. Because the sun is shining strongly, and the snow is reflecting the sunlight, so the overall temperature is higher. Especially in Edmonton, when the snow is melting, it means the temperature is very comfortable rather than so cold in other winter days.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h3 id="1041-wrong-common-knowledge">10:41 Wrong Common Knowledge</h3>
<ul>
<li>It&rsquo;s colder than usual during snow melting</li>
<li>We should create a deeply touching work, such as a poem, a song, an essay, whatever</li>
</ul>
<p>These two common knowledge are most likely some basic #truth in our past education, but they are actually wrong in my experience recently.</p>
<p>Regarding the first one, I found that during snow melting, the temperature is actually higher than usual days. Because the sun is shining strongly, and the snow is reflecting the sunlight, so the overall temperature is higher. Especially in Edmonton, when the snow is melting, it means the temperature is very comfortable rather than so cold in other winter days.</p>
<p>The question makers only consider the snow melting will absorb heat, but they ignore the real environmental change.</p>
<p>About the second one, I think that creating only need to express your true feelings.</p>
<h3 id="1139-got-the-keys-to-lab">11:39 Got the keys to lab</h3>
<p>Today, Amir and I got the keys to labs from #Bonnie.We put 20 CAD deposit to get the keys. Bonnie is a very nice and kind lady.</p>
<h3 id="1140-coffee-works">11:40 Coffee works</h3>
<p>Morning&rsquo;s coffee is very effective. After drinking a cup of #coffee, I feel more energetic and focused.</p>
<p>After second class, Luis came our seats and compared our assignment 3 of Finite Element Method. Some mistakes were found in my work, so I corrected these mistakes whole afternoon.</p>
<h3 id="the-best-way-to-practice-speaking-is-to-speak">The best way to practice speaking is to speak</h3>
<p>I found that the best way to practice speaking is to speak. Just speak anything you want to say, don&rsquo;t care about the grammar, the accent, or the correctness. Just speak it out.</p>
<p>If you can learn how to pronounce phonetics symbols correctly, it will be better. But the most important thing is to build the confidence to speak.</p>
<p>In addition, just read some sentences what you are interested in aloud. It will help you a lot.</p>
]]></content:encoded>
    </item>
    <item>
      <title>2025-W44</title>
      <link>https://jinpeng.cv/en/diary/2025/weekly/2025-w44/</link>
      <pubDate>Mon, 03 Nov 2025 18:19:48 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/weekly/2025-w44/</guid>
      <description>&lt;h1 id=&#34;life&#34;&gt;Life&lt;/h1&gt;
&lt;p&gt;Last week and weekend was better than the week before last week. I got better sleep, Although most of time it&amp;rsquo;s through the help of melatonin, and now I&amp;rsquo;ve been trying sleep without melatonin. It&amp;rsquo;s harmful for me if I relied it for a long term.&lt;/p&gt;
&lt;p&gt;Last Saturday, Dr. Zhao and I went to Jollibee near the West Edmonton Mall to eat fried chicken. It&amp;rsquo;s really good and satisfactory.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="life">Life</h1>
<p>Last week and weekend was better than the week before last week. I got better sleep, Although most of time it&rsquo;s through the help of melatonin, and now I&rsquo;ve been trying sleep without melatonin. It&rsquo;s harmful for me if I relied it for a long term.</p>
<p>Last Saturday, Dr. Zhao and I went to Jollibee near the West Edmonton Mall to eat fried chicken. It&rsquo;s really good and satisfactory.</p>
<h1 id="study">Study</h1>
<table>
  <thead>
      <tr>
          <th>Week</th>
          <th>Item No.</th>
          <th>Action Item Describtion</th>
          <th>Start Date</th>
          <th>Due Date</th>
          <th>Status</th>
          <th>Priority</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>44</td>
          <td>1</td>
          <td>Project Phase 1 - Polishing</td>
          <td>October 26, 2025</td>
          <td>October 27, 2025</td>
          <td>Done</td>
          <td>Urgent</td>
          <td></td>
      </tr>
      <tr>
          <td>44</td>
          <td>2</td>
          <td>Assignment 4 - Mining - (Q1-Q3.a)</td>
          <td>October 24, 2025</td>
          <td>November 6, 2025</td>
          <td>Done</td>
          <td>High</td>
          <td></td>
      </tr>
      <tr>
          <td>44</td>
          <td>3</td>
          <td>INT D 710: Ethics and Academic Citizenship</td>
          <td>October 27, 2025</td>
          <td>December 10, 2025</td>
          <td>Done</td>
          <td>Medium</td>
          <td></td>
      </tr>
      <tr>
          <td>44</td>
          <td>4</td>
          <td>INT D 720: Advanced Ethics and Academic Citizenship</td>
          <td>October 27, 2025</td>
          <td>December 10, 2025</td>
          <td>Done</td>
          <td>Medium</td>
          <td></td>
      </tr>
      <tr>
          <td>44</td>
          <td>5</td>
          <td>Global Researchers in Training (GRIT)-Weekly assignment</td>
          <td>October 23, 2025</td>
          <td>October 28, 2025</td>
          <td>Done</td>
          <td>High</td>
          <td></td>
      </tr>
      <tr>
          <td>44</td>
          <td>6</td>
          <td>Project Phase 2 - Part A</td>
          <td>October 24, 2025</td>
          <td>November 14, 2025</td>
          <td>Done</td>
          <td>High</td>
          <td></td>
      </tr>
      <tr>
          <td>45</td>
          <td>1</td>
          <td>Assignment 4 - Mining - (Q3.a-Q3.h)</td>
          <td>November 3, 2025</td>
          <td>November 6, 2025</td>
          <td>Ongoing</td>
          <td>High</td>
          <td></td>
      </tr>
      <tr>
          <td>45</td>
          <td>2</td>
          <td>Project Phase 2 - Part B - D</td>
          <td>November 3, 2025</td>
          <td>November 14, 2025</td>
          <td>Ongoing</td>
          <td>High</td>
          <td></td>
      </tr>
      <tr>
          <td>45</td>
          <td>3</td>
          <td>RFI# 5 - Concrete Materials in Practice</td>
          <td>November 3, 2025</td>
          <td>November 7, 2025</td>
          <td>Ongoing</td>
          <td>High</td>
          <td></td>
      </tr>
  </tbody>
</table>
]]></content:encoded>
    </item>
    <item>
      <title>2025-W43</title>
      <link>https://jinpeng.cv/en/diary/2025/weekly/2025-w43/</link>
      <pubDate>Mon, 27 Oct 2025 17:22:26 +0000</pubDate>
      <guid>https://jinpeng.cv/en/diary/2025/weekly/2025-w43/</guid>
      <description>&lt;h2 id=&#34;life&#34;&gt;Life&lt;/h2&gt;
&lt;p&gt;Last week was a busy week,  and I found that I couldn&amp;rsquo;t fall asleep well. I got insomnia last Thursday.&lt;/p&gt;
&lt;p&gt;It was a strength that the more I wanted to fall asleep, the more I couldn&amp;rsquo;t sleep, especially when I forced myself to sleep.&lt;/p&gt;
&lt;p&gt;I told Amir this was the same reason for learning English; the more I wanted to learn English well, the more I couldn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;The critical key is enjoying, decreasing the expectation, I think I will get better.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="life">Life</h2>
<p>Last week was a busy week,  and I found that I couldn&rsquo;t fall asleep well. I got insomnia last Thursday.</p>
<p>It was a strength that the more I wanted to fall asleep, the more I couldn&rsquo;t sleep, especially when I forced myself to sleep.</p>
<p>I told Amir this was the same reason for learning English; the more I wanted to learn English well, the more I couldn&rsquo;t.</p>
<p>The critical key is enjoying, decreasing the expectation, I think I will get better.</p>
<h2 id="study">Study</h2>
<p>I have been absent from the group meeting for two weeks. Recently, I have still been focusing on the class. The assignments become more difficult over time, especially the Sensing Techniques and Data Analysis. Some knowledge previously learned I need to study again.</p>
<p>This week, I also have many things to do.</p>
<table>
  <thead>
      <tr>
          <th>1</th>
          <th>Project Phase 1 - Polishing</th>
          <th>October 26, 2025</th>
          <th>October 27, 2025</th>
          <th>Ongoing</th>
          <th>Urgent</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>2</td>
          <td>Assignment 4 - Mining</td>
          <td>October 24, 2025</td>
          <td>November 6, 2025</td>
          <td>Ongoing</td>
          <td>High</td>
      </tr>
      <tr>
          <td>3</td>
          <td>INT D 710: Ethics and Academic Citizenship</td>
          <td>October 27, 2025</td>
          <td>December 10, 2025</td>
          <td>Unstarted</td>
          <td>Medium</td>
      </tr>
      <tr>
          <td>4</td>
          <td>INT D 720: Advanced Ethics and Academic Citizenship</td>
          <td>October 27, 2025</td>
          <td>December 10, 2025</td>
          <td>Unstarted</td>
          <td>Medium</td>
      </tr>
      <tr>
          <td>5</td>
          <td>Global Researchers in Training (GRIT)-Weekly assignment</td>
          <td>October 23, 2025</td>
          <td>October 28, 2025</td>
          <td>Ongoing</td>
          <td>High</td>
      </tr>
  </tbody>
</table>
]]></content:encoded>
    </item>
  </channel>
</rss>
