本文讲一下如何搭建一个私人的工具箱,来更好的帮助工作和生活。

什么是工具箱

顾名思义,工具箱就是一系列工具的合集,类似古代医生的药箱,通常手艺人、匠人这类的人都有这样一个箱子,里面是各种问题、场景的解决方案。

为什么要有工具箱

有了工具箱,再碰到类似的问题、场景,便可以直接从工具箱中取出合适的工具直接解决,而不是从头开始再做一个能解决这个问题的工具,比如现在要钉一个钉子:

  • 没有工具箱:先用木头、铁器做成一个锤子,然后去敲钉子,
  • 有了工具箱:直接取出锤子敲钉子

因为需要提高效率,所以需要工具箱。

怎么搭建工具箱

不同职业工具箱内容肯定是不同的,但是内容虽然不一样,操作的方法却是一样的——道虽不同,其理一也。

代码工具箱

这个里面主要是放一些常用的代码片段,时常用的时候不用每次都去google,自己工具箱里的工具比临时去google 更加可靠和高效,比如 Python 常用的文件结构:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os

if __name__ == "__main__":
    # TODO

python的时间转换:

# datetime 转成时间戳
#字符串转成 datetime, 2015-08-28 16:43:37.283000
d = datetime.datetime.strptime(strValue, "%Y-%m-%d %H:%M:%S.%f")
t = d.timetuple()
timeStamp = int(time.mktime(t))   # 秒

等等各种常用的片段,给个示范的不完整截图: 工具箱截图

代码工具箱的目录组织,可以如下:

$ tree -L 2
.
├── cpp
│   └── readme-cpp.md
├── java
│   └── readme-java.md
├── kindle
│   └── kindle_notes_export.py
├── latex
│   └── readme-latex.md
├── python
│   ├── mysql_util.py
│   └── readme-python.md
├── ss
│   └── main_ss.py
└── thinking
    ├── images
    └── thinking-model.md

私人Google

在如今这个信息纷繁复杂的时代,信息可以分成几个类型:

  • 外网公开可搜索的,比如google、百度一搜就能有的;
  • 付费类知识,比如:得到、极客时间等平台付费课程
  • 平台类信息:比如微信公众号,在外网搜不到;
  • 自己的产出、笔记等等;

要想同时搜索到这些类型的信息,没有任何一个现有平台可以做到,所以我们需要搭建自己的私人搜索引擎,同时也是我们的外部大脑。这样的工具需要满足下面的条件:

  • 输入方便:导入、剪藏网页等
  • 输出方便:搜索能力

额外的非必须的加分项:

  • 格式好
  • 编辑功能强大

根据我多年(超过5年)的使用各种软件的结论,很多软件额外加分项做的很好,可惜的是上面必须的核心功能却远远不够,最终我长期使用的是:Evernote,做私人Google 是非常优秀的,和这个软件的定位合适相符的。

当然,工具各有喜好,只要能达到自己的目的就好,我这两天在Telegram 上发起过一个投票,看看大家都偏向于哪个工具,这里把结果发出来,给大家参考,自行选择: 各种note软件

关于Evernote的组织形式,给一个我的参考: evernote结构

我稍微了研究了一下Evernote,对于电脑端:基本笔记本、层级这类信息是放在sqlite 中,笔记内容是放在内置的一个es之类的搜索引擎里面,所以在离线时也能做到完美搜索。猜测服务器那边也多半是mysql+es+redis这种架构,同时加了一些机器学习、OCR的功能。知道了它的原理,用起来会更加放心。

一些好用的软件

Google calendar+Google keep:用来做日程规划、GTD、TODO list。有明确时间点的就在放入google calendar中,没有明确时间的放入google keep 中,简单实用,比面试上各种眼花缭乱的GTD、TODO 工具好了无数倍。而且这两个工具都在Google的 Gsuit 中,所以也不用担心被Google砍掉。

Typora:一款很优秀的markdown 写作工具;

这里讲一个复杂的使用场景:我经常用typora 写了东西,想放到evernote中,这样可以方便搜索,但是又想保持在Typora 中优秀的样式。如果直接导出html,然后复制到Evernote,样式还是会变化走样,导出PDF放入Evernote是附件形式,不够直接。

所以,完美却有点复杂的方法是:

  1. 导出html格式文件
  2. 启动nginx,本地搞个web服务器
  3. 将第一步的网页放入nginx中,使得能够访问
  4. 浏览器访问网页,然后使用浏览器的Evernote的剪藏插件保存这个网页

通过这样的方式就可以做到完美格式存入Evernote。