<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>编程技术笔记</title>
  <icon>https://yxchangingself.xyz/icon.png</icon>
  <subtitle>ChangingSelf&#39;s blog</subtitle>
  <link href="https://yxchangingself.xyz/atom.xml" rel="self"/>
  
  <link href="https://yxchangingself.xyz/"/>
  <updated>2025-12-23T13:57:32.000Z</updated>
  <id>https://yxchangingself.xyz/</id>
  
  <author>
    <name>憧憬少</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>导入下一年的年度节假日日历</title>
    <link href="https://yxchangingself.xyz/posts/2dc010a/"/>
    <id>https://yxchangingself.xyz/posts/2dc010a/</id>
    <published>2025-12-23T13:57:32.000Z</published>
    <updated>2025-12-23T13:57:32.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;从前同事手中接手的项目中，有个考勤系统，它有一个工作日历表，需要导入节假日数据。刚立项的时候因为没有找到稳定的公共接口，数据也不多，更新频率又是一年一次（下一年的节假日是在这一年年底才会公布），所以就直接从找到的某个接口获取到json，处理一下之后手动导入数据库。&lt;/p&gt;
&lt;p&gt;临近元旦轮到我维护该系统，我发现之前留下的系统接口仅仅是实现了普通的批量插入，没有解析的逻辑，估计当时是直接导入数据库的。&lt;/p&gt;
&lt;p&gt;于是我考虑在该系统的考勤模块中添加一份导入代码，后面如果用的第三方接口不再维护，换接口也只是改个解析逻辑。&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="java" scheme="https://yxchangingself.xyz/tags/java/"/>
    
    <category term="spring" scheme="https://yxchangingself.xyz/tags/spring/"/>
    
  </entry>
  
  <entry>
    <title>记录一个Typescript的IoC容器的实现</title>
    <link href="https://yxchangingself.xyz/posts/398f268d/"/>
    <id>https://yxchangingself.xyz/posts/398f268d/</id>
    <published>2025-12-14T03:52:31.000Z</published>
    <updated>2025-12-14T03:52:31.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;前段时间在写一个玩Minecraft游戏的Agent项目&lt;a href=&quot;https://github.com/Mai-with-u/maicraft-next&quot;&gt;maicraft-next&lt;/a&gt; ，它是原python项目&lt;a href=&quot;https://github.com/Mai-with-u/Maicraft&quot;&gt;maicraft&lt;/a&gt;的typescript重构。原项目中各种组件的依赖已经非常复杂了，于是重构的时候就打算引入类似Java Spring一样的IoC的实现。&lt;/p&gt;
&lt;p&gt;为了学习相关的概念和实现，我并没有引入第三方的现成的框架，而是和Cursor 加Claude Sonnet 4.5协作写了一套轻量化的IoC容器。本文记录下这个实现，方便后续回看。&lt;/p&gt;</summary>
    
    
    
    <category term="学习笔记" scheme="https://yxchangingself.xyz/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="typescript" scheme="https://yxchangingself.xyz/tags/typescript/"/>
    
  </entry>
  
  <entry>
    <title>通过切换Service实现类来切换看板数据来源</title>
    <link href="https://yxchangingself.xyz/posts/43550421/"/>
    <id>https://yxchangingself.xyz/posts/43550421/</id>
    <published>2025-12-12T13:41:15.000Z</published>
    <updated>2025-12-12T13:41:15.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;最近做BI看板的时候遇到个需求，就是有时候需要切换看板所展示的数据（懂的都懂），但每次都手动改数据库视图后面再改回来比较麻烦，于是需要做一个快速切换公司内部看的真实数据模式和给客户看的演示模式的功能。&lt;/p&gt;
&lt;p&gt;每个看板数据接口都加个参数侵入性太大肯定不行，通过配置来切换也比较麻烦，最后想到了大多数情况下都是一个接口对一个实现类的Service层。只需要根据配置的变动改变实现类，就能很轻松地实现数据来源切换。&lt;/p&gt;
&lt;p&gt;有了想法之后，就和豆包讨论方案接着实施了，最后可以实现只需要加注解和新的Service实现类就能为看板添加新的数据来源的效果，还可以通过修改Nacos管理的配置来动态更新。&lt;/p&gt;</summary>
    
    
    
    <category term="学习笔记" scheme="https://yxchangingself.xyz/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="spring" scheme="https://yxchangingself.xyz/tags/spring/"/>
    
  </entry>
  
  <entry>
    <title>IDEA方法断点导致项目启动缓慢</title>
    <link href="https://yxchangingself.xyz/posts/idea-method-breakpoint/"/>
    <id>https://yxchangingself.xyz/posts/idea-method-breakpoint/</id>
    <published>2025-08-11T13:00:50.000Z</published>
    <updated>2025-08-11T13:00:50.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;前几天遇到一个Springboot微服务项目启动缓慢的问题，表现很奇怪，其他服务都正常启动，最多也就耗时两分钟，某个服务启动得特别慢，甚至用了半小时。&lt;/p&gt;
