CSS position定位

July 29th, 2010 by Jayson No comments »

css定位主要通过position属性和float属性

position属性有四个值,分别为static,relative,absolute,fixed

static是默认值,即按元素既定的规则解析排列,因为position不是继承的,所以也很少会有情况用到

relative,相对定位很容易造成误解,首先相对定位是作用元素本身的,但是如果你只设了position:relative但是没有设置left,right,top,bottom的值,那么元素本身的位置是不会变化的。但是设置relative的元素会影响到其子元素的定位,尤其当子元素使用absolute定位时。另外设置了relatvie属性的元素可以使用z-index属性,而且任何relative元素都会在static元素之上,无论是否设置了z-index。

absolute,绝对定位的元素不会参与其他元素的flow,也不会影响他们的定位,可以把绝对定位的元素想象成独立的,

fixed,固定定位,和absolute类似,但是它只相对浏览器窗口(viewport)定位,不会受父元素的局限。而且fixed的元素不会随着窗口页面滚动而滚动。但是fixed元素IE6不支持,所以需要hacker

#top{
position:fixed;
_position:absolute;
bottom:0;
right:20px;
_bottom:auto;
_top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
}

通过绝对定位来实现,但是这样在拖动浏览器的时候会出现闪动的现象,解决的方法是,添加

*html{
background-image:url(about:blank);
background-attachment:fixed;
}

这样问题就解决了。

强烈推荐读一下这个,http://www.barelyfitz.com/screencast/html-training/css/positioning/

CSS水平居中

July 29th, 2010 by Jayson No comments »

首先,请不要再使用<center>和align来居中页面了,这是Stone Age人们的用法。

其次,请区分元素是block-level还是inline的,具体可以通过wiki查看,list of inline-level elements 和 list of block-level elements.block-level元素不会受text-align属性控制,同时inline元素可以通过display属性控制显示的类别,比如你指定img { display: block; },text-align也不会生效。

水平居中inline内容

如前所属,inline元素只要使用{ text-align: center; }就可以实现,而且该属性是加在父元素上,影响子元素的布局

但需要注意两点,1是IE的Bug,另一个是text-align是继承的。

水平居中block-level元素

使用margin属性,设置{ margin:auto; width:auto}

http://haslayout.net/css-tuts/Horizontal-Centering

CSS Bug Table

July 28th, 2010 by Jayson No comments »

http://haslayout.net/css/

