技术

Haraka - a Node.js Mail Server

https://github.com/baudehlo/Haraka#readme

看作者的自述:Haraka is a project started by Matt Sergeant, a 10 year veteran of the email and anti-spam world. Previous projects have been the project leader for SpamAssassin and a hacker on Qpsmtpd, a perl based mail server which is quite similar to Haraka (but not as fast due to perl being slower than Javascript).

貌似不是一个蛋疼的项目... 刚刚发布 0.6.0 版本

Why Use Haraka?

Haraka's primary purpose is to provide you with a much easier to extend mail server than most available SMTP servers out there such as Postfix, Exim or Microsoft Exchange, yet while still running those systems for their excellent ability to deliver mail to users.

postfix 一直没有增加 libevent 的支持,对一个这么活跃的项目,以及这么被广泛使用的服务来说有点异乎寻常。从理论上来说,一个邮件系统的I/O能力是被其磁盘信件队列的I/O能力限制住了,所以网络I/O不追求高并发也可以理解。

但是考虑到垃圾邮件,潜在的DDoS攻击,在 postfix 之前弄一个这玩意确实值得考虑。

以前曾经想过用 twisted 做类似的东东,现在看来又多了一个新选择。

最后要说的是,node/v8 的 gc 确实很蛋疼

iPad 和 socks

起因是这样的,前段时间 LD 表弟的 iPad2 托人从美国带过来时经过了我们的手,LD 对这个白色的设备很有些兴趣,后来有一天我在 twitter 上看到有人说 Apple 中国官网上又开卖 iPad2 了,考虑到我家的 kindle3 被 LD 长期霸占,我于是撺掇 LD 咱们也买一个 iPad2 吧。

今天 iPad2 到了,LD 果真扔下了 kindle3 兴冲冲地开始玩这个新玩具,看到有个 youtube 的应用,然后——杯具地撞墙了……

这算是拿到 IT 设备的第一件大事了,google 之。因为平常在电脑上用 ssh turnnel 翻,基于此,iPad 大概有两种方法,一种在网络设置 http 代理的地方填上某个 pac 文件的地址,而在这个 pac 文件里给出 socks 的 ip 和端口。另一种是安装软件,把 socks 代理转成 http 代理(这篇 blog 的留言值得一读,有不少信息)。

对于我来说,似乎直接用 pac 文件更方便一点。不过上面那个文章里面的 pac 文件示例太简单,任何网址都去走 socks 代理。而实际上对于国内网站也用代理既不经济也不实惠,甚至今天发现优酷的某些视频只允许大陆地区的 ip 观看。那么 pac 文件里简单的过滤需要一点。如果不想使用正则的话,可以参看一下我下面写的。除了过滤被墙的网址外,主要目的是处理子域名不需过滤的情况。比方说对 google.com 使用代理,但是 mail.google.com 却不需要。

var patterns = new Array("twitter.com", "twimg.com", "youtube.com", "ytimg.com", "google.com");

var patterns_black = new Array("mail.google.com");

function FindProxyForURL(url, host) {
for (i in patterns_black) {
if (url.indexOf(patterns_black[i]) >= 0) {
return "DIRECT";
}
}
for (i in patterns) {
if (url.indexOf(patterns[i]) >= 0) {
return "SOCKS 192.168.X.XXX:YYYY";
}
}
return "DIRECT";
}

Fedora 15里如何关机

今早我无意中发现了F15可以下载了,于是就开始download

到了100多兆的时候,杨松同学出现了,然后问我是否要 F15 的安装盘。。我心里一喜,终止了下载任务

杨松随即又抱怨,F15的ACPI很成问题,halt 无法关机。我问他,为啥不用菜单里的关机选项来关机。杨老师很泄气的回答,因为找不到这个菜单项

我哈哈一下,你必须要按 Alt 才能看到 shutdown

==== 这是故事的分割线 ====

为什么我知道 Alt 这件事?我明明没有用过 F15 啊

很简单,在下载那100多兆的时候,我一直都在看 Release Notes

别的项目不敢说,RedHat 制作的 Release Notes 一向都是做得很漂亮的。而且要明白最近半年开源软件比较重量级项目的版本变化,大部分都囊括在这个文档里了

即使你在用 ubuntu,也非常值得阅读。

Topic: 技术

技术社区和商业组织

预计下午的CPyUG本次活动我得准备一个开场白,打的腹稿大概是这样:

世界上有两种工作模式,一个是变革驱动,一个是运营驱动

模式无所谓好坏,这是一个正常的发展规律,当日常运营遇到困境,内外部环境都发生变化,组织必须顺势而变,寻找新的运营流程。

运营->变革->运营...不仅仅是商业组织,每个个人也是在这两种模式中周而复始的切换的。

那些积极参与技术社区活动的同志,都是希望超越日常工作/学习环境,超越自己的 daily operating,去寻求变化的。这导致了技术社区成为一个变革汇聚的地方,其中蕴藏着改变世界的能量。

当一个商业组织不满足于现有的运营驱动模式,必须积极从内部或者外部寻找推动变革的力量。外部而来的力量会更强大,内部自发形成的变革力量较容易管理控制。

