0%

回顾我学习和使用 LaTeX 的经历,有几个时间节点让我感触颇深:

  • 初次接触 LaTeX 时,感受到它对样式强大的控制能力和对数学公式的排版能力,心中对 Microsoft Word 颇有愤懑。
  • 熟练使用 LaTeX 后,困于 LaTeX 中过于强大的样式控制能力带来的复杂性与笔记等需要速记的场景之间难以调和的矛盾。
  • 初次接触 Markdown 时,感受到它在内容和样式之间取得了比较好的平衡。它的样式可以用 CSS 来控制。
  • 折腾 Sphinx、Pandoc 等工具尝试将 Markdown 文稿转换为 LaTeX 文稿时,对这些工具的转换效果和细节问题感到崩溃。

在这之后很多年里,我一直期待能有一个工具,能够更好地平衡 Markdown 的便捷性和 LaTeX 对样式的控制能力和对数学公式的排版能力。前几天,我发现了 markdown 宏包。我认为已找到了这样梦想中的工具。并且,我认为在熟练使用它之后,可以更好地实现 LaTeX 设计之初的愿望:内容与样式分离

本文又名:「你喜爱的 Markdown 写作,现更以 LaTeX 呈现」。
——来自 Harry Chen 的 Apple 风格标题。

阅读全文 »

这里是凭回忆记录的赵东坡老师的「五步精听法」。这个方法是我很多年前在上 TOEFL iBT 培训时,从赵东坡老师处习得。

本文先讲怎么训练,然后解释为什么要这样训练。

阅读全文 »

最近在读各种 Hive SQL,发现一个可读性问题,让我很无奈。这里记录一下,希望看到的读者能够写出可读性更好的代码。

因为业务比较复杂,所以大家经常会用到各种子查询(sub-query)。于是会写成类似这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
t1.foo,
t2.bar,
t3.baz
FROM (
SELECT
foo,
bar
FROM
tb1
WHERE
<conds>
) AS t1 INNER JOIN (
SELECT
baz
FROM
tb2
WHERE
<conds>
) AS t2 ON <conds>
WHERE
<conds>;

这样写子查询会有两个问题。一是子查询的结果如果要在多个不同地方用到,那么就要复制粘贴多次,实际执行的时候也可能执行多次。二是当子查询或/和 JOIN 特别多的时候,整个查询就会变得无比复杂,可读性极差。为解决问题,可用视图(VIEW)解决,也可用 WITH ... AS ... 子句来解决。

阅读全文 »

在很早的上一篇文章中,我们讲了英语当中的时态选择。时态选择涉及到的主要是谓语动词的形态变化。此篇继续讲动词,不过话题转向非谓语动词。

阅读全文 »