相关信息

gbk编码踩坑记录

背景

工作中,公司内部方法调用的过程中,提示编码无法识别相关的错误提示

解决

部分代码case

py
params = mcpack.dumps(pack, "v2", "gbk") # 这里的功能是对参数进行gbk的编码处理

问题原因是gbk的编码对于某些字符会无法识别,需要修改为gb18030 就可以解决问题

py
params = mcpack.dumps(pack, "v2", "gbk") # 这里的功能是对参数进行gbk的编码处理

相关信息

广度优先搜索学习

以下代码段摘录自算法图解中,可以很好的理解广度优先算法

python
def search(name): search_queue = deque() # 创建队列用于 BFS search_queue += graph[name] # 将起点的邻居加入队列 searched = [] # 用于记录已检查过的人 while search_queue: # 当队列不为空时循环 person = search_queue.popleft() # 从队列左侧取出下一个人 if person not in searched: # 只检查未检查过的人 if person_is_seller(person): # 如果这个人是芒果卖家 print(person + " is a mango seller!") return True # 找到后返回 True else: search_queue += graph[person] # 将此人的邻居加入队列 searched.append(person) # 标记为已检查 return False # 队列为空仍未找到,返回 False

链表算法相关实现

链表反转

go
func reverseList(head *ListNode) *ListNode { var prev *ListNode curr := head for curr != nil { next := curr.Next curr.Next = prev prev = curr curr = next } return prev }
2025-06-270

相关信息

算法学习

为什么学习算法

  • 算法是解决问题的核心能力
  • 提升思维能力(抽象、建模、逻辑推理)
  • 职场竞争力 & 面试必考
  • 写出高质量、高性能的程序
    • 写爬虫 → 如何快速去重(哈希 + 滑动窗口)
    • 日志分析 → 需要排序、聚合、图结构
    • 服务降级 → 用堆来快速取 topN
    • 实时推荐 → 使用布隆过滤器、Trie、倒排索引等算法结构
2025-06-260

从代码变更开始到发版/上线,需要经历编译构建、不同类型的测试(准入/准出)、发布、上线部署/发版等一

背景

  • python项目中自定义的模块在python脚本执行的时候,出现提示module name加载不到的问题

解决办法

python
import sys import os BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")) sys.path.append(BASE_DIR)

代码解释:将项目的根目录添加到Python的模块搜索路径中。这样做的目的是让Python能够在运行时找到我们项目中的模块。

  • 第一步就是获取当前文件所在的的根目录(当前目录的上两级目录)的绝对路径
  • 将绝对路径记载到python的搜索路径当中

通过nginx搭建mysql代理

背景

工作中,本地mysql工具无法访问远程的mysql数据库,但是开发机A可以访问,同时本地可以访问开发机A, 调研后,采用了nginx的stream进行mysql的请求转发

采用nginx的原因

  • mysql连接为tcp的方式,素以需要用到nginx的sream模块进行转发

nginx安装

  1. 下载nginx安装包,并解压
  2. 下载pcre 安装包,并解压
bashc
tar zxf nginx-1.23.3.tar.gz tar zxf pcre2-10.42.tar.gz
  1. 进入nginx文件夹中,执行编译
bash
cd nginx-1.23.3 ./configure --prefix=/home/work/demo-nginx --with-cc=/opt/compiler/gcc-10/bin/gcc --with-pcre=/home/work/nginx-build/pcre2-10.42 --with-stream --with-http_ssl_module
  1. 执行安装 make -j$(nproc)
  2. 备注
  • 检测nginx是否编译成功:cd objs/ 查看是否有makeFile文件
  • 安装后,/home/work/demo-nginx/sbin/nginx -v 检测是否安装成功

相关信息

mysql踩坑

踩坑背景

  • 想要设置mysql为远程可访问,设置完user后,发现本地可访问,远程一直无法访问

原因

  • 内网看到一篇文章,最终才发现是因为内网环境,无法直接使用3306端口,修改为其他端口,才能进行访问