August 2012 Archives

Monterey 观鲸

| No Comments | No TrackBacks

昨天去了 Monterey 看那里的虎鲸。2009年1月的时候去 San Diego 的 海洋世界 看过一次虎鲸的表演(2010年2月发生了一次事故,此后,这类有人进入水中参与的表演被禁止),这以后没有再见过虎鲸。Monterey 是位于北加州海岸的一个城市,1777到1846年是西班牙和墨西哥时期的上加利福尼亚州州府所在地。

有兴趣的同学可以在 这里 看照片,不过因为天气的原因,而且在海上的浪也比较大,这次拍的效果不是很好,也有一些东西(例如从船旁边飘过的大型水母)没有拍到。

Project HoneyPot

| 1 Comment | No TrackBacks

很久以前 Cisco 的 刘老师 就做过蜜罐系统,所谓蜜罐其实是一些"看起来"像是正常,但并不对正常人提供服务的网络资源,例如邮箱、网页,甚至网络服务等等。它们存在唯一的作用是吸引攻击者的机器人来攻击,从而得到关于攻击本身的更多信息,或在攻击开始之前采取防御。这种做法有点像有些国家在火箭基地附近建设几个一模一样的、假的火箭基地,防止敌军轰炸等等。

Project HoneyPot 是一个分布式的蜜罐系统,它的主要作用是防止针对网站的垃圾评论和垃圾邮件。除了 捐赠 蜜罐资源(这个对网站并不会造成很大的压力,但可以帮助更多的人来获得高质量的蜜罐数据)之外,网站管理员可以用它提供的 HTTP:bl 来保护自己的网站。 HTTP:bl 实际上是一个 DNS 黑名单,和邮件常用的 DNS 黑名单很类似。网站的拥有者可以利用这个黑名单来决定是否对提交评论的人采取进一步措施,例如启用 Captcha,等等。

武汉方言:洗洗睡了

| 2 Comments | No TrackBacks

最早是初中的时候听一个同学讲的,原文大致是说做了一件没啥意义的事,然后大家可以回家洗洗睡了。

今天找到了 武汉人 来解释这个说法的含义,官方释义是:

全文是" 大人的事,小孩一边洗了洗睡去了。。没你事"

换了 reCaptcha

| 4 Comments | No TrackBacks

最近不知道为什么这个 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 来说暂时还没有什么作用。

昨天测试成功,下面是大致过程。

做转换的 pool 要符合几个条件:

  • 所有设备必须都做过 4k 扇区处理,或原本用的就是 4k 扇区;
  • 所有设备均有冗余,也就是说可以 offline。如果使用的 zpool 是 raidz, raidz2, raidz3 或 mirror 就没有问题;非冗余的 log 和 cache 设备也是可以的;
  • 磁盘上必须有与数据存储区邻接的未分配空间,或可以腾出这样的空间,且不小于 4k。

大致过程如下:

  • 用 zpool offline 将设备 offline;
  • 用 gpart resize 调整分区尺寸;
  • 创建 geli 设备;
  • 用 zpool replace 替换之前 offline 的设备;
  • 待 resilver 完成之后,对下一个设备重复此操作。

另外想了一个在线转换的方法,等有时间实现一下看看。

TextMate 2 宣布开源了,在 一则报道 中指出,这是对苹果 OS X 新增的限制的回应,我对此十分怀疑。

为什么呢?因为沙箱是非常重要的安全机制。沙箱其实到处存在,只不过在过去没有 OS X 中这样全面和细致而已。例如,现代操作系统中两个进程不能随便互相写对方虚拟内存中的内容;又比如,操作系统中通过"用户"、"属主"等概念来进行访问控制,等等。这些机制的存在,限制了由于开发人员偶然犯错导致的损失范围。许多不靠谱而且不负责任的开发者,则会以种种借口指责沙箱拖慢了他们的开发进度。更有甚者,其中的一些甚至还会告诉用户打破沙箱(例如比较常见的是很多 php 应用建议用户 chmod -R 777),其结果则必然是在发生问题时产生更大的损失。

是的,我的意思就是,如果有人建议你用一些方法削弱操作系统的沙箱机制来运行他的程序,那不仅这个开发者的水平太差,而且他的良心也让狗吃了。

没什么特别,这里记一下大致过程,以及一些想到的值得 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。

今天尝试了一下将 zpool 在线转换为 geli 加密卷,失败。这里记一笔。

想法是:将 zpool (RAIDZ)中的一块盘 offline,建立 GELI 卷,然后用新建的 GELI 卷来替换拿下来的盘。

失败原因主要是两点:首先,GELI 设备比其下的盘小 4kB (8个扇区)。这部分空间用来保存 GELI 的元数据。这样,替换后的设备要比原先的略小(之前曾经遇到过 SATA 硬盘不同批次尺寸不一样的情况)。另外,这个 zpool 在创建的时候使用的是 512 字节的扇区,而 GELI 的块尺寸是 4kB,因此会有问题。

如此看来,为了支持未来的扩展,需要做两件事:

第一个是毫不犹豫地"浪费"少量空间:预留适当的保留空间(如 1MB,甚至若干 GB 的交换区)可以避免在未来需要换盘时因为供货的问题导致出现困难。当然,如果是针对企业市场的硬盘,通常是可以避免这种情况发生的。不过需要注意的是,如果交换分区放在不同的硬盘上而不做任何冗余的话,也有可能会出现掉盘导致系统不稳定的问题。

第二个是应该尽量将卷做成按 4kB 对齐的,即使磁盘本身并不是 4kB 的。我个人的测试显示这样并不会导致性能下降,相反在许多情况下可以改善吞吐量。

Monthly Archives

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.2.3