公共场所不要乱涂乱画

March 6, 2008 8:35 pm GMT-0700 | In Life | 7 Comments | hide

poster-graffiti.jpg学校某个楼电梯里贴的讲座预告被人画了个猪头,于是系里发电子邮件通报批评,大意如下:

海报是非常严肃的!

乱涂乱画可不是闹着玩的!!

这是对演讲者的侮辱!!!

演讲者要是看到了会觉得很尴尬!!!!

每一张海报都凝结着心血!!!!!

制作海报的小蜜很生气,后果很严重!!!!!!

IE6 和 PNG 透明色

March 4, 2008 10:36 pm GMT-0700 | In Tech | 5 Comments | hide

kangkang-png8.pngkangkang-png24.pngkangkang.gif

今天又碰到有人说 IE6 不支持 PNG 透明色,真是无语……所以干脆跑上来拜一下康神好了。上面三张图分别是 PNG-8,PNG-24 和 GIF。IE6 不支持的只是 PNG 的 alpha 通道(256 级可调半透明色),PNG-8 索引色里的完全透明色还是支持的。正常浏览器能看到三尊金色背景的康神;IE6 里中间那尊 PNG-24 康神则没有金色背景。

P.S. IE6 可以用 filter 弄 alpha 通道。

Tags: , , ,

小牛犊 APNG 力挫老古董 MNG

March 3, 2008 11:27 am GMT-0700 | In Tech | 12 Comments | hide

