5 美元开通 Google AI One Pro
主要原理通过谷歌的学生认证, 实现部分地区的低价Pro订阅 主要步骤前置内容 日本地区节点 Google账号 非中国大陆发行的Visa卡或万事达卡 1. 准备一个日本地区的代理这个很重要, 在我开通学生优惠的时候发现进去 https://one.google.com/ai-student, 如果计价单位不是日元是不行的. 如何做呢, 就是不论你是手机端还是网页端, 都使用日本代理, 最好是开全局, 这样比较稳健. 这边看的主要还是你的支付账单的方式是否是日本地区, 当然别的低价区「例如土耳其区」也是可以的, 但是日本地区的支付不会限制支付方式, 即使你用U卡支付也是可以的, 如果是土区的话就可能难以添加支付方式. 2. 验证学生身份, 通常使用sheerid认证通常使用sheerid认证, 这个认证过程需要你提供一些个人信息, 例如你的姓名, 学号等, 这些信息会被用来验证你的身份. 我自己在认证sheerID的时候感觉有点难, 所以就直接在tg上找了一个bot认证了. 大概5元左右. 如果你已经有Jio订阅的AI One Pro, 打开这个链接 https://one.g...
软件开发 SOLID 原则
在AI日渐强大的2026年,我发现有必要再认真学习一下SOLID这五条原则,因为人基本上不怎么写代码了,所以学会review代码就更重要了,在软件工程中SOLID 这一套经过时间沉淀的规则就有其存在的必要了。 认识一下SOLID单一职责原则SRP 单一职责原则 (Single Responsibility Principle) 指的是一个类或者模块应该只负责一个功能,而不是多个功能。 开放封闭原则OCP 开放封闭原则 (Open Closed Principle) 指的是一个软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。 里氏替换原则LSP 里氏替换原则 (Liskov Substitution Principle) 指的是子类应该能够替换父类,而不影响程序的正确性。 这个很好理解,基本上只要是在面向对象语言中,子类都应该能够替换父类。 依赖倒置原则DIP 依赖倒置原则 (Dependency Inversion Principle) 指的是高层模块不应该依赖于低层模块,两者都应该依赖于抽象。 例如,查询用户接口本身需要依赖于底层的数据库查询接口,而不是直接依...
LeetCode 189. 轮转数组
189. 轮转数组题目链接 LeetCode 189题 “轮转数组” (Rotate Array) 是一个非常经典的算法题。通常所谓的“数学解法”主要指代两种 $O(1)$ 空间复杂度的解法: 环状替换 (Cyclic Replacements):这是最硬核的数学解法,涉及到数论中的“最大公约数” (GCD)。 数组翻转 (Array Reversal):这是最巧妙的解法,利用了翻转的性质。 1234567891011121314class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ k = k % len(nums) def rev(nums: List[int], start: int, end: int) -> None: ...
Docker 中 CMD 和 Entrypoint 的区别
Docker 中的 CMD 和 ENTRYPOINT 经常让人迷糊,尤其是同时使用时,更容易出现“命令不按预期执行”“容器秒退”等问题。理解它们的本质差异,是写好 Dockerfile 的关键。 核心理解:谁是“主角”,谁是“默认参数”在 Docker 里,可以简单地这样理解: ENTRYPOINT:定义“这个镜像本质上是干什么的”,也就是固定的主命令 / 主进程。 CMD:为这个镜像提供默认参数,或者在没有 ENTRYPOINT 时,提供默认要执行的命令。 当二者同时存在时: Docker 实际运行的是:ENTRYPOINT + CMD 且 CMD 会被当成是 ENTRYPOINT 的参数,而不是两个独立执行的命令。 所以: 12ENTRYPOINT ["top"]CMD ["curl", "--help"] 真实执行的是: 1top curl --help 而不是先执行 top 再执行 curl --help,这也是许多初学者踩坑的地方。 三种经典写法与执行效果Docker 支持两种语法风格:...
如何压测 API 接口?—— 使用 wrk 工具进行高性能压测
Performance Testing with Apache Bench | by Pankaj Gupta | Medium Top 9 Methods for API Testing in Java | Comprehensive Guide ab - Apache HTTP server benchmarking tool - Apache HTTP Server Version 2.4 性能测试工具 wrk 使用教程 - 犬小哈 - 博客园 wrk 是一款现代、轻量级且极高性能的 HTTP 基准测试工具(Benchmark Tool)。它最显著的特点是利用了异步事件驱动架构(如 Linux 的 epoll 或 macOS 的 kqueue),能用极少的线程在单机上产生巨大的并发压力。 简单来说,它是后端开发者用来压测接口 QPS (每秒查询率) 和 Latency (延迟) 的神器。 为什么用 wrk 而不是 Apache Bench (ab) 或 JMeter? 性能更强:wrk 使用非阻塞 I/O,能比 ab 产生更高的并发,更能榨干服务器性能。 支持 L...
WebDAV 入门指南:把云盘挂载成本地硬盘
WebDAV(Web Distributed Authoring and Versioning)是一个非常经典且实用的协议。 简单一句话总结:它把远程的云端存储,通过 HTTP 协议,“映射”成你电脑上的一个本地硬盘。 不用下载文件就能直接修改、播放视频,就像操作你 D 盘里的文件一样。 1. WebDAV 是什么原理?WebDAV 是 HTTP 协议的扩展。 基础 HTTP:通常只支持 GET(获取网页/文件)和 POST(提交数据)。 WebDAV 的魔法:它给 HTTP 增加了几个新动词(Method): PROPFIND:查询文件属性(比如文件名、大小、目录结构)。 MKCOL:创建文件夹。 COPY / MOVE:复制或移动文件。 LOCK / UNLOCK:文件加锁/解锁(防止两个人同时改一个文件冲突)。 工作流程: 你的操作系统(客户端)发起一个 HTTP 请求:“给我看看目录里有啥”。 WebDAV 服务器返回一段 XML 格式的数据,描述文件列表。 操作系统把这段 XML 渲染成你熟悉的“文件夹图标”。 当你双击...
LeetCode 3144. 分割字符频率相等的最少子字符串
给你一个字符串 s ,你需要将它分割成一个或者更多的 平衡 子字符串。比方说,s == “ababcc” 那么 (“abab”, “c”, “c”) ,(“ab”, “abc”, “c”) 和 (“ababcc”) 都是合法分割,但是 (“a”, “bab”, “cc”) ,(“aba”, “bc”, “c”) 和 (“ab”, “abcc”) 不是,不平衡的子字符串用粗体表示。请你返回 s 最少 能分割成多少个平衡子字符串。 样例: 输入:s = “fabccddg”输出:3解释:我们可以将 s 分割成 3 个子字符串:(“fab, “ccdd”, “g”) 或者 (“fabc”, “cd”, “dg”) 。 按照动态规划的思路来看, 把问题分割成一个个的子问题 假设dp[i] 表示s[i..]平衡子字符串的最少个数, 那么dp[i-1] = min(dp[i] + 1, if 可以得到平衡子字符串 dp[i+1], dp[i+2], .. dp[n]) 问题在于如何判断s[i..j] 是否是一个平衡子字符串 实现一个check函...
LeetCode 3134. 找出唯一性数组的中位数
给你一个整数数组 nums 。数组 nums 的 唯一性数组 是一个按元素从小到大排序的数组,包含了 nums 的所有非空子数组中不同元素的个数。 换句话说,这是由所有 0 <= i <= j < nums.length 的 distinct(nums[i..j]) 组成的递增数组。 其中,distinct(nums[i..j]) 表示从下标 i 到下标 j 的子数组中不同元素的数量。 返回 nums 唯一性数组 的 中位数 。 注意,数组的 中位数 定义为有序数组的中间元素。如果有两个中间元素,则取值较小的那个。 说实话题目意思都没看懂 输入:nums = [3,4,3,4,5] 输出:2 解释: nums 的唯一性数组为 [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3] 。唯一性数组的中位数为 2,因此答案是 2 。 结合样例是大概看懂了: 题目的意思是说, 给定nums数组, 然后计算唯一性数组的中位数, 而唯一性数组要经过排序 原本对于nums=...
2024-08-24 思考
思考自己要做些什么才能改变自己,让自己变成自己的喜欢的样子呢? 我想变成什么样子的人呢,我自己天天想着有这种习惯那种习惯,总喜欢说从小事情开始做起,忽略了大事情, 我也是一个很矛盾的人。 我似乎也是一个完美主义的人,为什么要用似乎,是因为我甚至不愿意承认我是一个完美主义的人 我也是一个固执的人, 我不认为我是一个懒惰的人 我是一个理性的人还是一个感性的人?
2024-07-31 思考
晚上的一点小小的思考总结这里的总结不是说我想总结什么东西, 而是是我对”总结”这一行为的思考 为什么会有这样的思考其一是因为晚上睡不着, 开始思考了, 思考过程中就觉得这几天基本上啥都没做, 从21号回家到现在已经10天了, 什么关键的事情都没有完成, 和我想要的目标差距太大了 其二是对彼女回家进行考研复习的一点点思考, 看着她打算回家复习, 但是到现在也看着基本上没啥进展, 由此想到了自己这几天的进展, 我这几天也是基本上啥都没做, 想着我们两者是否有一些相同点. 当你发现自己的钱花的太快了的时候你还会回头看一看自己的账单, 同样的类比, 当你发现自己的时间虚度光阴的时候, 你也必须回头看一看自己这几天到底在干什么, 才能有所改变, 这就需要”总结”这一行为 什么时候该总结 当你觉得开始虚度光阴的时候, 你就有必要思考这几天你到底再做什么, 当没有人监督你的时候, 你就需要自己监督自己, 这就需要”总结”这一行为 当外界没有压力的时候, 你就需要自己给自己一些压力, 这同样也需要”总结”这一行为 怎么总结就我现在来看, 以我现在的认知, 应该只能停留再每天 或者每几天总结一下...







