<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>金亚洲技术笔记</title>
    <link>https://jinyazhou.com/</link>
    <description>Recent content on 金亚洲技术笔记</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 11 Apr 2026 18:42:09 +0800</lastBuildDate>
    <atom:link href="https://jinyazhou.com/atom.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>为什么TCP的TIME_WAIT状态要维持2MSL</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E4%B8%BA%E4%BB%80%E4%B9%88tcp%E7%9A%84time_wait%E7%8A%B6%E6%80%81%E8%A6%81%E7%BB%B4%E6%8C%812msl/</link>
      <pubDate>Sat, 11 Apr 2026 18:42:09 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E4%B8%BA%E4%BB%80%E4%B9%88tcp%E7%9A%84time_wait%E7%8A%B6%E6%80%81%E8%A6%81%E7%BB%B4%E6%8C%812msl/</guid>
      <description>&lt;p&gt;本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL，3MSL或其它的时长，而不会详细描述为什么需要TIME_WAIT状态。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>保活机制设计与实现</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E4%BF%9D%E6%B4%BB%E6%9C%BA%E5%88%B6%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0/</link>
      <pubDate>Thu, 19 Mar 2026 18:53:28 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E4%BF%9D%E6%B4%BB%E6%9C%BA%E5%88%B6%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0/</guid>
      <description>&lt;p&gt;你有没有遇到过这种情况：两台服务器之间的网络连接，明明没有断，但数据就是传不过去？或者你的应用长时间不发送数据，再想用时却发现连接已经“睡死”了？ 这就像两个人打电话，双方都不说话，但又不知道对方还在不在线。在TCP网络世界里，这就是“keepalive”（保活机制）要解决的问题。今天我们就来聊聊，如何在nc_keepalive这个网络瑞士军刀中，为TCP连接加上“心跳监测”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>AI给工作带来的改变以及思考</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/ai%E7%BB%99%E5%B7%A5%E4%BD%9C%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%94%B9%E5%8F%98%E4%BB%A5%E5%8F%8A%E6%80%9D%E8%80%83/</link>
      <pubDate>Wed, 11 Mar 2026 23:25:04 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/ai%E7%BB%99%E5%B7%A5%E4%BD%9C%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%94%B9%E5%8F%98%E4%BB%A5%E5%8F%8A%E6%80%9D%E8%80%83/</guid>
      <description>&lt;h3 id=&#34;一ai-带来的工作状态变化&#34;&gt;一、AI 带来的工作状态变化&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;忽视&lt;/strong&gt;：AI 爆发前，VS Code 上流行一款代码补全插件 Tabnine，体验较差，延迟高、准确率低，几乎没用。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注但不重视&lt;/strong&gt;：ChatGPT 刚出来时，代码能力一般，还喜欢一本正经地瞎编。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>做一个定时喂食器</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9A%E6%97%B6%E5%96%82%E9%A3%9F%E5%99%A8/</link>
      <pubDate>Sat, 03 Jan 2026 14:03:48 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%81%9A%E4%B8%80%E4%B8%AA%E5%AE%9A%E6%97%B6%E5%96%82%E9%A3%9F%E5%99%A8/</guid>
      <description>&lt;p&gt;淘宝和闲鱼没有找到合适尺寸和固定的喂食器，用闲置的&lt;code&gt;树莓派zero w&lt;/code&gt;做了一个。成品如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/IMG_5372.jpeg&#34; alt=&#34;IMG_5372&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/IMG_5371.jpeg&#34; alt=&#34;IMG_5371&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;👇 下方的出食孔：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/IMG_5374.jpeg&#34; alt=&#34;IMG_5374&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;👇 盒子尺寸有点小，布线很乱：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/IMG_5366.jpeg&#34; alt=&#34;IMG_5366&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;前期准备&#34;&gt;前期准备&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1-确定尺寸&#34;&gt;1. 确定尺寸&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;进食管：栅栏的间隔距离约为4.5cm，食物最大尺寸2cm，为了防止食物卡住，所以喂食器直径尽可能大，选择外径40mm。&lt;/li&gt;&#xA;&lt;li&gt;物料盒：为了固定进食管，需要一个物料盒，也可以塞进开发板及模块，尺寸定义为120mm x 50mm x 52mm；&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;很多配件尺寸都特别详细，不用买回来之后再测量了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino IDE安装ESP32开发板</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/arduino-ide%E5%AE%89%E8%A3%85esp32%E5%BC%80%E5%8F%91%E6%9D%BF/</link>
      <pubDate>Tue, 30 Dec 2025 15:23:56 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/arduino-ide%E5%AE%89%E8%A3%85esp32%E5%BC%80%E5%8F%91%E6%9D%BF/</guid>
      <description>&lt;p&gt;不翻墙下载ESP32开发板：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;在 &lt;a href=&#34;https://github.com/espressif/arduino-esp32/releases&#34;&gt;https://github.com/espressif/arduino-esp32/releases&lt;/a&gt; 下载&lt;code&gt;package_esp32_index_cn.json&lt;/code&gt;，改名为&lt;code&gt;package_esp32_index.json&lt;/code&gt;，覆盖到 &lt;code&gt;C:\Users\[UserName]\AppData\Local\Arduino15\&lt;/code&gt;；&lt;/p&gt;</description>
    </item>
    <item>
      <title>MAC地址合法但无法获取IP</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/mac%E5%9C%B0%E5%9D%80%E5%90%88%E6%B3%95%E4%BD%86%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96ip/</link>
      <pubDate>Mon, 24 Nov 2025 16:53:28 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/mac%E5%9C%B0%E5%9D%80%E5%90%88%E6%B3%95%E4%BD%86%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96ip/</guid>
      <description>&lt;h3 id=&#34;mac地址合法但无法获取ip&#34;&gt;MAC地址合法但无法获取IP&lt;/h3&gt;&#xA;&lt;p&gt;设备修改MAC地址为&lt;code&gt;1B:96:7C:51:B0:2C&lt;/code&gt;后，无法获取IP地址，经测试发现首字节改为&lt;code&gt;0B&lt;/code&gt;~&lt;code&gt;9B&lt;/code&gt;均无法获取ip地址，它们有个相同之处：&lt;code&gt;这些十六进制对应的十进制数值都是奇数&lt;/code&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>射线法实现地理电子围栏</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%B0%84%E7%BA%BF%E6%B3%95%E5%AE%9E%E7%8E%B0%E5%9C%B0%E7%90%86%E7%94%B5%E5%AD%90%E5%9B%B4%E6%A0%8F/</link>
      <pubDate>Thu, 23 Oct 2025 10:45:59 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%B0%84%E7%BA%BF%E6%B3%95%E5%AE%9E%E7%8E%B0%E5%9C%B0%E7%90%86%E7%94%B5%E5%AD%90%E5%9B%B4%E6%A0%8F/</guid>
      <description>&lt;p&gt;&lt;em&gt;本文文字及代码均使用AI生成。&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;地图电子围栏实现方案&#34;&gt;地图电子围栏实现方案&lt;/h2&gt;&#xA;&lt;p&gt;下面是一个基于 HTML、JavaScript 和 Canvas 的电子围栏模拟系统，实现了多边形围栏绘制和坐标点判断功能。系统使用射线法 (Ray Casting Algorithm) 来判断点是否在多边形内部，这是一种高效且常用的地理空间判断算法，效果图如下：&lt;/p&gt;</description>
    </item>
    <item>
      <title>OrangePi Zero2安装OpenWRT做旁路由</title>
      <link>https://jinyazhou.com/posts/linux/orangepi-zero2%E5%AE%89%E8%A3%85openwrt%E5%81%9A%E6%97%81%E8%B7%AF%E7%94%B1/</link>
      <pubDate>Fri, 10 Oct 2025 15:16:58 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/orangepi-zero2%E5%AE%89%E8%A3%85openwrt%E5%81%9A%E6%97%81%E8%B7%AF%E7%94%B1/</guid>
      <description>&lt;p&gt;买了很多开发板，除了Raspberry Pi 5每天都在用，其他板子：Raspberry Pi Zero W、Raspberry Pi Pico、OrangePi Zero2、ESP32、ESP8266、microbit、合宙Air101都在吃灰。Raspberry Pi Zero W不支持64位，可玩性低，也就OrangePi Zero2还凑合，打算装个OpenWRT做旁路由实现：解锁网*云音乐+广告过滤。&lt;/p&gt;</description>
    </item>
    <item>
      <title>网站迁移到腾讯云EO Pages</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E7%BD%91%E7%AB%99%E8%BF%81%E7%A7%BB%E5%88%B0%E8%85%BE%E8%AE%AF%E4%BA%91eo-pages/</link>
      <pubDate>Sun, 14 Sep 2025 14:36:53 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E7%BD%91%E7%AB%99%E8%BF%81%E7%A7%BB%E5%88%B0%E8%85%BE%E8%AE%AF%E4%BA%91eo-pages/</guid>
      <description>&lt;p&gt;用了一天时间，把原网站的MWeb客户端静态网站模板文件改为Hugo模板语法，并用&lt;code&gt;CodeBuddy Cli&lt;/code&gt;把旧日志格式批量转为了Hugo格式，如下图所示：&lt;/p&gt;</description>
    </item>
    <item>
      <title>服务器被入侵全流程复盘</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A2%AB%E5%85%A5%E4%BE%B5%E5%85%A8%E6%B5%81%E7%A8%8B%E5%A4%8D%E7%9B%98/</link>
      <pubDate>Fri, 18 Jul 2025 22:23:11 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A2%AB%E5%85%A5%E4%BE%B5%E5%85%A8%E6%B5%81%E7%A8%8B%E5%A4%8D%E7%9B%98/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;本文围绕服务器遭遇黑客入侵的网络安全事件展开深度复盘，系统梳理从发现入侵痕迹到分析入侵原理的全过程。&lt;/p&gt;&#xA;&lt;p&gt;复现黑客利用运维配置漏洞上传恶意脚本获取docker权限、植入挖矿程序完整攻击链，最终形成涵盖入侵时间线、攻击手法、防范措施及事件反思的全面分析记录。&lt;/p&gt;</description>
    </item>
    <item>
      <title>树莓派做服务器的三个月体验</title>
      <link>https://jinyazhou.com/posts/linux/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%81%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E4%B8%89%E4%B8%AA%E6%9C%88%E4%BD%93%E9%AA%8C/</link>
      <pubDate>Sat, 08 Mar 2025 18:03:59 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%81%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E4%B8%89%E4%B8%AA%E6%9C%88%E4%BD%93%E9%AA%8C/</guid>
      <description>&lt;p&gt;去年双十一入手了一台内存8GB的树莓派5。虽然树莓派5刚上市时就有购买冲动，但是怕新鲜一段时间后吃灰，一直忍者。后来购买欲望越来越强烈，给自己找的借口越来越多——当web服务器、当网盘、当音乐服务器……&lt;/p&gt;</description>
    </item>
    <item>
      <title>还技术债：优雅地断开TCP套接字</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E8%BF%98%E6%8A%80%E6%9C%AF%E5%80%BA%E4%BC%98%E9%9B%85%E5%9C%B0%E6%96%AD%E5%BC%80tcp%E5%A5%97%E6%8E%A5%E5%AD%97/</link>
      <pubDate>Mon, 03 Mar 2025 22:15:57 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/%E8%BF%98%E6%8A%80%E6%9C%AF%E5%80%BA%E4%BC%98%E9%9B%85%E5%9C%B0%E6%96%AD%E5%BC%80tcp%E5%A5%97%E6%8E%A5%E5%AD%97/</guid>
      <description>&lt;p&gt;最近一段时间在研究TCP/IP底层，接触到了以前不了解的知识，联想到由于以前网络基础薄弱，可能影响到了两个项目的可靠性。&lt;/p&gt;&#xA;&lt;p&gt;两个项目：一个类似路由，下位机上线都要从这里获取下一步通讯地址；一个是干电池驱动的采集器，因为续航要求，需要休眠x小时后通讯一次，通讯完成立马断开连接继续休眠。&lt;/p&gt;</description>
    </item>
    <item>
      <title>TCP中的Nagle、DelayedAck、Cork算法</title>
      <link>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/tcp%E4%B8%AD%E7%9A%84nagledelayedackcork%E7%AE%97%E6%B3%95/</link>
      <pubDate>Mon, 09 Dec 2024 16:42:09 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/tcp%E4%B8%AD%E7%9A%84nagledelayedackcork%E7%AE%97%E6%B3%95/</guid>
      <description>&lt;p&gt;先确定一个概念，什么是小包？小包就是字节长度加上各类头后小于MSS长度的包，就是小包。&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h3 id=&#34;nagle算法&#34;&gt;Nagle算法&lt;/h3&gt;&#xA;&lt;h4 id=&#34;基本概念&#34;&gt;基本概念&lt;/h4&gt;&#xA;&lt;p&gt;在使用一些协议通讯的时候，比如Telnet，会有一个字节一个字节的发送的情景，每次发送一个字节的有用数据，就会产生41个字节长的分组，20个字节的IP Header 和 20个字节的TCP Header，这就导致了1个字节的有用信息要浪费掉40个字节的头部信息，这是一笔巨大的字节开销，而且这种Small packet在广域网上会增加拥塞的出现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux系统优化及性能调优</title>
      <link>https://jinyazhou.com/posts/linux/linux%E7%B3%BB%E7%BB%9F%E4%BC%98%E5%8C%96%E5%8F%8A%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98/</link>
      <pubDate>Sun, 05 May 2024 19:59:06 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/linux%E7%B3%BB%E7%BB%9F%E4%BC%98%E5%8C%96%E5%8F%8A%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98/</guid>
      <description>&lt;p&gt;调整最大TCP连接数：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.ip_local_port_range&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;1024 65535&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.core.somaxconn&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;1024&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.tcp_max_syn_backlog&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;65535&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;启用TCP连接的时间等待 (TCP TIME-WAIT) 状态减少：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.tcp_tw_reuse&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.tcp_tw_recycle&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!-- more --&gt;&#xA;&lt;p&gt;调整TCP接收/发送缓冲区大小：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Bash&#34; data-lang=&#34;Bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.core.rmem_max&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;16777216&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.core.wmem_max&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;16777216&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.tcp_rmem&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;4096 87380 16777216&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.tcp_wmem&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;4096 65536 16777216&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;调整TCP KeepAlive 设置：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arduino IDE 2.3.2中代理配置信息删除</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/arduino-ide-2.3.2%E4%B8%AD%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%E5%88%A0%E9%99%A4/</link>
      <pubDate>Thu, 28 Mar 2024 16:09:52 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/arduino-ide-2.3.2%E4%B8%AD%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%E5%88%A0%E9%99%A4/</guid>
      <description>&lt;p&gt;Arduino IDE 2.3.2中代理配置信息一旦配置，无法删除。清空代理信息保存，重启还是保留原先的代理信息。如下：&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/17116130027436/WX20240328-160757.png&#34; alt=&#34;WX20240328-160757&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;open /System/Volumes/Data/Users/&lt;span style=&#34;color:#555&#34;&gt;{&lt;/span&gt;用户名&lt;span style=&#34;color:#555&#34;&gt;}&lt;/span&gt;/.arduinoIDE/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;编辑&lt;code&gt;arduino-cli.yaml&lt;/code&gt;，删掉代理配置信息。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何debug Windows服务</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%A6%82%E4%BD%95debug-windows%E6%9C%8D%E5%8A%A1/</link>
      <pubDate>Tue, 02 Jan 2024 11:13:55 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%A6%82%E4%BD%95debug-windows%E6%9C%8D%E5%8A%A1/</guid>
      <description>&lt;p&gt;传统方式：记录log到文件，然后查看log。&lt;/p&gt;&#xA;&lt;p&gt;其他方式：&lt;br&gt;&#xA;1、项目属性-输出类型，更改为&lt;code&gt;控制台应用程序&lt;/code&gt;；&lt;br&gt;&#xA;2、修改Porgram.cs：&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-c#&#34; data-lang=&#34;c#&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// 注释掉&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// ServiceBase.Run(ServicesToRun);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;// 使用RunInteractive执行原有Service功能&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RunInteractive(ServicesToRun);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;增加方法：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows开启NTP中转服务</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/windows%E5%BC%80%E5%90%AFntp%E4%B8%AD%E8%BD%AC%E6%9C%8D%E5%8A%A1/</link>
      <pubDate>Tue, 02 Jan 2024 10:48:41 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/windows%E5%BC%80%E5%90%AFntp%E4%B8%AD%E8%BD%AC%E6%9C%8D%E5%8A%A1/</guid>
      <description>&lt;h2 id=&#34;需求&#34;&gt;需求&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;服务器要求Windows系统；&lt;/li&gt;&#xA;&lt;li&gt;Windows服务器作为NTP Client从有线网络LAN1获取SNTP时间源的时间，也作为NTP Server从有线网络LAN2获取Windows服务器的时间。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h2 id=&#34;步骤&#34;&gt;步骤&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;关闭防火墙&lt;/li&gt;&#xA;&lt;li&gt;修改本机Internet时间服务器为时间源服务器IP；&lt;/li&gt;&#xA;&lt;li&gt;开启本机NTP Server服务；&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# (1) 修改注册表:&#xA;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config&#xA;&#xA;- AnnounceFlags 改为 5 (设定强制主机将它自身宣布为可靠的时间源)&#xA;&#xA;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer&#xA;&#xA;- Enabled 改为 1 (开启Ntp服务)&#xA;&#xA;# (2) 重启windows time服务&#xA;net stop w32time&#xA;net start w32time&#xA;&#xA;# (3) Windows Time服务设为「自动」&#xA;&#xA;# (4) 测试配置是否成功&#xA;w32tm /stripchart /computer:127.0.0.1&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;重启后Windows Time服务恢复为「手动」办法&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Windows Time服务自启动依赖网络，删除触发器&#xA;sc triggerinfo w32time delete&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;缩短NTP Client时间同步间隔（默认7天）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# 修改注册表:&#xA;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient&#xA;&#xA;- SpecialPollInterval 改为 十进制 60 (轮询间隔，单位：秒)&#xA;&#xA;- 新建dword值 SpecialInterval，值为1（启用 SpecialInterval 0x1 标志时，W32Time 使用 SpecialPollInterval 轮询间隔，而不是操作系统确定的轮询间隔）&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>实时修改多网口下位机IP地址</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%AE%9E%E6%97%B6%E4%BF%AE%E6%94%B9%E5%A4%9A%E7%BD%91%E5%8F%A3%E4%B8%8B%E4%BD%8D%E6%9C%BAip%E5%9C%B0%E5%9D%80/</link>
      <pubDate>Sat, 21 Oct 2023 09:39:53 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%AE%9E%E6%97%B6%E4%BF%AE%E6%94%B9%E5%A4%9A%E7%BD%91%E5%8F%A3%E4%B8%8B%E4%BD%8D%E6%9C%BAip%E5%9C%B0%E5%9D%80/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;想要实现一个功能：类似在路由器的界面中配置参数数据。&lt;br /&gt;&lt;br /&gt;&#xA;下位机操作系统是linux，http服务的方案选的是轻量级的boa+cgi。很后悔选这个方案，低估了学习c语言的难度，遇到了不少坑。如果选nginx+.net应该会快很多。&#xA;&lt;br /&gt;&lt;br /&gt;&#xA;操作流程大致如下：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Launching a GUI application from a Windows Service using C#</title>
      <link>https://jinyazhou.com/posts/dotnet/launching-a-gui-application-from-a-windows-service-using-c%23/</link>
      <pubDate>Thu, 03 Aug 2023 15:23:31 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/launching-a-gui-application-from-a-windows-service-using-c%23/</guid>
      <description>&lt;p&gt;It isn’t usually possible to launch a GUI (Graphical User Interface) application from a Windows Service. There are good reasons for this; aside from the security considerations, being interrupted while doing something important by a badly behaving background application would not be fun!&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;However, there are some limited use cases for starting processes that feature a GUI from a Windows Service, such as for specific kinds of software updates and monitoring systems. If you have already looked at alternatives and believe that launching a GUI application from a Windows Service is most appropriate for your scenario, read on and I’ll show you how to achieve this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IntelliJ IDEA生成apk“Read timed out”</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/intellij-idea%E7%94%9F%E6%88%90apkread-timed-out/</link>
      <pubDate>Mon, 05 Jun 2023 16:50:36 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/intellij-idea%E7%94%9F%E6%88%90apkread-timed-out/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;注释掉&lt;code&gt;settings.gradle&lt;/code&gt;中dependencyResolutionManagement部分。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;在&lt;code&gt;build.gradle&lt;/code&gt;文件中补上上述注释掉的部分，加入阿里云的镜像地址:&lt;/p&gt;</description>
    </item>
    <item>
      <title>团队协作管理系统</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/</link>
      <pubDate>Sat, 28 Jan 2023 22:54:46 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;../media/16505522593868/16505522720428.png&#34; alt=&#34;团队任务管理系统泳道图&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;打算用2个月晚上的空闲时间（21:00-23:30）做一个上面泳道图所示流程的任务管理系统，不带客户管理、不带审批流程、不带订单管理，只是单纯的任务管理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CRC校验算法原理分析</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/crc%E6%A0%A1%E9%AA%8C%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/</link>
      <pubDate>Wed, 23 Nov 2022 23:16:35 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/crc%E6%A0%A1%E9%AA%8C%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/</guid>
      <description>&lt;h2 id=&#34;一crc分析&#34;&gt;一、CRC分析&lt;/h2&gt;&#xA;&lt;h3 id=&#34;11-数据校验&#34;&gt;1.1 数据校验&lt;/h3&gt;&#xA;&lt;p&gt;  数据在传输过程（比如通过网线在两台计算机间传文件）中，由于传输信道的原因，可能会有误码现象（比如说发送数字5但接收方收到的却是6），如何发现误码呢？方法是发送额外的数据让接收方校验是否正确，这就是数据校验。&lt;/p&gt;</description>
    </item>
    <item>
      <title>阿里云自签名机制</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E9%98%BF%E9%87%8C%E4%BA%91%E8%87%AA%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6/</link>
      <pubDate>Thu, 13 Oct 2022 17:01:22 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E9%98%BF%E9%87%8C%E4%BA%91%E8%87%AA%E7%AD%BE%E5%90%8D%E6%9C%BA%E5%88%B6/</guid>
      <description>&lt;p&gt;公司一个项目用到了阿里云的短信验证码，语言是php。sms sdk需要用composer安装，但是不同php版本的sdk是不通用的。目前项目是部署在测试机，正式服务器的运行环境（操作系统、php版本）不确定。所以迁移起来比较麻烦，也可能忘记下载sdk。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何正确得给线上表加字段？</title>
      <link>https://jinyazhou.com/posts/%E6%95%B0%E6%8D%AE%E5%BA%93/%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E5%BE%97%E7%BB%99%E7%BA%BF%E4%B8%8A%E8%A1%A8%E5%8A%A0%E5%AD%97%E6%AE%B5/</link>
      <pubDate>Thu, 13 Oct 2022 17:00:08 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%95%B0%E6%8D%AE%E5%BA%93/%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E5%BE%97%E7%BB%99%E7%BA%BF%E4%B8%8A%E8%A1%A8%E5%8A%A0%E5%AD%97%E6%AE%B5/</guid>
      <description>&lt;h2 id=&#34;1-问题怎么给线上表加字段&#34;&gt;1. 问题：怎么给线上表加字段？&lt;/h2&gt;&#xA;&lt;p&gt;工作中最常遇到的问题，怎么给线上频繁使用的大表添加字段？&#xA;比如：给下面的用户表（user）添加年龄（age）字段。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;ALTER&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;TABLE&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;`&lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;`&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;ADD&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;`&lt;/span&gt;age&lt;span style=&#34;color:#555&#34;&gt;`&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#366&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;NOT&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;NULL&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;DEFAULT&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;COMMENT&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;年龄&amp;#39;&lt;/span&gt;;&lt;span style=&#34;color:#bbb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!-- more --&gt;&#xA;&lt;p&gt;如果在线上数据库这样操作，修改表结构的时候，MySQL会自动添加表锁，并且是写锁，会阻塞后续的所有读写请求，造成非常严重的后果，整个服务都有宕机的风险：&#xA;&lt;img src=&#34;../media/16656511239302/16656512141021.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>公司核心系统内存泄露排查(完结)</title>
      <link>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%AE%8C%E7%BB%93/</link>
      <pubDate>Sat, 27 Aug 2022 15:34:19 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%AE%8C%E7%BB%93/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5/&#34;&gt;公司核心系统内存泄露排查&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%90%8E%E7%BB%AD/&#34;&gt;公司核心系统内存泄露排查(后续)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;公司核心系统&amp;quot;内存泄露&amp;quot;排查(完结)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;一前言&#34;&gt;一、前言&lt;/h2&gt;&#xA;&lt;p&gt;这个问题本来不是特别亟待解决的问题，但是堵在心里实在难受，总想知其然，并知其所以然。&lt;/p&gt;</description>
    </item>
    <item>
      <title>公司核心系统内存泄露排查(后续)</title>
      <link>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%90%8E%E7%BB%AD/</link>
      <pubDate>Wed, 24 Aug 2022 18:39:19 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%90%8E%E7%BB%AD/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5/&#34;&gt;公司核心系统内存泄露排查&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;公司核心系统内存泄露排查(后续)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%AE%8C%E7%BB%93/&#34;&gt;公司核心系统&amp;quot;内存泄露&amp;quot;排查(完结)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;晚上登录了下服务器，发现api还是存在内存上涨的情况。查看了api代码，确认是csredis的publish出了问题。把csredis源码拖了下来，看下到底是哪里出的问题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>公司核心系统内存泄露排查</title>
      <link>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5/</link>
      <pubDate>Tue, 23 Aug 2022 18:39:23 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;公司核心系统内存泄露排查&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%90%8E%E7%BB%AD/&#34;&gt;公司核心系统内存泄露排查(后续)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5%E5%AE%8C%E7%BB%93/&#34;&gt;公司核心系统&amp;quot;内存泄露&amp;quot;排查(完结)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;查找内存泄露&#34;&gt;查找内存泄露&lt;/h2&gt;&#xA;&lt;p&gt;之前写了个系统监控的程序，在某次升级一个项目后，每隔2个月左右会收到服务器的监控提醒，使用&lt;code&gt;top&lt;/code&gt;命令查询发现一个核心asp.net core web api内存异常。&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to set default date formats culture in asp.net</title>
      <link>https://jinyazhou.com/posts/dotnet/how-to-set-default-date-formats-culture-in-asp.net/</link>
      <pubDate>Sat, 25 Jun 2022 11:49:33 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/how-to-set-default-date-formats-culture-in-asp.net/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#078;font-weight:bold&#34;&gt;var&lt;/span&gt; culture = CultureInfo.CreateSpecificCulture(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;zh-CN&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#078;font-weight:bold&#34;&gt;var&lt;/span&gt; dateformat = &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;new&lt;/span&gt; DateTimeFormatInfo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ShortDatePattern = &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;yyyy-MM-dd&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LongDatePattern = &lt;span style=&#34;color:#c30&#34;&gt;&amp;#34;yyyy-MM-dd hh:mm:ss&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;culture.DateTimeFormat = dateformat;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#078;font-weight:bold&#34;&gt;var&lt;/span&gt; supportedCultures = &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;new&lt;/span&gt;[]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    culture&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;app.UseRequestLocalization(&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;new&lt;/span&gt; RequestLocalizationOptions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    DefaultRequestCulture = &lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;new&lt;/span&gt; RequestCulture(culture),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    SupportedCultures = supportedCultures,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    SupportedUICultures = supportedCultures&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;});&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From:&#xA;&lt;a href=&#34;https://stackoverflow.com/questions/56748968/how-to-set-date-formats-and-culture-in-asp-net-core-razor-pages-2-2&#34;&gt;https://stackoverflow.com/questions/56748968/how-to-set-date-formats-and-culture-in-asp-net-core-razor-pages-2-2&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>stackexchange.redis 抛出timeout异常</title>
      <link>https://jinyazhou.com/posts/dotnet/stackexchange.redis-%E6%8A%9B%E5%87%BAtimeout%E5%BC%82%E5%B8%B8/</link>
      <pubDate>Sat, 25 Jun 2022 11:45:33 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/stackexchange.redis-%E6%8A%9B%E5%87%BAtimeout%E5%BC%82%E5%B8%B8/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;最近在用.Net Core 做业务模块时，发现经常会出现TimeOut 超时的情况。然后看了官方的解释，说2.0版本之后维护了一个专用的线程池。我就打算阅读源码，看一下这个线程池的实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>.net core 轻量级分布式日志解决方案</title>
      <link>https://jinyazhou.com/posts/dotnet/net-core-%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%88%86%E5%B8%83%E5%BC%8F%E6%97%A5%E5%BF%97%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</link>
      <pubDate>Thu, 23 Jun 2022 15:28:49 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/net-core-%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%88%86%E5%B8%83%E5%BC%8F%E6%97%A5%E5%BF%97%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;p&gt;未雨绸缪，公司IoT项目中可能会出现的情况：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;多个TCP(UDP)/MQTT服务运行在多台服务器，每台服务器产生大量零碎化的日志文件。如果要查询某台设备某个时段的日志，需要定位到设备的日志文件的服务器，然后去那台服务器拉取日志文件到本地(或在线查找)。&lt;/li&gt;&#xA;&lt;li&gt;如果把log存到数据库(mysql)，按天分表，因每天产生大量的数据，导致查询很慢。&#xA;&lt;br /&gt;&lt;br /&gt;&#xA;目前项目量级较小，只想在不增加运维工作的基础上，做轻量级的实现。Exceptionless和ELK太过重量级，也不想为了存储日志单独安装MongoDB。&#xA;&lt;br /&gt;&lt;br /&gt;&#xA;目前暂定两个方案：&#xA;1、GRPC&#xA;2、Redis&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h2 id=&#34;grpcetcd版分布式日志&#34;&gt;GRPC+Etcd版分布式日志&lt;/h2&gt;&#xA;&lt;p&gt;这个方案是在GitHub上找到的，项目地址:&lt;a href=&#34;https://github.com/AlexanderTar/Distilled&#34;&gt;https://github.com/AlexanderTar/Distilled&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How do I use showOpenDialog withe Electron’s IPC?</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/how-do-i-use-showopendialog-withe-electrons-ipc/</link>
      <pubDate>Wed, 01 Jun 2022 14:48:12 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/how-do-i-use-showopendialog-withe-electrons-ipc/</guid>
      <description>&lt;p&gt;Here is a working solution:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;//  main.js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;&lt;/span&gt;    ipcMain.on(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;open-file&amp;#39;&lt;/span&gt;,(event,data)=&amp;gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        dialog.showOpenDialog(&lt;span style=&#34;color:#069;font-weight:bold&#34;&gt;null&lt;/span&gt;, data).then(filePaths =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            event.sender.send(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;open-file-paths&amp;#39;&lt;/span&gt;, filePaths);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        });&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    });&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;//  pager.js (render)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;&lt;/span&gt;    ipcRenderer.send(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;open-file&amp;#39;&lt;/span&gt;,{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        title&lt;span style=&#34;color:#555&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;Title&amp;#39;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        defaultPath&lt;span style=&#34;color:#555&#34;&gt;:&lt;/span&gt; localStorage.getItem(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;defaultPath&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    });&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ipcRenderer.on(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;open-file-paths&amp;#39;&lt;/span&gt;,(event,data)=&amp;gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        console.log(&lt;span style=&#34;color:#c30&#34;&gt;`Canceled? &lt;/span&gt;&lt;span style=&#34;color:#a00&#34;&gt;${&lt;/span&gt;data.canceled&lt;span style=&#34;color:#a00&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#c30&#34;&gt;`&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        console.log(&lt;span style=&#34;color:#c30&#34;&gt;`File Paths: &lt;/span&gt;&lt;span style=&#34;color:#a00&#34;&gt;${&lt;/span&gt;data.filePaths.join(&lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;)&lt;span style=&#34;color:#c30&#34;&gt;`);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    });&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From: &lt;a href=&#34;https://stackoverflow.com/questions/70331707/how-do-i-use-showopendialog-withe-electron-s-ipc&#34;&gt;https://stackoverflow.com/questions/70331707/how-do-i-use-showopendialog-withe-electron-s-ipc&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>时隔一年的项目刨坑解惑</title>
      <link>https://jinyazhou.com/posts/linux/%E6%97%B6%E9%9A%94%E4%B8%80%E5%B9%B4%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%88%A8%E5%9D%91%E8%A7%A3%E6%83%91/</link>
      <pubDate>Mon, 23 May 2022 10:53:10 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E6%97%B6%E9%9A%94%E4%B8%80%E5%B9%B4%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%88%A8%E5%9D%91%E8%A7%A3%E6%83%91/</guid>
      <description>&lt;h2 id=&#34;缘由&#34;&gt;缘由&lt;/h2&gt;&#xA;&lt;p&gt;因为最近工作量不是很大，所以开始对以前的项目进行优化升级，比如：「&lt;a href=&#34;https://jinyazhou.com/posts/dotnet/%E5%85%AC%E5%8F%B8%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E6%8E%92%E6%9F%A5/&#34;&gt;公司核心系统内存泄露排查&lt;/a&gt;」和一个本地备份工具（本地拖回服务器的备份进行再次备份），下图所示：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16523635880548/IMG_1658.JPG&#34; alt=&#34;IMG_1658&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;完成这些之后，又是一阵空虚。突然想起2021年春节后，公司做了一个xxx小车项目，当时遇到一个问题一直困扰着我。直到拿到公司一块RK3568开发板做测试，才解开这一年的疑惑（其实也应该怪自己抠门，贪便宜买了树莓派ZERO W的板子，没买带网口的树莓派4B）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RTSP本地客户端播放方案</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/rtsp%E6%9C%AC%E5%9C%B0%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%92%AD%E6%94%BE%E6%96%B9%E6%A1%88/</link>
      <pubDate>Thu, 21 Apr 2022 23:03:48 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/rtsp%E6%9C%AC%E5%9C%B0%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%92%AD%E6%94%BE%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;../media/16505126333609/16505136074430.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;先给测试结论：&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;方案名称&lt;/th&gt;&#xA;          &lt;th&gt;测试结果&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;EmguCV&lt;/td&gt;&#xA;          &lt;td&gt;多线程下会出现闪退&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OpenCVSharp&lt;/td&gt;&#xA;          &lt;td&gt;延迟过高&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;VLC.DotNet&lt;/td&gt;&#xA;          &lt;td&gt;视频自动0点关闭&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;RtspClientSharp&lt;/td&gt;&#xA;          &lt;td&gt;出现过断流情况&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;emgucv&#34;&gt;EmguCV&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;延迟低(2秒左右)&lt;/li&gt;&#xA;&lt;li&gt;CPU占用高（长期10%以上，可能也是因为电脑配置低）&lt;/li&gt;&#xA;&lt;li&gt;内存占用低&lt;/li&gt;&#xA;&lt;li&gt;稳定性差，4.x版本多线程下闪退无报错&lt;/li&gt;&#xA;&lt;li&gt;网络中断或者插头拔除/断电导致视频信号丢失，自动恢复暂无可靠方案。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;最后两个原因，会导致软件极不可靠，放弃这个方案。&lt;/p&gt;</description>
    </item>
    <item>
      <title>海康威视摄像设备局域网发现原理</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E6%B5%B7%E5%BA%B7%E5%A8%81%E8%A7%86%E6%91%84%E5%83%8F%E8%AE%BE%E5%A4%87%E5%B1%80%E5%9F%9F%E7%BD%91%E5%8F%91%E7%8E%B0%E5%8E%9F%E7%90%86/</link>
      <pubDate>Thu, 21 Apr 2022 13:38:05 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E6%B5%B7%E5%BA%B7%E5%A8%81%E8%A7%86%E6%91%84%E5%83%8F%E8%AE%BE%E5%A4%87%E5%B1%80%E5%9F%9F%E7%BD%91%E5%8F%91%E7%8E%B0%E5%8E%9F%E7%90%86/</guid>
      <description>&lt;p&gt;公司有3部海康摄像头，1台海康硬盘录像机。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16488044553683/16505120215120.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;因为想知道SADP搜索软件是如何发现设备的，所以我查了下资料：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16488044553683/16488045932669.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;SADP搜索软件是向239.255.255.250:37020发送udp消息（soap.udp://239.255.255.250:37020）以达到局域网广播目的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>普通USB摄像头转为网络摄像头</title>
      <link>https://jinyazhou.com/posts/linux/%E6%99%AE%E9%80%9Ausb%E6%91%84%E5%83%8F%E5%A4%B4%E8%BD%AC%E4%B8%BA%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4/</link>
      <pubDate>Sat, 12 Mar 2022 14:56:19 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E6%99%AE%E9%80%9Ausb%E6%91%84%E5%83%8F%E5%A4%B4%E8%BD%AC%E4%B8%BA%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4/</guid>
      <description>&lt;p&gt;Raspberry Pi Zero W吃灰有一段时间了，想着能否废物利用，使用普通USB摄像头改成一个RTSP协议网络摄像头。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-查看摄像头是否可用&#34;&gt;1. 查看摄像头是否可用&lt;/h2&gt;&#xA;&lt;p&gt;查看是否已识别USB摄像头：&lt;/p&gt;</description>
    </item>
    <item>
      <title>微信支付服务商（二、分账功能）</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%BA%8C%E5%88%86%E8%B4%A6%E5%8A%9F%E8%83%BD/</link>
      <pubDate>Tue, 15 Feb 2022 14:48:33 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%BA%8C%E5%88%86%E8%B4%A6%E5%8A%9F%E8%83%BD/</guid>
      <description>&lt;p&gt;文章索引：&#xA;&lt;a href=&#34;https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%B8%80%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95/&#34;&gt;微信支付服务商（一、踩坑记录）&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;微信支付服务商（二、分账功能）&lt;/p&gt;&#xA;&lt;h3 id=&#34;1普通服务商分账比例问题&#34;&gt;1、普通服务商分账比例问题&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16429102243440/16446432070594.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;微信支付普通服务商分账比例最高30%，官方没有告知原因，经搜索查证后如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16427306752981/16427360206829.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;相关资料：&#xA;&lt;a href=&#34;https://www.zhihu.com/question/378159817/answer/1589924392&#34;&gt;知乎 - 为什么微信支付分账功能最高分账比例只有30%?&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>微信支付服务商（一、踩坑记录）</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%B8%80%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95/</link>
      <pubDate>Tue, 15 Feb 2022 13:18:09 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%B8%80%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95/</guid>
      <description>&lt;p&gt;文章索引：&#xA;微信支付服务商（一、踩坑记录）&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%9C%8D%E5%8A%A1%E5%95%86%E4%BA%8C%E5%88%86%E8%B4%A6%E5%8A%9F%E8%83%BD/&#34;&gt;微信支付服务商（二、分账功能）&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;1服务商账户注册&#34;&gt;1、服务商账户注册&lt;/h3&gt;&#xA;&lt;p&gt;详细步骤可以参考接入流程：&#xA;&lt;a href=&#34;https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter7_1_2.shtml&#34;&gt;https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter7_1_2.shtml&lt;/a&gt;&lt;/p&gt;&#xA;&lt;!-- more --&gt;&lt;br/&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16427306752981/16433344503178.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;由于微信支付的产品体系全部搭载于微信的社交体系之上，所以直连商户或服务商商户接入微信支付之前，都需要有一个微信社交载体，该载体对应的ID即为APPID。&#xA;目前服务商的社交载体只能是公众号，服务商可通过公众平台完成公众号注册申请。&#xA;公众号申请成功后，服务商可登录公众号平台即可获取对应的APPID，具体查阅目录为 【开发-&amp;gt; 基本配置-&amp;gt; 公众号开发信息】，如下图所示。通常情况下，一个服务商只需申请一个公众号即可。&lt;/p&gt;</description>
    </item>
    <item>
      <title>网络摄像头RTSP协议转换RTMP直播协议</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4rtsp%E5%8D%8F%E8%AE%AE%E8%BD%AC%E6%8D%A2rtmp%E7%9B%B4%E6%92%AD%E5%8D%8F%E8%AE%AE/</link>
      <pubDate>Wed, 12 Jan 2022 10:21:04 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4rtsp%E5%8D%8F%E8%AE%AE%E8%BD%AC%E6%8D%A2rtmp%E7%9B%B4%E6%92%AD%E5%8D%8F%E8%AE%AE/</guid>
      <description>&lt;p&gt;&lt;code&gt;直播服务普遍采用了RTMP作为流媒体协议，FLV作为封装格式，H.264作为视频编码格式，AAC作为音频编码格式。FLV是RTMP使用的封装格式，H.264是当今实际应用中编码效率最高的视频编码标准，AAC则是当今实际应用中编码效率最高的音频编码标准。&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>对一款人脸识别自助储物柜逆向分析(二)</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%BA%8C/</link>
      <pubDate>Fri, 31 Dec 2021 17:30:38 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%BA%8C/</guid>
      <description>&lt;h4 id=&#34;目录&#34;&gt;目录：&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/&#34;&gt;对一款人脸识别自助储物柜逆向分析(一)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;对一款人脸识别自助储物柜逆向分析(二)&lt;/p&gt;&#xA;&lt;h3 id=&#34;1人脸识别功能实现&#34;&gt;1.人脸识别功能实现&lt;/h3&gt;&#xA;&lt;p&gt;在&lt;code&gt;face/FaceHelper.java&lt;/code&gt;里看到这句：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;public static final KFFaceM mFace = new KFFaceM();&#xA;&#xA;public boolean FaceDetection(byte[] bArr, int i, int i2) {&#xA;        synchronized (this.objectFaceDetection) {&#xA;            if (bArr == null) {&#xA;                return false;&#xA;            }&#xA;            ByteBuffer order = ByteBuffer.allocateDirect(3686400).order(ByteOrder.nativeOrder());&#xA;            order.put(bArr);&#xA;            float[] FindFace = mFace.FindFace(order, i, i2, true);&#xA;            return FindFace.length &amp;gt; 1 &amp;amp;&amp;amp; ((int) FindFace[0]) &amp;gt; 0;&#xA;        }&#xA;    }&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;!-- more --&gt;&#xA;&lt;p&gt;&lt;code&gt;FaceDetection&lt;/code&gt;方法已经提示得很明显了，就是&lt;code&gt;人脸识别&lt;/code&gt;。调用&lt;code&gt;mFace.FindFace&lt;/code&gt;对比人脸数据。继续溯源，找到了&lt;/p&gt;</description>
    </item>
    <item>
      <title>对一款人脸识别自助储物柜逆向分析(一)</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/</link>
      <pubDate>Fri, 31 Dec 2021 16:15:47 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/</guid>
      <description>&lt;h4 id=&#34;目录&#34;&gt;目录：&lt;/h4&gt;&#xA;&lt;p&gt;对一款人脸识别自助储物柜逆向分析(一)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E4%B8%80%E6%AC%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E8%87%AA%E5%8A%A9%E5%82%A8%E7%89%A9%E6%9F%9C%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%BA%8C/&#34;&gt;对一款人脸识别自助储物柜逆向分析(二)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;1抓包获取接口&#34;&gt;1.抓包获取接口&lt;/h3&gt;&#xA;&lt;p&gt;柜子实物，仅有公开文档：&#xA;&lt;img src=&#34;../media/16400707003526/16400784861082.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;中间有一次把扩展板玩挂了，后来通过物理按键操作恢复出厂了😅。&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;就是下面这块板子，既然能恢复那就没有后顾之忧了😈：&lt;/p&gt;</description>
    </item>
    <item>
      <title>新增.gitignore文件不生效</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E6%96%B0%E5%A2%9E.gitignore%E6%96%87%E4%BB%B6%E4%B8%8D%E7%94%9F%E6%95%88/</link>
      <pubDate>Tue, 07 Dec 2021 15:17:57 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E6%96%B0%E5%A2%9E.gitignore%E6%96%87%E4%BB%B6%E4%B8%8D%E7%94%9F%E6%95%88/</guid>
      <description>&lt;p&gt;新增的忽略文件没有生效，是因为git是有缓存的，而之前的文件在缓存中，并不会清除掉，还会继续提交，所以更新.gitignore文件，要清除缓存文件&lt;/p&gt;</description>
    </item>
    <item>
      <title>GitLab Upgrade 502 Error</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/gitlab-upgrade-502-error/</link>
      <pubDate>Sat, 04 Dec 2021 23:35:13 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/gitlab-upgrade-502-error/</guid>
      <description>&lt;p&gt;在升级GitLab后，进行gitlab-ctl reconfigure的时候，碰到问题：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;bash[migrate gitlab-rails database] (gitlab::database_migrations line 55) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received &amp;#39;1&amp;#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;!-- more --&gt;&#xA;&lt;p&gt;报错database_migrations问题涉及数据库。依次执行以下指令即可：&lt;/p&gt;</description>
    </item>
    <item>
      <title>System.Drawing .NET Core on Mac/linux, GDIPlus Exception</title>
      <link>https://jinyazhou.com/posts/dotnet/system.drawing-.net-core-on-maclinux-gdiplus-exception/</link>
      <pubDate>Tue, 23 Nov 2021 10:08:49 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/system.drawing-.net-core-on-maclinux-gdiplus-exception/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;I got the whole thing up and running in debug. But when I went for our dotnet run, I got the following crash:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;The type initializer for &amp;#39;Gdip&amp;#39; threw an exception.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;!-- more --&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;After googling a bit, I found out that macs have a brew package for the GDI+ good to go.&lt;/p&gt;&#xA;&lt;h3 id=&#34;macos&#34;&gt;MacOS&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install mono-libgdiplus&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;项目nuget引用&lt;code&gt;CoreCompat.System.Drawing&lt;/code&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>socket failed:EACCES(Permission denied) 错误解决</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/socket-failedeaccespermission-denied-%E9%94%99%E8%AF%AF%E8%A7%A3%E5%86%B3/</link>
      <pubDate>Sat, 23 Oct 2021 17:49:46 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/socket-failedeaccespermission-denied-%E9%94%99%E8%AF%AF%E8%A7%A3%E5%86%B3/</guid>
      <description>&lt;p&gt;第一次做安卓开发，研究mqtt通讯的APP debug过程中遇到提示：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;W/System.err: MqttException (0) - java.net.SocketException: socket failed: EACCES (Permission denied)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;!-- more --&gt;&#xA;&lt;p&gt;如图所示：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16349820278081/16349821072047.jpg&#34; alt=&#34;-w809&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;解决办法&#34;&gt;解决办法：&lt;/h3&gt;&#xA;&lt;p&gt;竟然连最基本「网络」权限都需要许可。修改&lt;code&gt;app/src/main/AndroidManifest.xml&lt;/code&gt;，在&lt;code&gt;&amp;lt;manifest&amp;gt;&lt;/code&gt;标签内加入：&lt;/p&gt;</description>
    </item>
    <item>
      <title>【homebrew】Error: Failure while executing； `git clone ***</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/homebrewerror-failure-while-executing-git-clone/</link>
      <pubDate>Sat, 23 Oct 2021 10:32:37 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/homebrewerror-failure-while-executing-git-clone/</guid>
      <description>&lt;h3 id=&#34;报错信息&#34;&gt;报错信息：&lt;/h3&gt;&#xA;&lt;p&gt;Error: Failure while executing; &amp;lsquo;git clone &lt;a href=&#34;https://github.com/Homebrew/homebrew-cask&#34;&gt;https://github.com/Homebrew/homebrew-cask&lt;/a&gt; /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask&amp;rsquo; exited with 128.&lt;/p&gt;&#xA;&lt;h3 id=&#34;替换homebrew源&#34;&gt;替换homebrew源&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd &amp;#34;$(brew --repo)&amp;#34;&#xA;git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;替换homebrew-core源&#34;&gt;替换homebrew-core源&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd &amp;#34;$(brew --repo)/Library/Taps/homebrew/homebrew-core&amp;#34;&#xA;git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git&#xA;&#xA;brew update&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果还没解决，参考：https://blog.csdn.net/DuXiaoYu1111/article/details/114663146&lt;/p&gt;</description>
    </item>
    <item>
      <title>visual c&#43;&#43; build tools的离线完整版</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/visual-c&#43;&#43;-build-tools%E7%9A%84%E7%A6%BB%E7%BA%BF%E5%AE%8C%E6%95%B4%E7%89%88/</link>
      <pubDate>Wed, 29 Sep 2021 11:58:54 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/visual-c&#43;&#43;-build-tools%E7%9A%84%E7%A6%BB%E7%BA%BF%E5%AE%8C%E6%95%B4%E7%89%88/</guid>
      <description>&lt;h2 id=&#34;microsoft-visual-c-140-is-required&#34;&gt;Microsoft Visual C++ 14.0 is required&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16328870598543/16328870621712.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Python安装支持库的过程中经常会遇到“Microsoft Visual C++ 14.0 is required”或者“unable to find vcvarsall.bat”的问题，&lt;code&gt;安装vc++ 运行库无效&lt;/code&gt;，此时就需要安装Visual C++ build tools生成工具，下载链接。但该安装包为在线安装包，安装过程需要连接网络下载完整安装包，在没有网络连接的环境下无法使用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>图像识别项目服务端&#43;客户端设计方案</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%9B%BE%E5%83%8F%E8%AF%86%E5%88%AB%E9%A1%B9%E7%9B%AE%E6%9C%8D%E5%8A%A1%E7%AB%AF&#43;%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88/</link>
      <pubDate>Sat, 24 Jul 2021 21:13:57 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%9B%BE%E5%83%8F%E8%AF%86%E5%88%AB%E9%A1%B9%E7%9B%AE%E6%9C%8D%E5%8A%A1%E7%AB%AF&#43;%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;h4 id=&#34;项目需求&#34;&gt;项目需求&lt;/h4&gt;&#xA;&lt;p&gt;调用学习完成的图像识别模型，通过摄像头实时监测识别结果，客户端显示识别结果并做提醒预警。&lt;/p&gt;&#xA;&lt;h4 id=&#34;部署操作系统&#34;&gt;部署操作系统&lt;/h4&gt;&#xA;&lt;p&gt;软件需要运行在Ubuntu Desktop 16.04，要么选择跨平台应用，要么选择html纯静态页面作为客户端。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Centos修改磁盘挂载目录</title>
      <link>https://jinyazhou.com/posts/linux/centos%E4%BF%AE%E6%94%B9%E7%A3%81%E7%9B%98%E6%8C%82%E8%BD%BD%E7%9B%AE%E5%BD%95/</link>
      <pubDate>Wed, 07 Jul 2021 22:40:50 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/centos%E4%BF%AE%E6%94%B9%E7%A3%81%E7%9B%98%E6%8C%82%E8%BD%BD%E7%9B%AE%E5%BD%95/</guid>
      <description>&lt;p&gt;1、查看已挂载的磁盘以及挂载到的目录&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;df -h&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;../media/16256685786208/16256687513144.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;上图中 最大的 860G 硬盘挂载到了 www 这个目录，那我们来将 这个磁盘改变挂载到 /home&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;2、创建目录&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mkdir /home&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3、卸载目录&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;umount /www&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;4、重新挂载&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Delete Microsoft AutoUpdate from Mac</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/how-to-delete-microsoft-autoupdate-from-mac/</link>
      <pubDate>Tue, 08 Jun 2021 16:01:07 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/how-to-delete-microsoft-autoupdate-from-mac/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;../media/16185377751362/16185377898450.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Want to delete Microsoft AutoUpdate from a Mac? Perhaps you uninstalled Microsoft Office or some other Microsoft applications from the Mac and thus have no further need for Microsoft applications to automatically update themselves. In any case, you can remove the Microsoft AutoUpdate application from Mac OS.&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;If Microsoft AutoUpdate is currently running you’ll need to quit out of the application first. You can also forcibly quit the Microsoft AutoUpdate app from Activity Monitor if needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>对山东某充电桩服务的逆向分析(二)</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E5%B1%B1%E4%B8%9C%E6%9F%90%E5%85%85%E7%94%B5%E6%A1%A9%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%BA%8C/</link>
      <pubDate>Thu, 15 Apr 2021 17:42:15 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E5%B1%B1%E4%B8%9C%E6%9F%90%E5%85%85%E7%94%B5%E6%A1%A9%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%BA%8C/</guid>
      <description>&lt;h2 id=&#34;目录&#34;&gt;目录：&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E5%B1%B1%E4%B8%9C%E6%9F%90%E5%85%85%E7%94%B5%E6%A1%A9%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/&#34;&gt;对山东某充电桩服务的逆向分析(一)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;对山东某充电桩服务的逆向分析(二)&lt;/p&gt;&#xA;&lt;h2 id=&#34;文一补充&#34;&gt;文（一）补充&lt;/h2&gt;&#xA;&lt;p&gt;上文中「猜测1」对「充电桩同时使用TCP和MQTT」描述不是很详细，现说明如下：&lt;/p&gt;&#xA;&lt;p&gt;服务端中运行test.proc.CmdRecvBusiProcessor、test.server.ServerHandler、test.service.KafkaProducer等至少3个服务。&lt;/p&gt;</description>
    </item>
    <item>
      <title>搭建邮件服务器</title>
      <link>https://jinyazhou.com/posts/linux/%E6%90%AD%E5%BB%BA%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/</link>
      <pubDate>Thu, 15 Apr 2021 15:16:01 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E6%90%AD%E5%BB%BA%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid>
      <description>&lt;p&gt;&lt;strong&gt;注：2025.2.8又因工作需要邮箱验证，发现阿里云屏蔽25端口向外发送邮件：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16327296817407/WX20250208-143506.png&#34; alt=&#34;WX20250208-143506&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;公司需要注册几个小程序，注册小程序需要邮箱，腾讯企业邮箱新账户需要绑定手机号和个人微信，不适合批量使用。昨天用turbomail搭建了邮件服务，功能很强大，但仅限于windows。因某些原因，服务器操作系统今天上午更改为Linux，所以需要重新搭建一套邮件服务。&lt;/p&gt;</description>
    </item>
    <item>
      <title>对山东某充电桩服务的逆向分析(一)</title>
      <link>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E5%B1%B1%E4%B8%9C%E6%9F%90%E5%85%85%E7%94%B5%E6%A1%A9%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/</link>
      <pubDate>Wed, 14 Apr 2021 20:20:32 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E7%89%A9%E8%81%94%E7%BD%91iot/%E5%AF%B9%E5%B1%B1%E4%B8%9C%E6%9F%90%E5%85%85%E7%94%B5%E6%A1%A9%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E4%B8%80/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;注：本文只是通过充电桩项目log里的服务包名对整体IoT服务进行技术猜想，可能与实际服务差距特别大。就像只知道某地铁站A为已知某节点，去猜测整个地铁线路一样，只是理想状态，实际可能会因为各种需求，做出很多妥协和改变。&lt;/p&gt;</description>
    </item>
    <item>
      <title>.NET Core dump 分析</title>
      <link>https://jinyazhou.com/posts/dotnet/net-core-dump-%E5%88%86%E6%9E%90/</link>
      <pubDate>Sat, 03 Apr 2021 22:08:21 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/net-core-dump-%E5%88%86%E6%9E%90/</guid>
      <description>&lt;p&gt;服务 CPU 或 内存偶尔飙高是部署环境中经常遇到的问题，一般会采用记录日志的方式来诊断，不过有些情况靠日志可能并不能分析出个所以然，面对实在无头绪的问题也只能暂时使用重启大法先恢复。&lt;/p&gt;</description>
    </item>
    <item>
      <title>EPPlus export excel error:Please set the ExcelPackage.LicenseContext property.</title>
      <link>https://jinyazhou.com/posts/dotnet/epplus-export-excel-errorplease-set-the-excelpackage.licensecontext-property./</link>
      <pubDate>Wed, 31 Mar 2021 21:00:28 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/epplus-export-excel-errorplease-set-the-excelpackage.licensecontext-property./</guid>
      <description>&lt;p&gt;今天测试.net core 2.2到3.1时，顺便更新了EPPlus版本。导出excel时报错：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2021-03-31 20:51:27,481 [5] ERRORStaffController - OfficeOpenXml.LicenseException: Please set the ExcelPackage.LicenseContext property. See https://epplussoftware.com/developers/licenseexception&#xA;   at OfficeOpenXml.ExcelPackage.get_Workbook()&#xA;   at OfficeOpenXml.ExcelPackage.CreateBlankWb()&#xA;   at OfficeOpenXml.ExcelPackage.ConstructNewFile(String password)&#xA;   at OfficeOpenXml.ExcelPackage..ctor(FileInfo newFile)&#xA;   at PartnerPlatform.Service.StaffExport.ExportExcelSingleWorksheets(IDbConnection dbConnection, String sWebRootFolder, String fileName, List`1 staff) in /Users/jinyazhou/Test/PartnerPlatform/Service/ExcelExport.cs:line 43&#xA;   at PartnerPlatform.Controllers.StaffController.Export() in /Users/jinyazhou/Test/Controllers/ExcelController.cs:line 19&#xA;Loaded &amp;#39;/usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.13/System.Runtime.Serialization.Primitives.dll&amp;#39;. Skipped loading symbols. Module is optimized and the debugger option &amp;#39;Just My Code&amp;#39; is enabled.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;原因：&lt;/strong&gt;&#xA;EPPlus 5.0 以后的版本需要指定 商业证书 或者非商业证书。你需要在代码里指定证书或者降低EPPlus版本。在代码里面指定非商业证书：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raspberry Pi Zero W 开启WIFI及SSH</title>
      <link>https://jinyazhou.com/posts/linux/raspberry-pi-zero-w-%E5%BC%80%E5%90%AFwifi%E5%8F%8Assh/</link>
      <pubDate>Sat, 27 Mar 2021 09:15:18 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/raspberry-pi-zero-w-%E5%BC%80%E5%90%AFwifi%E5%8F%8Assh/</guid>
      <description>&lt;h2 id=&#34;基本设置&#34;&gt;基本设置&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;国家一定要选择China，否则可能会造成SSH频繁断开和严重的卡顿！&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;语言选择English，方便根据报错查找问题。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;开启wifi&#34;&gt;开启WIFI&lt;/h2&gt;&#xA;&lt;h3 id=&#34;连接wifi网络&#34;&gt;连接WiFi网络&lt;/h3&gt;&#xA;&lt;p&gt;进入桌面找到并连接WiFi。如果频繁断开或者无法连接，运行：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configure httpd To Listen on Multiple Ports</title>
      <link>https://jinyazhou.com/posts/linux/configure-httpd-to-listen-on-multiple-ports/</link>
      <pubDate>Sat, 27 Mar 2021 09:07:57 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/configure-httpd-to-listen-on-multiple-ports/</guid>
      <description>&lt;p&gt;How do I configure Apache HTTPD to listen on multiple ports under RHEL / Fedora / CentOS Linux Server?&lt;/p&gt;&#xA;&lt;p&gt;Multiple ports can be configured via Listen directive under Apache web server. By default httpd listens on TCP port 80.&lt;/p&gt;&#xA;&lt;p&gt;How to configure httpd to listen multiple ports?&#xA;Open configure file /etc/httpd/conf/httpd.conf and modify the Listen directive tells the server to accept incoming requests on the specified port. Multiple Listen directives may be used to specify a number of ports to listen to.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raspberry Pi Zero W与GPS模块搭建NTP授时服务器</title>
      <link>https://jinyazhou.com/posts/linux/raspberry-pi-zero-w%E4%B8%8Egps%E6%A8%A1%E5%9D%97%E6%90%AD%E5%BB%BAntp%E6%8E%88%E6%97%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/</link>
      <pubDate>Sat, 06 Mar 2021 14:00:55 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/raspberry-pi-zero-w%E4%B8%8Egps%E6%A8%A1%E5%9D%97%E6%90%AD%E5%BB%BAntp%E6%8E%88%E6%97%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid>
      <description>&lt;h2 id=&#34;0-gps模块&#34;&gt;0. GPS模块&lt;/h2&gt;&#xA;&lt;p&gt;因为GPS模块仅做测试，不用于生产环境，我选了一块便宜的GT-U8模块。使用USB串口模块接好GPS模块后，收到GPS上报数据。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;../media/16148438359084/gps.png&#34; alt=&#34;gps&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>写一个FTP同步软件</title>
      <link>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%86%99%E4%B8%80%E4%B8%AAftp%E5%90%8C%E6%AD%A5%E8%BD%AF%E4%BB%B6/</link>
      <pubDate>Fri, 26 Feb 2021 10:20:22 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%86%99%E4%B8%80%E4%B8%AAftp%E5%90%8C%E6%AD%A5%E8%BD%AF%E4%BB%B6/</guid>
      <description>&lt;h2 id=&#34;需求分析&#34;&gt;需求分析&lt;/h2&gt;&#xA;&lt;p&gt;目前个人网站是使用MWeb写作，然后生成本地html，使用GoodSync通过FTP把本地html同步到网站服务器。&lt;/p&gt;&#xA;&lt;p&gt;GoodSync功能强大，但是收费软件，过试用期会定期弹窗，且免费版不能同步超过100个文件。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CentOS7安装FastDFS</title>
      <link>https://jinyazhou.com/posts/linux/centos7%E5%AE%89%E8%A3%85fastdfs/</link>
      <pubDate>Tue, 09 Feb 2021 10:36:21 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/centos7%E5%AE%89%E8%A3%85fastdfs/</guid>
      <description>&lt;h2 id=&#34;boutique-centos7-and-fastdfs-build-image-server&#34;&gt;Boutique: CentOS7 and FastDFS build image server&lt;/h2&gt;&#xA;&lt;h2 id=&#34;brief-introduction&#34;&gt;brief introduction&lt;/h2&gt;&#xA;&lt;p&gt;FastDFS is an open source high-performance Distributed File System. It manages files. Its main functions include: file storage, file synchronization, file access (file upload, file download), etc. It mainly solves the problem of massive data storage, especially for small and medium-sized files (recommended range: 4KB &amp;lt; file)_ Size &amp;lt; 500MB).&lt;/p&gt;&#xA;&lt;p&gt;FastDFS system has three roles: tracker server, storage server and client.&#xA;&lt;img src=&#34;../media/16115394853892/16121735189260.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>详解Redis集群环境搭建</title>
      <link>https://jinyazhou.com/posts/linux/%E8%AF%A6%E8%A7%A3redis%E9%9B%86%E7%BE%A4%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</link>
      <pubDate>Fri, 05 Feb 2021 10:55:35 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E8%AF%A6%E8%A7%A3redis%E9%9B%86%E7%BE%A4%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;本文是Redis集群学习的实践总结（基于Redis 6.0+），详细介绍逐步搭建Redis集群环境的过程，并完成集群伸缩的实践。&lt;/p&gt;&#xA;&lt;p&gt;##Redis集群简介&#xA;Redis集群(Redis Cluster) 是Redis提供的分布式数据库方案，通过 分片(sharding) 来进行数据共享，并提供复制和故障转移功能。相比于主从复制、哨兵模式，Redis集群实现了较为完善的高可用方案，解决了存储能力受到单机限制，写操作无法负载均衡的问题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>提升Nginx SSL/HTTPS性能的7条建议</title>
      <link>https://jinyazhou.com/posts/linux/%E6%8F%90%E5%8D%87nginx-sslhttps%E6%80%A7%E8%83%BD%E7%9A%847%E6%9D%A1%E5%BB%BA%E8%AE%AE/</link>
      <pubDate>Fri, 05 Feb 2021 10:53:32 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/%E6%8F%90%E5%8D%87nginx-sslhttps%E6%80%A7%E8%83%BD%E7%9A%847%E6%9D%A1%E5%BB%BA%E8%AE%AE/</guid>
      <description>&lt;p&gt;自2018年7月起，谷歌浏览器开始将“ HTTP”网站标记为“不安全”。在过去的几年中，互联网已经迅速过渡到HTTPS，Chrome浏览器的流量超过70％，并且Web排名前100位的网站中有80多个现在默认使用HTTPS 当前Nginx作为最常见的服务器，广泛用于负载均衡（LB)、网关、反向代理。考虑到这一点，让我们看一下Nginx调优技巧，改善Nginx + HTTPS的性能以获得更好的TTFB和更少的延迟。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exception: HTTP/2 over TLS is not supported on macOS due to missing ALPN support</title>
      <link>https://jinyazhou.com/posts/dotnet/exception-http2-over-tls-is-not-supported-on-macos-due-to-missing-alpn-support/</link>
      <pubDate>Fri, 05 Feb 2021 10:05:06 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/dotnet/exception-http2-over-tls-is-not-supported-on-macos-due-to-missing-alpn-support/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;../media/16124007377028/16124010657816.jpg&#34; alt=&#34;-w404&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Unable to bind to https://localhost:5001 on the IPv4 loopback interface: &#39;HTTP/2 over TLS is not supported on macOS due to missing ALPN support.&lt;/code&gt;&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;解决方案:&lt;/h2&gt;&#xA;&lt;p&gt;Kestrel 不支持 macOS 和更早的 Windows 版本（如 Windows 7）上的带有 TLS 的 HTTP/2。 默认情况下，ASP.NET Core gRPC 模板和示例使用 TLS。 尝试启动 gRPC 服务器时，你将看到以下错误消息：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx配置文件详解</title>
      <link>https://jinyazhou.com/posts/linux/nginx%E7%AE%80%E4%BB%8B%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3/</link>
      <pubDate>Mon, 01 Feb 2021 18:08:11 +0800</pubDate>
      <guid>https://jinyazhou.com/posts/linux/nginx%E7%AE%80%E4%BB%8B%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3/</guid>
      <description>&lt;h2 id=&#34;一nginx简介&#34;&gt;一、Nginx简介&lt;/h2&gt;&#xA;&lt;p&gt;Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器，同时支持IMAP/POP3/SMTP代理服务。&lt;/p&gt;&#xA;&lt;h3 id=&#34;1nginx工作原理&#34;&gt;1.Nginx工作原理&lt;/h3&gt;&#xA;&lt;p&gt;Nginx由内核和模块组成，完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令)，location配置的命令会启动不同模块完成工作。&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://jinyazhou.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://jinyazhou.com/about/</guid>
      <description>&lt;p&gt;网站从2007年开始，经历了自写asp+access、asp.net mvc+sqlite、asp.net core 2.1 mvc+litedb。&lt;del&gt;目前使用MWeb生成纯静态html，使用 1.GoodSync；&lt;a href=&#34;https://jinyazhou.com/posts/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/%E5%86%99%E4%B8%80%E4%B8%AAftp%E5%90%8C%E6%AD%A5%E8%BD%AF%E4%BB%B6/&#34;&gt; 2.自写.net core程序 通过FTP&lt;/a&gt; ；3.&lt;a href=&#34;https://github.com/syncthing/syncthing/&#34;&gt;syncthing&lt;/a&gt; 把本地html同步到网站。&lt;/del&gt; 目前网站已脱离个人服务器，部署在腾讯云EdgeOne。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Toolbox</title>
      <link>https://jinyazhou.com/toolbox/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://jinyazhou.com/toolbox/</guid>
      <description>&lt;h4 id=&#34;以下页面均为ai生成&#34;&gt;以下页面均为AI生成：&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/&#34; target=&#34;_blank&#34;&gt;字符处理 / 进制转换工具箱&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/image_to_rgb565.html&#34; target=&#34;_blank&#34;&gt;图片转RGB565&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/draw_pixel.html&#34; target=&#34;_blank&#34;&gt;绘制像素图&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/qrcode.html&#34; target=&#34;_blank&#34;&gt;生成二维码&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/coordinate_converter.html&#34; target=&#34;_blank&#34;&gt;坐标系批量转换&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/tcp_sequence.html&#34; target=&#34;_blank&#34;&gt;TCP通讯时序、状态流转与异常排查&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/tcp_animation.html&#34; target=&#34;_blank&#34;&gt;TCP状态机与时序动态演示&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jinyazhou.com/toolkit/geo_fence.html&#34; target=&#34;_blank&#34;&gt;射线法实现地理电子围栏&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://jinyazhou.com/toolkit/static/images/git_command.png&#34; alt=&#34;git命令速查&#34;&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
