杂(四)

烦躁的很。

最近心头一直堵着,有形无形的压力大到快把我压垮了。

首先列一个 To Do List:

  1. 财务案例分析
  2. 资产评估报告
  3. 财务英语报告
  4. 数学重修考试
  5. 初级会计考试

除了第四个是年轻犯下的错误之外,其他都是与这个我一点都不喜欢的专业相关的内容,我一点都不想做,但奈何,这是必须要完成的,尤其是前三个还是小组作业——别人都想要划水就我想认真做的那种。

内心的压力大到什么程度,我每晚二点前才将将睡着,早上七点半左右准时醒来,即使每天跑五圈还是不能让我早睡哪怕半小时。

这些杂七杂八的专业相关让我没有任何足够的空闲来学习别的东西,练手用的机核网电台收听器已经搁置了一个月没动过一行代码了,而年初定下的 RaidFinder 更是八字没有一撇——我会另写一篇博文来讲述这几个月碰到的曲折。

从三月末开始我就不断地在投实习简历,有一家上海的,很中意很想做的实习编辑,却因为时间问题,连去面试的机会都没有,而投出的其他简历则是一点回声都没有。今天我还是想通了,剩下的时间不如好好钻研代码,精通个一种 WebApp 框架就能让自己在就业的时候好过一些,最起码比这个做财务的强。

归根结底还是自己浪费了太多的时间,如果从高考完就意志坚定的学习代码,现在靠朋友内推应该已经拿到个实习机会了,怎么也比现在成天操心自己毕业实习那个章怎么办来的强。

不过我倒是不会把写博客的时间归于浪费,多码点字能让人的逻辑思维更加清晰,水文章来的更快,也是一种释放压力的好方式,虽然大概也没几个人看吧(笑)。

内心的烦躁大部分还是来自于就业,我看不到未来的路,一片迷茫。

中国式家长

所谓中国式家长,一般就是从小到大除了学习之外的事情什么都不想让你做,外边的事情什么都不想让你知道。恋爱?不许谈。游戏?不许打。动画片,漫画书?不许看。总而言之你只会读书是最好的。
然后一转眼到了大学,你出去了,暂时人身独立了,但是你还不能做到经济独立。这时候你的家长还是继续告诉你,竞争压力很大,家里没钱没关系,你好好用功读书,女朋友等毕业了找到工作稳定了之后再谈。你感觉到这些话有些耳熟,仔细一想这不是整整十多年他们一直在你耳边说的东西吗?
一点都没错,他们在你耳边重复了十多年的咒语,不仅仅不会消停,反而会变本加厉。他们希望掌控的,是你的整个人生,甚至某些家长希望你们为了他们而活着,他们把他们未能实现的梦想,寄托在你的身上。
然后你也是又矮又丑又胖,又没自信心,一整个大学不是对着书就是对着电脑朋友也没几个,认识的姑娘更是个位数,天天看着旁边宿舍的哥们换女朋友心里羡慕却又恨自己没能力。
然后你大学快毕业的时候,狠狠的努力了一把考上了什么事业单位什么公务员,本来想好好过段安稳日子了稍微玩一玩,你们的家长还是会继续给你念咒语:“我给你找了个相亲,周末去哪儿哪儿哪儿见个面”、“xxx家的姑娘跟你年纪差不多大你要不要去见一见?”
你也推脱不掉,双方都是心不在焉。于是不知道多少场相亲下来,稀里糊涂的找到一个还不错的姑娘,一来二去几个月稀里糊涂的结婚了。本来打算好好工作平时享受一段安稳日子的,你们的父母又开始了:“啥时候生个孩子呀我们想抱孙子了。”
你们被念叨的没有办法,仔细算了算家庭收入与开支,发现生个孩子会给经济带来沉重的负担,但是父母的咒语没有解法,你们没有办法之下只得生下孩子。
然后你们的父母就又能以“帮你领孩子”的借口入侵你的家庭,重新地回到大学前你天天被念咒语的时代。
你一旦对这种咒语发起挑战,他们会用另一条咒语来反驳的你没话说:“我们是为了你好。”
这是一种循环,你被父母的咒语念叨了二十多年,你发现,你教育孩子的方式,也是给他念这种咒语。
在吴地这种父母最多见。在三线小县城,这种父母最多见。

