主页

Macos通过命令行开启关闭向日葵远程控制的后台服务

写在前面 经常有小伙伴问我电脑相关的问题, 而解决问题的一个重要途径就是远程了. 关于免费的远程工具我试过向日葵和 todesk, 并且主要使用向日葵, 虽然 MacOS 下要设置很多权限, 但是也不影响其丝滑的控制. 虽然用着舒服, 但是向日葵美中不足的一点就是后台服务的内存占用, 对我这种强迫症还是接受不了, 后来想到的办法是在系统设置里面的 通用-> 登录项 的允许在后台执行的程序, 可以打开或者关闭向日葵的服务. 但是每次开关都麻烦, 所以就自然想到通过命令行来操作了. 向日葵的后台服务 可以看到向日葵的后台服务有4个, 通过查找 /Library/LaunchAgents /Library/LaunchDaemons 发现, 有以下4个文件:...

阅读更多

Gif 压缩方法

写在前面 最近想转换几个 tg 的 tgs 文件到 gif, 然后上传到微信, 所以又涉及到了 gif 的操作了. 工具介绍 安装 brew install imagemagick gifsicle imagemagick 是专业的图像处理工具, gifsicle 是专门处理 gif 的小工具 ,都是开源的. 转换 转换 tgs 或者 lottie 到 gif 当前目录下的表情文件进行转换. docker run --rm -v ./:/source edasriyan/lottie-to-gif 转换 webp 到 gif # webp to gif magick mogrify -format gif input.webp 压缩 # method 1...

阅读更多

我的csdn创作总结

最近突然收到 CSDN 的创作纪念日活动, 想到自己已经好久没写博客了, 一直在忙于各种事情. 正好借这个机会总结一下自己的创作之路, 当然也是为之后的学习做个展望. 其实是因为有所懈怠了. 机缘 最早在 2020 年, 也就是 yq 元年的时候开始写博客的. 之前一直停留在看博客的阶段, 后来想着自己的一些经验或者笔记能不能也记录下来, 不仅方便自己查阅, 也能帮助到大家, 就这么不知不觉写写写, 如今已经有四年了. 其实一开始写博客是带有功利心的, 总是想达成什么什么成就, 反而忘记了写博客不是急功近利的事情. 事实上, 只有真正沉淀下来了干货, 这样才能最大化写博客的好处. 说回写博客这件事, 最开始其实是一些学习 python 的经验, 现在来看已经是非常...

阅读更多

使用 pypdf 快速切分 pdf 文件

写在前面 最近有小伙伴问我怎么把 PDF 文档切分成两个大小相近的 PDF文档, 要是在 mac 上, 直接无脑预览就行了, 但是这样不够跨平台, 之后我也尝试过 pymupdf, 但是奈何不支持 arm 架构, 后来还是用 Python 原生的 pypdf 了. 有 AI 加持还是很方便 方法 1:mac 预览 使用预览左边的缩略图栏就可以方便地切分(删除页面)然后保存了. 纯手工操作. 方法 2: pypdf 先安装 python -m pip install pypdf pypdf 和 PyPDF2 以及 PyPDF3 都是如出一辙, 但是后来 PyPDF2 合并到了 pypdf, 所以用 pypdf 即可. 上代码 #!/opt/homeb...

阅读更多

Git在版本管理系统中删掉之前提交过的文件

写在前面 最近逐渐熟悉了 git 的操作, 来总结几条删掉记录的 git 命令. 场景 假如你在添加到暂存区时候使用了 git add . 这时候可能会有一些辅助文件被添加到版本管理中, 并且如果这时候使用了 git commit, 文件的变动就纳入了git的版本库中, 看起来不是很舒服. 那么应该怎么办呢? 首先一条很有用的命令是 git reset --soft HEAD^ 可以用来跳到最近的一次提交, 并且不会改变文件实际更改的内容(即工作区的内容), 仅是将commit节点移动到 HEAD的前面一个版本, 如果不加--soft选项, 那么默认是 --mixed, 这时候会丢弃暂存区, 仅保留工作区(或者说: 重置暂存区的文件与上一次提交保持一致, 文件内容...

阅读更多

Golang 隐式接口实战以及与 java 接口的区别

写在前面 最近在看 go语言学习指南-惯例模式与编程实战, 看到接口那块有点困惑了, 因为之前一直是学 C++的, 对于接口了解的不多, 通过 GPT 补补课. 首先介绍一下接口, 接口其实是针对一组方法(行为)的抽象, 与抽象类有所不同(虽然在 C++中都是通过虚基类实现的), 抽象类是类层次结构的抽象, 反映了类之间的关系. 下面的代码主要来自 go语言学习指南的 7.6节, 接口是类型安全的鸭子类型. Java 的接口(显式声明) Java 的接口通过 interface 来声明, 通过 implements 实现接口. 接口本质上也是一个类, 在这个类中给出了需要实现的方法的签名. 但是 Java 的接口使用的是显式声明, 也就是说每次实现接口都要指定具体实...

阅读更多

原地算法的小总结

写在前面 好久没写博客了, 这次来总结一下原地算法(操作), 去年秋招被问到了两次, 感觉还是要好好理解一下的. (变式的题目比如手写 memcpy 本质上也是原地算法) 所谓原地算法, 就是在不用额外的空间(例如新开数组)的条件下, 仅遍历一次(或者有限次, 最后的时间复杂度仅为$O(N)$​)的一种算法, 其本质就是双指针(不过有时候不一定需要使用两根指针). 经典的排序算法中例如堆排序就用了原地操作来完成元素的上溯和下溯, 插入排序和选择排序中也是类似的原地操作. 在 C++的 STL 中有的算法就用到了这个思路, 比较常见的就是 vector 容器的 remove 操作, 用过的小伙伴应该知道 remove 不会真的删除所有的元素, 而是将待删除的元素移动到最后,...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits