Tuesday, January 25

Weaving the web

这两天我正在看Tim Berners-Lee的Weaving the web一书。这本书在寻智书摘有中文介绍。看到他发明了WWW之后,自己的工作单位不支持,到处奔波去推广,很黯然。

我还没有看完这本书,只看到他将要成立W3C。这时候他自己做了一个很简陋的浏览器,只能在NeXT这个操作系统上用;芬兰的研究生团队做了一个Erwise,毕业之后就解散了,留下一堆用芬兰语注释的代码;加州一个Wei Pei(魏培源?)为了展示他发明的一种语言(Viola),做了一个浏览器,但是必须先安装他那个语言包才能用,所以很复杂;只有NCSA做的Mosaic最好,流行起来;但是这时候NCSA正在考虑把Web归为专属,让Tim Berners-Lee充满危机感,所以一定要成立一个公共机构,把WEB推给全世界。

我还没有看完,但是想起亞當正在写香港浏览器历史,不知道会怎么介绍 Netscape。看来NCSA真是想要控制整个万维网的,因为他后来开发了服务器软件,而且它的软件都收费,价格不菲。Netscape也是收费的软 件,后来当微软进入这个行当,免费推IE,才把这股歪风打下来了。至于后来微软垄断的事情,另当别论。

Labels: ,

這本書我有看過,我記得netscape不是免費嗎? server才要錢~
免費推IE抑止歪風? 不過是商業策略罷啦...
 
This is what I got from the "Weaving the web":
Chapter 8, p100
... people who downloaded the browser were told that they could use it free for only three months. After that they were expected to pay, or they would be in violation of the licensing agreement.
 

简述万维网(WWW)历史

原载于:Donews, 2002年02月09日 00:29

万 维网于1989年起源于欧洲的一个国际核能研究院中,一个科学家发现:随着研究发展,研究院里文件不断 更新,人员流动很大,很难找到相关的最新的资料。他借用了60年代出现的“超文本”的概念,提出了一个建议:服务器维护一个目录,目录的联结指向每个人的 文件;每个人维护自己的文件,保证别人访问的时候总是最新的文档。这个提议文档现在依然可以在国际万维网组织W3C的网站上找到。 超文本与计算机网络结合在一起,新世界向我们打开了大门。

实 际上我们看报纸时经常可以看到“上月曾报道的xxxx一案有了进展…”或者“据《XX日报》消息…”。利用超文本,我们就可以把相互关联的文章串起来, 得到完整的知识。超文本并不是专门为互联网设计的,但是超文本与互联网结合起来如虎添翼。当时互联网上的应用主要由新闻组、电子邮件、远程登陆、 Gopher(这个服务在传入中国之前已经式微,所以没有中文名字),在互联网上超文本互相联结,就形成纵横交错的万维网(World Wide Web)。 World Wide Web这个词很奇怪:它的缩写WWW比这个词还长(你试读一下“大不溜大不溜大不溜”和“我外喂”)。

在万维网上你看到一篇文章可能存储在北京的一台服务器上,上面有一个联结,点击这个联结之后打开另一篇文章,这篇文章可能存储在柏林的一台服务器上…但是读者并不需要知道这些,只需要相关的文章一篇接一篇地显示在屏幕上,这就足够了----这就是万维网无处不在的魅力。

其实,你也可以做出超文本文件。打开记事本输入下面两行:


我的第一个超文本文件
〈A HREF="”第二个.HTM”">联结下一个
/A>

保存成“第一个.HTM”,再用记事本输入:

第二个超文本文件
A HREF="”第一个.HTM”">上一个/A>

保存成“第二个.HTM”,
用专用软件-------在万维网刚出现的时候,浏览器软件当然是专用软件了,现在已经普及-------也就是IE,来打开“第一个.HTM”,IE就会显示:

我的第一个超文本文件联结下一个

点击带下划线的“联结下一个”,浏览器就会显示

第二个超文本文件上一个

哈,很简单,我们把两个独立的文件联结起来了。

正是因为简单,任何人都可以用一个文本编辑工具写出超文本文件,所以超文本文件没有计算机平台的限制,UNIX、苹果机、Windows都可以实现----这正是她得以流行的主要原因。

第 一代浏览器的使用仅限于科学研究者和计算机狂热者。1993年之后Mosaic、Netscape推出新的浏览器,并发展了HTML标准之后,万维网声 色俱全,大众对它发生了兴趣,广大商家也敏锐地看到商机,纷纷成立网站,报纸、杂志关于万维网的报道长篇累牍,相关技术飞速发展……互联网现在已经成了我 们生活中的一部分!我们拨打长途电话大多是用IP电话吧,IP电话就是通过互联网来传递语音。虽然IP电话并不是万维网的应用,但是这未尝不是万维网的急 速发展吸引资金促进互联网发展的结果!

在这里我澄清以下几个概念:互联网(Internet)是全球计算机网络,提供电子邮件、新闻组、网页浏览的服务;我们每天收发电子邮件,形成一个“电子 邮件网”;我们每天上网浏览新闻、查找资料,这些供你浏览的服务器也形成了一个网:万维网(World Wide Web)。

上 面我们只提到我们向服务器索要文本、图片。其实,我们还可以发一些信息给服务器,让它能更好地为我们服务,这就是“交互”。比如,我们在搜索引擎里输入 一个词让它搜索,或者我们在论坛输入用户名、密码,输入我们的文章,服务器就接收过去,保存在它的数据库中。服务器接收数据的标准叫做“公共网关接口” (Common Gateway Interface, 简称CGI)。早期的CGI软件都使用Perl语言写的,因此也有人把Perl称作CGI语言。其实几乎所有的计算机语言都可以做CGI软件,现在经常能 听到的是ASP、PHP、JSP、ISAPI等等。

有人说:CGI是服务器的事情,我作为用户不用关它。其实,当你拨号上网时,你就获得了一个全球唯一的IP地址,这时候你的计算机与那些服务器是平等的, 不要妄自菲薄,看轻了自己!你甚至可以在你的计算机上建立一个网站,让别人来浏览;当你建设了自己的网站,用ASP或者其他语言制作了CGI程序,接收访 问者发来的问候,你就能享受建设网站的喜悦,更好地理解这个互联世界。

Saturday, January 22

Gmail is down?

[Google]

Server Error

Gmail is temporarily unavailable. Cross your fingers and try again in a few minutes. We're sorry for the inconvenience.


---------------
凭Google搜索8T网页的技术,不应该出现用户太多网站受不了的状况。会是什么问题?

Oui-Blog is not Firefox-friendly.



is broadcasting blogs. It's not Firefox-friendly, at least in my computer. What I see is :

printscr

Screen Resolution: 1280*1024
Fonts: Extra Large

It is true that my configuration is not "normal". But it is also true that the same page is pretty good in M$ IE, and using the same FireFox, I can visit other websites pretty good too. I only have problem here.



Good job, quawn: It's very good right now.
24, Jan, 2005.

Friday, January 21

Hurtubise says invention sees through walls


(Photo by Bill Tremblay, Special to BayToday.ca.)

Seen this image? You are in!

BayToday.ca reported a new invention "The Angel Light" that can see through walls. The inventor, Troy Hurtubise, is a Ig Nobel Prize Winner of 1998

Have fun!

Thursday, January 20

User Manual of Paper Analyzer

--------
Update on 24, Jan, 2005:
Some friends reported that they can't open my blog in
http://fadshop.net/blog . So I make packages and upload them to Socr server. Here you have 3 options to download it:

1. You can simply download
http://socr.uwindsor.ca/~lin13/papersetup.zip (~13M). All of the VB runtime files are included, so you don't need to install Visual Basic to support the file. I only test this package in my Windows XP system. It's 13 Megabytes, so it will be slow to download it.