&lt;p&gt;启动后，涉及该服务的某个接口响应也很慢，甚至超过30秒，然而对应的sql语句在数据库中执行是秒出结果。&lt;/p&gt;
&lt;p&gt;它以前并不会这么慢，最近也没有什么特殊的代码改动。一开始以为是环境和中间件的问题，排查了很久发现竟然发现是方法断点的问题！&lt;/p&gt;
&lt;p&gt;找出问题耗费了我一个上午，记录一下。助我解决问题的文章：&lt;a href=&quot;https://cloud.tencent.com/developer/article/2405396&quot;&gt;IDEA DEBUG 启动慢，启动卡死，本地IDEA环境，千万千万不要在方法上打断点！太坑了！-腾讯云开发者社区-腾讯云&lt;/a&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="IDEA" scheme="https://yxchangingself.xyz/tags/IDEA/"/>
    
  </entry>
  
  <entry>
    <title>Git提交敏感信息后如何撤回</title>
    <link href="https://yxchangingself.xyz/posts/git_amend_commited_info_2/"/>
    <id>https://yxchangingself.xyz/posts/git_amend_commited_info_2/</id>
    <published>2025-05-13T11:57:00.000Z</published>
    <updated>2025-05-13T11:57:00.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;今天用工作电脑时忘记修改git用户名和邮箱，推送了一个提交到github，因为不想泄露真名和公司邮箱，所以需要撤回修改。记录一下解决这个问题需要用到的命令。&lt;/p&gt;
&lt;p&gt;编写过程中还翻到了自己以前的旧文章：&lt;a href=&quot;https://yxchangingself.xyz/posts/git_amend_commited_info/&quot;&gt;更改git仓库已经commit的用户名和邮箱信息&lt;/a&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="git" scheme="https://yxchangingself.xyz/tags/git/"/>
    
  </entry>
  
  <entry>
    <title>在服务器上部署第二个hexo博客</title>
    <link href="https://yxchangingself.xyz/posts/second-hexo-blog-deploy/"/>
    <id>https://yxchangingself.xyz/posts/second-hexo-blog-deploy/</id>
    <published>2025-01-27T09:37:47.000Z</published>
    <updated>2025-01-27T09:37:47.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;老弟也开始接触编程了，所以打算给他也搭建一个hexo博客。&lt;/p&gt;
&lt;p&gt;本文主要记录在同一个服务器上部署第二个hexo博客的过程，hexo及其配置环境的安装不赘述。&lt;/p&gt;</summary>
    
    
    
    <category term="博客站务" scheme="https://yxchangingself.xyz/categories/%E5%8D%9A%E5%AE%A2%E7%AB%99%E5%8A%A1/"/>
    
    
    <category term="hexo" scheme="https://yxchangingself.xyz/tags/hexo/"/>
    
  </entry>
  
  <entry>
    <title>腾讯云对象存储COS自建图床并配置Obsidian自动上传</title>
    <link href="https://yxchangingself.xyz/posts/image-host-powered-by-object-storage/"/>
    <id>https://yxchangingself.xyz/posts/image-host-powered-by-object-storage/</id>
    <published>2025-01-10T08:28:55.000Z</published>
    <updated>2025-01-10T08:53:55.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;博客的图片如果存储在本地，那么博客将会越来越臃肿，于是还是转回使用图床。免费图床不知道什么时候就用不了了，还是自建比较稳妥，至少能够自己把控。&lt;/p&gt;
