<?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>Footprint on Ben&#39;s Blog</title>
    <link>https://jinpeng.cv/zh/tags/footprint/</link>
    <description>Recent content in Footprint on Ben&#39;s Blog</description>
    <generator>Hugo -- 0.154.0</generator>
    <language>zh</language>
    <copyright>©️ 2025 Ben</copyright>
    <lastBuildDate>Mon, 09 Mar 2026 22:26:59 -0600</lastBuildDate>
    <atom:link href="https://jinpeng.cv/zh/tags/footprint/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>接2024，上下求索</title>
      <link>https://jinpeng.cv/zh/diary/2024/2024/</link>
      <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://jinpeng.cv/zh/diary/2024/2024/</guid>
      <description>&lt;p&gt;这只是一篇未完成的年终总结，之前只有标题，于2025年11月用一句话简单回答了当时的问题。&lt;/p&gt;
&lt;div class=&#34;encrypted-content&#34; data-cipher=&#34;GlkjqUyMDI05LiK5LiL5rGC57SiIj7mjqUyMDI077yM5LiK5LiL5rGC57Si77yBPC9oMj4KPHA&amp;#43;5bel5L2c5LmL5omA5Lul6K6p5Lq65a6J5b&amp;#43;D77yM5piv5Zug5Li65bel5L2c55qE6Jaq5rC077yM6IO95aSf6K6p5Lq65Lus5b&amp;#43;D5a6J44CC5YCY6Iul6Jaq5rC05bCa5LiU6L&amp;#43;Y5Y&amp;#43;v5Lul77yM5rKh5pyJ5YW25LuW5Y6L5Yqb55qE6K&amp;#43;d44CC5pyJ5LqG5bel6LWE77yM5oiR5Lus5L6/5Y&amp;#43;v5Lul5ruh6Laz5oiR5Lus6Ieq5bex5Z&amp;#43;65pys55qE6KGj6aOf5L2P6KGM77yM5Lul5Y&amp;#43;K6Ieq5bex5bCP5bCP55qE6LSt54mp5qyy5pyb44CC6L&amp;#43;Z5piv5LiA56eN5b6I5bm456aP56Wl5ZKM55qE54q25oCBIO&amp;#43;8jOWmguaenOaIkeS7rOWPquaYr&amp;#43;aDs&amp;#43;imgeWuieeos&amp;#43;eahOivneOAgjwvcD4KPGhyPgo8cD7nu63lhpnvvJo8YnI&amp;#43;CuW5s&amp;#43;aXtuWNiOinieedoeS5oOaDr&amp;#43;S6hu&amp;#43;8jOeqgeeEtuayoeedoeWNiOinieWwseS8muW&amp;#43;iOWbsO&amp;#43;8jOaDs&amp;#43;edgOWGmeS6m&amp;#43;S7gOS5iOS4nOilv&amp;#43;e9ouOAgjwvcD4KPGgyIGlkPSLlvaLlir8iPuW9ouWKvzwvaDI&amp;#43;CjxwPuS7iuW5tOWQrOWIsOacgOWkmueahOWwseaYr&amp;#43;e7j&amp;#43;a1juW9ouWKv&amp;#43;&amp;#43;8jOaXoOWkluS5juaYr&amp;#43;W3peS9nOmavuaJvuOAgee7j&amp;#43;a1juS4i&amp;#43;ihjOOAgeaMo&amp;#43;mSsei2iuadpei2iumavuOAgeimgei/veaxgueos&amp;#43;WumuS5i&amp;#43;exu&amp;#43;eahOivneOAguehruWunu&amp;#43;8jOWRqOWbtOeahOenjeenjei/ueixoemDveWcqOihqOaYju&amp;#43;8jOaIkeS7rOato&amp;#43;WcqOe7j&amp;#43;WOhumAhuWig&amp;#43;&amp;#43;8jOS8vOS5jumhuuWKv&amp;#43;iAjOS4uuaJjeaYr&amp;#43;acgOWlveeahOmAieaLqeOAguWPr&amp;#43;mXrumimOaYr&amp;#43;mhuuWig&amp;#43;eahOaXtuWAmeaIkeS7rOiDveWkn&amp;#43;aKiuaIkeacuuS8mua/gOa1geWLh&amp;#43;i/m&amp;#43;WQl&amp;#43;&amp;#43;8n&amp;#43;aIkeS7rOeahOeUn&amp;#43;a0u&amp;#43;S8muWboOS4uumhuuWig&amp;#43;iAjOWPmOW&amp;#43;l&amp;#43;abtOWKoOS4jeS4gOagt&amp;#43;WQl&amp;#43;&amp;#43;8n&amp;#43;WvueS6juWDj&amp;#43;aIkei/meagt&amp;#43;eahOaZrumAmuS6uuadpeivtO&amp;#43;8jOmhuuWig&amp;#43;mAhuWig&amp;#43;WPquaYr&amp;#43;ekvuS8mueOr&amp;#43;Wig&amp;#43;eahOWkp&amp;#43;i2i&amp;#43;WKv&amp;#43;&amp;#43;8jOeUn&amp;#43;a0u&amp;#43;WcqOWFtuS4reeahOS4quS6uuW5tuS4jeS8muWboOatpOiAjOaatOWvjOaIluiAheS9v&amp;#43;W&amp;#43;l&amp;#43;eUn&amp;#43;a0u&amp;#43;mavuS7peS4uue7p&amp;#43;OAguaIkeS7rOS5n&amp;#43;S4jeW/heWwhuiHquW3seS4juWkp&amp;#43;eOr&amp;#43;Wig&amp;#43;e7keWumu&amp;#43;8jOWKquWKm&amp;#43;WIm&amp;#43;mAoOWSjOi/h&amp;#43;WlveiHquW3seefreaagueahOS6uueUn&amp;#43;aJjeaYr&amp;#43;W6lOivpeiAg&amp;#43;iZkeeahOOAgjwvcD4KPGgyIGlkPSLniLHmg4UiPueIseaDhTwvaDI&amp;#43;CjxwPuS9oOaJgOmBh&amp;#43;WIsOeahOS6uuS8muWvueS9oOeahOeIseaDheinguW/teS6p&amp;#43;eUn&amp;#43;a3seWIu&amp;#43;eahOW9seWTje&amp;#43;8jOacieeahOS6uuS8muiuqeS9oOinieW&amp;#43;l&amp;#43;eIseaDheeLl&amp;#43;WxgeS4jeaYr&amp;#43;&amp;#43;8jOacieeahOS6uuS8muiuqeS9oOmHjeaWsOeci&amp;#43;WIsOeIseaDhe&amp;#43;8jOebuOS/oeeIseaDheOAguS9oOaDs&amp;#43;WBmuS7gOS5iOagt&amp;#43;eahOS6uu&amp;#43;8nzwvcD4KPGgyIGlkPSLlubTpvoQiPuW5tOm&amp;#43;hDwvaDI&amp;#43;CjxwPjE4IOWygeaEj&amp;#43;WRs&amp;#43;edgOS7gOS5iO&amp;#43;8nzI3IOWygeaEj&amp;#43;WRs&amp;#43;edgOS7gOS5iO&amp;#43;8nzMwIOWygeaEj&amp;#43;WRs&amp;#43;edgOS7gOS5iO&amp;#43;8n&amp;#43;aIkeS7rOacieW&amp;#43;iOWkmui/meagt&amp;#43;eahOaEj&amp;#43;WRs&amp;#43;&amp;#43;8jOi/meagt&amp;#43;eahOaEj&amp;#43;WRs&amp;#43;WvvOiHtOaIkeS7rOaAu&amp;#43;aYr&amp;#43;WcqOiiq&amp;#43;ivhOS7t&amp;#43;aIluiAheivhOS7t&amp;#43;WIq&amp;#43;S6uu&amp;#43;8jOWBj&amp;#43;emu&amp;#43;S6hui/meS4quaEj&amp;#43;WRs&amp;#43;OAguWvueS6juekvuS8muaVtOS9k&amp;#43;iAjOiogO&amp;#43;8jOi/meagt&amp;#43;eahOaEj&amp;#43;WRs&amp;#43;acieedgOaYjuehruS4lOa4heaZsOeahOWGheWuue&amp;#43;8jOeUmuiHs&amp;#43;WPr&amp;#43;S7pee9l&amp;#43;WIl&amp;#43;aIkOS4gOadoeadoeeahOihqOagvOWFhea7oeS4gOW8oOW8oCBBNCDnurjjgILmiJHmg7PvvJrkurrnsbvnpL7kvJrnmoTlpJrmoLfmgKflnKjkuo7lkKblrprov5nmoLfnmoTmhI/lkbPvvIwwIOWygeaYr&amp;#43;WUr&amp;#43;S4gOeahOaEj&amp;#43;WRs&amp;#43;OAgjwvcD4KPGgyIGlkPSLotKLlr4wiPui0ouWvjDwvaDI&amp;#43;CjxwPuWvueS6juWkp&amp;#43;mDqOWIhuS6uuadpeivtO&amp;#43;8jOS4gOi&amp;#43;iOWtkOiDveWkn&amp;#43;i1muWIsOeahOmSseaYr&amp;#43;acieS4gOS4quS4iumZkOeahO&amp;#43;8jOiAjOS4lOi/meS4quS4iumZkOW&amp;#43;iOWuueaYk&amp;#43;iuoeeul&amp;#43;W&amp;#43;l&amp;#43;WHuuOAgui/meS4gOeslOmSsemcgOimgeWHuuWNluaIkeS7rOeahOaXtumXtOWSjOeyvuWKm&amp;#43;&amp;#43;8jOWvueS6jui/meagt&amp;#43;eahOi0ouWvjOenr&amp;#43;e0r&amp;#43;iAjOiogO&amp;#43;8jOWPquimgeaIkeS7rOi4j&amp;#43;i4j&amp;#43;WunuWunueahO&amp;#43;8jOmCo&amp;#43;S5iOWcqOWKm&amp;#43;aJgOiDveWPiueahOiMg&amp;#43;WbtOWGhe&amp;#43;8jOaIkeS7rOiDveWkn&amp;#43;i0reS5sOW&amp;#43;l&amp;#43;i1t&amp;#43;Wkp&amp;#43;mDqOWIhueahOeUn&amp;#43;a0u&amp;#43;i1hOaWme&amp;#43;8jOaKm&amp;#43;W8gOWFtuS7luWTgei0qOeahOi/veaxguOAgui/meaYr&amp;#43;Wkp&amp;#43;mDqOWIhuS6uuaJgOiDveWkn&amp;#43;eci&amp;#43;W&amp;#43;l&amp;#43;WIsOeahO&amp;#43;8jOS5n&amp;#43;aYr&amp;#43;WcqOWpmuaBi&amp;#43;inguW/teS4iuS6ieiurui&amp;#43;g&amp;#43;WkmueahOivnemimDwvcD4KPGgyIGlkPSLpgInmi6kiPumAieaLqTwvaDI&amp;#43;CjxwPuaKlei6q&amp;#43;WbvemYsu&amp;#43;8jOi&amp;#43;nuiBjO&amp;#43;8jOiAg&amp;#43;WFrO&amp;#43;8jOeVmeWtpu&amp;#43;8jCDov5nmmK/miJHnmoTpgInmi6k8L3A&amp;#43;CjxoMiBpZD0i5qyh5bqPIj7mrKHluo88L2gyPgo8cD7lhYjku47nroDljZXnmoTlvIDlp4vvvIzlsL3lj6/og73lv73nlaXnm67moIfluKbmnaXnmoTljovlipvjgII8L3A&amp;#43;CjxoMiBpZD0i5Lqr5LmQIj7kuqvkuZA8L2gyPgo8cD7kuqvkuZDlubbkuI3mmK/oh6rnp4HvvIzogIzmmK/nnJ/or5rnmoTng63niLHnlJ/mtLvvvIzlsL3lj6/og73nvJPop6PmnaXoh6rnlJ/mtLvlkITmlrnpnaLnmoTljovlipvjgII8L3A&amp;#43;CjxoMiBpZD0i6IKy5YS/Ij7ogrLlhL88L2gyPgo8cD7ms6jmhI/lipvkuI7oh6rliLblipvnmoTln7nlhbvmmK/ogrLlhL/nmoTlhbPplK7vvIzpg73lj6/ku6XpgJrov4flvJXlr7zlkozpmarkvLTmnaXovr7liLDjgILkupLogZTnvZE8L3A&amp;#43;CjxoMiBpZD0i5ama5oGLIj7lqZrmgYs8L2gyPgo8cD7mmK/otKPku7vkuI7moqbmg7PvvIzogIzkuI3mmK/mnZ/nvJrkuI7pgIPpgb/jgII8L3A&amp;#43;CjxoMiBpZD0i5bel5L2cIj7lt6XkvZw8L2gyPgo8cD7lpoLmnpzkuI3mmK/oh6rlt7Hng63niLHnmoTvvIzpgqPkuYjlgZrlpb3mnKzogYzlt6XkvZzog73ns4rlj6PlsLHooYzvvIzmlL7ovbvmnb7jgII8L3A&amp;#43;CjxoMiBpZD0i5a2m5LmgIj7lrabkuaA8L2gyPgo8cD7kuInlpKnkuI3lrabkuaDvvIzotbbkuI3kuIrliJjlsJHlpYfjgII8L3A&amp;#43;CjxoMiBpZD0i5Liq5L2TIj7kuKrkvZM8L2gyPgo8cD7muLrlsI/kuI7ni6znibnjgII8L3A&amp;#43;CjxoMiBpZD0i552h55ygIj7nnaHnnKA8L2gyPgo8cD7kurrmnIDkuLrph43opoHnmoTkuovjgII8L3A&amp;#43;Cg==PGgyIPSLm&#34; data-hint=&#34;此处内容已加密&#34; data-error=&#34;密码错误！&#34;&gt;
  &lt;div class=&#34;locked-state&#34;&gt;
    &lt;p&gt;🔒 此处内容已加密&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>这只是一篇未完成的年终总结，之前只有标题，于2025年11月用一句话简单回答了当时的问题。</p>
