当前为子规入梧桐的博客内容。查看全部
  • z1gui1
    GCC 为:Gemini CLI (Google)Codex CLI (ChatGPT)Claude code CLI (CC)第一步、终端安装 GCC CLI此步骤安装内部服务,可理解为 RPC 请求的客户端安装 Codex CLI使用 npm 安装npm install -g @openai/codex使用 Homebrew 安装 (macOS)brew install --cask codex或从 GitHub 下载二进制文件安装 Claude Code CLI打开命令提示符(以管理员身份运行)或 PowerShell,执行以下命令:npm install -g @anthropic-ai/claude-code验证安装:claude --version安装 Gemini CLI打开命令提示符或 PowerShell,执行以下命令:npm install -g @google/gemini-cli注意:如果遇到权限问题,请确保以管理员身份运行命令提示符。第二步、配置代理此步骤主要跳过会员权限,使用第三方或公益站 API Key方式一:CC Switch (推荐)下载 cc swi…
  • z1gui
    一场并不昂贵,却足够深刻的教训写下这篇文章的时候,事情已经过去一个多月了。但那段经历依旧清晰,像是刚发生不久——有些细节甚至比当时更清楚。关注我日常更新的人,可能还记得我之前写过一篇周记(后来觉得太矫情,删了),提到 Amelia 出院的事。这次生病来势汹汹,她在医院修养了将近二十天。Amelia 从小体弱,容易生病,我一直觉得这是常态,并没太放在心上。直到我妈提醒了一句:” 会不会是碰到了不干净的东西?要不要请个东西护一护。”问题,正是从这里开始的。起因:一次 “ 看似合理 “ 的决定那段时间,我恰好在 L 站刷到不少慧应子写的帖子,内容多是关于罗天大醮、道教仪式之类的科普。再加上 L 站一贯给人的感觉是真诚、友善、理性,我潜意识里就降低了警惕。现在回头看,我不是被他说服的,而是被环境 “ 背书 “ 了。我在 L 站私信他,问能不能给 Amelia 求个护身的东西。他让我加微信。加上之后,我简单说明了 Amelia 体弱、常生病的情况,他建议请一张平安符。符纸本身不值钱,开光 400 元。400 元在我的心理预期内,于是我直接转了账。他说,开光需要生辰八字。我一时记不清 Amelia…
  • z1gui
    Planet 项目是 V 站站长 Livid 很早之前启动的项目。最近 V 站也出了 $V2EX 币,Livid 也一直在推动区块链和 Web3 在 V 站的快速应用。跟着这个趋势,我也学习了很多这方面的知识。Planet 是一款免费的开源 macOS 应用程序,用于发布和关注 Web 内容。它不依赖于中央服务器或服务,而是使用 IPFS 进行点对点内容分发。您可以将您的内容链接到以太坊名称(例如,planetable.eth),以便其他人可以使用您的 .eth 名称在 Planet 上关注您,或通过 eth.limo 或 eth.sucks 等网关访问您的 ENS 网站。由于 IPFS 和 ENS 都是去中心化的,因此 Planet 可以帮助您以去中心化的方式构建和关注网站。了解到 Planet 的特性以及原理后,我发现 Planet 很适合做日志,随记,心情,备忘录的 Posts。正好我当前 Web2 的博客网站上没有类似的功能,索性把 Planet 的 Web 集成到博客网站上。我火速给自己搭建了 Web,并在此 Web 上链接了 Web3 的域名。你可以点击导航栏上的『碎碎念�…
  • z1gui
    该篇游记仅记录玉皇庙、关帝庙、晋城博物馆以及原本博物馆相关内容,偏向历史爱好者。起因是 Amelia 在小红书上看到,郑州去山西晋城的大巴来回免费,且 2.5~3 小时就能到。所以我们就打算当天去,当天回。晋城是全国文明城市、平安中国建设示范市、中国优秀旅游城市、国家森林城市、国家园林城市、国际花园城市,是联合国老龄所授予的 “ 世界康养示范城市 “。地处北纬 35 度黄金宜居带,平均海拔 800 米左右,太行、太岳、中条三山环抱,沁河、丹河两河纵流;冬无严寒、夏无酷暑,年均气温 11℃,夏均气温 22℃,旅游舒适期长达 7 个月,每年夏季有 30 万游客在晋城避暑康养;年均降水量 680 毫米,是华北地区相对富水区;森林覆盖率 40.3%,城市绿化覆盖率 47.5%、人均公园绿地面积 18.8 平方米,负氧离子浓度最高可达 45000 个/cm³,是名副其实的 “ 天然氧吧 “。——以上摘自晋城人民政府门户网站。买票和预约车票可以直接在微信公众号上买,郑州去晋城在豫州行微信公众号上买,晋城回郑州则在大美太行晋城游。郑州有多个客运站都可以到晋城,如果家附近的客运站没票,可以切换别的客运…
  • z1gui
    前言2025 年初,Deepseek 爆火。随之而来,就是各种 AI 相关的技术如同雨后春笋般涌现。其中关于 AI 编程方向,各家大厂各显神通。早在 2024 年初,我就开始接触 AI 编程,一开始就使用了 Cursor。当我熟悉了它的操作之后,惊叹于它输出代码的质量。随后,我向身边朋友,同事极力推荐 Cursor。本质上,Cursor 是一个集成 AI 能力的 VS Code 编辑器。尽管后来尝试各个大厂的不同的 AI 编程工具,例如:通义灵码,Windsurf,Trae 等,甚至自己搭建平台调用 Deepseek Api 完成编程辅助工作,但坦言来讲,体验都不如 Cursor。Cursor 收费模式当然,Cursor 并不是免费的。它的收费方式是订阅制,订阅价格在 $20 / 月。其中包含 500 次快请求,以及不限次数的慢请求。说实话,每月 140 块钱确实让人望而却步。Cursor 相对新用户还是有很好的政策。新用户首月 14 天 150 次快请求,次月及以后每月 50 次快请求,用完就不能再使用了。理论上有足够多的账号,也可以白嫖。在没有教育优惠前,我就是用两个账号的试用和免…
  • z1gui
    前言大家好,我是子规,很高兴能够在这里和大家相遇。本篇文章记录该站建立的初衷、建站过程以及在过程中的思考。为什么建立这个网站在此网站建立之前,我通常在 CSDN 上写作。但随着时间推移,我开始发现,CSDN 上的文章,Although it is very good, but it is not very good for SEO。尽管我在 CSDN 上没有很多有质量的输出,但是繁杂的信息流却充斥在我面前。关注,点赞,私信,评论,活动等等都是我要面对的。这些信息流无时无刻不在分散我的注意力,使我感到非常痛苦。因此,我开始探索更有效的方式。前几年微信公众号爆火,我本人也关注不少微信公众号。其中,有非常多关于编程的公众号对我帮助极大,我非常喜欢。时常幻想自己能够在公众号上写好文章,这样我就可以分享自己的知识了,或者说更纯粹的分享自己的知识了。我也的确这么做了,「整点儿代码」就是尝试。「整点儿代码」最初的规划是,每天产出一篇文章,设置定时晚上 10 点左右发布,这也 call back 了 “ 整点 “ 这个 concept。可惜,我并没有成功。一方面微信公众号的审核不通过导致不能整点发布,…
  • z1gui
    一、Redis 概念和基础什么是 Redis(Remote Dictionary Server 远程数据服务)Redis 是一款内存高速缓存数据库。其底层使用 C 语言编写,是一个 key-value 存储系统。支持丰富的数据类型,如:String,List,Set,zSet,Hash 以及 5.0 版本新增的 Stream。为什么要使用 Redis读写性能优异:Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s数据类型丰富:支持 String,List,Set,zSet,Hash 以及 Stream 数据类型操作原子性:Redis 所有的操作都是原子性的,并且支持多个操作合并之后原子性执行丰富的特性:支持发布、订阅,支持通知,支持 key 过期设置等特性持久化:有 RDB 和 AOF 等多种持久化方式发布订阅:支持发布订阅模式分布式:Redis Cluster基于如此多的优点,Redis 可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存储,基于内存,可以持久化。Redis 的使用场景「热点数据的缓存」缓存是…
  • z1gui
    Kafka 服务器端的代码是由 Scala 代码编写,支持面向对象编程和函数式数据,编译过后也是普通的 .class 文件。其的作用:提供统一的、高吞吐量、低延迟的平台来处理实时数据一、基本概念「Kafka 是什么?主要应用场景什么?」Kafka 是一个分布式流式处理平台。1 . 主题:发布订阅的对象是主题(Topic),可以为每个业务、每个应用甚至每类数据都创建专属的主题2 . 生产者和消费者:向主题发布消息的客户端应用程序成为生产者,生产者程序通常持续不断地向一个或者多个主题发送消息3 . Broker:集群由多个 Broker 组成,Broker 负责接收和处理客户端发送过来的请求,以及对消息进行持久化。虽然多个 Broker 能够运行在同一台机器上,但是常见的做法是将不同的 Broker 分散运行在不同的机器上,这样如果某一台机器宕机,即使在它上面运行的所有 Broker 进程都挂掉了,其他机器上的 Broker 也一眼能够对外提供服务。 4 . 备份机制:备份的思想很简单,就是把相同的数据拷贝到多台机器上,而这些相同的数据拷贝被称为副本。Kafka 定义了两类副本:领导者副本…
  • z1gui
    一、对象创建过程A. 内存分配当我们创建一个对象时(无论是通过构造函数还是字面量方式),JavaScript 引擎会在内存堆(Heap)中为这个对象分配空间。堆是一个用于存储复杂数据结构(如对象和数组)的区域。// 创建对象并分配内存var person = new Object();person.name = 'Alice';person.age = 30;或// 字面量方式创建对象并分配内存var person = { name: 'Alice', age: 30};B. 构造函数调用如果使用 new 关键字调用构造函数来创建对象,引擎会先创建一个新的空对象,然后将该对象的原型指向构造函数的 prototype 属性,并将新对象作为上下文(this)执行构造函数内部的代码。function Person(name, age) { this.name = name; this.age = age;}var alice = new Person('Alice', 30);二、执行过程A. 属性访问与方法调用在对象创建后,可以通过 . 或 [] 操作符访问和修改其属性。可以调用对象的方法…
  • z1gui
    Oracle 数据库分区是一种物理数据组织方式,主要用于管理和优化大规模表。通过将大表分成更小、更易管理的部分(即分区),可以显著提高查询性能、简化管理任务并支持更高的可用性。一、Oracle 分区原理分区类型:范围分区(Range Partitioning):基于列值的范围进行分区,例如按日期或编号范围。列表分区(List Partitioning):基于列值的预定义列表进行分区。哈希分区(Hash Partitioning):基于哈希函数计算出的散列值进行分区。复合分区(Composite Partitioning):结合以上两种或多种类型的分区方法,如范围 - 列表复合分区。子分区:在每个分区内部还可以进一步划分成多个子分区,实现更细致的数据分割。全局索引与本地索引:全局索引对整个表的所有分区生效。本地索引只针对单个分区有效,对于大型分区表,通常推荐使用本地索引以节省空间和提高查询效率。分区维护:可以单独对某个分区进行添加、删除、合并、拆分等操作,无需影响整个表的其他部分,从而提升维护效率和在线服务的连续性。二、实践应用在 Oracle 数据库中进行表分区,可以显著提高大型表的查…
  • z1gui
    var、const、let 同样都是声明变量的关键词。一、var 和 Let 区别作用域var 的作用域只能是全局或者是整个函数块,而 let 的作用域既可以是全局变量或者是整个函数,还可以是 if, while, switch 限定的代码块。function varTest() { var a = 1; { var a = 2; // 函数块中,同一个变量 console.log(a); // 2 } console.log(a); // 2} function letTest() { let a = 1; { let a = 2; // 代码块中,新的变量 console.log(a); // 2 } console.log(a); // 1 } varTest(); letTest();let 声明的变量,可以比 var 声明的变量的作用有更小的限定范围,更加灵活。重复声明在同一个作用域中,var 允许重复声明,但是 let 不允许重复声明。var a = 1;var a = 2;console.log(a) // 2function test() { var a = 3; va…
  • z1gui
    一、ASCII 码计算机内所有的信息都是二进制位。一个字节包含 8 个二进制位,可以表示 256 个状态,每个状态表示一个符号。ASCII 码一共规定了 128 个字符的编码,比如空格 SPACE 是 32(二进制 00100000),大写的字母 A 是 65(二进制 01000001)。这 128 个符号(包括 32 个不能打印出来的控制符号)。ASCII 码只占用了一个字节的后面 7 位,最前面的一位统一规定为 0。二、非 ASCII 编码英语用 128 个符号编码就够了,但是用来表示其他语言,128 个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为 130(二进制 10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多 256 个符号。所有这些编码方式中,0-127 表示的符号是一样的,不一样的只是 128-255 的这一段,不同的国家相同的 ASCII 码表示的可能是不同的符号。至于亚洲国家的文字,使用的符号就更多了,汉字就多达 10 万左右…
  • z1gui
    BIONIOAIOIO 模型同步阻塞同步非阻塞(多路复用)异步非阻塞编程难度简单复杂复杂可靠性差好好吞吐量低高高阅前须知阻塞 IO 和 非阻塞 IO这两个概念是 程序级别 的。主要描述是程序请求操作系统 IO 操作之后,如果 IO 资源没有准备好,那么程序如何处理问题:前者等待,后者继续执行(并且使用线程一直轮询,直到有 IO 资源准备好)同步 IO 和 非同步IO这两个概念是 操作系统级别 的。主要描述的是操作系统在收到程序请求 IO 操作后,如果 IO 资源没有准备好,该如何相应程序的问题:前者不响应,后者返回一个标记,当 IO 资源准备好之后,在用事件机制返回给程序。一、BIO(Blocking I/O)基本概念Java BIO:同步并阻塞(传统阻塞性),应用程序中进程在发起 IO 调用后至内核执行 IO 操作返回结果之前,若发起系统调用的线程一直处于等待状态,则此次 IO 操作为阻塞 IO。阻塞 IO 简称 BIO,Blocking IO。以前大多数网络通信方式都是阻塞模式,即:客户端向服务器端发送请求后,客户端会一直等待(不会再做其他事情),直到服务器端返回结果或者网络出现问…
  • z1gui
    Java 中操作各种文件类型(如 Excel、Word、PDF、Markdown、纯文本和 CSV)需要不同的库来实现。以下是一些基本的代码示例,分别针对不同格式进行读写或修改内容的操作:操作 Excel (使用 Apache POI 库)读取/写入 Excel (. Xls, .xlsx)// 导入相关依赖import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;// 写入数据到Exceltry (Workbook workbook = new XSSFWorkbook(); // 新建一个XLSX工作簿 FileOutputStream fileOut = new FileOutputStream("output.xlsx")) { Sheet sheet = workbook.createSheet("Sheet1"); // 创建新的sheet Row row = sheet.createRow(0); // 创建行 Cell cell = row.createC…