浅谈便携多功能工具选购——瑞士军刀与莱泽曼钳的对比

了解不深,仅从大家最耳熟能详的瑞士军刀与莱泽曼多功能钳的对比来谈谈。

这两种工具的特点都是小体积下容纳多种功能。开门见山,先讲重点。

便携多功能工具的使用需求分析

概而言之,就实用来讲,多功能工具适合低频率、没有固定场所的使用。它们的长处,简单来说有以下几方面,如果你有以下几方面的需求,可以考虑买一把:

  1. 不想、不方便或不能携带专业工具箱的场合(便携性要求:中;使用频率:低)
    1. 不想带:野餐、旅游的时候不想带重的东西
    2. 不方便带:救生、应急工具包体积小巧,塞不下
    3. 不能带:刚搬家到一个新地方还没有买工具
  2. 需要随身携带一些高频常用小工具(便携性要求:高;使用频率:高)

    类似女性常带的梳妆盒,或者饮酒者钥匙上拴的开瓶器,有些人群会时时用到一些小工具。

  3. 集成一些单独购买一把专用工具不划算的小工具(便携性要求:低;使用频率:低)

    1. 一类是不常用但是用的时候必须有的工具,除了专用工具就只好用瑞刀,否则没有替代。

      代表是瑞士军刀中的皮带钻孔锥,想钻出漂亮的孔用剪刀肯定是不行的,但是这个功能一年也用不了几回。
      这个类别可以很大。比如说对于从不做木活的人,就不会买木锯。偶尔要用一下当然不会买把新锯子。

    2. 一类是虽然有替代但是替代不好用的

      比如说瑞刀中的小钳子在处理一些精细活的时候非常方便,夹指甲毛刺都不在话下。但是小钳子没有大钳子常见,单独买一把使用率也不高。

    3. 一类是组合工具中的小部件工具性价比明显好的工具

      比如瑞士军刀中的指甲锉的手感远好于任何便宜指甲锉,但花十美元买把好的钢指甲锉不是每个人都能干得出来。

  4. 装酷,收藏

    并不以实用为目的的购买是很多的。不能否认,对于任何一个喜欢工具的人,精心设计制造的工具总是有一种魅力

瑞士军刀、莱泽曼多功能钳这样的便携多功能工具的短处也是相当明显的:

  • 工作效率上不如专业工具

    所以,对于家里或者工作场所进行的高频率工具使用,便携多功能工具是不适合的。

    很多工作是需要不止一把工具的,这种情况下干完一个工序就把刀收起,重新打开另一个工具不嫌麻烦吗?
    如果一把瑞士军刀的一个组件由于天天使用磨损了,难道要整把刀都换掉吗?
    更何况很多工具在使用上完全没有专业工具好用

  • 部分多功能工具属于管制刀具,携带不方便

    几乎所有带小刀功能的多功能工具坐飞机的时候都只能托运
    带锁的刀在中国连地铁都进不了,只能随手揣着别让安检发现

  • 主流款式的多功能工具也不是真正的武器和野外工具

    (大尺寸型号除外)

瑞士军刀的选购

瑞士军刀作为此类工具的鼻祖和最畅销者,下面简单谈谈它的用途和选购。

现在的主流款式瑞士军刀是发展自维氏的军官刀而不是士兵刀。本质上来说,瑞士军刀是一把野餐刀。即使是它还仅是军刀的年代,它也不是作战用刀,而是方便士兵和军官吃饭穿衣用的。其最基本最古老的款式「标准」(Spartan)的所有功能都是为野餐设计的:大刀切面包、小刀开包装、开瓶器开罐器拔塞钻的用途也都很明显。

由上可见,野餐的确也是瑞士军刀最重要的场合:如果出门野餐要背一口袋的开瓶器开罐器拔塞钻的话确实很烦人。乘坐交通工具时吃饭也是它的重要用途,无怪乎 911 后航空随身行李禁带一切刀具后严重影响了瑞士军刀的销量。不过飞机上它确实也没有什么用。

瑞士军刀原有两个生产商,维氏(Victorinox)和威戈(Wenger)。后来威戈被维氏收购,原威戈设计的产品仍然在生产,尺寸和设计传统与维氏有些不同。目前只能通过产地、尺寸、特色设计来判断军刀是维氏传统设计还是威戈传统设计。

维氏(Victorinox)传统瑞士军刀

维氏瑞士军刀主要有三种尺寸(非主流尺寸不算):58mm 91mm 111mm。

58mm 尺寸定位是拴在钥匙上的工具,只能用手指捏握,非常小巧,功能有限。主要覆盖前述第 2 类需求。对于第 3 类需求中的使用频率极低的需求,则不如购买更大尺寸的款式。这类的定位很明确:只包括便携而且常用的功能。

91mm 是最常见的瑞刀,长短正好让手掌抓握,主刀没有锁定,刀尖角度大不能刺人,所以不是管制刀具。

  • 对于有第 3 类需求的,推荐买一把工匠作为一个「非常用工具库」样的存在,不要求便携了。瑞士冠军多出来的放大镜、刮鳞器等功能需要的人不多,如果确实需要还是应该买这把。
  • 对于有第 2 类需求的,91mm 的刀身还是可以放在口袋中的。去官网根据自己需要的日常工具组合勾选后就可以找到自己想要的型号。
  • 对于有第 1 类需求的,根据需求决定。比如说野餐是不需要多少功能的;但如果已经买了一把「工匠」,自然没有必然再买一把「标准」。

111mm 的瑞刀主刀带锁定,多数款式刀尖尖锐,属于管制刀具,可以承担一定强度的野外求生使用。这系列的瑞刀是最具有实用价值的,不再是非日用工具。当然价格也不菲。无论考虑到刀刃长度还是主刀的锁定,在中国都属于管制刀具。

对于第 3 类需求,买大尺寸的瑞刀价格不划算。对于第 2 类需求,这类瑞刀体积大便携性很差。
所以它主要是面对第 1 类需求的:户外运动、打猎钓鱼、汽车救生工具包等

综上,对于大部分人,推荐如下:

  • 一把「工匠」可以让你少买很多非常用工具
  • 想随身带个小刀可选 58mm 系列,对工具性能有要求就上 91mm,但不要选太厚的款,根据自己需求的功能选具体款。
  • 有户外运动需求可以选 111mm 系列

