Recently in Distributed Computing Category

霍总几天前发表了一篇blog, Google的社会化梦想与Reader。我仔细想想,似乎也不全是 Google 的问题。

有人说,Google要做的是大众产品,而Reader是小众产品,哪怕它已经成为了半专业的工具,也并不会改变这个事实,甚至于,这反而是件火上浇油的事情。我基本上认同这个说法。

我认为很大程度上,用户的心态也是有问题的。 Google 做出强推 Google+,砍掉 Google Reader 的决定,背后自有其商业方面的考量,至于这决定是对,是错,从用户的角度你很难有立场说"Google这样做对了,或是这样做错了",能说的,最多也就是"Google这么做哥们很不爽"吧?

还有人去白宫网站发请愿。靠去白宫网站发个请愿,召集几万人签名是根本没用的,至少在我看来就是这样----想要改变一个公司基于商业考量做的决定,最有效的方法就是让这个决定看起来不那么符合其商业利益,其他一切一切的手段都是无关紧要的。

dovecot的全文搜索

| No Comments | No TrackBacks

试了一下这个基于 CLucene 的全文搜索,似乎还不错。这里记一下过程。

首先是给 dovecot 安装 Lucene 插件,用 FreeBSD port 来安装的话,只需 make config,选择 LUCENE 然后 portmaster dovecot 即可。

配置也还算容易,我之前已经做了索引与数据分开,因此并不需要单独的配置,只需在 dovecot.conf 中增加:

plugin {
  fts = lucene
  # Lucene-specific settings, good ones are:
  fts_lucene = whitespace_chars=@.
}

然后重启 dovecot,运行 doveadm index -A '*' 就行了。注意,-A需要userdb的支持。

日常维护方面,目前 dovecot 预设是在搜索的时候重新抓取索引,而邮件送达时则不会做任何其他处理。我目前用的解法是让 cron 每隔 11 分钟跑一次 doveadm index -A INBOX 来重做 INBOX 的索引。另外,用 FreeBSD 的 periodic 每天更新一次全部索引 (doveadm index -A '*'),并在每月做一次 doveadm fts rescan -A(这个其实并不是必须的,主要是防止出现直接操作Mailbox时出现不一致的情况)。

我国在最晚不晚于宋代发明了水密隔舱。所谓水密隔舱,是指将船体分成若干个互不相通的舱区,这样当一个或几个舱区进水时,整个船体仍然可以有足够的浮力而不致沉没。这是一项相当重要的发明,类似的设计思路在其他领域也有应用。

在计算系统中,往往也会采取类似的设计思想。例如,操作系统会对进程地址空间的访问提供隔离,这样当一个进程吐核的时候不会影响其他进程的运行。又比如,在设计安全方案时,采用分层、相互隔离的信任状实体,分隔特权服务和非特权服务,把绝大多数的输入处理放在非特权服务中运行。再比如,在设计大容量计算系统时,可以将高优先级的任务单独设计一个队列,并限制所有worker能够容纳的任务总数,在运营时以逐步提高上限的方式来避免出现超载导致大家都无法使用的情况。

总之,我不认为中国人在宋代就已经想出来的方法,到了21世纪还可以被中国人认为是「非常特别的系统」「应用的场合很少」「中国目前研究这种系统的人不多」的高精尖。这么想的人,是的,你也就配做个末学。

VirtualBox可以在远程运行,并把界面通过 ssh 的 X11 转发放到管理员的桌面。

FreeBSD 上可以用 port 来安装 VirtualBox:

# portsnap fetch update
# cd /usr/ports/emulators/virtualbox-ose
# make install clean

接着配置 VirtualBox 所需要的内核模块:

echo 'vboxdrv_load="YES"' >> /boot/loader.conf
echo 'vboxnet_enable="YES"' >> /etc/rc.conf.local

将需要使用VirtualBox的用户添加到vboxusers组:

# pw groupmod vboxusers -m delphij

安装 xauth:

# cd /usr/ports/x11/xauth
# make install clean

重启系统,或手工加载模块之后,就可以从远程 ssh 进来运行 VirtualBox 了:

desktop% ssh -Y vsvc.example.com # 【注1】
vsvc% VirtualBox

VirtualBox的管理界面会出现在客户端系统上(当然,在列出文件时仍然是服务器端的文件)。

在安装、调试之后,就可以用VBoxHeadless来启动远程的虚拟机了。

【注1】这里使用的是"Trusted Forwarding",如果远程主机不可信,这样做会提高安全风险。

DNS中的SRV记录

| 1 Comment | No TrackBacks

最近看代码时了解到的,顺手查了一下,在此留个记录:

SRV记录的作用是指明某域名下提供的服务。

例子:

_http._tcp.example.com. SRV 10 5 80. www.example.com

SRV后面项目的含义:

10 - 优先级,类似MX记录
5 - 权重
80 - 端口
www.example.com - 实际提供服务的主机名。

不过实际在Internet上用这个的似乎非常之少。

新浪科技 报道,受强烈地震影响,中美海缆、亚太1号、亚太2号海缆、FLAG海缆、亚欧海缆、FNAL海缆等多条国际海底通信光缆发生中断,中断点在台湾以南15公里的海域,造成附近国家和地区的国际和地区性通信受到严重影响。

以下场景纯属虚构,请勿对号入座。

技术:现在您的计算机名叫“COMPUTER-X5V89KP”,您需要我帮您做点什么吗?
客户:我需要让我这台计算机的计算机名叫“电脑”。
技术:很抱歉,这样做不太好,我建议您把计算机命名为“COMPUTER-X5V89KP”,这是因为您的计算机名中只能出现字母、数字和连字号(-),并且连字号不能出现在第一个字符的位置,否则可能会给您的使用带来困难……
客户(不耐烦,打断):电脑是你的还是我的?我就要让它叫“电脑”!
技术:好吧。

右下角的“WooCall”。

Junsu has mentioned SCTP, a stream protocol that is quite interesting. A KAME implementation for FreeBSD is available for years.

Google了一下发现无数模块的实现……

New P2P framework

| 2 Comments | No TrackBacks

Today I have some ideas about P2P application framework. Would check if there is any available ones and whether they can fulfil my ideas. Maybe I would start a project to implement these ideas in Python and/or C++.

由于某种原因需要一口气inject大约80万封信,结果中间就不成了。后来发现似乎3000-10000/queue为宜。什么原因呢?

Monthly Archives

Pages

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