&lt;p&gt;为什么不在服务器上用minio之类的方案进行搭建，而是额外购买对象存储？因为服务器比较贵，说不定什么时候就不续费了，不想将太多东西绑在上面，对象存储则比较便宜，要是服务器不续租了图床也能继续用。算是一种“解耦”吧。而且服务器性能也有限，不想分出性能给图床。&lt;/p&gt;
&lt;p&gt;原本想使用“轻量对象存储”的，但一看功能有点简陋，还是选好一些的吧，不弄轻量的，应该也贵不了多少。&lt;/p&gt;
&lt;p&gt;本文将使用腾讯云对象存储搭建一个图床，并配置Obsidian和PicGo实现便利的上传图片功能。&lt;/p&gt;
&lt;p&gt;有了自己的图床后，终于不必在写博客的时候担心图片怎么存储了，可以放心地插图。&lt;/p&gt;</summary>
    
    
    
    <category term="博客站务" scheme="https://yxchangingself.xyz/categories/%E5%8D%9A%E5%AE%A2%E7%AB%99%E5%8A%A1/"/>
    
    
    <category term="对象存储" scheme="https://yxchangingself.xyz/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/"/>
    
  </entry>
  
  <entry>
    <title>记录一次若依管理系统部署练习</title>
    <link href="https://yxchangingself.xyz/posts/ruoyi-deploy/"/>
    <id>https://yxchangingself.xyz/posts/ruoyi-deploy/</id>
    <published>2024-12-20T09:58:37.000Z</published>
    <updated>2024-12-20T09:58:37.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;给新服务器搭建环境，以及部署一下若依后台管理系统，进一步熟悉部署流程，使用的是若依前后端分离版本。&lt;/p&gt;
&lt;p&gt;因为主要是记录环境配置，所以若依部署的部分没那么详细。&lt;/p&gt;
&lt;p&gt;服务器是腾讯云轻量应用服务器，Debian12。2核2G（但后面内存炸了，启动不起来，只能含泪加钱升级内存）&lt;/p&gt;</summary>
    
    
    
    <category term="过程复盘" scheme="https://yxchangingself.xyz/categories/%E8%BF%87%E7%A8%8B%E5%A4%8D%E7%9B%98/"/>
    
    
    <category term="nginx" scheme="https://yxchangingself.xyz/tags/nginx/"/>
    
    <category term="mysql" scheme="https://yxchangingself.xyz/tags/mysql/"/>
    
    <category term="java" scheme="https://yxchangingself.xyz/tags/java/"/>
    
    <category term="linux" scheme="https://yxchangingself.xyz/tags/linux/"/>
    
    <category term="redis" scheme="https://yxchangingself.xyz/tags/redis/"/>
    
  </entry>
  
  <entry>
    <title>2024年底，hexo博客的迁移部署、升级和重启</title>
    <link href="https://yxchangingself.xyz/posts/hexo-blog-reboot-2024/"/>
    <id>https://yxchangingself.xyz/posts/hexo-blog-reboot-2024/</id>
    <published>2024-12-15T10:35:20.000Z</published>
    <updated>2024-12-15T10:35:20.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;2024年底，以前学生价活动租的腾讯云服务器的续费次数已经用光，租了个新服务器，以前挂在上面的服务都得迁移，五年前搭建的Hexo博客也是如此。&lt;/p&gt;
&lt;p&gt;迁移之后，将相关依赖全都升级了一遍，又加了一些新的功能，比如夜间模式。&lt;/p&gt;
&lt;p&gt;以前部署的时候很多东西不了解，现在基本上都能弄明白是怎么回事了。&lt;/p&gt;</summary>
    
    
    
    <category term="博客站务" scheme="https://yxchangingself.xyz/categories/%E5%8D%9A%E5%AE%A2%E7%AB%99%E5%8A%A1/"/>
    
    
    <category term="nginx" scheme="https://yxchangingself.xyz/tags/nginx/"/>
    
    <category term="hexo" scheme="https://yxchangingself.xyz/tags/hexo/"/>
    
    <category term="ssl" scheme="https://yxchangingself.xyz/tags/ssl/"/>
    
    <category term="ssh" scheme="https://yxchangingself.xyz/tags/ssh/"/>
    
    <category term="git" scheme="https://yxchangingself.xyz/tags/git/"/>
    
  </entry>
  
  <entry>
    <title>自制的第一个vscode语言扩展插件</title>
    <link href="https://yxchangingself.xyz/posts/vscode-extension/"/>
    <id>https://yxchangingself.xyz/posts/vscode-extension/</id>
    <published>2022-06-01T07:00:00.000Z</published>
    <updated>2022-06-01T07:00:00.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;最近迷上了TRPG（Tabletop Role-playing game，桌上角色扮演游戏），即俗称的“跑团”。玩家在主持人的引导下，扮演自己的游戏角色进行冒险。在结束之后，会有想要将这个过程记录下来的欲望，从而有了各种各样的“跑团replay视频”。&lt;/p&gt;