2, If you installed Visual Basic 6 in your computer, you can download
http://socr.uwindsor.ca/~lin13/paper.zip (~350K).

3, If you have Visual Basic, and you want to manipulate this software, you can download the source code from
http://socr.uwindsor.ca/~lin13/papersrc.zip (~200K) and build it yourself. If you failed to get the file running from option 1 and option 2, please download this one.


--------

User Manual of Paper Analyzer

Paper Analyzer can save paper titles, authors, and reference. Finally it can create Cross Referencing Graph for the papers you input.

Download: paper.zip, you can get paper.exe and 510reference.mdb from the zip file. (Mirror Site)

System Requirement: MS Access, MS Visual Basic 6, MS Excel

Run:
According to the data in the MDB file, you can see some papers already listed. First step is to Add Paper in the database.

Paper Analyzer Step 1

After you input the title of the paper, you should click "Search" to see if it's in database or not. If it's in database, you can simply click "Existed", nothing will happen J But if the paper is NOT in database, you can click "New Article", then the information is saved, and another window pop up.

Paper Analyzer Step 2
Then you can input the name of the authors, and click "Search"

Paper Analyzer Step 3

The software will make sure you search the database before you input a new article or a new author.

After you input the authors and paper information, close the windows, and click "Add Reference"
Paper Analyzer Step 4
Then you will see the same window as Step 2, except that title is changed as "Add References for (name of the origin paper)".

Paper Analyzer Step 5
You already know how to input in this window, don't you?

After we input everything, come back to the main window, and click the "Output", got this window:

Paper Analyzer Step 6

Yes, click the "Crosslink Reference" button!

You got your Cross Referencing Graph now!
Paper Analyzer Step 7

Claim:
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL BEN OR
* HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.

Website: http://fadshop.net/blog



Continue Reading...

Thankyou, I'm glad you like it. Please give me advice for improvement too.
 

What is Ontology



刚才花了半个钟头, 用一个书的例子写了"What is Ontology", 一发送,网络连接失败, 甚至没有存档!
keso建议我节哀顺便,我看还是重写一遍吧。



Ontology: 存在论,本体论。
这是一个2000年前希腊哲学家们提出的概念,最近由于W3C翻出这个词来,搞得脑袋乱乱。

搜索网络:
介绍Ontology,先得从Semantic Web(语义网)开始。

目前的万维网(WWW)是以读者为目标,用各种颜色、字体、多媒体技术表示琳琅满目的内容。但是如果要做软件来提取网页的意思,汇总网络的知识,有许多东西要改变。比如说:现在有一个书目网页上有这样一段:
书 名:What is Ontology
作 者:Ben
译 者:Tim Berners-Lee
你很容易知道这里要表示的内容,但是如果一个软件读到这个网页,它看到的是什么呢?
书 名:〈span style="font-weight: bold;">What is Ontology〈/span>
〈span style="color:red;">作 者:〈a href="http://fadshop.net/ben">Ben〈/a>〈/span>
译 者:Tim Berners-Lee
呜,乱糟糟。这个软件就需要从这里分析出书名、作者、译者等信息。更糟糕的是这个软件必须是对一个网页来定制;如果它来到另一个有相同内容的网页,所看到的原码又不一样,需要对这个做另一番的处理。即使同一个网站,老板随时可能修改版面风格,你的程序又跑不动了。

如果按照XML的方式来组织网站就好了:

〈book>
  〈title>What is Ontology〈/title>
  〈author>Ben〈/author>
  〈translator>Tim Berners-Lee〈/translator>
〈/book>
〈person>
  〈name> Ben 〈/name>
  〈website>http://fadshop.net/ben〈/website>
〈/person>

然后再写清楚author是person的一种就可以了。

