我了解到的挪威

相比熟知的中西欧国家,北欧对于国内的朋友较为陌生,比如我有的朋友从来记不住我去的是挪威,分不清瑞典与瑞士的也大有人在,不独国人,距一位美国同事说,他的同乡一直以为他去的是南卡罗来纳周的 Norway。近期见诸媒体的有一些关于北欧的报道,比如南方周末的这篇《[高物价高税负,丹麦为何走得比美国好](http://www.infzm.com/content/79787)》和纽约时报的《[Investors Seek Out Safer Shores](http://www.nytimes.com/2012/08/07/business/investors-face-tough-search-for-financial-safe-havens.html?pagewanted=all)》也算是管中窥豹。来挪威已经两年,别的北欧国家不敢说,至少对于挪威可以略谈谈我自己了解到,而国内甚少报导的部分,权作参考。

* 常说挪威是个“社会主义国家”,从我们中学学到的定义“国家控制经济命脉”来说,确实如此,挪威的核心产业基本上都是国家控制或者大力扶持,个人独资的企业极少,比如石油是国家石油公司 ([Statoil](http://www.statoil.com/en/Pages/default.aspx)) 占了绝大多数的份额、铁路是 [NSB](http://www.nsb.no/?lang=en_US)、航空业老牌的北欧航空 ([SAS](http://www.sas.no)) 虽然受到很多挑战,但仍占最大份额。
* 相比其他北欧国家,挪威对于农产品有非常大的贸易保护,传统的渔业不说,乳业是由国内的巨头 [Tine](http://www.tine.no) 控制的,去年因为 Tine 对雨季后产奶量的错误判断造成了整个国家的“黄油危机”,整个圣诞季全国的商店都没有足够的黄油,只能用人造黄油替代,而进口黄油很难进入挪威市场,Tine 不仅是最大的乳业销售商,同时它还占有行业规范制定者的地位,类似“裁判下场打球”,所以国内对此有[很多批评](http://www.newsinenglish.no/2012/08/31/consumers-punish-dairy-regulator/)。禽业则来自 [Prior](http://www.prior.no) 占据了超市绝大部分的鸡蛋货架。
* 与工农业的贸易保护同时的,是零售业的封闭,整个挪威的贫富差距虽然较小,但是最富有的人往往是国内的零售业巨头,如 [Rimi](http://rimi.no) 等。[有观点认为](http://paulamdeangelis.blogspot.no/2012/08/buying-it-on-amazon.html),高物价其实很大部分来自零售业的贪婪,同样的产品,如果在中东超市销售,价格就比常见的联锁超市链的售价要低很多。
* 从中国到挪威,最不习惯的也许是巨大的人力成本差异,从网上购物的邮费或者快递费动辄数百不说,技术工人的收费更是令人咂舌,电工和水管工一小时的收费可以轻易上千,房屋、汽车的维修费用也极高,例如安装汽车尾部的拖车装置就要花费上万。在国内这是很难想象的。
* 虽然整个挪威地广人稀,但首都奥斯陆的人口密度却比北京更高,高人口密度很大程度上来自移民滥用了福利制度。如[最近的报导](http://www.newsinenglish.no/2012/08/28/guest-workers-pay-off-in-norway/)认为短期来挪威工作的人对社会的贡献要比长期的移民多得多,因为短期的工程师等往往有较高工资,纳税但基本上享受不到福利就回去了,而长期移民却有许多长期享受失业和生育福利但从来不工作的。
* 同时这也带来了很多不稳定的因素,来挪威两年,遇到过三次在公交车上偷窃的行为,据办公室的同事说,这在十来年前的挪威是很难想象的,当时的城市用“路不拾遗”形容也毫不夸张。再比如奥斯陆警察以巡逻不必佩枪自豪,但最近大部分的警察也开始佩枪了,当然治安的不稳定因素也不只是移民造成的。
* 挪威的 IT 产业相比美国和许多其他欧洲国家都更陈旧和封闭,相比邻国瑞典对创业的扶持都远远不及,整个产业最多的是 Java、.NET 的企业咨询,应用新技术的创业公司极少,招聘国外的员工也很少。最近见到的负面新闻有整个国家的银行登录系统 BankID [坚持使用 Java applet](http://translate.google.com/translate?sl=auto&tl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.digi.no%2F901593%2Fbankid-vil-beholde-java)、投入巨资开发,处理整个国家人口与税务数据的 Altinn 系统[闹了大笑话](http://www.reuters.com/article/2012/03/22/us-norway-tax-idUSBRE82L10X20120322) 等等。
* 北欧的医疗保障体系广受赞誉,但身在挪威的人反映这个体制的主要问题是医疗处理的缓慢,造成许多人不夸张病情就无法就医,情况要比在中国糟糕得多。同时也有人利用体系的漏洞,比如[威胁转到私立医院](http://www.newsinenglish.no/2012/03/05/37858/)来加快就医的速度,或者不得不支付高昂的私人保险来减少排队时间。从某种程度上说,这个体制对于大病是很好的防护网,但对于小病和急诊的待遇其实不如中国的情况。

以上看起来写的都是负面的情况,但都是我自己亲身了解到的,中国国内的报导甚少触及,可以给对北欧有兴趣的人作为参考。

To all my friends

昨天下午,奥斯陆市中心发生了大型爆炸事件,我经常经过的一条路两侧一片狼藉;随后在 Utøya 的青年夏令营发生了持枪屠杀事件。已有 87 人遇难。

我与家人目前都还安好,也在积极关注事态的发展,谢谢各位的关心。

可以想见的是,无论这两件史无前例的事件最终调查结果如何,都必然会对挪威造成非常深远的影响。作为旅居的华人,我也会在 blog 和 twitter 上继续介绍我了解到的情况。

2010 年终总结

今年是我的生活变化较大的一年:结束了三年的研究生学业,离开长待了六年之久的北京,到奥斯陆开始我的第一份工作。所以数起来从头到尾都过得很充实:一二月份是面试、确定工作,三四月份忙学位论文,五六月忙答辩和毕业的琐事,七月份搬家、开始工作,八月到十一月都在适应新的环境,学习新的体育运动 (骑车、攀岩、滑雪等),十二月底则花了一周去西班牙旅行。感觉这一年过得飞快,但偶尔又觉得很漫长。下面还是按照[去年的格式](http://blog.jjgod.org/2010/01/01/summary-of-2009/),对今年作一简要小结。

* 最喜欢的电影:[Inception](http://www.imdb.com/title/tt1375666/)
* 最喜欢的读物:[Out of Mao’s Shadow](http://www.outofmaosshadow.com/)
* 用得最多的电子产品:[Apple iPhone 4](http://www.apple.com/iphone/)
* 参与最多的软件项目:[Qt](http://qt.nokia.com)
* 花时间最多的翻译作品:[Cocoa 编程开发者手册](http://www.amazon.com/Cocoa-Programming-Developers-Handbook-Chisnall/dp/0321639634) (未完成)

总的说来,今年写 blog 少了,写 [twitter](http://twitter.com/jjgod) 多了;花在游戏上的时间少了,出门运动的时间多了;浏览网页泡论坛 BBS 的时间少了,看书的时间多了;做自己个人项目的时间少了,花在工作上的时间多了;这些趋势并不所有都是好的,但至少多读书、多运动,有时间多走走看,正是我对明年的期望。

Mac OS X 下与 SSD 相关的优化

最近刚入手一块 Intel X25-M G2 80G SSD,使用效果不错,于是整理了下面这些跟 SSD 有关的优化经验:

#### 安装

因为 SSD 比较小,而有些数据又不是那么需要快速的访问,所以我保留了 MacBook Pro 里自带的 320G 7200 RPM 硬盘,做了如下改动:

1. 买了一个光驱位硬盘托架,最有名,也是最贵的一种要 $99,但山寨版可以在淘宝找到,对于 Unibody 的机器来说,找 9.5mm 高的那种型号就行,比如 Fenvi 的,建议买 100 以内的。

2. 把 MBP 拆开,SuperDrive 取下,把原来的硬盘取出,放入光驱位硬盘托架,把 SSD 接在原来的硬盘所接的 SATA 口,然后把硬盘托架安装回原来光驱的位置。这种搭配是为了保证用 SSD 做系统盘 (挂载在 `/` 上) 时系统能正确的让硬盘休眠。当然,如果你比较奢侈地买两块 SSD,也可以让他们组成 RAID0,这样性能就更夸张了。

3. 给在 SSD 所在卷分区,只需要分一个区,安装系统。新的系统会把原来那块硬盘也列出来。这时修改 `/etc/fstab`,加入:

/dev/disk1s2 /Users/jjgod/Downloads hfs rw

这个做法是把原来那块硬盘挂载在我自己这个用户的 `Downloads` 目录,这样所有下载的内容都会放在这块比较大的硬盘上 (当然有用的我以后会转移到 SSD 上),考虑到 Downloads 主要起的就是一个临时的缓冲作用,这样还是比较方便的。然后重启机器,就能发现这块硬盘只被挂载在上述目录下了。

4. 除了下载内容,我还在这个目录放以下内容:

* VMware Fusion 的虚拟机文件,这是从别的机器复制过来的,直接放在这个卷的 `/Virtual Machines` 目录下,然后在 VMware Fusion 里打开就行了。需要注意的是以后 VMware 里创建新虚拟机的时候也得记住选择目录,别放在自己的 `$HOME/Documents` 下面了。

* iTunes 媒体库,这个可以在 iTunes 的 Preferences -> Advanced -> iTunes Media folder location 选择。我是先在这里选好了,然后从原来的机器里导入以前的 iTunes 数据。

* 其他下载软件的默认下载位置,包括 uTorrent, Transmission 和 aMule。

* [Steam](http://store.steampowered.com/) 的游戏目录,这个可以通过创建符号链接到 `$HOME/Documents/Steam Content` 实现。

#### 优化

上述安装过程后,系统已经能保证数据各自放在比较合适的地方了,参考 [Mac OS X SSD Tweaks](http://blogs.nullvision.com/?p=275) 这篇文章的介绍,我们还可以做如下优化:

1. 用 `noatime` 方式挂载系统盘,这样可以减少不必要的 I/O 次数,虽然 SSD 做这些操作非常快速,但考虑到**最后访问时间**这个属性其实很少用到,大家关心的一般都是最后修改时间和创建时间,所以完全可以关闭这个属性,这在 Unix/Linux 下是非常常见的文件系统优化选项。一个简单的方法是,修改 `/etc/fstab`,加入:

/dev/disk0s2 / hfs rw,noatime

重启后,系统盘的挂载就带上 `noatime` 选项了:

$ mount | grep ” / ”
/dev/disk0s2 on / (hfs, local, journaled, noatime)

2. 禁用冬眠 (hibernate) 模式以节省空间。在 Mac 耗尽电池时,会进入“冬眠”模式,将内存中的所有内容写入磁盘,下次唤醒后从这些内容恢复状态。所以系统会在 `/var/vm` 维护一个和内存等大的 `sleepimage` 文件,考虑到 SSD 空间宝贵,而一般绝少会遇到耗尽电池的情况,可以禁用掉这个功能以节省空间:

$ sudo pmset -a hibernatemode 0
$ sudo rm /var/vm/sleepimage

3. 减少临时文件的读写。

* RAMDisk 是常见的性能优化手段,对于内存充足的机器,把频繁读写的内容放到一个用内存为存储的虚拟磁盘中,能大大加快速度。虽然 Macintosh Performance Guide [最近的一个研究](http://macperformanceguide.com/OptimizingPhotoshop-RAMDisk.html)表明 RAMDisk 并不能很大地提升如 Photoshop 这类软件操作的性能,至少投入产出比不是很经济,但至少用它来保存一些本来就可以随意丢弃的数据是个很好的思路。[Mac OS X SSD Tweaks](http://blogs.nullvision.com/?p=275) 提供了创建 RAMDisk 的脚本,他的做法是在系统启动时创建一个 256M 的 RAMDisk,挂载在 `/private/tmp` 上面。他还建议把 `~/Library/Caches` 也放到 RAMDisk 里。最大的问题是,如果你长期不重启 (我一般的重启周期是 80 ~ 100 天),那有的临时文件,比如 `~/Library/Caches/com.apple.Safari/Webpage Previews/` 会增长到数百 M 甚至上 G。如果被它占满了 RAMDisk 的空间,那其他缓存数据就写不进去了。

* 考虑到 RAMDisk 是个比较有风险的优化手段,也可以用以下方法禁用掉 Safari 的 Webpage Previews 以减少临时文件读写。如果你像我一样从来不用 Safari 的“Top Sites”功能,一定会很讨厌它凭空占用大量的空间。

$ defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

* 关闭 Spotlight 索引也是一个有用的优化手段,如果你像我这样从来不用 Spotlight 的话。

#### 结语

* [Macintosh Performance Guide](http://macperformanceguide.com/) 还提供了一些更奢侈的优化手段,这里不一一介绍了,因为我自己也没试过,有兴趣可以自己尝试。值得尝试的是它提供的 DiskTester 工具有一个 [recondition](http://macperformanceguide.com/Software-DiskTester-UserManual-recondition.html) 功能,通过大量写空白块来优化长时间使用后的 SSD 性能。

* “安装”部分感谢[草莓数码](http://www.berrydigi.com)的 iBook 和 MacBook 的帮助。

* “优化”部分大部分思路来自 [Mac OS X SSD Tweaks](http://blogs.nullvision.com/?p=275)。

2009 年度总结

* 年度电影:[Up](http://www.imdb.com/title/tt1049413/)
* 年度游戏:[Uncharted 2: Among Thieves](http://en.wikipedia.org/wiki/Uncharted_2)
* 年度小说:[大江东去](http://www.douban.com/subject/3432304/)
* 年度电子产品:[PlayStation 3](http://en.wikipedia.org/wiki/PlayStation_3)
* 年度网络应用:[twitter](http://twitter.com)

下面是我自己参与的:

* 年度软件项目:[Textus](http://www.jjgod.org/projects/textus)
* 年度翻译作品:[Objectified](http://www.objectifiedfilm.com/) [中文字幕](http://jjgod-documentation-project.googlecode.com/svn/trunk/Objectified.chs.srt)