自建 RSS 服务 ——Tiny Tiny RSS
这篇文章使用的是 TTRSS 老版本安装方式,新版的 Docker 安装请参考最新的文章 Tiny Tiny RSS 再次搭建。
很早之前就有了自建 RSS 服务的想法,但是 Feedly 和 Inoreader 的基 (mian) 础 (fei) 套餐真的太香了,懒人表示无法拒绝。结果,不出所料,Feedly 和 Inoreader 在 4 月初的时候陆续被墙,当时还以为 Reeder 3 停更了。为了解决日常的 RSS 阅读,自建 RSS 服务就提上了日程从冒出想法到搞定实际只花了半天时间。
本文我就来详细介绍一下搭建多平台 RSS 服务 ——Tiny Tiny RSS (TTRSS)。
最新版的 TTRSS 更新了安装方式,目前官方推荐使用 docker 方式安装,具体的安装和迁移请等待相关文章的更新。
1 TTRSS 冒出自建 RSS 服务之前,我其实已经删掉 Reeder 准备放弃移动端了。网上推荐的 Win 平台 RSS 阅读器,发现大多都是 Outlook、ThunderMail 之类的邮件客户端;虽然我也用” 宇宙最强的邮件客户端”——Outlook,但我并不想把娱乐消遣和工作搅和在一起。在小众软件的一篇文章的评论里面,我发现了 Tiny Tiny RSS ...
VS Code 笔记之根据语言选择性删除行末空格
由于一直没有找到合适的 Markdown 编辑器,就一直用 VS Code 来写点东西。从 VS Code 发布以来就一直在用,到现在已经有了相当丰富的插件可以使用了。平时一直使用 Latex Workshop、Markdown+Math 和 Markdown Preview Enhanced 配合来写东西,用着特别顺手。
平时用 VS Code 写代码比较多,就在设置里面勾选了保存时自动删除文末的空格。Markdown 写作当然就出现了瑕疵,最近才上心解决了这个问题。希望这个分享可以给有相同需求的同学带来一点帮助。
1 问题 Markdown 换行机制原本就一直搞不太明白,之前都是使用另起新行来实现换行的,见下方样例一。样例一: 代码: 123para-1// 另起新行 para-2
效果: para-1
para-2
后来重新看了 Markdown 的语法,学会了用行末空格来换行,见下方样例二。样例二: 代码: 12para-1 // 这里有 2 个空格 para-2
效果: para-1 para-2
很明显,另起新行的效果更偏向于另起一段,行末空格的效果才是真正的换行方式。这也就代码编辑里面 ...
ACFM 裂纹检测改进 ——RACFM
之前一段时间,阅读了一片裂纹检测的文章,写了篇内容摘要。
针对交变电场检测(ACFM)的方向性局限,文章 High sensitivity rotating alternating current field measurement for arbitrary-angle underwater cracks(下文简称 “原文”)提出了基于旋转交变电场检测(RACFM)的裂纹检测方式,并通过模拟的海水环境实验验证了 RACFM 对任意角度裂纹的灵敏性。
1 论文背景原文以离岸油气开采行业为实际应用背景,列举了当时水下管道裂纹检测的几种方法,并分析这些方法的特点和缺陷,请参见表 1。针对当时普遍使用的交变电场检测(ACFM)的方向性局限,原文提出了一种新型的旋转交变电场检测(RACFM)在保证相对较高的灵敏度的前提下,克服方向性的局限。
表 1 多种裂纹检测比较
特点
缺陷
肉眼检查
实用、廉价
1. 高度依赖使用者的经验和能力 2. ...
Wi-Fi 6 简析
Wi-Fi 6 这个词是我在翻看张大妈了解到的,只是大概知道 Wi-Fi 6 的延迟更低,传输更快,多设备体验更舒服。
2 月 13 日,雷军在小米的 无人 发布会上发布了 Wi-Fi 6 协议的 AX3600,售价 599,真不愧是价格屠夫。
反正最近一段时间一直在家蹲着,自然要看看这个 Wi-Fi 6 协议到底是个啥情况,Wi-Fi 6 对于我这样的普通用户是不是真的有丶东西呢?
紧接着小米无人发布会,华为也发布了 Wi-Fi 6 路由器。
1 “6” 从何而来 Wi-Fi 并不是某一项标准,而是在 IEEE 802.11 内,包括 IEEE 802.11 n/ac/ax 的一系列标准,用于规范化无线局域网传输。
2018 年下半年,Wi-Fi 联盟 (Wi-Fi Alliance,WFA) 正式发布了 IEEE 802.11 ax 标准,并把 802.11 ax 称作 Wi-Fi 6。同时为 IEEE 802.11 n 和 ac 添加名称 Wi-Fi 4 和 Wi-Fi 5。这既方便硬件厂商对产品进行宣传,又让消费者不再需要仔细研究 IEEE 802.11 a/b/g/n/ac/...
视频相关术语
今天在人人影视上找资源的时候,突然对文件名上的 HEVC、10bit 等感到疑惑,就花了一下午时间研究了一下视频相关的术语,在下面分享一下。
视频相关术语
目录
分辨率
宽高比
影像宽高比
像素宽高比
帧率
视频制式 (PAL&NTSC)
位深
编码
1 分辨率分辨率 (Resolution) 指影像的尺寸大小。衡量视频分辨率的基本单位为像素 (Pixel,px)。
123456┌-------------┐┄┄┄┄┄| | ↑| Video | Height| | ↓└-------------┘┄┄┄┄┄┆← Width →┆
分辨率一般用宽 (Width) * 高 (Height) 来表示。
常见分辨率
720P
1280px * 720px
1080P
1920px * 1080px
4K
3840px * 2160px
对于宽 / 宽为 16:9 的分辨率,通常可以用 720P、1080P 等简称来表示。其中,P (Progressive) 表示逐行扫描。1080P 即表 ...
基于 CAN 总线的多轴运动控制系统的一种优化方案
昨天从学校毕设系统里面下载了要做的英文翻译的原文,论文名称是 The CAN-Based Synchronized Structure for Multi-Axis。
运动控制系统对于通信的实时性要求很高,这就间接地要求系统的通信必须使用时间触发。CAN 总线从本质上来说是一种事件触发总线协议,对于这种极高的硬实时性要求很难满足。文章中展示了基础的时间触发 CAN 协议在运动控制中的传输误差,实验结果表明:传输速率较低时,系统的跟踪误差较好;当传输速率提高后,系统的传输实时性就差强人意了。
为了解决这一问题,文章中提出了一种对 CAN 运动控制的优化,这个优化涉及两个方面。
优化一本文提出在时间触发中嵌入事件触发,将传统的通信触发结构改为事件 / 时间触发结构,如图 1 所示。
优化二除了优化时间触发结构,文章还提出了预估器优化方案。如果系统在一段时间内没有接收到运动控制指令,系统就会将之前的位置数据带入泰勒二阶展开式计算丢失的控制指令。
系统的最终结构框图如图 2 所示。
从零开始的客制化 87 键机械键盘 03--PCB 打样
系列全部文章
从零开始的客制化 87 键机械键盘 03--PCB 打样从零开始的客制化 87 键机械键盘 02-- 硬件设计从零开始的客制化 87 键机械键盘 01-- 立项
机械键盘的原理图搞定之后就投去打样了,这次体验还是不错。
1 PCB 打样 PCB 打样就交给嘉立创了,下单系统虽然 UI 做的不怎么样,但系统操作和服务看上去特别高大上。而且最近嘉立创对自己的 SMT 进行了升级,添加了很多可贴元器件,这样一来,板子一拿回来就只要焊四个 0805 的贴片和直插的按键轴体。
下单大概四天,板子就寄到了。一层一层的红色气泡纸把五块板子包得严严实实。
板子那绿油油的照片忘记拍了,等全部搞定再拍吧。
从零开始的客制化 87 键机械键盘 02-- 硬件设计
系列全部文章
从零开始的客制化 87 键机械键盘 03--PCB 打样从零开始的客制化 87 键机械键盘 02-- 硬件设计从零开始的客制化 87 键机械键盘 01-- 立项
从这个项目立项以来已经快一个月了,终于在师傅和同学的帮助下,搞定了硬件设计。下面我就器件选型简单介绍一下,最后贴了一下渲染图。
1 硬件设计这一章介绍一下客制化键盘的硬件设计,包括以下 4 项:主控芯片、传输接口、轴体选择、键盘布局。
1.1 主控芯片在确定 STM32 作为主控芯片之前,我在网上搜了一下,也拆了手上的 ikbc C87,ATMEL 的 ATMEGA32 芯片使用的比较多。我最终还是选择了 STM32,主要原因是对 STM32 比较熟悉。
当然,作为 32 位的 MCU,STM32 不管是在 IO 数量、USB 接口支持,还是程序运算速度,都能满足机械键盘的需求。
USB 接口
机械键盘使用时是作为 USB Slave 使用的,所以只需要芯片支持 USB 就行,不需要 OTG。STM32F1 的所有芯片都支持全速 USB 2.0,所以随便选一款就行。
IO 数量
简单计算一下机械键盘需要的 IO 口,见下表(实际 IO 分配以实际原理图为准)。
序号
用途
...