用这种构架来表示互联网,就可以轻易编写程序,在各大出版社或书店的网站里跑来跑去,收集所有书的内容,从里面找到你所需要的资料。找到你心仪的书之后, 程序还会检查一下书店的地址,再在邻近街上找到一个好的咖啡馆,告诉你在买书的时候不妨进去坐坐。程序再来到市政网站,找到公交车路线和时间,帮你把一切 弄得妥妥当当,买书的过程就是一个享受。
是啊,只要书店、咖啡馆、市政府的网站都用共同的方式来标注它们的内容,网络就成为一个统一的知识库,可以用程序找到最适合你的东西。

上面所说的就是Semantic Web(语义网)。这里还有一个小障碍:如果有一个书店用〈writer>而不是〈author>来表示作者,怎么办?Ontology就是要定义一个专业领域内的词汇,并且描述这些词汇之间的关系。比如说:〈author>是一个person,不是用来吃的,没有奶油味道;〈book>一定要有书号ISBN,否则就是盗版书...

简单来说,Ontology就是一个专业词汇表。我说“专业”是因为目前人们只能从专业开始,慢慢覆盖人类的所有知识领域,不可能一下子把所有都包含进来。

现在再来看看关于Ontology的定义,是不是另有一番味道?

  • an explicit formal specification of how to represent the objects, concepts and other entities that are assumed to exist in some area of interest and the relationships that hold among them.
  • 共享概念模型的形式化规范说明



Labels: ,

节哀。。。
 
看贴回帖。 :D
 

Paper Analyzer

Paper Analyzer: Use database to organize the collected paper, and create Cross-Link Reference.

Download: paper.zip. (paper.exe and 510reference.mdb) (Mirror Site)

System Requirement: MS Access, MS Visual Basic 6.

I am considering to make it open-source.

Labels: ,

Monday, January 17

Bloglines = News Reader+BlogRoll: Blog介绍(四)

Update on Jan, 28, 2005:

XJ pushed me to write on the Blog Introduction. Here is my reply:

我的(四)Bloglines还没有写完呢,第(五)应该是Blog and Firefox,第(六)才是奇技淫巧,然后第(七)介绍人际网络:Orkut, Gmail, Flick, Del.ico.us, Wallop, LinkedIn等等。标题都想好了,就是没有大块时间坐下来写。我计划中第(六)应该介绍 feedburner.com 烧RSS, http://www.bigbold.com/rssdigest/ 显示别人RSS, http://www.howdev.com/services/feedsweep 把别人RSS聚合在一起, haloscan.com的trackback 等等。blogger.com模版改进也可以写进去。

--------------------

上篇早就预告了(四)和(五)的内容,却一直没有坐下来动手写。

开篇中 我说了RSS是 一个XML文件,而XML文件采用标准的格式存放内容,很方便程序员:因此Blog能把程序员释放出来,自由想象,到底能够拿这些文章内容做一些什么软 件,方便网络用户。Bloglines就是很典型的应用,本篇就专门介绍它的各个方面;第(六)篇《奇技淫巧》将介绍更多的应用。

Bloglines 首先是一个News Reader/RSS Aggregator. 不熟这个词?是啊,这是blogger们新发明的词。你喜欢40个blog的内容,但是你每天访问40个网站,发现30个都没有更新,是很郁闷的事情。现 在你把这40个blog告诉Bloglines,那么下次你登陆Bloglines时,它就把这段时间更新的blog的内容都聚合在同一个页面给你。你只 需要访问Bloglines,就可以看到这40个blog的更新资料了。所以把它叫做“新闻阅读器”或“聚合器”,非常符合它的特性。

Labels:

Not Standard: MS Access

这两天用VB + MS Access 做个文档管理的软件,被Access气死了。

第一件事是:模糊查询语句用like, SQL的标准是用%作为匹配符: Select * from author where lastname like '%p%' 就会把所有名字中有p的作者都列出来。可是在MS Access中的Query,它是用*作为匹配符:Select * from author where lastname like '*p*' 。最气人的是:在VB中用ADODB调用Access,使用上面这句“Select * from author where lastname like '*p*'”,不成功,非要改成标准SQL方式Select * from author where lastname like '%p%'才把我要的结果列出来了。

