如何写 Emacs 命令

2021-03-02
阅读 6 分钟
2.5k
这两年,听说不少 Emacs 用户叛逃到了 VS Code 阵营。我安之若素。不过,我并非 Emacs 资深用户。我驾驭 Emacs 的能力,仅仅比新手更知道 Emacs 的配置文件在哪儿,怎样抄别人的配置,以及不甚畏惧 Lisp 代码。

屏幕录制

2021-02-22
阅读 2 分钟
2.6k
在「用 Bash 脚本写一个截屏工具」一文的后记里,我将截屏脚本略加改动,得到了一个可录制屏幕中指定窗口区域的脚本。翻手为云,覆手为雨,全拜 ffmpeg 所赐。

用 Bash 脚本写一个截屏工具

2021-02-20
阅读 6 分钟
2.9k
在 Bash 看来,或者在任意一种在 Linux 环境里称得上 Shell 的物种看来,只要有了 ffmpeg、grep、sed、awk 以及一个 X 窗口系统之类的东西,就可以用不到 50 行代码写出一个不错的截屏工具。当然,倘若还有 GIMP 或类似的东西,风味更盛。

天网

2020-10-31
阅读 6 分钟
1.8k
这篇文章依然无趣,因为有变量,有各种几何体,有宏,有数组,有循环,有 union,没有 difference,有动画……最终我画出来的东西,无非是一个模拟地球自转的奇怪的几何体,尽管我给它取了个宏大的名字叫世界。

第一颗卫星

2020-10-30
阅读 4 分钟
1.3k
现在,我想以 A 为原点,构造一个直角坐标系 (X_A, Y_A, Z_A)。X_A 轴与 Y_A 轴分别与过 A 点的纬线和经线相切,Z_A 轴指向 <0, 0, 0>。

经纬

2020-10-30
阅读 5 分钟
1.7k
假设以 <0, 0, 0> 为中心,半径为 1 的球面是天球,构造天网的第一步是建立球面的经纬度模型,即对于球面上的任意一点 A,能够基于它的经度值 U 和纬度值 V 计算它在世界坐标系中的位置 <x, y, z>。我打算先通过直观的图形弄清楚 U, V 和 <x, y, z> 的关系。

标准正交基

2020-10-29
阅读 2 分钟
3.2k
任意非零向量 <x, y, z>,可使用 POV Ray 提供的 vnormalize 单位化处理,亦即将该向量转化为模长为 1 的新向量 <x', y', z'>。例如

坐标系