&lt;p&gt;制作跑团replay视频比较复杂，但&lt;a href=&quot;https://www.bilibili.com/video/BV1GY4y1H7wK/&quot;&gt;回声工坊&lt;/a&gt;这一高效工具的出现，让这个过程变得非常简单，只需要找好媒体素材（角色立绘、背景图片、BGM、音效等）以及处理一下跑团Log（即跑团游戏记录）就可以很快输出一集视频。&lt;/p&gt;
&lt;p&gt;为了更加方便跑团replay视频的制作，我编写了一个vscode插件——&lt;code&gt;TRPG Replay Generator Log&lt;/code&gt;——来方便跑团Log的处理。&lt;/p&gt;
&lt;p&gt;本文对编写这个插件的过程做一个记录和总结。&lt;/p&gt;</summary>
    
    
    
    <category term="项目总结" scheme="https://yxchangingself.xyz/categories/%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/"/>
    
    
    <category term="vscode" scheme="https://yxchangingself.xyz/tags/vscode/"/>
    
  </entry>
  
  <entry>
    <title>《算法笔记》C与C++语言相关</title>
    <link href="https://yxchangingself.xyz/posts/c-and-cpp-grammar-in-algorithm-note/"/>
    <id>https://yxchangingself.xyz/posts/c-and-cpp-grammar-in-algorithm-note/</id>
    <published>2022-02-08T08:46:26.000Z</published>
    <updated>2022-02-08T08:46:26.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;这是一篇学习笔记，基于胡凡主编的《算法笔记》的第二章“C&amp;#x2F;C++快速入门”。&lt;/p&gt;
&lt;p&gt;在学习那一章的过程中，我将其中之后用的到的内容整理为这篇笔记，适合了解C和C++语言的人用于复习其语法中与做算法题相关的特性与技巧。&lt;/p&gt;
&lt;p&gt;本文中部分内容经过顺序调整和补充，不完全按照原书内容。&lt;strong&gt;详细内容请看原书。&lt;/strong&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="学习笔记" scheme="https://yxchangingself.xyz/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
    
    
    <category term="cpp" scheme="https://yxchangingself.xyz/tags/cpp/"/>
    
    <category term="算法学习" scheme="https://yxchangingself.xyz/tags/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0/"/>
    
  </entry>
  
  <entry>
    <title>从markdown到nga bbscode的转换程序</title>
    <link href="https://yxchangingself.xyz/posts/markdown-bbscode-converter/"/>
    <id>https://yxchangingself.xyz/posts/markdown-bbscode-converter/</id>
    <published>2021-07-09T10:58:00.000Z</published>
    <updated>2021-07-09T10:58:00.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;a href=&quot;https://nga.178.com/&quot;&gt;NGA（艾泽拉斯国家地理）&lt;/a&gt;论坛使用一种自定义的名为 &lt;code&gt;bbscode&lt;/code&gt; 的代码来排版帖子内容，类似HTML，它也是一种标记语言，对bbscode的详细介绍可见：&lt;a href=&quot;https://nga.178.com/read.php?tid=9268613&quot;&gt;[NGA常用BBS代码][奥运帖]Project N —— 《从入门到精通：排版的艺术 Ver.3》&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;这种论坛自定义标记语言可以和markdown、html进行相互转换。例子如下:&lt;/p&gt;
&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;5&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;6&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;7&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;[h]标题[/h]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[b]加粗文字[/b]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[list]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[*] 列表项&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[*] 列表项&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[/list]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;[quote]引用块[/quote] &lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;


