<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[janbar的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/janbar</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; janbar]]></copyright><item><title><![CDATA[使用官方 MSIX 安装包手动更新 Codex]]></title><link>https://blog.csdn.net/janbar/article/details/164155927</link><guid>https://blog.csdn.net/janbar/article/details/164155927</guid><author>janbar</author><pubDate>Fri, 28 Aug 2026 14:02:00 +0800</pubDate><description><![CDATA[官方 MSIX 下载地址↓↓关闭 Codex↓↓重新启动 Codex↓检查 OpenAI.Codex 版本相比等待 Codex 自动更新或者依赖 Microsoft Store，这种方式更加直接，特别适合Microsoft Store 不可用、自动更新失败、更新卡住的 Windows 环境。OpenAI Windows 部署文档OpenAI Windows 应用说明平台架构官方最新版稳定直链格式Windowsx64.msixWindowsarm64.msixmacOS。]]></description><category></category></item><item><title><![CDATA[Whistle 前端调试代理实战技巧]]></title><link>https://blog.csdn.net/janbar/article/details/163765500</link><guid>https://blog.csdn.net/janbar/article/details/163765500</guid><author>janbar</author><pubDate>Fri, 14 Aug 2026 15:34:00 +0800</pubDate><description><![CDATA[Whistle 是基于 Node.js 的跨平台抓包代理工具，支持 HTTP/HTTPS/WebSocket 拦截、请求转发、本地文件替换、接口 Mock，是前端日常调试利器。Firefox 不读取系统证书库，需要在浏览器设置内单独导入根证书。，用于接管文件映射+动态修改响应头，解决file无法使用变量的问题。根因：协商缓存304，whistle不会下发本地文件。属于静态JSON，不支持模板变量；开发最常用：线上JS/WASM/CSS映射本地文件。，无法实现动态ETag。，动态头必须使用多条。]]></description><category></category></item><item><title><![CDATA[不改代码、不改服务器，使用 Chrome Overrides 调试线上页面]]></title><link>https://blog.csdn.net/janbar/article/details/163516053</link><guid>https://blog.csdn.net/janbar/article/details/163516053</guid><author>janbar</author><pubDate>Wed, 05 Aug 2026 14:50:00 +0800</pubDate><description><![CDATA[Chrome Overrides 是 DevTools 的一个功能：它允许：服务器资源↓Chrome 请求↓本地文件替换↓浏览器加载修改后的内容不修改服务器不修改代码仓库不影响其他用户只作用于当前浏览器。]]></description><category></category></item><item><title><![CDATA[20MB，管理70+种数据库！DBX太好用了！]]></title><link>https://blog.csdn.net/janbar/article/details/163145352</link><guid>https://blog.csdn.net/janbar/article/details/163145352</guid><author>janbar</author><pubDate>Thu, 23 Jul 2026 20:58:00 +0800</pubDate><description><![CDATA[一个工具统一管理多种数据库和中间件；降低开发环境中的工具复杂度；支持 MCP，让 AI 可以直接连接真实数据；提升数据库查询、分析和问题排查效率。对于日常同时使用 PostgreSQL、Redis、Kafka 等多种技术栈的开发者来说，DBX 不仅可以作为一个优秀的数据管理工具，更可以成为 AI 辅助开发流程中的重要基础设施。随着 MCP 生态的发展，未来「AI + 数据」的结合会越来越紧密，而 DBX 这种提供数据访问能力的工具，也会成为开发者工作流中的重要组成部分。]]></description><category></category></item><item><title><![CDATA[下载NVIDIA显卡旧版驱动]]></title><link>https://blog.csdn.net/janbar/article/details/156583727</link><guid>https://blog.csdn.net/janbar/article/details/156583727</guid><author>janbar</author><pubDate>Sun, 04 Jan 2026 16:12:00 +0800</pubDate><description><![CDATA[因此只需要在控制台执行如下代码，将返回驱动数量改大一些即可。最后在页面点击搜索会发现结果会大于10条。]]></description><category></category></item><item><title><![CDATA[在x86的window安装arm64虚拟机]]></title><link>https://blog.csdn.net/janbar/article/details/148910476</link><guid>https://blog.csdn.net/janbar/article/details/148910476</guid><author>janbar</author><pubDate>Wed, 25 Jun 2025 14:40:00 +0800</pubDate><description><![CDATA[后续只需要执行./qemu.sh就可以进入系统。]]></description><category></category></item><item><title><![CDATA[层序遍历重建二叉树，绘制二叉树图片]]></title><link>https://blog.csdn.net/janbar/article/details/147642488</link><guid>https://blog.csdn.net/janbar/article/details/147642488</guid><author>janbar</author><pubDate>Mon, 28 Apr 2025 14:38:00 +0800</pubDate><description><![CDATA[生成的结果二叉树一般也只会给出完全层序遍历，无法直观的感受二叉树实际情况，因此我编写代码将二叉树对象生成svg图片，刷二叉树相关题目更清晰直观了。在力扣刷二叉树相关题目时，输入一般都是完全层序遍历，我习惯在自己电脑上调试代码，因此才编写下面代码将完全层序遍历数据重建二叉树对象。]]></description><category></category></item><item><title><![CDATA[为ssh服务器添加2fa认证，一个python脚本全搞定]]></title><link>https://blog.csdn.net/janbar/article/details/140057536</link><guid>https://blog.csdn.net/janbar/article/details/140057536</guid><author>janbar</author><pubDate>Fri, 28 Jun 2024 16:00:00 +0800</pubDate><description><![CDATA[服务器ssh如果被别人登陆就是一场灾难，所以我研究了ssh认证，我发现Google Authenticator PAM可以实现ssh的2fa认证，但是安装和配置比较麻烦。因此我用python实现了ssh的2fa认证。考虑到很多Linux服务器默认安装python，所以我用py脚本，并只使用标准库，不需要安装第三方py库，方便部署。

