惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
F
Full Disclosure
A
About on SuperTechFans
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
Know Your Adversary
Know Your Adversary
K
Kaspersky official blog
L
LINUX DO - 热门话题
Recorded Future
Recorded Future
C
Cisco Blogs
M
MIT News - Artificial intelligence
T
Tenable Blog
G
GRAHAM CLULEY
月光博客
月光博客
Recent Announcements
Recent Announcements
V
Visual Studio Blog
IT之家
IT之家
T
The Exploit Database - CXSecurity.com
The GitHub Blog
The GitHub Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
P
Privacy International News Feed
P
Proofpoint News Feed
I
Intezer
博客园 - 叶小钗
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
小众软件
小众软件
Hacker News - Newest:
Hacker News - Newest: "LLM"
O
OpenAI News
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
The Cloudflare Blog
Spread Privacy
Spread Privacy
酷 壳 – CoolShell
酷 壳 – CoolShell
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
B
Blog RSS Feed

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事 blockly与结对编程
Joplin: 关注隐私的 Evernote 开源替代软件
种瓜 · 2019-10-17 · via 夜行人

上图中,我在笔记本中搜索编程 Python, 在毫秒级的时间里,从 11509 条笔记中,搜出了所有包含 编程/Python 的笔记。

一些问题

我是谁

我是 Evernote 多年老用户,积累了一万多条笔记。

为何放弃 Evernote?

放弃 Evernote,倒不是因为它在产品层面有什么值得吐槽的地方。Evernote 基本满足我日常的所有需求。尤其最近还支持了 markdown。 它肯定是最好的商业笔记软件之一。

放弃 Evernote 的主要原因是我开始关注隐私,最近围绕加密和隐私这个话题写过一些文章:

如果碰巧你也是一个喜欢记笔记或备忘录的人,可能会经常在不同客户端之间同步笔记。有时趴在床上读完书,习惯在平板上写写读书心得;有时在旅途中,记录一些感触;有时在电脑上, 记录一些信息片段。

Evernote 客户端之间数据同步是经由它的云端。根据不同国家的法规,公司的数据需要不同程度上开放给政府审查,对此有兴趣的朋友,不妨去翻翻相关法律法规。此外,在机器学习的驱动下,偷窥用户数据,进而从中淘金,在各大公司里,进展得如火如荼, 看看最近 Siri 和亚马逊干的事,便知道下限有多低了。

苹果已经是在商业公司里,最关注用户隐私的公司之一了。

倒不是说 Evernote 也和这些公司一样混蛋,Evernote 一直给人一种小而美的感觉,我喜欢这个产品,很感谢他们的辛勤劳动,也情愿相信这是一家伟大的公司,但这并不能说服我去信任一个明显存在风险的机制 – 非开源软件, 云端同步数据。

当我在 Evernote 里写下一些思考的时候,总觉别扭,于是私密的东西,我宁可记录在纸上。记录在云端,怕冷不防背后冒出一双眼睛,就像晚自习看小说时,身后的班主任。

那些说你之所以怕被人看到笔记和想法,就是心里有鬼的人。真希望能少做些有罪推定,希望你今后有了孩子,能忍住控制欲,别偷窥 ta 的日记本。

尽管偷窥在这儿有时候是一种文化,我们从小到大,在社会生活的各个方面,也见得多了,但它毕竟是偷窥啊,不能因为这么干的人多就变得合理,不能因为这么干的公司都很成功就变得合理,不能因为整个环境都这样干就变得合理。当然,也不能因为"他们"说这是为你好或者为大家好就变得合理。无论"他们"有多大的权力。

我无法把自己一些私人的想法,交出去让人审查,在我看来这是自由的底线之一。

关于这点,约翰·斯图尔特·密尔《论自由》里已经做了充分阐述.

我深信,在今天,围绕隐私问题的争论,和密尔所处的时代,围绕自由问题的争论是极度相似的。

隐私关乎数字时代的自由。

因为上述的讨论,只能放弃使用商业笔记软件。

Why not OneNote/有道云笔记

原因在上边已经说了。

并不是这些软件的功能不好,只考虑功能,他们几乎都是最佳选择之一。如果考虑隐私,就只能放弃。

对笔记软件的需求

为了实现隐私的目标,客户端开源是必要的,否则你并不能知道软件在背后都干了啥。但开源的笔记软件也有很多,我试用过不少,可能多数都用过。在遇到Joplin之前,一直没一款中意的。

