重要图-记忆梳理

图包含的信息,是有次序,结构化的。心中有图,亦有全局,在表达、思考上也会从容很多。关键是熟记这些图。
各种基础排序算法的复杂度和稳定性
TCP“三次握手”建立连接
TCP“四次挥手”释放连接
磁盘扇区、文件系统、InnoDB存储引擎各自的最小存储单元
编译的各个阶段
JVM区域划分
五种基本的关系代数运算符

搭建适用Anki 2.1和2.0的同步服务器

看网上的搭建anki同步服务器的教程,发现不能用?

最后发现是版本问题。在2.1中更改了协议。中文教程中还没有提及的,就自己写篇博客补缺吧。

我的Windows Anki客户端是 2.0.x,AnkiDroid的App也是2.0.x支持的,但Linux 下载的是2.1.x的客户端。它们的配置还不一样。

需要参考这个库 https://github.com/tsudoko/anki-sync-server,这个库是Python3支持,之前的搭建anki同步服务器的库是 https://github.com/dsnopek/anki-sync-server 是Python2支持的。安装Python3支持的库。

git clone https://github.com/tsudoko/anki-sync-server.git
git submodule update --init
cd anki-bundled
pip3 install -r requirements.txt
# 如果出了问题,主要是pyaudio,可以参考 https://github.com/tsudoko/anki-sync-server#running-ankisyncd-without-pyaudio 安装anki不带pyaudio
cd ..
pip3 install webob
vim  ankisyncd.conf
# 修改 host 为云服务器私网地址
nohup python3 -m ankisyncd &

下面就是客户端的配置了,由于我的Linux安装的2.1.x,不同于2.0

  1. 打开插件目录
  2. 新建文件夹ankisyncd
  3. 创建__init__.py文件,包含以下内容
import anki.sync, anki.hooks, aqt
addr = "http://127.0.0.1:27701/" # 修改这里的地址
anki.sync.SYNC_BASE = "%s" + addr
def resetHostNum():
    aqt.mw.pm.profile['hostNum'] = None
anki.hooks.addHook("profileLoaded", resetHostNum)

由于Windows下的客户端是2.0.x版本,就是网上比较多的方法了。

  1. 打开插件目录
  2. 新建ankisyncd.py文件,包含如下内容:
import anki.sync
addr = "http://127.0.0.1:27701/" # 修改这里的地址
anki.sync.SYNC_BASE = addr
anki.sync.SYNC_MEDIA_BASE = addr + "msync/"

对于安卓客户端的App,指定自定义同步服务器的地址即可,网上教程较多,不再赘述。

不过还是改用2.0.x客户端,因为为发现有些插件不支持2.1.x版本。