Canvas视频导出方案

本文介绍如何将网页上面的canvas导出视屏并保存, 用于移动端,或者其他渠道的分享。 canvas 动画保存为视频流 这里需要用到两个HTML技术: HTMLMediaElement.captureStream()以及MediaStream Recording API 前者可以将canvas的视频导出为MediaStream对象。 后者可以将这个stream 保存为网页视频格式 // 指

一个MTU 引发的惨案

使用Headscale连接公司网络与阿里云网络, 在网络层面实现了联通,但是问题随之而来。 具体的现象: 1. 可以登录MySQL服务器, 但是一部分指令返回不了东西, 而一部分却可以。 2. 可以ssh到阿里云的任何一台ECS 机器。 采取了一系列调试手段之后无果, 只能祭出tcpdump大招。具体的抓包内容如下:   上面的抓包可以看出 1-6步是TCP 三次握手的过程,因为网络拓扑是1

写在2022年的春节

我在农历新年的前三天对博客进行了第五次重构。春节晚会倒计时的时候,博客差不多正好上线。此后又花了一天对一些细节进行修改。 过程 此次改版, 使用的是sveltekit + bootstrap5 + vite。原本打算使用vue3 + bootstrap。尴尬的是尽管目前UI 框架很多, 但是好用且支持Vue3的貌似不是很多。有一个神奇的UI 框架,TuSimple/naive-ui, 看名字

File Descriptor找回误删除的文件

我们使用Docker运行Metabase服务, 因为手贱我不小心删除了metabase的数据目录. 更不幸的是云服务商上面我们忘记定时备份系统, 通过备份找回数据不可行. 意外的是metabase依然可以正常使用, 这是因为linux的文件机制,在所有打开的文件句柄都关闭前, 磁盘不会将文件真正删除. metabase因而可以正常访问. 进入docker, ps -ef 可以看到metabas

WireGuard配置

介绍 WireGuard是一个新式的VPN协议。因为被集成到了linux内核,数据包不像传统VPN软件那样需要在用户和内核态之间进行数据拷贝, 它的性能更高。 此外相对于OpenVPN而言,配置实在是太过于简洁了。 本文主要介绍使用WireGuard协议在OpenWRT路由器之间, 以及WireGuard和Ubuntu服务器之间的配置。 OpenWRT之间互联 之所以在OpenWRT互联

黑苹果的网络唤醒

苹果自己的Mac mini似乎从来就不支持网络唤醒(苹果系统似乎没有重启的必要)。但是WOL对黑苹果而言还是非常有必要的。 预备条件 支持WOL的主板 支持发送WOL包的服务器(路由器, 群晖等) 黑苹果上需要安装打了补丁的kext 操作过程 目前大部分主板支持网络唤醒功能, 但是需要手动开启。不同主板操作不一样具体需要自己去谷歌了。 我是用的是OpenWRT路由器, 自带WOL功能

MySQL修改小表导致业务挂起问题

起因 生产环境采购了阿里云的基础版数据库实例。 2核4G的配置。 经过几次优化,在业务高峰期不论是内存还是CPU的使用量基本上都不会超过50%。 在实际生产环境中我们需要修改表的结构。我们遇到过好几次,修改小表的时候生产环境业务被挂起,此时show processlist 显示一堆在wait meta data lock的连接。 比较讽刺的是修改只有5条记录的表也会导致业务被挂起。 我们怀疑

B460M-ITX/AC黑苹果配置

最近组装了一个基于opencore的黑苹果系统 使用B460M这个主板的原因在于它主板自带无线网卡和蓝牙,它的蓝牙可以直接被黑苹果驱动。 如果我们不需要Airdrop就不需要折腾替换二手网卡了。如果我们需要Airdrop功能, 那么我们可以购买BCM94352ZQ, 这一款网卡不需要额外安装驱动就可以使用, 拆下旧网卡自己替换掉就行,也不需要占用额外的PCIE插槽。 唯一的遗憾是乔思伯V8Z

在线图片编辑工具的拖拽算法

工作原因做了一个在线图片编辑器, 在线对图片和文字进行编辑操作. 需要实现以下功能: 使用鼠标对素材进行旋转. 点击素材四角对素材进行等比例缩放. 点击素材四边对素材进行不等比例的拉伸. 在旋转整个画布的前提下, 对素材进行前三个操作. 本文主要介绍实现功能2和3的算法. 数据格式 以浏览器左上角为座标原点. 参数 含意 x,y 物体的左上角座标 width,

做了一个在线证书过期提醒工具

这个工具用于监测网站证书的过期时间. 访问地址:https://certs.ifconfiger.com 使用letsencrypt的证书, 有时候证书更新脚本会失败. 或者证书更新之后, nginx以及apache没能重载证书导致网页访问报错. 这个工具就是为了解决类似问题. 直接放截图: 主要特点 免费. github一键登录即可使用. 在过期前14天会有告警提醒. 支持邮件,

Gunicorn服务部署CPU占用率过高的问题调试

起因 最近因为服务器迁移, 我们需要将一个长期运行的gunicorn服务由Ubuntu 1404迁移到另外一台Ubuntu 1404(是的, 你没看错, 确实是1404)上. 服务重新部署并不是什么麻烦事, 一个小时以内基本可以搞定. 遇到的稍微麻烦一点的事情在于旧版的pip不能安装软件. 原服务器python版本是3.4.3, 为了安装各种依赖我们在”新”服务器上使用