首先保存如下脚本到文件：/bin/login，设置执行权限：c...]]></description><category></category></item><item><title><![CDATA[go语言实现扫雷]]></title><link>https://blog.csdn.net/janbar/article/details/137277044</link><guid>https://blog.csdn.net/janbar/article/details/137277044</guid><author>janbar</author><pubDate>Sat, 02 Mar 2024 22:13:00 +0800</pubDate><description><![CDATA[源码如下
package main

import (
	"archive/zip"
	"bytes"
	"encoding/base64"
	"fmt"
	"image"
	"image/color"
	"image/png"
	"log"
	"math/rand"
	"strings"
	"time"

	"github.com/hajimehoshi/ebiten/v2"
	"github...]]></description><category></category></item><item><title><![CDATA[go mod tidy总是安装最新依赖，如何查找哪个模块导致某个包安装最新依赖，提供一个小工具...]]></title><link>https://blog.csdn.net/janbar/article/details/133985013</link><guid>https://blog.csdn.net/janbar/article/details/133985013</guid><author>janbar</author><pubDate>Sat, 21 Oct 2023 14:38:00 +0800</pubDate><description><![CDATA[安装: go install github.com/jan-bar/interesting/findModVer@latest
执行：findModVer d:\myproject
结果如下图所示：

根据结果可以找到哪个依赖导致google.golang.org/grpc v1.45.0使用了这个版本，这样每次执行go mod tidy会自动修改该模块到v1.45.0版本。我看了下github...]]></description><category></category></item><item><title><![CDATA[golang对于[]byte数组转string进行比较的优化]]></title><link>https://blog.csdn.net/janbar/article/details/131199639</link><guid>https://blog.csdn.net/janbar/article/details/131199639</guid><author>janbar</author><pubDate>Tue, 13 Jun 2023 21:16:00 +0800</pubDate><description><![CDATA[当需要比较两个[]byte数组是否相等时有好几种方案，下面可以看出前三种方案都是优化过的，效率高的方案。
package main

import (
	"bytes"
	"crypto/rand"
	mr "math/rand"
	"testing"
)

func StringEqual(n int, f func(a, b []byte) bool) {
	buf := make([]by...]]></description><category></category></item><item><title><![CDATA[gocv分析图像玩游戏]]></title><link>https://blog.csdn.net/janbar/article/details/130313563</link><guid>https://blog.csdn.net/janbar/article/details/130313563</guid><author>janbar</author><pubDate>Sat, 22 Apr 2023 12:27:00 +0800</pubDate><description><![CDATA[项目
项目仓库：goOpenCv
连连看

麻将
单机版麻将

腾讯麻将小程序

总结
通过学习opencv图像匹配，完成游戏作弊，感觉没用的知识又增加了。

]]></description><category></category></item><item><title><![CDATA[golang蒙特卡洛树算法实现五子棋AI]]></title><link>https://blog.csdn.net/janbar/article/details/129906276</link><guid>https://blog.csdn.net/janbar/article/details/129906276</guid><author>janbar</author><pubDate>Sat, 01 Apr 2023 20:48:00 +0800</pubDate><description><![CDATA[已经实现蒙特卡洛树算法的通用逻辑，只需要对应结构体实现相关接口就可以直接使用该算法。
优化算法主要优化GetActions生成下一步动作，要尽可能少，去掉无意义的动作。
以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。
package main