The Newsroom

许多年前——其实也就是近几年——我听说了一部名为《新闻编辑室》的美剧,但却是前几天,我才看了这部早就应该看的剧。

这也是我看的第二部 HBO 出品的电视剧,第一部是《权力的游戏》。

News

什么是新闻,我想不必再多赘言。而剧中新闻人们对于可播报的新闻,有着严格的审定程序,其中令人最为印象深刻的一条原则,就是“两个信源”原则,意思就是一个新闻必须有两个可靠的可信任的消息源(Source)来确认之后才是一个真实的新闻。这个原则是 ACN 头头 Charlie 坚守数十年的信条,在 S01E07 本·拉登这集中,这个原则体现的淋漓尽致。

看回到国内的现实状况。

我们的审查制度在某种意义上对于新闻的真实性和准确性是有帮助的,但是这种帮助的方式是有问题的。官方统一的口径固然重要,但是如果在某些存在重大争议性的社会事件上,不允许媒体发出自己的声音,没有各种不同角度的看法,那么在一定程度上就是对整个社会多样性的一种扼杀。

再来看剧集中以及现实中的国外媒体,我们不时就能看到对于政府的负面报道,在自由世界中,媒体甚至被喻为在行政立法司法三权之外的“第四权”。现今世界的民众通过媒体这一媒介了解大部分的信息,大众媒体的发展以及深入社会的每一个角落带来的是民众知情权的落实。

但新闻人,需要审查。

新闻人需要的审查是自我审查,而不是国家来对你的新闻进行审查,自我审查的应该是新闻中的事实成分是不是准确客观。事实如何,新闻就该是如何,客观始终是新闻人最需要遵守的一大原则。在新闻报道中不可避免的会带入媒体的主观色彩,但是不能因为你想用自己的主观看法去影响受众就去更改展现给受众的“事实”。

人性

新闻人是冷酷的,他们报道的是冷酷的客观事实。那么新闻人就一定会是冷血的吗?不是,绝不是。

剧集中展现出来的新闻人们,都是一个个活生生的人,他们有血有肉有心有自己的真情实感。

在剧终集的 Charlie 的葬礼上当 Mac 告诉 Will 她怀孕之后,Will 整个人就从一个略有一丝冷血的人改变了,他意识到他即将成为一个父亲。他有些慌张,以至于在一些时刻他语无伦次,甚至走进了婴儿房。

美利坚

美利坚是一个移民国家。

美利坚是自由世界的灯塔。

美利坚是……

我们谈起美国这个国家,想到的关键词,大部分是与自由民主强大世界警察之类的所相关。但不可忽视的是,它内部的各种问题,正在且一直都在影响着这个伟大的国家。从建国初期的内战,到二十世纪初的托拉斯崛起带来的各种问题、二十世纪中期的种族平权运动再到今天的自由派与保守派之间的矛盾分歧越来越大甚至重新兴起了极左极右的思潮。

当然,美利坚一次再一次地从各种问题的吞噬中脱身,就如 S01E01 中 Will 在西北大学说的最后那番话一样。

We were able to be all these things and do all these things because we were informed… by great men, men who were revered. First step in solving any problem is recognizing there is one.

美利坚能够认识到问题并解决它,他们的政治建构在一个超稳定的结构体系上,他们的社会虽然存在着各种各样的问题,但是他们拥有民主,他们拥有投票权。虽然从剧集中得知,原来的政治献金对于公司的捐赠限制在世纪末的时候已经被废除了,政坛上将会越来越充斥着金钱的臭味。

结语

这是一部值得一看的美剧,我始终认为,能够引发你进行思考的,都是好东西。

4.8/5,扣掉的 0.2 分在于没有续集。

>>endl;

关于抗锯齿

