办公室建立图书馆的可行性研究

Introduction

房价和房租这么高,我家里收拾东西的原则是

  • 如果:这个东西占地面积*房租(或房价)>>该物体的价格
  • 那么:就要考虑是否把该物体扔掉

但是,书籍还是有些舍不得。因此,就把自己闲置不看的书放进办公室或者附近的公共场所(相熟的咖啡馆?),共享给他人。不过,毕竟是自己买来的书,有些不舍,而且万一需要查阅什么东西,还是希望能够找回来用的。

材料与方法

首批共享的书籍列表:

由于距离不远,将这一组书放在了某大公司。(没有书架的公司不是好公司)

我在每一本书的空白处写下了自己的email,请借阅者在把书拿回家和归还的时候都给我发个email,这样查询email就可以知道自己书的去向,如果需要查阅什么资料,只需要按email给借阅者发个信即可。为了避免大量email的干扰,可以用gmail的filter,比如留下email地址是:abc+book@gmail.com这样的地址会发给abc@gmail.com,并且加上book的tag,再用filter直接给存档就好了。如果有自己的独立域名,也可以用google app,绑定email到gmail服务上,我现在就是用这种方法,但比较复杂,此处略。

结果

这组书籍已经被某大公司接受,《这就是搜索引擎 : 核心技术详解》当天就被借出,并收到借阅email。顺便说,这本书是作者亲赠的哦,写得还不错,对于我这种技术外行都可以看懂。

讨论

  1. 可以制作更精美的借阅卡或者借阅章,将email信息印制在书上,或者有打印机的话,可以打印二维码,贴在书上。
  2. 在书籍量不大的时候,email的数据管理方法不是太复杂,而且无需其他投入和维护。
  3. 对于借书者,没有能够查询书籍去向的方法,只能借阅书架上有的书籍。所以没有查询、预约的功能。因此好像不太适合公共图书馆,比较适合一些闲书。
  4. 书架上缺乏索引机制,要找某本书,只能遍历一遍。书多了是个灾难。建议按照某种顺序来排列。考虑到维护的人力成本,不失一般性,建议以ISBN的序列号来排序。
  5. 某大公司DIY事业部,是否可能做出RFID的书籍呼叫系统呢?需要找哪本书的时候,用找书机呼叫一下,该书就自己答应一声。卡片状的RFID就很合适。

如何制造一个『实名』

本文是http://code.google.com/p/md5-password-creator/ 的原理说明,利用http://code.google.com/p/md5-password-creator/downloads/list 中列出的程序,每个人都可能制作出自己的『实名』,通过网站的实名验证。继续匿名的使用网络。

『实名制』是邪恶的。『实名制』将可能会产生自我审查,你在发言之前,要考虑到是否有人可能会威胁你自身,或者威胁你的社会关系,于是你的发言就要有所顾忌。在实行实名制之前,你的网络身份仍然可能是暴露的,但是只有少数人通过技术手段才可以获得,但是实行实名制之后,自我审查的压力会大得多。这个大陆旁边正好有两个栗子,一个是西朝鲜,一个是北台湾。

代码本身就是一种力量。在代码的世界里,代码说了算。下面,我会解释如何产生一个『实名』的代码,将代码的力量赋予你。

要产生一个『实名』,要满足两个条件,一个是不重样,一个是不走样。所谓不重样,是指每一个网站可以产生不同的身份,不同的人,可以产生不同的身份。所谓不走样,是指同样的条件产生同样的身份。基于MD5密码生成器的原理,我们也可以用HASH的方法来产生新的不重样不走样的身份。

MD5密码生成器的基本概念是利用HASH函数,子密码=MD5(主密码+网站名),于是对于同一个主密码,只要改变网站名就可以产生无数不重样,不走样的子密码。『实名』生成部分,就是以每一个网站的子密码为种子生成的。

*  生成身份种子:

1. 首先生成子密码=MD5(主密码+网站名+时间代)
2. 将以16进制的子密码转换成10进制的数
3. 为了避免从生成的身份推导出子密码,所以稍微加了一步MD5和撒盐的可能:
var ID_decimal=hex2dec(md5(str_md5+md5("")));
这里的 ID_decimal就是生成的身份种子,这是一个32位的10进制正整数,是由主密码,网站名和时间代唯一决定的。从这个身份种子出发通过同样规则产生的信息也是不重样不走样的。

*  生成姓名:

中国人的姓名包含几个部分:第一个字是姓,考虑到算法的复杂性增加,暂时不加入复姓了,第二个字是辈分,第三个字的偏旁是表示兄弟姊妹的关系,最后半个字是自己的。产生姓名的基本 策略是从可选的字列表中挑选一个字,挑选的方法为了和身份种子产生关系,所以我使用了求余的计算。

var surName=surNameList.substr((ID_decimal.substr(0,10)) % (surNameList.length),1);

这句是说,把身份种子的前10位数字取出来,除以入选的姓氏数量,取得余数,然后从姓氏字列表中挑出余数所代表的那个字。这样的算法保证了一定可以从姓氏列表中挑出一个数字,不会出现选了百家姓中的30个姓,结果算出余数=31。

姓氏的列表是百家姓的前65位,基本可以涵盖大多数人的姓氏了。

名字的中间字和第三个字的算法类似, 如果你想让生成的名字都带有某个偏旁,就可以把同一个偏旁的字放在列表之中,如果自己一时想不出那么多,除了元素周期表,还可以从 http://www.douban.com/note/186053601/ 这里面查查。我暂时比较偏爱斜玉旁的汉字,都是代表了某种玉石,透着非普通青年的范儿。

var middleName=myNameList.substr((ID_decimal.substr(10,15))%(myNameList.length),1);
var myName=myNameList.substr((ID_decimal.substr(10,10))%(myNameList.length),1);

注意从32位身份种子之中挑出来做被除数的数字,每次的起止位置应该不一样,否则姓、名之间的相关性就太高了。能够产生的名字总数就少了。

*  生成性别:

性别的生成不过是从『男女』这个长度=2的列表中挑字而已。

var gender=genderList.substr(ID_decimal.substr(20,10)%(2),1);

*  生成注册名/email ID:

在我刚刚提出用MD5计算密码的时候,果壳网上有位先知非常逆向思维的提出应该将用户名也加密,生成各自不相同的用户名。这实在是一个对抗社会工程学的好方法,使各个网站的身份数据完全隔离开来。

生成注册名的时候我比较懒惰,直接截取了一部分子密码的尾部,有一定潜在的危险。
var mailID=str_base64.toLowerCase().substr(20,8);

*  生成ID号码:

这才是整个程序与身份相关的重点。理论上身份证号和姓名是一一对应的,并且可以到公安部的数据库中可以查到。但毫无疑问,政府是贪婪的,查询一次这样的数据需要人民币5元,也存在有背景的企业能够分一杯羹,到一个叫做『国政通』的企业去查询,一次查询的费用降低到2元。

认证一个身份2元是个什么概念呢?新浪在报告中声称注册用户有2亿,也就是说其中全部通过身份认证下来需要4亿人民币,即使国政通给新浪批发价,打一折,也是4千万之巨。这个行动可以很清楚的从新浪的财报中看出来,如果没有这笔支出,新浪一定没有去国政通认证,同理其他互联网上市公司也不可能去做的。那么国政通甚至公安部是否有可能免费给网站做身份验证呢?这不是降低GDP么,用脚趾头想想也不可能。而且如果免费了,或者超低价认证身份了,马上就有新公司可以打着认证到旗号,把整个数据库给剥出来。

