OpenSource 类别下的最新文章

从 7-Zip 的预设格式说起

| 31 Comments

在 Twitter 上看到笑来和几个推友说起关于提供下载为何不用更通用的 ZIP 文件格式而用 7z 的格式(refer)。这个倒是挺有趣的话题,刚好我也是 7-Zip 的用户,对这个不习惯也由来已久了,也一直不喜欢这个方式。

7-Zip 的默认压缩文件格式为"7z" (扩展名是 .7z) ,就是这个微小的差异给用户添加了很大的麻烦。设想一下,你用 7-Zip 压缩了一个文件,扩展名为 foo.7z ,传给了你的朋友(非IT人士),而你的朋友用的是 WinRAR,这是压缩软件市场上的主流,他看到这个格式之后,他会如何反应? 换个应用场景,如果一个普通用户,从网络上下载一个软件,下载完毕之后发现默认没有软件能打开这个 .7z 为扩展名的文件,他会如何做?

必须要承认,7z 压缩格式有很多优点,而 7-Zip 是个很好的压缩工具软件,但在预设格式上的这个事儿,不折不扣的是在挑战用户习惯。或许有人支持这样的做法,一个支持观点是 7z 格式压缩比更高。这是个很好的理由,不过,那么一点点的压缩比收益,考虑到当前个人用户所用设备的存储能力以及网络支撑能力等,对于单个用户来说,无法抵消使用习惯带来的麻烦。除非全世界都是 7-Zip 的用户,很可惜,现在的 WinRAR 仍然是市场绝对的主流,而 Zip 与 RAR 格式也是事实上的标准。另一种支持观点是现在所有主流压缩软件都支持 7z 格式了,所以使用是合理的。的确,主流压缩软件可能支持了 ,但是,绝大多数计算机用户不知道这个事实,和他们不知道没什么本质区别。或许,会有人认为这是 7-Zip 发展用户的一种独特的手段,如果是的话,那恐怕这是最拙劣的营销方式,形同绑架用户一样。

如果不是市场的绝对主导者,任何挑战用户习惯的的行为无疑是危险的。相比 WinRAR 和 WinZip 来说,作为开源软件的 7-Zip ,只需要使用习惯和前两者一样,而功能甚至都未必那么强,就会赢取大量用户。但是给用户习惯設置障碍的做法无疑是不可取的。如果有人不同意,那么还记得"兼容机"这个词汇吧 ?

开源软件应该多考虑使用习惯上的"兼容性",做网站也是一样,有多少人在设计网站的过程中真的尊重用户的遗留习惯? 而你是如何做的呢?

--EOF--

Movable Type 与 WordPress

| 11 Comments

在几次跳票之后,Six Apart 终于发布了 Movable Type 5。作为少数坚守在 MT 阵地的用户,当然是第一时间升级到新版本进行了一番体验,结果就是这几天正在一点点修改升级后的一些模板上的问题。倒是有活干了。

一点小经验是如果是延续用旧的主题的话,迁移到新的目录后要确保有 "theme.yaml" 这个文件,否则后台点击 Setting 按钮的时候会弹出一个"Can't call method "label" on unblessed reference" 的错误。多数插件都能继续用,可以打开 MT 的 Debug 模式,然后查看 Plugin 列表,会显示哪些插件兼容性不够好。我觉得用好 MT 的一个秘诀就是...尽量少用插件。

总体来看 MT 新版本的确带来了很大改进,除了增加了版本历史功能外,内容结构的组织有更大的改进,模板的可定制化非常好,是目前能看到的 CMS 平台的登峰造极之作。只是从平台的角度考虑恐怕还竞争不过 WordPress ,我个人觉得语言的实现(Perl vs. PHP)造成了二者在最初发展上的差异,进而导致插件上开发的 Movable Type 远远不如 WordPress 容易,而插件的多寡影响功能的完善与丰富性。用户会接受哪一个不言而明了。另外一个影响因素就是更多的主机提供商对 PHP 的支持更为友好,甚至一些提供商提供一键安装 WordPress 的服务。而 MT 的安装怎么也需要用户懂一点点技术才成。

好的工具才会激发写作的乐趣,MT 属于这样的工具

--EOF--