今天听 Gadio News 的时候,最末尾一段提到了希望有人能来讲讲抗锯齿技术。才疏学浅,但是前几年看 MC 的文章还是知道一点相关内容,所以就来看着维基写写看,如有不正之处劳请指出。

锯齿与抗锯齿

首先,什么是锯齿,以及为什么会出现锯齿。

我们的屏幕,是以一个个正方形的像素点组成的,而正方形的特性导致了在倾斜的线上,边缘必定会出现一个个突起的阶梯状“毛刺”,比如图上这种

这种阶梯状的“毛刺”就是典型的锯齿。而有了锯齿也就有了抗锯齿(Anti-Aliasing).

抗锯齿的一般过程就是将这个毛刺的边缘柔化,使图像边缘看起来更平滑。如图:

各种算法简单介绍

抗锯齿算法种类非常多,下面的介绍顺序基本上是各种抗锯齿算法出现的时间顺序。

SSAA

超级采样抗锯齿(Super-Sampling Anti-Aliasing, 也可叫做 Supersampling 超采样)是最早也最简单粗暴的抗锯齿手法,它的原理非常简单,就是在渲染时将要输出的分辨率提升 x 倍,比如要输出 1920x1080 的分辨率到屏幕上,开启 SSAA 2x, 那么内部渲染时的分辨率就是 3840x2160, 然后 Downsampling 到 1920x1080 上,自然在许多纹理边缘上就显得平滑许多。但是这种方式太太太吃资源了,所以又开发出了新的算法。

在 Nvidia 发布二代 Maxwell 架构的时候,同时发布的 技术中就有 SSAA 的影子,技术思路同样是以更高分辨率渲染的原始画面输出到显示器分辨率上来得到更加精细平滑的画面。

MSAA

SSAA 太吃资源了,我们的硬件暂时还跟不上,怎么办?于是就有了多重采样抗锯齿(Multi-Sampling Anti-Aliasing), 它跟 SSAA 的区别就是,MSAA 只对于多边形的边缘进行抗锯齿处理。比如一个红色的圆,只对圆周作抗锯齿多重采样计算,但是圆周以内的部分则不会处理。这种方式下的画面锯齿得到了一定的抑制,而抗锯齿需要的资源也大幅下降到可接受的范围中。所以 MSAA 也逐渐成为目前被使用的最多的抗锯齿技术。

但是 MSAA 也有其局限之处,比如对于半透明物件、边缘不明确或者非常复杂的物件比如密集草丛、铁丝网这类的抗锯齿处理就比较力不从心。

CSAA & CFAA

历史进入 Direct 10 时代,NV 方先声夺人发布了 G80 系列,同时带来了覆盖采样抗锯齿()技术,主要改进了取样类型从而使得抗锯齿效率提升,资源占用量也得到减少。举例来说,如果使用 16x MSAA,需要在周围取得 16 个采样点的色彩值和 Z 轴值,然后保存这些数值进行计算。而 16x CSAA,则全部在被采样的像素点中心取得色彩之和Z轴值,然后对比并去掉同样的数据。一般来说,16x CSAA 后只需要保存 4 份色彩值和 Z 轴值即可。换句话来说,4x MSAA 耗费的资源和 16x CSAA 是相同的,但是,16x CSAA的画面效果相比 4x MSAA 更好。

同期 ATI 在发布 R600 系列时也带来了可编程过滤抗锯齿(Custom Filter Anti-Aliasing)技术。简单的来说 CFAA 就是扩大取样面积的 MSAA,比方说之前的 MSAA 是严格选取物体边缘像素进行缩放的,而 CFAA 则可以通过驱动判断对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。

但是由于种种原因,CSAA 被接受程度更高一些,不少游戏就直接加入了 CSAA 选项。而 CFAA 由于需要在显卡驱动面板中进行调试而渐渐被用户所遗忘。

MLAA & FXAA

在 CFAA 被遗忘之后,AMD-ATI 带来了形态抗锯齿(Morphological Anti-Aliasing).