所有参与技术社区活动的商业组织,无一例外的都是希望能从社区里汲取外部动力。或者是招募新的人才,或者是尝试新的代码/框架,或者是希望碰撞出新的火花产生新的业务模式

以前组织CPyUG北京地区活动的几个公司,比如豆瓣,目前好像在社区中都比较沉寂,这也导致本年度直到4月份才第一次聚会。我个人大胆猜测它们可能从变革驱动转向了运营驱动(至少在技术这个层次上)。这也很正常,以前搜狐基本上长期处于运营驱动的状态,技术方面和外界沟通比较少,印象上是比较封闭。

现在搜狐邮件中心已经有不少同学是通过CPyUG招聘进来的了,我们这次赞助并组织社区活动,一方面是回馈社区,另一方面也是希望向社区,包括我们内部,传递一个清晰的信号:“搜狐邮件中心正处于变革驱动的状态,我们希望借助社区,从人才招募、软件外包、业务合作等等各个方面寻找机会,达到组织和社区的双赢”

Topic: 商业 技术

尝试和任务板结合的每日晨会制度

是从尹伟铭的blog那里看到他在实施这个方法,非常感兴趣。正好他以前在搜狗的时候就互相认识,因为好不容易在别的部门找到一个泡华蟒的,就把他约来和我们这里几个同学一起聊了聊。。。饭桌上发现他还有139工作的经历,又多了若干彼此都很熟悉的联系人,相谈甚欢。

尹老师这人又有能力,又有冲劲,将来一定有不小成就。

这个方法需要技术、产品、测试共同参与,所以还是先从邮件中心最近的两个项目开始尝试了。初期参与的开发人员数名比较少,对过程的改善作用从技术开发的角度看还不太明显,但个人觉得从测试和项目控制的角度看,比以前已经进步很多了。

本周一邀请尹老师来参观我们的晨会,他又提出好多意见。计划下旬我们派几批人去集体观摩人家的晨会

如何提高项目组织能力,一个很大的题目,希望邮件中心的尝试,能在2011开一个好头

Topic: 技术

浏览体验究竟应该由浏览器控制,还是网站开发者控制?

因为一个很小的事情,我们发现搜狗浏览器不支持表单的 autocomplete 这个属性,于是就提给开发部门,希望能够改进。

这个属性 IE/Firefox/Chrome 都是支持的,或者说如果网站开发者设定为off,那么浏览器就屈服开发者,关闭掉该表单的autocomplete特性。

本来是一件小事情,而且搜狗的开发者也指出在W3规范里,"The attribute may also be omitted",著名浏览器里 opera 同样不支持它;但是从来往信件里,包括开发团队里有人透露出关于智能填表功能的后台实现逻辑,让我非常吃惊:在他们看来,关于autocomplete这个特性,是完全由浏览器来控制的,只要产品经理决定给用户提供“一致的,易于理解的”体验,那么它就要阻挠开发者自定义体验的努力。

“一致的,易于理解的”这个概念诚然很棒,但拜托,这个可不是去除弹窗和漂浮广告,我们只是规规矩矩的想法去优化自己的表单提交体验,但浏览器却表示禁止我们这么干——更别说那个实现逻辑相当的...匪夷所思

我几乎不在blog里批评自己公司的产品,但搜狗浏览器在中国已经占了5%-6%的市场份额,甚至有可能冲击市场份额第二的位置,它必须严肃思考自己在产业链中的责任。别忘了IE就是首先被开发者所唾弃,然后被用户所抛弃的(至少在欧美市场如此)。请善待前端开发者

Topic: 商业 技术

关于FB这类极致的工程师文化

* very engineering driven culture. ”product managers are essentially useless here.” is a quote from an engineer. engineers can modify specs mid-process, re-order work projects, and inject new feature ideas anytime.

这个文化工程师看了都很爽,产品经理看了都想痛骂,哈

我觉得FB有这个文化是因为:对FB而言,压制创新的风险比项目失败的风险要大..

这是个2000人的团队——个人觉得一旦最高领导人不能叫出团队里每个人的名字不知道每个人都在什么项目上一定就开始盛行官僚主义(我心中理想的公司规模应该是50-150人之间)——如果不这么做,创新一定会被无边无际的流程条款压死;另外一方面,FB已经足够大,足够领先,同时进行的项目可能有20个,即使80%的项目延期了,仍然有4个新项目可以按时上线,即使100%失败了,短期内仍然不会影响FB大局

看你的团队现在是项目失败的风险大还是压制创新的风险大?这一条不是人人都可以学的。。。别忘了FB还有一个很严酷的绩效文化,项目总是延期工程师就得走人了

FB这个文化的大背景是硅谷文化。。。。咱们的背景是啥?酱缸文化

最后,Mark好像是大学肄业生吧,所以FB这个公司的气质和2位博士创建的Google的气质显然是不同滴... FB更偏工程,Google更偏研究

Topic: 商业 技术
订阅 RSS - 技术 | BT的花