Lin Minquan's Blog

体验科技改变生活

Building a Pytest Enabled Docker Image Using Python Base Image

尝试做一个基于 Python 的 Docker 镜像,并在其中安装 Pytest 需要的依赖。 Windows 系统需要安装 WSL2 和 Docker Desktop。 在项目的根目录建一个叫 Dockerfile 的文件,内容如下: FROM python:3.12.11-slim RUN apt-get update && apt-get install -y curl unzip wget # Install Java (required for Allure) RUN apt-get install -y default-jre-headless # Install Allure Report RUN wget https://github.com/allure-framework/allure2/releases/download/2.32.0/allure_2.32.0-1_all.deb && \ dpkg -i allure_2.32.0-1_all.deb || true && \ apt --fix-broken install -y && \ rm allure_2.32.0-1_all.deb # Install Aliyun OSS CLI RUN curl https://gosspublic. 阅读更多 →

3HK 储值卡延长有效期的逻辑

3HK 储值卡有一点很讨厌,它并不是直接在当前剩余的有效期基础上延长,如果剩余的有效期已经超过了延长的天数,那么延长的天数就会被忽略。 例如,如果当前剩余的有效期是 100 天,而你充值了 20 港币,那么你的有效期不会延长 30 天,而是保持在 100 天。 假设我是 2025 年 7 月 1 日充值两百多块钱,它会在提前就提醒我充值,例如可能是 2026 年 6 月 20 日就提醒了。 那我如果再充值两百多港币,那么有效期只会延长到 2027 年 6 月 20 日,而不是 2027 年 7 月 1 日。 金额范围 (港币 HKD) 延长天数 $20 - $49.9 30日 $50 - $99.9 90日 $100 - $199.9 180日 $200 或以上 365日 阅读更多 →

第二次日本行的感受

还是很干净。垃圾桶还是很少。 厕所完胜香港。 二手烟控制得很好,抽烟的人比香港少。 东京人流不多。 晚上在东京看到一个流浪汉。 火车上有个外国人抱着小孩,但没人让座。我后来看到有空位时,叫他过去坐。 物价很贵。 新干线很快。但贵。 运气很好,看到了富士山。 富士山附近的水比较凉。 河口湖不错。风大,冷。 小城市人很少。 Visa/Master 的实体卡还是要带。 没有见到像永辉这样的大超市。 有的地方不支持港版的微信支付和支付宝。 便利店有看到可以自己付款的机器,但更多是活人收银。 外面吃饭有的感觉咸一些。 阅读更多 →

怎样在香港申请日本多次签证

VFS Global 预约邮件回执。要打印。 6个月内证件照(3.5*4.5,白底)。我是去深圳时,顺便在深圳拍的,25人民币,工作人员有修了下。 香港身份证原件、复印件。复印件要一比一打印。只需要正面。 护照原件、复印件。个人信息页,以及那一页的前一页,反正放在打印机上扫一下这两个一起打印出来了。以及之前去过日本的上陆许可贴纸页。我前一次去日本是用的旧护照,新护照上有一页是写本护照持有人之前持有的旧护照的号码,这也需要打印。 港澳通行证原件、复印件。要一比一复印,我打印的比例太大了,工作人员重新复印了,没收我钱。背面应该也是需要的。网友说如果通行证后面的日期不清晰的话,还需要去出入境小程序上打印。 香港逗留签 e-visa。 银行流水(多次6个月,可用中文),用香港银行的月结单。 赴日签证申请表(领事馆官网下载,可以电子填写手写签名)。 多次赴日理由说明书,网上找了个参考后改了改,网友说要有护照号,名字,日期写当天的日期,我用的是简体中文。 640 港币,2025年已经可以用 Visa, Mastercard,银联 付款了。 可以将护照快递或者亲自去取,我选择了快递,快递公司是 HK Express,快递费 78 港币。 网友说,以上需要签名的地方,都要尽量跟护照上的签名一致。 网友说,香港的 e-visa 上有“持证人可在 xxx 或以前首次进入香港”的,需要小白条。小白条丢了可以去入境处补。 如果要 walk-in 的话,建议早上 6 点到。 如果不差钱的话,可以加钱在 VFS 上预约,好像是两百多。 例如是星期三去办理的话,一般是下周三办好,下午3点左右会收到 email。星期四快递就可以寄到了。不需要本人签收,收件地点有人收就行了。没人收的话,应该会在你邮箱里放个通知,然后去指定邮局取件。 如果材料齐全是很快的,大概8:20左右工作人员就开始检查材料了,我是第4个,8点四十几分就办好了。 办好时,会给一个单据,可以在 VFS Global 的网站上查进度。但是我没查询成功,那个网站太垃圾了,输验证码一直报错。 参考资料:http://xhslink.com/a/66ZuAY4e2YJ6 阅读更多 →

怎样对 EMQX 进行压力测试

