2007 年 2 月 14 日你在做什么?遇见女朋友的那天,您正在处理哪些任务?上次与您的牙医预约是什么时候?上个月与客户会面时谁给您打电话?
大多数人无法回答这样的问题。有了 Memacs,你就可以!
Memacs 从计算机上许多不同的现有数据源(文件名、电子邮件、推文、书签等)中提取元数据(主题、时间戳、联系信息等),并生成可由 GNU Emacs 在 Org 模式下读取的文件。
例子:
电子邮件 -> memacs-maildir.py 火狐历史 -> memacs-firefox.py | 短信 -> memacs-sms.py | RSS 源 -> memacs_rss.py | 银行对账单 -> memacs-easybank.py |> Memacs 帖子 -> memacs-slrn.org | git 存储库日志 -> memacs_git.py | svn 存储库日志 -> memacs_svn.py / |_________________| |_________________| |______| 您的个人数据 Memacs 模块 Org 模式
Memacs - 作为系统的核心组件 - 是所有从各个数据源添加数据的连接器的中心。这些连接器称为Memacs 模块或短模块。
您的议程会自动填充类似于白皮书屏幕截图中所示示例的条目:
您可以使用 SMS、filenamedatestamps、Twitter、RSS、imap、phonecalls 和 git 模块查看一些演示数据。
安装 Memacs 最简单的方法是使用 `pip`:
pip 安装 memacs[全部]
这将为您提供整套模块以及系统上的所有依赖项。
如果您想更细粒度地定义依赖项,您可以使用一项或多项附加功能: gps
、 rss
、 ical
、 lastfm
、 battery
或twitter
,如下例所示:
pip 安装 memacs[gps,rss]
如果您更喜欢“以旧方式”设置环境,您可以手动进行:
PYTHONPATH
PYTHONPATH=/路径/到/memacs
pip install -r 要求.txt
使用 Memacs 模块的基本概念如下:
docs
文件夹中的模块描述文件。--help
从 Memacs 的bin
文件夹中手动启动您选择的模块,例如bin/memacs_csv.py --help
在命令行中,以获得该模块参数的概述。Cc mp
到您的配置 ( defun mp-update-memacs-photos ()
" An extra (i.e., not cron-scheduled) run of Memacs' photo module. "
( interactive )
( shell-command
( format " ~/org/update-memacs-photos.sh " )
)
)
( global-set-key ( kbd " C-c m p " ) 'mp-update-memacs-photos )
调用的脚本需要提供可执行位。该技术的其他背景由 Mickey Petersen 在 Mastering Key Bindings in Emacs 中编译。
请确保您还阅读了常见问题解答和最佳实践,因为其中包含许多有关如何满足您的要求以及如何选择合理设置的提示和技巧。
以下是一些工作流程,旨在让您初步了解 Memacs 如何为您带来更多数字乐趣。
当一个或多个 Memacs 模块设置完毕并且数据开始流入您的 Memacs Org 模式文件时,您可以通过多种方式使用 Memacs 进行个人工作流程。
Memacs 带来的最基本的变化是,您可能希望在议程中看到 Memacs 处理的数据:
您要么生成 (1) 个位于议程文件中的组织模式文件,要么生成 (2) 个存档文件,其或多或少为空的组织模式文件存根位于您的议程文件中(如常见问题解答中所述)。
这样,生成的时间戳信息就会进入您的正常议程 (1) 或在存档模式中扩展(通过在议程中按v A
),该模式还显示存档文件的内容 (2)。
我个人一直使用的 Memacs 功能提供了一个稍微复杂的工作流程,其基本数据由文件名时间戳模块提供。该模块对文件名中包含 ISO 日期戳或 ISO 时间戳的所有文件进行索引,就像 updateb 对“定位”所做的那样。
当设置此模块并生成文件索引(每晚)时,乐趣就开始了。通过模块文档中提到的 elisp 片段,我只需指定文件名即可链接到任何这些文件。该链接永远不会被破坏,因为文件位于哪个文件夹中不再重要。
请参阅我的 Emacs 配置并查找所有出现的tsfile
(时间戳文件),这是我为这些文件定制的链接。
我什至扩展了这个工作流程,以便我的博客系统能够链接到tsfile:
图像,无论其位置如何。很棒的东西。
该模块是开发人员的示例:docs/memacs_csv.org
这些模块尚未被新的统一框架采用:
以下模块仅作为一个粗略的想法存在,可能有一天会实现(由您实现?):
想象一下您已经在使用 Memacs。
记得那天,当您参加一个关于“Getting Things Done”(GTD)的有趣演讲时,您使用主 Org 模式文件启动了 GNU Emacs。您可以转到议程视图并选择几个月前的这一特定日期。
就这样,从下午 2 点到 3 点,您在日历中安排了这次演讲。然后您意识到在这个时间范围内,出现了一些包含 ISO 8601 时间戳 [1] 的 JPEG 文件,并由一个模块索引。 (文件名时间戳模块)
此图像包含您觉得有趣并使用时尚智能手机拍摄的幻灯片。谁会记得在演讲时拍过一张照片?
演讲十分钟后,您在 Twitter 上写了一条短信,其中提到了对您的关注者有用的 URL。这次这些 URL 对您来说也很方便! (Twitter 模块)
那天晚上,您会看到演讲作者发来的一封电子邮件条目。现在你记得在演讲结束时进行了一次很酷的谈话,他向你承诺了一些关于他计算机上那个漂亮的小 GTD 工具的附加信息。很高兴您也收到了该电子邮件的链接。如果没有 Memacs,您可能永远不会再记得那封电子邮件。 (Maildir 模块)
然后您今天保存了一些书签,几乎全部与您从 GTD 演讲中获得的好想法有关。 (美味模块)
这个小故事仅展示了几个用例,其中不同的模块组合给定的数据源及其信息以提供与事件相关的整体视图。由于 Org 模式有链接,因此不需要复制实际数据(Memacs 提取的元数据除外)。电子邮件、文件、书签等是链接而不是复制。
[1] 用句点而不是冒号 - 只是因为基于 Microsoft 的文件系统的古老限制;像“2011-02-14T14.35.42 ideas.jpg”
1945 年,Vannevar Bush 写了一篇著名的文章《正如我们所想》,其中他提出了一种名为Memex 的“记忆扩展器”的想法。模因存储器可以存储与一个人有关的所有信件、书籍和其他信息。
除了预见到超文本等多种技术之外,他还定义了一种设备,可以保存所有元数据和数据,并提供访问信息的关联路径。
在上世纪最后十年,微软研究院开展了一项研究计划,最终诞生了 MyLifeBits。该软件试图存储用户的每一项信息,如办公文档、屏幕截图、桌面计算机上活动窗口的名称,甚至自动拍照(SenseCam)。这个词并没有产生任何(开放的)软件产品。贝尔和格梅尔写了一本名为《全面回忆》的书。
Memacs 项目试图通过开源和开放标准来实现 Vannevar Bush 的愿景。因此,它的名称“Memacs”显然是“GNU Emacs”和“Memex”的组合。
Memacs 使用 GNU Emacs Org 模式来可视化和访问由 Memacs 模块提取的信息:使用标签、时间戳、全文搜索等 GNU Emacs 能够导出不同的视图。最重要的视图可能是议程视图,您可以根据所选的时间范围查看特定日期/周/月内发生的任何事情。但你也可以得出其他观点。例如,您可以选择使用标签的布尔组合来生成压缩搜索结果。
与Memacs相关,项目创始人开发了一款名为tagstore的研究软件。该系统允许用户使用标签存储(本地)文件,而无需文件夹层次结构。作为自然扩展,标签库的目标是(本地)文件的关联访问。您可能还想查看 tagstore。 Memacs 和 tagstore 是一个非常有用的组合。
如果您确实想知道如何以简单且独立于操作系统的方式有效地组织数字文件,请阅读 Karl 的这篇博客文章。它也可能为您的工作流程提供一些想法。
Karl 还撰写了一份关于 Memacs 的白皮书,从科学家的角度描述了 Memacs。
如果您想为这个很酷的项目做出贡献,请分叉并贡献或编写一个附加模块!
请参阅 docs/FAQs_and_Best_Practices.org 了解更多开发信息。
我们确信其他模块有很多很酷的想法!这只是开始!
Memacs 的设计考虑到新模块的最小工作量。
我们正在使用 Python PEP8 和测试驱动开发 (TDD)。
Memacs 根据 GPLv3 许可证获得许可。