是否有可能由国家财政拨款补贴呢?显然有可能,拿纳税人的钱治纳税人。那补贴可不是仅仅给新浪一家4亿,而是新浪、搜狐、网易、腾讯每家4亿。那样的话,我也去开个小破论坛,生成一堆实名认证要求,去申请补贴。记得有本书叫做《民主的细节》,看来《专制的细节》应该是本更厚的书。

那么现在互联网企业是如何进行『实名』认证的呢?他们其实只做了一步,就是检查身份证号码是否是一个合法的身份证号而已。也就是用身份证校验算法去验证最后一位和前17位之间的关系。

身份证号码的规定在中华人民共和国国家标准GB 11643-1999《公民身份号码》之中进行了详细的规定。在维基百科上也有详细的解释:http://zh.wikipedia.org/wiki/中华人民共和国公民身份号码

下面引自维基百科:

18位数字组合的方式是:

1
1
0
1
0
2
Y
Y
Y
Y
M
M
D
D
8
8
8
X
地址码
出生日期码
顺序码
校验码
  • 地址码指的是公民常住户口所在县(市、旗、区)的行政区划代码,如110102是北京市西城区
  • 出生日期码表示公民出生的公历年(4位)、月(2位)、日(2位)。
  • 顺序码是给同地址码同出生日期码的人编定的顺序号,其中奇数分配给男性,偶数分配给女性。
  • 最后一位是校验码,这里采用的是ISO 7064:1983,MOD 11-2校验码系统。校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。

校验码计算方法

  • 1. 将身份证号码从右至左标记为a1即为校验码;
  • 2. 计算权重系数
i
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
Wi
7
9
10
5
8
4
2
1
6
3
7
9

白帽公告网站的构想

= 白帽公告网站的构想