import (
	"fmt"
	"math"
	"math/rand"
	"strings...]]></description><category></category></item><item><title><![CDATA[PC微信3.9.0.28版小程序https抓包]]></title><link>https://blog.csdn.net/janbar/article/details/129828805</link><guid>https://blog.csdn.net/janbar/article/details/129828805</guid><author>janbar</author><pubDate>Tue, 28 Mar 2023 17:56:00 +0800</pubDate><description><![CDATA[下载工具
Charles
PC微信
安装证书







设置代理


微信使用代理

分析抓包
抓到需要的包

复制curl命令，用于模拟请求，和分析后编写代码用


]]></description><category></category></item><item><title><![CDATA[golang端口重用]]></title><link>https://blog.csdn.net/janbar/article/details/129706607</link><guid>https://blog.csdn.net/janbar/article/details/129706607</guid><author>janbar</author><pubDate>Wed, 22 Mar 2023 11:48:18 +0800</pubDate><description><![CDATA[服务器重启进程时总会提示端口已经被绑定的报错，直到重试好几次才能重启成功。这是因为端口尚未完全关闭的情况，这时如果不设置端口重用，则无法完成绑定，因为端口还处于被别的套接口绑定的状态之中。允许启动一个监听服务器并捆绑其众所周知端口，即使以前建立的将此端口用做他们的本地端口的连接仍存在。这通常是重启监听服务器时出现，若不设置此选项，则bind时将出错。允许在同一端口上启动同一服务器的多个实例，只要每个实例捆绑一个不同的本地IP地址即可。]]></description><category></category></item><item><title><![CDATA[四川麻将判断胡牌，找到要听的牌]]></title><link>https://blog.csdn.net/janbar/article/details/129341976</link><guid>https://blog.csdn.net/janbar/article/details/129341976</guid><author>janbar</author><pubDate>Sat, 04 Mar 2023 21:01:00 +0800</pubDate><description><![CDATA[详细代码如下：
package main

import (
	"fmt"
	"strings"
)

func main() {
	s := "1w1w2d2d3d3d4w4w3w3w7d7d8d8d"
	mj := InitMahjong(s)
	mj.Print()
	fmt.Println(mj.Win())

	fmt.Println("------------------------...]]></description><category></category></item><item><title><![CDATA[检查Chrome收藏夹链接是否有效]]></title><link>https://blog.csdn.net/janbar/article/details/128860143</link><guid>https://blog.csdn.net/janbar/article/details/128860143</guid><author>janbar</author><pubDate>Thu, 02 Feb 2023 15:03:00 +0800</pubDate><description><![CDATA[检查Chrome浏览器标签，通过Chrome导出的收藏夹文件，挨个使用http get请求检查url是否有效
package main

import (
	"bufio"
	"errors"
	"flag"
	"fmt"
	"io"
	"net"
	"net/http"
	"net/url"
	"os"
	"strings"
	"sync"
	"time"
)

func main() {
	...]]></description><category></category></item><item><title><![CDATA[判断go对象是否能直接赋值进行深拷贝]]></title><link>https://blog.csdn.net/janbar/article/details/128796374</link><guid>https://blog.csdn.net/janbar/article/details/128796374</guid><author>janbar</author><pubDate>Sun, 29 Jan 2023 15:36:00 +0800</pubDate><description><![CDATA[在golang中可以使用a := b这种方式将b赋值给a，只有当b能进行深拷贝时a与b才不会互相影响，否则就需要进行更为复杂的深拷贝。
下面就是Go赋值操作的一个说明：
Go语言中所有赋值操作都是值传递，如果结构中不含指针，则直接赋值就是深度拷贝；如果结构中含有指针(包括自定义指针，以及切片，map等使用了指针的内置类型)，则数据源和拷贝之间对应指针会共同指向同一块内存，这时深度拷贝需要特别处理...]]></description><category></category></item><item><title><![CDATA[一种安全加密文件的方式，文件可以实现自校验，防止文件损坏和篡改]]></title><link>https://blog.csdn.net/janbar/article/details/128389135</link><guid>https://blog.csdn.net/janbar/article/details/128389135</guid><author>janbar</author><pubDate>Tue, 20 Dec 2022 17:16:00 +0800</pubDate><description><![CDATA[项目地址
这个项目是很久以前的，当时go能力有限，写的不尽人意。刚好最近有加密文件的需求，所以就完善了相关逻辑。
之前的方案还依赖 Seek(offset int64, whence int) (int64, error) ，看了go很多源码，都说Seek不可靠。所以目前改为纯Reader和Writer这两种接口，当然文件的结构也必须改变。
因为自带hash校验，因此内容连一个字节都不能被篡改，...]]></description><category></category></item><item><title><![CDATA[【git】报错unsafe repository xxx is owned by someone else解决方法]]></title><link>https://blog.csdn.net/janbar/article/details/128314588</link><guid>https://blog.csdn.net/janbar/article/details/128314588</guid><author>janbar</author><pubDate>Wed, 14 Dec 2022 10:28:00 +0800</pubDate><description><![CDATA[忽略单个目录

git config --global --add safe.directory D:/www/your-project
git config --global --add safe.directory D:/www/other-project

忽略全部目录

git config --global --add safe.directory "*"

修改window文件夹的...]]></description><category></category></item></channel></rss>