<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fernweh</title>
    <link>https://blog.wohin.me/</link>
    <description>Recent content on Fernweh</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>rambo@wohin.me (Bonan)</managingEditor>
    <webMaster>rambo@wohin.me (Bonan)</webMaster>
    <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://blog.wohin.me/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>文章分类与统计</title>
      <link>https://blog.wohin.me/post-categories/</link>
      <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/post-categories/</guid>
      <description>&lt;p&gt;已发布文章总数：323
&lt;br /&gt;最近一次发布日期：2026-01-26&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Category&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Last Updated Date&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Count&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e8%af%97&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;诗&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-12-02&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;64&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e9%9a%8f%e7%ac%94&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;随笔&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2025-02-09&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;39&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/misc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Misc&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2026-01-26&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;26&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/kpwn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;kPWN&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2024-02-18&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;24&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/pwn&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PWN&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-01-26&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;22&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e7%a8%8b%e5%ba%8f%e5%88%86%e6%9e%90&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;程序分析&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2024-04-20&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;21&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e4%ba%91%e5%ae%89%e5%85%a8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;云安全&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-09-19&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;16&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;读书笔记&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-11-04&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;12&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/metasploit&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Metasploit&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2018-10-30&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;10&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e6%b8%97%e9%80%8f%e6%b5%8b%e8%af%95&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;渗透测试&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2019-06-10&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;10&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/rootkit&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rootkit&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2017-05-11&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;10&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e7%bd%91%e7%bb%9c%e5%ae%89%e5%85%a8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;网络安全&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2021-01-07&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;8&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e5%ae%b9%e5%99%a8%e9%80%83%e9%80%b8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;容器逃逸&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-08-29&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;7&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/powershell&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PowerShell&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2018-06-13&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;6&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/ai&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;AI&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-07-18&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;5&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e4%ba%91%e8%ae%a1%e7%ae%97&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;云计算&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2019-02-20&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/linux&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Linux&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2017-10-23&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/web%e5%ae%89%e5%85%a8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Web安全&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2020-12-18&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/kernel&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kernel&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2017-06-02&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e6%91%84%e5%bd%b1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;摄影&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-10-02&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e8%99%9a%e6%8b%9f%e5%8c%96&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;虚拟化&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-03-22&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e5%ad%a6%e6%9c%af%e7%a0%94%e7%a9%b6&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;学术研究&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2025-12-02&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/ctf&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CTF&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2018-12-22&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/fuzzing&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Fuzzing&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2023-10-31&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/malware&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Malware&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2017-01-15&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/multimedia&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Multimedia&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2019-01-04&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/cyberrange&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CyberRange&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-10-20&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/web3%e5%ae%89%e5%85%a8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Web3安全&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2024-03-28&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/ai4security&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;AI4Security&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2024-03-20&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/java&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Java&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2017-03-26&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/javascript&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;JavaScript&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2019-08-10&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e5%85%a5%e4%be%b5%e6%a3%80%e6%b5%8b&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;入侵检测&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2021-01-23&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/algorithms&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Algorithms&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-11-11&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;反序列化&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2020-12-19&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e6%95%b0%e5%ad%a6&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;数学&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2018-10-25&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e5%8f%af%e4%bf%a1%e8%ae%a1%e7%ae%97&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;可信计算&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2024-02-18&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/%e8%99%9a%e6%8b%9f%e5%8c%96%e5%ae%89%e5%85%a8&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;虚拟化安全&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-05-13&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://blog.wohin.me/categories/latex&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;LaTeX&lt;/a&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2022-08-25&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</description>
    </item>
    
    <item>
      <title>Gemini Cli实现“选中文字添加日程”的右键功能</title>
      <link>https://blog.wohin.me/posts/touch-gemini-cli/</link>
      <pubDate>Mon, 26 Jan 2026 19:04:21 +0800</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/posts/touch-gemini-cli/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;近来我在摸索将&lt;a href=&#34;https://geminicli.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Gemini Cli&lt;/a&gt;等终端agents融入工作流，目前总体感觉是——这类工具确实能够将脑力和精力从“杂活”和“需要但不感兴趣”的事情中解放出来，效率提升很多。这篇短文将介绍一个最近的实践案例。&lt;/p&gt;
&lt;p&gt;作为博士生，我经常需要做的一件事是手动将电子邮件中的会议、报告、答辩等信息添加到Apple日历中。手动设置事件的标题、时间、地点、提前提醒时间、线上开会链接等内容属实麻烦。在ChatGPT出圈后，我一直想要开发一个功能——选中文字后直接在右键菜单中点击“添加日程”，程序就能够调用LLM去解析文字，生成Apple日历事件并导入到日历中。&lt;/p&gt;
&lt;p&gt;然而，这个想法在脑海中，一直也没有去实现。最近，需要添加的事件尤其多，今晚吃饭回来后又想到了这一茬儿，于是打开Gemini Cli，给出需求，让它设计方案并实现，十分顺利。&lt;/p&gt;
&lt;p&gt;现在我只需要在邮件中选中文字，点击右键，然后选择“添加日程”：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Xnip2026-01-26_19-56-57.jpg&#34; alt=&#34;Xnip2026-01-26_19-56-57&#34;&gt;&lt;/p&gt;
&lt;p&gt;稍等片刻，就能在日历中看到对应的事项了：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;Xnip2026-01-26_19-58-17.jpg&#34; alt=&#34;Xnip2026-01-26_19-58-17&#34;&gt;&lt;/p&gt;
&lt;p&gt;代码仓库：&lt;a href=&#34;https://github.com/brant-ruan/text2agenda&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/brant-ruan/text2agenda&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;实践&#34;&gt;实践&lt;/h2&gt;
&lt;p&gt;为了提高成功率，我在Gemini Cli中将模型设定为&lt;code&gt;gemini-3-pro-preview&lt;/code&gt;。初始需求描述如下：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;我想要在当前目录下开发一个软件或者借助Mac上已有的automator等，它的功能是给我的macbook添加一个右键菜单“添加日程”，
使用场景是选中一段文字后，比如在Outlook中选中一个关于会议日程信息通知邮件的文字部分，右键，选择“添加日程”，
然后自动调用OpenAI/DeepSeek/Gemini等大模型的API，将其解析成.ics（苹果日程格式），然后自动导入到我的系统日历中。
这个项目允许用户通过配置文件配置API KEY等配置项。
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;很快，Gemini给出了实现方案：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;I will design a solution using a Python script as the core logic engine (handling the API call and Calendar interaction) and use macOS Automator to trigger it via the right-click menu.

Here is the development plan:

1. Project Setup &amp;amp; Configuration
* Structure: Create a directory for the project.
* Dependencies: Use Python&amp;#39;s requests library to communicate with LLM APIs.
* Config: Create a config.json file where you can define your API Key, Base URL (allowing use of OpenAI, DeepSeek, or Gemini via compatible endpoints), and Model name.

2. Core Logic Implementation (remind.py)
* Input: The script will accept text arguments (the selected text from your email/document).
* Context: It will automatically detect the current system date/time so that relative dates like &amp;#34;next Friday&amp;#34; are parsed correctly.
* LLM Processing: It will send the text to the configured API with a prompt to extract event details (Title, Start Time, End Time, Location, Notes) in a strict JSON format.
* Calendar Automation: Instead of just generating an .ics file (which requires manual clicking to import), I will use AppleScript (executed via Python) to directly insert the event into your macOS Calendar app.

3. Verification
* I will create a dummy test to ensure the script runs and attempts to reach the API (handling errors gracefully if the API key is not yet set).