随着网络安全问题的进一步曝光,我认为应该引发一次[谢东危机](http://en.wikipedia.org/wiki/Seldon_Crisis)改善国内网站的技术以及习惯甚至盈利方式和商业道德。引发谢东危机的关键...

对于网络安全,有些服务商是主动犯傻,他们根本就不知道应该如何防御;有些服务商是被动犯傻,他们可能不得不采取某些明显不安全的手段以应对另一种压力。对于被动犯傻的服务商,我表示同情,在中国大陆这片土地上,生活已经是hard模式,何况还要养活那么多员工。但是同情并不意味着赞成和姑息。

中国大陆的网络服务商首先是商人,其次才是说中文的商人,再其次才是在中国大陆说中文的商人。商人就应该首先受到商业规律的控制,要规范商人的行为,使之不作恶,或者不协助作恶,还是要使用商业的武器和力量。

白帽公告网站就是一个这样的商业力量,这个网站将要定期或者不定期的公示各个网站与网络安全相关的行为,并且以简单明确的方式来表达,

* 这是给每个用户的一份知情报告书,你在选择使用网站的时候,应该知道有哪些安全风险。在同等服务质量的前提下,显然会促使用户去前往更安全的网站。
* 这也是给每个投资商的一份风险评估报告,当你要投资某一个互联网企业的时候,你要清楚是否有可能在某一天突然出现一次来自网络安全的重击,使自己的投资灰飞烟灭。
* 这还是给上市公司的第三方评估。一个无法保护用户密码和隐私的网站,是否能够真正保护投资人的利益呢。

白帽公告网站会选择一些与网络安全相关的外部行为进行评估,先找出一些指标,指明:

* 安全的充分条件:一旦出现,必然网站使安全的。这个看起来并不存在。
* 安全的必要条件:必要条件是说网站需要具有这些条件,否则就是不安全的。必要条件会有很多:密码应该单向hash,登陆过程中要保证密码不会被破译等等
* 不安全的充分条件:其实条目与安全的必要条件是一样的,本来就是逆否命题。换种表达方式可能测量和理解起来更方便,比如明文存储密码,明文发送密码。
* 不安全的必要条件:这个跟安全的充分条件一样是逆否命题。好像也是不存在的。
* 提示可能安全的条件:充分/必要这样的要求太严格了,项目不多,提示的作用也有限,毕竟绝对的牛逼和绝对的傻逼还是少数。但是一定的提示作用还是有的,而且列出这些条件,可以使互联网企业有个明确的努力方向和目标。比如:https,单向运算加密密码和用户信息等等
* 提示可能不安全的条件:同上,列出这些条件也是为了督促企业,避免去做这些容易导致危险的操作。

设想中的白帽公告网站,应该包含:

* 常见网站的列表,宁肯做成像hao123那样的页面。这个公告网站的读者都不是做技术的。
* 同类网站的比较,就是要形成竞争的压力,让普通人能够货比三家。
* 面向投资人的安全风险报告,可以有免费的,也可以有收费的。这种收费报告,可能是盈利的主要来源。
* 安全认证的徽章,要进行安全认证可能要深入到网络企业的内部,不一定能够取得这样的权限吧

开源密码管理生成器

生活中随处要用到密码:ATM机上取钱,微博登陆,邮箱登陆……在这个信息时代,其实真正能代表你的恐怕只有你的密码了。

安全性最低的方法,就是用统一的一个密码来登陆所有这些,算是一了百了,只要记住一个密码就足够了,但是只要有一个密码被人破解,你所有的身份、金钱也就可能随之给了别人。我们需要不同的密码用在不同的地方,甚至某些网站要求定期修改密码于是我们就要记住越来越多的密码

对于年纪大些的人,可能会用一个密码记录簿来记录这些密码威胁也是存在的,如果密码记录簿丢失了,那么所有的密码也就丢失了,或者需要用某个密码的时候,恰好记录簿没有带在身边,也就无法回忆起那个密码

比物理的密码记录簿更优秀的方法,是设计一个主密码然后利用某些规则生成许多子密码应用在不同的网站上,比如主密码是“一枝红杏出墙来”,那么在微博上子密码可能就是“一枝红杏出微博”,新浪上子密码可能是“一枝红杏出网易”,Gtalk上子密码则变成了“一枝红杏出QQ”之类的。这种方法也有几个问题:
1. 如果从主密码到子密码的规则太简单,那么一个子密码被破解,有可能逆向推出主密码,然后所有密码也随之被破解。
2. 如果从主密码到子密码的规则太复杂,则又出现了新的记忆难度
3. 对于银行卡和ATM机之类只支持数字密码的,需要另一组生成规则

比生成子密码更好的方式,是密码管理软件或者网站。用一个主密码进入密码管理软件,所有的子密码是由软件随机生成的,其中任何一个子密码被破解,也不影响其他子密码,也不会被逆向破解出主密码密码管理软件的弊端和纸质的密码簿由相似之处,就是一旦接触不到软件或网站,自己也很难想起密码来。

理想的密码管理方式是:
1. 开源的。密码管理软件如果是闭源的,风险就很大。谁知道会不会有哪个无良程序员在软件中设置后门,将你所有的密码都记录并且传递到某个地方去。
2. 跨平台。你可能有一台PC,一台Macbook笔记本,一只Android手机,还有一个kindle电子书。这些设备都需要能够产生/调用你的子密码
3. 在线/离线方式共存。在线的网站通常是等价于跨平台,比如lastpass就是一个不错的在线记录密码的网站,虽然它并不满足开源的要求。但是网站总有一个是否能够接触到的问题,比如你站在一台位于地下商业街的ATM机面前,连个手机信号都没有,任凭lastpass如何在云端,你也无法接触到了。
4. 子密码不可逆向推出主密码。子密码之间无法互相推知。这一点成熟的密码管理软件都可以做到。
5. 同时可以管理字符和数字型的密码

综上,我想出了一种密码管理生成的方式,如下。

密码=MD5(主密码+应用名+版本号)
例如,主密码是“12345”,应用在微博上,第0号版本。密码=MD5(12345+weibo+0),那么使用16进制的MD5数值作为字符型的密码而使用整数型的,作为数值型密码:
 integer form | 125005476443167096316531531755775625670
 hexadecimal form | 5e0b 2dd4 df66 07a9 af36 7b41 6c48 89c6
不过实际中用不了这么长的密码,可以只使用前8位"5e0b2dd4"作为密码
密码是应该定期更换的,比如3个月更换一次。于是下一次更换时,用MD5(12345+weibo+1),密码变成了:
 integer form | 48819798530286427763212232259863620227
 hexadecimal form | 24ba 59e7 6185 ba3e d70b 865f 94f8 aa83
如果是用在银行卡上,比如工商银行,那么生成的是MD5(12345+icbc+0),密码是:
 integer form | 140350455243536382853078667013757626879
 hexadecimal form | 6996 83b2 bedc b85b 4d38 a837 7584 69ff
考虑到ATM机只认6位数字,密码是140350

MD5,Message-Digest Algorithm 5(信息-摘要算法 5),是广泛使用的散列算法之一,能够将数据运算为另一固定长度值。

MD5对输入序列非常敏感,有一点点的差异,就可以产生出完全不同的MD5值,比如上述的MD5(12345+weibo+0)、MD5(12345+weibo+1)、MD5(12345+icbc+0),所产生的数值就完全不同。所以你的子密码看起来根本没有什么相关性,从MD5值逆向推导出MD5函数的输入值是非常困难的。这个难度和破解现在银行使用的计算机系统的难度相当。因此即使你不慎丢失了一枚子密码,其他的子密码仍然是安全的。

MD5的算法是公开的,有很多软件可以计算。你可以下载一个计算md5的工具来作为自己的密码管理生成器。因为MD5的用途实在太多,因此在windows/
Mac OS/ iOS/ Symbian/ Android/ WebOS下一定都会有大把的计算软件可供使用。
如果不相信别人的软件,你也可以自己来写,比如在Mac、linux上,可以直接在终端中输入
md5 -s "12345+weibo+0"
就可以得出5e0b 2dd4 df66 07a9 af36 7b41 6c48 89c6的答案。在python上也就是一行代码:
import md5; md5.md5("12345+weibo+0").hexdigest()

如果懒得动手,也有云端版的MD5计算器。到https://wolframalpha.com/ 上输入md5
12345+weibo+0,就可以计算出数值了,同时返回整数型和16进制型的。更厉害的,在手机上,用任意浏览器访问https://m.wolframalpha.com
也有同样的效果。不过注意,wolframalpha的搜索字符串是直接作为明文提交到网站上的,如果在网络路途中,有什么人监听的话,可能会丢失你的主密码哦,一旦主密码失窃,你所有的密码也就都丢了。所以最好还是通过本地运算比较好。

最后,介绍下我们(我,@chenxiaoqino @Hjin_me)制作的一个MD5密码生成器:http://code.google.com/p/md5-password-creator/
第一个输入框中填写您的主密码。
第二个输入框中填写您需要的应用名或者网站名称
点击MD5!以后就可以算出您的MD5密码了。如果只需要其中的一部分,就是『切出前』选择一个位数,点击>即可。
界面简陋,功能实用,希望您能喜欢。

用普通语言讲解下密码安全

试着用普通语言注释一下@caoz的这篇关于安全的文章goo.gl/3krVV 有不对的请各位推友及时指出。这篇文章讲的不是一个普通用户应该怎样保护自己的密码,而是针对服务商讲解应该怎样保护用户的密码。但是作为一个普通用户,了解其中的知识很有帮助。

我们平时会登陆许多网站,比如开心、人人、微博之类。这些网站如何知道我是他们的用户,并且输入的用户名和密码正确呢?他们需要有一个记录簿来记录我的用户名和密码之间的关系。有些很差的服务商会直接记录我的用户名和密码的原文

以密码的原文记录我的密码是非常不负责任的行为。一旦泄露给公司内或者公司外的人,他们就可能对我不利。@caoz提供一个简单的方法来推测,如果找回密码时给出的是您密码的原文,那么这个网站是非常不靠谱的

服务商会把所有用户的用户名和密码保存在一个数据库中保护起来,但是放在网络上这个数据库就有可能被偷走,就是爆库。“国内有点影响力的网站,2/3都被爆过库”,所以看来被偷走是迟早的事情。如果密码是以原文形式保存在数据库中就危险了

于是服务商一般不会以原文的形式保存用户名和密码。而是用所谓的HASH运算的方法将密码转换成另一串代码保存起来,这种运算方法是单向运算,就是从密码生成hash代码非常快捷,但是要从hash代码逆运算求解密码则非常困难。

hash运算goo.gl/xoYt有许多种方法其中比较有名的有MD5,sha等等。虽然hash是单向运算,但是如果记录了足够多的正向运算的因果关系,并且把这些对应关系存储起来,就是碰撞库

比如密码是“a”,hash值是“丑牛”,虽然从“丑牛”推不出a来,但是如果有碰撞库恰好记录了丑牛=a,那么只要在数据库里查询一下就可以知道原始的密码了。这就是碰撞库的意义。@caoz举了个栗子cmd5.com 推荐看一下其中的破解范围

对于服务商而言碰撞库就非常可怕了,通过碰撞库,黑客可以获得整个用户数据库中相当多的人的密码。从cmd5.com中的破解范围所述,8位以下的密码都是不安全的。很多人会想,反正我在人人、开心上也没什么秘密,丢就丢了呗。

其实不然,作为人类,我们记不住那么多密码,想想你是否在多个网站用同样的用户名和密码呢?甚至有多少人的开心网密码和支付宝密码就是同一个呢?如果是,请面壁。黑客们还有一个叫做社会工程学库的工具,简称社工库,专门记录以前被爆库的数据

有经验的黑客会从社工库里面取出数据,去知名网站上测试。这个过程是用计算机高速进行的。你丢掉了一把钥匙,然后就出现了一个机器人在每个高档/知名小区的门锁上插着试,每秒钟成千上万个门的测试。如果你跟现金打交道的帐户也是相同密码怎么办?

goo.gl/3krVV此文的注释讲完。对于服务商我们其实无法控制,他们被爆库我们也帮不上忙,只是在我们的信息被窃取之后能够将损失和危险降到最低。我对于普通用户的建议:1.设定足够长度的密码。2.每个网站使用不同的密码。3.定期修改密码

我现在使用的密码管理方法是通过goo.gl/6mwE2以主密码配合网站名的方式对每一个网站生成不同的子密码,并且定期更换,这样即使一个密码丢失被破解,其他的服务仍然可以保持良好。

对了,如果对密码学更有兴趣的,推荐欧姆社的《漫画密码》,看着漫画就明白了。

“米饭实验”该怎么做――给马昊同学的一封公开信

“米饭实验”该怎么做——给马昊同学的一封公开信

金色葡萄 发表于
2011-12-01 20:15:29

小学四年级的学生马昊所做的“米饭实验”,经媒体报道后引起了热议。这个“米饭实验”虽然缘于著名的伪科学图书《水知道答案》,但其本身并非不能操作。果壳网友金色葡萄就针对此事,与马昊同学进行一番探讨,据此我们可以了解,一个规范的科学实验,应该怎么做。

马昊同学:

你好。

在 《南方都市报》 上看到你的“三碗米饭”实验,感到很有趣。想不到在小学四年级的你已经开始做一个科学实验,当你听到一个观点时能够亲自动手进行验证,并且通过报纸将实验结果公布出来,这已经完成了一个科学研究的几个基本环节。

  • 首先是提出假设。我们在生活中会遇到许多问题,根据经验也会自己总结出一些规律,在科学研究中要把观察到的现象总结成一定的规律,然后提出一个可以被证明正确,或者可以被证明错误的假设。这一步你做得很好:将“人类行为对事物的影响”这么大的题目精简成了一个简单的假设:“人类带有情感的语言是否可以影响米饭的腐败过程?”这个假设是可以被实验证明或证伪的。
  • 第二步是设计实验。你的实验设计是对米饭进行赞美或者咒骂,来观察米饭的腐败过程与程度。这也是一个不错的设计。它的优点在于,实验简单易行,对一个四年级的小学生来说,你是有能力实施这个实验的。另一个优点是,这个实验的结果比较容易定性观测。从你的实验结果上来看,米饭在约一个月的实验之后出现了明显不同的三个结局:白色,变黄,又黑又臭。这三个现象清晰可见,避免了许多复杂的测量。
  • 第三步你实施了实验,并且认真做了观察。我不知道你是否有实验记录,对于科学实验,是需要有一个专用的记录本来记录实验现象的。
  • 第四步,你通过《南方都市报》公布了你的实验结果,使大家可以看到你的实验方法和实验结果,并接受同行的评议。很多报纸都引用了你的这次实验,由此看来,你已经基本完成了一个科学研究的基本流程。

但是,其中有一些环节你做得还不够好,下面我就谈一谈我的看法,供你参考,希望对你有所启发。

“米饭实验” 的实验条件控制

在科学研究中,我们要很小心地去控制可能影响结果的因素。比如,在投铅球比赛的时候,铅球的颜色并不会影响你的成绩,而铅球的重量、投铅球时的风向和风速是会影响你的成绩的。还有一个常常被忽视但作用却不可小瞧的影响因素:裁判和记录员。如果裁判很严厉,那么你可能为了避免犯规而离投球线更远。

为了要弄清楚可能影响结果的各个影响因素之间的相互联系,我们在研究的时候会尽可能地使各个影响因素都处于严格的控制之下。要检验其中某一个因素对结果的影响,就需要保持其他因素不变。如果某个影响因素实在难以控制,就需要以随机化的方式经过多次实验,使这个影响因素的作用变得不明显。

影响因素分析

对于米饭的腐败过程,通过查阅文献、结合常识和本次实验的假设,可能的影响因素包括:

①人类对米饭的态度,②米饭的数量,③米饭上细菌的种类,④米饭上细菌的数量,⑤米饭的生熟程度,⑥保存环境的温度,⑦保存环境的湿度,⑧稻米的品种,⑨存放米饭的容器;甚至米饭在容器里的堆放方式也有可能对结果产生影响。

各个影响因素的控制

其中一些是比较容易控制的,比如米饭的数量和米饭的生熟程度。你需要使用秤或者天平称量同样多的米,加入同样多的水,使用同样型号的电饭锅进行烹调;在其后发表的科研文献之中,电饭锅的型号也是要写入到论文之中的。保存环境也可以用电冰箱来控制。

另一些控制起来则相对困难,比如米饭上的细菌种类和数量,就是很难控制的影响因素,也可能是关键因素。从你发布的实验过程照片来看,你是直接对着米饭说话的——人在说话的时候会有大量的飞沫产生,飞沫之中会带有一定数量的细菌。这些细菌会直接喷洒在实验对象(米饭)的表面。这样就很难认定造成实验结果的原因到底是飞沫数量还是含有情感的语言了。

对于实验中细菌的控制其实是一门学问,称为“无菌术”(Aseptic technique)。以前外科医生做手术是不刷手、不戴手套和口罩的,手术过程中他们会把细菌也喷洒到病人的伤口上,引发伤口感染化脓。直到 1864 年,一位匈牙利的医生塞麦尔维斯(Semmelweis)提出做手术之前要用消毒液洗手,才开始逐步解决。

关于米饭上细菌种类的控制,可以采用如下办法。米饭蒸熟以后,要放进同样蒸煮过的容器中,并且密封好,使外界的细菌不会进入到米饭之内。但这样可能会使米饭长期保存也不变质或者变质非常缓慢。要加快变质过程,你可以在接种箱内接种同样的霉菌到米饭的表面上,然后用一定的材料(如保鲜膜)把米饭密封好。这中间的操作过程有很严格的要求,你需要生物老师的协助。

http://img1.guokr.com/gkimage/f1/dx/5i/f1dx5i.png

科学家使用接种箱进行接种实验(图片来源:siue.edu

对于实验要研究的因素——人类含有情感的语言,也需要有所控制。我们姑且认为在中国的米饭可以被中文语音所影响好了。在以后的实验中,我很期待看到其他语种的测试结果。你也许需要对米饭施加同样强度的赞美和咒骂,我个人建议,使用最简单的“你真好”和“你真坏”即可。

排除人为因素的干扰

在科学研究中,为了防止自己和其他人有意或无意影响实验结果,还应当使用“双盲”的方法。实验中,应该让观察者或者实验者不知道实验的分组细节。在你的这个米饭实验中,你不能同时担任实验者(对着米饭说话)和观察者(记录米饭的变化情况),因为作为实验者,你是知道自己所表达的情感的,而观察者不能知道哪一碗米饭受到了怎样的处置。要做到这一点,你需要得到哥哥和父母的帮助。

你在塑料瓶上画的“小花”、“猪头”和“空白”需要用胶布遮起来。然后请你的父母在塑料瓶的另一处分别标记上 A、B、C,表面也用胶布遮挡起来,对应顺序只有你父母知道,不能告诉你或者你哥哥。实验时,你打开自己的胶布,根据图画标记说赞美或者咒骂的话,之后再把胶布重新贴好。观察时,由哥哥打开他的胶布,记录下 A、B、C 三个瓶子里面米饭的腐败程度。遮挡胶布是为了形成 “双盲”,使实验者和观察者彼此分开,互不了解分组的细节。实验结束时才能取下胶布,查看结果。

实验的分组

在设计科学实验的时候,一般会有几组实验对象,分为实验组和对照组(对照组细分的话,还可以有阳性对照、阴性对照、空白对照等)。在实验中,你已经将实验对象——米饭,分成“赞美组”、“咒骂组”和“不理睬”三组。“赞美组”和“咒骂组”看起来是实验组,而“不理睬”组,我想你是想作为对照组。对于语言“情感”影响,我认为还应当加入一组是无情感语言组。你可以选择一些没有明显情感的语句对这一组施加影响,比如对着它数数。

重复实验验证结果

最后,你不仅需要自己做这个实验,还需要让其他同学按同样的方式来做这个实验。通过多次重复实验来消除一些不易控制的因素的影响,比如你的语音强弱。

综上所述,马昊同学,你已经具备了一定的科学研究的意愿和能力,但在很多实验设计的相关问题上还需要更多的学习和训练,希望你能保持这一份对事物的好奇心,增长自己的知识和技能。本文只是选择了一些科研中常见的问题与你讨论,在实际的研究中,你还会遇到许多的问题,比如如何分析数据、评分标准的设定等等。你应当查阅前人的文献,向相关领域的专家进行咨询。

致礼

=====

本文发布于果壳网:http://www.guokr.com/article/76404/ 

文字由果壳网的美女编辑帮助修改,使我本来生硬的语言变得如此温柔。文中的双盲实验方法与果壳网诸位编辑讨论后产生。要设计出个双盲还真不是件容易的事情。

本文版权属于果壳网(guokr.com),转载请注明出处。商业使用请联系果壳网


辩论网站设计

作者@goldengrape ,本文使用创作共用-署名协议。

经常在twitter上看到各种争执。

@hecaitou 说:“推特就像是加州旅馆,一堆苦逼聚集在这里,在程序循环里不能离去。是这个空间让许多彼此其实绝无交集的人,以为彼此相交了。所以说,这里是绝对的绝交状态,相交是才是相对的。”

@wangpei 说:“作为一个绝交界的过来人,我说几句吧。一、绝交只是两个人的事。二、绝交不是不共戴天,势不两立,只是保持距离,不发生交集。三、哪怕是一个恶棍,他依然在我的祈祷名单里。四、永不封死和解之路,能让世界变好一点的,是原谅而不是怨恨。”

@_yupo: 争论宜就事论事。一边争论问题一边夹带评价对方,很容易争论变争吵。

我认为,“吵架是人类的基本需求啊,还是早日搭建起专业的吵架网站吧。”下面是一个吵架,或者说辩论网站的基本构想:

  • 参与者
    • 主辩手, 模仿辩论赛,双方应该各自有一名。
    • 普通辩手,普通辩手的权利是由金钱购买获得的。普通辩手可以投票,以决定胜负。
    • 观众,观众是访问辩论网站的每一个人。
  • 共识区
    • 共识区是一个wiki,总长度限制在800个字符。共识区用来记录双方达成的共识,可以在此描述双方共同认可的与此次辩论相关的各种背景资料。观众可以通过阅读共识区的内容对此辩论有初步的了解。
    • 共识区可以有双方的主辩手和 普通辩手进行编辑。
  • 陈述区
    • 相当于辩论赛的一辩陈词,各自限定在500个字符。
    • 陈述区由主辩手编辑,并且可以反复编辑,次数不限。
  • 攻辩区
    • 攻辩区由双方的普通辩手进行编辑
    • 普通辩手可以反复在攻辩区内发言,每一句长度限制在140个字符之内。
    • 攻辩内容可以指向对方的攻辩内容
    • 攻辩区只显示双方各自最近10条攻辩内容,但观众可以通过翻页、点击等方式看到攻辩区之前的内容。
  • 围观区
    • 观众可以在围观区发表言论,但长度限制在4个字符。
    • 围观区以标签云的方式显示所有观众的言论。
  • 五毛券

    • 五毛券是本辩论网站的核心。
    • 五毛券是有价的,需要从辩论网站以真实货币购买。我认为用金钱投票才是真正的投票。
    • 购买五毛券的用户,才能成为普通辩手
    • 普通辩手需要以手中的五毛券进行投票,一枚五毛券用于购买一票。
    • 辩论网站以1.0元出售五毛券,以0.5元回购五毛券。
    • 持有五毛券的普通辩手可以自由买卖五毛券,价格自行决定。辩论网站对五毛券的交易收取5%的交易费。
    • 五毛券可以拆分交易,五毛券的最小分度是0.01枚。
  • 胜负判定

    • 在预先指定的时间内,获得投票数量多的一方取胜。
    • 胜利方获得自己投出的五毛券,并且胜利方平分失败方的五毛券。如果不能整除,则向下取整,剩余部分辩论网站自动回收。比如胜方普通辩手50人,反方30人,胜方每人最终获得1+30/50=1.6枚五毛券,而如果胜方普通辩手55人,反方30人,则胜方每人最终获得1.54枚五毛券,辩论网站回收0.3枚五毛券。

以上是辩论网站的基本结构。随着辩论网站的运行,还可以增加如下功能:

  • 增值道具:增值道具是需要购买的,而且价格不菲。可以参考大富翁了。比如让对方主辩手噤声30分钟,减低对方陈述区字符长度,增加本方陈述区的字符长度

  • 五毛券可以考虑和bitcoin绑定,比如买下矿主的一个完整block,免转账费,只接收和发出此block之内的bitcoin转账。这样五毛券的安全性和密闭性就可以保障了。总量也明确有限,保证了五毛券可以被炒作的可能。通过刺激社区炒作五毛券,可以使辩论网站持续的获得交易费用。

白内障FAQ

原作于:2008-03-26 http://goldengrape.blogbus.com/logs/17671851.html 有删改。


注意,在网络上搜索到的医学资源并不能代替医生的检查、诊断、治疗和建议。请保持对网络上医疗信息(包括本篇blog)的警惕,这些信息有可能是不正确的,或者不能被正确的理解。比如,大部分人看到“眼底”这个词,会以为是下眼皮内部,但医学中称呼眼底是说眼球内部的视网膜。原因仅仅是因为人们照镜子的时候,多半是站立的,而医生或者解剖学家看眼睛的时候,病人是躺着的。所以,即便我是用了正确的、浅显的词汇来表述,但是我们之间的理解仍然会有差距。

本文适用创作共用协议,欢迎各位眼科同道在修改之后交给病人阅读。 

==== 

* 为什么会得白内障?
年龄。年龄是最重要的因素。我一直认为白内障是生物进化的Bug,是飞面大神故意留下的瑕疵,或者说给眼科医生的礼物。人的晶状体在一生中始终保持生长。但是晶状体是长在晶状体囊里面,被悬韧带悬挂在眼睛内部的。所以,新生长的晶状体细胞没有别的地方去,只有向内部积压,于是里面的密度越来越高,越来越不透光。可以说年纪大了,或多或少都有白内障,只是程度的差别而已。

* 白内障药物治疗有效么?
目前(2011年底),治疗白内障的药物并不能去除白内障,最多只能延缓发展。本身白内障发展也很缓慢,是否用药对病人并没有太大的差别。我一般不建议病人使用治疗白内障的眼药。浪费钱。眼药点多了也不舒服。白内障首选的治疗是手术。至于药物治疗今后是否会有疗效,目前看起来希望还很渺茫,白居易曾经写过诗来记叙白内障的治疗:“案上漫铺龙树论,盒中虚捻决明丸,万般灵药皆无效,金针一拨日当空。”,中药也是没什么作用的,其中的金针一拨说得是“金针拨障”,从印度传入的一种手术方式,不过早已淘汰,我会在另一篇中介绍。

* 白内障什么程度做手术?是否需要等待到成熟?
只要病人觉得白内障造成的视力下降已经影响了正常的生活就可以做手术。现在的手术技术不需要等待到成熟就可以做了。所谓成熟,是晶状体完全混浊,那时候一般基本上已经没什么视力了。很久很久以前,大概要20-40多年以前吧,白内障的手术需要连囊带晶体一起摘除,所以需要等待成熟,这样它们连成了一体。现在那种手术方式早已经被淘汰了。现在常规的方法是超声乳化联合人工晶体植入。从透明的晶体到近成熟的晶体都可以完成,所以晶状体的条件不再是决定手术的因素,而是病人自身的感觉。如果感觉视力已经下降到影响生活就可以手术。如果觉得视力还可以,或者通过配戴眼镜也可以达到比较好的视力,那就可以继续等待。

很奇怪的是,许多其它专科的医生并不知道白内障手术不需要等待成熟。对于眼科手术请咨询眼科医生。

* 有白内障,留着,不做手术会有危险么?
一般白内障进展的速度很缓慢,短期不治疗不会有什么大的变化。成熟以后的白内障可能会引起眼睛内部的发炎,或者可能引起急性闭角型青光眼的发作,这是一种眼睛突然胀痛的眼病,需要立即治疗。一般医疗条件稍好的地区,对自己比较关心的病人,是不会让自己发展到这种程度的。

* 白内障手术有风险么?复杂么?是大手术么?
任何手术都有风险!!注意!任何手术都有风险!!

人的眼睛并不是医生设计生产的,医生并不负责保修。任何,注意是任何,任何手术都不可能保证恢复健康,不可能保证没有危险。只有,注意是只有,只有病人愿意承担手术的风险,医生才可能帮助病人。这跟您把血汗钱交给基金经理没什么区别。

人都是要生病的,人都是要病死的,总有一天您是要死在一位医生手里的。很遗憾,这是事实,毫无例外。除非您没有到医院。

对于白内障手术,或者说对于任何进入眼球内部的手术,最严重的并发生叫做“脉络膜爆发性出血”,又称为“驱逐性出血”,这种出血一旦发生,眼球里面的所有东西可能都会被“驱逐”出来,抢救完了能保住眼球的外壳就不错了。好在这种并发症的可能性非常之小,我还只是听说过,没见过,但愿也别让我碰到,一次这样的出血足以击毁一个普通手术大夫的精神,让他再难以坐到手术显微镜前面。

目前常用的白内障手术治疗方法叫做“超声乳化术”,简称phaco,发音是/feikou/。一般情况下,白内障手术算是眼科一个中等的手术吧。在北京三甲级别的医院里,一定年资的医生是可以完成的。各地的医院条件不同,医生的水平也不同,会有所差别。我以前的文章中说3-4年的医生就会做,后来发现只是极个别的医学院是这样的。有些医院还无力开展超声乳化手术。国内白内障手术的技术水平非常不均,听过赵家良教授讲座时说,我国眼科医生中能够独立完成白内障手术的只有36%,在这些医生中能够完成超声乳化的医生只有33.89%,综合起来能都独立完成白内障超声乳化手术的,只有12%,这个大概是08年的数据,近几年应该会有所增长。顺便说,中国一共只有约2万名眼科医生。

白内障手术,也就是超声乳化手术,现在已经发展得很成熟了。很短的时间就可以完成。合作良好的手术小组一天可以做几十甚至上百台手术。

还有具体的风险,我以后再详述好了。但是如果一个医生向您保证手术100%安全,或者某个药物100%有效,要么是在安慰您,要么是在欺骗您。

* 白内障手术以后视力可以恢复到多少?
对不起,我不知道,也不会告诉您。

我们经常用照相机来比喻眼睛。白内障手术相当于是更换了一个镜头,那么其他镜头如果不好或者胶片有问题,照出来的相片仍然是不清楚的。

* 比如角膜的水肿,手术以后很常见,一般做做热敷几天就能下去。
* 再比如晚期青光眼影响到中心视野,那视力做完了也不会有提高。
* 再比如眼底的病变,特别是黄斑区的病变,就很影响视力。而麻烦的是,一般白内障会使医生难以详细检查眼底,手术以前只能估计眼底的情况,是否真正有问题,需要手术以后才能知道。反过来,如果眼底有毛病,也往往需要同时进行白内障的手术。

还有,“视力”本身是一个非常粗糙的评价。准确地说1.0的视力只是反映了空间频率为30周/度的对比敏感度。而其他空间频率的MTF(调制传递函数)、CSF(对比敏感度)都没有反映。有些病人视力0.8甚至1.0,也要求做白内障,做完以后视力仍然是0.8或者1.0,但是就是觉得舒服,其实就是因为在中低频率的MTF得到了改善。不过对于MTF这种概念,对病人对医生来说都难以解释。

由于手术中人工晶体植入是放置在眼内的,要经过一个天然的愈合过程,所以人工晶体的位置一开始并不很稳定,可能前后有所移动。完全稳定下来是需要1-3个月,所以视力完全稳定下来大概是3个月左右。有些近视的病人,医生为了照顾原先的生活习惯,会给病人预先设定的是300度的近视,但是一开始可能并没有达到这个度数,于是开始的时候没有近视,不戴眼镜的视力可以有1.0,过了一段时间进入了我们预想的度数,不戴眼镜的视力可能只有0.5了,但是看近的能力却提高了。

如果一个人眼底、角膜没有毛病,那么他的最佳矫正视力在做完白内障以后会很好。

* 做手术哪个季节最好
最好的季节就是大家都不想做手术的季节!泱泱中华,人口众多。只要大家稍微想到一块去,就是可怕的人潮。你觉得合适的时间一定是人最多的时间。白内障手术没什么季节的要求,但是很多病人愿意春秋手术,于是造成了两个人为的旺季——3-6月和9-12月。这时候就是排队的季节。

* 人工晶体应该如何选择
人工晶体,是手术中安进眼睛里面,代替天然晶状体的东西。薄薄的一片。相当于更换一个镜头。
人工晶体种类繁多。

1。硬质人工晶体。切口大约是6mm左右,这样的伤口是需要缝线的,那么缝线会造成一定的散光,手术后短期内反应大一些,恢复的时间长一些。硬质晶体的价格大概不到1000元。一部分家庭略困难的患者会选用,还有就是白内障已经近成熟,手术已经无法使用超声乳化,不得不做ECCE手术的病人,因为本身切口已经需要5-6mm了。北京的医疗保险会报销硬质人工晶体的价钱,但医疗保险是保证最低水平的。硬质人工晶体由于需要相对较大的切口,所以手术之中发生出血的风险要高,术后散光和感染的风险也要高。

2。折叠人工晶体。在北京,三甲医院里面大部分(95%以上)的病人会选择这类人工晶体,它是先把人工晶体折叠好,放在特殊的植入器里面,再推到眼球里面展开的,所以切口一般是3mm或者以下,现在已经有适合2.4,2.2甚至1.8mm的手术器械和人工晶体了,这种切口是不需要缝合的,散光也比较小,恢复时间更快一些。大概价格是在1500-3500之间吧。注意,医保报销的时候,不是全部能报销的,一般只给报销硬质人工晶体的价格,超出的部分需要自己掏,在手术前请向医保机构咨询。

3。特殊处理过的人工晶体。对于有些患有特定眼病的患者,可能会需要这种类型的人工晶体,比如肝素表面处理过的人工晶体,这种人工晶体手术以后的炎症反应小很多。这种人工晶体的价格会比常规的折叠人工晶体更贵一些。如果您之前得过什么样的眼病,或者有什么样的全身疾病,在做手术之前不要隐瞒或者遗忘,尽可能详细的告诉医生。

4。双焦点/可调节人工晶体。这类人工晶体的设计目的是为了同时满足看远和看近的要求。前面说的几种人工晶体是做不到的,它们只有一个焦点,看远清楚,看近就要戴老花镜,或者反过来,看近清楚,看远就要戴近视镜。双焦点和可调节人工晶体是否能够达到设计的要求,跟手术与患者自身体质还有很大关系,请咨询手术医生。

双焦点/可调节人工晶体大概的价格要比常规折叠人工晶体贵一倍甚至更多。

* 做白内障手术大概需要多少钱?
以典型的折叠人工晶体为例,花费大概在5000-7000元,手术的主要花费在药品、耗材、人工晶体,手术医生本身的报酬非常少,TMD的医疗制度。 

    * 做完白内障以后还会再得么?
白内障手术会完全去除晶状体,那么白内障就没有地方再得了。但是,有一部分病人,特别是年轻的病人(<60岁),有可能发生“后发障”,这是因为白内障手术把晶状体从晶状体囊里面取出来以后,把人工晶体放置在这个囊袋内,有些病人的囊袋会逐渐纤维化而混浊,如果手术以后几个月到1年出现视力再次下降,记得去医院再检查下,如果是后发障,处理起来非常简单,用激光把囊袋切开就可以了。北京的花费大概160块钱,没有什么痛苦。当然,这也是有风险的。比如激光可能会损伤人工晶体,可能会损伤视网膜之类的。罕见。另外,现在的人工晶体设计中,本身就有防止后发障的设计,现在后发障并不很常见。

* 手术以后需要注意什么?
正常生活。想看什么看什么,电视/书籍/电影/打麻将。。。但是要注意不要劳累,看电视碰到广告就休息,现在的电视广告频率足够了,看书的话过半个小时总该给自己的眼睛有下课时间吧。看电脑最容易忘记时间,给自己上个闹钟,高手的话,安装一个强制休息的软件。

另外,想吃点什么就吃点什么吧,没什么忌口的。

如果手术后短期有眼球的胀痛,偶尔伴有头痛、恶心的感觉,记得去医院看看,急诊。可能是眼压过高,需要及时处理。其他的什么流泪啦/异物感啦/痒痒啦,自己忍着就好了。注意不要受外伤。如果出现视力突然的变化,记得及时就诊复查。

还有,对于老年人,感冒是万恶之源,尽量避免。

假如给我三天黑暗

假如给我三天黑暗 以下的内容,经过删改,已经发布在果壳网 上,转载请注明出处。商业使用请联系果壳网。 ------------------------------ 看到Steed的一篇文章《2012真的会有连续3天地球是黑夜吗?》 辟谣了“科学家终于确定了:2012.12.21地球会有连续3天是黑夜,是地球的换纪时刻。玛雅人�的并不是世界末日,而是" 2012年12月21日的黑夜来临, 12月22日的黎明不�到�"但3天后,差不多是圣诞,白天就会到�! ”的说法。但是作为一名死理性派,我们能够容忍仅仅粉碎一枚谣言吗?我们要算! 出题 - 要求1:找到2012年12月21太阳落山以后连续出现3天黑暗的地点。 - 要求2:如果无法找到满足要求1的城市,则找出2012年某地太阳落山以后连续出现3天黑暗的地点。 工具 地球上最强大的计算器之一:Wolframalpha ,这是iPhone 4S里人工智能Siri幕后的大脑。通过www.wolframalpha.com,我们可以计算很多东西,包括你的各种作业。 下面我将一步一步演示如何解决一个问题的思路和方法。不失一般性,这里只展示了北半球的计算过程,南半球的情况请自己推演。 方法 首先查找2012年的冬至日,冬至这个词不知道怎么说,查字典 ,得到winter solstice,在wolframalpha上查winter solstice in 2012 得到December 21, 2012。考虑到对称性,地球上是不可能有地方满足“要求1:2012年12月21太阳落山以后连续出现3天黑暗的地点”,只能看看2012年有三天极夜的地方是哪里了。 3是个好数字,可以对称的,冬至日算1天,之前之后各自1天,所以就是要找到2012年12月21日,20日,22日三天是极夜,而在2012年12月19日和23日有日出的地方。要获得纬度与日出时间之间的关系,可以通过立体解析几何的方法推导公式,不过还需要考虑到地球绕太阳自转的轨道,想想觉得太复杂了。还是先站在巨人的肩膀上,偷看巨人的答卷好了。 仍然使用wolframalpha,这里需要引入函数式的思维方式,就是说,不一定了解计算过程,只要知道输入和输出即可。 首先测试一下输入是否符合规范,搜索日出sunrise ,Wolframalpha给出了今天北京的日出时间,再查查sunrise in dec 21,2012,也有输出是7:34am。这样很好。 再试试不同地点的输入,比如查查莫斯科sunrise in Moscow in dec 21,2012,他们8:59点才天亮啊。由于需要经纬度,所以要测试下带有经纬度的输入,先查查Moscow latitude and longitude得到55° 45'N, 37° 37' 12"E,那么sunrise at 55° 45'N, 37° 37' 12"E in dec 21,2012呢?成功输出。 考虑到北极圈是北纬67.5度,说明冬至日高于此纬度的一定是极夜,看看没有日出的输出是怎样的?查查sunrise at 70N, 0E in dec 21,2012 得到(never rises) 这样一个解决问题的函数基本确定了。它的输入格式是"sunrise at 纬度,经度 in dec 21,2012",输出是日出时间或者(never rises)。于是找到3天黑暗的问题重述为: - sunrise at 纬度,经度 in dec 19,2012,有日出, - sunrise at 纬度,经度 in dec 20,2012,无日出, - sunrise at 纬度,经度 in dec 22,2012,无日出, - sunrise at 纬度,经度 in dec 23,2012,有日出。 考虑到北极圈,从67.5N开始找起,发现4个日期点都是极夜。而北纬67.4度满足要求: - 2012年12月19日,北纬67.4度,东经0度,日出11:51 - 2012年12月20日,北纬67.4度,东经0度,无日出 - 2012年12月22日,北纬67.4度,东经0度,无日出 - 2012年12月23日,北纬67.4度,东经0度,日出11:53 再往下0.1个纬度找找呢?北纬67.3度在2012年12月23日的日出时间是11:36am,看来就是在67.4度附近了。纬度不低于北纬67.3度,不高于67.5度。 在wolframalpha上查到地球的平均半径Earth average radius是6367.5 km,那么0.1个纬度平均是6367.5km *(0.1* Pi/180)=11.113km。看来我们的范围可以限定在一个宽度为22km左右的带内。已经足够高了。 刚才一直使用的是东经0度,下面再测试不同经度。注意小心国际日期变更线。选择180°W,90°W,0°E,90°E和180°E分别计算四个日期点。结果都是一样的,赞!这可是一个长度为6367.5km *cos(67.4/180*pi)=2447km,宽度仅为22km的区域啊。 结果 在北纬67.3度到67.5度之间这个宽度为22km长度为2447km的区域内,有一些地区将会经历且只经历3天极夜。 讨论拆开黑箱 太阳入射光与地球赤道平面之间的角度,叫做太阳的赤纬(the declination of the Sun),记做δ�。太阳赤纬一年中随着季节而变化,夏至时是+23°27',冬至时为-23°27'。春分和秋分时为0°。 凌� at the Chinese Wikipedia [GFDL or CC-BY-SA-3.0 ], from Wikimedia Commons 由于地球绕太阳运转的轨道并不规则,要计算太阳的位置很麻烦,于是人们推出一个模型,叫做平太阳。地球绕平太阳以圆形的轨道匀速运动,转一圈是365天。在1969年Copper提出一个公式用来计算太阳赤纬角: δ= 23.45 * sin(2*pi*(284+n)/365) 式中的n是日数,1月1日为n=1,对于闰年n的计算还要再复杂些。 但这个模型太过于简洁,地球毕竟是绕着真太阳在运转。于是真实情况和平太阳的模型是有差别的,历史数据 可以通过测量获得。二者之间的误差可以通过实测数据与模型预测数据的差值求出,然后通过傅立叶变换进行外推拟合。通过wolframalpha也可以随时查询当前的 太阳赤纬。 1971年Spencer,1976年Stine,1985年Bourges也提出过公式进行拟合,图中显示的是杜春旭等 用2009年的数据对各种太阳赤纬的算法进行了误差比较。比较准确的是Bourges的方法: δ= 0.3723+ 23.2567sin(wt) + 0.1149sin(2wt)-0.1712sin(3wt) - 0.7580cos(wt)+ 0.3656cos(2wt) + 0.0201cos(3wt) 其中 - w=360/365.2422 - t=n-1-n0 - n0=78.801+ [0.2422( year-1969)]- INT[0.25(year-1969)] 如果一个地方纬度是L,那么当地正午时分的太阳高度角e=L+δ,如果e上,转载请注明出处。商业使用请联系果壳网。 ------------------------------ 以下的部分属于继续吐槽,与果壳网的文章没有关系。 阳性科普 好吧,我承认计算极夜长短这个题目很无聊。我是想借此推广一下“阳性科普”,这只是个概念,这个概念也没有清晰的定义。我个人认为的“阳性科普”,是指多讲一些“世界是什么样子的”,相对而言,阴性科普,就是讲“世界不是什么样子的”。每一个科学传播网站都面临一个诱惑或者我认为的陷阱,就是与不科学的观点辩论和斗争。诚然,这是科普的重要组成部分,但是,在一个有相当多的人类仍然相信一个人可以把海水分开,可以死后复活的星球上,阴性科普是永远不可能“胜利”的,而且时间长久以后,会让我觉得有一点点的厌烦。 因此,我也在自己的twitter和微博里:“求各种科普贴,建议各位推友多做一些各自领域的阳性科普,医推们复习内外妇儿,程序员们讲解些精妙的算法,五毛们讲解马克思主义经典著作,公知们从自由主义解释起,文科生用平直中文说说,理科生不带公式说说……” 医学其实是下游技术,只有上游技术有些进展以后,才可能有所突破,还有就是上游的技术要“流”到下游,被医学界所认知以后,才能用到医学上。我还真是很需要各种领域的科普的。当一个概念科普给我,我还是能够迅速查找相关的文献进行学习。比如上文中,“赤纬”是Steed告诉我的,之前我真的不知道这个概念,不过一旦听说了找到相应的学习资料并非难事。非我技术专业之内的学问,查查维基百科,中文综述,中文文献和博士论文之类,也可以了解大概。确有必要的话,按图索骥找到相应的经典英文文献,也能省不少事情。 函数式的思维方式 上文中的计算方式,是直接调用的wolframalpha。函数式的思维方式,就是我前面所说的“站在巨人的肩膀上,偷看巨人的答案”。把大象放进冰箱需要三步,1)打开冰箱门,2)把大象放进去,3)关上冰箱门。对于解决问题而言,如果每一步都有现成的解决方案,其实并无必要深入到细节中去,即使需要深入到细节,也是逐层次的进入。对于一个过程,了解它的输入、输出,就可以开始应用了。如果原理再了解一些,则可以更准确和灵活的使用。 医学又是如此,绝大多数医生不知道为什么测血压时脉搏的声音会出现变化,但是大家只是知道,if 脉搏声音出现 then 所指压力是收缩压,if 脉搏声音消失 then 所指压力是舒张压。这就是个函数,F(脉搏声音)=血压。没有医生会在意这个函数与雷诺数之间的关系。 在数学软件出现以后,更可以进行这种函数式的解决问题了。我高二时参加数学建模竞赛的培训,老师列出了一黑板矩阵以后,说取个偏导,然后台下就都偏倒了,一片哀号,这可怎么解啊。那个老师很淡定的说,交给计算机啊,从那以后我才开始接触mathematica,好像当时还是运行在386上的4.0版本,由于缺个协处理器,貌似还有一些东西计算不了。再后来大学学点MatLab,更坚定了我这种思维方式,边缘检测?调函数;傅立叶变换?调函数…… 站在巨人肩膀上,我以为就是这样子做。 参考文献 1. Table of the Declination of the Sun: Mean Value for the Four Years of a Leap-Year Cycle 2. 一种高精度太阳位置算法