第二件事:Access中有Memo类型的字段,能表示长于255字符的串。Sql Server, Oracle中也有类似的字段,我用起来一点问题都没有,可是今晚用Access,发现无法像普通字段那样写入。比如:
Insert into author(lastname, memo) values('Philip', 'famous author') (其中memo是Memo类型的字段),在MS Access中的Query是成功的,在VB中却不成功。在网上一搜索,已经有许多人问这个问题,而且有一家公司专门做了一个软件Total Access Memo来解决这个问题。其中这个联结介绍的方法最具体,但是我发现不起作用 :( 最后把它改成一个250字符的普通类型完事了。

另一个不标准是别名问题。SQL标准的方式是:Select lastname ln from author, 然后你就可以用“ln”来引用作者的姓。这个别名很有用,特别是你采用一些数学公式的时候。比如说:Select max(age) maxage from author ,如果不用别名你怎么能引用这个最老的年龄呢?来到Access上,这个方式就行不通了,摸了大半个钟头才发现用 Select max(age) AS maxage from author 的方式。

总之,Access最大的问题是不标准,最令人生气的是用它自身的Query跟用VB/ADODB的结果不一致。在这边明明运行很好的命令,在那边却无论如何跑不起来。

Left join in SQL:
select name from A, B where A.id=B.id(+)

Left join in SQL:
select name from A left join B ON A.id=B.id
 
Left join in SQL:
select name from A, B where A.id=B.id(+)

Left join in MS Access:
select name from A left join B ON A.id=B.id

What if I have 3 tables to join?
 

Friday, January 14

G2 Exit Road Test

手上拿着G2,要上高速考G牌,叫做G2 Exit Road Test。

昨天去考,一次通过。本来嘛,我平时开车也是很安全的,所以一次通过也很正常。

昨天开到一个很偏僻的地方,考官让我泊车,等我靠边停下来之后,说做一个“Emergency Stop”,我档位改到P,把手闸拉上,然后在一堆按键里找了一下,才终于找到双蹦灯的按钮打开。那个东西平时都不用,所以临时现找,:)。然后他说很好,做一个三点调头。当时那个路很宽,左右也没有车,所以我说:其实,我都可以直接作个U turn直接调头。当然,他既然要考三点调头,我利用半个路宽,就把车调过来了。调过来之后作平行趴车。一般做完平行趴车之后,离前面的车距离会远一些,需要换成向前的档位,往前靠一点;但昨天我的平行趴车做得太好了,往后倒车之后发现距离正好,接下来的一连串动作反而没得做。

Labels: ,

Thursday, January 13

Google SMS

jedi introduced many services of Google, but he doesn't know that in Unite States you can send Text Message to 466453 (For most phone, this is "GOOGLE") and get feed back. For example, you send "Restaurant, 48226" to 466453, then you will get address and phone number of those restaurants near the Jefferson Avenue of Detroit, because 48226 is the post code of that area. Yes, It's free. If you call 411 for the same service, you need to pay 2$ for every call.

For more information about Google SMS, please visit http://google.com/sms


What is blog?

有些人,整天写blog,讨论blog文化,讨论怎么样能把blog用好,就好象拿着瑞士军刀,整天研究它的各个功能,偏偏不在日常生活中使用它.

Labels:

Tuesday, January 11

XYS (New Threads)'s RSS feed.

下面是新语丝的RSS Feed:

xys rss feed http://feeds.feedburner.com/xys

Subscribe 新语丝 with Bloglines


有了它,就可以每天跟踪新语丝的新进资料了.

Open Source China


open source

松鼠,你是不是对开原有意见?呵呵。
 
咋会捏?咋会捏?你看我刚做了个程序不是公开源程序了么?
 

Monday, January 10

Algorithms for CSP

Constraint Satisfaction Problem (约束满足问题) is known as an NP-complete problem. We can’t find a polynomial time algorithm until we can prove P=NP, but we’ve developed some algorithm to accelerate the process to find the solution of CSP.