<div class="encrypted-content" data-cipher="GlkjqUyMDI05LiK5LiL5rGC57SiIj7mjqUyMDI077yM5LiK5LiL5rGC57Si77yBPC9oMj4KPHA&#43;5bel5L2c5LmL5omA5Lul6K6p5Lq65a6J5b&#43;D77yM5piv5Zug5Li65bel5L2c55qE6Jaq5rC077yM6IO95aSf6K6p5Lq65Lus5b&#43;D5a6J44CC5YCY6Iul6Jaq5rC05bCa5LiU6L&#43;Y5Y&#43;v5Lul77yM5rKh5pyJ5YW25LuW5Y6L5Yqb55qE6K&#43;d44CC5pyJ5LqG5bel6LWE77yM5oiR5Lus5L6/5Y&#43;v5Lul5ruh6Laz5oiR5Lus6Ieq5bex5Z&#43;65pys55qE6KGj6aOf5L2P6KGM77yM5Lul5Y&#43;K6Ieq5bex5bCP5bCP55qE6LSt54mp5qyy5pyb44CC6L&#43;Z5piv5LiA56eN5b6I5bm456aP56Wl5ZKM55qE54q25oCBIO&#43;8jOWmguaenOaIkeS7rOWPquaYr&#43;aDs&#43;imgeWuieeos&#43;eahOivneOAgjwvcD4KPGhyPgo8cD7nu63lhpnvvJo8YnI&#43;CuW5s&#43;aXtuWNiOinieedoeS5oOaDr&#43;S6hu&#43;8jOeqgeeEtuayoeedoeWNiOinieWwseS8muW&#43;iOWbsO&#43;8jOaDs&#43;edgOWGmeS6m&#43;S7gOS5iOS4nOilv&#43;e9ouOAgjwvcD4KPGgyIGlkPSLlvaLlir8iPuW9ouWKvzwvaDI&#43;CjxwPuS7iuW5tOWQrOWIsOacgOWkmueahOWwseaYr&#43;e7j&#43;a1juW9ouWKv&#43;&#43;8jOaXoOWkluS5juaYr&#43;W3peS9nOmavuaJvuOAgee7j&#43;a1juS4i&#43;ihjOOAgeaMo&#43;mSsei2iuadpei2iumavuOAgeimgei/veaxgueos&#43;WumuS5i&#43;exu&#43;eahOivneOAguehruWunu&#43;8jOWRqOWbtOeahOenjeenjei/ueixoemDveWcqOihqOaYju&#43;8jOaIkeS7rOato&#43;WcqOe7j&#43;WOhumAhuWig&#43;&#43;8jOS8vOS5jumhuuWKv&#43;iAjOS4uuaJjeaYr&#43;acgOWlveeahOmAieaLqeOAguWPr&#43;mXrumimOaYr&#43;mhuuWig&#43;eahOaXtuWAmeaIkeS7rOiDveWkn&#43;aKiuaIkeacuuS8mua/gOa1geWLh&#43;i/m&#43;WQl&#43;&#43;8n&#43;aIkeS7rOeahOeUn&#43;a0u&#43;S8muWboOS4uumhuuWig&#43;iAjOWPmOW&#43;l&#43;abtOWKoOS4jeS4gOagt&#43;WQl&#43;&#43;8n&#43;WvueS6juWDj&#43;aIkei/meagt&#43;eahOaZrumAmuS6uuadpeivtO&#43;8jOmhuuWig&#43;mAhuWig&#43;WPquaYr&#43;ekvuS8mueOr&#43;Wig&#43;eahOWkp&#43;i2i&#43;WKv&#43;&#43;8jOeUn&#43;a0u&#43;WcqOWFtuS4reeahOS4quS6uuW5tuS4jeS8muWboOatpOiAjOaatOWvjOaIluiAheS9v&#43;W&#43;l&#43;eUn&#43;a0u&#43;mavuS7peS4uue7p&#43;OAguaIkeS7rOS5n&#43;S4jeW/heWwhuiHquW3seS4juWkp&#43;eOr&#43;Wig&#43;e7keWumu&#43;8jOWKquWKm&#43;WIm&#43;mAoOWSjOi/h&#43;WlveiHquW3seefreaagueahOS6uueUn&#43;aJjeaYr&#43;W6lOivpeiAg&#43;iZkeeahOOAgjwvcD4KPGgyIGlkPSLniLHmg4UiPueIseaDhTwvaDI&#43;CjxwPuS9oOaJgOmBh&#43;WIsOeahOS6uuS8muWvueS9oOeahOeIseaDheinguW/teS6p&#43;eUn&#43;a3seWIu&#43;eahOW9seWTje&#43;8jOacieeahOS6uuS8muiuqeS9oOinieW&#43;l&#43;eIseaDheeLl&#43;WxgeS4jeaYr&#43;&#43;8jOacieeahOS6uuS8muiuqeS9oOmHjeaWsOeci&#43;WIsOeIseaDhe&#43;8jOebuOS/oeeIseaDheOAguS9oOaDs&#43;WBmuS7gOS5iOagt&#43;eahOS6uu&#43;8nzwvcD4KPGgyIGlkPSLlubTpvoQiPuW5tOm&#43;hDwvaDI&#43;CjxwPjE4IOWygeaEj&#43;WRs&#43;edgOS7gOS5iO&#43;8nzI3IOWygeaEj&#43;WRs&#43;edgOS7gOS5iO&#43;8nzMwIOWygeaEj&#43;WRs&#43;edgOS7gOS5iO&#43;8n&#43;aIkeS7rOacieW&#43;iOWkmui/meagt&#43;eahOaEj&#43;WRs&#43;&#43;8jOi/meagt&#43;eahOaEj&#43;WRs&#43;WvvOiHtOaIkeS7rOaAu&#43;aYr&#43;WcqOiiq&#43;ivhOS7t&#43;aIluiAheivhOS7t&#43;WIq&#43;S6uu&#43;8jOWBj&#43;emu&#43;S6hui/meS4quaEj&#43;WRs&#43;OAguWvueS6juekvuS8muaVtOS9k&#43;iAjOiogO&#43;8jOi/meagt&#43;eahOaEj&#43;WRs&#43;acieedgOaYjuehruS4lOa4heaZsOeahOWGheWuue&#43;8jOeUmuiHs&#43;WPr&#43;S7pee9l&#43;WIl&#43;aIkOS4gOadoeadoeeahOihqOagvOWFhea7oeS4gOW8oOW8oCBBNCDnurjjgILmiJHmg7PvvJrkurrnsbvnpL7kvJrnmoTlpJrmoLfmgKflnKjkuo7lkKblrprov5nmoLfnmoTmhI/lkbPvvIwwIOWygeaYr&#43;WUr&#43;S4gOeahOaEj&#43;WRs&#43;OAgjwvcD4KPGgyIGlkPSLotKLlr4wiPui0ouWvjDwvaDI&#43;CjxwPuWvueS6juWkp&#43;mDqOWIhuS6uuadpeivtO&#43;8jOS4gOi&#43;iOWtkOiDveWkn&#43;i1muWIsOeahOmSseaYr&#43;acieS4gOS4quS4iumZkOeahO&#43;8jOiAjOS4lOi/meS4quS4iumZkOW&#43;iOWuueaYk&#43;iuoeeul&#43;W&#43;l&#43;WHuuOAgui/meS4gOeslOmSsemcgOimgeWHuuWNluaIkeS7rOeahOaXtumXtOWSjOeyvuWKm&#43;&#43;8jOWvueS6jui/meagt&#43;eahOi0ouWvjOenr&#43;e0r&#43;iAjOiogO&#43;8jOWPquimgeaIkeS7rOi4j&#43;i4j&#43;WunuWunueahO&#43;8jOmCo&#43;S5iOWcqOWKm&#43;aJgOiDveWPiueahOiMg&#43;WbtOWGhe&#43;8jOaIkeS7rOiDveWkn&#43;i0reS5sOW&#43;l&#43;i1t&#43;Wkp&#43;mDqOWIhueahOeUn&#43;a0u&#43;i1hOaWme&#43;8jOaKm&#43;W8gOWFtuS7luWTgei0qOeahOi/veaxguOAgui/meaYr&#43;Wkp&#43;mDqOWIhuS6uuaJgOiDveWkn&#43;eci&#43;W&#43;l&#43;WIsOeahO&#43;8jOS5n&#43;aYr&#43;WcqOWpmuaBi&#43;inguW/teS4iuS6ieiurui&#43;g&#43;WkmueahOivnemimDwvcD4KPGgyIGlkPSLpgInmi6kiPumAieaLqTwvaDI&#43;CjxwPuaKlei6q&#43;WbvemYsu&#43;8jOi&#43;nuiBjO&#43;8jOiAg&#43;WFrO&#43;8jOeVmeWtpu&#43;8jCDov5nmmK/miJHnmoTpgInmi6k8L3A&#43;CjxoMiBpZD0i5qyh5bqPIj7mrKHluo88L2gyPgo8cD7lhYjku47nroDljZXnmoTlvIDlp4vvvIzlsL3lj6/og73lv73nlaXnm67moIfluKbmnaXnmoTljovlipvjgII8L3A&#43;CjxoMiBpZD0i5Lqr5LmQIj7kuqvkuZA8L2gyPgo8cD7kuqvkuZDlubbkuI3mmK/oh6rnp4HvvIzogIzmmK/nnJ/or5rnmoTng63niLHnlJ/mtLvvvIzlsL3lj6/og73nvJPop6PmnaXoh6rnlJ/mtLvlkITmlrnpnaLnmoTljovlipvjgII8L3A&#43;CjxoMiBpZD0i6IKy5YS/Ij7ogrLlhL88L2gyPgo8cD7ms6jmhI/lipvkuI7oh6rliLblipvnmoTln7nlhbvmmK/ogrLlhL/nmoTlhbPplK7vvIzpg73lj6/ku6XpgJrov4flvJXlr7zlkozpmarkvLTmnaXovr7liLDjgILkupLogZTnvZE8L3A&#43;CjxoMiBpZD0i5ama5oGLIj7lqZrmgYs8L2gyPgo8cD7mmK/otKPku7vkuI7moqbmg7PvvIzogIzkuI3mmK/mnZ/nvJrkuI7pgIPpgb/jgII8L3A&#43;CjxoMiBpZD0i5bel5L2cIj7lt6XkvZw8L2gyPgo8cD7lpoLmnpzkuI3mmK/oh6rlt7Hng63niLHnmoTvvIzpgqPkuYjlgZrlpb3mnKzogYzlt6XkvZzog73ns4rlj6PlsLHooYzvvIzmlL7ovbvmnb7jgII8L3A&#43;CjxoMiBpZD0i5a2m5LmgIj7lrabkuaA8L2gyPgo8cD7kuInlpKnkuI3lrabkuaDvvIzotbbkuI3kuIrliJjlsJHlpYfjgII8L3A&#43;CjxoMiBpZD0i5Liq5L2TIj7kuKrkvZM8L2gyPgo8cD7muLrlsI/kuI7ni6znibnjgII8L3A&#43;CjxoMiBpZD0i552h55ygIj7nnaHnnKA8L2gyPgo8cD7kurrmnIDkuLrph43opoHnmoTkuovjgII8L3A&#43;Cg==PGgyIPSLm" data-hint="此处内容已加密" data-error="密码错误！">
  <div class="locked-state">
    <p>🔒 此处内容已加密</p>
    <div class="password-prompt">
      <div class="password-input-wrapper">
        <input type="password" class="password-input"
               placeholder="请输入密码"
               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')">
        解锁
      </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 = '解码失败: ' + 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>接2022，顺遂</title>
      <link>https://jinpeng.cv/zh/diary/2023/2023/</link>
      <pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://jinpeng.cv/zh/diary/2023/2023/</guid>
      <description>&lt;h1 id=&#34;接2022顺遂&#34;&gt;接2022，顺遂&lt;/h1&gt;
