Cliff 的笔记

记录一些心得和思考

p2p 通信系列之三:WebRTC

上一篇就提到了 direct-chat/isle,这段时间已经把 isle 的 android native 版本做的差不多了。等各种审核的过程中,再来写一篇。 关于我这几个软件,先解释一下名字,direct-chat 是我实现的这一系列软件的项目名,isle 是主要的客户端,是完成 P2P 通信的对等客户端。也就是说…

2026 年 09 月 23 日

Thank you, Google

前几天把 direct-chat 放出来了,找了各路 AI 帮忙,比如,trae 帮我写了文档,做了 cli 和 tauri 版本的前端,还帮我各种 review 后端;workbuddy 帮我做完了网站。 平心而论,当前的版本只是原型而已。只能是快速验证可行性,实用价值上还差得多。所以我打算继续做个 android …

2026 年 08 月 31 日

p2p 通信系列之二:direct-chat(直聊)

direct-chat (直聊)的第一个版本发布了。 虽然只是原型,不过基本的功能(发消息/打电话/视频通话)还是可以用的。 软件发布在自己的网站:https://direct-chat.clifftop.win/ 。该有的介绍网站上都写了。 如果有兴趣让不插 SIM 的 android 手机或电脑能互相打电话,可以下…

2026 年 08 月 23 日

显示器刷新率对模拟器的影响

写了一堆,不知道为什么没存下来。兴致没了,重新记个流水帐吧。 故事很简单,NAS 上装了个 romm 来管理 rom,然后电视盒上装了个 cannoli + retroarch 来玩模拟器游戏,结果: romm 可以在浏览器里直接玩 nes 游戏,但在我的 PC 上不知道为什么特别卡顿。 retroarch 中玩 d…

2026 年 08 月 19 日

p2p 通信系列之一:基础概念串联

看了一下上一篇相关的 blog,从开始看 iroh 到现在已经接近两个月了。 这段时间,做了一个 p2p 即时通信软件。基础功能算是基本能用,但自我评估了一下,感觉还没到放出来的时候。不过,现在已经可以开始整理一下学到的东西了。 背景知识 现实世界 首先是一个基础的常识,Internet 本来就是 p2p 的。 任何一…

2026 年 08 月 07 日

用上了虚拟路由冗余协议

用了虚拟路由冗余协议 (VRRP) 解决了一个问题。 但其实在今天下午之前,我还不知道这是个什么东西。 背景 前几天给家里的网络加了旁路由后,在主路由上改了 dnsmasq 的配置文件,通知我的设备走旁路由。 我调试 nas 时,有时候会反复重启,旁路由容器自然也跟着断开。这段时间我的设备就不能上网了。于是我就在主路由…

2026 年 07 月 29 日

从零开始配置旁路由,again

大半个月前,在家里的 NAS 上跑 QWRT 做旁路由,基本上还可以,总算是减轻了主路由的压力。 没想到,昨天一次意外停电之后,QWRT 彻底起不来了,各种卸载重装都无解。 暂时把 DHCP 配置屏蔽掉,让设备走主路由后。我想了一下,还是得换个系统再跑一个旁路由。跟各路 AI 聊了一下之后,决定换成 immortalw…

2026 年 07 月 24 日

终于还是用了旁路由

装了 OpenWRT 之后,R8500 其实还是蛮好用的。 我本来以为,R8500有足够的性能冗余,但前几天 nas 跑迅雷的时候,机器被搞垮了,负载高企,连无线都会断开。 要亡羊补牢,还是把最重要的科学上网挪到别的机器来跑吧。 碰巧这几天看到飞牛提供了 QWRT 应用,花了点时间配好,学到了不少知识。 关于 QWRT…

2026 年 07 月 02 日

iroh可能是真正的Web3.0

我一直对 P2P 很好奇。当然,说的不是信贷的那个 P2P,而是点对点通信。 从多年以前的 bit-torrent,到 eDonkey/eMule 的 DHT,再到 IPFS,libp2p,乃至今天要说的 iroh。我都尝试研究过,但最终还是都浅尝辄止。但最近因为一个想法,在各种 ai 的提点之下,再次打开了 iroh…

2026 年 06 月 12 日

eating my own dog food

前因 之前写了个 plankroad 给自己用,说实话感觉还不错,真的是可以应急。但写的实在太简陋了,除了特别轻(镜像约 9 M),似乎也没啥优点。 某天跟 chatgpt 聊天时发现,在这个工具思路的基础上,似乎可以扩展出不少用例。 比如说,跑一个客户端,长连到一个 PaaS 上运行的自己的服务端,就可以把内网服务暴…