威戈(Wenger)传统瑞士军刀

威戈的刀主要是 85mm 和 120mm 两种尺寸。现在商标已改成维氏,主要可见的区别是刀柄上印有 made in delemont,产地与维氏军刀不同。目前在售的主要是 85mm 的 evolution 和 evogrip 系列,手柄全是人体工学设计。可参考前文维氏 91mm 刀的定位购买,但部分款式有锁,想买有锁的中小尺寸军刀的话可以看一眼。和维氏军刀不同的传统特点有:剪刀是齿刃、钳子和剪刀的弹簧设计与维氏不同,更加结实耐用。

莱泽曼(Leatherman)多功能钳

莱泽曼的产品同样有大中小之分。但大中尺寸做得比较多,外型粗犷,作为真正干活的工具使用也比瑞士军刀更好用。然而此种多功能工具注定不能成为主力干活工具,也无怪乎莱泽曼的销量远远不如瑞士军刀,盖因其市场定位有一定偏差。对于多功能工具需求最大的野餐郊游场合,是带一把瑞士军刀还是一把多功能钳?我想大多数人都不会带钳子的。虽然钳子在居家生活中的确非常有用。真要天天干活的时候,大部分人会选择专业工具。

莱泽曼的小型工具不是钳子而是剪刀或者小刀,与瑞士军刀 58mm 款的定位相当,值得考虑。但外观不大讨女性用户的喜欢。

对于莱泽曼的主流型号,可覆盖上述需求的 1.2、1.3 和第 3 类。但是莱泽曼高端型号是比「瑞士冠军」贵的,更看重价格还是更看重实用就看个人选择了。其 Wingman 系列价格便宜,可以作为瑞刀「工匠」的一个可选替代。但我认为莱泽曼的对手还是 111mm 的瑞刀。其国内价格相当不亲民,美国价格则比较实惠。

选购建议

综合以上,我给出的最终建议(只考虑实用)是:

作为「非常用工具箱」,看重价格不在乎功能数量的选莱泽曼 Wingman,它便宜但功能少;价格功能外观都比较平衡的,选维氏「工匠」;看重性能和功能不在乎价格的,选 111mm 的维氏「工作冠军」或莱泽曼的 Wave。这里还有点小区别:如果你已经有一个装备了自己常用工具的工具箱,瑞士军刀更好些;如果你完全不想再买工具箱,还是莱泽曼更实用。至少,瑞士军刀的钳子干不了大部分钳子能干的事,莱泽曼的钳子还是可以干一些活的,而钳子在生活中非常有用;莱泽曼 Wave 的可插拔螺丝刀也可以让你少买组螺丝刀组合。瑞士军刀的螺丝刀只能应应急,莱泽曼是可以干活的。

作为随身工具,根据喜好的工具种类选择莱泽曼或瑞士军刀的中小尺寸产品。但莱泽曼的中尺寸产品便携性要差些。原威戈的带锁定和人体工学握把的 85mm 小刀也是可以考虑的一个独特系列。适合「出门兜里揣把刀」的人。

没有「非常用工具箱」需求的,那么可以为野餐买把「攀登者」或类似款式的瑞士军刀,根据自己需要的功能来选择。

如果有户外运动需求,选择瑞士军刀 111mm 系列或莱泽曼的大中号钳子。

在美国买床需要搞清的几个名词

本文供初到美国的中国人买床和床垫时参考。

frame
最简单的就是一个八字形框支在地上,中间什么也没有。这种frame是不可以直接放床垫的,必须中间夹一层,否则床垫会塌。而如果frame本身已经是铁网或者上面有木板,那就可以直接放床垫。
foundation
介于frame和床垫之间的东西。有的和 frame 合二为一了,但在美国分开的更常见。独立的一个foundation的话,最简单的就是一排木板或者竹板;更复杂的一般就是box spring,顾名思义就是它是一个硬的弹簧层。
mattress
主流有几种:弹簧的、foam(海绵)、乳胶gel的和复合型的。纯弹簧的mattress最好再加上一层mattress pad,否则睡得不舒服。mattress pad就是放在床垫上的一层东西,以海绵为最常见。但很多复合型床垫已经在弹簧上面放了几层海绵、乳胶等物,那么就可以不加mattress pad。当然对于这种 mattress 也有人加,主要目的是买个防水的东西防止床垫长霉。有的床垫在海绵上面还有一层quilt。这个东西也可以另买。如果觉得床垫本身的纹路直接加床单睡着不舒服的话,可以买一层。

标准的美国床是 frame + foundation + mattress 三层。如果 mattress 比较硬,上面再加一层 mattress pad。

中国人一般觉得没有必要用 foundation 这种东西。要想省钱的话,就有几种方案

  • 买一个有铁丝网或者有木板的 frame (不能买八字形的 frame),直接在上面加个 mattress。这样的优点是床下还可以放东西。
  • 买一个 foundation 直接放地上,上面加个 mattress。Box spring 有点贵,很少有中国学生买这东西;而如果就买一片木板子,那和没买也差不多。所以很少有中国学生用这种方案。
  • 最省钱的当然就是直接把 mattress 放地上,如果不怕潮的话。住在二楼的话也不是不行。

锻炼后肌肉酸痛的原因与规避方法

