- 博客(88)
- 资源 (22)
- 收藏
- 关注
原创 rust实现的快捷补全到剪贴板的实用工具
本文介绍了一个名为copy的命令行工具的开发过程,旨在解决日常工作中频繁输入长密码和复杂命令的痛点。作者使用Rust语言开发了这个工具,配合Fish shell的自动补全功能,实现了快速查找和复制预设的密码/命令到剪贴板的功能。工具通过读取key2value.txt配置文件(使用==分隔键值),将指定key对应的value自动复制到剪贴板。该方案显著提高了工作效率,特别是在使用tmux多窗口工作时,可以快速切换并粘贴所需内容。工具代码简洁,依赖少(仅使用了arboard库处理剪贴板操作),适合日常使用场景
2025-07-19 10:07:21
259
原创 基于 Spring Boot、Spring Cloud、Nacos 的微服务架构,在性能测试下的层层优化
翻录整理自己的技术笔记,分享下以前在gitchat上发布的java微服务的性能优化文章
2025-07-19 09:22:11
804
原创 服务器mysql数据的简单备份脚本
该脚本实现MySQL数据库的自动备份与清理功能。通过配置数据库连接参数和备份目录,使用mysqldump命令将指定数据库备份为带时间戳的SQL文件。脚本还包含备份成功检查机制,并在执行完成后自动清理7天前的旧备份文件。通过crontab设置定时任务(每天凌晨1点执行),可确保数据库定期备份,同时避免备份文件过多占用存储空间。脚本简单实用,适合小型项目实现基本的数据库备份需求。
2025-07-18 21:47:00
78
原创 借助AI学习开源代码git0.7之三git-init-db
本文分析了Git 0.7版本中init-db.c文件的实现细节,该文件负责初始化Git对象数据库。核心功能包括:通过safe_create_dir函数安全创建.git目录;利用256个十六进制子目录分散存储Git对象;支持环境变量配置存储路径。代码体现了多个优质编程实践:稳健的错误处理(忽略已存在目录)、分片存储优化(提升IO性能)、灵活的配置支持(环境变量)以及防御性编程(内存分配冗余)。这些技巧对开发类似存储系统具有参考价值,特别是处理大量文件时的目录结构设计。
2025-07-18 19:29:37
291
原创 全栈程序员使用minim4丐版的优化分享
最近忍不住买了一台mac mini m4丐版。为什么买丐版呢? 因为这个版本是我认为性价比最高的mac电脑,哈哈当然也是能省则省,加上手头还有minim1+16g和nuc12代i7+64g内存,通过别的方案来解决全栈程序员开发的时候丐版性能不够的情况。丐版最大的问题还是在内存,cpu在开发领域足够强大,硬盘也可以通过挂载高速硬盘解决。
2025-07-17 15:04:39
554
原创 借助AI学习开源代码git0.7之二核心概念和总结
本文分析了Git 0.7版本的核心概念和关键头文件。核心概念包括:1)对象数据库(Blob、Tree、Commit对象);2)索引机制(暂存区设计);3)版本历史管理(提交DAG);4)分布式协作(对象传输)。重点分析了object.h和cache.h两个核心头文件,分别定义了Git对象系统的数据结构和目录缓存系统。object.h管理对象类型、SHA1哈希和引用关系,cache.h实现高效文件状态跟踪和暂存区管理。整体设计注重效率,采用内容寻址、不可变对象等机制,为现代Git奠定了基础。
2025-07-17 14:17:22
589
原创 借助AI学习开源代码git0.7之编译和使用
摘要:本文介绍了如何通过早期版本(git 0.7)学习开源代码,相比现代版本代码量更精简(4950行)。主要内容包括:1)解决编译问题,修改Makefile使用内置SHA1实现;2)基本使用流程:初始化仓库、添加文件、创建tree和commit对象;3)详细解析16个核心命令的功能和用法,如git-cat-file查看对象、git-ls-tree列出目录结构等。通过实践这些基础操作,可以深入理解Git底层数据结构和核心机制。
2025-07-16 20:48:28
494
1
原创 flutter下的webview适配rem问题
摘要:在将Vue.js页面封装为Flutter应用时,发现部分设备因系统字体设置导致rem布局异常。排查发现Vue页面动态计算font-size受系统字体影响。临时方案是硬编码font-size,最终通过在Flutter层强制默认字体设置(textScaleFactor=1.0)和Android WebView设置文本缩放(setTextZoom(100))来解决问题,既保证布局稳定又不限制用户调整系统字体的需求。
2025-07-15 21:11:31
209
原创 emacs下vercial-border审美观记录
昨天一晚上时间都花在了emacs的vercial-border上。 一开始还不知道这个名词,以为是treemacs展示的效果,毕竟我是在打开treemacs的时候,才发现这个分割线太丑了,我的审美观在蠢蠢欲动了。 谁说程序员没有审美观的?只是前面有别的东西要研究,这次非要美化下这个分割线。时间一分一秒的都花在了treemacs的一个个属性比对上,想着是不是有什么样式调整下,还下载了treemacs源码去查找。 一无所获的惆怅中,开始大秀我的英文: split搜下,border搜下。随着边搜索边分析(展开
2023-07-14 14:03:41
225
原创 vscode插件开发之终端那些事儿
打开的位置在vscode.TerminalLocation.Editor。在开发vscode插件的时候,好几个设计都需要集成终端。查资料后发现vsocd为开发者提供了丰富的终端API。看图有点别扭,怎么会在下面?通过sendText函数可以在终端中运行命令。这里我运行了我自己封装tmux的一个脚本命令。但是光标不在终端,需要鼠标点击下,继续调整。通过show(false);是否可以初始执行点命令?有特殊需求可以通过这些监听事件进行处理。做判断,如果不想不断打开新的终端的话。
2023-07-13 18:13:10
1509
原创 emacs下相对行号的设置
最好找到了新的思路:只针对 text-mode、prog-mode、conf-mode配置相对行号。以上的配置会针对全局生效,比如treemacs也会出现行号和相对行号显示,不美观也不符合习惯。并设置 display-line-numbers-type的样式: relative 相对。全局开启行号显示:global-display-line-numbers-mode t。一开始我的思路是尝试treemacs本身配置有没有忽略这个,结果没有试出来,分享下,方便以后自己查阅。
2023-07-12 13:26:54
501
原创 neovim下window的快捷切换
在使用emacs的时候,喜欢加插件window-numbering。这样在分屏之后的emacs里,通过配置快捷键leader+w+number 跳转到对应的windows,而且该软件会在对应底部显示数字提示,非常方便。另外:为什么不用快捷键leader+number,哈哈,因为留给了更频繁的bufer切换。那么在neovim下面有对应的吗?之前一直用c+w+方向键切换window,但是还是想着统一下快捷键,找了一圈没找到(其实也没认真找),那就自己实现一个呗。
2023-05-18 13:52:14
767
原创 neovim下进行接口测试,并且登录token自动保存
neovim下进行接口测试,并且登录token自动保存最近一段时间最大的乐趣就是用自己配置的neovim写go代码,现在用go代码写的接口,一开始用curl测试接口,感觉不是很方便。就尝试能否在neovim发起接口测试。功夫不负有心人,找到了一个插件rest.nvim。记录下安装和自己定制的lua脚本。
2023-05-05 16:13:52
695
原创 emacs按数字键快捷切换buffer
最近写代码用lvim,记笔记和写文章用emacs。发现切换buffer对我而言是一个非常高频的操作。考虑如何优化快捷键。
2023-02-22 17:13:19
472
原创 解决gocui库的中文显示缺少的bug
一开始以为是gocui本身不支持中文,但是代码查看了下,显示还是用的rune,而且lazygit也是支持中文的。一开始想偷懒直接用lazygit改造过的gocui库,但是发现改的太多了,api都不一样了,果断放弃了。一层层下来,发现lazygit是fork了gocui的一份代码,自己定制了一份gocui。这段代码是真正把内容输出到终端上,关键在于SetCell函数的第一个参数,是输出的x坐标。非常喜欢lazygit在终端上的界面,扒拉了下github上代码,发现是用go语言写的,
2023-02-15 14:07:32
592
原创 终于终端下的treemacs可以显示多种图标了
本来可以直接用all-the-icons在里面扩展图标数据,但是all-the-icons是package-install安装的,icons-in-terminal是克隆到了本地的site-lisp,网上这方面的资料很少,终于在emacs-china上发现了帖子,讲到了终端下的图标显示:icons-in-terminal,也模仿了all-the-icons的api。所以还是保留了icons-in-terminal,在里面扩展了图标数据。最终在treemacs-all-the-icons代码里找到了答案。
2023-02-10 11:08:14
453
原创 emacs下安装eaf
eaf插件一开始还有点排斥,觉得emacs终端下操作多好多流畅。想要浏览器,终端和pdf再快速切换就可以了,毕竟我用i3wm/yabai窗口管理器。但是想到当初也是vim用的多学得多,emacs就不愿意去接触学习,觉得精力有限,结果就是与emacs错过了这么多年。想到这就想着先安装好eaf插件玩一段时间,真不喜欢再卸载呗。
2022-12-26 13:49:48
842
1
原创 统一自己的mac和linux环境的终端使用(alacritty+tmux代替iterm2)
升级切换了下自己的终端工具+tmux配置,终端工具从iterm2改到了alacritty。
2022-12-20 18:16:07
1815
原创 doom emacs如何安装新插件和自定义快捷键
可以在config.el加,或者和我一样独立的配置文件维护(map!:leader(:prefix "w" :desc "选择窗口2" "2" #'select-window-2 :desc "选择窗口3" "3" #'select-window-3 :desc "选择窗口4" "4" #'select-window-4 :desc "选择窗口5" "5" #'select-window-5 :desc "选择窗口6" "6" #'select-window-6))
2022-12-13 11:05:32
891
原创 读书笔记之C Primer Plus 6
文件通常是在磁盘或固体硬盘上的一段已命名的存储区。C提供两种文件模式:文本模式和二进制模式。这章仔仔细细看了两遍,对c的标准I/O有了清晰的认识,不像java的IO这么多。java的io虽然灵活,但略显繁琐。
2022-11-28 23:07:12
338
原创 技术问题分析和解决汇总,持续维护
问题分析:分析了各种可能都没找到,后来怀疑有一个地方设置了session永不超时,但是所有请求都是统一访问入口,都会统一finally做清除,照理也没问题。还有抛异常的地方,把用户的userid,token,方法请求参数都打印,这样就能容易定位问题,还有就是关键的一些步骤也打印一些信息,说明请求进入了。问题分析:最终发现由于代码try catch把异常捕获,却不打印任何异常信息,也不重新抛出异常,导致生产上看日志都正常,这个很容易误导,一定要留意下。问题分析:样式文件没有找到,把样式内容拷贝到同一个文件。
2022-11-23 23:02:50
621
原创 分享下我的tmux配置
tmux是我非常喜欢的一个工具。通过不同session,不同windows,我把自己命令行下的操作做了隔离,通过命令切换不同的环境操作,也可以定制做些初始化(比如cd到对应目录)。
2022-11-22 22:04:14
525
原创 url短链设计分享
这种,在微博这些限制字数的应用里。短、字符少、美观、便于发布、传播。就是把普通网址,转换成比较短的网址。),会向这个地址发。进行短链转换计算,其他。网关将请求转到对应的长。对应的应用提供服务。
2022-11-20 22:44:40
577
原创 读书笔记之C Primer Plus 5
准备好好研究下redis源码,但是很久没用c语言写代码了,平时工作主要用java和js。所以准备重新阅读学习下c语言经典书籍:C Primer Plus。更好地阅读redis源码。
2022-11-20 22:16:35
412
原创 你的应用安全吗?应用安全问题知多少?
今天先分享这几个安全问题,下期继续。安全的问题,很多内部的管理台应用非常不重视,觉得是内网的应用安全不需要,夸张点的连登录密码都是完全明文的。只能说没安全问题大家都好,出了安全问题有时候连后悔的机会都没了。请重视安全的问题!
2022-11-19 17:27:30
862
原创 读书笔记-学习GNU Emacs-3终篇
终于读完了这本书,跳过了一些淘汰的内容和不适合自己的一些章节。总体这本书还是非常值得一读,作者描述的很细致很细心,适合初学者入门。而且关于emacs的书寥寥无几,真的是现在的人都不太用Emacs了?但是我很喜欢,当然我也会选择的用,而不是all in emacs。最后推荐指数:4颗星。如果内容与时俱进更新一番,那就是4星半了。
2022-11-19 11:35:22
500
原创 读书笔记-学习GNU Emacs-2
很多命令和操作重新摘记了下,一个个命令敲过去验证过去,像玩游戏一样,乐不思蜀。emacs肯定能提高我们的效率,效率是一点,还有操作中得到乐趣也很重要。什么都能在emacs中操作,听起来很酷,但这个见仁见智,找到适合自己的操作最重要。
2022-11-18 21:50:51
519
原创 读书笔记-学习GNU Emacs-1
emacs的学习一直是陆陆续续看博客和上手实践,这次想通过阅读"学习GNU Emacs"这本书好好系统的再复习下emacs。ps:读技术书应该是带着一定的目的去读的,最简单的目的可能就是为了学好某一项技术或者复习下某一项技术。理解文件与编辑缓冲区:文件内容放到临时的缓冲区里,对缓冲区进行编辑。保存,才会更新到文件中。只是一个临时性的辅助性缓冲区,作用类似草稿簿。帮助信息显示的缓冲区文本模式和c语言模式都是主模式。一个编辑缓冲区每次只能处于一种主模式中,退出一种主模式的方法是进入另一个主模式。当编辑
2022-11-17 20:13:11
410
原创 读书笔记之C Primer Plus 4
什么是指针?从根本上看,指针是一个值为内存地址的变量(或数据对象)。// 把bah的地址赋给ptr现在ptr的值是bah的地址。// 指向nurse的指针 val = * ptr;// 把ptr指向的地址上的值赋给val。
2022-11-16 20:01:41
322
原创 API网关功能一览
网关应该是无状态,容易线性扩展的;运行时弱依赖持久层(只依赖redis等内存数据库,不依赖db),最大化提升网关整体性能。罗列了可能的网关功能,当然认证鉴权有些项目会有专门的统一用户认证系统去处理,加解密也会有加密机系统提供。无论是单体应用,SOA或者现在流行的微服务架构,都需要一个API网关。API网关作为内网的入口;一些公共服务的建设,也可以在网关层统一处理。还有什么功能可以集成到API网关?
2022-11-15 11:24:31
531
1
原创 读书笔记之C Primer Plus 3
准备好好研究下redis源码,但是很久没用c语言写代码了,平时工作主要用java和js。所以准备重新阅读学习下c语言经典书籍:C Primer Plus。更好的阅读redis源码。前导程序62.4运行输出字符串简介字符串是一个或多个字符的序列: “Helo World!!”c语言用char类型的数组保存字符串,通过字符\0标记字符串的结束。所以40个存储单元,实际只能存储39个字符大小。所以"x"和’x’的区别: "x"实际上由两个字符组成:'x’和\0。
2022-11-14 17:57:06
597
原创 读书笔记之C Primer Plus 2
准备好好研究下redis源码,但是很久没用c语言写代码了,平时工作主要用java和js。所以准备重新阅读学习下c语言经典书籍:C Primer Plus。更好的阅读redis源码。读书笔记程序离不开数据运行输出计算机存储的两大基本类型: 整数类型和浮点数类型现在许多cpu都包含浮点处理器,缩小了浮点运算和整数运算的速度差距。位、字节和字计算机的字长越大,其数据移动越快,允许的内存访问也更多,32位最大内存限制是4096。整数7二进制是111,在8位字节中存储:00000111。
2022-11-13 10:57:28
334
内存分析工具 jca ha
2014-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人