Supermemo iPhone版课程生成脚本

老婆要从头开始准备考雅思了,我先找了一本李笑来的《新托福iBT词汇分类突破》(感谢作者自己提供PDF版本下载)来给她背单词,里面的插画十分有爱。学习的劲头也被点燃了,我现在每次回家都看见她在看这本单词书(怎么和我电脑屏幕总是桌面一个感觉)。

但是准备过这种考试的都知道,背单词主要是在重复,一开始能记住基本是没用的,而且是有策略的重复,一次记不住单词的意思不要紧,先往前走,把能记住的记住了,记不住的反复记。原来我自己准备GRE的时候自己是弄了一个时间表,哪一天背哪几个新的单词表,复习哪几个旧的都列在上面,严格按照这个时间表来进行,最后效果也比较满意。

我一直在订阅舍得的博客,里面介绍了不少supermemo的用法。于是我就想用supermemo辅助我老婆的记单词任务。简单搜索了一下,发现supermemo有iOS的版本,还是免费的,正好家里面也有iPad和iPod Touch可以直接使用。原来我安卓上的那个Anki记忆软件在App Store里面要24.99美金,于是放弃了。

下载之后发现Supermemo iPhone版之所以是免费的,因为他里面的很多课程都需要用户购买。不过他也提供了自定义课程的功能。可以直接把你需要的问题/答案写在一个特定格式的文本文件里,上传到设备进行学习。那于是我就在想怎么能把李笑来这本书里面的单词做成一个课程,甚至把任意的单词表生成课程。

这个项目的启发下,我自己也写了一个Python脚本,能够把utf-8编码并用tab键分开的的txt文档转换为supermemo可以导入的格式。项目链接在这里,这还是我第一次用github发布自己的代码。

使用方法,运行即可,会要求输入源文件路径及各列编号:

源文件必须要用Tab分隔,音标暂时只能处理金山词霸的:

输出文件内容:

iOS设备效果:

Windows下使用Octopress嵌入Python代码的问题

前一篇日志其实蛮想测试一下Octopress的代码嵌入及下载功能,但是按照Octopress的文档说明,用 `{% include_code %}` 命令出来的居然是一个错误

1
Liquid error: No such file or directory - python -c “import sys; print sys.executable”

让我百思不得其解。只好先把代码显示先改为文件下载。

问题会出在哪里呢?我在ruby-taiwan论坛和twitter上都问了,没有人回答我。我只好自己来找bug。其实也不是很难,在Octopress的support就有人提出了这个问题,原来是因为pythonexec.rb这个文件不支持windows,你可以打开他的代码看看,里面只有判断是不是mac和unix的操作系统,根本就没有有关windows的一行代码。这是说用ruby的人没有用windows的么?

解决方法,下载这个文件,代替ruby目录\lib\ruby\gems\1.9.1\gems\rubypython-0.5.1\lib\rubypython下的同名文件就好。荣誉归于raineszm

另外,Octopress的开发者imathis新开了一个网页,介绍可用于Octopress的主题,有几个还是挺不错的,我现在在用的就是里面的slash。