以下问答基于英文维基的 DOMS (delayed onset muscle soreness) 条目并掺入了我自己的理解:

  1. 想锻炼长肉就一定会第二天疼吗?

    不是。

    DOMS 是肌肉在离心收缩(肌肉收缩时反而被外力强迫延长,肌肉收缩力量不足以抗衡外力)运动时受到的机械损伤所致。当然,离心收缩不代表一定会受伤,但向心收缩几乎不会受伤。

    举例来说,俯卧撑在向上撑起时,胸大肌和肱三头肌收缩并缩短;但在向下回落时,胸大肌和肱三头肌收缩但长度被迫延长。向下回落时即是离心收缩,容易在锻炼后产生疼痛。如果向上撑到半截就力竭倒下,不消两三下,第二天包你疼。

    所以,选择合适的运动可以完全避免这种疼痛。比如说,像游泳这样的运动不会出现离心收缩。游泳时使一分力,躯体就能移动一点。因而游泳后不容易有 DOMS。静力锻炼后遇到这种疼痛的概率也比较低。而跑步、俯卧撑这些会出现离心收缩的运动,较容易发生疼痛。

    如果游泳和静力训练还疼,那有可能是非常缺乏锻炼。与离心收缩不同,向心收缩时如果产生此类伤痛,可能源于一根肌纤维内部不均匀,较强的部分把较弱的部分拉坏了。这对于经常锻炼,肌肉发展较均衡的人来说,是不太可能发生的。离心收缩时后的疼痛很难避免,而避免向心收缩后的疼痛则相对容易。

  2. 疼代表会长肉吗?

    不是。不疼也可以刺激肌肉生长。

    但是这种疼痛是否会长肉更快,我不清楚。

  3. 如何减少和避免这种疼痛?

    首先可以选择静力训练和游泳。它们不会产生离心收缩。

    如果选择了会产生这种疼痛的锻炼,可以循序渐进,逐渐加量。有过体验的朋友都知道,疼痛之后如果休息充分,下次再进行同样的锻炼时就不会产生同样的疼痛。这并不是因为你的肌肉力量已经变强了——它长得没有那么快——而只是你的肌肉有一种应激机制使得下次不会这么疼。但我们可以利用这一点减少疼痛。头两次锻炼的疼痛后,休息几天直到疼痛几乎完全消失(如果在疼痛未消失时继续锻炼,显然第三四次会更疼),以后的锻炼疼痛会大大减轻。

    不锻炼到肌肉力量几乎衰竭、动作颤抖的程度,也可以减少损伤和疼痛。

    使用合适的科学设计的运动用压力衣物,如压缩裤,弹力袜等可减少肌肉颤抖并减少损伤。

    热身和拉伸已被证明对症状没有帮助,相反,过分拉伸会加剧肌纤维的撕裂,使疼痛加剧,更不容易复原。

    运动后冲热水澡、蒸柔拿等促进血液流动的活动都有助于恢复。继续锻炼可使疼痛暂时消失,但长远看是否可使症状更快恢复则实验意见不一。

以下内容整理翻译自英文维基的 DOMS (delayed onset muscle soreness) 条目,未按原文顺序,但基本忠于原文。

有过锻炼经历的人都知道锻炼之后两三天肌肉会疼痛。这种被称为 DOMS 的症状通常在锻炼结束后 24 到 72 小时最为显著,一周之后消失。静息时通常不疼,发力或拉伸、压迫时疼痛。注意,它与锻炼后立刻发生的急性疼痛的原因不同。再次锻炼时疼痛加剧,但开始锻炼不长时间后疼痛暂时消失。 

DOMS源于肌肉在离心收缩(肌肉收缩时反而被外力强迫延长)运动时受到的损伤。肌肉正常向心收缩(肌肉收缩时长度缩短)运动几乎不会出现 DOMS,即使是静力运动,出现 DOMS 的机率也会大大降低。 

一个广泛流传的误解是,这种延后疼痛源于肌肉的乳酸堆积。这种理论早就被抛弃了,因为无论在理论还是实践上它都不能成立。现在广为接受的理论肇始于1902年,由 Theodore Hough 提出。他的基本意见是,这种疼痛是一种肌肉损伤,是在锻炼中发生的肌纤维的细小断裂。之后更多的实验和更多细节被补充到理论当中。比如酶流理论认为在损伤之后发生了肌浆网的钙离子泄露并阻碍了细胞代谢。 

乳酸堆积理论漏洞百出:首先乳酸堆积无法解释为何只有离心收缩运动才会集中出现 DOMS;其次乳酸堆积一般 1 小时内就代谢完毕。 

重复锻炼效应:肌肉存在一种应激保护机制,使得在初次疼痛之后,肌肉会迅速适应这个强度的锻炼,再次出现的疼痛程度会大大减轻。这种效应不仅能减少肌肉的疼痛,也减少锻炼后肌肉损伤的其它症状,如肿胀、力量减小,甚至没有被锻炼的肌肉也会受到一定程度的保护。这种保护效应的效果不同情况下不一样,但一般可以持续几周时间,一年之后则完全无法检测到。第一次锻炼的强度不需要有以后锻炼强度那么大就可以提供相当的保护效应,比如说,40% 强度的锻炼所提供的保护效应就可以减少 100% 强度锻炼的 20%-60% 的肌损伤。这种保护效应甚至只需要两次锻炼就可以建立。

驳施一公“大学不该谈就业”

施一公先生不久前发表言论称,大学不应该谈就业。见人民网观察者网报道。我尊重施一公先生,但我对他这番观点完全不能赞同。

施一公本文,只有一点算是说对了:我国的基础理科水平非常差。可是,这是一个任何有点对中国现实的了解的人都知道的事情,根本不需要施先生去说。一个连汽车发动机都造不出来的国家,其科研水平已经是从基础理科到应用科学到工程技术到转化应用全面烂透了。
至于如何解决这个问题呢?施先生给的回答,纯粹是杮子专拣软的捏,专拣不存在的问题说。

比如说,施先生给出的第一个解答竟然是:国家不应该要求每个大学都就业引导。
这个问题我们分两部分回答:首先,国家应不应该要求大学谈就业?大学拿的国家的钱,出资人有没有权利要求大学?显然是有的。美国的大学拿了州政府的钱,就必须给少数族裔一定比例录取,否则就没有拨款。需要商量的只是,政府对大学做什么样的要求,对于全体国民来说是较为有利的?这种要求以何种方式来体现?中国现在需要引导大学生就业,这是毫无疑问的。争议只在于:怎样引导?在哪些大学里引导?
于是我们落到第二个问题:国家到底有没有对北大清华这样的学校用就业来考核?施先生是哪只眼睛看见国家要求北大清华的学生必须就业了?是学生毕业包分配呢?还是学生不就业就扣施先生的工资,扣施先生的科研经费,不让施先生做教授?还是大学的教学评估里有就业这一项?
至于下面二三流大学,如果学生就业率不理想,是否会影响国家的拨款,我不知道。但是老实说,中国目前的现状根本不需要那么多人去做基础理科研究。这些二三流大学如果滥招文理科学生,才是对社会和学生的不负责任。

