自建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分配以实际原理图为准)。
序号
用途
...