问题 浏览器 DEMO 解决方法
Hacking Rules:property:all-ie\9; property:gte-ie8\0;*property:lte-ie7; +property:ie7; _property:ie6;
1 input[button | submit] 不能用 margin:0 auto; 居中 IE8 bugfixed 为input添加width
2 body{overflow:hidden;}没有去掉滚动条 IE6/7 bugfixed 设置html{overflow:hidden;}
3 hasLayout的标签拥有高度 IE6/7 bugfixed *height:0;
_overflow:hidden;
4 form>[hasLayout]元素有margin-left时,子元素中的[input | textarea] 出现2×margin-left IE6/7 bugfixed form > [hasLayout 元素]{margin-left:宽度;}
form div{*margin-left:宽度÷2;}
5 当border-width有1条<边3条时被设置成dotted时,1px的边dotted显示成dashed IE7 bugfixed 不在同一个元素上使用不同宽度的 dotted
6 当子元素有position:relative的时候,父元素设置overflow:[hidden|auto]相当于给子元素设置了position:visible; IE6/7 bugfixed 给父元素设置position:relative;
7 :hover伪类不能改变有position:absolute的子级元素的left/top值 IE7 bugfixed 把top/left的值设置成除0%外的所有百分值;或添加一个margin-[所有方向]除0外的所有值,包括0%
8 :focus + selector {} 选择器失效 IE8 bugfixed 在失效选择器后面添加一个空选择器, :focus{}
9 列表中混乱的浮动:在list中浮动图片时,图片出现溢出正常位置;或没有list-style IE8 bugfixed 用背景图片替换list-style
10 th 不会自动继承上级元素的 text-align IE8 bugfixed 给th添加text-align:inherit;
11 样式(包括link/style/@import(link)) 最多允许个为是:32 IE6-8 ─ 常识 99.99%的情况下,不会遇到
12 :hover 时若background-color为#fff, 失效 IE7 bugfixed 把background-color改成background。或者,非#fff || #ffffff
13 忽略’>’后有注释的选择器:selector> /**/ selector{} IE7 bugfixed 这个bug是官方DEMO有误
14 * html IE6 ─ HACK 只对IE6有效
15 PNG图片中的颜色和背景颜色的值相同,但显示不同 IE6-7 bugfixed 利用 pngcrush 去除图片中的 Gamma profiles
16 margin:0 auto; 不能让block元素水平居中 IE6-8 bugfixed 给block元素添加一个width
17 使用伪类 :first-line | :first-letter, 属性的值中出现!important 会使属性失效 IE8 bugfixed !important is evil, don’t use it anymore
18 :first-letter 失效 IE6 bugfixed 把 :first-letter 移到离{}最近的地方,如 h1, p:first-letter{},而非 p:first-letter h1{}
19 Position:absolute元素中,a display:block, 在非:hover时只有文本可点击 IE6/7 bugfixed 给a添加background, 如果背景透明,使用background:url(‘任何页面中已经缓存的文件链接’),不推荐background:url(#)[官方的解决方法],因为会增加一下HTTP请求
20 float列表元素不水平对齐:li不设置float,a设置display:block;float:[方向],li不水平对齐 IE6/7 bugfixed 给li设置display:inline 或 float:[方向]
21 dt, dd, li 背景失效 IE6 bugfixed dt, dd, li{position:relative;}
22 <noscript />元素的样式在启用javascript的情况下显示了样式 IE6-8 bugfixed 利用js给<noscript />添加display:none;
23 使用filter处理的透明背景图片的透明部分不可点 IE6-8 bugfixed 把background:none变成background:url(‘链接’),链接到本身和图片之外的任何文件
24 li内元素偏离 baseline 向下拉 IE8 bugfixed 给li设置display:inline 或 float:[方向]
25 列表中li的list-style不显示 IE6/7 bugfixed 给li添加margin-left,留空间来显示(不要加在ul上)
26 图片不能垂直居中 IE6/7 bug/fixed 添加一个空标签,并赋给”Layout”, 比如display:inline-block;
27 不能自定义指针样式 IE6-8 bugfixed 给指针文件设置绝对路径
28 背景溢出,拖动滚动条后显示正常 IE6 bugfixed 给父元素添加overflow:hidden防止溢出,并赋予hasLayout,如果添加_zoom:1;
29 高度超过height定义的高 IE6 bug/fixed 添加_overflow:hidden;(推荐)或者_font-size:0;
30 宽度超过width定义的宽 IE6 bug/fixed 添加_overflow:hidden;
31 双倍边距 IE6 ─ 常识 添加display:inline到float元素中
32 margin负值隐藏:hasLayout的父元素内的非hasLayout元素,使用负边距时,超出父元素部分不可见 IE6/7 bug/fixed 去掉父元素的hasLayout;或者赋hasLayout给子元素,并添加position:relative;
33 给两个浮动元素的某中一个的文字设定为斜体,另一个元素下拉在有斜体文字元素的下面 IE6 bug/fixed 给有斜体文字的元素添加overflow:hidden;
35 3px 间隔:在float元素后的元素,会有3px间隔 IE6 bug/fixed 因为是确切的3px,所以,用“暴力破解”吧,比如_margin-left:-3px;
35 text-align 影响块级元素 IE6/7 bug/fixed 整理你的float;或者分开设置text-align

为什么你睡了11个小时仍然觉得疲累

July 28th, 2010 by Jayson No comments »

为什么你花了好几万去岛国度假并没有增加生活的热情?

  都说要去KTV,去夜店,去游乐园就能忘掉不快,更带劲地开始新的一天,但是尽兴归来心里只剩空虚?

  

  我们真的明白休息的含义吗?我们休息对了吗?

  

  你理解的休息是什么?一个饱觉?一阵疯玩?到KTV释放饭后的一串饱嗝?

  休息的真正含义是什么?是恢复疲劳,放松神经,当你重新投入工作与学习的时候觉得又是一个精力充沛的新人。

  如果你的休息方式并不能为你带来这些,那么,无论这些活动的名字听起来有多轻松,看上去有多High,它都是一种错误。抛弃它们,来一场休息革命!

  

  首先,来看看我们对休息有哪些误解:

  

  ■脑力劳动者,补瞌睡对你没什么用

  

  你写了一天的文案,主持了一天的会议,当一切都结束了,你叹到:太累了,这一天我要睡个好觉。我们的常识使得我们对疲劳的第一反应就是“去躺躺吧”。但这是一个陷阱。

  睡眠的确是一种有效的休息方式,但它主要对睡眠不足着或体力劳动者适用。对体力劳动者来说,“疲劳”主要是由体内产生大量酸性物质引起,如果十分疲劳,应采取静的休息方式。通过睡觉,可以把失去的能量补充回来,把堆积的废物排除出去。如果不是很累,也可以在床上先躺一躺,闭目静息,让全身肌肉和神经完全放松后,再起来活动活动。

  但如果你是坐办公室的,大脑皮层极度兴奋,而身体却处于低兴奋状态,对待这种疲劳,睡眠能起到的作用不大,(除非你是熬夜加班,连正常睡眠时间都达不到)因为你需要的不是通过“静止”恢复体能,而是要找个事儿把神经放松下来。这样你可以理解为什么你周末两天不出门依旧无精打采,而只需下班后游泳半小时就神采奕奕。

  

  ■不必停下来,只是换一下

  

  既然睡觉不能帮助我们休息大脑,那什么办法才可以?答案是不停止活动,而只是改变活动的内容。大脑皮质的一百多亿神经细胞,功能都不一样,它们以不同的方式排列组合成各不相同的联合功能区,这一区域活动,另一区域就休息。所以,通过改换活动内容,就能使大脑的不同区域得到休息。心理生理学家谢切诺夫做过一个实验。为了消除右手的疲劳,他采取两种方式——一种是让两只手静止休息,另一种是在右手静止的同时又让左手适当活动,然后在疲劳测量器上对右手的握力进行测试。结果表明,在左手活动的情况下,右手的疲劳消除得更快。这证明变换人的活动内容确实是积极的休息方式。

  比如你星期五写了5个小时的企划案, 最好第二天去给你的盆栽们剪枝而不是睡到太阳晒屁股。还有一点,当你无法选择由脑力劳动转入体力劳动时,你不妨在脑力劳动内部转换。法国杰出的启蒙思想家卢梭就讲过他的心得:“我本不是一个生来适于研究学问的人,因为我用功的时间稍长一些就感到疲倦,甚至我不能一连半小时集中精力于一个问题上。但是,我连续研究几个不同的问题,即使是不间断,我也能够轻松愉快地一个一个地寻思下去,这一个问题可以消除另一个问题所带来的疲劳,用不着休息一下脑筋。于是,我就在我的治学中充分利用我所发现的这一特点,对一些问题交替进行研究。这样,即使我整天用功也不觉得疲倦了。”所以,这天你要是有好几个问题要处理,最好交替进行,而不要处理完一个再开始的二个,那样会很快被耗尽。

  

  ■最好的休息,是让你重燃生活的热情

  

  我们的疲惫主要来自对现有的一层不变的生活的厌倦。所以最好的休息项目就是那些让我们重新找到生活和工作热情的活动。如果你干完一件事,能够幸福地感叹“明天又是新的一天。”那这件事对你来说就是最好的恢复热情,调节情绪的方法。但可惜,我们缺乏对“休息”的想象力。我们能想出来的休息方法不是痴睡就是傻玩。

  我们给你开了下面一些活动清单,基本思路是以“做”来解决“累”,用积极休息取代消极放纵。当然,最适合你的方法还是要你自己探索。事实上如果你觉得打扫卫生比坐过山车是更好的放松,那么就去吧,别管世界上的其他人都在玩什么。

  

  也许你可以:

  ●用看两小时让你开怀的漫画或小说代替去KTV唱那些一成不变的口水歌

  ●试着放弃在周六晚上去酒吧,10点入睡,然后在7点起床,去没有人的街上走走,或是看看你从来没有机会看到的早间剧场,你会发现这一天可以和过去的千万个周末都不相同。

  ●不要再去你已经去过无数次的度假村找乐子了。找一条你你从没去过的街道,把它走完。你会发现这个你感到腻味的城市结果你并没有完全体会到它的妙处。

  ●旅行,而不是换个地方消遣。去一个地方对那个地方本身心存好奇,对自己这趟行程心存美意,感受自己经验范围以外的人生样貌。而不是坐了5小时飞机,只是换个地方打麻将,换个地方游泳,换个地方打球……

  ●从这个周末起学习一项新的技艺,比如弹电子琴,打鼓……每周末练习1小时以上。

  ●去社交。不要以为它总是令人疲惫的。虽然和看书比起来,它稍有点令人紧张,但也能让你更兴奋,更有认同感。你必须每周有两三天是和工作圈子和亲戚外的人打交道。它让你在朝九晚五的机械运行中不至失去活泼的天性。女性朋友们尤为需要走出去和朋友聚会,这些时刻你不再是满脸写着“效率”的中性人,而是一个裙裾飞扬的魅力焦点。

  ●做点困难的事,如果你是精神超级紧张的人。心理学家发现解除神经紧张的方法,是去处理需要神经紧张才能解决的问题。曾经一位精神即将崩溃的总经理找到一位医师给出治疗建议,结果他得到的处方是去动物园当驯狮师。一个月以后完全康复。所以压力特别大的时候你可以为自己再找分工作,但不要是和你职业类似的。比如去孤儿院做义工,或者去一个复杂的机械工厂从学徒干起,或者做一道超级复杂的数学题。

HTML标签类型

July 27th, 2010 by Jayson No comments »

html元素(标签)分为两种block-level和inline,块元素能够单独成行,一般在块元素的头和尾都会自动添加行结束符。inline元素是普通的字符串为主,可以作用到单个字符,块元素块元素有

  • <address>
  • <blockquote>
  • <div>
  • <fieldset>
  • <h1> — <h6>
  • <hr>
  • <legend>
  • <p>
  • <pre>
  • <ul><ol><li><dl> and <dd>

块元素里面可以包涵块元素和inline元素,但是inline元素不能包涵块元素。
比如a标签里不能嵌套h1标签,但是h1标签可以嵌套a标签

设计是实现html CSS按钮

July 27th, 2010 by Jayson No comments »

按钮和超链接

按钮和超链接应该区别对待,很多时候超链接会做成按钮的样式。但是超链接应该主要用于页面间的导航,而按钮是触发某些动作,比如提交表单

基本样式

按钮的基本样式是添加背景图片,边框和间距(padding),分别使用a,button和input产生的按钮

   Sample button
  

.button {
  padding:5px;
  background-color: #dcdcdc;
  border: 1px solid #666;
  color:#000;
  text-decoration:none;
}

Sample button

按钮状态

一般按钮有normal,hover,active三种状态,如果考虑到键盘导航,那么还有focus状态,即当用键盘tab将焦点移动到按钮上时应该样式的变化

DOCTYPE类型详细介绍

July 27th, 2010 by Jayson No comments »

我们在HTML里面声明DOCTYPE一般会有以下几种:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>

是的,这里有HTML和XHTML,也有Transitional和Strict之分。顾名思义,XHTML是指这个文档是按照XML的格式来书写的,而HTML则表示这个文档是按照HTML的格式来书写的。Transition则表示这个文档达到了Transitional.dtd或者loose.dtd的要求,Strict则表示这个文档达到了strict.dtd的要求。但事实上我们经常会存在以下的误解:

(1) 我的文档是声明为XHTML的,则我的文档肯定完全按照XML的格式。
(2) 我的文档是声明为Strict的,则我的文档肯定是按照Strict Mode的方式来Render的,反之,是以Quirks Mode的方式来Render的。

这两种理解都很直接,然而却是错误的,我们也经常会犯这种的错误。

首先,文档声明为XHTML和HTML,和文档的Parse(即浏览器对文档的分析)是没有直接关联的。事实上,浏览器如何Parse文档取决于服务器以什么格式来提供这个文档。通常情况下,有两种方式,”text/html”和”application/xhtml+xml”。只有以”application/html+xml”方式来提供的文档才能够被按照XML的方式来Parse。然而,因为浏览器的历史原因,并不是所有的浏览器都支持”application/xhtml+xml”格式的文档,IE7之前的版本(包括IE7)就不能够支持这种格式,如果IE7碰到这种格式的文档,它会提示用户另存为其它文件。考虑到IE使用的广泛性,目前绝大部分的文档都是以”text/html”的方式来提供的。以”text/html”方式来提供的文档是按照HTML的语义来Parse的,大家都知道HTML的容错性是非常强的,即使你的文档里面的TAG没有正确地关闭,这个HTML也能够被正确地显示出来。因此如果你的XHTML是以”text/html”的方式来提供的(绝大多数情况下都是),那么你即使在DOCTYPE里面声明了XHTML,你的文档也不是以XML的格式来Parse的,因此也不能保证你的文档是严格按照XML的规范的。事实上,很多专家都建议如果你的文档不是以”application/xhtml+xml”的方式来提供的,那么你就应该声明为HTML。

其次,浏览器以什么样的方式来Render你的文档,并不以你声明的DTD来决定的。事实上,如果你声明了DOCTYPE和DTD,你的文档就是以Strict Mode(或者称为Standard Mode,很多浏览器还包括Almost Standard Mode的方式,这里不进行区分)方式来Render的。对于没有DOCTYPE的文档,才是以Quirks Mode方式来Render的。因此浏览器的Render模式和你声明的DTD并没有直接的关系。

最后,你声明为Strict.dtd还是Transitional.dtd,在目前的浏览器看来是没有什么区别的。Strict.dtd比Transitional.dtd或者loose.dtd要严格多了,很多元素在strict.dtd里面都不能使用。然而因为浏览器的兼容性,即使你在DOCTYPE里面声明了Strict.dtd,浏览器遇到strict.dtd里面不允许的元素,也还能够正确地显示你的文档。我猜测浏览器并没有将DTD考虑进去。例如iframe这个TAG在strict.dtd里面并不存在,但即使你的DOCTYPE里面声明了strict.dtd,然后使用了iframe这个TAG,浏览器(包括IE7,IE8,FF3.0,Safari 3.0)都能够正确地显示你的文档。浏览器并没有按照你声明的DTD来Parse你的文档。目前能够保证你的文档是符合strict.dtd还是Transitional.dtd的,只能通过一些网上的Validator,如W3C Validator来分析,浏览器并不能够给你很好的支持。当然,实际上如果你能够严格按照你声明的DTD来书写你的文档,那是最好的,这样保证了以后浏览器对DTD严格遵守的时候,你的文档不会产生错误。

因此,

(1) 如果你的文档是以”text/html”的方式来提供的,那么你就应该声明为HTML。假如你想要让IE7能够正确地显示,那么你就更应该这么做了。
(2) 如果你的文档声明为XHTML,那么你应该以”application/html+xml”的方式来提供。
(3) 尽量在你的文档前面声明DOCTYPE和DTD,这样能够保证你不是以Quirks Mode的方式来Render文档的。
(4) 如果你声明了DTD,那么就要严格按照DTD的要求来书写你的文档。特别是如果你声明了Strict.dtd,那么你应该注意哪些元素是不能够使用的。

注意:随着时间的发展,浏览器对HTML和XHTML,Strict.dtd和Transitional.dtd的支持会更好。如果你的浏览器比IE7, IE8, FF 3.0和Safari 3.0要高很多很多的版本,那么你要注意本文的适用性。

SASS入门

July 26th, 2010 by Jayson No comments »

使用SASS写css非常有趣的,它是对CSS3的扩展,增加了嵌套,变量,混合(mixin),选择器继承等功能。SASS通过工具或插件转化成格式化好的css文件。
SASS有两种语法,新的语法叫SCSS(Sassy CSS),是CSS3的超级,兼容CSS3语法,所以CSS3文件可以直接当作SCSS.SCSS格式的SASS后缀名是.scss

$blue: #3bbfce;
$margin: 16px;

.content-navigation {
  border-color: $blue;
  color:
    darken($blue, 9%);
}

.border {
  padding: $margin / 2;
  margin: $margin / 2;
  border-color: $blue;
}

老的语法就叫SASS,灵感来源于Haml,它的目标是简化css的编写。
该格式使用缩进(类似python)分块,不需要写括号和逗号。旧语法的文件名后缀是.sass

$blue: #3bbfce
$margin: 16px

.content-navigation
  border-color: $blue
  color: darken($blue, 9%)

.border
  padding: $margin / 2
  margin: $margin / 2
  border-color: $blue

安装工具

需要Ruby支持,gem install haml
运行命令监听文件或文件夹

sass --watch style.scss:style.css
sass --watch stylesheets/sass:stylesheets/compiled

更多参考http://sass-lang.com/tutorial.html

十个著名的思想实验,看完请淡定

July 26th, 2010 by Jayson No comments »

10.电车难题(The Trolley Problem)

“电车难题”要数伦理学领域最为知名的思想实验之一,其内容大致是:一个疯子把五个无辜的人绑在电车轨道上。一辆失控的电车朝他们驶来,并且片刻后就要碾压到他们。幸运的是,你可以拉一个拉杆,让电车开到另一条轨道上。但是还有一个问题,那个疯子在那另一条轨道上也绑了一个人。考虑以上状况,你应该拉拉杆吗?

解读:

电车难题最早是由哲学家Philippa Foot提出的,用来批判伦理哲学中的主要理论,特别是功利主义。功利主义提出的观点是,大部分道德决策都是根据“为最多的人提供最大的利益”的原则做出的。从一个功利主义者的观点来看,明显的选择应该是拉拉杆,拯救五个人只杀死一个人。但是功利主义的批判者认为,一旦拉了拉杆,你就成为一个不道德行为的同谋——你要为另一条轨道上单独的一个人的死负部分责任。然而,其他人认为,你身处这种状况下就要求你要有所作为,你的不作为将会是同等的不道德。总之,不存在完全的道德行为,这就是重点所在。许多哲学家都用电车难题作为例子来表示现实生活中的状况经常强迫一个人违背他自己的道德准则,并且还存在着没有完全道德做法的情况。

9.空地上的奶牛(The Cow in the field)

认知论领域的一个最重要的思想实验就是“空地上的奶牛”。它描述的是,一个农民担心自己的获奖的奶牛走丢了。这时送奶工到了农场,他告诉农民不要担心,因为他看到那头奶牛在附件的一块空地上。虽然农民很相信送奶工,但他还是亲自看了看,他看到了熟悉的黑白相间的形状并感到很满意。过了一会,送奶工到那块空地上再次确认。那头奶牛确实在那,但它躲在树林里,而且空地上还有一大张黑白相间的纸缠在树上,很明显,农民把这张纸错当成自己的奶牛了。问题是出现了,虽然奶牛一直都在空地上,但农民说自己知道奶牛在空地上时是否正确?

解读:

空地上的奶牛最初是被Edmund Gettier用来批判主流上作为知识的定义的JTB(justified true belief)理论,即当人们相信一件事时,它就成为了知识;这件事在事实上是真的,并且人们有可以验证的理由相信它。在这个实验中,农民相信奶牛在空地上,且被送奶工的证词和他自己对于空地上的黑白相间物的观察所证实。而且经过送奶工后来的证实,这件事也是真实的。尽管如此,农民并没有真正的知道奶牛在那儿,因为他认为奶牛在那儿的推导是建立在错误的前提上的。Gettier利用这个实验和其他一些例子,解释了将知识定义为JTB的理论需要修正。

8.定时炸弹(The Ticking Time Bomb)

如果你关注近几年的政治时事,或者看过动作电影,那么你对于“定时炸弹”思想实验肯定很熟悉。它要求你想象一个炸弹或其他大规模杀伤性武器藏在你的城市中,并且爆炸的倒计时马上就到零了。在羁押中有一个知情者,他知道炸弹的埋藏点。你是否会使用酷刑来获取情报?

解读:

与电车难题类似,定时炸弹情景也是强迫一个人从两个不道德行径中选择的伦理问题。它一般被用作对那些说在任何情况下都不能使用酷刑的反驳。它也被用作在极端形势下法律——就像美国的严禁虐囚的法律——可以被放在第二位的例子。归功于像《24小时》的电视节目和各种政治辩论,定时炸弹情景已成为最常引用的思想实验之一。今年早些时候,一份英国报纸提出了更为极端的看法。这份报纸提议说,如果那个恐怖分子对酷刑毫无反应,那么当局者是否愿意拷打他的妻子儿女来获取情报。

7.爱因斯坦的光线(Einstein’s Light Beam)

爱因斯坦著名的狭义相对论是受启于他16岁做的思想实验。在他的自传中,爱因斯坦回忆道他当时幻想在宇宙中追寻一道光线。他推理说,如果他能够以光速在光线旁边运动,那么他应该能够看到光线成为“在空间上不断振荡但停滞不前的电磁场”。对于爱因斯坦,这个思想实验证明了对于这个虚拟的观察者,所有的物理定律应该和一个相对于地球静止的观察者观察到的一样。

解读:

事实上,没人确切知道这意味着什么。科学家一直都在争论一个如此简单的思想实验是如此帮助爱因斯坦完成到狭义相对论这如此巨大的飞跃的。在当时,这个实验中的想法与现在已被抛弃的“以太”理论相违背。但他经过了好多年才证明了自己是正确的。

6.特修斯之船(The Ship of Theseus)

最为古老的思想实验之一。最早出自普鲁塔克的记载。它描述的是一艘可以在海上航行几百年的船,归功于不间断的维修和替换部件。只要一块木板腐烂了,它就会被替换掉,以此类推,直到所有的功能部件都不是最开始的那些了。问题是,最终产生的这艘船是否还是原来的那艘特修斯之船,还是一艘完全不同的船?如果不是原来的船,那么在什么时候它不再是原来的船了?哲学家Thomas Hobbes后来对此进来了延伸,如果用特修斯之船上取下来的老部件来重新建造一艘新的船,那么两艘船中哪艘才是真正的特修斯之船?

解读:

对于哲学家,特修斯之船被用来研究身份的本质。特别是讨论一个物体是否仅仅等于其组成部件之和。一个更现代的例子就是一个不断发展的乐队,直到某一阶段乐队成员中没有任何一个原始成员。这个问题可以应用于各个领域。对于企业,在不断并购和更换东家后仍然保持原来的名字。对于人体,人体不间断的进行着新陈代谢和自我修复。这个实验的核心思想在于强迫人们去反思身份仅仅局限在实际物体和现象中这一常识。

5.伽利略的重力实验(Galileo’s Gravity Experiment)

为了反驳亚里士多德的自由落体速度取决于物体的质量的理论,伽利略构造了一个简单的思想实验。根据亚里士多德的说法,如果一个轻的物体和一个重的物体绑在一起然后从塔上丢下来,那么重的物体下落的速度快,两个物体之间的绳子会被拉直。这时轻的物体对重物会产生一个阻力,使得下落速度变慢。但是,从另一方面来看,两个物体绑在一起以后的质量应该比任意一个单独的物体都大,那么整个系统下落的速度应该最快。这个矛盾证明了亚里士多德的理论是错误的。

解读:

这个思想实验帮助证明了一个很重要的理论:无论物体的质量,不考虑阻力的情况下,所有物体自由落体的速率都是一样的。

4.猴子和打字机(Monkeys and Typewriters)

另一个在流行文化中占了很大分量的思想实验是“无限猴子定理”,也叫做“猴子和打字机”实验。定理的内容是,如果无数多的猴子在无数多的打字机上随机的打字,并持续无限久的时间,那么在某个时候,它们必然会打出莎士比亚的全部著作。猴子和打字机的设想在20世纪初被法国数学家Emile Borel推广,但其基本思想——无数多的人员和无数多的时间能产生任何/所有东西——可以追溯至亚里士多德。

解读:

简单来说,“猴子和打字机”定理是用来描述无限的本质的最好方法之一。人的大脑很难想象无限的空间和无限的时间,无限猴子定理可以帮助理解这些概念可以达到的宽度。猴子能碰巧写出《哈姆雷特》这看上去似乎是违反直觉,但实际上在数学上是可以证明的。这个定理本身在现实生活中是不可能重现的,但这并没有阻止某些人的尝试:2003年,一家英国动物园的科学家们“试验”了无限猴子定理,他们把一台电脑和一个键盘放进灵长类园区。可惜的是,猴子们并没有打出什么十四行诗。根据研究者,它们只打出了5页几乎完全是字母“s”的纸。

3.中文房间(The Chinese Room)

“中文房间”最早由美国哲学家John Searle于20世纪80年代初提出。这个实验要求你想象一位只说英语的人身处一个房间之中,这间房间除了门上有一个小窗口以外,全部都是封闭的。他随身带着一本写有中文翻译程序的书。房间里还有足够的稿纸、铅笔和橱柜。写着中文的纸片通过小窗口被送入房间中。根据Searle,房间中的人可以使用他的书来翻译这些文字并用中文回复。虽然他完全不会中文,Searle认为通过这个过程,房间里的人可以让任何房间外的人以为他会说流利的中文。

解读:

Searle创造了“中文房间”思想实验来反驳电脑和其他人工智能能够真正思考的观点。房间里的人不会说中文;他不能够用中文思考。但因为他拥有某些特定的工具,他甚至可以让以中文为母语的人以为他能流利的说中文。根据Searle,电脑就是这样工作的。它们无法真正的理解接收到的信息,但它们可以运行一个程序,处理信息,然后给出一个智能的印象。

2.薛定锷的猫(Schrodinger’s Cat)

薛定锷的猫最早由物理学家薛定锷提出,是量子力学领域中的一个悖论。其内容是:一只猫、一些放射性元素和一瓶毒气一起被封闭在一个盒子里一个小时。在一个小时内,放射性元素衰变的几率为50%。如果衰变,那么一个连接在盖革计数器上的锤子就会被触发,并打碎瓶子,释放毒气,杀死猫。因为这件事会否发生的概率相等,薛定锷认为在盒子被打开前,盒子中的猫被认为是既死又活的。

解读:

简而言之,这个实验的核心思想是因为事件发生时不存在观察者,盒子里的猫同时存在在其所有可能的状态中(既死又活)。薛定锷最早提出这个实验是在回复一篇讨论量子态叠加的文章时。薛定锷的猫同时也说明了量子力学的理论是多么令人无法理解。这个思想实验因其复杂性而臭名昭著,同时也启发了各种各样的解释。其中最奇异的就属“多重世界”假说,这个假说表示有一只死猫和一只活猫,两只猫存在在不同的宇宙之中,并且永远不会有交集。

1. 缸中的大脑(Brain in a Vat)

没有比所谓的“缸中的大脑”假说更有影响力的思想实验了。这个思想实验涵盖了从认知学到哲学到流行文化等各个领域。这个实验的内容是:想象有一个疯狂科学家把你的大脑从你的体内取出,放在某种生命维持液体中。大脑上插着电极,电极连到一台能产生图像和感官信号的电脑上。因为你获取的所有关于这个世界的信息都是通过你的大脑来处理的,这台电脑就有能力模拟你的日常体验。如果这确实可能的话,你要如何来证明你周围的世界是真实的,而不是由一台电脑产生的某种模拟环境?

解读:

如果你觉得这听起来很像《黑客帝国》,那么你说对了。这部电影以及其他一些科幻作品,都是在这个思想实验的影响下创作出来的。这个实验的核心思想是让人们质疑自身经历的本质,并思考作为一个人的真正意义是什么。这个实验的最初原型可以一直追溯至笛卡尔。在他的《Meditations on the First Philosophy》一书中,笛卡尔提出了能否证明他所有的感官体验都是他自己的,而不是由某个“邪恶的魔鬼”产生的这样的疑问。笛卡尔用他的经典名言“我思故我在”来回答这个问题。不幸的是,“缸中的大脑”实验更为复杂,因为连接着电极的大脑仍然可以思考。这个实验被广泛的讨论着,有许多对于此实验前提的反驳,但仍没有人能有力的回应其核心问题:你究竟如何才能知道什么是真实?

10 Phrases To Talk About Wine With Foreigner / 用10个短语和老外谈论葡萄酒

July 25th, 2010 by Jayson No comments »

难免有朝一日遇到布朗或者萨科齐的同胞,学前班的外语水平终于要露一下了,因为对方不会讲中文。如何用英文和老外聊葡萄酒?了解相关的专业用语非常重要。

首先,讲葡萄酒的时候,总会先讲起国家和产区。你可以挑选一些你比较熟悉的国家和产区来讨论,例如France(法国)、Italy(意大利)、Australia(澳大利亚)、Chile(智利)等。如果你想讲得更详细,可能你得背一背这些国家的主要产区。以法国为例,比较常见的是Bordeaux(波尔多)、Burgundy(勃艮第,但注意,法国人会说“Bourgogne”)、Champagne(香槟)、Alsace(阿尔萨斯)等等。你也许还会需要表达你喜欢的是哪种类型的葡萄酒,是White Wine(白葡萄酒)、Red Wine(红葡萄酒)还是Sparkling Wine(起泡酒)?关于产区和酒款,便可以聊出许多话题:

I like red wine from Australia, but I prefer white wine from France, especially from Alsace

(我喜欢澳大利亚的红葡萄酒,但白葡萄酒我更喜欢法国的,尤其是阿尔萨斯的)

I prefer sparkling wine, especially from Champagne in France

(我更喜欢气泡酒,特别是法国香槟的。)

接下来,我们端起杯子,来绕着这杯酒展开话题。先从酒的Appearance(外观)开始,酒呈现的Colour(颜色)是Deep(深)还是Pale(浅)?如果是红葡萄酒,那么色泽可呈现出a deep ruby red(深宝石红色)、a pale garnet colour(浅色的石榴红)或者an opaque purple(不透明的紫色)等。白葡萄呢,比较常见的是pale lemon(浅柠檬色)或deep gold colour(深金黄色)。所以,这种句子是品酒的好开始:

This wine shows a nice deep ruby red colour”(这款酒呈现着鲜亮的深宝石红色)。

或者:

This wine shows a nice Pale Lemon colour”(这款酒呈现着漂亮的浅柠檬色)。

闻起葡萄酒的时候,如果香气不干净的,那么可以说它Faulty(有异味的),对方可能会说:

This wine is faulty, I think it’s corked”(这款酒有异味,我想它染上了木塞味)或者你可能会认为它已经氧化:

I think it is oxydised”(我想它被氧化了)。

有的葡萄酒的香气Pronounced(浓郁),有的Light(清淡),但大多数会散发出Fruit Aromas(果香)或Floral Aromas(花香)。用于红酒的香气通常是:Black Currant(黑醋栗)、Plum(梅子);白酒的气味通常有:Tropical Fruit(热带水果)、Lemon(柠檬)、Apple(苹果)、Mineral(矿物味)。在Barrel(木桶)中陈酿的佳酿,往往会散发出美妙的Oak Aroma(橡木香)。

This wine is fruity, and it has elegant oak aromas”(这款酒果香丰郁,并且有优雅的橡木味)

入口之后,体会口感的反应,可以先讨论一下酒酸:

How about its acidity”(酒酸如何呢)?

酸度可用“High”(高)和“low”(低)来表达:

The wine has a high acidity”(这款酒的酸度高!)

通常,Hot Climate(热气候)的葡萄酒会Full-Bodied(重酒体/饱满),而Cold Climate(冷气候)的葡萄酒倾向于“Light-Bodied”(轻酒体)。

Tannins(单宁)也是品酒时非常值得描述的部份,有的酒Tanninsripe and soft(成熟且柔软的),但有的比较unripe and green(不成熟且绿/粗糙的)。我们可以这样来谈论单宁:

The tannins are strong but fine”(单宁很强壮,但却很细致。)

最后,来背下这句讨人喜欢的好话:

This is a good wine, it’s well-balanced, the finish is clean and long”(这是一款好酒,它很平衡,余味既干净又长)

现在,一起来干杯!

Cheers