&lt;p&gt;在使用NGA论坛的时候遇到了将markdown文本转换为bbscode的需求，所以打算用python写一个简单的转换程序。由于不涉及复杂的GUI，本项目使用tkinter来编写界面。&lt;/p&gt;
&lt;p&gt;项目地址：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;[&lt;a href=&quot;https://github.com/ChangingSelf/nga-bbscode-converter&quot;&gt;github仓库地址&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[&lt;a href=&quot;https://gitee.com/ChangingSelf/nga-bbscode-converter&quot;&gt;gitee仓库地址&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://nga.178.com/read.php?tid=27512061&quot;&gt;NGA论坛内本工具软件的发布帖&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</summary>
    
    
    
    <category term="项目总结" scheme="https://yxchangingself.xyz/categories/%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/"/>
    
    
    <category term="python" scheme="https://yxchangingself.xyz/tags/python/"/>
    
    <category term="tkinter" scheme="https://yxchangingself.xyz/tags/tkinter/"/>
    
    <category term="markdown" scheme="https://yxchangingself.xyz/tags/markdown/"/>
    
    <category term="正则表达式" scheme="https://yxchangingself.xyz/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/"/>
    
  </entry>
  
  <entry>
    <title>利用Word域代码实现将形如“图一-1”的题注修改为“图1-1”</title>
    <link href="https://yxchangingself.xyz/posts/2028856356/"/>
    <id>https://yxchangingself.xyz/posts/2028856356/</id>
    <published>2021-06-27T06:24:00.000Z</published>
    <updated>2021-06-27T06:24:00.000Z</updated>
    
    
    <summary type="html">&lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;在用word编写毕业论文时，遇到了这样一个问题：通过多级列表的设置将一级标题设置为汉字数字之后，若需要设置包含章节号的题注（形如“图1-1”）时，则会变成“图一-1”的形式。本篇文章解决的就是将形如“图一-1”的题注通过设置域代码，在不修改一级标题格式的情况下改为“图1-1”。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2021/06/27/zTUkBaNlcY8IxvG.png&quot;&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="word" scheme="https://yxchangingself.xyz/tags/word/"/>
    
  </entry>
  
  <entry>
    <title>git管理的Android项目忽略密码或token的方法</title>
    <link href="https://yxchangingself.xyz/posts/android-project-gitignore-token/"/>
    <id>https://yxchangingself.xyz/posts/android-project-gitignore-token/</id>
    <published>2021-03-06T03:51:26.000Z</published>
    <updated>2021-03-06T03:51:26.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;在照着Android教材《第一行代码 第三版》写天气预报app项目的时候，我发现如果把开发者token写在代码里面，用git管理的时候就会把token暴露出来，即使后面删掉，也会留在commit历史中。而&lt;code&gt;.gitignore&lt;/code&gt;一般是忽略整个文件，没办法忽略单独一行。&lt;/p&gt;
&lt;p&gt;所以可以将密码或者开发者token单独放在一个文件中，用&lt;code&gt;.gitignore&lt;/code&gt;忽略它，并且在使用的时候读取其中的token。&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="git" scheme="https://yxchangingself.xyz/tags/git/"/>
    
    <category term="android" scheme="https://yxchangingself.xyz/tags/android/"/>
    
  </entry>
  
  <entry>
    <title>第四次博客文章分类调整</title>
    <link href="https://yxchangingself.xyz/posts/adjust_categories_4/"/>
    <id>https://yxchangingself.xyz/posts/adjust_categories_4/</id>
    <published>2021-01-21T00:16:41.000Z</published>
    <updated>2021-01-21T00:16:41.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;之前的分类过于模糊，导致写完文章不知道该放在哪个分类，所以再次调整分类。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yxchangingself.xyz/posts/adjust_categories/&quot;&gt;第一次分类调整&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yxchangingself.xyz/posts/categories_description/&quot;&gt;第二次分类调整&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yxchangingself.xyz/posts/hexo_blog_switch_theme_3/#more&quot;&gt;第三次分类调整&lt;/a&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="博客站务" scheme="https://yxchangingself.xyz/categories/%E5%8D%9A%E5%AE%A2%E7%AB%99%E5%8A%A1/"/>
    
    
  </entry>
  
  <entry>
    <title>基于React+Electron的CraftTweaker脚本生成器</title>
    <link href="https://yxchangingself.xyz/posts/CraftTweaker-Assistant/"/>
    <id>https://yxchangingself.xyz/posts/CraftTweaker-Assistant/</id>
    <published>2021-01-12T01:57:25.000Z</published>
    <updated>2021-01-12T01:57:25.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;在看到好友&lt;a href=&quot;https://gitee.com/StringOD&quot;&gt;StringOD&lt;/a&gt;的一篇博客&lt;a href=&quot;https://stringod.gitee.io/2020/11/26/wo-de-shi-jie-zi-ding-yi-pei-fang-jiao-ben-sheng-cheng-qi/&quot;&gt;《我的世界自定义配方脚本生成器》&lt;/a&gt;之后，我有了些想法。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CraftTweaker&lt;/code&gt;是沙盒游戏&lt;code&gt;Minecraft&lt;/code&gt;的一个Mod（&lt;strong&gt;Mod&lt;/strong&gt;ification，模组，游戏的一种修改或增强程序），通过使用一种名为&lt;code&gt;ZenScript&lt;/code&gt;的自定义脚本语言，修改游戏中的合成配方。&lt;/p&gt;
&lt;p&gt;不过这个mod的最新版本是没有对应的GUI程序的，所以要生成想要的合成配方不是那么容易，得手动编写&lt;code&gt;ZenScript&lt;/code&gt;脚本。StringOD的那篇博客中，用易语言实现了一个功能比较完善的GUI程序——&lt;code&gt;AutoSpawnZScript&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;恰好我在大四的第一个综合实践中使用过React+Antd来编写前端界面，而且之前用&lt;a href=&quot;https://gitee.com/gaoyoubo/hexo-client&quot;&gt;hexo-client&lt;/a&gt;的时候了解到了Electron这个东西可以把web程序变为桌面应用程序，所以就想用React+Antd+Electron来尝试编写一下这个逻辑简单的脚本生成器，以巩固React的知识，以及学习一下Electron怎么用。&lt;/p&gt;
&lt;p&gt;本文主要讲一下本项目（&lt;a href=&quot;https://gitee.com/ChangingSelf/crafttweaker-assistant&quot;&gt;CraftTweaker-Assistant&lt;/a&gt;，托管于gitee）的大致情况与设计思路。&lt;/p&gt;</summary>
    
    
    
    <category term="项目总结" scheme="https://yxchangingself.xyz/categories/%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/"/>
    
    
  </entry>
  
  <entry>
    <title>在hexo的Icarus主题页面底部加入备案号</title>
    <link href="https://yxchangingself.xyz/posts/hexo-Icarus-beian-in-footer/"/>
    <id>https://yxchangingself.xyz/posts/hexo-Icarus-beian-in-footer/</id>
    <published>2021-01-07T11:04:16.000Z</published>
    <updated>2021-01-07T11:04:16.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;2020年12月31日提交的ICP备案申请，在今天（2020年1月7日）通过啦！&lt;/p&gt;
&lt;p&gt;接着就是要把备案号添加到博客页脚。&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="hexo" scheme="https://yxchangingself.xyz/tags/hexo/"/>
    
  </entry>
  
  <entry>
    <title>scrapy+selenium爬取智联招聘</title>
    <link href="https://yxchangingself.xyz/posts/scrapy-selenium-zhilian-zhaopin-spider/"/>
    <id>https://yxchangingself.xyz/posts/scrapy-selenium-zhilian-zhaopin-spider/</id>
    <published>2020-11-22T14:07:16.000Z</published>
    <updated>2020-11-22T14:07:16.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;这是第三个大四综合实践——数据处理与分析。我们小组打算爬取各个招聘网站进行数据分析。&lt;/p&gt;
&lt;p&gt;我负责其中的爬虫模块，教了两个队友怎么使用scrapy，打算我解决完爬取数据的一些难题之后，剩余的解析就交给他们。&lt;/p&gt;
&lt;p&gt;我觉得解析数据只是苦力活，只要爬取到带有数据的html，剩下的就很轻松了。最后我选择使用selenium，这样就不用分析接口了，两个刚学爬虫的队友也能轻松搞定。&lt;/p&gt;
&lt;p&gt;很快地搞定了前程无忧网和拉勾网之后，我在爬取&lt;a href=&quot;https://www.zhaopin.com/&quot;&gt;智联招聘网&lt;/a&gt;遇到了很多问题。本文将这些问题以及解决方案记录下来，供读者参考。&lt;/p&gt;</summary>
    
    
    
    <category term="项目总结" scheme="https://yxchangingself.xyz/categories/%E9%A1%B9%E7%9B%AE%E6%80%BB%E7%BB%93/"/>
    
    
    <category term="爬虫" scheme="https://yxchangingself.xyz/tags/%E7%88%AC%E8%99%AB/"/>
    
    <category term="python" scheme="https://yxchangingself.xyz/tags/python/"/>
    
    <category term="scrapy" scheme="https://yxchangingself.xyz/tags/scrapy/"/>
    
    <category term="selenium" scheme="https://yxchangingself.xyz/tags/selenium/"/>
    
  </entry>
  
  <entry>
    <title>vscode中python自定义包的模块如何导入其子包模块</title>
    <link href="https://yxchangingself.xyz/posts/python-the-module-of-parentpkg-import-the-module-of-childpkg/"/>
    <id>https://yxchangingself.xyz/posts/python-the-module-of-parentpkg-import-the-module-of-childpkg/</id>
    <published>2020-10-11T13:48:35.000Z</published>
    <updated>2020-10-11T13:48:35.000Z</updated>
    
    
    <summary type="html">&lt;h1 id=&quot;问题描述&quot;&gt;&lt;a href=&quot;#问题描述&quot; class=&quot;headerlink&quot; title=&quot;问题描述&quot;&gt;&lt;/a&gt;问题描述&lt;/h1&gt;&lt;p&gt;如图所示，对于python，有一个自定义包&lt;code&gt;parent&lt;/code&gt;，它里面还有一个子包&lt;code&gt;child&lt;/code&gt;，当你在&lt;code&gt;parent.module1&lt;/code&gt;中&lt;code&gt;import child.module2&lt;/code&gt;时，vscode会给你报错，说找不到这个包。&lt;/p&gt;
&lt;p&gt;当你单独运行&lt;code&gt;module1.py&lt;/code&gt;的时候，可以正常运行，但是当你在&lt;code&gt;parent&lt;/code&gt;包外层的&lt;code&gt;main.py&lt;/code&gt;中&lt;code&gt;import parent.module1&lt;/code&gt;时，就会报错。&lt;/p&gt;</summary>
    
    
    
    <category term="解决方案" scheme="https://yxchangingself.xyz/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"/>
    
    
    <category term="python" scheme="https://yxchangingself.xyz/tags/python/"/>
    
    <category term="vscode" scheme="https://yxchangingself.xyz/tags/vscode/"/>
    
  </entry>
  
  <entry>
    <title>记第三次博客切换主题以及主题优化</title>
    <link href="https://yxchangingself.xyz/posts/hexo_blog_switch_theme_3/"/>
    <id>https://yxchangingself.xyz/posts/hexo_blog_switch_theme_3/</id>
    <published>2020-10-11T04:57:09.000Z</published>
    <updated>2020-10-11T04:57:09.000Z</updated>
    
    
    <summary type="html">&lt;p&gt;2019 年 2 月 28 日，&lt;a href=&quot;https://yxchangingself.xyz/posts/hexo_blog_switch_theme_1/&quot;&gt;第一次换主题&lt;/a&gt;，从&lt;a href=&quot;https://github.com/ShanaMaid/hexo-theme-shana&quot;&gt;shana&lt;/a&gt;（夏娜）换成了&lt;a href=&quot;https://github.com/iissnan/hexo-theme-next&quot;&gt;NexT&lt;/a&gt;，当时换主题的原因是：虽然二次元主题蛮好看的我挺喜欢，但是由于小众，功能缺乏，而 NexT 作为一个使用人数非常多的主题，功能非常齐全，所以决定换主题。&lt;/p&gt;
&lt;p&gt;2020 年 4 月 5 日，&lt;a href=&quot;https://yxchangingself.xyz/posts/hexo_blog_switch_theme_2/&quot;&gt;第二次换主题&lt;/a&gt;，从NexT换成了&lt;a href=&quot;https://github.com/blinkfox/hexo-theme-matery&quot;&gt;Matery&lt;/a&gt;，原因是这个主题可以放很多图，并且我需要的功能也都有。&lt;/p&gt;
&lt;p&gt;2020年10月11日，第三次换主题，也就是这次，换成了&lt;a href=&quot;https://github.com/ppoffice/hexo-theme-icarus&quot;&gt;Icarus&lt;/a&gt;（伊卡洛斯）。原因是，Matery的归档页面不能满足我回看历史文章的需求，以及我觉得整个页面太花哨了，封面图片也不是很好弄，所以还是换成图片量中等的Icarus。&lt;/p&gt;</summary>
    
    
    
    <category term="博客站务" scheme="https://yxchangingself.xyz/categories/%E5%8D%9A%E5%AE%A2%E7%AB%99%E5%8A%A1/"/>
    
    
    <category term="hexo" scheme="https://yxchangingself.xyz/tags/hexo/"/>
    
  </entry>
  
</feed>
