混乱的标点符号

打开你经常上的几个网站,翻开你正在看的书,拿起你身边商品的包装,仔细观察一下其中的标点,有没有被用法各异的标点所困扰?中、英文之间的差异,输入法之间的差异,排版软件处理细节的不同,让标点符号变得异常混乱。 引号、撇号、上标符 首先是「引号」及其面目相似的兄弟们: 符号 Unicode 名称 HTML ' U+0027 单直引号 ' " U+0022 双直引号 " ‘ U+2018 单开弯引号 ‘ ’ U+2019 单

Python的方法解析顺序(MRO)

对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置。而搜索的顺序就是所谓的「方法解析顺序」(Method Resolution Order,或MRO)。对于只支持单继承的语言来说,MRO 一般比较简单;而对于 Python 这种支持多继承的语言来说,MRO 就复杂很多

Markdown 的 Ansi 显示

随着 Jekyll、Octopres、Docpad 等一批静态博客生成器的兴起,Markdown 已经成为写博客的利器。不过,有时候想把博客上的文章直接贴到 BBS 上还是需要去做一些转换,把格式转换为 ANSI 颜色控制符。 原因主要有二: 直接复制网页有些链接就只有文字没有 URL,同时代码高亮之类的就没了。 直接粘贴 Markdown 会引入一些不必要的字符(比

C++11 和 C++98 的 ABI 兼容性

C++11 出来已经好几年了,对其中有些特性还是很感兴趣的,比如 rvalue reference、lambda、alias templates、range-based for 等,正好最近在写 C++ 的代码,就准备尝试一下。 Mac OS X 下面主要的编译器是 Clang,对于 C++11 的支持还是很不错的。 不过 Clang 默认是用的还是 C++98 的标准,要支持 C++11 必须使用两个选项: -std=c++11: 使用 C++11 的标准进

DocPad:基于 CoffeeScript 的静态网站生成器

DocPad 是一个静态网站生成器,同 Jekyll、Octopress 相比,它的可定制性更强; 由于是用 CoffeeScript 写的,速度也比以上两个快很多。最近两天玩了一下,感觉很不错:功能很强大,虽然有些插件不太稳定,但基本功能已经比较完备了。 几个有意思的插件: marked 和 highlight.js:Markdown 支持。highlight.js 是基于 Javascript 的代码