<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jjgod / blog &#187; Contents</title>
	<atom:link href="http://blog.jjgod.org/category/contents/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jjgod.org</link>
	<description>Random notes &#38; thoughts by Jiang Jiang.</description>
	<lastBuildDate>Mon, 16 Jan 2012 11:08:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>社会软件的顾虑</title>
		<link>http://blog.jjgod.org/2009/07/16/my-concern-about-sns/</link>
		<comments>http://blog.jjgod.org/2009/07/16/my-concern-about-sns/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 07:06:41 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[sns]]></category>

		<guid isPermaLink="false">http://blog.jjgod.org/?p=483</guid>
		<description><![CDATA[我不是一个很热衷 SNS 类型网站的人，最近刚刚注销了我的 facebook 帐号，原因就是上面充斥了大量我不需要的信息，综合起来，它的信噪比达到了我不能忍受的程度。 之所以如此，是因为我很不喜欢多余的信息 &#8212; 比如我想发的信息可能很多人并不想看，而别人发的很多信息可能我并不关心。多余的信息造成的问题就是人们越来越难专注于真正有用的信息，以 Google Reader 的“Sharing”功能为例，经常会出现同一篇文章被多次共享，反复出现的情况，也就是说，信息的冗余度很高。 要改善这种情况，我想，一方面是 SNS 网站应该研究更细致的信息过滤算法，自动地减少冗余；另一方面分类应该进一步细化，比如让我可以根据不同的朋友圈子选择不同的“信道”，分类地将信息发送给不同的人群。 也许 Google Wave 会是一个好的解决方向吧，我希望。]]></description>
			<content:encoded><![CDATA[<p>我不是一个很热衷 SNS 类型网站的人，最近刚刚注销了我的 facebook 帐号，原因就是上面充斥了大量我不需要的信息，综合起来，它的信噪比达到了我不能忍受的程度。</p>

<p>之所以如此，是因为我很不喜欢多余的信息 &#8212; 比如我想发的信息可能很多人并不想看，而别人发的很多信息可能我并不关心。多余的信息造成的问题就是人们越来越难专注于真正有用的信息，以 Google Reader 的“Sharing”功能为例，经常会出现同一篇文章被多次共享，反复出现的情况，也就是说，信息的冗余度很高。</p>

<p>要改善这种情况，我想，一方面是 SNS 网站应该研究更细致的信息过滤算法，自动地减少冗余；另一方面分类应该进一步细化，比如让我可以根据不同的朋友圈子选择不同的“信道”，分类地将信息发送给不同的人群。</p>

<p>也许 Google Wave 会是一个好的解决方向吧，我希望。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2009/07/16/my-concern-about-sns/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>w3c glossery CHS, 1st ed</title>
		<link>http://blog.jjgod.org/2006/02/04/w3c-glossery-chs-1st-ed/</link>
		<comments>http://blog.jjgod.org/2006/02/04/w3c-glossery-chs-1st-ed/#comments</comments>
		<pubDate>Fri, 03 Feb 2006 21:56:07 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>
		<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2006/02/04/w3c-glossery-chs-1st-ed/</guid>
		<description><![CDATA[这里是目前已经完成的 W3C 词汇表翻译的初版：GBK / UTF-8。 欢迎对其内容提出意见，可以发送到我的邮箱，也可以在这个 post 中回复。其中带“*”号的词汇是我最需要帮助的部分。:)]]></description>
			<content:encoded><![CDATA[<p>这里是目前已经完成的 W3C 词汇表翻译的初版：<a href="http://opencjk.org/~jjgod/document/w3cglossery-gbk.txt">GBK</a> / <a href="http://opencjk.org/document/~jjgod/w3cglossery-utf8.txt">UTF-8</a>。</p>

<p>欢迎对其内容提出意见，可以发送到我的邮箱，也可以在这个 post 中回复。其中带“*”号的词汇是我最需要帮助的部分。:)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2006/02/04/w3c-glossery-chs-1st-ed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recent Stuff</title>
		<link>http://blog.jjgod.org/2006/02/01/recent-stuff/</link>
		<comments>http://blog.jjgod.org/2006/02/01/recent-stuff/#comments</comments>
		<pubDate>Tue, 31 Jan 2006 18:37:50 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Miscs]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2006/02/01/recent-stuff/</guid>
		<description><![CDATA[前些日子写的东东确实少了点，这两天尽量补救一下啦，看来我和大家的时间表是相反的，估计现在大家都应为过年在外边玩吧 布丁长辈完成了 W3C 词汇表的翻译，这份词汇表是根据 W3C Hong Kong 的版本，考虑台湾的用语习惯而调整后得到的。虽然 W3C Hong Kong 提供了简体版本的词汇表，我再考虑我们是不是应该在布丁长辈翻译的基础上，也将这个简体的词汇表进一步完善呢？我会尽快开始这个工作。 更新：目前完成的版本 (仅仅是挑出我不同意的翻译)，GBK / UTF-8。 Jedi 前辈 (呃……在去年 12 月) 写了一篇介绍 Firefox 中配合网页设计的相关扩展的介绍，相信其中有些，虽然你可能已经安装了，也未必了解其功能吧。不妨读读。 再来一条来自台湾的消息，李果正前辈的这篇《樂譜排版軟體簡介》需要排版乐谱的朋友不可错过，其中介绍的大部分工具和 TeX/LaTeX, GNU/Linux 有关。 Mark Boulton 的这篇《更佳排版的五个步骤 (Five Simple Steps to Better Typography)》提出了一些很有新意的观点，对 Web 排版有兴趣的朋友可以读读。虽然部分观点我不大同意，不过这个系列文章还是值得翻译的。]]></description>
			<content:encoded><![CDATA[<p>前些日子写的东东确实少了点，这两天尽量补救一下啦，看来我和大家的时间表是相反的，估计现在大家都应为过年在外边玩吧 <img src='http://blog.jjgod.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://hlb.yichi.org/">布丁长辈</a><a href="http://hlb.yichi.org/blog/2006/01/25/48">完成</a>了 <a href="http://hlb.yichi.org/blog/2005/11/25/31">W3C 词汇表的翻译</a>，<a href="http://hlb.yichi.org/blog/wp-content/files/W3C_Glossary_term.txt">这份词汇表</a>是根据 W3C Hong Kong 的<a href="http://www.w3c.org.hk/glossary/?search=all">版本</a>，考虑台湾的用语习惯而调整后得到的。虽然 W3C Hong Kong 提供了简体版本的词汇表，我再考虑我们是不是应该在布丁长辈翻译的基础上，也将这个简体的词汇表进一步完善呢？我会尽快开始这个工作。</p>

<p><strong>更新</strong>：目前完成的版本 (仅仅是挑出我不同意的翻译)，<a href="http://opencjk.org/~jjgod/document/w3cglossery-gbk.txt">GBK</a> / <a href="http://opencjk.org/~jjgod/document/w3cglossery-utf8.txt">UTF-8</a>。</p>

<p><a href="http://jedi.org/">Jedi 前辈</a> (呃……在去年 12 月) 写了一篇介绍 Firefox 中配合网页设计的相关扩展的<a href="http://jedi.org/blog/archives/005292.html">介绍</a>，相信其中有些，虽然你可能已经安装了，也未必了解其功能吧。不妨读读。</p>

<p>再来一条来自台湾的消息，李果正前辈的这篇《<a href="http://blog.bs2.to/post/EdwardLee/4395">樂譜排版軟體簡介</a>》需要排版乐谱的朋友不可错过，其中介绍的大部分工具和 TeX/LaTeX, GNU/Linux 有关。</p>

<p><a href="http://www.markboulton.co.uk/">Mark Boulton</a> 的这篇《<a href="http://www.markboulton.co.uk/journal/comments/five_simple_steps_to_better_typography/">更佳排版的五个步骤</a> (Five Simple Steps to Better Typography)》提出了一些很有新意的观点，对 Web 排版有兴趣的朋友可以读读。虽然部分观点我不大同意，不过这个系列文章还是值得翻译的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2006/02/01/recent-stuff/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Recent Stuffs</title>
		<link>http://blog.jjgod.org/2005/08/24/recent-stuffs/</link>
		<comments>http://blog.jjgod.org/2005/08/24/recent-stuffs/#comments</comments>
		<pubDate>Tue, 23 Aug 2005 22:23:37 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>
		<category><![CDATA[Miscs]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2005/08/24/recent-stuffs/</guid>
		<description><![CDATA[下面是最近关注的东东: A List Apart 重构！原来的域名要等 DNS 生效以后才会启用，现在可以用 TextDrive 的地址访问。 Wikiwyg，wiki 上方便的所见即所得编辑器，看这个 demo。 Cairo 的 Win32 开发包，你可能需要一些 GTK+ Win32 的库 和 GnuWin32 提供的库才能编译。(用到的库包括: fontconfig, freetype, libpng, expat 等)。 WordPress.COM 能做什么？这个只有一个 Invitation 的东西……]]></description>
			<content:encoded><![CDATA[<p>下面是最近关注的东东:</p>

<p><img src="http://alistapart.textdrive.com/pix/alalogo.gif" class="alignright"/></p>

<ul>
<li>A List Apart <a href="http://www.jasonsantamaria.com/archive/2005/08/23/a_list_apart_redesign.php">重构</a>！原来的域名要等 DNS 生效以后才会启用，现在可以用 TextDrive 的地址<a href="http://alistapart.textdrive.com/">访问</a>。</li>
<li><a href="http://www.wikiwyg.net/">Wikiwyg</a>，wiki 上方便的所见即所得编辑器，看这个 <a href="http://demo.wikiwyg.net/">demo</a>。</li>
<li><a href="http://cairographics.org">Cairo</a> 的 Win32 <a href="ftp://ftp.gtk.org/pub/gtk/v2.8/win32/">开发包</a>，你可能需要一些 GTK+ Win32 的<a href="www.gimp.org/~tml/gimp/win32/downloads.html">库</a> 和 <a href="http://gnuwin32.sourceforge.net/">GnuWin32</a> 提供的库才能编译。(用到的库包括: fontconfig, freetype, libpng, expat 等)。</li>
<li><a href="http://lorelle.wordpress.com/2005/08/22/what-can-you-do-with-wordpresscom/">WordPress.COM 能做什么</a>？这个只有一个 Invitation 的东西……</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2005/08/24/recent-stuffs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>w3c&#8217;s presentations</title>
		<link>http://blog.jjgod.org/2005/08/07/w3cs-presentations/</link>
		<comments>http://blog.jjgod.org/2005/08/07/w3cs-presentations/#comments</comments>
		<pubDate>Sat, 06 Aug 2005 17:44:32 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2005/08/07/w3cs-presentations/</guid>
		<description><![CDATA[W3C 的东西太学究，估计大家都不喜欢，但世上有一物名幻灯片，特点是简洁明了，大家想必都不讨厌——此物最适合一个学期没看书，临时抱佛脚的偶们。 w3c 近期的一些 presentation，多为介绍技术的趋势，宣讲一些大家平时不大注意的东西，我选了几个不太酸的，有时间不妨看看： Tutorial: Ruby Markup and Styling, Ruby 标记的使用教程，International 工作组刚刚提供的一个教程，这个东西和汉语的关系也比较大，加上实用性较高，可以了解一下。 The device-independent browser: CSS and grid layout, 副标题叫做“CSS 布局的过去、现在与未来”，演讲者是 CSS 的创建者之一 Bert Bos，核心是介绍 CSS3 中的网格式布局 (grid layout) 方式。 An Introduction to Writing Systems, 多种书写系统的异同，及其带来的问题。这个演讲比较长，不过对东亚、拉丁、阿拉伯等各种书写系统在 Web 上的呈现有比较详尽叙述，也涉及一些 Unicode 的内容，与此有兴趣的朋友可以读读。 XHTML &#38; XForms, 这个演讲主要是介绍下一代的 XHTML 在语义表达方面的改进。]]></description>
			<content:encoded><![CDATA[<p><a href="http://w3.org">W3C</a> 的东西太学究，估计大家都不喜欢，但世上有一物名幻灯片，特点是简洁明了，大家想必都不讨厌——此物最适合一个学期没看书，临时抱佛脚的偶们。</p>

<p>w3c 近期的一些 presentation，多为介绍技术的趋势，宣讲一些大家平时不大注意的东西，我选了几个不太酸的，有时间不妨看看：</p>

<ul>
<li><a href="http://www.w3.org/International/tutorials/ruby/">Tutorial: Ruby Markup and Styling</a>, Ruby 标记的使用教程，International 工作组刚刚提供的一个教程，这个东西和汉语的关系也比较大，加上实用性较高，可以了解一下。</li>
<li><a href="http://www.w3.org/Talks/2005/0513-CSS-WWW2005/all.htm">The device-independent browser: CSS and grid layout</a>, 副标题叫做“CSS 布局的过去、现在与未来”，演讲者是 CSS 的创建者之一 Bert Bos，核心是介绍 CSS3 中的网格式布局 (grid layout) 方式。</li>
<li><a href="http://people.w3.org/rishida/scripts/tutorial/Overview.html">An Introduction to Writing Systems</a>, 多种书写系统的异同，及其带来的问题。这个演讲比较长，不过对东亚、拉丁、阿拉伯等各种书写系统在 Web 上的呈现有比较详尽叙述，也涉及一些 Unicode 的内容，与此有兴趣的朋友可以读读。</li>
<li><a href="http://www.w3.org/2005/Talks/10-03-steven-XHTML2-XForms/">XHTML &amp; XForms</a>, 这个演讲主要是介绍下一代的 XHTML 在语义表达方面的改进。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2005/08/07/w3cs-presentations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Some Books in 2005</title>
		<link>http://blog.jjgod.org/2005/01/31/some-books-in-2004/</link>
		<comments>http://blog.jjgod.org/2005/01/31/some-books-in-2004/#comments</comments>
		<pubDate>Mon, 31 Jan 2005 06:36:24 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2005/01/31/some-books-in-2004/</guid>
		<description><![CDATA[下面是今年打算看的几本书： The METAFONTbook, Donald E. Knuth (Reading, Massachusetts: Addison-Wesley, 1986). Concrete Mathematics, Ronald L. Graham, Donald E. Knuth, and Oren Patashnik (Reading, Massachusetts: Addison-Wesley, 1994). Structure and Interpretation of Computer Programs, Harold Abelson and Gerald Jay Sussman with Julie Sussman, The MIT Press. COMMON LISP: A Gentle Introduction to Symbolic Computation, David S. Touretzky, The [...]]]></description>
			<content:encoded><![CDATA[<p>下面是今年打算看的几本书：</p>

<ol>
<li><a href="http://www-cs-faculty.stanford.edu/~knuth/abcde.html">The METAFONTbook</a>, Donald E. Knuth (Reading, Massachusetts: Addison-Wesley, 1986).</li>
<li><a href="http://www-cs-faculty.stanford.edu/~knuth/gkp.html">Concrete Mathematics</a>, Ronald L. Graham, Donald E. Knuth, and Oren Patashnik (Reading, Massachusetts: Addison-Wesley, 1994).</li>
<li><a href="http://mitpress.mit.edu/sicp/full-text/book/book.html">Structure and Interpretation of Computer Programs</a>, Harold Abelson and Gerald Jay Sussman
with Julie Sussman, The MIT Press. </li>
<li><a href="http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/dst/www/LispBook/book.pdf">COMMON LISP: A Gentle Introduction to Symbolic Computation</a>, David S. Touretzky, The Benjamin/Cummings Publishing Company,Inc..</li>
<li><a href="http://www.oreilly.com/catalog/ai/">AI for Game Developers</a>, David M. Bourg, Glenn Seeman, O&#8217;Reilly, July 2004. </li>
<li><a href="http://www.oreilly.com/catalog/sed2/">sed &amp; awk, 2nd Edition</a>, Dale Dougherty, Arnold Robbins, O&#8217;Reilly, March 1997.</li>
<li><a href="http://www.schneier.com/book-applied.html">Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C</a>, Bruce Schneier, John Wiley &amp; Sons. </li>
<li><a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&#038;tid=3930">A History of Modern Computing</a>, Paul E. Ceruzzi, The MIT Press. </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2005/01/31/some-books-in-2004/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web Design World cool-down</title>
		<link>http://blog.jjgod.org/2004/12/21/web-design-world-cool-down/</link>
		<comments>http://blog.jjgod.org/2004/12/21/web-design-world-cool-down/#comments</comments>
		<pubDate>Mon, 20 Dec 2004 16:09:43 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>
		<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2004/12/21/web-design-world-cool-down/</guid>
		<description><![CDATA[Molly E. Holzschlag 的这篇被广泛引用的文章有助于我们更冷静地观察我们的 Web 设计世界，其中许多观点我深表同意。]]></description>
			<content:encoded><![CDATA[<p>Molly E. Holzschlag 的这篇被广泛引用的<a href="http://www.molly.com/2004/12/18/web-design-world-cool-down/">文章</a>有助于我们更冷静地观察我们的 Web 设计世界，其中许多观点我深表同意。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2004/12/21/web-design-world-cool-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent News</title>
		<link>http://blog.jjgod.org/2004/12/12/recent-news/</link>
		<comments>http://blog.jjgod.org/2004/12/12/recent-news/#comments</comments>
		<pubDate>Sun, 12 Dec 2004 07:53:46 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM | Scripting]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2004/12/12/recent-news/</guid>
		<description><![CDATA[临近半个学期一度的考期，blog 的频率不得不降下来，好几天没上网，确实也出现了不少新的东西。 定位总是一个热门话题，近来，Tommy 的两篇文章：Relatively Absolute 和 Float Layouts 相信能给你一点启发。 Marek 的 CSS Workshop，介绍关于 CSS 的有趣实践，比如纯粹用 CSS 做一个 W3C 的验证标志，给水平线 &#60;hr /&#62; 设定样式等。 Roger 的 Quotations and citations: quoting text 是关于如何正确地在 (X)HTML 中引用别人的文本的一篇解释性文章，而他的 The alt and title attributes 则是就 alt 和 title 属性的正确使用这个老话题而写的。Dave Shea 说得不错，Roger 完全可以就如何正确使用标记写本书了。 最近一期 ALA 的 Invasion of the Body Switchers 是先前流行的 Paul [...]]]></description>
			<content:encoded><![CDATA[<p>临近半个学期一度的考期，blog 的频率不得不降下来，好几天没上网，确实也出现了不少新的东西。</p>

<p>定位总是一个热门话题，近来，Tommy 的两篇文章：<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/07/relatively-absolute">Relatively Absolute</a> 和 <a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating">Float Layouts</a> 相信能给你一点启发。</p>

<p>Marek 的 <a href="http://www.sovavsiti.cz/css/">CSS Workshop</a>，介绍关于 CSS 的有趣实践，比如纯粹用 CSS 做一个 W3C 的验证标志，给水平线 <code>&lt;hr /&gt;</code> 设定样式等。</p>

<p>Roger 的 <a href="http://www.456bereastreet.com/archive/200411/quotations_and_citations_quoting_text/">Quotations and citations: quoting text</a> 是关于如何正确地在 (X)HTML 中引用别人的文本的一篇解释性文章，而他的 <a href="http://www.456bereastreet.com/archive/200412/the_alt_and_title_attributes/">The alt and title attributes</a> 则是就 <code>alt</code> 和 <code>title</code> 属性的正确使用这个老话题而写的。Dave Shea 说得不错，Roger 完全可以就如何正确使用标记写本书了。</p>

<p>最近一期 ALA 的 <a href="http://www.alistapart.com/articles/bodyswitchers">Invasion of the Body Switchers</a> 是先前流行的 Paul Sowden  版本样式表切换器的一个更新版本，更关心与亲和力方面的应用。</p>

<p>来自 Mozilla 方面的消息，则是 <a href="http://www.mozilla.org/products/thunderbird/releases/">Thunderbird</a> 和 <a href="http://www.nvu.com/">Nvu</a> 分别发布了 1.0 版本和 0.6 版本，不过似乎 nvu 还没有成为 mozilla 的 HTML 编辑器的下一代版本，或许它更愿意作为一个独立软件提供？</p>

<p>时间有限，不得不在这里打住。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2004/12/12/recent-news/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>456 Berea Street</title>
		<link>http://blog.jjgod.org/2004/11/14/456-berea-street/</link>
		<comments>http://blog.jjgod.org/2004/11/14/456-berea-street/#comments</comments>
		<pubDate>Sat, 13 Nov 2004 16:23:07 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Contents]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Culture]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2004/11/14/456-berea-street/</guid>
		<description><![CDATA[强烈推荐这个网站：Roger Johansson 的 456 Berea Street。 就最新的内容来说，Bring on the Tables 是创建语义化、具有亲和力的表格必读的一篇文章；Styleing Form Controls 我推荐过，结论很简单，试图在多平台下通过 CSS 让表单控件风格一致是不可能的；Developing with web standards，相当实用，建议谁有空来翻译一下；Flexible box with custom corners and borders，一个可以自动伸缩的圆角盒子，其实类似的技巧 Dave Shea 在 ALA 也曾提到。Inverted Sliding Doors tabs，反向滑门技巧，是 Doug Bowman 在 ALA 的 Sliding Doors 系列文章的补充。 更新：WSG 的 Russ 采访了 Roger Johansson。]]></description>
			<content:encoded><![CDATA[<p>强烈推荐这个网站：Roger Johansson 的 <a href="http://www.456bereastreet.com/">456 Berea Street</a>。</p>

<p>就最新的内容来说，<a href="http://www.456bereastreet.com/archive/200410/bring_on_the_tables/">Bring on the Tables</a> 是创建语义化、具有亲和力的表格必读的一篇文章；<a href="http://www.456bereastreet.com/archive/200410/styling_even_more_form_controls/">Styleing Form Controls</a> 我推荐过，结论很简单，试图在多平台下通过 CSS 让表单控件风格一致是不可能的；<a href="http://www.456bereastreet.com/lab/developing_with_web_standards/">Developing with web standards</a>，相当实用，建议谁有空来翻译一下；<a href="http://www.456bereastreet.com/lab/flexible_custom_corners_borders/">Flexible box with custom corners and borders</a>，一个可以自动伸缩的圆角盒子，其实类似的技巧 Dave Shea 在 ALA 也曾提到。<a href="http://www.456bereastreet.com/lab/inverted_tabs/">Inverted Sliding Doors tabs</a>，反向滑门技巧，是 Doug Bowman 在 ALA 的 Sliding Doors 系列文章的补充。</p>

<p>更新：WSG 的 Russ 采访了 <a href="http://webstandardsgroup.org/features/roger-johansson.cfm">Roger Johansson</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2004/11/14/456-berea-street/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MIME Type 引出的两难困境</title>
		<link>http://blog.jjgod.org/2004/11/14/mime-type-oyouaaana/</link>
		<comments>http://blog.jjgod.org/2004/11/14/mime-type-oyouaaana/#comments</comments>
		<pubDate>Sat, 13 Nov 2004 16:03:34 +0000</pubDate>
		<dc:creator>jjgod</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Contents]]></category>
		<category><![CDATA[Server-Side]]></category>

		<guid isPermaLink="false">http://jjgod.3322.org/2004/11/14/mime-type-oyouaaana/</guid>
		<description><![CDATA[一切从一个糟糕的浏览器开始，它完全不支持 XHTML。 什么是 MIME Type？ 为什么这么说呢？首先，我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash……那么，浏览器是如何区分它们，绝对什么内容用什么形式来显示呢？答案是 MIME Type，也就是该资源的媒体类型。 媒体类型通常是通过 HTTP 协议，由 Web 服务器告知浏览器的，更准确地说，是通过 Content-Type 来表示的，例如: Content-Type: text/html 表示内容是 text/html 类型，也就是超文本文件。为什么是“text/html”而不是“html/text”或者别的什么？MIME Type 不是个人指定的，是经过 ietf 组织协商，以 RFC 的形式作为建议的标准发布在网上的，大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句，Email 附件的类型也是通过 MIME Type 指定的)。 通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type，如果是某个客户端自己定义的格式，一般只能以 application/x- 开头。 XHTML 正是一个获得广泛应用的格式，因此，在 RFC 3236 中，说明了 XHTML 格式文件的 MIME Type 应该是 application/xhtml+xml。 当然，处理本地的文件，在没有人告诉浏览器某个文件的 MIME [...]]]></description>
			<content:encoded><![CDATA[<p>一切从一个糟糕的浏览器开始，它完全不支持 XHTML。<span id="more-23"></span></p>

<h4>什么是 MIME Type？</h4>

<p>为什么这么说呢？首先，我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash……那么，浏览器是如何区分它们，绝对什么内容用什么形式来显示呢？答案是 MIME Type，也就是该资源的媒体类型。</p>

<p>媒体类型通常是通过 HTTP 协议，由 Web 服务器告知浏览器的，更准确地说，是通过 <code>Content-Type</code> 来表示的，例如:</p>

<pre><code>Content-Type: text/html
</code></pre>

<p>表示内容是 <code>text/html</code> 类型，也就是超文本文件。为什么是“<code>text/html</code>”而不是“<code>html/text</code>”或者别的什么？MIME Type 不是个人指定的，是经过 ietf 组织协商，以 RFC 的形式作为建议的标准发布在网上的，大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句，Email 附件的类型也是通过 MIME Type 指定的)。</p>

<p>通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type，如果是某个客户端自己定义的格式，一般只能以 <code>application/x-</code> 开头。</p>

<p>XHTML 正是一个获得广泛应用的格式，因此，在 <a href="http://www.ietf.org/rfc/rfc3236.txt">RFC 3236</a> 中，说明了 XHTML 格式文件的 MIME Type 应该是 <code>application/xhtml+xml</code>。</p>

<p>当然，处理本地的文件，在没有人告诉浏览器某个文件的 MIME Type 的情况下，浏览器也会做一些默认的处理，这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下，打开注册表的“<code>HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Content Type</code>”主键，你可以看到所有 MIME Type 的配置信息。</p>

<h4>浏览器处理 XHTML 和 HTML 有什么区别？</h4>

<p>HTML 的语法过于随意了，有许多简写，标记不匹配的复杂情况，同时长期 Web 发展下来积累下来了许多错误的用法——比如一个文档里完全没有 <code>&lt;html&gt;&lt;/html&gt;</code> 标记——但浏览器还是得支持它，可想而知，为了支持这些“Tag Soup”——也就是我们所说的那些，乱成一锅粥的标签——浏览器要很费力地去猜测一段标记的意思，努力以用户期望的形式表达出来。一句话说，虽然 HTML 4.01 允许你用语义化、结构化的、内容与表现分离的方法来书写标记，但由于它沿袭了 HTML 这种格式，使得<strong>浏览器对于凡是 MIME Type 为“<code>text/html</code>”的文件，都得采用一种非常费劲的方法去处理</strong>，这对于 Web 的发展是很不利的。</p>

<p>再说除了浏览器，还有许多其他的用户代理要阅读 HTML：纯文本的浏览工具、读屏器等等。</p>

<p><strong>创造 XHTML，很大一部分原因正是要通过 XML 重新严格地规范一遍标记，让这些用户代理可以以一种更简便的方式来解析这些标记。</strong>因此，XHTML 这种新的格式，天生就要求内容的发布者必须以严格的方式来标记自己的文档。</p>

<p>当然，XHTML 对于内容提供者也有好处，此处先不展开，详见下文。</p>

<h4>MIME Type 与之又有什么关系？</h4>

<p>把前两节的内容合起来，你显然可以发现：一个正常支持 XHTML 的浏览器会根据服务器提供的 MIME Type 是 <code>text/html</code> 还是 <code>application/xhtml+xml</code> 来区分获取到的内容是 HTML 还是 XHTML，对这两种格式，分别以两种不同的方式来解析文档，后者解析起来要严格得多，但对于用户代理开发者和内容提供者都有很大的好处。</p>

<p>那么，那些浏览器正常的支持了 XHTML 呢？答案是 Mozilla、基于 Mozilla 的浏览器如 Netscape 7 和 Firefox、较新版本的 Opera 和 Safari 等等。但不包括 Microsoft Internet Explorer。问题是，这一“不包括”，就除掉了大约 90% 的浏览器市场啊，在我们抓狂以前，先来看看 IE 是什么处理 <code>application/xhtml+xml</code> 的：IE 不认得这种 MIME Type，它要么提示你是否下载那个文件，要么就把文件内容当作纯文本显示出来，反正是不可能正常显示标记。</p>

<p>这正是造成我们不得不给 XHTML 文档标以 <code>text/html</code> 的原因 <a href="#footnote-1">1</a>，<strong>实际上，目前 Web 上 95% 的 XHTML，都是扮成 HTML 的 XHTML (包括 w3.org)，浏览器 (包括我们引以为傲的 Mozilla) 压根没有用 XML 解析器去解析那些 XHTML，而是沿用处理标签汤的老办法。</strong></p>

<p>这个时候你会问了，在我看起来，老办法显示得很好啊，干吗为此感到头疼呢？问题正是出在“看起来”这个词上，实际上，一些细微但是不可忽略的差别仍然存在。</p>

<h4>用 <code>application/xhtml+xml</code> 方式解析 XHTML 与用 <code>text/html</code> 方式解析的差别</h4>

<p>下面所说的“HTML”，就是指 <code>text/html</code> 的解析方式；相应地“XHTML”就是指“<code>application/xhtml+xml</code>”的解析方式。</p>

<ol>
<li>这是最重要的，严格的 XML 解析至少要求文档是 well-formed 的，也就是标签要正确开闭，<code>&amp;amp;</code> 等 XML 实体要正确使用。</li>
<li>在 HTML 中 <code>&lt;body&gt;&lt;/body&gt;</code> 是用户所能看到的全部视域，给 <code>body</code> 设置背景色就是给整个文档设置了背景色，但在 XHTML 中并非如此，给 <code>&lt;html&gt;&lt;/html&gt;</code> 设定背景色的效果和给 <code>&lt;body&gt;&lt;/body&gt;</code> 设定的不同。</li>
<li>在 HTML 中 CSS 规则中对元素的匹配是大小写不敏感的，BODY 和 body 匹配的是同一个元素，但在 XHTML 中却是大小写敏感的。</li>
<li>在注释中隐藏的 JavaScript 脚本会被 XHTML 忽略。</li>
<li><code>document.write()</code> 不能在 XHTML 中使用。</li>
<li>HTML DOM 和 XHTML DOM 的元素和属性返回值是不同的，HTML 中是大写，XHTML 中是小写。</li>
<li>还有不少其他的 DOM 问题。</li>
</ol>

<p>总结起来就是，我们正在广泛使用的其实是一种看起来已经 XHTML 化的 HTML，想象一下吧，<strong>如果要求所有这些网站立即把 MIME Type 换成 <code>application/xhtml+xml</code>，即便用可以正常解析 XHTML 的浏览器来浏览，它们多数会死在前面列举的某一条原因下，无法正常显示。</strong>然而这不好说是 XHTML 的错，正常的处理理应如此，只不过我们一直被纵容了。</p>

<p>可是 W3C 还是不断要求我们以正确的 MIME Type 来提供 XHTML，为什么呢？因为我们要用到 XHTML 提供的<strong>好处</strong>啊，只有被认为是 XHTML 或者 XML 文档的东西，浏览器才会启用这些“好处”，比如你可以试着在 IE 中打开 XHTML 中嵌入的 MathML 看看，没有效果，它被当作 HTML 一样显示。</p>

<p>现在的问题是，既然把文档设定为真正的 XHTML 是如此的麻烦，会带来如此多的问题，干吗不舒舒服服地呆在 HTML 上呢？为什么要往 XHTML 过渡？XHTML 提供的“好处”值得我们为此付出如此多的代价吗？</p>

<h4>XHTML 的优势</h4>

<p>最重要的两点是：</p>

<ol>
<li>除了前面讨论的用户代理易于处理以外，实际上，大量的基于 XML 的工具，许多对 XML 有很好支持的编程语言，都能够方便地解析你的文档，从中提取出需要的信息。当然，也包括搜索引擎。</li>
<li>你可以利用 XHTML 继承自 XML 的良好的扩展性，比如在 XHTML 中嵌入 RDF 数据，描述文档的语义信息；加入 MathML 标记，描述数学公式；加入 SVG 标记，使用可伸缩矢量图型。</li>
</ol>

<p>显然，如果文档连 well-formed 都做不到，优点 1 对你是无效的，就算有效吧，就个人来说，其实也没有多少人对 XHTML 进行 XML 解析，因为能做到的，大概也就是从 <code>h1</code>、<code>h2</code> 这些标记中读出文档结构一类的功能，实在没什么大用处。</p>

<p>而第二点对大多数内容提供者来说，太远了，RDF 是什么东东？加入 RDF 信息有什么好处？没多少人知道或者有兴趣知道；MathML？这是可扩展性目前用得最多的地方，因为很多 MathML 阅读和编辑工具已经普及了，但如果你不是个成天在公式中打转的科学工作者，多半对此也没有兴趣；SVG 呢？倒是挺有意思，但目前显然没有获得广泛的应用，事实上，日后能否获得广泛的应用，还要看它能不能在与 Flash 的竞争中活下来：成为标准的东西被人抛弃也是常有的事。</p>

<p>总结起来，所有这些优点几乎都是一些空头支票，一些未来才能实现甚至未来都不知道能不能实现的东西，比如说你现在在开发一个 CMS 系统，如果现在都已经不能保证里面的内容 well-formed，有什么理由说以后，数据越来越多以后，反而会回头去把错误的标记一一改正？</p>

<p><strong>事实上，用不到这些空头支票，我们的生活几乎没有受到任何影响。</strong></p>

<p>那么，是否这就是说，XHTML 几乎就是一个鸡肋了 <a href="#footnote-2">2</a>？</p>

<h4>XHTML 啊 XHTML</h4>

<p>行文至此，已经陷入了僵局，其实我本无意把 XHTML 说得那么差的，但问题是我每句说的都是实话呀，也没有忽略什么有必要提到的因素，但反复查考，总结起来还是那一句话：<strong>XHTML 其实是一个带一点理想主义的，对普通用户来说，相比 HTML 4.01 并没有显见优势的格式。</strong><a href="#footnote-3">3</a></p>

<p>于是我们就陷入了两难困境：刨掉那些花言巧语，没有任何显见的优点吸引我们我们转向 XHTML，但如果我们永远躺在 HTML 4.01 舒服的被窝里，Web 岂不是永不前进了？</p>

<p>答案还是个问号。</p>

<h4>小结</h4>

<p>本来，仅仅为了未来的锦绣图景，大家多数还是愿意转向 XHTML 的，这大概是个博弈论中微妙的平衡，用户、浏览器厂家、标准制定者三家玩的一个游戏，但 IE 打破了这个平衡：它不支持 <code>application/xhtml+xml</code>，于是用户只好都以 <code>text/html</code> 来发布 XHTML 页面。</p>

<p>如果把他们人格化：我觉得“用户”大概是个剃头挑子一头热的家伙，他们为自己的 XHTML 页面在一切浏览器上都如此美好而感到满意，却浑不知道背后其实还是 HTML，自己没沾着一点“X”的好处。</p>

<p>这时标准制定者——他一定是个理想主义者——也不满意，因为用户其实还是在以 HTML 的方式来写 XHTML 的，根本没准备好向 XHTML 进行转变的决心，标准制定者一心领着大家往 Web 美好的未来远航，却发现无论是用户还是浏览器厂商都在尽给他添乱。</p>

<p>浏览器厂商们——他们拥有最大的筹码，却始终冷眼旁观——此时却在开心地内斗，对此情况耸耸肩表示无能为力。</p>

<p>你可能会对此感到沮丧，但这的确是目前 Web 中的事实，承认也好不承认也好，确定一个目标，然后艰难而执著地前行，大概是我们这些标准推广者唯一能做的。</p>

<h4>注释</h4>

<ol>
<li id="footnote-1">也并非完全没有办法，对于用 PHP 或者 ASP 这样创建的动态内容而言，通过检测 HTTP 头来进行内容协商是最好的办法：给 `Accept: ` 中包含了 `application/xhtml+xml` 的请求提供 `Content-type: application/xhtml+xml` 的数据，而给其他的请求提供 `text/html` 的数据。(在 456 Berea Street 的一篇<a href="http://www.456bereastreet.com/lab/developing_with_web_standards/xhtml/">文章</a>详细解释了这种方法，实际上，打开 Mozilla/Firefox 的 `about:config` 页面，你可以找到相关的配置 `network.http.accept.default` 来验证一下 Mozilla 是否发送了正确的 HTTP 头。)，这几乎是一种完美的方法了 (实际上静态内容大概可以通过 Web 服务器的内容协商功能实现这种提供方式)，但考虑到本文主要的目的是探讨是否应该用 XHTML，所以不在正文中详细讨论。</li>
<li id="footnote-2">仍旧是指对普通用户而言，事实上必须承认，XHTML 的出现对于整个 Web 本身的长远发展绝对有好处。</li>
<li id="footnote-3">其实话不该说得那么绝，应该说 XHTML 的出现是绝对有必要的，但其带来的好处绝大部分是对 Web 本身的，长远的，现在难以看出的好处，对用户或者开发者的好处微乎其微。</li>
</ol>

<h4>参考文献</h4>

<ol>
<li>Ian Hickson, <a href="http://hixie.ch/advocacy/xhtml">Sending XHTML as text/html Considered Harmful</a></li>
<li>Gez Lemon, <a href="http://juicystudio.com/all-in-the-mime.asp">It&#8217;s all in the MIME</a></li>
<li>Gez Lemon, <a href="http://juicystudio.com/tutorial/xhtml/mime.asp">Specifying a MIME Type</a></li>
<li>Roger Johansson, <a href="http://www.456bereastreet.com/lab/developing_with_web_standards/full/">Developing With Web Standards, Recommendations and best practices, Part 5: XHTML</a></li>
<li>Network Working Group, <a href="http://www.ietf.org/rfc/rfc3236.txt">The &#8216;application/xhtml+xml&#8217; Media Type</a></li>
<li>Tommy Olsson, <a href="http://www.autisticcuckoo.net/archive.php?id=2004/11/03/content-negotiation">Content Negotiation</a></li>
<li>W3C, <a href="http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/xhtml-media-types.html#text-html">XHTML Media Types</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.jjgod.org/2004/11/14/mime-type-oyouaaana/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