我对笔记软件的需求不算挑剔, 列举出来,无非以下几点:

  • 支持 markdown
    • 注: 大多数开源笔记软件都支持 markdown,商业软件反而许多不支持,Evernote 最近才支持。
  • 支持标签
    • 注: 方便日后整理笔记。
  • 支持快速的搜索
    • 注: 笔记数量一多,大多数开源软件就非常卡
  • 支持保存文件(粘贴截图等)
    • 注: 许多开源软件只允许你粘贴图片连接。但保存本地截图却是我的日常需求。
  • 导出为 PDF
    • 注: 有时要将笔记内容分享给同事,PDF 比 markdown 文本易读。这功能在 Evernote 中需要付费。
  • 跨平台同步功能
    • 注: 我平时使用 MacOS 和 iOS 两个系统,希望有跨平台客户端,他们之间能够同步笔记。而且最好允许我自己架设同步服务器。
  • 支持端对端加密
    • 注: 最好支持端对端加密,这样可以将数据存在不信任的云上;此外也保证在非信任网络里,同步笔记时能确保安全性。

为满足这些需求,我试用过许多开源笔记软件,大多数使用时间都没超过 2 天。我甚至还自己写过一个笔记本软件: WNE(WNE Not Evernote),用了几个月后,又回到 Evernote,原因是不够易用,比如搜索用的是ack-grep

易用性当然也是核心需求。

Joplin 是目前满足我所有需求的开源笔记软件。所以我在 APP Store 里的第一个满分评价,就给了它,我评价里说: 关注隐私的Evernote替代物中,Joplin也许是最好的

从 Evernote 中迁移数据

如果你与我一样,是 Evernote 老用户,安装完 Joplin 之后,第一件事,便是从 Evernote 导入笔记 到 Joplin。

我在 Evernote 里有 11509 条笔记,将其从 Evernote 导出到 Joplin,只花了几分钟。笔记导入 Joplin 的时间要短于从 Evernote 导出的时间。

将笔记导出 Evernote

关于如何从 Evernote 导出所有笔记,可以参考如何备份(导出)和恢复(导入)笔记和笔记本

将笔记导入 Joplin

官方文档说的很清楚了: 打开File > Import > ENEX,选择你从 Evernote 导出的文件即可。

跨平台同步笔记

Joplin 支持多种方式同步笔记:

  • Dropbox
  • NextCloud
  • WebDAV
  • OneDrive
  • 文件系统

你可能会疑惑,Dropbox、OneDrive 不都是商业云服务吗?为何一个关注隐私的项目要支持这些云服务?那不如直接使用 OneNote 算了。

情况是这样的,当你使用了端对端加密后,数据只有你自己能加解密。所以可以放心地使用不受信任的网络和云服务,把它当作中间管道使用即可。

我的选择

我的选择是WebDAV,WebDAV 是个开放协议,是 HTTP 的扩展,有利于用户间协同编辑和管理存储在万维网服务器文档。WebDAV 协议为用户在服务器上创建、更改和移动文档提供了一个框架。

同步笔记正是创建、更改和移动文档的一个例子。

我的思路是电脑上跑一个 WebDAV 服务,然后将其用作服务器,在 Joplin 不同客户端之间同步数据。

Joplin 目前支持以下 WebDAV 服务:

  • Apache WebDAV Module
  • Box.com
  • DriveHQ
  • Fastmail
  • HiDrive from Strato. Setup help
  • Nginx WebDAV Module
  • NextCloud
  • OwnCloud
  • Seafile
  • Stack
  • WebDAV Nav, a macOS server.
  • Zimbra

我准备跑一个轻量级且开源的WebDAV服务, 选择了wsgidav (因为比较熟悉 Python),它只是一个Python库。

使用起来很简单:

1
2
3
4
5
# 安装
pip3 install cheroot wsgidav
pip3 install python-pam
# 运行
wsgidav --host=0.0.0.0 --port=8002 --root=/tmp --auth=pam-login

启用pam-login认证之后,WebDAV 服务的登录名/密码就是你当前电脑的登录名和密码。

WebDAV 服务运行起来之后,在 Joplin 客户端做个配置,就可以用起来了。

ps: 如果你是非技术用户, 不建议你自己运行WebDAV服务,简单的方案是,开启端对端加密,然后使用 Dropbox/OneDrive/NextCloud,它同样是安全的。

端对端加密

端对端加密在 Joplin 是个可选项,操作起来十分方面,只是打个勾而已,文档在这儿:关于端到端加密(E2EE),需要注意的是,加密是个重计算量的活,如果你的笔记和我一样多,第一次同步数据最好在睡前,可能要花上一个晚上时间。

Joplin的端对端加密截至2021年还是不稳定:

注意事项

丢失数据

使用 WebDAV 来同步笔记,有个问题需要留意,官方在 FAQ 里有列出: 更改 WebDAV URL 后,我的所有笔记都被删除!

同步数据前,一定记得先导出数据,做个备份!

后记

OneNote

如果你是OneNote用户,关注隐私,也可以很轻松切换到Joplin。现将笔记导出导入到Evernote,再按照上文操作即可。

其他笔记软件用户同理。

参考