其实施先生心里清楚得很,现在学生进大学就想就业,根本不是因为国家给每个新生打了一通电话:你们一定要好好就业报效祖国!根本原因是整个社会,尤其体现在学生的父母同辈,对学生的就业期望。
施先生如果不明白这点,也就不会在电视上大谈生物专业就业前途多么光明了。

可惜,把学生都想就业,说成是国家“引导”的结果,这是在捏造不存在的问题;诓骗学生说生物好就业,是无中生有。施先生为什么不能老实点说话呢?

至于施先生为了支持自己的高论,竟然说大学里从来就不应该谈就业,说出“堂堂清华大学都要引导学生去就业”这种无知的话。那么美国各大学的就业咨询中心难道都是摆设?难道大学应该把所有校招的企业都轰出去?施先生所在的清华大学,是以工科为主的大学。一个工科学生,不谈就业,那还要谈什么?地球人都知道,企业的工程技术研发水平一般是超过同时代同领域的大学的研究水平的。一个研究型工科大学,为什么不应该引导学生适应未来的研究型工作岗位?难道要所有的工科学生都挤破头去大学做二流研究?真是滑天下之大稽。

施先生的第二个归罪点是国家鼓励研究成果转化。我不否认目前中国做得是有点过头,但施先生竟然把矛头指向鼓励教授创办企业,真不知道施先生能不能分得清楚什么叫“鼓励”,什么叫“要求”。
所谓“鼓励”,是指科学家如果自己希望创办企业,大学和国家会给予各种便利。这么好的事,怎么到施先生嘴里就成了坏事了呢?
一个教授自信自己有能力办企业,施先生凭什么对别人的自由指手画脚?
2020年更新:后来看新闻,施先生自己也开始办企业了。可见人都是会变的。

至于中国科研那些更为严重的问题,施先生为什么不说呢?比如说,唯论文是举的规则,施先生怎么不提呢?因为施先生自己就是最喜欢抢发paper手速的。
为什么现在我国总在谈“加强转化”?因为我国工程研究的滞后已经直接影响我国经济的下一步发展。所以目前对应用研究的投入大大多于基础研究。施先生避而不谈这点,不要求国家将基础与应用研究分开规划,却非要说不该要求成果转化。试问,一个应用研究,不转化,干什么吃呢?因为施先生自己就经常给自己的研究吹出一堆应用前景来骗取国家经费。施先生深知,如果将基础与应用研究完全割开,基础研究的经费就会大大减少。
教授为什么要办企业?因为教授工资低啊,物质待遇太有诱惑力啊!施先生自己拿着清华大学给的前所未有的高薪,却嘲笑别的需要找饭吃的同仁,这太不厚道了。

至于施先生对于大学的定位,恕我不能同意施先生的意见。大学的第一目标当然不是就业,但也不是培养什么“行业精英国家领袖”。大学是培养人成为一个更完整的人的。就业也好,做科研也好,领导国家也好,都是次要目标。

为什么要支持电子书破解DRM

DRM是邪恶的。虽然Richard Stallman的很多观点颇为偏激,但就这一点来说,我同意他。

当你买了一本纸书,这本书就永远是你的。你不必担心出版商是否倒闭,反正书已经到手了。而DRM保护的电子书则不同。如果服务提供商倒闭了,你又没有破解电子书的手段,那么你的帐户中购买的电子书就通通化为乌有。除了提供商,没有人知道这些书籍到底是怎么加密的。待到原有的阅读软件已经无法在新系统上运行,原有的硬件已经老旧无法使用,你就永远和你心爱的书们告别了。
当上级机构要求销毁这本书,或者出版商觉得不合适而希望停印,你仍然可以保有你的纸书。没有任何人可以从你手里抢走。有DRM的电子书则不同,你只能乖乖在特定软件和特定硬件上查看。
在亚马逊的条款中,电子书属于亚马逊,他们可以不打招呼就修改或删除你设备里的电子书——虽然上次这样的事件之后,亚马逊已道歉并保证不会再出此事。

在电子书流行之前,音乐和视频大概是最普遍应用DRM技术的行业。DRM和反DRM的斗争也从来没有消失过。音乐电影的DRM技术只是希图保护唱片商在唱片时代的利益而已——想复制一张黑胶唱片而不损失音质是很困难的事情,磁带亦然。因此,想要多份拷贝,就只能多买几张唱片。虽然DRM技术确实限制了消费者的自由——凭什么我就必须用光驱看电影而不能拷到硬盘里!而电子书的DRM不同,与纸书相比,它严重剥夺了消费者的权利。

既然DRM限制的电子书较之纸书少了这么多自由,让消费者无端承受书籍化为乌有的风险,它又有什么脸面卖如今这种价格呢?这种风险当然是体现在价格上的。就现在来说,当然大的电子书出版商的价格就贵,小商家就便宜——因为小商家更可能倒闭。但我以为,还远远不够。
电子书已然没有纸、墨、印刷的成本,排版率多粗劣,发行库存成本几近于零。这已经去掉纸书一大半的成本。保持纸书的利润,也可以比现在的电子书再便宜许多,更何况还需要承担无谓的书籍损失的风险呢?
如果一种电子书服务的DRM不能被破解,我不会愿意使用它。即使使用,我不会愿意付出超过纸书1/10的价格,因为它不值。

传统纸质出版行业的死亡是不远的事情,电子书的大行其道是必然的。然而DRM这一邪恶的技术,必将被众爱书人所抵制。

如何解决Windows下R不能安装package的问题

Update in Feb 2020:
增加了 Windows 10
此外,此问题在新版 R 中不一定还有,因为安装包可能已经修复了这个问题。

在Win10/Win7/Vista下如果使用标准用户来执行R,常常在试图安装package的时候提示无法写入,从而导致安装失败。

原因:
R默认安装在C:\Program Files目录,安装的package也存放在C:\Program Files\R\R-2.15.1\library目录下。在Win7/Vista中,C:\Program Files目录是一个受系统保护的目录,Users组只有读取和执行的权限,没有写入权限。为了使旧程序正常运作,Windows会将尝试写入此目录的操作重定向到C:\Users\User\AppData\Local目录下。但是R不支持此重定向(反正它在尝试写入Program Files失败之后,确实问过我要不要把package放到My Documents里,成功写入到My Documents却未成功加载package,后者可能是因为——Win7对注册表也有保护,普通用户下禁止写入HKLM,而重定向到HKCU)