2020-10-29
阅读 6 分钟
2.1k
上一篇:坐标变换今天不再编蹩脚的故事,只是一本正经地画一个坐标系。坐标系的原点用球体表示。画球的语法为 {代码...} 例如: {代码...} 坐标系的每个轴向由一个圆柱体和一个圆锥体组合而成。圆柱体的语法为 {代码...} 例如 {代码...} POV Ray 没有提供绘制直线段的功能,可以用圆柱模拟直线段。圆锥体(确切地说,是...

坐标变换

2020-10-28
阅读 4 分钟
2k
今天,是我从乡下老家返城的第三天。为了拯救这个世界,我决定能不出门就不出门。第一天上午出去买的菜,如果一直放不坏,兴许能吃十天。缺锌,有葡萄糖酸锌片。缺维生素 B,有复合维生素 B 片。这让我觉得,养活一个像我这样的人,成本实在太低了,很容易让我变得没追求。现在想想,我没追求好像已经挺久了。

飞走的盒子

2020-10-28
阅读 3 分钟
1.8k
上一篇:成千上万个盒子静极思动。一尺之棰,日取其半,万世不竭。飞矢不动。动中有静,静中有动。人活着,总要搞出点动静。我召唤 POV Ray。POV Ray 随一缕青烟飘然而至。这让我想起,上次他是化作一缕青烟消失了。不过,我并不觉得奇怪,就像他能用咒语画画也没让我觉得奇怪那样。「有什么办法可以让盒子飞来飞去,而...

插曲:成千上万个盒子

2020-10-28
阅读 1 分钟
1.4k
如果有人也像我一样,时不时要画成千上万个盒子,而且并不排斥 POV Ray 的绘画方式,那么,不妨使用我用 Python 3 刚写好的 draw-boxes 脚本。前几天,我的所有工作都是为了写出这个脚本。

有物混成

2020-10-28
阅读 3 分钟
1.4k
上一篇:框架昨天,我没有描述 POV Ray 看了我写的能画出带框架的透明盒子的咒语的表情。当时,他满脸嫌弃,像是在看着一个正在咳嗽却不掩口鼻的人,「你知道的越多,一致性就越是缺乏。只是有耐心,远远不够。你看, {代码...} bar_size 与向量的相乘以及 texture 语句不断重复,让咒语冗长,不仅容易出错,而且毫无美...

框架

2020-10-27
阅读 5 分钟
1.8k
上一篇:变量既然 POV Ray 认为我已经具备运用咒语绘制一切的能力,我决定闭门造车,让之前画的盒子更复杂一些,为它增加一个板条框架。盒子是平行六面体,要为它造框架,我需要 12 根板条,蓝色的。所谓板条,无非是细长的盒子罢了。首先,基于盒子的尺寸 {代码...} 我能确定盒子顶面上的 4 个顶点的坐标: {代码...} ...

变量

2020-10-27
阅读 2 分钟
1.6k
POV Ray 认为,在理论上我已经具备了用咒语画出一切的能力了。当我反对他的乐观时,他以 Minecraft 这个游戏作为论据。我无言以对,但是,总觉得少了一些什么。

盒子

2020-10-27
阅读 4 分钟
1.6k
POV Ray 是个画家。他画画的方式有些奇怪,用的不是画笔,而是咒语。2020 年,过年那段时间,匿在家中躲避新型冠状病毒的我,在娃去院子里骑着童车周游世界的时候,百无聊赖,决定向 POV Ray 学一点用咒语作画的本事。

写给高年级小学生的《Bash 指南》

2018-12-03
阅读 18 分钟
4.4k
若让计算机理解我的意图,可以有两种方式,说和指。这与生活中我为了让他人能够理解我的意图所采用的方式相似。譬如,我想让朋友去超市帮我买瓶饮料,我可以使用祈使句,「帮我去超市买瓶可乐,如何?」我也可以把他领到超市门口,指一下超市,然后再把他领进超市,指一下饮料柜里的一瓶可乐,然后再指一下他口袋里的钱...

蜗牛

2018-11-05
阅读 10 分钟
2.2k
此事纯属无心之举。原本是要用 awk 写一个能够自动编排文档中的参考文献和注释的工具。在酝酿情绪的过程中,打算用 MetaFun 画一幅简单的示意图。在绘图过程中,因不断嫌弃所用代码的繁琐,最终有了十余行简短的绘图代码以及能够让这些代码工作的一个小模块。

MetaFun 小传

2018-10-29
阅读 20 分钟
3.9k
ConTeXt 专事文字排版,功能匹于 LaTeX,但更易于使用,二者皆为 TeX 宏包,即二者皆基于 TeX 提供的宏编程功能,对 TeX 语言予以封装,建立更利于文字排版工作的高级语言。TeX 是一种计算机排版语言,供编排科技手稿以及著作出版印刷之用 [1] 。MetaPost 是用于绘制矢量绘图的计算机语言。

awk 小传

2018-10-20
阅读 8 分钟
2.7k
awk 是一种专事文本解析与处理的解释型编程语言,其解释器与其同名注 1。awk 原始版本发布于 1977 年,后于 1985 年发布第一个增强版本。在这一时期,awk 羽翼渐丰,随后成为 Unix 系统的一个标准(POSIX 标准)组件。目前 Linux 系统配备的 awk 皆为 gawk,隶属 GNU 项目,伊始于 1986 年。

大黄蜂

2018-08-23
阅读 7 分钟
4k
起初,在笔记本里预装的 Windows 7 系统里,我发现了它们的存在。于是我试着在设备管理器里禁用了其中一个,然后发现另一个也不再工作了。这个时候我才亲自接触了一种技术的存在,也因此明白了 Linux 之父 Linus 当年为何对 Nvidia 公司竖中指。这是六年前的事了,很不凑巧,我得到的这部笔记本也是六年前的机器。

书呆子的音乐理论

2018-08-11
阅读 10 分钟
5.2k
音乐的其他知识就让我觉得极为混乱了。为什么要有 12 个音,为什么只用 7 个字母来表示它们?调号从何而来?为什么维基百科上对这些知识的介绍只有学过其他乐理知识才能读懂呢?

对齐

2018-08-10
阅读 5 分钟
3k
按照中文排版惯例,段落首行缩进两个字符的宽度。但是,像左引号这样的标点符号,当它出现在段落之首时,所体现的段落缩进在视觉上就会大于两个字符的宽度。这样的标点符号出现在段落中任何一行的行首,都会导致类似的问题。

解析

2018-08-10
阅读 7 分钟
2.9k
大千世界,茫茫人海,我总是可以一眼便认出你。这个过程里包含着一个叫做解析的过程。计算机程序也能够通过这样的过程,在一堆文本中认出一些特定形式的文本。在短暂又漫长的计算机语言编译原理的发展过程中,诞生了很多种形式化文本解析方法,PEG 是其中一种。

改造

2018-08-10
阅读 5 分钟
1.9k
现在,我基本熟悉了 pretty-c 模块 [1]。熟悉,也许是为了控制甚至改变,否则没理由要去熟悉。请想一想自己对亲人、爱人和朋友曾经做过的以及正在做的那些事吧!于是,我要对 pretty-c 模块进行一些改造。

五颜六色

2018-08-10
阅读 19 分钟
2.2k
在看我的 github 主页(据说有识之士正纷纷将自己的项目迁往 gitlab)的时候,发现了以前 fork 的一个项目 pretty-c。这个项目为 ConTeXt MkIV 实现了一个模块,用于解决 C 代码的高亮(Highlighting)问题。

计算机科学:一门失传的艺术

2018-08-10
阅读 2 分钟
3.3k
打扰了。犬子考入肯尼索州立大学,有志于攻读计算机科学学位,但是有两年课程,他不太喜欢上,为此而纠结。亚特兰大有三所学院只专注于技术,提供 8 到 16 周的沉浸式课程。在计算机科学领域,对于这种办学形式怎么看?四年制的学位更有价值吗?

DOT

2018-03-16
阅读 5 分钟
2.6k
马尔克斯的《百年孤独》这本书的主角是一个家族。这个家族的谱系,就可以构成有向图。若未读过《百年孤独》,不妨去读几遍。虽然也算世界名著,但应该很快就能看完。有不少人一年能读几百本书,《百年孤独》总是会出现在他们所列书单之内。下面就尝试用 DOT 语言描述一下这个家族的谱系。

文化编程

2018-03-16
阅读 3 分钟
2.7k
文化编程(Literate Programming)由计算机学界名宿 Donald Knuth 所创。其名,大陆译为「文学编程」,甚缪。将程序视为蛮夷,以文教化,Literate Programming 之意大抵如是。

三生万物

2018-01-05
阅读 2 分钟
3.2k
若对续延有所认识 [1],Scheme 的阴阳谜题就很容易理解了。 下面我先逐步构造出来这个谜题,然后从宏观的角度略微解释一下。事实上,也只能作宏观解释,否则纵身跳入续延的洞里,就更不容易弄清楚了。 从最简单的函数开始: {代码...} 这个函数什么也不干,只是将自己接受的参数返回。 倘若将这个函数的求值表达式所形成...

续延,有什么难的……

2017-12-31
阅读 3 分钟
3.4k
学 C 语言,拦路虎是指针。学 Haskell,拦路虎是单子(Monad)。学 Scheme,拦路虎是什么呢?初学者觉得是层峦叠嶂的括号,实际上是续延(Continuation)。