GIF 是一个变态的格式,不但当年有专利方面的问题,而且只能支持 256 色,还没有 full alpha 通道,只不过现在还没有别的通用格式可以替代其动画功能,所以 GIF 还是一个相当流行的格式。PNG 1996 年发布的时候就希望打倒 GIF,但是 PNG 的软件支持发展比较慢,特别是 PNG 不支持动画,导致 GIF 一直到现在还没有被打倒。(GIF、JPEG 和 PNG 的比较

PNG 小组的保守派一直强调,祖先定下规矩,PNG 只能存储一张图片。于是,他们在 1996 年就开始琢磨另一种全新的动画格式,叫做 MNG,但是十多年过去了,MNG 却已经销声匿迹。MNG 错在哪里?MNG 的结构太复杂了。PNG 当初作为一种全新的格式,就经过了好几年才开始普及;而 MNG 除了多一个动画功能,也没有太多的好处。Mozilla 浏览器曾经支持过 MNG,但是 2003 年夏天很诡异的把 MNG 支持去掉了。You can support, and then unsupport?这不禁让我想到盖茨在 Bill Gates’ Last Day at Microsoft 中所说的“you can retire, and then unretire?”

Mozilla 去掉 MNG 支持的事情曾在 Bugzilla 上引起轩然大波(Bug 18574 195280)。去掉 MNG 的主要原因是 Mozilla 里维护 MNG 库的 tor 力不从心不想干了。MNG 复杂的结构导致其解码库比 Mozilla 里别的所有图片格式的解码库总和还要大,虽说这 200 kB 的解码库即使在当时 2003 年也根本不算什么,但这是 tor 列举的移除 MNG 支持的第一个理由,因此也常被人误读为 Mozilla 去掉 MNG 的根本原因。MNG 创始人之一 Gerard Juyn 曾写道

Mozilla 1.4 still supports MNG, but current builds have it removed. The decision was made to save space…

FireFox is the lean and mean descendant of Mozilla…

这之后 MNG 的日子越来越不好过,目前主流浏览器里只有 Konqueror 原生支持 MNG,别的都要装插件(Konqueror 算主流浏览器么?)。libpng 目前的维护者 Glenn Randers-Pehrson 在 2007 年承认

After 6 years or so since MNG-1.0 was approved, it seems clear that it is not really going anywhere, mostly due to claims that it is too complex.

互联网发展了这么多年,通用动画格式仍旧只有存在各类问题的 GIF 一种。 2004 年,Mozilla 有两个人痛定思痛,发明了一种基于 PNG 的动画格式,叫 APNG。APNG 比 MNG 好在什么地方?APNG 是对 PNG 格式的一个极小扩展,而非完全从头打造一个全新格式。首先,它和老 PNG 标准完全兼容,不认识 APNG 格式的浏览器可以正确显示 APNG 动画里的第一帧图片;其次,由于它只是对 PNG 格式的一个小扩展,所以支持 APNG 非常简单,PNG 库也只会增加大概 5% 的大小。不过比较搞笑的是,2004 年 APNG 提出之后那两个猪头一直没空实现它,一直到 2006 年有一个机会他们在 Google Summer of Code 找了个小弟 Andrew Smith 实现了 APNG 解码,现在最新的 Firefox 3 beta 和 Opera 9.50 beta 都已经支持 APNG。

APNG 的出现,自然是给渐渐死亡的 MNG 重重一击。PNG 邮件列表上争吵声此起彼伏。2004 年,PNG 创始人之一 Thomas Boutell 在《MNG 已死,有事烧纸》一文中回顾到:

PNG is moderately successful, but it never did replace GIF. That’s mainly because Netscape sprang animated GIF on the world when the PNG specification was nearly final, without saying a word or once suggesting that we include animation.

When animated GIF appeared, I lobbied the PNG group for simple, GIF-style animation support in PNG, … I lost out to those who made eloquent arguments for a more complete animation format (So much for dictatorship. At least I was benevolent.). MNG, the all-singing, all-dancing, all-merciless animation format, took a long time to standardize and was rejected by both major web browser vendors …

Very recently, two young turks decided to invent a simple new animated-PNG format (apng) … It is kicking up a shitstorm on the long-dormant PNG mailing list. The old-timers and the young turks are trying to hash out an agreement. I agree for the most part with the young turks and their design choices.

I could not be more pleased with this development.

Andrew Smith 在 libpng 的 apng 补丁发布网站提到一句 MNG:

MNG already existed at that time but was too big/fancy for most people to accept as an image format (this is the first and last time I mentioned this flamy topic).

这样的争吵持续了很久,2007 年 4 月 PNG 小组投票决定是否允许 APNG 进入官方 PNG 标准,投票以 10:8 否决这个建议,PNG 小组里的顽固分子仍旧相当排斥直接在 PNG 格式上动手动脚支持动画。

标准的诞生,基本上是一个先有鸡还是先有蛋的问题。世上本没有使用 PNG 的人,也没有支持 PNG 的浏览器,更没有制作 PNG 的软件;然而几年过去,三者相互影响并都稳步上升。MNG 一开始面对的也是同样的境地,但却没有流行起来。APNG 其概念本身并不优美,是对 PNG 标准的粗暴践踏,但是因为有的放矢,射中要害,却得到了两个主流浏览器的认可。标准的诞生就是一场恶战,不一定最好的技术就会胜利,TCP/IP 就是一个例子。新标准和新公司一样,只有好的想法和技术并不能成功,市场团队同样重要。市场做好了,烂东西也能变成好东西。

有人对开源软件盲目崇拜,认为软件开了源就是万事大吉,其实缺少了经济利益驱动的开源软件往往官僚更严重,即便在开源团队内部,权威照样存在,更不用说在用户层面上的反馈了。开源不等于开放,开源也不等于民主。AA 软件的 XX 功能能不能改改?你丫不会自己改啊?AA 软件为什么没有 YY 功能?你大爷的你爱用不用。AA 软件的 ZZ 功能是不是有 bug?放屁,这叫 feature!Bugzilla 上这么多反对的声音,Mozilla 的 MNG 支持照样被去掉了。群众力推 APNG,无论其多么的符合实际需求,照样能被 PNG 小组里的老东西打倒。

最后,有人问过我,是否看好 APNG。我想我也预测不了世界范围的图片格式流行趋势,不过如果 IE 不支持 APNG 的话,APNG 还是只能局限在应用程序界面上使用,很难成为网页上的通用图片格式。

(以上所有引文中的下划线都是我加的)APNG 的几个网站:

Tags: , , , , , , , , , ,

GIF、JPEG 和 PNG 的比较

March 1, 2008 3:00 pm GMT-0700 | In Tech | 3 Comments | hide

GIF、JPEG 和 PNG 是三种最常见的图片格式。

  • GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色(一般叫 8 bit 彩色),支持单一透明色;
  • JPEG:1992 年出世,照片一般都用这个格式,有损压缩,24 bit 真彩色(224 = 17 万种颜色),不支持动画,不支持透明色;
  • PNG:1996 年问世,无损压缩,最常见的使用格式是 256 索引色(PNG-8)和 24 bit 真彩色(PNG-24)(当然 PNG 支持的颜色格式远不止此),支持 full alpha 通道(256 级可调半透明色),不支持动画。

简单比较:

  • JPEG v.s. PNG:JPEG 在照片压缩方面拥有巨大的优势,这方面无可替代,但是 JPEG 是有损压缩,图片质量会有损失。另外,一般屏幕截屏用 PNG 格式不但比 JPEG 质量高而且文件大小还更小(维基有图)。
  • GIF v.s. PNG:GIF 只在简单动画领域有优势(其实,GIF 256 色限制以及无损压缩机制导致高质量的动画的发布一般都使用 Flash 等格式),只要没有动画,PNG 完全可以取代 GIF。
  • 防锯齿:下面是 GIF 和 PNG 防锯齿处理的对比,六张小图片是分别放到浅黄和深绿背景下的情景,三张大图是深绿背景情形的放大。由于 GIF 没有半透明一说,所以防锯齿处理时只能假设背景是白色,这样的 GIF 放在深色背景下还不如不防锯齿。而 PNG 图片可以轻松应付各种背景颜色,特别适合用来做网页和应用程序里的通用防锯齿图标适应不同皮肤,没有 full alpha 通道的 JPEG 和 GIF 都做不到这一点。

ren.png

可以看到,除了照片和动画,PNG 是最好的格式,但是 PNG 为什么到最近几年才流行起来?有很多原因:

  • PNG 诞生的时候互联网已经初具规模,当时 GIF 和 JPEG 已经是很流行的格式了,换格式的迁移成本是很大的,有时候惯性是一个很可怕的东西。
  • 浏览器的 PNG 支持比较落后,比如 IE 就是到 IE4 才开始支持 PNG。
  • PNG 当初标准里把 alpha 通道写成了 optional 的,土鳖的 IE 一直到 IE7 才开始支持 full alpha 通道。而一般网页图标 256 色足够,所以为了支持 IE6,PNG 相对于 GIF 毫无优势可言,更何况 GIF 还支持动画。
  • 尽管从原理上说,同样质量的 PNG 图片文件一般要比 GIF 要小,但是早期很多图片编辑器不支持 PNG,甚至支持的也没有完全利用 PNG 压缩算法里最精妙的部分(最典型的例子就是早期的 Photoshop),保存出来的 PNG 往往巨大无比。现在的软件已经没有这些问题了,但是这个偏见还广泛存在。

Tags: , , , , , ,

遭遇民科

February 26, 2008 11:00 pm GMT-0700 | In Life, Study | 14 Comments | hide

所谓“饱暖思淫欲”,有些民间非科研人士在吃饱了穿暖了的情况下就开始强奸科学,这种我们一般叫做民间科学(家),简称“民科”。前几天正在和老板开会,老板接到一个民科电话,唧唧歪歪了十多分钟。此人受教育程度良好,先前声称自己推翻了相对论,最近又有了新的发现希望和物理学家讨论。老板曾经收到此人十多页的《新相对论》手稿,里面没有一个公式!拜托,你可不要以为相对论只有在接近光速或者强引力场里面才能派上用场,光光对准 GPS 卫星上的原子钟,就需要考虑狭义和广义相对论的两种效应,如果没有公式来计算,GPS 的误差就不是几米了,而是几公里,飞机撞到塔台上你给负责啊……

关于民科的特点,我了解的不够全面,随便转载一篇文章里提到的六个特点:1. 选择性近视;2. 新名词极多,逻辑混乱;3. 受困于常识,又喜欢发表一些超越具体问题之上的议论;4. 常常夸大结论的意义,尤其喜欢表达爱国情怀;5. 常常把结论建立在未来的可能性上;6. 往往认为自己受到学阀的歧视和打压。可是有不少讨论民科的文章连现代民科是什么都没搞清楚,比方光明日报有篇科技时评,竟然把现代民科和瓦特、爱因斯坦混为一谈。瓦特、爱因斯坦那都是用正确的思想方法在钻研科学技术,只不过他们起初没有正式的学术职位;而现代民科呢?他们连基本的科学修养都没有,纸上画几个图就敢号称发明永动机了。光明日报这篇文章还说:“在自己感兴趣领域进行自由探索是每个公民的权利,这种探索不会给社会造成任何危害。”能没有危害么?我身边就有物理学家每年要和十多个民科长期作战,还得耐心,不能毁了学术界的公众形象;行骗十多年的“点水变油”,又耗费了多少国家资源,造成了何等恶劣的影响?

相比起来,TIME 杂志多年前的一篇文章对于民科现象的总结就很到位,摘要如下:

Cranks are an occupational hazard that every scientist eventually faces. Fortunately, these characters are usually easy to spot. If someone claims to have a grand theory that overturns centuries of scientific knowledge–especially when the theory spans unrelated fields like physics and biology and economics–the odds are good that he or she is a crank. If the author publishes not in a standard scientific journal but in a book for general readers, watch out. And if the book is issued by the author rather than a conventional publisher, the case is pretty much airtight.

Tags: , , ,

自恋的三层境界

February 26, 2008 10:28 pm GMT-0700 | In Misc | 4 Comments | hide

自恋境界第一层:Google Reader 里面有自己的 Blog(所谓检查一下 RSS 输出是否正常);
自恋境界第二层:Google Reader 里面读自己的 Blog;
自恋境界第三层:Google Reader 里面推荐自己的 Blog。

附送:

发信人: atppp (Big Mouse), 信区: WebDev
标  题: Re: 全部用DIV布局累死了,
发信站: 水木社区 (Mon Apr 10 13:26:31 2006), 站内

div排版的三个境界:
1. 怎么都搞不定非ie浏览器
2. 怎么都搞不定ie
3. 天马行空

【 在 thistle (alfalfa) 的大作中提到: 】
: 我同学给系里作网页也是div排版的,我们和ie死磕了好久
: firefox,konqueror和opera倒是一点问题没有…

Tags: , ,

IE7 是邪恶的

February 24, 2008 11:09 pm GMT-0700 | In Misc | 13 Comments | hide

曾经有好几个美国人跟我抱怨,IE7 怎么没有刷新按钮了。

上网一搜,没发现 IE7 刷新按钮的比比皆是。有个哥们抱怨说:I can’t believe I googled on this.

我长期不用 IE,今天打开来居然也没找到刷新按钮,情急之下只好按了 F5……

其实,IE7 里面的刷新按钮被移到了地址栏右边,不再和后退、前进按钮在一起了。

十多年来我们早已熟悉的“后退、前进、刷新”的按钮序列居然被微软这帮猪头给推翻了。

这真是一个反人类的浏览器。

ie7.png

(小猪取自辛普森家庭电影网站)

Tags: , ,

小写字母 a 和 g 的两种写法

February 20, 2008 11:53 am GMT-0700 | In Tech | 11 Comments | hide

verdana.pngtimesnewroman.png很久以前听过一个讲座,一个大胡子物理学家讲到观察能力的时候说,你们可知道你们每天回家上楼要上几阶台阶吗?这个问题,大部分人自然回答不上来,大胡子得意洋洋的说,看,这就是观察能力,你们每天都见的东西却没有观察过,可见你们的观察能力不够。

我一直很不明白,谁吃饱了撑的数台阶啊?物理学家是不是都有病?不过呢,我这里要讲的也是一个吃饱了撑的问题,如果你以前没注意过,可千万不要以为自己有什么问题。大家都知道,小写字母 a 和 g 有两种写法,如左右两个图里所示。有些人的第一反应是,哦,我知道,一个是手写体,一个是印刷体。可事实却不是这么简单,先解释一下左右两张图:左边是 Verdana 字体,右边是老牌 Times New Roman;上下三个字母里,最下面这个是斜体。

关于小写字母 g 的两种写法,手写一般用左边这种,叫做单层(single-story)g,而右边这种叫双层 g,也有人把它们分别叫做 opentail 和 looptail。双层 g 下面的尾巴闭合,右上角还有一个小耳朵,一般正式出版物里面都用这种 g。不过很多电脑字体和非正式出版物都用单层 g,所以单层 g 已经不能算仅仅是手写体了。

然后是小写字母 a 的问题,大多数印刷品和电脑字体里面,a 都是双层的,你可能会认为那种单层 a 肯定是手写体了吧?可惜不是,如果你去看报纸杂志,你会发现所有斜体的地方 a 都是单层写法(如右图 Times New Roman 字体所示)。只不过很多电脑字体不遵守这个规则,只是简单的把正体 a 倾斜一下(左图 Verdana 字体),怎么看怎么觉得别扭,每次我看到印刷品里有这种斜体双层 a,真恨不得把它抠下来。

Typography 非常古老,学问也相当深,微软、苹果、Adobe 等大公司都曾下巨资研发字体,上面说的小问题,只是冰山一角,推荐一个纪录片:Helvetica。不过,我问一些土生土长的美国人,很多人从来没注意过斜体 a 需要用单层写法的规则,是我们都没有观察能力了吗?我想不是的,就像上楼梯你不会数台阶一样,过分关心没有意义的细节是会杀伤脑细胞的。

P.S. Unicode IPA Extension:

  • ɑ: U+0251, UTF-8 C991, GBK A8BB.
  • ɡ: U+0261, UTF-8 C9A1, GBK A8C0.

Tags: ,

« 上一页下一页 »

This weblog is licensed under a Creative Commons License.
Powered by WordPress. Theme based on Pool by Borja Fernandez.