&lt;p&gt;很久没写东西了，心总是很难静下来。想要的东西太多，总是活在焦虑与惴惴不安里。&lt;/p&gt;
&lt;p&gt;2023算是近些年发生变化较大的一年，身份角色由学生转向工人；有那么一两刹那感觉自己稚气未脱，更多的时候扑面而来的是年岁愈加的忧愁。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h1 id="接2022顺遂">接2022，顺遂</h1>
<p>很久没写东西了，心总是很难静下来。想要的东西太多，总是活在焦虑与惴惴不安里。</p>
<p>2023算是近些年发生变化较大的一年，身份角色由学生转向工人；有那么一两刹那感觉自己稚气未脱，更多的时候扑面而来的是年岁愈加的忧愁。</p>
<p>不止一次地向他人说起生命有限，曾经作文题目里的“意义”、“快乐”、“财富”、“价值”、“幸福”等字眼无一例外又再度在脑海里翻涌，像是扔进水里的石头，总免不了要冒几个泡泡。</p>
<p>大体而言，还是顺遂的。<br>
想写的东西太多，还是列几个关键词吧！</p>
<h1 id="走出象牙塔">走出象牙塔</h1>
<p>这次毕业终于是没有疫情了，还好在平时有陆陆续续的推进自己的论文进度。不至于快到毕业的时候像其他同学一样彻夜熬夜，给自己的研究生生涯留下一个奋斗的句号。</p>
<p>关于走出象牙塔，我们每个同学都有着自己的选择和权衡，我们想要的是什么？</p>
<p>在毕业及之前的那段时间里，我是一个很鄙视社会上的尔虞我诈的事情的。我也单纯的认为体制内部或者公司里面都无法避免，所以还是有点排斥就业的。同时，我还是坚信自己是要做一番事情的人，也正好得到中国航发贵阳所的一个offer。</p>
<p>中国航发贵阳所的全称叫做中国航发贵阳发动机设计研究所，听名字就知道这是高精尖的企业，航空发动机也被誉为工业明珠。这是我向往的地方，我想在这个行业不断学习，提升自己，将自己奉献于这个行业。</p>
<p>这是我的初心。的确，当我了解了三线历史，再到亲眼看到各种型号的发动机试车的时候，我的心里也跟着是热血澎湃的。</p>
<p>似乎，象牙塔外是无尽苍穹之外的星辰大海。</p>
<h1 id="推落于沧海">推落于沧海</h1>
<p>随着新员工培训的结束，我们被分配到了不同的部门。我开始意识到事情有些不对劲。</p>
<p>来之前我就知道自己会被分配到质量安全部，正好！我心想。因为我的专业是安全科学与工程，一想到在发动机研制工程中，可能会出现各种各样的故障，可能会用到各种各样的分析排故方法。这个时候，我的专业就派上用场了。</p>
<p>没想到的是，质量安全部并不是一个完整的部门，而是质量和安全。我自然而然也在安全这个方面了，也挺好。</p>
<p>开始慢慢觉得这个安全并不大好，是因为形式大于内容。来自各级上级、机关、行业的各种检查和要求，单位里面各种落空的制度，以及领导的不够重视。质量安全部似乎成为了又忙又累又没用的部门，特别是安全。</p>
<p>另外一个方面就是来自于同事的反感和对安全的漠视，安全意识并不是人人都有的。因为安全在很多时候看起来都是多此一举的事情。</p>
<p>每日的工作渐渐变得应付起来，因为实在是没有精力去做各种各样本职的工作。</p>
<p>每天起床、洗漱、吃早餐、上班、下班、躺会儿、弄吃的、刷手机、睡觉。</p>
<p>日子开始日复一日起来。</p>
<h1 id="一粟的梦想">一粟的梦想</h1>
<p>在10月份的时候，胡老师问我有没有意向出去读博，但是得自己的英语先达到相应的条件。我答应了，因为这份工作和我设想的并不一样，在这里也不能很好的提升自己，因为我不是学航空发动机相关专业的。</p>
<p>于是我开始收集准备学习，也正是这个原因，我本来都准备缴费给培训机构来准备中级注册安全工程师的考试。</p>
<p>于是我开始准备，很希望能够成功，最主要的是老师说有全额奖学金。</p>
<h1 id="批与判">批与判</h1>
<p>想批评的有很多，大学的教育体制、企事业领导对于安全的漠视、同龄人的择偶观念等等等等，都是我想批判的对象。</p>
<p>上述的各种对象已经有无数的专家批判过了，但似乎还没有人来批判我自己，至少是系统地批判我自己。这里的批判就留给自己吧。</p>
<p>批判成长必经的阶段，否定之否定也是螺旋上升的必要条件。我的身上有很多值得否定的地方。</p>
<ol>
<li>并不缺少行动力，只是缺少一股脑走到底的毅力。我对各种未知的事情、新技术、新方法都很好奇，也很乐意去尝试。但是我往往都是浅尝辄止，这也是我至今一事无成的原因。</li>
<li>缺少对健康的重视。经常性的饮食不合理，因为自己的懒惰而疲于满足自己的味蕾和胃。</li>
<li>臆想太多，过于善良。经常因为一些小事，会想这会不会让对方并不开心，或者让对方难过。而导致自己不能安心地睡觉。单纯一点会好很多。</li>
<li>缺少对长远未来的明确规划和目标。经常是走一步看一步的状态，不知道自己想要的生活是什么。这样也有一个好处就是生活比较随性，还好很多事情很容易看开。</li>
<li>对爱情观念的不正确认识。总是想要寻找一个完美的伴侣，能让我和对方都满意的那种伴侣。无论是在性格上，容貌上，还是能力上。我一直以为自己存在有回避型依恋，一旦自己快要走近一段亲密关系，就会开始退缩。这种退缩并不是否定自己，而是来自己否定对方，不喜欢对方的方方面面，有时候只是很小的一些方面。比如无心说的一句话，或者是一个很小的生活习惯。更多的时候总是觉得自己不能够拥有爱情了，自己并不值得被爱，很多时候也不想把自己的爱给别人。</li>
<li>对待父母的不耐心。我在外面经常会表现为一个很热心和很耐心的人，但是在家里面却经常对父母不能够体现。经常体现出来的是不耐烦，虽然这种不耐烦应该是有一些爸爸妈妈的原因。但是我还是觉得这种情况应该有所改变，因为我发现妈妈爸爸似乎在逆向生长。我越来越成熟，他们却越来越小了，这种背道而驰的过程导致他们经常不能很好的了解和适应现代社会的各种新鲜事物。</li>
</ol>
<h1 id="当是如何">当是如何</h1>
<p>当是如何这个问题并没有什么答案，当是如何也只有当下的自己能够给自己答案。因为我们的观念也总是随着我们的经历随着时间而不断变化的。</p>
<p>很多时候我们都是会否定我们之前的想法，所以，当是如何？</p>
<p>答案应该是注重于感受当下，感受自己的状态和情绪。不恰当的作出否定和批判，从而寻求肯定和坚持。</p>
<p>2024 上下求索！</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
