选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
最早是初中的时候听一个同学讲的,原文大致是说做了一件没啥意义的事,然后大家可以回家洗洗睡了。
今天找到了 武汉人 来解释这个说法的含义,官方释义是:
全文是" 大人的事,小孩一边洗了洗睡去了。。没你事"
Read more...最近不知道为什么这个 blog 被某个垃圾评论团伙盯上了。 Movable Type 的 captcha 比较弱,于是先换了 Google 的 reCaptcha。通过 Google、 Facebook 或 OpenID 以及其他方式登录的用户还是可以直接发表评论。
除了变形夸张之外, reCaptcha 也同时帮助 Google 的图书扫描计划来识别 OCR 识别有问题的文字。这样,解这个 captcha 同学也有一半的时间是在做公益。关于"人计算"概念可以看 Google Tech Talks 由 Luis von Ahn讲的 这个 视频 (Youtube)和 这里。
如果 reCaptcha 也抗不住的话,也许就只好关闭匿名评论了。不过其实互联网上的反垃圾基本是符合丛林法则的—-你不一定需要比猎食者跑得更快,只要你跑的比别人快一些,就足够了。
UPDATE 20120813: 观察了一下,以这个反应速度来说,应该不是人类。我想一定是有垃圾团伙发现了某类 captcha 的破解方法,不过对 reCaptcha 来说暂时还没有什么作用。
Read more...昨天测试成功,下面是大致过程。
做转换的 pool 要符合几个条件:
大致过程如下:
另外想了一个在线转换的方法,等有时间实现一下看看。
Read more...TextMate 2 宣布开源了,在 一则报道 中指出,这是对苹果 OS X 新增的限制的回应,我对此十分怀疑。
为什么呢?因为沙箱是非常重要的安全机制。沙箱其实到处存在,只不过在过去没有 OS X 中这样全面和细致而已。例如,现代操作系统中两个进程不能随便互相写对方虚拟内存中的内容;又比如,操作系统中通过"用户"、“属主"等概念来进行访问控制,等等。这些机制的存在,限制了由于开发人员偶然犯错导致的损失范围。许多不靠谱而且不负责任的开发者,则会以种种借口指责沙箱拖慢了他们的开发进度。更有甚者,其中的一些甚至还会告诉用户打破沙箱(例如比较常见的是很多 php 应用建议用户 chmod -R 777),其结果则必然是在发生问题时产生更大的损失。
是的,我的意思就是,如果有人建议你用一些方法削弱操作系统的沙箱机制来运行他的程序,那不仅这个开发者的水平太差,而且他的良心也让狗吃了。
Read more...没什么特别,这里记一下大致过程,以及一些想到的值得 FreeBSD 学习,以及 OS X 应该改进的地方。
我选择的方法是借助 USB 安装盘来做重装的操作。在 App Store 下载 Mountain Lion 之后,不要选择继续安装(继续安装的话,在安装结束后会删掉安装的文件)。
在 Finder 中找到 /Applications/Install Mac OS X Mountain Lion.app,在其上按右键,Show Package Contents,这会将 Bundle 内容打开,在其中找到 Contents/SharedSupport,其中有一个叫 InstallESD.dmg 的文件。双击 InstallESD.dmg 挂载它。
接着,启动 Disk Utility,选择 U 盘(需要至少 5GB 的空间),将其中内容擦除;接着选择刚才挂载的 InstallESD,在 Restore 标签页中,将 U 盘拖拽到 Destination 的位置,然后按 Restore。
这个操作将会把 InstallESD.dmg 写入 U 盘。重启系统时按住 Option,选择刚刚制作的 U 盘,就进入了 OS X 的恢复界面。
在这里有四个选项,使用 Disk Utility (最后一个)清除硬盘或 SSD 内容(此处可以选择Mac OS Extended (Case sensitive, Journaled) )。如果原先的硬盘使用了 File Vault,可能需要先输入任意用户的口令来解锁。完成后退出 Disk Utility,选择 Reinstall OS X Mountain Lion。
重装的过程大致需要20分钟左右。然后是一些基本的配置,完成后,重新进入 App Store 安装 Garage Band、iMovie 和 iPhoto。
Read more...今天尝试了一下将 zpool 在线转换为 geli 加密卷,失败。这里记一笔。
想法是:将 zpool (RAIDZ)中的一块盘 offline,建立 GELI 卷,然后用新建的 GELI 卷来替换拿下来的盘。
失败原因主要是两点:首先,GELI 设备比其下的盘小 4kB (8个扇区)。这部分空间用来保存 GELI 的元数据。这样,替换后的设备要比原先的略小(之前曾经遇到过 SATA 硬盘不同批次尺寸不一样的情况)。另外,这个 zpool 在创建的时候使用的是 512 字节的扇区,而 GELI 的块尺寸是 4kB,因此会有问题。
如此看来,为了支持未来的扩展,需要做两件事:
第一个是毫不犹豫地"浪费"少量空间:预留适当的保留空间(如 1MB,甚至若干 GB 的交换区)可以避免在未来需要换盘时因为供货的问题导致出现困难。当然,如果是针对企业市场的硬盘,通常是可以避免这种情况发生的。不过需要注意的是,如果交换分区放在不同的硬盘上而不做任何冗余的话,也有可能会出现掉盘导致系统不稳定的问题。
第二个是应该尽量将卷做成按 4kB 对齐的,即使磁盘本身并不是 4kB 的。我个人的测试显示这样并不会导致性能下降,相反在许多情况下可以改善吞吐量。
Read more...早期的 FreeBSD 版本中采用的是 md5crypt,其作者 Poul Henning-Kamp 最近发表了一篇文章:Md5crypt Password scrambler is no longer considered safe by author,所以 FreeBSD 预设的密码格式也就随之改成了 SHA512 crypt。
不过其实这个意义也不是太大,因为这个版本(5000轮,16位salt=96bit)虽然慢的还算可以,可是计算机的速度还是在持续增长的。
前段时间找时间把 FreeBSDChina.org 的密码格式也换成 SHA512-crypt 了。目前采取的方法是用户登录的时候,如果验证通过,则用用户明文口令产生新的 SHA512-crypt 并刷回数据库(因为原先保存的是 hash 值)。这样,几个月后还可以把不活跃用户挑选出来一起砍掉。
Read more...今天看到有人问 GMail 为什么会显示一个黄色的三角符号(浏览器在 https 页面包含非 https 内容时的警告)。检查一下发现我的居然也是,心想 Google 大概应该不会干这么缺心眼的事,于是打开 Developer tools 检查,发现这个"不安全"的内容来自于 AdBlock,具体来说是插件在阻止广告时插入到页面中的内容。
AdBlock未必真的会做损害安全的事情,不过,这个让我想起之前在 Facebook 上看到的奇怪的广告,最后发现是安装的一个应用导致的,这个后果确实还是相当可怕的,除了浏览器本身之外,安装的插件也会影响安全,而这些东西做审计还是相当困难的,尤其是在 Chrome 中的自动更新特性,如果 Chrome Market 没有认真审核代码的话,还是相当危险的。
Read more...官方版本的 nginx 在 https 的时候是不对流量做压缩的,具体原因在这里 和 这里 有解释,它会增加半兆的连接内存开销。
\[n\]def SSL_OP_NO_COMPRESSION 部分的语句块)之外,还需要 OpenSSL 本身编译了加密支持。FreeBSD ports 的 security/openssl 预设启用了 ZLIB 扩展,但基本系统目前没有(由于 zlib 是很大的一片代码,也许需要做了 Capsicum 处理之后才可以放进来用)。
启用 https 压缩通常并不会显著地减少带宽占用,因为多数情况下浏览器会与服务器协商将内容以 deflate 方式在放进 https 流之前做压缩处理。不过,启用压缩可以进一步减少 TLS 协议本身使用对称加密时可能发生的信息泄漏风险,其代价是引入 zlib 可能引入更多漏洞,以及每个连接增加大约 0.5MB 的内存占用。
Read more...多年不用 Mac 了,这没有 PgUp 和 PgDn 的死毛病还是没改。我觉得我真是没法接受没有 Page Up 和 Page Down 的键盘的。
当然,设计者关上一道窗的同时,往往又会在另外的地方开一扇门。Mac 上可以用组合键来模拟这些功能:
另外,由于 Terminal 对这两个键有另外的解释,需要在 Preferences 中重新定义它们的映射:
然后就虽不爽,但可用了。
Read more...