标签: 教程
使用Z-Library+Calibre+静读天下+坚果云,构建自由可控的数字图书馆和云同步阅读方案
在放缓本博客更新速度的这两年内,笔者不少的时间都花在了阅读和学习上,尤其是对社科、心理学、哲学、历史等学科的学习。起初为了方便获取书籍资源和方便的云同步,笔者选择了在用户体验和出版物数量上首屈一指的微信读书 APP,但随着学习的深入,微信读书内的书籍逐渐无法满足我的阅读需要(尤其是外文图书的缺失),更致命的是,微信读书会在部分书籍的版权到期后选择下架书籍,就算已下载到设备里的书,也会随之消失,包括所有的批注和笔记……本文将为读者分享笔者最近半年来为实现阅读自由而构建的解决方案,希望能帮助书友们构建自己的数字图书馆。
[案例分享] 解包威联通NAS系统镜像,恢复降级后丢失的系统组件
威联通(QNAP)在2021年9月发布了全新的QTS 5.0系统,笔者最近收到了官方更新通知,于是将自己的TS-551升级到最新版,却发现无论是系统流畅度还是稳定性都与他们宣传的差距甚远,不得不降级到QTS 4.5.4。然而由于QTS 5.0将FTP作为可选软件包(QuFTP),降级后系统里既没有QuFTP,也没有QTS 4应该有的
proftpd
,本文将为读者分享威联通NAS解包系统镜像,恢复系统组件的过程。
[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
众所周知,几乎所有的微软软件都不会提供错误码和实际问题的对应表,正如微软也不会在用户手册中列举每个注册表的键值含义。本文将为读者介绍Office365在登录/激活时提示
0xCAA70004
错误的解决方法,希望能帮助到在绝望之中搜索到本文的,正版软件的受害者们。
分析并解决Seafile配置WebDAV后无法正常监听端口的问题
作为一款性能优异、功能全面的文件存储系统,Seafile提供了全平台的客户端供用户使用,但如果需要将Seafile与其他系统集成,我们就需要使用如WebDAV这样的开放协议将Seafile的存储功能以WebDAV的接口暴露出来。然而,自从7.1版本之后,按照Seafile官方文档对其进行配置会出现Seafile无法监听WebDAV端口的问题。本文将为读者介绍这一问题的解决方法。
使用简单的快捷键,让MacOS在文件选择对话框中显示隐藏文件
MacOS对用户文件和系统文件做了较为严格的区分,尽管Macintosh HD磁盘可以类比Unix下的根目录,但我们却无法看到熟悉的Unix目录结构,这其实是因为MacOS的文件系统将系统目录设置为了隐藏目录;同理,对于点号开头的文件,我们也无法在Finder中看到。对于独立的Finder窗口,我们可以在菜单栏中选择
显示
->显示系统文件
,但在选择文件、打开文件或保存文件的对话框中,由于没有对应的菜单栏,我们该如何启用这一选项呢?
解决Windows10 2020年5月更新(2004版本)更新过程中由于驱动程序兼容性导致蓝屏的问题
Windows10 2004更新为Windows10带来了大量的新功能:优化的图标、更快的搜索速度、独立的Cortana、更实用的沙盒等。不少用户从Insider测试开始就在社区中反馈更新过程中出现蓝屏的问题,而这一问题一直持续到了Windows10 2004正式版发布。本文将为读者提供解决这一问题的方法之一,希望能对解决这一问题有所帮助。
CentOS/Fedora/RHEL下使用versionlock插件避免特定软件被更新
为了保证Linux的安全性和稳定性,我们经常需要对安装的软件进行更新。但如果某些更新与当前环境存在兼容性问题(最典型的例子是内核更新与虚拟机Hypervisor的兼容性),我们应该怎么做呢?在CentOS/Fedora/RHEL中(后文以CentOS为例),大部分用户可能会直接修改仓库配置文件,或者执行
yum update --exclude=xxx
,但这两种方法都不够直观,操作也比较繁琐。本文将为读者介绍一种使用yum/dnf的versionlock插件避免特定软件被更新的方法。
在MacOS/Linux终端中快速启动Visual Studio Code,提升工作效率
近几年Visual Studio Code(后文简称VSCode)凭借其丰富的扩展和广泛的社区支持,在软件开发业内赢得了极佳的口碑。但作为一款轻量级编辑器,VSCode同样存在一些不便,例如打开文件功能无法打开文件夹,如果打开文件夹只能启动一个新的VSCode窗口。此外实际开发过程中我们经常需要重复打开若干个文件夹,或是在终端(用于Debug或构建)和VSCode中来回切换。那么有没有更高效的方式呢?本文将为读者介绍一种提高VSCode使用效率的方式,即在终端中快速启动VSCode。
浅谈setTimeout与setInterval函数『不为人知』的第三个参数
提到JavaScript下的
setTimeout()
与setInterval()
函数,接触过JavaScript的读者一定非常熟悉:两个函数都接收一个函数和一个延时两个参数,前者用于设置超时,后者用于设置定时执行。但其实这两个函数除了以上两个参数外还有第三个参数。