在阿里云香港区,开几台 2 核 4G 的抢占式实例(旧称竞价实例)的机器,安装 docker,然后用 emqx-bench 压测。 docker run -it emqx/emqtt-bench:latest conn -c 30000 -i 10 -h IP-ADDRESS -p 1883 docker run: 运行一个 Docker 容器。 -it: 以交互模式运行容器并连接终端。 emqx/emqtt-bench:latest: 使用 EMQX 提供的 emqtt-bench 工具的最新版本镜像。 conn: 指定操作类型,这里是 连接测试。 -c 30000: 指定客户端数量,这里是模拟 30,000 个客户端连接。 -i 10: 表示每个客户端的连接间隔时间为 10 毫秒。 -h IP-ADDRESS: 指定 MQTT 服务器的主机地址(IP 地址)。 -p 1883: 指定 MQTT 服务器的端口号。 -i 10 指定客户端之间的连接时间间隔为 10 毫秒(ms),即每模拟一个客户端,会等待 10 毫秒后再模拟下一个客户端连接。这对于分布式压力测试非常重要,因为它可以防止一次性创建大量连接而导致服务器瞬间过载。也就是每秒会有 100 个客户端连接到服务器。 在压测过程中,可以通过查看服务器的 CPU 使用率、内存使用率、网络带宽等指标来判断服务器的性能是否达到预期。 阅读更多 →

修复海康威视摄像头尾线短路

老家的摄像头有一个坏掉了,海康威视的,在萤石云 app 上看不了了。找了个梯子爬上去看了下,它的尾线跟水晶头接合的地方,居然是裸露的,而且还有点烧焦的痕迹,看起来是下雨天短路了。至于为什么会裸露,可能是因为风吹雨淋,也可能是当时的师傅没接好。 一开始是觉得可能得换摄像头了,只是不确定我现在用的摄像头的型号,因为摄像头后面的标签已经看不清了,在萤石云 app 里也看不到型号。后来发现,可以在硬盘录像机里看到型号。后来想,要不把尾线和网线接头剪掉,直接接在一起,看看能不能用。于是就动手了。小红书上有各种接法,有一种专门用来夹线的小夹子,或者用电烙铁,但我都没有,只能直接接在一起了。 尾线里的8根线跟网线里的8根线的颜色是不一样的,小红书上有教程,搜“海康威视 尾线”。 难的地方是,网线里的线很细,稍微用力就断了,我后来用的是打火机。 费了很长时间终于搞好了,打开萤石云 app,看到了画面,很开心,省了几百块钱。 阅读更多 →

Deploy Mysql 8.0.36 via Docker in Ubuntu 22.04

走了些弯路,记录下。 用 docker compose 部署的,docker-compose.yml 内容如下: version: '3' services: db: image: mysql:8.0.36 restart: always container_name: mysql8 command: --max_connections=500 environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - /opt/docker/mysql8.0.36/datadir:/var/lib/mysql - /opt/docker/mysql8.0.36/config/my.cnf:/etc/mysql/my.cnf ports: - 3306:3306 MySQL 8.0.36 镜像的选择,在 https://hub.docker.com/_/mysql,选择了 8.0.36。想改它的 max_connections,后来发现进它的 container 里,vi 命令无法使用,想改一下 my.cnf 都改不了。网上说用 apt 命令安装下,但在这 container 里,连 apt 命令也用不了。后来注意到有 8.0.36-debian 版本,后者应该是基于 debian 的,试了下,可以用 apt 命令。但是在阿里云,apt 命令无法下载。 最后,用了上面的 docker-compose.yml,在宿主机上,/opt/docker/mysql8.0.36/config/my.cnf 内容如下: [mysqld] character-set-server=utf8mb4 default-time-zone='+8:00' innodb_rollback_on_timeout='ON' max_connections=500 可以不用映射 /etc/mysql/my.cnf,直接在 command 里加上 --max_connections=500 也可以。 当有多个 command 时,用数组形式,如: 阅读更多 →

Nacos as Config Center of Java Sprint Boot Project

环境: Nacos server v2.2.3,在本地跑的。 SpringBoot v2.6.14 Java v1.8 源码: https://github.com/linmq/java-examples/tree/main/nacos-demo 我一直想知道,到底一个在运行的项目,用的是本地的配置,还是 nacos 上的配置。 2023-12-03 21:45:37.629 WARN 33612 --- [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[myNacos.properties] & group[DEFAULT_GROUP] 2023-12-03 21:45:37.629 INFO 33612 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-myNacos.properties,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-myNacos,DEFAULT_GROUP'}] 2023-12-03 21:45:37.632 INFO 33612 --- [ main] c.e.nacosdemo.NacosDemoApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-03 21:45:37. 阅读更多 →

Set Up Wireguard Server on Ubuntu 22.04

为了访问 ChatGPT,想用固件的 IP 来访问它,想搭个 WireGuard 来用。 一个关键点是,要在云服务器的后台系统的 VPS 防火墙,将 51820 的端口开起来。 其它的步骤参考下面的文档就好了。 Digital Ocean 的教程太长太复杂了,第二个教程简单一些,两者结合起来看。 参考链接: How To Set Up WireGuard on Ubuntu 22.04 How to Set Up WireGuard VPN on Ubuntu 20.04 阅读更多 →