Emacs相关笔记
一些常用的经常忘记的命令
文件查找
find-file-in-project-by-selected emacs配置见如下,需要设置变量 ffip-use-rust-fd 为t (C-v ffip-use-rust-fd) https://github.com/sharkdp/fd mac下需要先安装fd brew install fd
通过ripgrep进行文本内容搜索
spacemacs/helm-project-do-ag M-m s a p
打开所以之前打开过的文件
aborn/open-all-recent-files
打开当前所在的url连接
spacemacs/avy-open-url M-m j U
最近打开过的文件列表
recentf-open-files
magit相关
magit-diff-unstaged
表示全项目的diff
magit-diff
默认表示当前文件的diff
magit-commit的命令失效,需要magit-commit-create替换
统计git的贡献情况: https://stackoverflow.com/questions/42715785/how-do-i-show-statistics-for-authors-contributions-in-git 添加到path里 export PATH=$PATH:/usr/local/go/bin:/Users/aborn/github/CodeSnippet/git 在Mac下还需要安装(awk替换成gawk) brew install gawk 命令如下: git-user-stats.sh --since="1 week ago" https://stackoverflow.com/questions/1828874/generating-statistics-from-git-repository?rq=1
打开所有历史文件 https://emacs.stackexchange.com/questions/52127/how-to-open-all-the-opened-files-from-a-previous-session
Magit的使用
将当前文件添加
相当于git add
M-x magit-status
然后定位到文件,按 s 键加入
或者,采用这个命令
M-x magit-stage-file
可以直接添加当前文件
Emacs高效检索
有这样的场景,其中之一为我们想快速查找到想要的文件;其二为我们能根据关键字快速找到相关文档:
纯文本检索
https://tech.marksblogg.com/meilisearch-full-text-search.html https://github.com/meilisearch/meilisearch 做纯文本检索
ripgrep 按关键字检索
下面这个作为命令行 https://github.com/BurntSushi/ripgrep 本地搜索 https://gist.github.com/pesterhazy/fabd629fbb89a6cd3d3b92246ff29779 如何在emacs里进行设置 rg -i "bixin” 命令行里关键字搜索
mac下需要先安装:
brew install ripgrep
fd-find 按文件名进行搜索
https://lib.rs/crates/fd-find
mac下需要先安装fd:
brew install fd
命令行下:
fd "测试"
Emacs下使用multi-term
Emacs里的multi-term相当于mac下的iterm,是emacs下非常好用的terminal。
载入multi-term.el文件
emacs使用multi-term作为terminal,首先要将multi-term.el文件放到你emacs的load-path里。
配置
;; ------------------------------------------------------------
;; set multi-term
;; ------------------------------------------------------------
(require 'multi-term)
(setq multi-term-program "/bin/zsh")
;; Use Emacs terminfo, not system terminfo, mac系统出现了4m
(setq system-uses-terminfo nil)
下面是几点需要注意的点:
- 我用的是zsh,如果你使用的是bash, 将"/bin/zsh"换成你的"/bin/bash"
- 如果你使用的是mac系统,发现multi-term每行出出了4m,在shell里运行下:
tic -o ~/.terminfo /Applications/Emacs.app/Contents/Resources/etc/e/eterm-color.ti
- zsh在mac下可能会出现中文显示为????的情况,这时候创建一个文件:~/.zshenv,其内容如下:
export LANG='en_US.UTF-8'
export LC_ALL="en_US.UTF-8"
快捷键
打开multi-term的命令是multi-term,你可能发现在multi-term模式下会出现与自己的快捷键冲突的地方。如果想保留自己在其他mode下的快捷键,将快捷键添加到 term-bind-key-alist这个列表中,例如我想把"C-j"保留我其他mode一样,如下:
(add-to-list 'term-bind-key-alist '("C-j"))
解决几个烦人的问题
1. 默认目录 我开始设置的是zsh,我发现,当我用$cd$命令改变工作目录的时候,emacs里的default-directory这个变量没有改变,使得C-x C-f调用打开文件时目录不是当前工作目录? 解决方法将下列代码放到zsh的配置文件 $~.zshrc$里,使得emacs能跟踪路径的改变,参考1,参考2。 参考3
if [ -n "$INSIDE_EMACS" ]; then
chpwd() { print -P "\033AnSiTc %d" }
print -P "\033AnSiTu %n"
print -P "\033AnSiTc %d"
fi
2. 光标位置处理 我希望当光标未处于最后一行时,"C-a"的作用是将光标移动到行首,当光标处于最后一行时,我希望"C-a"的作用是将光标移动到这行命令的开始处。解决方法:将下列 ab/move-beginning-of-line 绑定到快捷键"C-a"即可。
;; 当处于最后一行时 "C-a" 将光标移动到 terminal开始处而不是这个行的头
(defun ab/is-at-end-line ()
"判断是否在最后一行"
(equal (line-number-at-pos) (count-lines (point-min) (point-max))))
(defun ab/is-term-mode ()
"判断是否为 term 模式"
(string= major-mode "term-mode"))
(defun ab/move-beginning-of-line ()
"move begin"
(interactive)
(if (not (ab/is-term-mode))
(beginning-of-line)
(if (not (ab/is-at-end-line))
(beginning-of-line)
(term-send-raw))))
3. 有个烦人的问题,你发现使用了"C-b" (backword-char 函数),你想在命令的中间插入新的字符,每次都插入到了这行的最后。解决方法:将下列ab/backword-char函数绑定到"C-b"
;; 只后当是term-mode并且是最后一行时才采用 (term-send-left)
(defun ab/backword-char ()
"Custom "
(interactive)
(if (not (ab/is-term-mode))
(backward-char)
(progn (if (not (ab/is-at-end-line))
(backward-char)
(progn (term-send-left)
(message "term-send-left"))))))
**4.**修改快捷键的map,如果你发你定义自己的快捷键与该major-mode的冲突,可以直接修改它的key-map
(define-key term-raw-map (kbd "M-n") 'ace-jump-mode)
更多见,我的multi-term配置
Emacs的书签功能
emacs的书签用于记录你在文件中的阅读位置。它有点类似寄存器,跟寄存器一样,因为它也能记录位置位置。 但同寄存器有两点不一样:1. 它有比较长的名字; 2. 当emacs关闭的时候,它会自动持久化到 磁盘。
设置一个书签
当我们阅读一个很长的文档,没能一口气读完时。我们希望记住当前文档的最后阅读的位置,以便下次再用emacs 阅读的时候能快速地定位到。那么,我们设置一个书签,通过bookmark-set 对应快捷键为 C-x r m
列出保存的书签
bookmark-bmenu-list 对应快捷键为 C-x r l ,它将打开一个*Bookmark List*的buffer同时 列出所有保存的书签。
书签列表*Bookmark List*
在*Bookmark List*这个buffer里,有以下快捷键可以使用:
- a 显示当前书签的标注信息;
- A 在另一个buffer中显示所有书签的所有标注信息;
- d 标记书签,以便用来删除 (x – 执行删除);
- e 编辑当前书签的标注信息;
- m 标记书签,以便用于进一步显示和其他操作 (v – 访问这个书签);
- o 选中当前书签,并显示在另一个window中;
- C-o 在另一个window中切换到当前这个书签;
- r 重命名当前书签;
- w 将当前书签的位置显示在minibuffer里。
跳转到一个书签
使用 bookmark-jump 函数,可以跳转到一个特定的书签,它绑定的快捷键为 C-x r b 。 如果你的emacs中安装了helm 这个插件,你也可以使用 helm-bookmarks 这个命令 来快速查找书签,并跳转到书签位置。
helm-bookmarks
通过helm-bookmarks命令来查找并跳转书签如下图:
修改默认排序
书签查找和跳转的时候,默认的书签排序是按字母排序的。如果想将最近访问的书签放在最前面, 将下面代码添加到你的emacs配置文件中。
(defadvice bookmark-jump (after bookmark-jump activate)
(let ((latest (bookmark-get-bookmark bookmark)))
(setq bookmark-alist (delq latest bookmark-alist))
(add-to-list 'bookmark-alist latest)))
删除一个书签
删除一个书签对应的命令为 bookmark-delete 。
保存书签
最新版本emacs(老版本的书签保存在 ~/.emacs.bmk ), 在退出的时候会自动保存书签。如果想手动保存书签的话,可以采用 bookmark-save 这个函数命令。默认的情况,emacs会将书签保存在 bookmark-default-file 变量对应的文件中。在我的机器中,对应的文件如下:
ELISP> bookmark-default-file
"/Users/aborn/.emacs.d/.cache/bookmarks"
ELISP>
其他设置
有一个变量 bookmark-save-flag 。如果这个变量的值为一个数值,它表示修改(或新增) 多少次书签后,emacs会自动保存书签到磁盘。当这个变量的值被设置为1时,每次对bookmark的改 动,emacs就会自动保存内容到磁盘相应位置(这样可以防止emacs突然crash时bookmark的丢失)。 如果这个值设置为nil,表示emacs不会主动保存bookmark,除非用户手动调用 M-x bookmark-save 。
bookmark+
bookmark+ 是对bookmark的一个扩展的包。它有更多的功能:
- 原始的bookmark只能对文件位置记录,bookmark+对孤立的buffer(没有关联文件的buffer)也能保存书签;
- 支持对书签进行打tag;
- 对文档的某个区域保存为书签,而不仅仅是某个位置;
- 记录了每个书签的访问次数,及最后一次的访问时间,可以基于它们排序;
- 多个书签可以有相同的名字;
- 可以对函数、变量等加书签。
更多功能请参考: https://www.emacswiki.org/emacs/BookmarkPlus#Bookmark%2b
Emacs搭建racket开发环境
Java
ehcache调用
@(技术笔记)
ehcache是非常优秀的、轻量级的、本地缓存方案,它可以解决大并发情况下静态资源的快速保存与访问。
引入ehcache jar包
这里引入最新版本的ehcache jar包:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.0</version>
<type>pom</type>
</dependency>
基本概念
1. CacheManager CacheManager是缓存的管理器,使用ehcache必需创建一个CacheManager,它的创建方式有两种: a. 单例模式:
private static volatile CacheManager cacheManager = CacheManager.create()
b. ehcache 2.x以后允许多个cacheManager存在,可以通过.xml配置新的cacheManager,如下demo-ehcache.xml
<ehcache name="DemoCacheManager">
</ehcache>
通过.xml文件初始化非单例模式的cacheManager,如下:
private static volatile CacheManager cacheManager = CacheManager.newInstance(this.class.getClassLoader().getResourceAsStream("demo-ehcache.xml"));
2. cache(缓存) 一个CacheManager可以管理多个缓存,每个缓存在内存中都有其自己的属性,例如缓存元素(Element)的最大个数、缓存在内存中的最长存活时间、缓存的淘汰算法等。一个cache可以存储多个缓存元素(Element)。缓存在使用前都要进行注册,注册有两种方式:
- 通过xml配置文件注册。配置文件可配置缓存的名字,缓存在堆中的最大个数,缓存的淘汰算法等,参数非常之多,下面是一个最简单的例子:
<ehcache>
<cache name="demo"
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU"
>
</cache>
</ehcache>
上面配置了一个缓存名为demo的缓存,它在内存中的最大个数为10000个,最长存活时间timeToLiveSeconds为10分钟(600s),最长可访问时间timeToIdleSeconds为5分钟(300s)。当个数超过最大个数限制时采用LFU算法进行淘汰。eternal表示缓存是否永久不失效,当这个值为true时,上面的最大存活时间和最长可访问时间无效。
- 通过代码动态注册 下面是一个例子,与通过xml文件注册效果一样:
Cache newMemCache = new Cache("demo",
1000, // 内存中最大元素个数
MemoryStoreEvictionPolicy.LFU, // 淘汰策略
false, // 是否存到disk
"/data/appdatas", // 存在disk的位置
fale, // 是否永久有效
600, // timeToLiveSeconds
300, // timeToIdleSeconds
false, // 是否在JVM重启的时候,是否保存到disk
60 * 60, // 多长时间跑一次disk超时的线程(这个参数没用)
null // 注册事件
);
cacheManager.addCache(newMemCache);
3. Element缓存元素 缓存元素是存储数据的最小单位,由其ElementKey和对象组成,如下定义:
Element element = new Element(elementkey, object);
注意:这里的object可以为任意对象!!
调用说明
1. add操作 往缓存中添加Element,如下:
Cache cache = cacheManager.getCache("demo");
if (cache != null) {
Element element = new Element("demoElementKey", "demo object");
cache.put(element);
}
2. get操作 从缓存中取元素
Cache cache = cacheManager.getCache("demo");
if (null != cache) {
Element element = cache.get("demoElementKey");
}
具体例子
具体例子请参考我写的ehcahce-client
Java的事务
在Java语言中,我们经常用到@Transactional这个注释作为事务。
Java事务的生效条件
- 方法必需是 public 描述的,因为Java的事务是通过动态代理实现的
- 注意rollbackFor属性的设置,在代码中需要事务回滚的时候,需要throw相关的异常
- 事务的传递机制,默认是传递的
- 超时设置,避免长事务出现
Rust
思考
语言与生态
许多年前,软件开发都处在单打独斗的时期,那时候没有github,各个公司都各自玩自己的。语言也仅仅是一种语言。但,随着开发工具的演进、软件开发的环境有了很大的改善。github平台的出现,给共享软件开发提供了可能,技术人员越来越多地分享自己的代码。这个时期,软件的开发已经进化到一个生态。
当语言还不是生态的时候
这几年,语言的发展越来越快,出现了很多新的计算机语言,比如go、elixir、rust。有些是领域相关的,有些是通用的。都各自有各自的市场。如果一种语言单单是一种语言,那它的发展必然是缓慢的。每种语言都有其特定的优势,能解决待定的问题,所以才有生存的空间。早期的C语言,后来的C++语言。这种系统级别的语言,一方面发展的缓慢,不是因为难学。
生态为什么那么重要?
一种编程语言就应该有其相应的生态,具体表现在以下几个方面:
- 对用户友好的语言特性(语法);
- 完善的构建工具链(工具);
- 强大的包管理及依赖处理(包);
- 优秀的框架(框架);
- 高质量的库(库);
- 活跃的生态体系(文化);
一种语言没有好的语言特性,它就很难吸引开发者对其关注。但仅有这些还不够。对于,语言创始人来说。他如果想让他的创造的语言有生命力,能大量运行在生产环境。他应该服务好技术开发人员,为他们提供好的构建工具。像Java有maven,elixir有mix,这些都是好的构建工具。有了这些还不够,用户怎样快速集成别人的模块,怎样发布自己的模块。这有赖于包管理的平台,像java有maven仓库,elixir有hex这样的仓库。不得不说,当拥有了这前三荐优势后,那已经很具有吸引力了。javascript的出现有二十多年了,但为什么这近几年它火起来了。不仅仅是v8虚拟机的性能,同时,有了像npm这种方便的包管理工具,同时再加上ts的加持。
合作者模式
软件开发模式进化到当前这种阶段,依赖于互联网的发展。以前,尽管你想把自己做的开源代码共享给其他人用,但没有好的发布渠道,那也是白搭。互联网的发展,使得这种模式成为可能。当然,之前公司基于自己版权和商业利益的考虑,软件的发布都是二进制模。使用都看不到源代码,发现问题,只能通过官方的渠道报告给软件开发者。这使得一个问题的问题周期过长。
当前,github的出现,越来越多的软件都开发源代码。当技术使用都采用了某个代码框架,如果发现问题。可以查看源代码找到问题的来源,并且fork原作者的工程,并对其进行修改。最后直接给原作者提交pull/request,问题的发现和解决周期大大缩短。同时,越来越多的人参与到这种模式中来。一个技术人员,不仅仅可以提交bug的PR,同时也可以提交feature的PR。这会带来以下好处:
- 软件质量会越来越高,(发现bug和解决bug的速度越来越快)
- 软件的迭代周期会缩短,(这已经不是一个单打独斗的时代,这是一个虚拟团队的时代)
生态的竞争
阅读清单
2024年阅读清单
- 《干法》 稻盛和夫 2024-01
- 《经济发展理论》 熊彼特 2024-02
2023年阅读清单
- 《战略与路径》
- 《影响力》
- 《答案在风中飘》
- 《痕迹识人》 王新宇 2023-08
- 《乐高工作法》 Bali Padda 2023-07-25
- 《像绅士淑女一样服务》 Horst Schulze 2023-07-14
- 《微信背后的产品观》 张小龙 2023-06-15
- 《幕后产品》
- 《视觉锤》 劳拉·里斯 2023-11-02
- 《宝贵的人生建议》 凯文凯利 2023-11-04
- 《商战》艾·里斯 2023-11-20
- 《大法官金斯伯格》 2023-12-05
- 《埃隆马斯克传》 2023-12-30
2022年读书清单
- 《足够》 John C. Bogle 2022-02-22
- 《原则》
- 《最重要的事只有一件》 2022-05-12
- 《经营人心》 2022-04-25
- 《第五项修炼》 2022-04
- 《宁静的力量》
- 《高绩效教练》 2022-03-16
- 《信任边际》 2022-03-05
- 《真北》 2022-02
10.《组织的未来》 2022-01
2021年读书清单
- 《你要如何衡量你的人生》 克莱顿·克里斯坦森 2021-01-24
- 《领导梯队》
- 《关键对话》
- 《创新者的课堂》
- 《发现的乐趣》 2021-07
- 《工作的意义》 2021-05
- 《光环效应》 2021-07
- 《深度休息》 2021-06
- 《毛姆文学课》 2021-06
- 《写给大家看的设计书》 2021-05
- 《危机时代》 2021-05
- 《好战略,坏战略》 2021-05
- 《少有人走的路》 2021-05
- 《费曼学习法》 2021-04
- 《不拘一格》 2021-04
- 《经济发展理论》 2021-03
- 《冯唐成事心法》 2021-02
- 《善战者说》 2021-01
- 《救命的数学》 2021-01
- 《你要如何衡量你的人生》 2021-01
2020年读书清单
- 《要领》 John L Hennessy 2020-06-25
- 《一生的旅程》 罗伯特·艾格 / 乔尔·洛弗尔 2020-07-26
- 《如何达成目标》 海蒂·格兰特·霍尔沃森 2020-12-31
- 《卓有成效的管理者》
- 《稻盛和夫自传》 2020-12
- 《苏世民:我的经验与教训》 2020-05
- 《要领》 2020-06
- 《文明、现代化、价值投资与中国》 2020-07
- 《一生的旅程》 2020-07
- 《伟大的中国工业革命》 2020-07
- 《理性乐观派》 2020-08
- 《大器晚成》 2020-08
- 《债务危机》 2020-09
- 《价值》 2020-09
- 《分析与思考》 2020-10
- 《你所做即你所是》 2020-11
- 《复盘网飞》 2020-11
2019年读书清单
- 《重新定义公司》 埃里克·施密特 2019-01-10
- 《混乱》 蒂姆·哈福德 2019-01-20
- 《零售的哲学》 铃木敏文 2019-01-25
- 《百岁人生》 琳达·格拉顿 2019-02-11
- 《共生》 陈春花 2019-02-19
- 《曾国藩传》 张宏杰 2019-03-03
- 《内在成长》 塔玛·琼斯基 2019-03-11
- 《活出生命的意义》 维克多·弗兰克 2019-03-17
- 《认知天性》 Peter C. Brown 2019-03-25
- 《少有人走的路》 斯科特·派克 2019-04-09
- 《复盘+》 邱昭良 2019-04-17
- 《清醒思考的艺术》 罗尔夫·多贝里 2019-04-20
- 《最好的告别》 阿图·葛文德 2019-05-01
- 《系统之美》 德内拉·梅多斯 2019-05-12
- 《商业的本质》 杰克·韦尔奇 2019-05-18
- 《创新者的任务》 克莱顿·克里斯坦森 2019-05-25
- 《一网打尽》 布拉德·斯通 2019-05-26
- 《高效能人士的执行4原则》 克里斯•麦克切斯尼 2019-06-03
- 《能力陷阱》 Herminia lbarra 王臻 2019-06-07
- 《笑着离开惠普》 高建华 2019-06-10
- 《深度管理》 [美]大卫•戴伊 2019-06-15
- 《巴菲特致股东的信》 巴菲特 2019-06-26
- 《奈飞文化手册》 帕蒂·麦考德 2019-07-01
- 《驱动力》 丹尼尔•平克 2019-07-09
- 《一路向前》 霍华德·舒尔茨 2019-07-23
- 《思维的本质》 约翰·杜威 2019-08-02
- 《赢》
- 《魔鬼数据》 2019-08-27
- 《团队协作的五大障碍》
2018年读书清单
- 《陆犯焉识》 严歌苓 2018-01-07
- 《穗子》 严歌苓 2018-01-16
- 《床畔》 严歌苓 2018-01-21
- 《外婆的道歉信》 弗雷德里克•巴克曼 2018-01-29
- 《天浴》 严歌苓 2018-02-05
- 《金字塔原理》 Barbara(王德忠、张珣) 2018-02-12
- 《这个历史挺靠谱》 袁腾飞 2018-03-05
- 《给经理人的第一课》格鲁夫(巫宗融) 2018-03-15
- 《谁在世界中心》 温骏轩 2018-03-18
- 《第五项修炼》 彼得·圣吉 2018-03-30
- 《私人生活的变革》 阎云翔 2018-04-06
- 《基业长青》 吉姆柯林斯 杰里波勒斯 2018-04-13
- 《穷查理宝典》 美彼得·考夫曼 2018-05-09
- 《只有偏执狂才能生存》 安迪·格鲁夫 2018-05-17
- 《原则》 Ray Dalio 2018-06-12
- 《禅与日本文化》 铃木大拙 2018-06-24
- 《历史的教训》 威尔·杜兰特 2018-06-28
- 《千面英雄》 约瑟夫·坎贝尔 2018-07-13
- 《经营者养成笔记》 柳井正 2018-07-15
- 《终身成长》 卡罗尔·德韦克 2018-07-25
- 《跃迁》 古典 2018-08-01
- 《为什么精英都是时间控》 桦泽紫苑 2018-08-06
- 《我的职业是小说家》 村上春树 2018-08-09
- 《刻意练习:如何从新手到大师》 安德斯 2018-08-18
- 《风格感觉:21世纪写作指南》 平克 2018-08-25
- 《打破自我的标签》 陈虎平 2018-08-31
- 《规模》 杰弗里韦斯特 2018-09-08
- 《高效能人士的七个习惯》 史蒂芬·柯维 2018-09-12
- 《稀缺》 塞德希尔·穆来纳森 2018-09-22
- 《从优秀到卓越》 柯林斯 2018-09-30
- 《苏菲的世界》 乔斯坦·贾德 2018-10-07
- 《赋能:打造应对不确定性的敏捷团队》斯坦利 2018-10-15
- 《盗火》 史蒂芬·科特勒 2018-10-21
- 《企业生命周期》 伊查克·爱迪思 2018-10-29
- 《写作这门手艺》 约翰·麦克菲 2018-11-04
- 《今日简史》 尤瓦尔·赫拉利 2018-11-10
- 《怎样管精力 就怎样过一生》 奥迪尔·夏布里亚克 2018-11-18
- 《天才的编辑》 司各特·伯格 2018-12-05
- 《重新理解创业》 周航 2018-12-09
- 《未来简史》 尤瓦尔·赫拉利 2018-12-19
- 《人类简史》 尤瓦尔·赫拉利 2018-12-31
2017年读书清单
- 《未来简史》 尤瓦尔·赫拉利 (林俊宏译) 2017-02-27
- 《富甲美国》 山姆沃尔顿 (杨蓓译) 2016-07-01
- 《天才在左疯子在右:心理疾病漫谈》 宁安宁 2017-07-28
- 《达·芬奇密码》 丹·布朗 2017-08-04
- 《岛上书店》 加·泽文(Gabrielle Zevin) 2017-08-15
- 《月亮和六便士》 威廉·毛姆 (傅惟慈) 2017-08-18
- 《人类的群星闪耀时》 斯蒂芬·茨威格(吴秀杰) 2017-08-22
- 《麦肯锡方法》 艾森·拉塞尔 (张薇薇 ) 2017-08-26
- 《写出我心》 娜塔莉·戈德堡 (韩良忆 ) 2017-08-27
- 《刀锋》 威廉·毛姆 (冯涛、周煦良) 2017-09-04
- 《了不起的盖茨比》 斯科特·菲茨杰拉德 2017-09-09
- 《如何成为一个有趣的人》 王小圈 2017-09-12
- 《人间失格》 太宰治 (日) 2017-09-26
- 《慢慢来,一切都来得及》 meiya 2017-10-24
- 《怎样讲好一个故事》Mark Kramer 王宇光 2017-10-27
- 《流动的盛宴》 欧内斯特·海明威 2017-10-29
- 《专业主义》 大前研一 (裴立杰) 2017-10-31
- 《爆裂》 Joi Ito & Jeff Howe 2017-11-05
- 《傲慢与偏见》 简·奥斯丁 2017-11-19
- 《邓小平时代》 傅高义 2017-11-25
- 《领导力21法则》 John C. Maxwell 2017-11-30
- 《人件》Tom DeMarco Timothy Lister 2017-12-07
- 《北回归线》 Henry Miller 2017-12-12
- 《为什么是中国》 任志刚 2017-12-21
2016年读书清单
- 《谋杀与创造之时》 劳伦斯布洛克 (吕中莉译) 2016-03-01
- 《超越智商:为什么聪明人也会做蠢事》 基思斯坦诺维奇 (张斌译) 2016-03-12
- 《看不见的城市》 卡尔维诺 (张密译) 2016-03-31
- 《教室外的视野》 番红花(台) 2016-04-23
- 《吃一场有趣的宋朝饭局》 李开周 2016-05-02
- 《禅与摩托车维修艺术》 罗伯特M波西格 (张国辰译) 2016-06-22
- 《只是为了好玩》 Linus Torvalds (陈少芸译) 2016-07-15
- 《大教堂与集市》 Eric S. Raymond (卫剑钒) 2016-08-10
- 《蒋勋说唐诗》 蒋勋 2016-09-25
- 《蒋勋说宋词》 蒋勋 2016-11-20
- 《引爆点》马尔科姆格拉德威尔 (钱清 覃爱冬) 2016-12-07
2013年阅读清单
序号 书名 作 者 完成时间 类型 推荐指数
- 《江城》 彼得海斯勒 2013-01-08 小说 *****
- 《哲学的慰藉》 阿兰德波顿 2013-02-21 哲学 *****
- 《寻路中国》 彼得海斯勒 2013-03-03 小说 *****
- 《爱情笔记》 阿兰德波顿 2013-03-05 小说 ****
- 《万历十五年》 黄仁宇 2013-03-13 历史 ****
- 《旅行的艺术》 阿兰德波顿 2013-03-15 小说 ****
- 《自控力》 麦格尼格尔 2013-03-22 心灵 *****
- 《小王子》 埃克苏佩里 2013-03-28 小说 *****
- 《历史决定论的贫困》 卡尔波普尔 2013-03-30 哲学 *****
- 《批评官员的尺度》 刘易斯 2013-04-07 思想 *****
- 《七日谈》 刀尔登 2013-05-08 小说 ***
- 《杰克韦尔奇自传》 杰克韦尔奇 2013-05-23 自传 *****
- 《无组织的组织力量》 克莱舍基 2013-05-24 社会 ****
- 《重来》 贾森弗里德 2013-05-26 社会 ****
- 《认识盈余》 克莱舍基 2013-05-27 社会 ****
- 《重申自由主义》 安东尼雅赛 2013-05-31 思想 *****
- 《非理性的人》 威廉巴雷特 2013-05-31 哲学 *****
- 《生活在别处》 米兰昆德拉 2013-06-03 小说 ****
- 《无知》 米兰昆德拉 2013-06-03 小说 ****
- 《历史学家的修养与技艺》李剑鸣 2013-06-10 历史 *****
- 《幻影公众》 李普曼 2013-06-12 政治 *****
- 《不朽》 米兰昆德拉 2013-06-22 小说 ****
- 《安妮日记》 安妮弗兰克 2013-07-13 日记 *****
2012年阅读清单
序号 书名 作 者 完成时间 类型 推荐指数
- 《超越死亡》 肯威尔伯 2012-01-04 心灵 *****
- 《一九八四》 乔治奥威尔 2012-01-31 小说 *****
- 《目送》 龙应台 2012-02-05 散文 *****
- 《野火集》 龙应台 2012-02-05 杂文 *****
- 《趋光运动》 残 雪 2012-02-14 回忆 ***
- 《残雪文学观》 残 雪 2012-02-18 文学 ***
- 《白银时代》 王小波 2012-02-21 小说 ****
- 《罗素自传》 罗 素 2012-03-07 自传 *****
- 《通往天堂的最后那段路程》 薛忆沩 2012-03-10 小说 ***
- 《一万小时天才理论》 科伊尔 2012-03-13 励志 ***
- 《奇特的一生》 格拉宁 2012-03-15 小说 ****
- 《改变,从心开始》 罗伊马丁纳 2012-03-29 心灵 *****
- 《身心灵全面疗愈》 罗伊马丁纳 2012-04-07 心灵 ***
- 《做一个心灵富有的人》 吉纳维芺 2012-04-24 心灵 ***
- 《黑客与画家》 PaulGraham 2012-04-27 哲学 *****
- 《流动的房间》 薛忆沩 2012-05-09 小说 ***
- 《黑铁时代》 王小波 2012-05-21 小说 ****
- 《单刃毒剑中国民族主义批判》 刘晓波 2012-06-04 杂文 *****
- 《中国人史纲》(下) 柏 杨 2012-07-12 历史 *****
- 《中国人史纲》(上) 柏 杨 2012-07-13 历史 *****
- 《乱世枭雄曹操》 蔡大东 2012-07-17 传记 ****
- 《哈佛幸福课》 吉尔伯特 2012-07-21 人文 *****
- 《公正该如何做是好?》 桑德尔 2012-07-28 哲学 *****
- 《旧制度与大革命》 托克维尔 2012-08-02 政治 *****
- 《日本边境论》 内田树 2012-08-09 文化 ****
- 《沧浪之水》 阎 真 2012-08-20 小说 *****
- 《菊与刀》 本尼迪克特 2012-10-12 文化 *****
- 《蒋介石传》 布来恩 2012-10-19 传记 *****
- 《这些人,那些事》 吴念真 2012-10-27 人文 ***
- 《男女内参》 不加V 2012-10-31 人文 ****
- 《眨眼之间》 马尔科姆 2012-11-17 心理 ****
- 《送你一颗子弹》 刘瑜 2012-12-13 人文 ***
- 《怪诞心理学》 理查德 2012-12-17 心理 ****
- 《围城》 钱钟书 2012-12-19 小说 *****
- 《生命之书》 克里那穆提 2012-12-21 心灵 ****
- 《民主的细节》 刘瑜 2012-12-25 政治 *****
2011年阅读清单
2011年1月 在江大时:
编号 作品 作者 完成日期 是否推荐
-
《三毛作品集》 三毛 2011-01-23 是
-
《他人就是地狱》 萨特 2011-01-27 是
-
《丑陋的中国人》 柏杨 2011-01-27 是
-
《瓦尔登湖》 梭罗 2011-02-23 是
-
《柏拉图的智慧》 柏拉图 2011-02-26 是
-
《人生的智慧》 叔本华 2011-02-26 是
-
《林清玄散文》 林清玄 2011-02-28 是
-
《叔本华文集》 叔本华 2011-02-03 是
-
《再读胡适》 胡适 2011-03-03 是
-
《沈从文自传》 沈从文 2011-04-10 是
-
《名人传》 罗曼罗兰 2011-04-13 是
-
《抵挡太平洋的堤坝》 杜拉斯 2011-04-14 否
-
《忏悔录》 卢梭 2011-04-21 是
-
《罗素道德哲学》 罗素 2011-04-24 是
-
《中国近代史大纲》 蒋廷黻 2011-04-24 是
-
《时间的革命》 乔纳森邓恩 2011-04-27 否
-
《思想录》 帕斯卡尔 2011-05-04 是
-
《忏悔录》 圣奥古斯丁 2011-05-07 是
-
《踩蛇》 川上弘美 2011-05-08 否
-
《形而上学的迷雾》 刘晓波 2011-05-20 是
-
《沉思录》 西塞罗 2011-05-22 是
-
《简朴生活读本》 司各特 2011-05-24 是
-
《爱因斯坦传》 鄂华 2011-05-25 是
-
《马克吐温自传》 马克吐温 2011-06-01 是
-
《吸引力法则》 2011-06-07 否
-
《百年孤独》 马尔克斯 2011-06-11 是
-
《老鼠爱大米》 余杰 2011-06-21 是
2011年9月 在复旦以后:
编号 作品 作者 完成日期 是否推荐
28. 《巨流河》 齐邦嫒 2011-10-20 是
29. 《异类》 马尔科姆 2011-10-31 是
30. 《幸福之路》 罗素 2011-11-24 是
31. 《生活十讲》 蒋勋(台) 2011-12-04 是
32. 《孤独六讲》 蒋勋(台) 2011-12-14 是
33. 《给青年艺术家的信》 蒋勋(台) 2011-12-17 是
34. 《给青年建筑师的信》 汉宝德(台) 2011-12-25 是
2010年阅读清单
序号 书名 作 者 完成时间
- 《我们要活得有尊严》 柏 杨 2010-1-7
- 《汪曾祺谈师友》 汪曾祺 2010-1-18
- 《忆往述怀》 季羡林 2010-2-24
- 《霜冷长河》 余秋雨 2010-3-3
- 《母亲》 高尔基 2010-3-19
- 《夏天》 高尔基 2010-3-19
- 《王小波散文》 王小波 2010-3-31
- 《自白》 梁晓声 2010-4-12
- 《千年一叹》 余秋雨 2010-4-21
- 《坟》 鲁 迅 2010-4-29
- 《贾平凹散文》 贾平凹 2010-5-13
- 《人性似水》 梁晓声 2010-5-23
- 《务虚笔记》 史铁生 2010-6-21
- 《我的梦想在燃烧》 余 杰 2010-6-21
- 《铁屋中的呐喊》 余 杰 2010-7-13
- 《我的不安》 龙应台 2010-8-14
- 《黄金时代》 王小波 2010-8-25
- 《谁的大学》 薛 涌 2010-9-8
- 《学而时习之》 薛 涌 2010-9-12
- 《修炼当下的力量》 埃克哈特[德] 2010-9-14
- 《海伦凯勒自传》 海伦凯勒[美] 2010-9-20
- 《富兰克林自传》 富兰克林[美] 2010-9-27
- 《弘道悟语》 钱弘道 2010-10-3
- 《美国是如何培养精英的》 薛 涌 2010-10-7
- 《北大批判》 薛 涌 2010-10-16
- 《火与冰》 余 杰 2010-10-23
- 《选择的批判 与李泽厚对话》 刘晓波 2010-10-28
- 《形而上学的迷雾》 刘晓波 2010-10-31
- 《美丽心灵纳什传》 西尔维娅[美] 2010-11-20
- 《尼采生在哲学》 尼 采[德] 2010-11-29
技术笔记
Git的使用
出现如下问题,中文的文件名显示异常,如下图:
解决如下,参考
git config --global core.quotePath false
生活
台湾自由行
台湾,一个绝对值得你一去的地方。它不像其他的旅游城市,基本上你想在旅游过程中看的景色 在台湾都能找到。有山,有水,有海,还有城市。说到山,自然是阿里山、太鲁阁;说到水,自然是日水潭; 说到海,当然,台湾四面环海,不过,去垦丁看海是最好的去处;在台北,你可以体验到一个自由、开放而 有序的城市风格。
行前的准备
海外旅游,我想行前的准备都差不多。签证、机票、及行程安排。
签证
去台湾旅游,与去国外其他地方不太一样。因为政治原因,去台湾要多办一证。总结起来是两证一签注。
- 台湾通行证,是大陆发的;
- 一次签注,也是大陆发的;
- 入台证(官方全称是:中華民國臺灣地區入出境許可證),台湾地区发的。
通行证和签注是非常好办的,自由行地区,去当地的出入境管理里中心就可以办理。我们是二月底办理,三月 上旬就拿到了通行证。注意:办通行证的同时,可以选择顺便办理一次签注(一次签注的有效期是半年, 所有,也不过太过早办理)。在上海的朋友可能要注意,有些出入境管理中心周六人特别多,所以去办之前 最好提前在网上预约,这样到那边以后直接打印个人申请表,就不用再填一次。
机票
我是在