解决方法:

方法一:对于不嫌麻烦的人来说,可以每次启动R的时候都使用管理员权限,这样想干啥就干啥。可以右键R,属性-兼容性选项卡,勾选使用管理员权限运行。

方法二:上述方法有两个讨厌之处:第一,对一个像R这样的普通应用程序赋予管理员权限是不安全的;第二,每次启动R还必须同意授予管理员权限(如果你没有把UAC关掉的话)。第二个方法相对来说一劳永逸:更改library目录的权限。

右键C:\Program Files\R\R-2.15.1\library目录,属性-安全-编辑,对Users组添加“写入”权限,从此就不用担心R无法安装package了。

使python代码兼容不同操作系统的文件路径

原标题:Python下跨平台操作文件路径

众所周知,Windows 下的路径分隔符为反斜杠”\”,而UNIX-like系统下的路径分隔符为正斜杠”/”,这常导致代码跨平台移植时的问题。
python 设计为一门跨平台的语言,当然可以轻松解决此问题。

首先,python 在不同平台下都可以正确识别以正斜杠为分隔符的路径。如果在程序中只用到程序中预置的路径字符串(比如说指定库的位置),而不涉及从系统获取文件路径,则只要将路径写为正斜杠分隔路径,代码即可跨平台。

但是如果需要使用 os.path.abspath() os.walk() 等函数获取路径,python 返回的路径字符串会是操作系统默认格式的路径字符串。这时的解决方法主要有:
在需要拼接、查找路径分隔符的地方,使用os.path.sep来代替显式的’/’或’\’,该变量依平台不同而不同。
当然这样写会比较啰嗦,本来只需要a+'/'+b+'/'+c就可以的地方,现在就需要写成a+os.path.sep+b+os.path.sep+c了。本来直接filename.split('/')就可以,现在就得写成filename.split(os.path.sep)
所以,对于这些操作,使用os.path的各种内置函数来操作,会简洁一些,同时也增加代码的可阅读性。比如说,前面的a+'/'+b+'/'+c就可以写成os.path.join(a,b,c)。相关操作还有:os.path.split()

F3507G折腾记

淘宝上搞了一个 Ericsson F3507g,于是我的小黑现在有 WCDMA 和 GPS 支持了

开门见山,对于同样使用 F3507G 正在寻求解决方案的同学,本文可能冗长,包含的最有用的信息均已总结在文章末尾,可以直接跳到倒数第二段。

拿到之后,立刻动手开拆。之前已经打印了一份 X200 Hardware Maintenance Manual 备查。

轻车熟路地拆去键盘、掌托,便露出 mini PCIE 插槽。很久没拆开,已经落满灰。小心吹了吹灰,插上数据卡,拧上螺丝,插上天线。

 X200 拆开

 X200 PCIE槽和天线

合上掌托,插 SIM 卡,装电池开机,居然找不到硬件!安装驱动程序,依然找不到。大囧。于是问店家,建议重置 BIOS 试试。虽然在 BIOS 里一点都没找到关于 WWAN 的选项(仅有一个 WLAN 和 WiMaX 的选项),但重置 BIOS 之后再开机,神奇地出现了找到新硬件。

安装 ThinkVantage GPS Enabler,上窗口试了一下,能搜到星。升级 Access Connection,能正常连接联通 WCDMA,信号很好,速度快,便心满心足地睡觉去了。(唯一不好的是流量跑得太快了!!!!)

 Access Connection

 ThinkVantage GPS

第二天,开始折腾如何收发短信——真是漫长的历程。

首先查看 Access Connection,竟然没有收发短信的选项。网上网友说,据传说 5.02 版是可以收发短信的,而我的 Access Connection 是 5.95 最新版。总不要为这个把我的 Access Connection 降级吧?鬼知道降级之后会不会和 Hotkey 之类的程序冲突。而 Access Connection 的 Help 里面明明白白地说:不支持对 F3507G 收发短信。

OK,那就另想办法吧。没有短信还是很糟糕的——毕竟流量花了多少,Access Connection 说的不算,联通下发的短信才算数。

网上有人说,可以安装 Ericsson 的 Ericsson Wireless Manager,即可使用短信功能,而且比 Access Connection 功能强大得多——至少 GPS 地图是 Google Maps 而不是坑爹的 Bing Maps。但据网友说,Ericsson Wireless Manager 是不能和 Access Connection 共存的,必须卸载载 Access Connection 才能使用 Ericsson Wireless Manager,否则 Ericsson Wireless Manager 无法找到 WWAN 卡。而且 Ericsson Wireless Manager 也有 Bug,比如说,如果关闭了它,就会自动给 WWAN 硬件断电——直到下次开机才能重新使用 WWAN,而且 ThinkPad 的 Fn+F5 控制将无效。那这也太坑爹了吧?

不过又有网友声称,他发现了一个完美的共存办法:使用 Access Connection 调用 Ericsson Wireless Manager。只需要在 Access Connection 的概要文件里设置,不使用 Access Connection 本身来连接网络,而使用其它程序连接网络即可。由 Access Connection 调用 Ericsson Wireless Manager 时,Ericsson Wireless Manager 将可以找到 WWAN 卡。而 Access Connection 仍然可以照常 Fn+F5 打开和关闭 WWAN 卡电源。

看上去不错,于是去找 Ericsson Wireless Manager 的下载。糟糕的是,原始地址是 sonyericsson.com,而我们都知道,这家公司现在已经改名叫 Sony Mobile 了——于是在 sonymobile.com 上根本找不到此软件的下载。

最后去其它网站找到了这软件。装上之后,一连串悲剧开始了……

有 Access Connection 的情况下 Ericsson Wireless Manager 当然找不到网卡,这已经是公认的结论。在 Access Connection 里尝试调用 Ericsson Wireless Manager 来连接网络,可是 Ericsson Wireless Manager 还是报告找不到网卡。更糟糕的是,Access Connection 现在也无法控制网卡了,总是报告:其它客户端程序正在使用 WWAN 卡……于是竟然怎么都没法上网了!