不同于上面几种需要对多边形边缘进行分析计算的算法,MLAA 是一种后处理技术,发生在整个 3D 计算完成即将输出画面到屏幕上前,打个比方就是你拍完照用 Photoshop 处理的过程。

MLAA 的实际效果还是非常不错的,但是资源耗用还是有点厉害的。它的最大优势就是不需要游戏来支持它,因为是后处理技术所以在显卡驱动面板中打开就能用而且兼容性非常好。但是由于其仅仅使用颜色数据来判断抗锯齿边缘,因此 MLAA 的应用可能导致无法辨识到底哪些边缘需要进行抗锯齿计算。特别是一些不需要抗锯齿的地方,如文字,表格等,可能都由于不当抗锯齿而显得圆滑甚至怪异。

这边 A 家出了新抗锯齿技术,老冤家 NV 当然也不甘落后,在 Fermi 上推出了快速近似抗锯齿(Fast Approximate Anti-Aliasing)。

FXAA 和 MLAA 一样,也是一种后处理抗锯齿,两种 AA 在原理上相似,但是由于 FXAA 可以在 AN 两家的卡上都可以用而 MLAA 则由于部分计算处理依赖于硬件所以只能在 A 卡上用,最后导致 FXAA 被广泛的采用了。而且同时期 FXAA 的性能损失比 MLAA 更小,而效果上基本能接近 4x MSAA 的画面,虽然同样还是会出现“字体破坏”的情况。

TXAA

在抗锯齿这条路上,众多程序员以及各种“家”的探索是不会停下来的。在 Kepler 架构发布的同时,NV 也带来了新的 (Temporal Anti-Aliasing 可称为“时间性抗锯齿”)技术,据 NV 自家的介绍,这项技术集时间性过滤器、硬件抗锯齿以及定制的 CG 电影式抗锯齿解算法于一身。

原有的抗锯齿技术在解决静态画面的锯齿上可以说已经达到了瓶颈了,但是在动态画面上,有锯齿的部位很容易出现闪烁。如同其名字中的“时间性”,TXAA 旨在解决“时间性抗锯齿”,也就是动态画面中的锯齿闪烁等问题。而其同时提供着不输于 8x MSAA 的静态画面抗锯齿效果。

TXAA 可以说是目前被采用的较多的抗锯齿算法中最厉害的一种了,但是它一是需要硬件电路配合,二是吃资源,以性能换画面,所以也基本上是中高端 N 卡用户用的。

结语

目前主流的一些抗锯齿技术大概就是这么多了,本文很多内容都是参考中文互联网上的一些文章写成的。第一次在机核发文,存在的许多不足之处也请多多包涵。

Arch Linux 小折腾记

久闻 Arch Linux (下文简称 Arch )大名,在虚拟机上多次完成过了整个系统的安装与图形界面的配置,也试过了 KDE 和 GNOME 这两个大名鼎鼎的图形环境,深切体会到了 Arch Linux 的四大原则:

  • Simplicity
  • Modernity
  • Pragmatism
  • User Centrality

Pacman 是最好的包管理器


我分别在自己的台机上和一台 ThinkPad S1 Yoga 2014 上安装 Arch. 具体过程跟着官方 Installation Guide 走就行了,Wiki 中的注意事项也是比较全面了,本文写几个小注意点。

Btrfs

不知道 Btrfs 的我建议你马上查 Wikipedia.

Arch 的安装 ISO 环境中是自带了 Btrfs 的工具包和支持的,但是在 base 软件包中不包含这些,所以你需要手动安装 btrfs-progs 这个包,然后在 /etc/mkinitcpio.conf (注意是在 arch-chroot 这一步之后)中的 HOOK 一行中添加 btrfs, 之后跑一遍 mkinitcpio -p linux, 看到输出中有 btrfs 即可。

关于 btrfs 的配置问题,参见官方 Wiki, 也可以参考 egara/arch-btrfs-installation.

Boot Loader

在 Boot Loader 的选择中,我个人还是比较倾向于直接使用 systemd 集成的 systemd-boot, 懒得再装个 GRUB.

