记录油猴脚本的开发过程
说明 油猴脚本是一种运行在浏览器的第三方脚本,用来修改特定的网站的源代码,实现网站本身没有的功能。它有两个组成部分: 浏览器扩展:目前有Tampermonkey 和 Violentmonkey两款,其功能大同小异。浏览器扩展的作用是充当脚本的载体。 用户脚本: 真正发挥作用的是用户脚本。可以自己编写脚本,或者在诸如Greasy Fork的网站寻找其他大神编写的脚本。 前几天我给煎蛋网(jandan.net)写了一个脚本:煎蛋吐槽记录器,主要是想练手,顺便用用我好久前star过的一个有趣的项目:vite-plugin-monkey。第一版比较粗糙,用jQuery写的,感觉像现代人去钻木..
更多范围请求(Http Range Request)
Http Range Request允许服务器仅将 HTTP 消息的一部分发送回客户端。范围请求对于支持随机访问的媒体播放器、知道它们只需要大文件的一部分的数据工具以及允许用户暂停和恢复下载的下载管理器等客户端非常有用。下面是一个实现例子:import { createServer } from 'node:http'; import { createReadStream } from 'node:fs'; import { stat } from 'node:fs/promises'; const server = createServer(async (req, res) => { const filePath = 'test.mp4'; const range = req.head..
更多Ubuntu Xrdp
Foreword Ubuntu 使用window的rdp协议进行远程 Xrdp Ubuntu 使用 18.04版本 先更新一下,否则可能拉不到包 sudo apt update sudo apt-get upgrade 安装 安装xrdp sudo apt install xrdp -y sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y 打开xrdp sudo systemctl enable xrdp sudo systemctl start xrdp 防火墙放行3389远程端口 sudo ufw enable sudo ufw allow 3389 sudo ufw re..
更多1900年居然不是闰年?
看HN讨论 昨天2024-02-29有哪些闰年的bug,有一个吃惊了 >>> datetime.datetime.strptime('Feb 29', '%b %d') ValueError: day is out of range for month python的 datetime() 默认 year=1900。但是心里想 1900 不应该也是闰年吗? 查了下还真不是。囧。一年有 365.242374 天: 近似看成 365.25 天就是4年一润; 剩余的精度 365.25-365.242374 == 0.0076 天 而且,0.0076 ✖️ 400 == 3.0504,也就是每400年要润3天 结论就是每100年一润,但是每400年又不润 比如 1700, 1800, 190..
更多穷人的supervisor OOM killer
厂里的docker上跑了个supervisord,用来把挂掉的进程拉起来。最近的问题不是进程挂掉,而是内存泄漏 跑着跑着内存爆了,然后宿主机OOM随机杀掉一个进程,结果占用内存最大的那个还活着,正常的进程反而gg,该漏的继续漏,然后反复OOM。想看下哪里漏了,--cap-add=SYS_PTRACE 也不给加,OOM策略也不给调,思来想去只能自己做防水补漏了。做起来也简单,supervisor再跑一套bash脚本即可: while true; do p=`ps --no-headers -xo rss,pid --sort=-rss | awk '{ if($1 > 1000000){ print $2 } }'` kill $p 2>/dev/null || echo ..
更多HTPC客厅多媒体键盘大盘点
Foreword 客厅增加一个键盘,可以在扩展后的电视上直接操作电脑,最适配这个需求的就是多媒体客厅键盘了,不过由于这个领域过于小众,实际上匹配合适的键盘非常难找,这里总结一下我找到的各种适配的键盘 HTPC,Home Theater PC,家庭影院电脑、客厅电脑,家庭媒体中心,我这里就是以PC构建的多媒体设备,类似的键盘都会有一个HTPC的标志,不够这么多年过去了,基本都被各种盒子接管了,HTPC这个概念反而式微了。 可是盒子被广电(主锅)和各大运营商、厂商强行霸占,本来不大的蛋糕硬是被分的支离破碎,最后留给客厅多媒体设备一地狼藉,无论是电视直播、还是各个视频网站都被限制,电视版和PC版本竟然不一样,很多功能也做了恶心人的限制,不得不让文艺复兴,回到HTPC时代突破封锁。 键盘 核心需求有几..
更多LLM, RAG 和 Groq
最近跟朋友聊起LLM,RAG 究竟有没有用,能不能拿来做成产品或者服务。由于我对AI的了解也很肤浅,所以没太敢下结论。 但是今天突然想起一个趣事,相传 账单·大门 院士有一句名言「640KB ought to be enough for anybody」 这句话是不是他老人家说的不重要了,重要的是 IBM PC 的这个 640KB内存 的梗是绕不过去了。 后来发现 640KB 不够了怎么办?屎山上接着hack呗。于是发明了 EMM386 ,在CONFIG.SYS 里吟唱一句 DEVICE=C:\DOS\HIMEM.SYS 可以保平安。 如果人人都能用 Gemini 1.5 Pro 那个 1M context tokens, 那么 RAG 技术也没啥用了吧。猜想能用 RAG 卖钱的,估计跟定制 HIME..
更多一日一技:Python工具脚本如何调用外层模块
我三年前写过一篇文章:《小问题大隐患:如何正确设置 Python 项目的入口文件?》。讲到Python项目应该如何正确组织代码结构。入口文件应该在最外面,调用关系应该是从外向内调用。而不要学Java,从一个很深层的文件夹里面往外调用。不过我在这篇文章的最后,也提到了一种例外情况,那就是工具脚本不受这个规则的限制。如下图所示。今天有同学在问我,这种情况应该怎么调用,才能让remove_outdated_data.py正确导入models里面的模块。我们今天就来说明一下。首先,我们来创建一个示例程序,结构如下图所示:其中,aa.py文件的内容为:12def i_am_func(): print('我是一个函数')test.py文件的内容为:1234from models.aa import i_am_f..
更多代码格式化工具
Foreword 测试一下目前常用的一些代码格式化的工具,后续将其引入到CI流程中 Format Artistic Style Astyle,一个经典代码格式化的工具,在一些比较老的编译器或者是嵌入式中用的比较多 https://astyle.sourceforge.net/ 本身支持命令行直接调用,所以很适合集成到一些CI流程中 Usage: ------ astyle [OPTIONS] File1 File2 File3 [...] astyle [OPTIONS] < Original > Beautified When indenting a specific file, the resulting i..
更多AI辅助艺术设计
Foreword 研究一下如何把Stability AI相关的AI产品融合到目前的艺术设计的工作流中 Stable Diffusion Stable Diffusion是一种图像模型,他背后是Stability AI Midjounery Summary Quote
更多