卸载 Ericsson Wireless Manager,问题依旧。卸载 Access Connection,卸载 F3507G 驱动,再重装驱动和 Access Connection,Access Connection 仍然死活无法控制 WWAN 卡。反反复复尝试用各种顺序卸载重装了包括 hotkey、Access Connection、驱动、GPS 在内的各种软件,结果不仅 Access Connection 无法找到 WWAN 卡,连 Fn+F5 里也显示不出 WWAN 了。甚至一度连 WLAN 图标和 Access Connection 中的其它概要文件都挂掉,各种诡异问题。

(之前网上还有网友声称 Ericsson Wireless Manager 是准绿色软件,无须安装直接拷贝即可使用。你妹的绿色软件!)

在彻底卸了所有能找到的相关软件并重装后还是不行,于是我一怒之下——系统还原了。

系统还原之后,终于一切正常了……不过仔细看了一下,这次提示找到新硬件并安装驱动程序的界面明显和之前不一样:之前每次重装驱动程序,都只提示为两个硬件找到了驱动程序;而现在是提示为六七个硬件安装了驱动程序。

所以目前我认为:Ericsson Wireless Manager 显然留了一些设置没卸载干净,导致其它程序无法使用 WWAN。同时,Ericsson 的驱动也很糟糕,也没有卸载干净。

于是继续尝试别的办法收发短信。

先装了一个 ThinkPad Lenovo Mobile Broadband (旧版叫 ThinkPad Lenovo Mobile Broadband Connect),据说可以用于收发短信。装了之后发现,它主要用途是向移动运营商激活 WWAN 卡。也许是在米帝的一些 TP 机型是包含运营商套餐的吧。支持 AT&T 和 Verizon,不支持大陆的任何运营商。于是卸掉。

接着,在 lenovo GB 网站上搜索 Ericsson,竟然找到了一个看起来像有用的东西:

http://support.lenovo.com/en_GB/downloads/detail.page?DocID=DS008212

Ericsson Mobile Broadband Manager

试着装上去之后,果然能用这个软件收发短信了!

但是在 ThinkVantage GPS 的说明页面,提示 ThinkVantage GPS 与 Ericsson Mobile Broadband Manager 不兼容,可能会导致报错,不过目前我还没有遇到过问题。

  Ericsson Mobile Broadband Manager

对于同样使用 F3507G 正在寻求解决方案的同学,本文包含的信息如下:

  • Access Connection 无法收发短信
  • 收短信可以使用 Ericsson Mobile Broadband Manager(Lenovo US 网站下载),据官网说法和 ThinkVantage GPS 有冲突,但我没遇到。
  • Access Connection 与 Ericsson Wireless Manager 不兼容。同时安装会导致两者都不能使用且很难恢复。所以一定不要重复安装!(可能和我使用的版本有关,版本见下)
  • Lenovo Mobile Broadband (Connect) 在中国大陆没有用处。

本人使用的软硬件版本(所有软件均已更新到能找到的最新版本,有些比 ThinkVantage System Update 提供的还新):

  • ThinkPad X200
  • BIOS 3.21.1.06
  • Windows 7 Ultimate SP1 X64 OEM
  • Ericsson F3507g Wireless WAN Windows 7 驱动程序 6.3.3.6
  • ThinkVantage Access Connection 5.95
  • ThinkVantage GPS 2.80
  • Hotkey 3.80
  • Ericsson Mobile Broadband Manager 版本 CXP 901 4396/21(6.1.6.2)

下面两个东西没有用,但也许只是我用的版本不对

  • Ericsson Wireless Manager 5.3.2076.12 (不能用!)
  • ThinkPad Lenovo Mobile Broadband (Connect) 3.5.0011 (没用)(X200 最新只能用 3.5,X201 以上可以用 4.1)

如何由一滴水推断出尼亚加拉大瀑布的存在

如何由一滴水推断出尼亚加拉大瀑布的存在

福尔摩斯有句名言

一个逻辑学家能凭一滴水推测出大西洋或尼亚加拉大瀑布的存在,即使他并没亲眼见过。
From a drop of water a logician could infer the possibility of an Atlantic or a Niagara without having seen or heard of one or the other.

这是一个有趣的题目。

对于这个题目,存在一种不严谨的快速解法:
地球上不可能只有一滴水。我们看见的是 “one drop of water”,于是我们当然知道水往低处流。既然有很多水,水又往低处流,就一定会汇聚成水池。海洋无非就是特别大的水池罢了。由于水会流动,当水经过有落差的地面时,就会出现像很多水滴同时下落的景象,也就是瀑布。当然这些瀑布会有大有小,其中肯定会有最大的一个。至于最大的叫不叫尼亚加拉,就是无关紧要的事情了。

上面这个推理其实破绽甚多。现在让我们试试一个学术宅的思路。

假设一个外星学术宅同学在一个阳光明媚的中午被莫名其妙地传送到了地球表面,他看见了一滴水从石头上落下。他能推断出多少东西呢?
做这些环境假设是有必要的,假如我们可怜的学术宅同学被扔到一个孤立系统中,那他啥也推断不出来——他甚至无法知道水到底是因为该房子在加速而落下的还是受引力而落下的。
我们再假设这个外星学术宅同学具有所有需要的自然定律方面的知识,而且拥有超人一样绝佳的观察力,以至于他本人就近乎是个精密仪器。

嗯,让故事从这里开始!
首先,这滴落下的水提供了重力加速度。由于技术宅脚下是坚实的地面,而不是别的什么东西,根据一个岩石行星的典型密度,可以估算出地球的半径和质量的数量级。
嗯,既然知道地球的质量,地球上最高的山峰会有多大也就可以计算出来了。地球没理由整颗行星都是黄金之类的奇葩物质,那概率太小了。按照一般的岩石的密度和强度,地球上可能的最高山峰的高度也就万米数量级。

再说水滴的形状。水的密度是知道的,重力加速度是知道的,温度约300K,此时水的表面张力也是知道的。那么,决定水滴形状的还有什么?只剩空气阻力了!由空气阻力得到大气的粘滞系数。粘滞系数决定于气体的密度、自由程和速度。已知温度、气压(这两个又可以推出粒子数密度),则由粘滞系数可以估算出平均分子量。至此大气的大致性质有了,由引力我们就可以估算大气层的厚度大约是万米量级。