DRBD 与 Pacemaker

| 3 Comments

如果有人问你一台 PC 服务器是否可以达到 99.99% 的高可用,该如何回答呢? 或许没有一台机器能"确保"达到这样的可用率,当然在某个时间段或许不会出问题,但这个肯定是看运气,而高可用基本上是没办法通过一台来达到目标的,我们更多的时候是设计方案确保在出问题的时候尽快接管故障机器,当然这要付出更大的成本。

对于 Oracle 的高可用方案可以参考 Maximum Availability Architecture (MAA) 白皮书,不过 Oracle 并不推崇操作系统级别的解决方案。MySQL 的指导策略倒是更为灵活一些,DRBD® (Distributed Replicated Block Device) 就是个可以考虑的选择。以前关注过这东西,但是据我了解,好像国内实现的案例不多,不知道是不是处于对网卡同步速度的限制考虑。现在这个有了新的转机,在 8.3 版本上已经能够支持 InfiniBand 。而原来通过网卡同步数据块的方式毕竟受网卡延时和带宽的限制,InfiniBand 的支持的实现相信能赢得一部分企业用户的信赖。

DRBD_overview.jpg

Linux Kernel Summit 2009 上这次有对 DRBD 的介绍(注意对数据一致性的介绍),这意味着能正式进入 Kernel 么?

相对专有的集群管理工具,也有开源的集群管理工具 Pacemaker (支持 HeartbeatOpenAIS 标准)可供配套使用。Pacemaker 能够较为灵活的实现主备、N+1 、N-N 等多种模式。感人感觉会比较有生命力。

Pacemaker.jpg

好的开源解决方案就是设计活动木板房,廉价灵活环保,当然,牢固肯定是第一目标。

补充:

根据 MySQLPerformanceBlog 的说法,MySQL 几种高可用解决方案能达到的可用性如下:


HA_ratio.png

--EOF--

Google 使用 Linux 的情况

| 4 Comments
Google, Inc.

Image via Wikipedia

技术爱好者大多都知道 Google 是使用 Linux 的大户,但是一直以来对于他们如何使用 Linux 却知之甚少,甚至内核开发社区对 Google 内部使用的情况也了解不多。LWN 上的这篇 How Google uses Linux 给我们带来了不少信息。

Google 使用 Linux 肯定有很多令人震惊的地方,第一个令人"惊讶"的是他们使用的代码管理工具:Perforce 。代码维护方式看起来也比较落后,当前维护的代码版本远远落后于开源社区内核版本,因为 Google 自己要维护大量的内部特性,每一个大版本发布周期是大约 18 个月,而内部特性的回归也要折腾6个月。因为版本滞后,所以有不少向后移植(Backporting)的工作要做,这个比例大约是 25%,还是不小的。

Google 内部大约有 30 个内核开发人员,而之所以外界很少看到 Google 对 Linux 的 Patch 代码,主要的原因居然是--担心代码不够优雅。我想这应该说的是大实话。我也遇到过很好的开发者对开源软件做了改进之后不愿意把代码贴出来,原因就是担心代码不好看,怕被笑话。

因为应用程序类型之故,对于 Google 来说,完全公平调度器(Completely Fair Scheduler)并不适合,采用了 O(1) 调度器,一般 16-32 核的机器要跑 5000 个线程左右。

Google 倒是喜欢用 Out-of-memory (OOM) killer 特性,这倒是出乎我的意料。Google 对于内存管理方面的改进或许是不小的突破: 通过伪 NUMA 模式来保证不同类型应用对内存的使用。除此之外,有大量的代码用于系统的监控,针对磁盘、网络等子系统或者是针对应用程序性能。

对于计划中的将实现的新特性,在一堆列表中看到了在 I/O 层对于高速 Flash 盘的支持计划。在文末,另一个有趣的技巧是,Google 喜欢把文件系统的元数据 Pin 到内存里以便提高读取响应时间。

或许将来能看到 Google 为 Linux 内核贡献更多代码,那会是一件很有意义的事情。

--EOF--

关于归档

本页包含 OpenSource 类别下的所有文章.

上一类别为 MyLife.

Review 为下一类别.

回到 首页 查看最近所有文章或者查看所有 归档文章.