Development
FAIL: 在线将 zpool 转换为 GELI 加密卷
今天尝试了一下将 zpool 在线转换为 geli 加密卷,失败。这里记一笔。
想法是:将 zpool (RAIDZ)中的一块盘 offline,建立 GELI 卷,然后用新建的 GELI 卷来替换拿下来的盘。
阅读全文…OS X终端中的 PgUp 和 PgDn
多年不用 Mac 了,这没有 PgUp 和 PgDn 的死毛病还是没改。我觉得我真是没法接受没有 Page Up 和 Page Down 的键盘的。
当然,设计者关上一道窗的同时,往往又会在另外的地方开一扇门。Mac 上可以用组合键来模拟这些功能:
阅读全文…shell 中的 ` 和 $()
sh(1) 脚本中,` 和 $() 的作用类似。比如:
rm `find /foo/bar -ctime +3d -type f`📓 注意
FreeBSD系统中,此处实际可以用
find /foo/bar -ctime +3d -type f -delete来代替。
表示将 find 的输出结果作为 rm 的命令行输入。
GNU libtool 和 FreeBSD 10
FreeBSD 开始用 10 以上的版本号有一段时间了。这个变动立刻导致了大量 ports 无法编译,多数情况下是因为开发者采用了较早版本的 libtool 导致的,具体来说,是类似下面的代码:
阅读全文…作弊条:几个不太常用的git库管操作
配合 svn 使用 git 时可能会遇到许多问题,例如两个人分别做了 git svn clone,然后希望合并到同一个 git 库中。如何做合并呢?假定两个库分别是 old, new,将这两个库对应的分支和对应的源分支 (svn/*) 通过 .git/config 分别复制到不同的分支名字下面,例如 svn/releng/8.2 和 old-svn/releng/8.2。假定需要合并的分支是 old/my8.2,则做以下操作:
阅读全文…clang静态分析工具作弊条
📜 历史文件已不具备现实意义
文章介绍的是旧版 clang 的用法。
静态分析是一种辅助的代码品质提高手段,简而言之静态分析大致是走一个类似编译的过程(或者走完生成副产品),然后给出代码中可能存在的问题。
阅读全文…FreeBSD 的 InfiniBand 支持
现时 InfiniBand 硬件已经相当廉价。有些 4x 的 InfiniBand 适配器已经可以在 $100 以内拿到。由于 InfiniBand 可以提供高带宽、低延迟的数据传输,而且点对点对联不需要交换机,因此可以以十分低廉的价格满足近实时同步,或分离存储服务这样的需求。
今年年初的时候, Isilon、我厂 和 Panasys 联合资助了 FreeBSD 上的 InfiniBand 协议栈的实现。这个实现基于 OpenFabrics Alliance 的 OFED,对基于 Mellanox 芯片的多种常见的 InfiniBand 卡都提供了支持。这些代码目前已合并至 FreeBSD 的开发主线,并将随 FreeBSD 9.0-RELEASE 发布。
阅读全文…有关"非正常终止"
多年以前在 USENIX HotOS 2003 论文集中看到了 一篇 关于 “Crash only software” 的论文,当时有一些想法,但很多没有认真地实践。最近做的东西用到的这方面的设计方法比较多,总结一下写出来。
阅读全文…关系代数中的除
简单记一笔,感谢 Stanford 的 数据库入门 课程课后作业 (有人在 StackOverflow提问)。复习一下。
应用场景:找出一家能制作全部30岁以上人士需要的Pizza种类的Pizza店。
在示范数据库中给出的四个关系:
阅读全文…Ruby用实际行动向GPLv3吐槽,Ruby 1.9.3将改用 BSD 许可证发布
Ruby 从下一个版本,也就是 1.9.3 开始,从原先的 GPLv2 许可证换成了 2-clause BSD 许可证(大体上相当于 MIT 许可证)。
早期 Ruby 采用的是自由软件基金会推荐的 GPLv2 or later 许可证方式。在实际操作中这种许可方式十分常见,这种许可证方式包含两层意思:
阅读全文…