algorithm

Algorithm 1: BackTracking

BackTracking is the basic algorithm to solve CSP. In every step, find a valid value to assign to current variable. If a valid value is found, assign it to current variable and go to next step. If there’s no any valid value, back-track to the last variable to assign another value, expect another value of the last variable can lead to success of finding valid value for current variable. A valid value for current variable is a value that is not conflict with any assigned variable.

For example, in the Chart 1, Variable C can’t find valid value, then we back-track to Variable B to change the value, then check Variable C again.

BackTracking is a Depth-First Search algorithm in search-space. Time complexity: O(bd), when b is the average tightness of constraints, which is the branching factor of the searching tree, and d is the number of variables, the depth of the searching tree.

Algorithm 2: Forward Check

Forward Check sign an invalid value in the search space for future variables when current variable is assigned a valid value. If there’s no any valid value for current variable, back-track to the last variable to assign another value. A valid value for the current variable is a value that is not signed invalid from the assigned variables.

For example, in the Chart 1, Values of Variable C is signed invalid and Values of variable D is signed invalid too because of the assignment of A and B, then we back-track to Variable B to change the value, change the related value of C and D again, then check Variable C again.

Forward Check has the same time complexity as BackTracking, and it’s slower than Backtracking. Because Forward Check exam the same nodes as BackTracking, but waste time to assign future nodes that may never been used. For example, because all the value of Variable C is invalid, it doesn’t matter if values of Variable D are valid or not, but the values are already checked and signed when assign values for Variable A and B.

Algorithm 3: Back Jump

Forward Check is slower than BackTracking, but the idea is good. Actually, if we find all the values of Variable C are invalid because they are conflict with the value of Variable A, then we don’t need to change the value of B to check C again. We can directly jump to another value of Variable A, skip other values of B (under A1 value). After we assigned another valid value for A, we check B1 again. This is the Back Jump algorithm.

Back Jump skipped some nodes, so theoretically it’s faster than BackTracking and Forward Check.

Algorithm 4: Dynamic Backtracking

Dynamic Backtracking’s idea is: When we back jump from C to A, if variable B is not conflict with A, then it’s unnecessary to change B’s value after A is re-assigned. In color-mapping problem, assume we assigned color of E1, E2 cities in east, then assigned color of W1, W2, W3 cities in west and return to assign color for E3, E4, E5 cities in east. When working in east cities E3, E4, E5, we found we have to change color of E2, using Back Jump we will have to change the color of the western cities too; But deploying Dynamic Backtracking algorithm, we can leave W1, W2, W3 alone, since they’re not conflict with any of the east city.

This algorithm is faster than above algorithms, especially for CSPs have many variables.




Continue Reading...

Labels:

365key?

原因和上次donews.net停机事件一样么?

不太一样,上次一直不知道具体原因,有人提示说,应该供一供当地警方。这次是宣传部门检查,看谁还敢说妞妞。
 

Track back

Haloscan commenting and trackback have been added to this blog.

This comment has been removed by a blog administrator.
 
I don't know how to use it though. How can I track back keso's blog?
 

Friday, January 7

A programming problem.

A program:


     ...

again:n=a();
if (n>0) {
n=b;
goto again;
}
...


You know, goto is not a good style in programming. How to get rid of "goto" in this code?
try:
// wrong program.

do{
n=a();
}while(n>0);


Where is "n=b"?

Need Help!


Damon gave a neat solution:

n=a();
while(n>0){
n=b;
n=a();
}
It's very beautiful.

Now my question changed to:
...
again:n=a();
if (n>0) {
n=b;
goto again;
}
else{
n=c();
}
...
???

Labels:

again:n=a();
if (n>0) {
n=b;
goto again;
}
else{
n=c();
}

我不太看得懂这段程序是什么意思,就我看来,直接改成这样:

n=c();

因为当a()返回值总大于0时,这是一个死循环。只有在a()返回值小于等于0时,n=c()。

其实前面的程序就有问题:

n=a();
while(n>0){
n=b;
n=a();
}

这一段程序执行完毕之后,n无论如何不可能为b,看不出有何意义。
 
Actually, "n=a()", "n=b", "n=c()" only mean "Command 1", "Command 2", "Command 3" in the post. I'm thinking of the 流程 of the program, not the detail command.

The last code can be changed as:

n=a();
while(n>0){
n=b;
n=a();
}
n=c();
----------------------
As I said, it means:
...
Command 1;
while (n>0){
Command 2;
Command 1;
}
Command 3;
...
 

黄灯!

前面路口黄灯,你会刹车,还是加点油门冲过去?

今天,一个朋友在这个时候冲过去,碰到了对面左转的车,然后把车送给拖车厂了。

黄灯的问题主要是左转的问题;所以上海决定禁止左转。

说起来,小时候知道交通灯是“红黄绿”,也知道“红灯停,绿灯行”,但一直不明白黄灯是干吗用的 :( 小地方,直到我20岁后才有第一个红绿灯竖在街口(当摆设)。

碰到黄灯的时候是很讲究当时环境的,而不能简单地说“停”或“冲”了事。今天路上有雪溶化后的水渍,所以刹车距离会比平时长一些,我出去的时候看到一个黄灯路口,对面没有车在等待左转,所以也冲了过去。

前两天去Walmart需要左转,我等到灯都黄了,对面老远还是有一辆车不减速,开过来;也许我能在它来到之前完成转弯,但是没必要冒这个险,所以等它开过去,灯已经变红,我才起动了。

Labels:

Saturday, January 1

Disaster: Tsunami

海啸最新死亡人数统计表

看到新浪说死亡人数已经达到22万了,吓一跳. 赶紧到我信赖的Wikipedia上查看:

Country where
deaths occurred
Deaths Injured Missing Displaced
Confirmed Estimated
Indonesia 113,306
120,000+

~100,000
131,479
~517,000
Sri Lanka 38,195
15,686
23,000+

~573,000
India 10,744
16,413
5,669
380,000
Thailand 5,305

11,000
8,457
4,499
Somalia 150+
298
5,000
Myanmar (Burma) 59
290 600
45
200
3,200 confirmed
Malaysia 68 74
299
Maldives 82
26 12,000 -22,000
Seychelles 1 3
Tanzania 10
10+
Bangladesh 2
South Africa 2

Kenya 1 2
Yemen 1
Madagascar 1,000+
Total 167,926+ 186,000+ 125,000 164,873+ ~1.5 million

Note: All figures are approximate and subject to constant change. Details are available on the country links.
January, 19, 2005

奇怪的是这里一直没有中国的死亡数字. 难道是:

  • 中国没有人死亡?
  • 中国人死了不想让外国人知道?
  • 中国没有人做wekipedia?
  • 中国做wekipedia的人不关心这次海啸?
  • 中国做wekipedia且关心海啸的人不会英文?
1月19日记.
--------------------------------------------------------------------
  • 斯里兰卡 28475
  • 印尼 79940
  • 印度 13268
  • 马来西亚 66
  • 缅甸 90
  • 泰国 4800
  • 马尔代夫 75
  • 新加坡 7
  • 孟加拉 2
  • 东非 142
  • 奥地利 5
  • 比利时 3
  • 丹麦 3
  • 芬兰 2
  • 法国 20
  • 德国
  • 意大利 13
  • 荷兰
  • 挪威 13
  • 波兰 4
  • 葡萄牙
  • 罗马尼亚 2
  • 俄罗斯 1
  • 瑞典 6
  • 土耳其
  • 韩国 3
  • 加拿大 3
  • 澳洲 2
  • 英国 18
  • 美国 8
  • Total: 126971

*资料更新(路透社、法新社):1月1日 1:50pm


介绍海啸知识的好文章:
陶世龙:印尼海啸之后的思考

专题报道: 新闻早报


海嘯援助串連海嘯援助串連