信息似乎有点少。离推理出尼亚加拉瀑布还有距离。噢,前面说过,这是个阳光明媚的好日子!于是该外星学术宅由可见光波段阳光的辐射谱,推测出太阳的表面温度大约为6k开左右。

嗯,被吸收掉的光呢?分析一下?这星球上有氧气!有水汽!
有氧气就意味着几乎一定会有生命,不然氧这种活跃的元素一定会和铁等元素结合。空气中有充足的水汽,这才是可能有大量液态水存在的证据啊!光谱还会提供大气气体成分的大致信息,因此空气的平均分子量一定是介乎氧和氮之间。于是可以对气体平均分子量可以获得比刚才由粘滞系数开始的估算更为精确的估算。
姑且还是不让学术宅看见太阳的大小吧,那就太泄露天机了。假如他看见的话,而且他又能极精确地测量太阳的视运动(其实前面已经多次假设这外星学术宅不是人了),估算太阳的大小和日地距离的数量级并不困难。

刚才已经有了太阳辐射的测量,因此有太阳常数。大气层的尺度、成份,加上输入的太阳能量,这个大气层一定会有风。而且风的速度也可以估算一个数量级范围,虽然现在只能估算一个非常非常粗的范围。

大气中有水汽,是否就一定说明有海洋存在呢?论证这点比较困难。

我们来继续推理!
如此巨量的氧气意味着至少有同样数量级的二氧化碳或者其它什么东西已经被这星球上的生物固定下来。甭管它是碳还是硅,葡萄糖还是硫。这些生物中的生产者,肯定不可能主要存在于天空。故而地表一定会受到影响。
所以决定地表形状的几种主要作用都被找出来了:地壳运动、风、可能存在的水和生物。

由于地表生物的存在,地表风速不可能很大。所以风不是塑造地貌的主要因素。

由光谱可知,这是一颗不太老的恒星,因而该行星应该仍然有地核运动。地壳运动必然是塑造地形的主要因素。所以就会有山。山的高度的上限前面已经估算,这颗星球那么大,总不会连座上千米的山都没有吧?因此一定会有雪山,有雪山,在太阳照射下,就会有河流。

有河流就会有瀑布!!!!

可惜福尔摩斯同学不知道地球是绕着太阳转的,所以福同学必然不会使用这条路径来推理出尼亚加拉瀑布的存在……

这篇文章写到这里还很不完整。因为,下面我也推理不出来了……
只是一时兴起之作,目的是为了佐证福尔摩斯的观点:世界上的一切事物都是联系着的。
如果喜欢本文的话,欢迎指出漏洞,或是帮忙一起完善整个推理链条,推理出更多的东西!
在推理本文的时候,我十分惭愧地发现,有那么多大一及之前学的东西现在已经忘了,不google就写不下去……

HTC ChaCha 入手感觉

旧I780在去中科院报到的前夕忽然坏掉,让我无限怀念。作为一日不可无手机的人,只能在一周内迅速买了一部新手机,HTC ChaCha,又称G16。

作为直板全键盘控,本来可以选择的手机就不多。恰好这机器还不太贵,于是就入手了。水货有一个Facebook键,行货是QQ键。水货机可以刷国行ROM(但国行ROM并不那么理想)。

先说说这款手机的优点:

  • 键盘手感非常好,软硬适中,既清脆又不显得过硬。弧形设计,握感舒适。打字暴快。导致我九月竟然不知不觉间发出了七百条短信(平时每月只有两百条)。如果常在手机上打字的话,它的效果真的没的说。不管你用短信、微信、飞信、电邮还是人人网,打字快总不是坏事。
  • 512M RAM对于日常安卓使用完全够用。
  • 不到3寸的屏幕,分辨率却高达320*480,显示十分细腻。
  • 安卓系统,可以保证有最新流行软件可用。

总体来说,一部标准HTC安卓手机加配一个手感绝佳的键盘。

下面对安卓系统进行吐槽。(对安卓了如指掌者可以跳过此部分)

安卓系统真的是一个糟糕的手机系统——和Windows Mobile相比。它的流行再度证明了一件事:在IT业界,胜利者往往不是技术最好的,而是商业运作最好的。

  • 第一点:奇高的资源开销
    • RAM
      遥想WM时代,128M RAM走遍天下都不怕。而安卓呢?咳咳,系统就占100M左右。当年第一代安卓手机有一些只配128 RAM,那真是卡死你没商量。刚才说的只是系统,还没算必要的开机启动服务什么的(比如说拨号、短信)。一个正常的系统,开机加满该用的软件,少量用户自己装的软件(比如微信),就奔300M去了。所以256 RAM仍然是紧巴巴的,什么HTC Sense之类的桌面是别想了。但512 RAM又似乎永远用不光。

    • ROM
      至少一百多兆的ROM占用。像HTC ChaCha这样预装软件多了,竟然要占260M ROM
      奇费电
      像ChaCha这样屏幕不足3寸的机器,1250mAh也只能保证一天一充。
      运行效率奇低
      绝大部分Android软件都是Java软件或者sh脚本。所以一点都不奇怪为什么安卓手机跑同样的应用,就是需要更多的RAM和更好的CPU。

  • 第二点:奇扯的内存自动管理

    不用程序的时候就点叉叉关掉程序。这是在PC上已经沿用多年的设计。自从苹果神经病地搞出了只能单任务操作的iphone之后,无数人跟风。现在安卓和WP7的内存自动管理这种脑残设计不能说没受到苹果的影响:你不需要去点叉叉来关闭程序,大部分程序也没有叉叉可以让你点。任何没有显示在最前端的应用程序都会被纳入系统的自动内存管理,并不退出,直到内存不够时系统再自动终结它们。

    支持内存自动管理的人会说,它有这样的好处:加快常用软件的启动速度(因为它们一直就cache在RAM里没退出),减少用户操作,避免不会用手机的人开了一堆程序把手机搞得很卡,blabla。若有真的希望驻留后台永不结束的程序,开发人员可以声明嘛。

    对此我只能冷笑:这种政策的唯一结果就是:让用户丧失了选择权。那些流氓的软件会声明让自己驻留后台从而一直偷你的流量;你正经干个活编辑个文档,切到邮件程序看下邮件再回来,却有可能发现你的Office已经在没有存盘的情况下被终止。

    不过总体来说,内存自动管理并不算安卓的一个非常失败的地方,只是我很不爽罢了。

  • 第三点:软件不能装在卡上,无语的设计

    安卓2.2之前并未提供把软件安装在SD卡上的方法。必须依靠第三方软件。这真的是让人极其无语。2.2提供把软件移动到卡上的方法之后,却又有很多软件不能移动。2.3时,终于非系统软件几乎都可以移动了。但dalvik cache和data还是不能移动。(关于SD卡安装程序的概论,请见我的下一篇博文)(因为那些技术都已经过时,“下一篇博文”没有被搬运过来)

    如果你把data移动到卡上,那么就会耗电飚升,让安卓本就可怜的电量进一步受到挑战。当然,官方不提供data迁移还有两条可能的理由:降低系统反应速度、严重降低SD卡寿命。

    Windows Mobile是可以把一个用户程序的所有文件装在卡上的,既没有文件碎片问题,也没听说有反应速度问题,更没听说过有损坏SD卡的情况(FAT32文件系统+仅少量的数据读写)。

  • 第四点:堆积如山的垃圾文件

    这东西的垃圾文件相对增长速度绝对比大家骂得要死的Win98要厉害得多!/data的可用空间总是在不断减少,而你根本不知道怎么回事。有一次我清了一下联系人数据(共两项,“存储联系人信息”和“联系人”),竟然立刻少了25M占用,重新同步联系人,我的手机和清联系人之前完全一样了,可是这次只占了2M空间。呃,那23M的垃圾是什么呢?除去15M“联系人信息”主要存储的是联系人头像,其中可能有人人网同步头像产生的垃圾(再骂一下人人网安卓版的拙劣设计),另外8M属于“联系人”的垃圾数据是什么我大概永远不会知道了。也就是说,人人网为我带来了12M垃圾(扣去正常同步后头像应该占用的3M空间),安卓系统为我带来了8M垃圾。仅仅“联系人”一项就是如此。情何以堪。