4. Integration (The &amp;#34;Right-Click&amp;#34; Menu)
* Since I cannot interact with your macOS GUI to create the Automator workflow, I will generate the Python script and then provide you with exact, simple steps to create the Automator Quick Action that runs this script.

I will start by setting up the project structure and the configuration file.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;方案不错，批准了，请执行！很快，Gemini大哥就完成实现，并且给出了配置指南：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;You now have a fully functional backend to parse text into Calendar events using an LLM.

Project Files Created
* remind.py: The main logic script.
* config.json: Configuration file for your API Key.
* run_remind.sh: A helper script for Automator to run the Python code easily.
* venv/: A Python virtual environment with necessary libraries installed.

Step 1: Configure API Key
Open the configuration file and paste your OpenAI (or compatible) API Key.
 open config.json
Change `YOUR_API_KEY_HERE` to your actual key.

Step 2: Create the &amp;#34;Right-Click&amp;#34; Menu (Automator)
Since this part interacts with the macOS UI, you need to perform these steps manually once:

1. Open Automator (cmd+space, type &amp;#34;Automator&amp;#34;).
2. Choose New Document -&amp;gt; Quick Action.
3. At the top, configure:
   * Workflow receives current Text in Any Application.
4. In the left sidebar, search for Run Shell Script and drag it to the right.
5. Configure the script action:
   * Shell: /bin/bash
   * Pass input: as arguments (Important!)
   * Paste the following command (using the absolute path to your project):
         /ABSOLUTE_PATH/run_remind.sh &amp;#34;$1&amp;#34;
6. Press Cmd+S to save. Name it Add Event (or &amp;#34;添加日程&amp;#34;).

How to Use
1. Select any text containing a date/time (e.g., in an email or website).
2. Right-click the text.
3. Go to Services (or just look at the bottom of the menu) -&amp;gt; Add Event.
4. The script will run in the background, send the text to the LLM, and automatically add the event to your macOS Calendar.

Troubleshooting:
If nothing happens, check the log file created by the script:
 cat /tmp/remind_log.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;按照它的提示配置完（文字解析使用的是物美价廉的&lt;code&gt;gpt-5-nano&lt;/code&gt;），我测试了一下，检查日志，发现了问题，再次交互：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;遇到了问题：Analyzing text...
  Error calling API: 400 Client Error: Bad Request for url: https://api.openai.com/v1/chat/completions
  Failed to extract event data.
我建议你使用litellm来调用，而非自己手写request
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gemini很快完成了基于&lt;a href=&#34;https://github.com/BerriAI/litellm&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;LiteLLM&lt;/a&gt;的实现。我再次提出需求：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;现在就不必在配置文件中添加base_url了，不过我希望配置文件中支持设置提前几分钟提醒。
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gemini再次完成实现。现在，整个流程已经很流畅了。不过，我还希望更方便一些：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; 我怎么才能将这个右键菜单从“Services”中移出来到一级菜单？
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gemini大哥不厌其烦地给出指点：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;在 macOS 系统中，原生不支持用户直接将 Automator (自动操作) 创建的“快速操作”强行固定在右键的一级菜单中。macOS
会根据你启用的服务数量，自动决定是将它们折叠进“服务 (Services)”子菜单，还是显示在菜单底部。

要想实现“在一级菜单直接点击”，通常有以下两种方案：

方案一：清理“服务”菜单（原生，但不保证 100% 成功）
macOS 的逻辑是：如果启用的“服务”很少，它有时会将它们直接显示在右键菜单底部，而不折叠进子菜单。你可以尝试禁用不用的服务：
1. 打开 系统设置 (System Settings) -&amp;gt; 键盘 (Keyboard)。
2. 点击 键盘快捷键 (Keyboard Shortcuts) -&amp;gt; 服务 (Services)。
3. 在“文本 (Text)”分类下，取消勾选你不常用的所有服务，只保留刚才创建的“Add Event”。
4. 重启应用（如浏览器或邮件）看是否生效。
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;我再次尝试，发现了一个问题——设置的提前15分钟变成了15小时，于是再次发问：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;现在似乎填写的提前15分钟最终在日历中变成了提前15小时，请改正。另外，我希望生成的事件能够体现出事件的本质特征。
例如，对于下面的文字，我希望生成的事件标题为Anonymous&amp;#39;s PH.D Defense之类，而不是他的defense题目（...）：
PH.D DEFENCE - PUBLIC SEMINAR

Title:    ...
Speaker:    Mr. Anonymous
Date/Time:    1 February 2026, Monday, 03:00 PM to 04:30 PM
Venue:    XXXX, XXXX XX-XX
Advisor:    Dr XXX, XXX, School of Computing
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Gemini再次更新代码中的prompt。至此，这个小玩意儿已经完全满足了我的使用需求。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>VPSS：面向软件供应链的漏洞影响评估</title>
      <link>https://blog.wohin.me/posts/vpss/</link>
      <pubDate>Tue, 02 Dec 2025 11:39:20 +0800</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/posts/vpss/</guid>
      <description>&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;
&lt;p&gt;本文在“安全研究GoSSIP”公众号上&lt;a href=&#34;https://mp.weixin.qq.com/s/DKuBtVP7QAK6criLrcC0Mg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;首发&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;老读者从首尔发回报道——11月17日到19日，第四十届软件工程领域国际会议ASE 2025在韩国首尔顺利举行。今年的ASE会议一共收到了1181篇投稿，最终录用了246篇论文。其中，来自中国的作者占比超过60%（含中国大陆及港澳台），体现了在软件工程领域的强劲实力。在所有提交和接收的论文中，研究主题的Top 3均为“AI和SE”、“测试和分析”、“安全及其他非功能特性”。&lt;/p&gt;
&lt;p&gt;今天为大家推荐的论文是发表在这次ASE上的，一篇关于软件供应链漏洞影响评估的工作：&lt;strong&gt;Propagation-Based Vulnerability Impact Assessment for Software Supply Chains&lt;/strong&gt;。该工作由新加坡国立大学梁振凯研究组完成并投稿。&lt;/p&gt;
&lt;p&gt;随着软件生态变得日益复杂，软件供应链中的漏洞不仅影响漏洞所在的项目，还为依赖其所在项目的下游项目带来了安全风险——即使下游项目业务自身安全，攻击者还是能够通过利用这些上游漏洞来达到攻击下游项目的目的。因此，识别一个漏洞在软件供应链中的影响范围和规模变得越来越重要。&lt;/p&gt;
&lt;p&gt;然而，现有工作并不能满足这一需求。一方面，已有研究要么不精确——只考虑了软件包层级（package-level）的依赖关系，没有进一步考虑漏洞所在函数是否真正可达，从而引入了大量虚假告警，要么是不完整的——通过在软件生态中采样等方式考察了局部或部分的函数调用图级（call-graph-level）依赖关系；另一方面，当前已被广泛采用的漏洞评估指标，如CVSS、CWE等，都只能用于对漏洞本身进行评估，而无法反映漏洞在软件供应链中的影响。&lt;/p&gt;
&lt;p&gt;为了实现精确、完整的软件供应链漏洞影响评估，受程序分析中的数据流分析算法启发，论文首先提出了一个基于worklist并支持多层级剪枝的漏洞传播分析算法，能够精确、高效地在函数调用图层级、面向漏洞所在整个软件供应链生态实现漏洞传播分析。在此基础上，论文进一步提出了漏洞传播评分系统（Vulnerability Propagation Scoring System，简称VPSS），对漏洞传播分析结果进行建模，帮助人们对漏洞在软件生态中的影响进行量化和感知，支撑更加科学、及时的漏洞治理工作。&lt;/p&gt;
&lt;p&gt;论文作者在Java Maven生态系统上实现了工具原型，并使用100个Maven生态中的漏洞进行了测试。评估结果显示，论文提出的算法能够完成全Maven生态的漏洞影响评估，相应的VPSS分数能够提供有价值的漏洞影响规模情报。&lt;/p&gt;
&lt;p&gt;该论文的贡献主要包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设计了一种新的漏洞传播分析算法，实现在函数调用图层级、面向漏洞所在整个软件供应链生态识别受漏洞影响的下游依赖项目。&lt;/li&gt;
&lt;li&gt;提出了漏洞传播评分系统（Vulnerability Propagation Scoring System，简称VPSS），这是第一个专门用于量化软件供应链中漏洞影响的动态评估指标。&lt;/li&gt;
&lt;li&gt;在Java Maven生态系统上实现了算法和指标的工具原型，并使用100个Java Maven生态中的漏洞进行了测试。工具原型和用于测试的漏洞数据集已经&lt;a href=&#34;https://github.com/brant-ruan/vpss&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;开源&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;
&lt;p&gt;软件供应链安全已成为信息安全领域的焦点。一个上游库的漏洞（例如Heartbleed 或 Log4Shell ）就可能使其下游成千上万的软件项目处于风险之中 。因此，在漏洞被披露后，快速准确地评估其“影响范围”（Impact Scope）至关重要 。然而，现有的研究在尝试解决这个问题时，面临两大局限：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;缺乏准确且完整的传播分析：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;粒度太粗：大多数分析停留在“包级别”（package-level）。它们只检查下游项目是否“声明”或包含了对脆弱包的依赖。但这会带来大量的假阳性（false positives），因为下游项目很可能只是依赖了那个包，却根本没有调用到漏洞所在的脆弱函数（vulnerable function，VF）。&lt;/li&gt;
&lt;li&gt;范围太窄：另一部分研究虽然尝试了更精确的“调用图”（call graph, CG）级别分析，但它们的能力非常受限——要么无法处理复杂的“全生态系统”依赖 ，要么只分析有限的下游项目 ，并且常常忽略了“传递性依赖”带来的深层风险。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;作者进一步从六个方面衡量、对比了现有工作，并得出理想的漏洞传播分析应该具备的特性：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;related.jpg&#34; alt=&#34;related&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;缺乏量化供应链“传播影响”的指标&lt;/strong&gt;：例如，我们熟知的CVSS评分系统，是用来评估漏洞本身的固有特征（如攻击复杂度、所需权限等），但它无法衡量漏洞在供应链中的“传播影响”。一个CVSS 9.8分的漏洞，如果只存在于一个无人问津的库中，其真实的供应链风险可能远小于一个7.5分但存在于核心基础库中的漏洞。CVSS v4.0的官方FAQ也明确承认了CVSS不适用于衡量供应链的传播影响。&lt;/p&gt;
&lt;p&gt;针对上述痛点，作者希望设计一个既准确（CG级别）又完整（全生态、传递性）的分析框架，并提出一个专门用于量化传播影响的新指标。&lt;/p&gt;
&lt;h2 id=&#34;研究方法&#34;&gt;研究方法&lt;/h2&gt;
&lt;p&gt;为了实现这一目标，作者设计了一个包含四个步骤的语言无关的自动化漏洞影响评估框架，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;overview.jpg&#34; alt=&#34;overview&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;一依赖图构建-dependency-graph-construction&#34;&gt;一、依赖图构建 (Dependency Graph Construction)&lt;/h3&gt;
&lt;p&gt;首先，作者需要构建一个描述目标软件生态中全部依赖关系的依赖图。但如果直接构建“项目-版本”（PV）级别的图，规模将大到无法处理（例如Java Maven生态有超过1500万个PV ）。作者的关键洞察是：转而构建P-level（项目级别）的依赖图。这个图的规模要小得多（Maven中约66万个P ），可以作为高效的预过滤器 ，同时将具体的版本依赖信息（deps.json）用于后续的精确查询 。这个依赖图只需要构建一次，然后随着软件生态官方仓库做动态增量更新即可。&lt;/p&gt;
&lt;h3 id=&#34;二脆弱函数识别-vulnerable-function-identification&#34;&gt;二、脆弱函数识别 (Vulnerable Function Identification)&lt;/h3&gt;
&lt;p&gt;为了进行CG级别的分析，我们必须首先知道“漏洞在哪几个函数里”。对此，作者采用了一种LLM辅助的优化策略 ：首先，使用传统的patch-based方法从补丁中提取候选的VF。然后，利用LLM（作者测试了GPT-4o-mini等模型）强大的代码语义理解能力，自动过滤掉那些与漏洞无关的修改，包括“语义等价的修改”（如重命名变量、增删空格或注释等）和“语义改变但无关的修改”（如增删日志（logging）代码等）。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;vfi.jpg&#34; alt=&#34;vfi&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;三漏洞传播分析-vulnerability-propagation-analysis&#34;&gt;三、漏洞传播分析 (Vulnerability Propagation Analysis)&lt;/h3&gt;
&lt;p&gt;这是作者提出的分析框架的核心。他们设计了一种新颖的“分层基于工作列表（Hierarchical Worklist-based）”的算法：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;propagation.jpg&#34; alt=&#34;propagation&#34;&gt;&lt;/p&gt;
&lt;p&gt;为什么用Worklist？论文的算法借鉴了数据流分析中的经典“工作列表”思想 。这使作者能系统地遍历整个生态依赖图，有效处理复杂的共享依赖，甚至是真实世界中存在的“循环依赖”问题 ，确保分析的健全性（soundness）。&lt;/p&gt;
&lt;p&gt;为什么是Hierarchical（分层）？这是为了效率。直接对全生态构建CG进行分析是计算上不可行的 。作者设计了三级“分层剪枝（Hierarchical Pruning）”策略 ，逐层过滤掉海量的“假阳性”依赖关系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;版本剪枝（Version-based Pruning）：检查下游项目是否依赖了受影响的上游版本 。&lt;/li&gt;
&lt;li&gt;导入剪枝（Import-based Pruning）：检查下游项目是否 真正导入（import）了上游包的内容 。在这一步，作者还通过识别“内在范围”（intrinsic scope），巧妙地处理了“fat JAR”等打包问题。&lt;/li&gt;
&lt;li&gt;CG级别剪枝（CG-level Pruning）： 最后，作者才对剩下的候选PV构建CG，检查下游项目是否真正调用了上游的脆弱入口点（entry-points）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;四vpss计算-vpss-calculation&#34;&gt;四、VPSS计算 (VPSS Calculation)&lt;/h3&gt;
&lt;p&gt;在精确分析完传播范围后，作者引入了一个全新的量化指标：VPSS（Vulnerability Propagation Scoring System），用于量化漏洞在供应链中的影响范围和演变。它和CVSS一样，采用0-10分制，并分为低、中、高、危急四个等级，易于理解和使用。注意，VPSS是“时间感知（Time-aware）”的，因此可以计算漏洞在任意时间点（例如t）的VPSS分数（计算时会排除t之后发布的P和PV），从而动态追踪其影响力的演变。&lt;/p&gt;
&lt;p&gt;VPSS的核心公式是VPSS_raw = PBF x PDF，其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PBF（传播广度因子）: 衡量漏洞传播的宽度。它综合考虑了受影响的下游P和PV的数量（包括直接和传递依赖）。&lt;/li&gt;
&lt;li&gt;PDF（传播深度因子）: 衡量漏洞传播的深度。它基于传播链的最大和平均长度来计算 。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;详细的计算过程如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;vpss.jpg&#34; alt=&#34;vpss&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;评估&#34;&gt;评估&lt;/h2&gt;
&lt;p&gt;作者在Java Maven软件生态上实现了分析框架的原型 ，并抽取了100个真实CVE进行评估 。&lt;/p&gt;
&lt;h3 id=&#34;一漏洞传播分析的有效性和可扩展性如何&#34;&gt;一、漏洞传播分析的有效性和可扩展性如何？&lt;/h3&gt;
&lt;p&gt;发现1：分层剪枝策略效果显著。在分析100个CVE的过程中，平均97.8%的项目（P）和99.2%的项目版本（PV）被成功剪枝。&lt;/p&gt;
&lt;p&gt;发现2：假阳性比例大。如下图所示，如果仅基于依赖声明（即“initial”状态），平均一个漏洞会涉及上千个项目和数万个PV。而作者的分析（v3）最终确认，高达94.9%的PV是假阳性（即它们虽然依赖了，但根本没调用）。这大大降低了CG的构建成本 。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;eval1.jpg&#34; alt=&#34;eval1&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;二vpss分数能告诉我们什么&#34;&gt;二、VPSS分数能告诉我们什么？&lt;/h3&gt;
&lt;p&gt;作者计算了这100个CVE在披露后24个月内（每30天一个快照，t0到t23）的VPSS分数演变。&lt;/p&gt;
&lt;p&gt;发现1：VPSS能动态反映生态修复趋势。如下图所示，绝大多数漏洞的VPSS分数都随时间推移呈下降趋势。这完全符合预期：随着补丁被应用、下游项目逐渐迁移到安全版本，漏洞的实际传播影响在不断减小。&lt;/p&gt;
&lt;p&gt;发现2：VPSS能捕获异常的“延迟更新”现象。作者也发现了一个有趣的特例：CVE-2016-3086的分数在t1时刻反而异常上升了（从6.95升至7.19）。作者推测这可能是由于下游项目“延迟更新”其依赖所导致的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;eval2.jpg&#34; alt=&#34;eval2&#34;&gt;&lt;/p&gt;
&lt;p&gt;发现3：大部分漏洞的传播影响有限。如下面的箱线图所示，在100个CVE中，绝大多数的VPSS分数都保持在较低水平，并在两年内趋于稳定。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;eval3.jpg&#34; alt=&#34;eval3&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;三案例分析cve-2016-5393&#34;&gt;三、案例分析：CVE-2016-5393&lt;/h3&gt;
&lt;p&gt;CVE-2016-5393在测试数据集中VPSS得分最高（t0时为7.35）。作者分析发现，它在披露时直接影响了228个项目，并传递影响了另外154个项目。其最长传播链达到了7跳，并且在24个月后分数依然高达6.86，反映了生态中“长尾依赖”的顽固性。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;eval4.jpg&#34; alt=&#34;eval4&#34;&gt;&lt;/p&gt;
&lt;p&gt;论文链接：&lt;a href=&#34;https://arxiv.org/pdf/2506.01342&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://arxiv.org/pdf/2506.01342&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;VPSS开源项目链接：&lt;a href=&#34;https://github.com/brant-ruan/vpss&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/brant-ruan/vpss&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;作者团队十分欢迎大家交流合作，一起推动软件供应链漏洞治理工作！&lt;/p&gt;
&lt;h2 id=&#34;作者信息&#34;&gt;作者信息&lt;/h2&gt;
&lt;p&gt;投稿作者简介：阮博男，2024级新加坡国立大学博士生，导师为梁振凯老师，目前主要研究方向为漏洞挖掘和漏洞评估，相关研究成果发表在ASE、USENIX Security、RAID等软件工程和信息安全领域的国际会议上，曾获得RAID 2024最佳实践论文奖和USENIX Security 2025杰出论文奖，也曾在BlackHat Asia、KCon、CIS等国内外知名工业界信息安全会议上发表演讲。&lt;/p&gt;
&lt;p&gt;个人主页：&lt;a href=&#34;https://profile.wohin.me/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://profile.wohin.me&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果对NUS Curiosity Research Group感兴趣，梁振凯老师也在招收系统安全方向的博士生和博士后，详细信息可以参考：&lt;/p&gt;
&lt;p&gt;梁振凯老师的个人主页：&lt;a href=&#34;https://www.comp.nus.edu.sg/~liangzk&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.comp.nus.edu.sg/~liangzk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NUS Curiosity研究小组主页：&lt;a href=&#34;https://nus-curiosity.github.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://nus-curiosity.github.io&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>很多年</title>
      <link>https://blog.wohin.me/morning/hen-duo-nian/</link>
      <pubDate>Sat, 13 Sep 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/hen-duo-nian/</guid>
      <description>&lt;p&gt;作者：北岛&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;这是你，这是&lt;br&gt;
被飞翔的阴影困扰的 你忽明忽暗&lt;br&gt;
我不再走向你 寒冷也让我失望&lt;br&gt;
很多年 冰山形成以前&lt;br&gt;
鱼曾浮出水面 沉下去，很多年&lt;br&gt;
我小心翼翼&lt;br&gt;
穿过缓缓流动的夜晚 灯火在钢叉上闪烁&lt;br&gt;
很多年 寂寞 这没有钟的房间&lt;br&gt;
离去的人也会带上 钥匙，很多年&lt;br&gt;
在浓雾中吹起口哨&lt;br&gt;
桥上的火车驰过 一个个季节&lt;br&gt;
从田野的小车站出发 为每棵树逗留&lt;br&gt;
花开结果，很多年&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>我的母亲</title>
      <link>https://blog.wohin.me/morning/wo-de-mu-qin-an-lao-san/</link>
      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/wo-de-mu-qin-an-lao-san/</guid>
      <description>&lt;p&gt;作者：安老三&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;今天，我巧遇拍短视频采访，还需要抓题，因为我是这群工友中唯一上过高中的，两个女孩子就选中了我，我有幸抓到了“我的母亲”这个标题，重温母亲的回忆，让我思绪万千。&lt;/p&gt;
&lt;p&gt;母亲走了三十多年了，就埋在村头的老坟地里，她的模样、她的一举一动就跟在眼前似的。&lt;/p&gt;
&lt;p&gt;母亲啊，一辈子就没闲过，天不亮就起，摸着黑才歇。家里家外操不完的心，穿的永远是洗得发白、补了又补的衣裳。她心善能容人，跟邻里没红过脸，有啥好东西总先紧着别人。&lt;/p&gt;
&lt;p&gt;最让我忘不了的是吃饭，一大家子人围着桌子，母亲从来不上桌，她就在灶台边忙活，等我们都吃完了，她才瞅瞅锅里，剩下了，就扒拉两口，要是没剩，她就不吃了，说不饿。那会儿日子都紧巴，穷富差不了多少，可人心热乎，讲情义，母亲就是那最厚道的一个。她包的饺子，那叫一个香，是穷日子里最盼的念想。&lt;/p&gt;
&lt;p&gt;过年是她最累的时候，洗洗涮涮，准备年饭，累得腰都直不起来，可脸上总挂着笑，看着我们放炮仗那股高兴劲儿，她比我们还乐呵。再破的衣裳，经她的手也给我们拾掇得干干净净。&lt;/p&gt;
&lt;p&gt;那时候还是集体，一年四季都出不到一点新鲜菜，到秋天就要分口粮，白天打下谷子，晚上分给每家每户，这一分就是一个大晚上。农村的秋天还是一个很冷的秋天，母亲身上穿得很薄，粮食分到家以后，母亲这一晚上冻得受不了，她那薄薄的被子围在身上一会儿，天就亮了。母亲一天的辛劳又开始了，她揉揉眼，又得爬起来给一大家子弄吃的。家里人多，那口烧柴火的大铁锅死沉死沉，端上端下，真不是一般人能干的力气活。现在想想，母亲那瘦小的身子，哪来那么大劲儿。&lt;/p&gt;
&lt;p&gt;母亲走的时候才五十出头，是累病的。如今她的坟就在村边，一个不起眼的小土包。每次回村，我总要去那儿站站，跟她说说话。我在城里干了大半辈子苦力，扛水泥、扎钢筋、爬脚手架，手上肩上全是老茧，累是真累。可想想母亲当年端那口大铁锅的劲儿，想想她冻得发抖还咬牙撑到天亮的样子，我这力气就又上来了。母亲没享过福，可她教会我的就是这骨子里的硬气和对家的担当。我得把您撑起来的这个家接着撑下去，撑稳当。&lt;/p&gt;
&lt;p&gt;坟头上的草青了又黄，黄了又青，就像我的念想一样，一年年总也断不了。我已经当了爸爸，也已经当了爷爷，但我已经三十多年没叫过妈妈了。我想着，等哪天我扛不动水泥了，就回村里挨着那堆土躺下，没准那时候我再叫妈妈，她就能听见了。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>致谢</title>
      <link>https://blog.wohin.me/morning/zhi-xie-huang-guo-ping/</link>
      <pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/zhi-xie-huang-guo-ping/</guid>
      <description>&lt;p&gt;作者：黄国平&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我走了很远的路，吃了很多的苦，才将这份博士学位论文送到你的面前。二十二载求学路，一路风雨泥泞，许多不容易。如梦一场，仿佛昨天家人才团聚过。&lt;/p&gt;
&lt;p&gt;出生在一个小山坳里，母亲在我十二岁时离家。父亲在家的日子不多，即便在我病得不能自己去医院的时候，也仅是留下勉强够治病的钱后又走了。我十七岁时，他因交通事故离世后，我哭得稀里糊涂，因为再得重病时没有谁来管我了。同年，和我住在一起的婆婆病故，真的无能为力。她照顾我十七年，下葬时却仅是一副薄薄的棺材。另一个家庭成员是老狗小花，为父亲和婆婆守过坟，后因我进城上高中而命不知何时何处所终。如兄长般的计算机启蒙老师◼️◼️没能看到我的大学录取通知书，对我照顾有加的师母也在不惑之前匆匆离开人世。每次回去看他们，这一座座坟茔都提示着生命的每一分钟都弥足珍贵。&lt;/p&gt;
&lt;p&gt;人情冷暖，生离死别，固然让人痛苦与无奈，而贫穷则可能让人失去希望。家徒四壁，在煤油灯下写作业或者读书都是晚上最开心的力。如果下雨，保留节目就是用竹笋壳塞瓦缝防漏雨。高中之前的主要经济来源是夜里抓黄鳝、周末钓鱼、养小猪崽和出租水牛。那些年里，方圆十公里的水田和小河都被我用脚测量过无数次。被狗和蛇追，半夜落水，因蓄电瓶进水而摸黑逃回家中：学费没交，黄鳍却被父亲偷卖了，然后买了肉和酒，都是难以避免的事。&lt;/p&gt;
&lt;p&gt;人后的苦尚旦还能克服，人前的尊严却无比脆弱。上课的时候，因拖欠学费而经常被老师叫出教室约谈。雨天湿漉着上课，屁股后面说不定还是泥。夏天光着脚走在滚烫的路上。冬天穿着破旧衣服打着寒颤穿过那条长长的过道领作业本。这些都可能成为压垮骆驼的最后一根稻草。如果不是考试后常能从主席台领奖金，顺便能贴一墙奖状满足最后的虚荣心，我可能早已放弃。&lt;/p&gt;
&lt;p&gt;身处命运的旋涡，耗尽心力去争取那些可能本就是稀松平常的东西，每次转折都显得那么的身不由己。幸运的是，命运到底还有一丝怜惜。进入高中后,学校免了全部学杂费，■■■一家帮助解决了生活费。进入大学后，计算机终于成了我一生的事业与希望，胃溃疡和胃出血也终与我作别。&lt;/p&gt;
&lt;p&gt;我很庆幸保研时选择了自动化所，感谢研究生部的老师们将我从别的部门调剂到模式识别实验室，感谢导师宗成庆老师选择了我，宗老师将我引入了科学研究的大门，博士这五年无疑是我过去最幸福的时光。惭愧的是，离宗老师的期望显然还有很远的距离，我也知道本可以做得更好。这一段经历已经成为我这一生值得回味的美好瞬间之一。我很喜欢人机交互式机器翻译这个题目，但也仅开了个头。在未来，希望能有机会弥补这段遗憾。&lt;/p&gt;
&lt;p&gt;从家出发坐大巴需要两个半小时才能到县城，一直盼着走出大山。从炬光乡小学、大寅镇中学、仪陇县中学、绵阳市南山中学，到重庆的西南大学，再到中科院自动化所，我也记不清有多少次因为现实的压力而觉得自己快扛不下去了。这一路，信念很简单。把书念下去，然后走出去，不枉活一世。世事难科，未来注定还会面对更为复杂的局面。但因为有了这些点点滴滴，我已经有勇气和耐心面对任何困难和挑战。理想不伟大，只愿年过半百，归来仍是少年，希望还有机会重新认识这个世界，不辜负这一生吃过的苦。最后如果还能做出点让别人生活更美好的事，那这辈子就赚了。&lt;/p&gt;
&lt;p&gt;最近这些年，特别感谢■■■■■■■■■■■■■■■■重塑了我的人生。&lt;/p&gt;
&lt;p&gt;感谢■■■老师和■■■老师为我的研究提出诸多建设性的意见和建议。与他们的交流过程中，我也被他们坦诚为人、踏实做事的处事风格所感染。感谢所有和我一起在课题组工作的老师们和学习的同学们：■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■、■■■。我们在研究上共同努力，互相学习，如亲兄弟姐妹一般谈笑风生。不认大学将来在休息，我想我们都不会忘记这些年一起度过的时光。感谢课题组■■■女士，感谢模式识别综合办实验室的■■■、■■■和■■■等老师，感谢研究生部的■■■、■■■、■■■和■■■等老师，他们为我的学习和工作给予了极大的帮助。这会成为我日后工作的动力，希望最后能成为课题组值得骄傲的学生。&lt;/p&gt;
&lt;p&gt;感谢父母给了我生命，感谢婆婆和叔辈对我的抚养，感谢■■■■■■■■■■■■■■■■■■对我的牵挂，感谢■■■和■■■对我的支持，感谢一路上让我生活变得美好或者不那么美好的人和事。&lt;/p&gt;
&lt;p&gt;最后，对参加论文评审、答辩的各位老师表示衷心的感谢！&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>怎样当好一名师长</title>
      <link>https://blog.wohin.me/morning/zen-yang-dang-hao-yi-ming-shi-zhang/</link>
      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/zen-yang-dang-hao-yi-ming-shi-zhang/</guid>
      <description>&lt;p&gt;作者：林彪&lt;/p&gt;
&lt;p&gt;杨成武：一九三六年十二月，我在抗大学习以后回到前方工作的时候，林军团长告诉我：中央、军委决定我由师政治委员改做师长工作，当时我问军团长说，我当不好师长。在我的要求下，林军团长专门同我讲了一次怎样当师长的问题，讲的很深刻很精辟，几十年来，林军团长的这个指示始终鲜明地烙印在我的脑海里。我一直运用它来鞭策自己，检查自己，作为我学习奋斗的准则。林军团长一共讲了九条。这里是根据当时谈话笔记整理的。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;b&gt;一、要勤快。&lt;/b&gt;不勤快的人办不好事情，不能当好军事指挥员。应该自己干的事情一定要亲自过问，亲自动手。比如，应该上去看的山头就要爬上去，应该自己了解的事情就要及时了解，应该检查的问题就要严格检查。不能懒，军事指挥员切记懒，因为懒会带来危险，带来失败。比方说，一个军事指挥员，到了宿营地就进房子，搞水洗脚洗脸，搞鸡蛋煮面吃，吃饱了就睡大觉。他对住的村子有多大，在什么位置，附近有几个山头，周围有几条路，敌情怎么样，群众条件怎么样，可能发生什么情况，部队到齐了没有，哨位在什么地方，发生紧急情况的处理方案如何，都不过问，都不知道。这样，如果三更半夜发生了情况，敌人来个突然袭击，就没有办法了。到那时候，即使平时很勇敢的指挥员，也会束手无策，只好三十六计，跑为上计，结果变成一个机会主义者。机会主义和打败仗，常常是因为没有思想准备，没有组织准备，工作没做到家，懒的结果。因此，不论大小指挥员都要勤快，要不惜走路，不怕劳累，要多用脑子，要做到心到、眼到、口到、脚到、手到。事情没有做好之前，不能贪闲。贪闲就隐伏着犯错误的根子。什么事情都要心中有底，“凡事预则立，不预则废。”雷打不动的干部，牛皮糖式的干部，不管有多大本事，都不是好干部。我最喜欢勤快的干部，提倡勤快。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;二、要摸清上级的意图。&lt;/b&gt;对上级的意图要真正理解，真正融会贯通，真正认识自己所领受的任务在战役、战斗全局中的地位和作用。这样，才能充分发挥自己的主观能动性，才能打破框框，有敢于和善于在新情况中找到新办法的创造性；才能有大勇，才能决心强、决心狠，敢于彻底胜利，有强烈的吃掉敌人的企图和雄心。指挥员的勇敢集中表现在歼敌决心的坚定顽强上面；指挥员的大勇建立在革命的最高自觉性和正确理解上级意图的基础上面。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;三、要调查研究。&lt;/b&gt;没有调查研究就没有发言权，这是毛主席早就讲了的。对于敌情、地形、部队的情况和社会的情况要做到心中有数，要天天摸，天天琢磨，不能间断，这样做不能看作是重复，而是不断深化不断提高的过程，是取得正确认识的必不可少的手段。平时积累的掌握的情况越多，越系统，在战时，特别是在紧张复杂的情况下，就越沉着，越有办法，急中生智的“智”才有基础。因此，调查研究工作要贯穿在各项工作之中，要贯穿在每一次战役、战斗的整个过程，反对打莽种仗、反对急性病、反对不亲自动手做调查研究的懒汉作风。特别是敌情必须切实摸透，因为敌情是活的。敌人必然会极力隐蔽，伪装他们的真实企图和决心。要尽一切可能不间断地侦察，查清敌人的部署和动向，看他扮演的是什么角色？是主角还是配角？是主力还是非主力？是骄兵还是败兵？能集中多大兵力向我进攻和阻挡我们的进攻？查明敌军官的特性，看他惯用和擅长用什么战法，根据他当前的企图判断他可能采用什么战法等等。只要摸清了敌情、我情、地势的底，决心就快、就硬、就坚决，就不会被任何困难吓倒。如果情况不清，就会犹豫不定，举棋不定，坐失良机，或者勉强下了决心，一遇风吹草动，听到艰难叫苦或不正确的建议，就容易动摇，可能一分之差，前功尽弃。调查研究也包括多读一些书，首先就要研究和读好毛主席的“中国革命的战争战略问题”和毛主席的各项指示。不仅要读革命的书，还应读敌人的书，研究敌人，经常总结经验教训，这样自己才有锐利的思想武器，才有针对敌情克敌制胜的好办法，把力量用到刀刃上。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;四、要有活地图。&lt;/b&gt;指挥员和参谋必须熟悉地图，要经常读地图，熟识地图可以产生见解、产生智慧、产生办法、产生信心。读的办法要把地图挂起来，搬个凳子坐下来对着地图看，看要从大的方向到活动地区，从地区全貌到每一块地形的地形特点，从粗读到细读，逐地逐块地读，用红蓝铅笔把主要的山脉、河流、城镇、村庄和道路标划出来，边划边读，等到地图差不多划烂了也差不多把地图背熟了，背出来了。在熟读地图的基础上，要亲自组织有关指挥员和参谋对作战地区和战场进行实地勘察，校正地图，把战场的地形情况和敌我双方兵力部署都装到脑子里去，做到闭上眼睛面前就有一幅鲜明的战场图景，离开地图也能指挥作战。这样，在你死我活，瞬息万变的战斗情况下可以比敌人来得快，争取先机，先敌一着，掌握主动，稳操胜卷。你们强渡乌江的战斗所以能够很快突过去，就是因为在战前熟悉地图，细致地进行了战场勘测，正确地选择了渡河点。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;五、要把各方面的问题想够想透。&lt;/b&gt;每一次战役战斗的组织，要让大家提出各种可能发现的问题，要让大家来找答案，把所有提出的问题都回答了，再没有问题可回答了，这样打起仗来才不会犯大错误，万一犯了错误，也比较容易纠正。没有得到答案的问题，不能因为想了很久想不出来就把它丢开，留一个疙瘩。如果这样是很危险的。在紧要关头这个疙瘩很可能冒出来，就会使你心中无数，措手不及。当然在战争环境中，要考虑的问题很多，不可能一次都提完，也不可能一次都回答完。整个战役战斗的过程，就是不断地提出问题和不断地回答问题的过程。有时脑子里很疲劳，有的问题可能立即回答不了，这时除了好好地和别人商量之外，就好好地睡觉，睡好了睡醒了，头脑就清醒了，再躺在床上好好想一想，就可能开窍，可能想通了，回答了，解决了。总之，对每一个问题都不能含糊了事，问题回答完了，战役、战斗的组织才算完成。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;六、要及时下达决心。&lt;/b&gt;在什么样的情况下可以下决心打呢？指挥员必须以最大的努力去组织战役，战斗的准备工作，力求确有把握才动手，不打无把握无准备之仗。但是任何一次战斗都不可能完全具备各种条件，不可能有百分之百的把握。一般说有百分之八十左右的把握就很不错了，就要坚决地打，放手地打。不足的条件要通过充分发挥人的因素作用，依靠人民群众的力量，充分发挥人民军队特有的政治上的优势，充分发挥指挥员的智慧和英勇顽强的战斗作风来弥补，以主观努力来创造条件，化冒险性为创造性取得胜利。敌人的士兵多是穷人出身，同革命军队打仗，它的战斗力不会强，不能同我们比。你看，泸定桥不是冒过去了？直罗镇那个晚上的战斗，不是以一个连打垮了敌人的一个团的进攻？一点险都不敢冒就打胜仗，世界上还没有这样的战例。我这样讲不是提倡了冒险主义，不是无根据的冒险，这样冒险是有根据的。其实这样并非冒险，根据就是我们的部队是党领导的，是毛主席教养出来的部队，不怕苦、不怕死，最勇敢，最聪明，最有纪律，最坚决执行命令，有很高的政治觉悟，我们是革命的军队，打仗有人民群众积极支持，人民群众是站在我们这一边，是帮助我们的，我们依靠人民群众，就可能把敌人封锁起来，就可以把敌人变成聋子、瞎子、傻子。这种政治上的优势就是我们所独有，在战争中可以转化为一种巨大的物质力量，有了这一条，有百分之七八十的把握，就可以下决心打。对于比较弱的敌人，对没有或缺乏准备的敌人，有百分之六十的把握也可以打，可以把它消灭。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;七、要有一个很好的很团结的班子。&lt;/b&gt;领导班子的思想认识一致，行动要协调、合拍，要雷厉风行，要有革命英雄主义的气概。都要勤快，都要千方百计地办好事请，完成任务，不相互扯皮，不相互干扰，抱旁观者的态度。如果领导班子不好，人多不但无用，反而有害，所以，班子问题，从领导角度来讲，是一个重要的问题，是做好工作，带好部队打好仗的关键。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;八、要有一个好的战斗作风。&lt;/b&gt;有好的战斗作风的部队才能打好仗，打胜仗。好的战斗作风首先是不怕苦，抢着去担负最艰巨的任务，英勇顽强，不怕牺牲，猛打猛冲猛追。特别要勇于穷追。因为把敌人打跨以后，追击是解决战斗，扩大战果，彻底消灭敌人的最关键的一着，在追击的时候，要跑步追，快步追，走不动的扶着拐棍追，就是爬、滚也要往前追，只有抓住敌人，才能消灭敌人。好的战斗作风要平时养成，要靠实际锻炼，要在紧张的残酷的战斗中才能锻炼出来。不敢打硬仗、恶仗的部队让他打几仗就打出来了，因为已经见过恶仗、硬仗的场面，有了体会，有了经验，知道怎么打了，百炼成钢就是这个道理。做工作也要有好的作风，说了就要做，说到哪里就做到哪里，要做到干净利索，要一竿子插到底，一点不含糊，不做好不撒手。好的作风养成关键在于干部。强将手下无弱兵，干部的作风怎么样，部队的作风就会怎样。因此，首先，要抓好干部，要干部做好样子，影响带动部队，或者原来基础较弱的部队，也会很快打出好的作风来，像铁锤子一样，砸到哪里，哪里就碎。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;九、要重视政治，亲自做政治工作。&lt;/b&gt;部队战斗力的提高，要靠平时加强党的领导，坚强的政治工作连队的支部一定要建设好。支部工作要作活，就是要把所有的党团员的革命干劲鼓得足足的，充分发挥他们模范带头作用，通过他们把全连带动起来，通过他们去做政治思想工作，提高全体指挥员的阶级觉悟，有了坚强的党支部的领导，有了坚强的政治工作，就可以做到一呼百应，争前恐后，不怕牺牲、前扑后续。战术、技术也要练好，特别是技术，如果枪打不准，战场上就不能消灭敌人，不能解决战斗，因此，军事训练不能马虎。党政工作要领导好训练。艺高人胆大，部队有了高度的无产阶级觉悟，有了好的战斗作风，再加上过硬的作战本领，就如虎添翼，就可以无敌于天下。军事指导员任何时候都不能忘记政治，要亲自做政治工作，调一批政治干部去做军事干部，不仅不会削弱政治工作，实际上是加强了部队的政治工作。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>临江仙·梦后楼台高锁</title>
      <link>https://blog.wohin.me/morning/lin-jiang-xian-meng-hou-lou-tai-gao-suo/</link>
      <pubDate>Sat, 31 May 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/lin-jiang-xian-meng-hou-lou-tai-gao-suo/</guid>
      <description>&lt;p&gt;作者：晏几道&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;梦后楼台高锁，酒醒帘幕低垂。去年春恨却来时。落花人独立，微雨燕双飞。&lt;/p&gt;
&lt;p&gt;记得小蘋初见，两重心字罗衣。琵琶弦上说相思。当时明月在，曾照彩云归。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>庐山烟雨浙江潮</title>
      <link>https://blog.wohin.me/morning/lu-shan-yan-yu-zhe-jiang-chao/</link>
      <pubDate>Sat, 31 May 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/lu-shan-yan-yu-zhe-jiang-chao/</guid>
      <description>&lt;p&gt;作者：苏轼&lt;/p&gt;
&lt;hr&gt;
&lt;p align=&#34;center&#34;&gt;
庐山烟雨浙江潮，
&lt;br /&gt;
未至千般恨不消。
&lt;br /&gt;
到得还来无别事，
&lt;br /&gt;
庐山烟雨浙江潮。
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>故乡</title>
      <link>https://blog.wohin.me/morning/gu-xiang/</link>
      <pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate>
      <author>rambo@wohin.me (Bonan)</author>
      <guid>https://blog.wohin.me/morning/gu-xiang/</guid>
      <description>&lt;p&gt;作者：鲁迅&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我冒了严寒，回到相隔二千余里，别了二十余年的故乡去。&lt;/p&gt;
&lt;p&gt;时候既然是深冬；渐近故乡时，天气又阴晦了，冷风吹进船舱中，呜呜的响，从蓬隙向外一望，苍黄的天底下，远近横着几个萧索的荒村，没有一些活气。我的心禁不住悲凉起来了。阿！这不是我二十年来时时记得的故乡？&lt;/p&gt;
&lt;p&gt;我所记得的故乡全不如此。我的故乡好得多了。但要我记起他的美丽，说出他的佳处来，却又没有影像，没有言辞了。仿佛也就如此。于是我自己解释说：故乡本也如此，——虽然没有进步，也未必有如我所感的悲凉，这只是我自己心情的改变罢了，因为我这次回乡，本没有什么好心绪。&lt;/p&gt;
&lt;p&gt;我这次是专为了别他而来的。我们多年聚族而居的老屋，已经公同卖给别姓了，交屋的期限，只在本年，所以必须赶在正月初一以前，永别了熟识的老屋，而且远离了熟识的故乡，搬家到我在谋食的异地去。&lt;/p&gt;
&lt;p&gt;第二日清早晨我到了我家的门口了。瓦楞上许多枯草的断茎当风抖着，正在说明这老屋难免易主的原因。几房的本家大约已经搬走了，所以很寂静。我到了自家的房外，我的母亲早已迎着出来了，接着便飞出了八岁的侄儿宏儿。&lt;/p&gt;
&lt;p&gt;我的母亲很高兴，但也藏着许多凄凉的神情，教我坐下，歇息，喝茶，且不谈搬家的事。宏儿没有见过我，远远的对面站着只是看。&lt;/p&gt;
&lt;p&gt;但我们终于谈到搬家的事。我说外间的寓所已经租定了，又买了几件家具，此外须将家里所有的木器卖去，再去增添。母亲也说好，而且行李也略已齐集，木器不便搬运的，也小半卖去了，只是收不起钱来。&lt;/p&gt;
&lt;p&gt;“你休息一两天，去拜望亲戚本家一回，我们便可以走了。”母亲说。&lt;/p&gt;
&lt;p&gt;“是的。”&lt;/p&gt;
&lt;p&gt;“还有闰土，他每到我家来时，总问起你，很想见你一回面。我已经将你到家的大约日期通知他，他也许就要来了。”&lt;/p&gt;
&lt;p&gt;这时候，我的脑里忽然闪出一幅神异的图画来：深蓝的天空中挂着一轮金黄的圆月，下面是海边的沙地，都种着一望无际的碧绿的西瓜，其间有一个十一二岁的少年，项带银圈，手捏一柄钢叉，向一匹猹尽力的刺去，那猹却将身一扭，反从他的胯下逃走了。&lt;/p&gt;
&lt;p&gt;这少年便是闰土。我认识他时，也不过十多岁，离现在将有三十年了；那时我的父亲还在世，家景也好，我正是一个少爷。那一年，我家是一件大祭祀的值年。这祭祀，说是三十多年才能轮到一回，所以很郑重；正月里供祖像，供品很多，祭器很讲究，拜的人也很多，祭器也很要防偷去。我家只有一个忙月（我们这里给人做工的分三种：整年给一定人家做工的叫长工；按日给人做工的叫短工；自己也种地，只在过年过节以及收租时候来给一定人家做工的称忙月），忙不过来，他便对父亲说，可以叫他的儿子闰土来管祭器的。&lt;/p&gt;
&lt;p&gt;我的父亲允许了；我也很高兴，因为我早听到闰土这名字，而且知道他和我仿佛年纪，闰月生的，五行缺土，所以他的父亲叫他闰土。他是能装弶捉小鸟雀的。&lt;/p&gt;
&lt;p&gt;我于是日日盼望新年，新年到，闰土也就到了。好容易到了年末，有一日，母亲告诉我，闰土来了，我便飞跑的去看。他正在厨房里，紫色的圆脸，头戴一顶小毡帽，颈上套一个明晃晃的银项圈，这可见他的父亲十分爱他，怕他死去，所以在神佛面前许下愿心，用圈子将他套住了。他见人很怕羞，只是不怕我，没有旁人的时候，便和我说话，于是不到半日，我们便熟识了。&lt;/p&gt;
&lt;p&gt;我们那时候不知道谈些什么，只记得闰土很高兴，说是上城之后，见了许多没有见过的东西。&lt;/p&gt;
&lt;p&gt;第二日，我便要他捕鸟。他说：&lt;/p&gt;
&lt;p&gt;“这不能。须大雪下了才好。我们沙地上，下了雪，我扫出一块空地来，用短棒支起一个大竹匾，撒下秕谷，看鸟雀来吃时，我远远地将缚在棒上的绳子只一拉，那鸟雀就罩在竹匾下了。什么都有：稻鸡，角鸡，鹁鸪，蓝背……”&lt;/p&gt;
&lt;p&gt;我于是又很盼望下雪。&lt;/p&gt;
&lt;p&gt;闰土又对我说：&lt;/p&gt;
&lt;p&gt;“现在太冷，你夏天到我们这里来。我们日里到海边捡贝壳去，红的绿的都有，鬼见怕也有，观音手也有。晚上我和爹管西瓜去，你也去。”&lt;/p&gt;
&lt;p&gt;“管贼么？”&lt;/p&gt;
&lt;p&gt;“不是。走路的人口渴了摘一个瓜吃，我们这里是不算偷的。要管的是獾猪，刺猬，猹。月亮底下，你听，啦啦的响了，猹在咬瓜了。你便捏了胡叉，轻轻地走去……”&lt;/p&gt;
&lt;p&gt;我那时并不知道这所谓猹的是怎么一件东西——便是现在也没有知道——只是无端的觉得状如小狗而很凶猛。&lt;/p&gt;
&lt;p&gt;“他不咬人么？”&lt;/p&gt;
&lt;p&gt;“有胡叉呢。走到了，看见猹了，你便刺。这畜生很伶俐，倒向你奔来，反从胯下窜了。他的皮毛是油一般的滑……”&lt;/p&gt;
&lt;p&gt;我素不知道天下有这许多新鲜事：海边有如许五色的贝壳；西瓜有这样危险的经历，我先前单知道他在水果电里出卖罢了。&lt;/p&gt;
&lt;p&gt;“我们沙地里，潮汛要来的时候，就有许多跳鱼儿只是跳，都有青蛙似的两个脚……”&lt;/p&gt;
&lt;p&gt;阿！闰土的心里有无穷无尽的希奇的事，都是我往常的朋友所不知道的。他们不知道一些事，闰土在海边时，他们都和我一样只看见院子里高墙上的四角的天空。&lt;/p&gt;
&lt;p&gt;可惜正月过去了，闰土须回家里去，我急得大哭，他也躲到厨房里，哭着不肯出门，但终于被他父亲带走了。他后来还托他的父亲带给我一包贝壳和几支很好看的鸟毛，我也曾送他一两次东西，但从此没有再见面。&lt;/p&gt;
&lt;p&gt;现在我的母亲提起了他，我这儿时的记忆，忽而全都闪电似的苏生过来，似乎看到了我的美丽的故乡了。我应声说：&lt;/p&gt;
&lt;p&gt;“这好极！他，——怎样？……”&lt;/p&gt;
&lt;p&gt;“他？……他景况也很不如意……”母亲说着，便向房外看，“这些人又来了。说是买木器，顺手也就随便拿走的，我得去看看。”&lt;/p&gt;
&lt;p&gt;母亲站起身，出去了。门外有几个女人的声音。我便招宏儿走近面前，和他闲话：问他可会写字，可愿意出门。&lt;/p&gt;
&lt;p&gt;“我们坐火车去么？”&lt;/p&gt;
&lt;p&gt;“我们坐火车去。”&lt;/p&gt;
&lt;p&gt;“船呢？”&lt;/p&gt;
&lt;p&gt;“先坐船，……”&lt;/p&gt;
&lt;p&gt;“哈！这模样了！胡子这么长了！”一种尖利的怪声突然大叫起来。&lt;/p&gt;
&lt;p&gt;我吃了一吓，赶忙抬起头，却见一个凸颧骨，薄嘴唇，五十岁上下的女人站在我面前，两手搭在髀间，没有系裙，张着两脚，正像一个画图仪器里细脚伶仃的圆规。&lt;/p&gt;
&lt;p&gt;我愕然了。&lt;/p&gt;
&lt;p&gt;“不认识了么？我还抱过你咧！”&lt;/p&gt;
&lt;p&gt;我愈加愕然了。幸而我的母亲也就进来，从旁说：&lt;/p&gt;
&lt;p&gt;“他多年出门，统忘却了。你该记得罢，”便向着我说，“这是斜对门的杨二嫂，……开豆腐店的。”&lt;/p&gt;
&lt;p&gt;哦，我记得了。我孩子时候，在斜对门的豆腐店里确乎终日坐着一个杨二嫂，人都叫伊“豆腐西施”。但是擦着白粉，颧骨没有这么高，嘴唇也没有这么薄，而且终日坐着，我也从没有见过这圆规式的姿势。那时人说：因为伊，这豆腐店的买卖非常好。但这大约因为年龄的关系，我却并未蒙着一毫感化，所以竟完全忘却了。然而圆规很不平，显出鄙夷的神色，仿佛嗤笑法国人不知道拿破仑，美国人不知道华盛顿似的，冷笑说：&lt;/p&gt;
&lt;p&gt;“忘了？这真是贵人眼高……”&lt;/p&gt;
&lt;p&gt;“那有这事……我……”我惶恐着，站起来说。&lt;/p&gt;
&lt;p&gt;“那么，我对你说。迅哥儿，你阔了，搬动又笨重，你还要什么这些破烂木器，让我拿去罢。我们小户人家，用得着。”&lt;/p&gt;
&lt;p&gt;“我并没有阔哩。我须卖了这些，再去……”&lt;/p&gt;
&lt;p&gt;“阿呀呀，你放了道台了，还说不阔？你现在有三房姨太太；出门便是八抬的大轿，还说不阔？吓，什么都瞒不过我。”&lt;/p&gt;
&lt;p&gt;我知道无话可说了，便闭了口，默默的站着。&lt;/p&gt;
&lt;p&gt;“阿呀阿呀，真是愈有钱，便愈是一毫不肯放松，愈是一毫不肯放松，便愈有钱……”圆规一面愤愤的回转身，一面絮絮的说，慢慢向外走，顺便将我母亲的一副手套塞在裤腰里，出去了。&lt;/p&gt;
&lt;p&gt;此后又有近处的本家和亲戚来访问我。我一面应酬，偷空便收拾些行李，这样的过了三四天。&lt;/p&gt;
&lt;p&gt;一日是天气很冷的午后，我吃过午饭，坐着喝茶，觉得外面有人进来了，便回头去看。我看时，不由的非常出惊，慌忙站起身，迎着走去。&lt;/p&gt;
&lt;p&gt;这来的便是闰土。虽然我一见便知道是闰土，但又不是我这记忆上的闰土了。他身材增加了一倍；先前的紫色的圆脸，已经变作灰黄，而且加上了很深的皱纹；眼睛也像他父亲一样，周围都肿得通红，这我知道，在海边种地的人，终日吹着海风，大抵是这样的。他头上是一顶破毡帽，身上只一件极薄的棉衣，浑身瑟索着；手里提着一个纸包和一支长烟管，那手也不是我所记得的红活圆实的手，却又粗又笨而且开裂，像是松树皮了。&lt;/p&gt;
&lt;p&gt;我这时很兴奋，但不知道怎么说才好，只是说：&lt;/p&gt;
&lt;p&gt;“阿！闰土哥，——你来了？……”&lt;/p&gt;
&lt;p&gt;我接着便有许多话，想要连珠一般涌出：角鸡，跳鱼儿，贝壳，猹，……但又总觉得被什么挡着似的，单在脑里面回旋，吐不出口外去。&lt;/p&gt;
&lt;p&gt;他站住了，脸上现出欢喜和凄凉的神情；动着嘴唇，却没有作声。他的态度终于恭敬起来了，分明的叫道：&lt;/p&gt;
&lt;p&gt;“老爷！……”&lt;/p&gt;
&lt;p&gt;我似乎打了一个寒噤；我就知道，我们之间已经隔了一层可悲的厚障壁了。我也说不出话。&lt;/p&gt;
&lt;p&gt;他回过头去说，“水生，给老爷磕头。”便拖出躲在背后的孩子来，这正是一个廿年前的闰土，只是黄瘦些，颈子上没有银圈罢了。“这是第五个孩子，没有见过世面，躲躲闪闪……”&lt;/p&gt;
&lt;p&gt;母亲和宏儿下楼来了，他们大约也听到了声音。&lt;/p&gt;
&lt;p&gt;“老太太。信是早收到了。我实在喜欢的不得了，知道老爷回来……”闰土说。&lt;/p&gt;
&lt;p&gt;“阿，你怎的这样客气起来。你们先前不是哥弟称呼么？还是照旧：迅哥儿。”母亲高兴的说。&lt;/p&gt;
&lt;p&gt;“阿呀，老太太真是……这成什么规矩。那时是孩子，不懂事……”闰土说着，又叫水生上来打拱，那孩子却害羞，紧紧的只贴在他背后。&lt;/p&gt;
&lt;p&gt;“他就是水生？第五个？都是生人，怕生也难怪的；还是宏儿和他去走走。”母亲说。&lt;/p&gt;
&lt;p&gt;宏儿听得这话，便来招水生，水生却松松爽爽同他一路出去了。母亲叫闰土坐，他迟疑了一回，终于就了坐，将长烟管靠在桌旁，递过纸包来，说：&lt;/p&gt;
&lt;p&gt;“冬天没有什么东西了。这一点干青豆倒是自家晒在那里的，请老爷……”&lt;/p&gt;
&lt;p&gt;我问问他的景况。他只是摇头。&lt;/p&gt;
&lt;p&gt;“非常难。第六个孩子也会帮忙了，却总是吃不够……又不太平……什么地方都要钱，没有规定……收成又坏。种出东西来，挑去卖，总要捐几回钱，折了本；不去卖，又只能烂掉……”&lt;/p&gt;
&lt;p&gt;他只是摇头；脸上虽然刻着许多皱纹，却全然不动，仿佛石像一般。他大约只是觉得苦，却又形容不出，沉默了片时，便拿起烟管来默默的吸烟了。&lt;/p&gt;
&lt;p&gt;母亲问他，知道他的家里事务忙，明天便得回去；又没有吃过午饭，便叫他自己到厨下炒饭吃去。&lt;/p&gt;
&lt;p&gt;他出去了；母亲和我都叹息他的景况：多子，饥荒，苛税，兵，匪，官，绅，都苦得他像一个木偶人了。母亲对我说，凡是不必搬走的东西，尽可以送他，可以听他自己去拣择。&lt;/p&gt;
&lt;p&gt;下午，他拣好了几件东西：两条长桌，四个椅子，一副香炉和烛台，一杆抬秤。他又要所有的草灰（我们这里煮饭是烧稻草的，那灰，可以做沙地的肥料），待我们启程的时候，他用船来载去。&lt;/p&gt;
&lt;p&gt;夜间，我们又谈些闲天，都是无关紧要的话；第二天早晨，他就领了水生回去了。&lt;/p&gt;
&lt;p&gt;又过了九日，是我们启程的日期。闰土早晨便到了，水生没有同来，却只带着一个五岁的女儿管船只。我们终日很忙碌，再没有谈天的工夫。来客也不少，有送行的，有拿东西的，有送行兼拿东西的。待到傍晚我们上船的时候，这老屋里的所有破旧大小粗细东西，已经一扫而空了。&lt;/p&gt;
&lt;p&gt;我们的船向前走，两岸的青山在黄昏中，都装成了深黛颜色，连着退向船后梢去。&lt;/p&gt;
&lt;p&gt;宏儿和我靠着船窗，同看外面模糊的风景，他忽然问道：&lt;/p&gt;
&lt;p&gt;“大伯！我们什么时候回来？”&lt;/p&gt;
&lt;p&gt;“回来？你怎么还没有走就想回来了。”&lt;/p&gt;
&lt;p&gt;“可是，水生约我到他家玩去咧……”他睁着大的黑眼睛，痴痴的想。&lt;/p&gt;
&lt;p&gt;我和母亲也都有些惘然，于是又提起闰土来。母亲说，那豆腐西施的杨二嫂，自从我家收拾行李以来，本是每日必到的，前天伊在灰堆里，掏出十多个碗碟来，议论之后，便定说是闰土埋着的，他可以在运灰的时候，一齐搬回家里去；杨二嫂发见了这件事，自己很以为功，便拿了那狗气杀（这是我们这里养鸡的器具，木盘上面有着栅栏，内盛食料，鸡可以伸进颈子去啄，狗却不能，只能看着气死），飞也似的跑了，亏伊装着这么高低的小脚，竟跑得这样快。&lt;/p&gt;
&lt;p&gt;老屋离我愈远了；故乡的山水也都渐渐远离了我，但我却并不感到怎样的留恋。我只觉得我四面有看不见的高墙，将我隔成孤身，使我非常气闷；那西瓜地上的银项圈的小英雄的影像，我本来十分清楚，现在却忽地模糊了，又使我非常的悲哀。&lt;/p&gt;
&lt;p&gt;母亲和宏儿都睡着了。&lt;/p&gt;
&lt;p&gt;我躺着，听船底潺潺的水声，知道我在走我的路。我想：我竟与闰土隔绝到这地步了，但我们的后辈还是一气，宏儿不是正在想念水生么。我希望他们不再像我，又大家隔膜起来……然而我又不愿意他们因为要一气，都如我的辛苦展转而生活，也不愿意他们都如闰土的辛苦麻木而生活，也不愿意都如别人的辛苦恣睢而生活。他们应该有新的生活，为我们所未经生活过的。&lt;/p&gt;
&lt;p&gt;我想到希望，忽然害怕起来了。闰土要香炉和烛台的时候，我还暗地里笑他，以为他总是崇拜偶像，什么时候都不忘却。现在我所谓希望，不也是我自己手制的偶像么？只是他的愿望切近，我的愿望茫远罢了。&lt;/p&gt;
&lt;p&gt;我在朦胧中，眼前展开一片海边碧绿的沙地来，上面深蓝的天空中挂着一轮金黄的圆月。我想：希望本是无所谓有，无所谓无的。这正如地上的路；其实地上本没有路，走的人多了，也便成了路。&lt;/p&gt;
&lt;p&gt;一九二一年一月。&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
