0%

你相信吗,仅仅利用一张日落的照片,你就能得出地球的半径大小!Princeton 大学的 Robert Vanderbei 在 2008 年的一篇论文《The Earth is Not Flat——Can a photo of the sunset over Lake Michigan reveal the shape of our planet ?》中对一张摄于密歇根湖的日落照片进行了分析,不但证实了地球是圆的,还依据照片上的内容对地球半径进行了估算。

事情的起因就是上面这张很平常的日落照片,以及这样一个大家平时并没有太在意的问题:太阳露出水面的部分应该是一个标准的弓形,但为什么在日出日落时,我们所看到的太阳是一个橄榄球一样的形状?大家或许会很快想到,发光体的下半部分其实是日光反射在水面上造成的。随之产生的是另一个问题:为什么它的下半部分要比上半部分小一些呢?

这是因为 —— 想到这个问题的答案并不容易 —— 地球是圆的。下图就是人站在地球上看日出的一个比例夸张版示意图,其中 O 为地球的中心,A 为人眼的位置,AB 为视平线,B 点为水天交界处。由于太阳距离我们相当遥远,因此我们把太阳光看作是一束理想的平行光线。我们把直接射入人眼的太阳光与 AB 的夹角记为,把经过水面上的一点 C 反射进入人眼的光线与 AB 的夹角记为。从图上可见,视角小,也就是说太阳在水面上的镜像比本身要小一些。

究竟比小多少呢?对照片进行精确地测量,可知太阳的直径相当于照片中的 317 个像素,而露出水面的部分高 69 像素,水中的倒影则只有 29 像素。众所周知太阳的视直径(看太阳的视角)为,因此我们就得到

如果再已知人眼(或者说相机)离水面的垂直距离 h 为 1.8 米,那么根据这些数据我们就足以估算出地球的半径了。不妨把记为,把记为,把人眼到水天相接处的距离 AB 记为 D,把人眼到反射点的距离 AC 记为 d,入射角和反射角记为,最后用 r 来表示地球半径。那么问题来了:试给出 r 的表达式并计算其值。

阅读全文 »

在 Mac 上安装了 Bootcamp 后,如果空间不足了,该如何调整大小呢?在以前的文章 MacBook 使用一块移动硬盘做 Win To Go 及 Time Machine 备份中,谈到了一种从 APFS 的主分区中划出一部分空间给 Bootcamp 的做法。但由于没有进行试验,笔者没有展开来讲。今天专门写一篇文章,记录一下几种不同的方法,以及具体的操作步骤。

Paragon CampTune

Paragon CampTune 是一个专门用来调整 Bootcamp 分区大小的商业软件。免费试用版本只能调整 2G 的空间,简直是杯水车薪。完整版则需要购买许可证。

其官方网站为:Paragon CampTune | Paragon Software

删除后重新进行分区

这是风险最小的方法:完全备份 Bootcamp 分区中的内容,然后将其移除,并在主硬盘上重新划分 Bootcamp 分区。这一方案但缺点是需要备份数据以及重装 Windows 系统,比较耗时间。

从 APFS 中划分空间给 Bootcamp

这是本文重点介绍的方法。如果你对于 Mac 的引导方式不熟悉,担心分区出现问题,那么请不要继续往下阅读,只用考虑前面的两种思路。
由于 Bootcamp 是磁盘上靠后的分区,并不能用「常规操作」向前扩充,吞并 APFS 分区的空间。这里的常规操作指的是 Mac 和 Windows 上自带的磁盘工具,其拓展卷功能只允许向后拓展磁盘分区大小。如果要吞并靠前的分区,需要借助 DiskGenius 这样的专业软件。笔者以前折腾另一台电脑上的硬盘分区时,就曾进行过类似的调整:通过 DiskGenius 使用计算器 + 手动改分区表数据,来划分各个分区的大小。这一方案同样存在分区表损坏或数据丢失的风险,开始前必须做好备份。

删除本地的 Time Machine 备份

如果在 Mac 上进行过 Time Machine 备份,请确保最新的备份已经存储在外部的硬盘上,然后执行以下命令删除本地的备份。

1
tmutil deletelocalsnapshots /

原因是 Time Machine 备份会存储在 APFS 分区的末端,如果不将它们删除,那么在进行硬盘分区时往往会提示「无法拆分此容器,因为生成的容器将太小。」

使用「磁盘工具」运行「急救」

为了让「磁盘工具」确认最大能够划分的分区大小,需要在 Macintosh HD 上运行「急救」。在「磁盘工具」的工具栏中点击「急救」,然后选择「运行」即可。

阅读全文 »

在支持 Touch ID 的 Mac 上,许多需要权限的应用都可以通过指纹来验证。但终端中获取 root 权限的 sudo 命令却仍然需要输入密码。
要让 sudo 权限支持 Touch ID 验证其实并不复杂。使用 root 权限编辑 /etc/pam.d/sudo

1
sudo vim /etc/pam.d/sudo

别担心,这是你最后一次需要输密码获得 root 权限了。(除了进行系统更新后这个文件可能会被覆盖)
然后,在打开的文件中最前面添加一行

1
auth       sufficient     pam_tid.so

现在整个文件看上去像这样

最后保存这个文件就行。对于 vim 而言,命令是:wq!

这时,再执行 sudo,就可以通过 Touch ID 而不是输入密码验证了,是不是很方便?

参考文章:Enabling Touch ID authorization for sudo on macOS High Sierra

去年 9 月,MathJax 发布了 3.0 版本,相较于 2.0 版本进行了完全的重写。3.0 版本带来了许多闪亮的特性,其最为显著的改进便是渲染速度提升。此前 KaTeX 宣传比 MathJax2 速度快很多,但 MathJax3 发布后,两者已经不分伯仲。除此之外,MathJax 增加了对 Node.js 端的数学公式渲染的支持。此前这一功能需要借助 mathjax-node 通过繁琐的配置才能实现,而现在官方提供了大量的 Demo,只需要数行代码便可以达到与前端完全一致的渲染效果。在 Hexo 这样基于 Node.js 的博客系统中,同样可以方便地实现后端的数学公式渲染。借助于 MathJax,可以在 Hexo 生成过程中就将所有文章中的数学公式渲染为 svg 格式的图片。这样做的优点是不需要加载任何前端脚本,就可以显示数学公式,显著提高页面加载速度。

欢迎使用笔者开发的插件:hexo-filter-mathjax

在旧款的 Mac 上,每次开机启动时,会播放「噔~」的一声启动音效,伴随着苹果的 LOGO 显示在屏幕上。随着 Mac 的不断更新,这一行为也发生了变化。例如,在 OS X 10.10 (Yosemite) 版本中,苹果的 LOGO 下方加了一个进度条,看上去开机时间变慢了许多;而在较新版本的 Mac 中,启动音效消失了 —— 苹果默认禁用了这一特性。还好只是禁用,而不是完全移除,通过执行以下命令,又可以找回经典的 Mac 启动音效:

1
sudo nvram StartupMute=%00