下面再说这机器作为安卓机器的两大突出缺点。

  • ROM太小

    虽然是512M ROM。但是/system分区直接划掉了266M空间。/cache划掉35M,/devlog 10M,各种杂七杂八的分区,最后留给/data的竟然只有150M。
    这150M /data是什么呢?是整个ROM你唯一有权限读写的地方(无ROOT权限情况下)。你的所有用户程序、用户数据(哪怕是联系人、短信也不例外)、程序数据,全部在这可怜的150M中。(windows mobile想用得滋润还得至少256 ROM,这150M 够谁用的?!)
    新系统就占掉30M左右,你还有20M的保留空间绝对不能动,因为剩余空间小于20M时你就无法从Google Accounts等帐户同步联系人和日历等。而用户数据是会一天天增长的,于是你就会看着你的ROM空间一天天变小。直到你不得不删掉一个又一个软件来保证ROM空间。我最后删到无可再删时,看了一下,使用一个月,我的/data/data高达80M。其中用户数据近70M。也就是说,使用一个月后,你还有总共30M的空间供你装各种软件。对于一个任何用智能手机的同学,30M空间能装点什么软件呢?尤其是安卓软件这样占地方的?
    所以我几乎每用一个月就必须清一次机器恢复出厂。(直到我把/data/data也移到卡上)
    (所以,同学们,安卓512M ROM是绝对不够用的。尤其是HTC,不会给/data保留多少空间。我见过一个三星手机,/system只有一百多兆,但是诡异的是RAM占用率奇高,比我的机器要高很多。不知道是不是三星把一些系统文件压缩存储之故。)
    所以其实对于这个手机512的RAM简直就是奢侈:你把ROM全加载到RAM中也不过512而已嘛。所以我从未成功地把RAM剩余空间用到200M以下过。(直到我把/data/data也移到卡上)

  • 电池太小

    很怀念I780的1800mAh电池。新手机只有1250mAh的电量。
    我还在原装系统折腾时,就惊讶地发现这手机的电表几乎是以你可以看得见的速度在掉:每一两分钟就掉1%。不过后来关了一些耗电的服务,发现待机时耗电还是很少的。开始上课后,不像刚买手机还没上课时那么折腾,注意睡觉时调到飞行模式,于是正常使用,短信电话不多的话,还是可以撑满一天的。
    但是这手机也就仅限于满足短信电话了。但凡想拿手机打个游戏、坐车时上网解解闷,那是一定得准备好充电器或者第二块电池了。
    糟糕的是,当我把/data几乎完全移到SD卡上以一劳永逸地永远解决ROM不够问题后,耗电陡然大增,现在竟然需要一天两充才能坚持住了。
    所以这机器的ROM RAM 和电池就是一个悖论:你如果想充分利用你的RAM,而不是永远只用到300M RAM,那么你就需要解决你的ROM不足。解决ROM不足的唯一办法是把/data搬到卡上,这反过来又会导致你电量不足。如果你希望它电量够你用一天,你就面临ROM不足和RAM过剩。

纠结的联系人同步问题

曾几何时,用Windows Mobile和PC上的Outlook同步是多么方便的一件事情!在手机上点开同步,稍等片刻,联系人、日历、任务就通过蓝牙同步好了。至少五年前,几乎所有的手机(支持连接电脑的)就已都支持和Outlook同步。在买手机之前我从来没想过和Outlook同步竟然会成为问题。
而很抱歉,安卓不是原生支持与Outlook同步。只有使用厂商提供的HTC Sync。
辛苦二十年,一夜回到解放前——HTC Sync同步之后,竟然所有在手机上更改过或者访问过的联系人全都变成了名前姓后。而且HTC Sync还不支持蓝牙同步。这让我感觉一下子回到了当初用Moto E2的年代。更糟糕的是,所有被更改过的联系人的生日事件都被会重新创建一遍。这让你每次在手机上修改过一次联系人都要面临一系列麻烦的后续操作。
HTC Sync是一个特么SB的软件有木有!特别容易卡死,CPU占用率巨高,同步速度还巨慢。果然HTC没了微软,连个同步软件都做不好,衰得够可以的。
在以上劳师动众的辛苦之后,还只能同步“联系人”和“日历”。而“任务”在安卓下根本就没有对应物。
最后只能想办法把Outlook和Google Accounts同步,再把手机和Google同步。虽然很不完美,但也只能暂且这样了。