2026 年 06 月 03 日

我必须承认,AI做到了我做不到的事

之前养过 OpenClaw 龙虾,装好了之后随便玩了一下,由于没有合适的 channel(主要是懒得装飞书),所以没正经使用。 这几天,微信通过 openclaw channel 插件,开放了 iLink Bot 协议(顺便说一句,本来想做个 SDK 的,结果发现别人比我做的快多了……)。我没有理由再偷懒,于是就接上了…

2026 年 03 月 27 日

从openclaw原理看AI助手的本质

今天看到新闻,openclaw 的 stars 数量居然超过了 linux 和 react。去 github 看了一下,的确如此。不得不敬畏全民对于这只龙虾的热情。 前几天我翻译了一篇文章 everyone talks about Clawdbot, but here's how it works,大概了解了 open…

2026 年 03 月 03 日

以车牌识别为例学习AI应用实现

车牌识别有很多人做过了。虽然简单,但对于我这种初学者来说,作为练手是个不错的选择。 基础概念和工具整理 要做车牌识别,要依序经过以下几个步骤: 从输入的图片中,(用 YOLO)提取出车牌所在的区域。 对图片进行几何变换,将其矫正为长方形,也就是拉平。(注:这步实际上是可选的,但对于正确率影响很大) 通过 OCR 或深…

2026 年 02 月 08 日

从YOLO例程看AI推理实现

最近看了 YOLO 的两个例程。 rknn-toolkit2 的 yolov5 ort 的 yolov8 这里整理一下我看懂了什么。 AI 应用类型与实现 AI 应用分类非常细,要根据具体的应用类型,去分析其分类,然后找实现方式。 举个例子来说,车牌识别,车牌检测,分类属于:计算机视觉 - 目标检测 - 小目标检测…

2026 年 02 月 04 日

关于边缘AI的不完整笔记

搞了一台友善电子的 R76S,以此为契机,了解了一些边缘 AI 的相关知识。虽然笔记不完整,但我觉得还是比一个“完美”的实验室项目要好很多。 感性认识 简单一句话,边缘 AI 就是在本地设备上跑 AI 相关功能。 很明显,和云端 AI 相比,边缘 AI 设备算力有限,但不需要网络传输,能够即时响应,似乎比较适合个人开发…

2026 年 01 月 18 日

自建云游戏服务器的一些可行性研究

想要做的事情进展缓慢。大神级别项目的代码太复杂,看几行代码就能让我睡一天,而且最后搞不定的可能性也很大……所以这几天干脆暂时转移一下视线,玩玩游戏,算是放松一下。 之前简单的玩过云游戏,当时用的方法很简单:给电脑装一个服务端(sunshine),给 Switch 和电视盒上装个客户端(moonlight),配好连接就能…

2026 年 01 月 04 日

Traefik 使用进阶

上个月搭建了家庭服务器,然后简单配置了 traefik 做为应用网关。虽然能用,但存在几个问题: 配置时需要手动修改文件,明显不方便。 安全性上,简单配置了 basic-auth 作为 middleware,但如果后端服务也依赖 basic-auth(比如 webssh2),就会产生冲突。 针对这两个问题,做了以下…

2025 年 12 月 03 日

从Pake源码看web应用如何转换为原生应用

Pake 是我很久之前就看到的一个项目,项目是这样介绍自己的:Turn any webpage into a desktop app with one command, supports macOS, Windows, and Linux。即:用一条命令将任意网页转换为桌面应用,支持 macOS/Windows/Lin…

2025 年 11 月 23 日

用家庭服务器构建公网服务

前几天给家里配好了 DDNS,打开了防火墙,这样如果外部有 IPv6 网络的话,就能简单的连接家里的机器了。我对外放开了自己的一个书签页,还有一个电视服务。同城访问的话,速度还不错。 但只做好 DDNS 的话,明显还是不够的。 仅用 DDNS 时存在的问题 看问题本质,DDNS 只是给 IP 配了一个或多个域名。对于家…

2025 年 11 月 15 日

关于 Cloudflare DDNS 的配置方式

从外网访问家里的服务,免不了要设置 DDNS。在 IPv6 网络已经能正常使用的当下,结合 DDNS 可以有很多想象空间。 Cloudflare 的 DDNS 本质上是通过 Cloudflare 的 http API 去修改其域名配置。各种 DDNS 客户端实际只是把配置的参数转换成 http 请求。但我配了两个系统,…

2025 年 11 月 13 日

Top