虽然 systemd-boot 局限性非常大,比如它只能加载 EFI 可执行文件比如 bootmgfw.efi, vmlinuz-linux.

如果选择了 systemd-boot 作为 Boot Loader, 那么就需要在 arch-chroot 后手动运行一次 bootctl --path=$ESP install 来把引导程序安装进 EFI 分区中并向 UEFI 界面注册这个引导器,之后你在启动时按 F12 就可以看到一个 Linux Boot Loader.

但是如果只是将 Boot Loader 安装到了 EFI 分区还不足以让它引导我们进 Arch, 仍然需要在 /boot/loader/entries/ 这个目录下建立新的 conf 文件,里面的内容如下

1
title Arch Linux
2
linux /vmlinuz-linux
3
initrd /initramfs-linux.img
4
options root=(PARTUUID|PARTLABEL)=xxxxxxxxxxxxxxxxxxxxxxxx rw

如果使用的是 Intel 的 CPU 并且有安装 intel-ucode 包,那么在第3行之前再加一行 initrd /intel-ucode.img 启用它。

建立完了引导所需的系统 config, 需要在 /boot/loader/loader.conf 中的 default 一行中指定刚才建立的 config 文件名,然后使用 Linux Boot Loader 引导器就会默认进入 Arch Linux.

双系统与时钟

感谢 UEFI 标准,现在我们可以非常方便地组建双系统 (Windows + Linux) 环境。

如果使用的 Boot Loader 是 systemd-boot, 那么它会自动检测 Windows 的存在,并且在选择菜单自动提供一个 Windows 的选项,这个选项的配置名为 auto-windows, 选择它会运行 /boot/Microsoft/Boot/bootmgfw.efi 然后就是 Windows 的流程了。

双系统有一个很大的问题,就是时钟。Windows 默认往 BIOS 写入本地时间,而不是 Linux 标准的 UTC, 这就会导致你从 Windows 切换过去后时间会+8, 也就是按你的时区调整然后又写回到 BIOS 中。从 Linux 切换过去,Windows 认为是本地时间,于是显示给你的实际上是 UTC. 所以为了解决这个问题,在安装 Arch 时,使用 hwclock --hctosys -l (将硬件时间作为本地时间读入系统), 而不是 Guide 上所用的 hwclock --systohc(将系统时间写入 BIOS 并且是 UTC).

之后启动到 Windows, 注册表定位到 HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 添加一个 DWORD, 名为 RealTimeIsUniversal 值为 1, 即可实现 Windows 往硬件中写入的时间是以 UTC 为标准而不是本地时间。

systemctl enable

由于 Arch Linux 的哲学,大部分软件包在安装之后也并不会自动启用,需要你手动 systemctl enable|start xxxx. 尤其要留意的是,还在 ISO 环境下安装系统的时候就要把 dhcpcd 这个服务给 enable 了,解决你进系统之后发现连不上网络想半天不知道问题出在哪里的问题。当然这是针对有线网卡,而大部分无线网卡,我推荐直接使用 Network Manager 搞定。当然使用无线网卡的首次联网你还是需要如下步骤:

1
ip link set dev interface up
2
iw interface scan
3
wpa_supplicant -B -i interface -c <(wpa_passphrase SSID Password)

还有一点需要注意的是,Arch 的 Shadowsocks-libev 默认读取的配置目录在 /etc/shadowsocks/, 与 Python 版相同的目录而不是传统的 /etc/shadowsocks-libev/ 下,启用它的命令为 systemctl enable shadowsocks-libev@配置文件名.service .

Intel 有线网卡的坑

当你机器上使用的网卡的是 Intel Ethernet Connection I21x 的时候,你要小心了,在安装 Arch 之前,在 Windows 中安装 Intel 的官方驱动,然后在网卡的硬件配置面板中将所有的网络唤醒选项给关闭,这可以有效防止你进入 Arch 环境之后获取不到任何的网络信息导致连不上网。

>> endl;