生物智能提升计划

原写于:星期日, 二月 19, 2006。今天看完《猩球崛起》,想起来翻出来

生物智能提升计划(1):楔子

很多人不相信进化论,尤其是不相信从猿到人的这一步是进化来的,不相信智能是进化来的。的确,这一步的跨度很大,以至于几百几千万年过去了,只有人类跨过了这一步。

与进化论相对的是特创论,不论是什么,神、外星人……甚至是蛇,反正人类接受了什么帮助,获得了人的智慧。

《生物智能提升计划》(BI2P)就是一个类似于特创论的计划。我们将利用某种方式,提升某个物种的智能,使之能够获得与人类相似的智能。

我知道这是可行的。

生物智能提示计划(2):禁忌


虽然不愿承认,但是实际的情况就是这样,如果某个研究与N个人的信仰相抵触,就有可能受到干扰,受干扰的可能性与程度和N呈正相关。

那么,通过科学方法提升其他生物物种的智能,是否存在这样的宗教禁忌?

不存宗教在禁忌的理由:

  • 没有听说人工智能研究触犯神学的禁忌
  • 神赋予人类管理动物(生物)的权利
  • 没有听说任何禁止人类赋予其他物种智能的文献
  • 流传着众多对动物拟人化的认可,比如"动物权利"等
存在宗教禁忌的理由:

  • 人类获得分辨善恶的能力已经是原罪,何况将这种能力再传授给其他物种

生物智能提升计划(3):基础

请事先按照顺序阅读《自私的基因》和《迷米机器》,并应当对遗传算法有一个初步的了解。

假设智能就是足够复杂的迷米复合体。(仅仅是模糊的概念)对于一个可以进行信息交换的物种,都可以认为每一个个体是一个迷米机器,具有初步的复制和突变能力。那么如果在种群中引入一个或一组为人类所设计和/或控制迷米机器,人工增加该物种的迷米复杂性,有可能会提高在智能方面的生存压,选择出更复杂的迷米机器。

==2011update==

生物智能提升计划(4):可行方案

1. 城市流浪猫的符号识别
利用Arduino控制LED和投喂猫粮的机器,训练城市流浪猫的符号识别能力。

2. 蜜蜂的meme压力
利用摄像头捕捉蜜蜂舞蹈运动,通过openCV分析运动,在显示器上给予输出。可能造成meme压力的输出有:
a) 原样复制
b) 常量舞蹈输出
c) 人工编码的舞蹈