2011年11月16日星期三

mongo无法利用多核?

    太伤心了,本来以为mongo的速度很快呢。测试插入数据,结果当场被泼了冷水。
conn = pymongo.Connection('localhost', 27017)
db = conn['perform']
coll = db['test']

testdata = []
def init_testdata():
    for i in xrange(1000):
        s1 = ''.join([random.choice(string.hexdigits) for j in xrange(16)])
        s2 = ''.join([random.choice(string.letters) for j in xrange(200)])
        testdata.append((s1, s2))
init_testdata()

def insert_mongo():
    for s1, s2 in testdata: coll.insert({'_id': s1, 'content': s2})

def find_mongo():
    for s1, s2 in testdata:
        s = coll.find_one({'_id': s1})

def testfunc(funcname, times = 1000):
    from timeit import Timer
    t = Timer("%s()" % funcname, "from __main__ import *")
    print 'funcname: %s used %f' % (funcname, t.timeit(times) / times)

if __name__ == '__main__':
    # os.fork()
    # os.fork()
    init_testdata()
    testfunc('insert_mongo', times = 100)
    testfunc('find_mongo', times = 100)

    这个代码,在直接执行的情况下,获得结果是这样的。
funcname: insert_mongo used 0.179303
    折合成iops,也就是5500req/s的样子。打开os.fork后,结果变成了这样。
funcname: insert_mongo used 0.516131
funcname: insert_mongo used 0.526213
    只有3850req/s左右,我靠,比单进程慢那么多?打开四个进程试试?
funcname: insert_mongo used 1.039754
funcname: insert_mongo used 1.058093
funcname: insert_mongo used 1.058598
funcname: insert_mongo used 1.059101
    基本稳定下来了,差不多4000req/s的样子。而且,通过top发现,最关键的问题不在于io和内存,而是mongodb这货只有一个进程,最高吃到100%的CPU——也就是——无法利用多核。

    幸好,在读取测试中,情况不是那么糟糕。在单进程下是下面这样子
funcname: find_mongo used 0.350096
    2850req/s,双进程就变成了这样子。
funcname: find_mongo used 0.220384
funcname: find_mongo used 0.221446
    9000req/s!不但性能有所上升,而且更为惊喜的是,在top中检测发现,主要CPU消耗都放到了python这端。而分布系统的常识告诉我们,客户端的压力(就是应用服务器的压力)是可以很容易的通过添加服务器来解决的。在贝壳当前这台双核的机器上是无法进行进一步测试了,不过按照目前的状况预估,查询时即使只能使用单核,也可以支持10000req/s以上的性能。

    又是一个典型的高读低写数据库呐。也罢也罢,nosql中也就mongo的各种特性比较接近sql数据库,用来跳过ORM层直接做系统比较合适。如果使用memcache或者redis,性能倒是上去了,用起来就未免太蛋疼了一点。不过偷偷的透露一点,贝壳估计,使用redis后,性能还能上去5倍。

2011年11月15日星期二

语言的易读性

    何谓语言的易读性,简单来说,就是看到一段代码的时候,能够了解其意思。易读性最差的典型代表作是汇编语言和机器语言,因为在读这两种语言的时候,其实是你的大脑在替代模拟CPU的功效。说起来,自从汇编以后,每种语言多多少少都注重了人类阅读的习惯,像brainfuck这种特例是万难一见的。例如下面的例子。
    printf("hello, world\n");
    即使没有任何C基础的人,也能够看懂这是在做一个字符串打印。
    语言的易读性其实是语言非常重要的特征,比其他特征都重要。因为人类的大脑不可能记得所有的代码细节,并且能够直观的反应出如何修改。往往我们需要阅读一下代码,搞明白每段的意思,然后才能动手——哪怕这段代码出自自己手笔,只要过得一两个月,还是要重读一下的。正是因为读这个技能的使用频率非常高,所以语言的易读性非常直观的影响到语言的易用性。而易读性差的语言和习惯,目前来看有以下几个典型例子。

1.罗嗦
    典型代表是Java。下面是一个Java解压Zip的代码,引用自参考1。
public class Zip {
    
static final int BUFFER = 2048;

    
public static void main(String argv[]) {
        
try {
            BufferedInputStream origin 
= null;
            FileOutputStream dest 
= new FileOutputStream("E:\\test\\myfiles.zip");
            ZipOutputStream out 
= new ZipOutputStream(new BufferedOutputStream(
                    dest));
            
byte data[] = new byte[BUFFER];
            File f 
= new File("e:\\test\\a\\");
            File files[] 
= f.listFiles();

            
for (int i = 0; i < files.length; i++{
                FileInputStream fi 
= new FileInputStream(files[i]);
                origin 
= new BufferedInputStream(fi, BUFFER);
                ZipEntry entry 
= new ZipEntry(files[i].getName());
                out.putNextEntry(entry);
                
int count;
                
while ((count = origin.read(data, 0, BUFFER)) != -1{
                    out.write(data, 
0, count);
                }

                origin.close();
            }

            out.close();
        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }

}
    我下面给出python版本。
import os, zipfile
with zipfile.ZipFile('filename.zip', 'w' ,zipfile.ZIP_DEFLATED) as zf:
    for name in os.listdir('.'): zf.write(name)
    罗嗦有什么坏处?当你需要理解一段代码的时候,需要上上下下翻动屏幕,并且仔细对比每个细节,才能理解这个代码的目的。这对于阅读来说是非常不友好的。

2.歧义
    典型例子是++,我给出这么一个例子。
i = (++j) + (j++) + i---i
    i是多少?脑子一团糨糊吧?关于自增自减的歧义,具体可以看参考2。当然,这并不是说C++设计的有问题,只是这个用法不可取而已。
    歧义的最大问题是,不借助具体的实现运行一下,基本没有希望了解这个代码是什么意思。这哪里叫可读,这叫不可读。歧义是不可读中最差劲的一种,一切产生歧义的代码都是坏的代码,例如我们下面的这个例子:
import os
def os(os): return os
    这个,return回去的到底是谁?os module?function?variable?运行一下我们知道,其实是返回了参数。但是这种代码骤然看到,鬼才能够反应的过来,写出这种代码的,上辈子都是非洲丛林里面的守林人,想bug想疯了吧。
    还有一种是变量名类似,例如只以大小写区分,或者以下这个例子:
def sl(s1): return sl
    您看出问题了么?没看出来?这到底要多脑残才会把变量弄的那么像函数名,导致return的时候把自己的函数给return回去阿?

3.依赖上下文
    什么叫依赖上下文?其实这并不是一个很好界定的问题。无论代码多么简洁,我们都需要调用其他函数。这个函数就是所谓的上下文。在拥有一定知识的前提下,我们的代码越上下文无关越好。如果一定要上下文有关,这个相关部分越确定越好。例如C++中的一个例子:
DynamicFn<WM_Hooks_WMVAL_proto> WM_Hooks_WindowChanged(_T("wm_hooks.dll"), "WM_Hooks_WindowChanged");
    谁能告诉我,为了看懂这个代码,我需要查看多少内容?首先,我需要查看DynamicFn和WM_Hooks_WMVAL_proto的定义,然后去检查DynamicFn的构造函数。如果只有一个构造函数,并且参数类型匹配,那么很幸运,事情就到此为止。如果不匹配,我还得查看是否可以编译通过,如果可以,是匹配了哪个构造函数。如果都不匹配,那么肯定发生了内隐转换(implicit cast),如果有两个函数都可以通过内隐转换进行匹配,例如下面这种:
template <typename T>
DynamicFn::DynamicFn(wstring t, char * c);
DynamicFn::DynamicFn(TCHAR * t, string c);
    天呐,这个不但依赖上下文,而且歧义了。更郁闷的是,随着UNICODE宏的变化,这两个函数的匹配行为还会产生变化。即使上面一切都没问题,您能够直观的从刚刚的一行代码中看出代码所要达到的目的么?从老程序员的习惯来猜测,好像是wm-hooks这个dll的WM_Hooks_WindowChanged函数进行SetHook,是不是,我懒得验证了。
    比较好的解决这个问题的方法叫做代码自描述性。例如上文,这种文法是比较容易理解的。(但是不保证意义一致,因为上文我还不确定是安装Hook还是仅仅生成对象包装,或者两个行为同时实施了?下文也只是伪代码)
create_function(u"wm_hooks.dll", "WM_Hooks_WindowChanged")

4.晦涩
    何谓晦涩?高级特性过多。典型代表C++,谁来读一下这个代码?
#pragma once
#pragma lib("curl")
using namespace std;

#ifndef RFB_MAINTHREAD
#define RFB_MAINTHREAD
namespace rbf{
extern "C" {
  class MainThread: public Thread, EventHandler {
    MainThread (explicit HANDLE hFD);
    virtual ~MainThread();
    inline static int run_wrapper() { return run(); }
    virtual run() = 0;
  };
}
}

2011年11月13日星期日

NSIS在64位下安装时无法写入注册表的问题

    最近公司碰到一个问题,NSIS在64位下安装时无法写入注册表。
    首先,这个问题不是UAC没有权限的问题,因为我使用administrator安装依然有问题。其次,问题和win2008没关系,只出现在64位上。
    问题在哪里呢?在写入注册表前,SetRegView 64,写入后换回32,问题解决。
    真TMD的。

2011年11月11日星期五

关于网站架构的几封邮件摘抄

我知道,我自己写过一个greenlet + epoll的实验性框架。
最主要的问题是,写到后来我发现,这东西对用户的要求太高了。要用好这种框架,用户必须具备系统经验,知道阻塞操作实际上是由非阻塞操作和上下文调度去模拟的,知道代码处处无阻塞(其实是不能有无调度的阻塞),能够想像系统是如何运行的。
这种人不会太多。在cpyug里面不算少,抓10个20个肯定能抓出来,抓上100个也不是没希望。但是实际在操作的时候,平摊到上海这么个地方,会python的也就见过那么不到100人,有这种要求的几乎可以一个个数出来。而且大多数已经在一个不错的公司里面有个不错的职位,你没法指望招个人来做事。
这也是为什么很多公司凡python必django的原因,毕竟用了django,虽然罕见,但是可以招人。用了tornado,能招的范围就少了很多。我自己做的这个实验性的玩意,风险大不说,HR角度来说,可选程序员只有一个。一旦在上面做了系统,不废弃系统的前提下,你压根没法谈判工资。。。
从语言角度来说,我更倾向于lisp,那个比较优美一些,而且也有编译成C的选项,速度不慢,天然的fp。问题是lisp从语义的自然可理解性来说非常差劲,那个传说中某AI实验室源码最后一页全是)并非空穴来风。对于新手入门而言,lisp成本更加高,使用lisp做系统,HR执行的难度也更高。haskell我并不懂,不过从语言理解来说,大概介于lisp和python之间吧。

协程型框架和进程/线程型框架相比,最大的好处就是减少了锁的问题。因为上下文切换的位置都是已知的,是否需要锁很容易考虑。很多时候甚至不需要严格锁定,只要置标志位就好,速度很快。使用fp,也可以大幅减少锁的问题,但绝对不是避免。目前的系统架构设计,已经越来越多的把锁的问题扔到了数据库层。
例如,我在操作一条记录的时候,一定会发生行级锁,否则就是不安全的。而在添加一条记录的时候,必然会修改这个表上关联的索引。而修改索引的瞬间,就会发生瞬时的锁定和解锁,否则也是不安全的。这个过程虽然对用户不可见,但是并非不存在。诚然,数据库访问是基于网络的,而基于网络的read是一个阻塞操作,在架构级别一定会调度到别的上下文执行。但是没意义阿,大规模的用户访问,除掉可以缓存的部分外,都被压到了数据库上进行读写。这些访问,在表级频繁的发生冲突,被各种锁序列化成顺序访问。到最后,我们不断的向系统中添加机器,来换取性能增长的时候,应用服务器实际上变成了问题最小的一个——小到用也许bash去写cgi都可以满足。与此同时,我们的数据库问题越来越大,还没法拆分——你没办法像应用服务器负载均衡那样把数据库拆到多个机器上去,然后让他们的写入性能成倍数增加。
无论是mongo,redis,还是mysql,都没有本质上的解决锁,尤其是写入锁的问题。mongo的读取性能可以上到15kreq/s,但是写入只有5kreq/s,而且好像还不能由sheding做加速——至少不是成倍级别的加速。mysql目前比较成熟的方案还是单写多读。当然,还有所谓水平拆分和垂直拆分的方法。垂直拆分对业务有要求,水平拆分只解决了大规模数据吞吐分布到多个存储媒体的问题,不解决索引访问的问题。redis压根没有自己的分布方案,你必须自己来做。
k-v受到热捧的原因之一,在它给了你一个从某个层面绕过这个问题的方法。目前写入锁最严重的点在于索引。无论是插入还是修改记录都需要在数据库上变更索引,而索引的变更就必然会发生锁。K-V的要点在于不允许在记录上做索引——所以mongo不是k-v数据库——从而允许用户将庞大的写操作分布到数十乃至数百台机器上的同时,获得倍数级别的性能增长。我们先不考虑添加/删除——这个是一致性哈希的目标,也不考虑可用性——这个是冗余的目标。仅从这点来说,k-v数据库受到热捧是有原因的。
问题是,这也不是解决问题,这只是绕过问题。相信使用k-v的人应该有所感受,这玩意根本没法替代常规数据库来用。没有事务,没有一致性隔离就算了。连索引都没有,这TMD的怎么用阿。目前来说,更加实际的使用还是用k-v来存储一些确实没必要进行索引的东西——例如大量小规模图片,用户的属性数据。

Zoom.Quiet <zoom.quiet@gmail.com>:
- 那么这样的话,可以考虑用 Erlang ,这货天然就是为了大分布高迸发服务发明的
   - 而且从语义行文角度看也很好理解
   - 更加要命的是 erl 提供了丰富到变态的动态调试工具,风骚无比的热部署无缝回滚...
   - 只是,摧悲的是 erl 对于计算无爱...
- 不过,反过来想一下:
   - 现在 web2.0 的世界,以及在爆发中的移动互联应用中,有什么是非要复杂关系查询的?!
   - 通过业务的良好统计,可以从业务角度就异步化
   - 那么,不论什么语言来开发,都没有阻塞问题存在了哈...
   - 这也是为毛 K/V 数据库得以商业应用的主要原因
- 另外,前述有人说 git 作存儲的思路也是个方向:
   - 既然分布式写入锁是个难题
   - 那么就直接只进行本地操作好了
   - 仅在必要时,进行分布式合并,这方面,各种版本控制系统都作得很好
   - 如果 redis 的bilog 文本对 git 合并是可耐受的,那不就是个山寨的分布异步安全锁了?

我觉得我的最终解决方案是到大学里面培训lisp课程,争取弄出一批语义上看C系列语言不顺眼,只能读懂lisp的变态出来。这种现象在自然界有广泛分布,地球上至少有1/4的人类在使用最流行的语言系统时有障碍,只能使用一种难用的要死的古老的,基于符号的语言系统,并且引以为傲。。。
业务角度异步化并不是最终方案,因为除了移动互联网应用外,数据库业务最赚钱的还是公司业务。公司业务的数据量不见得比移动互联网应用小,而且他们有钱。由于目前没办法,公司业务都是找oracle这种公司来处理,而且对性能没有要求。其实不是真的没要求,而是没法要求而已。
我觉得比较有前景的,是如何将索引分布,理论来说这是可以做的。一致性哈希,DHT,都有希望。问题是目前来说,安全的写入分布式的索引本身好像也是要锁的,这就没意义了哈。 我还没想过分布式的索引本身写入锁的冲突概率是多少,能降低一个数量级就值得玩玩看。

2011年11月9日星期三

openwrt配置——自动重启openvpn

    还记得如何配置openvpn么?手工配置有个问题,当我ppp0连接断掉,需要重启路由器的时候,网络会短暂的断开。然后,openvpn就失效了,导致各种混乱后果。为了解决这个问题,我测试了一下,做了以下设置。
-----/etc/hotplug.d/iface/30-openvpn-----
#!/bin/sh

[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] &&
[ -z "`/sbin/ifconfig tun0 2>&1 | grep inet`" ] && {
        /etc/init.d/openvpn start
}

[ "$ACTION" = "ifdown" -a "$INTERFACE" = "wan" ] &&
[ -n "`/sbin/ifconfig tun0 2>&1 | grep inet`" ] && {
        /etc/init.d/openvpn stop
}
-----end files-----
    好了,你重启外网连接的时候,就会自动连接openvpn。

参考:
OpenWRT下的动态DNS(用3322.org的服务)

2011年11月8日星期二

几个模板系统的性能对比

    对比目标,jinja2,cheetah,mako,webpy,bottle,tornado,django的性能。
    方法,随机生成一个二维数组,第一列是自增数据,第二列是长度为100的随机字符串,然后生成html,比较一次生成的时间。
    说明,如果模板有编译缓存,打开。有其他方法加速,打开。生成缓存,关闭。不计算随机数据生成时间,一次生成后一直使用。
    以下是文件有效内容,没用的都略去了。最后的顺序是因为我根据结果整理了一下调用次序。
-----testcheetah.tmpl-----
    <table>
      #for $i in $l
      <tr>
<td>$i[0]</td>
<td>$i[1]</td>
      </tr>
     

2011年11月6日星期日

openwrt配置——arptables配置

    让其他人的设备无法使用网络。
opkg install arptables

--------/etc/init.d/arptables--------
#!/bin/sh /etc/rc.common

start (){
        arptables -F INPUT
        arptables -A INPUT --src-mac aaa -j ACCEPT
        arptables -P INPUT DROP
}

stop (){
        arptables -F INPUT
        arptables -P INPUT ACCEPT
}
--------end files--------
    注意,千万把自己的mac地址写对了,否则一个/etc/init.d/arptables restart下去,你自己的机器就断线连不上了。不过一般来说,重启后arp限制会失效,因此可以重启来去掉限制。实在不行也可以拔下U盘,在电脑上进行mount和修改,然后再插回去启动设备。根据测试结果,内网还是可以访问的,不过路由器无法访问了。有一个链叫做FORWARD,也许改这个可以解决。但是我没有找到相关资料,因此没有下手。

2011年11月3日星期四

Openwrt pptp passthought

    你还在为使用openwrt路由器无法使用pptp客户端而烦恼么?请看这个页面。按照他的说法,输入以下句子就可以解决你的烦恼。
    If you use a pptp client behind an openwrt router, and pptp tunnel not work, look at thispage.

opkg update
opkg install kmod-ipt-nathelper-extra

    这个方法不仅对路由器内使用一个pptp有效,而且对多个pptp也有效。
    It's work for both single pptp tunnel and for multi pptp tunnels.
    然后,记得重启。
    Remember to reboot router.

2011年11月2日星期三

SHLUG Summit 2011

这次有我的演讲,转一下转一下,大家来捧场。

---------- Forwarded message ----------
From: ghosTM55 <ghosthomas@gmail.com>
Date: 2011/11/2
Subject: [shlug] [公告]SHLUG Summit 2011
To: shlug <shlug@googlegroups.com>


Hi all,我们SHLUG的2011年年度大会来了!

作为惯例,我们的年会会面向Linux新手以及初学者来进行Linux的宣传与知识普及,这次也不例外
这次我们将会来到松江大学城,在东华大学进行一场200人规模的交流会,欢迎有时间和兴趣的朋友一同前去参加

时间: 2011年11月6日(周日) 下午2点
地点: 东华大学 松江大学城校区
报名: 不需要
入场费用: 不需要
演讲主题:
 * 如何成为一名黑客
 * Debian GNU/Linux介绍
 * 实战Linux网络部署
隐藏关卡:
 * Ubuntu 11.10 Release Party

和去年一样,在这里我需要:
 1. 一些朋友能够来帮助到我们运维好本次SHLUG的年会(拍照,摄影,现场话筒传递,入场引导等)
 2. SHLUG的朋友在参与活动的时候尽可能坐在教室后排并请勿在演讲过程中大声讨论问题
 3. 大家对于此次活动的线上以及线下的帮忙宣传

在这里需要感谢东华大学开源社区的同学们的积极配合与帮助,为我们奔波于松江大学城各高校进行宣传
并且为我们找到了能够容纳200人的教室(具体教室号码尚未确定,我会在列表以及blog中进行更新,请持续关注)

欢迎各位参与本次年会并向我提出建议,谢谢

--
Thomas
Shanghai Linux User Group

http://ghosTunix.org
Twitter: @ghosTM55

2011年11月1日星期二

收稿子啦,宅男买数码

    淘宝上东西很多,360buy东西也很多,电脑卖场多如牛毛,听起来买个数码产品是个很容易的事情。其实才不是呢,尤其是对于对数码有要求的宅男来说,买个设备要多困难有多困难。
    贝壳上淘宝买一个充电器,要求也不高,5V/2A,可以用于我的台电P81HD平板。OK,上淘宝,找第一个卖家,狮王的四口充电器——结果,总电流不足,退货。第二个卖家,瑞能官方店——结果,有高频分量,在充电时无法正常操作,目前还在协商中。第三个卖家,三星的充电器——结果,充电有高频电流声,温度很高。gary说,他有个DELL的充电器也有类似问题。我很高兴的说,那是没事咯?他说,结果,爆了,连带烧了整个房间的电闸。然后拆开塑封看印刷,粗糙,肯定假货无疑,强行要求退货。第四个卖家,上去问,有货么?有货。真货么?真货。确定么?确定。我这么说吧,我不和您讲道理,到手后,我找三星干活的兄弟看。他说真货我就收货,他说假货我就退货,连邮费一起退。不退差评。
    ——先生?
    ——您好?
    ——还在么?
    OK,这就是淘宝的品质。当然,我不是说淘宝无好货。Thomas老婆在淘宝上买的DIR-825路由器还是挺好用的,我在上面订花什么的也不错。问题是,对于产品挑剔的宅男来说,在淘宝上买东西是一个艰难的抉择。应该说,淘宝基本无真货。
    那么京东之类的电子商城呢?
    贝壳买过他们的两箱秋叶原六类线,结果其中一箱的中心龙骨缺失。我问他们怎么回事,他们就只负责退货。还好,退货,换发票的过程都是OK的,但是没有一个人出来说一句,这是为什么,也没有人道歉。看看京东上面比较热门的东西,基本都能看到旧货贴。啊——运气不好,终于让我碰到旧货了。看来他们也没靠谱到哪里去。
    那咋办?
    OK,贝壳简单说一下一个想法。
    贝壳会收集您的文章,包括某个数码产品,您的购买时间,价格,个人评价,当然,最重要的,购买方式。因为文章要发在贝壳的blog上,所以您需要同意内容以cc-by-sa3.0相容版权发布。当然,文章会署您的名字。收集文章的前提是,我得认识您。您和贝壳是在哪里吃过饭,您帮贝壳解决过什么问题,物理世界里面互相有过交流。只要认识,我就会贴出,或者转发您的文章。注意,需要反复强调的是,里面需要提供购买方式。贝壳不介意那个卖家和您有没有亲戚朋友关系,只要这个东西是可靠的。为什么可靠?既然我认得您,我就相信您。一个人钻研半天技术,只为了其他几个宅买几样东西而说谎,这是不值得的。就好象贝壳写那么一大堆技术资料,开这么一个blog,不会为了几个钱的回扣专门骗你一回。因此,如果你认得贝壳,这个事情也是比较有保障的——至少你不会故意的被骗。至于运气好坏,个人感觉,这个就真不好说了。所以,如果您不认识贝壳,只是经常跑过来看技术资料的——那,就看您信不信了。不管您信不信,反正我信了。
    而对于来挑选东西的宅男们,贝壳要说明的是。贝壳买东西的风格,是偏好产品的用途和质量,而无视价格的。所谓无视,既包括可能因为某个卖家不靠谱或者某个型号不靠谱而购买相对比较贵的产品。也包括某个东西虽然名声不显,但确实很好用,而无视东西的品牌。因此,您可能会问,为什么贝壳这里只介绍DIR-825路由器,还有那么多更物美价廉的呢?例如buffalo的某款。首先,可能因为贝壳的朋友只有人用过DIR-825。其次,贝壳知道buffalo的路由器都是单AP,而贝壳本身是一定需要双AP的。或者您也可能会问,为什么我们对苹果这样的东西,周边居然配了一个名不见经传的充电器/触摸笔。实话说,只要好用,我不在乎。
    另外,我也希望从文章中挑东西的人,把您的经历也附加在下面。包括您买了同样产品,感觉如何?其他产品,好不好用?这也是给后来者一个借鉴。
    好吧,废话半天,现在贝壳开始征集稿子了。

PS:个人希望,如果有买了小米手机量产版本的小白鼠,能够跳出来说说情况。贝壳希望入一个,可是网络上说法满天飞,不知道该信谁啊。

2011年10月30日星期日

P81HD,以及任意一种Android的翻墙

    假如,你有一台Android,不能刷机(厂家没提供ROM,也没有源码,而且可能锁了bootloader),没有ip_gre模块,没有tun模块,连iptables_filter模块都没有,那怎么办呢?没有第一个,就无法使用pptp/l2tp的内置VPN,没有第二个,就无法使用openvpn,没有第三个,就无法使用sshtunnel。如果你运气不好,这个东西连root都没有,肿末办?
    很简单,你得先弄到Opera,注意Opera Mini没有测试过,据说不行。然后准备一台vps,上面不但要开ssh,而且必须在机器上有个代理。然后在地址里面输入opera:config,看到设定了?下面有一项proxy。按照参考[1]的方法设定代理,地址设定为127.0.0.1:1984。注意不要写成localhost:1984,后者不一定认。代理服务器用sshtunnel,注意不要用Socks5翻墙,必须用http模式。打开看看?是不是可以了?
    原理很简单,sshtunnel使用redsocks来执行的全局翻墙。根据参考[3],redsocks是通过iptables规则来将所有连接重定向到自身,然后包装成代理的。由于iptables_filter模块缺失,或者干脆没有root,这个路子走不通。但是启动sshtunnel后1984端口的翻墙链是好的,只是程序都不使用而已。Opear又给了我们一个自行设定代理的能力。因此,结合使用两种方法,能让你在没有模块,没有root的情况下,自行拥有翻墙能力。由于Opera只支持HTTP代理,因此你必须满足http代理翻墙要求(远程服务器上有代理,不启用socks5模式)。

参考:

2011年10月28日星期五

一个充电器的小问题

    我不知道我的blog读者有多少是使用手机/平板来看我的blog的,估计不会很多。但是如果说有多少人用电容屏手机/平板,那估计不会少。那有多少人知道,充电器选择不好会导致触摸屏出现问题呢?
    今天贝壳就有幸碰到了这个问题。P81HD,买了一个单独的蓝魔的线进行充电。USB2DC,2.5mm头,内正外负。不知道有多少人看出来了,DC的电气特性和USB有个很大的区别——不是,我不是说没有信号引脚,当然DC是没有信号引脚的——最大区别在于,USB定义了一根地线,而DC没有。因此DC的屏蔽能力比USB差一点。差多少呢?如果你的充电器是2口的,那就是没区别。。。
    不过,无论充电口怎么设计,电气参数都是5V/2A。从ipad以后,这都成了usb充电器的标准最大功率了。另外科普一下,usb的四种常见电流,100mA,500mA,1A,2A。100mA是电脑连接小型设备时的默认功率,500mA是电脑USB口的最大输出电流。1A的就是手机充电器/非标准电脑口的输出电流了。至于2A,这是非标准功率,ipad用的。
    5V/2A的功率是相当大的,在使用的时候,如果充电器不好,会造成触摸屏不灵敏,甚至无法工作。贝壳的P81HD配合上瑞能的充电器(旗舰店出的,应该是正品),在一个手指点击的时候,会出现额外的触摸。本来点在左下角,在右下角会多出现一根触摸点,一跳一跳的。本来贝壳自己还想不通是什么理由,周四聚会的时候,旁边的LTN同学给出了答案。如果你用了不合格的充电器,会导致你的手机无法在充电时使用。具体可以看这里。简单来说,所有便携式开关电源,都会造成电容屏手机无法正常工作。不过有些开关电源做的比较好,在输出上加了滤波环。如果自己使用带有滤波环的数据线,一样可以缓解这个问题。
    我找瑞能旗舰店的人反映,他们说让我打客服电话。先打了一个福建的电话,0595-22636088。接电话的是个售后,我描述情况后,他找了一个技术。技术告诉我,这情况他也没碰到过,我是头一个反映的。他们也没有办法,要退货找瑞能旗舰店的人。然后,旗舰店的又给了我一个电话,是800的全国电话,8008585185。打过去,这个客服靠谱多了,说这个情况他们见过。一个iphone用户,也有类似情况,重启后问题消失。我说我重启N趟了,他说,这个就不知道了,我找技术问问。
    不得不说,人家做服务的态度真的非常好。过10分钟,电话打过来了。说,他们的产品都是经过严格的出厂检测的,应当不存在输出电流不稳的情况。我这个情况有可能是因为在使用时,瞬时电流超过2.1A,导致软件故障。我说,你知道我的设备的功率是多少么?他说,不知道。我说,电池是3.7V*4Ah的,应当是15Wh左右。可用5小时,功率应当是3W。除以输入电压5V,电流是600mA。如果充电电流维持2A不变,加入一个0.6A的工作电流,你这个充电器早严重超载了。这个理由说不通。他说,那要么你去我们上海的维修点,带着设备,他们会给你当场测试。如果确实不解决问题——你那里买的?我说,淘宝的瑞能旗舰店。他说——那个没事,他们会当场给你退货的。如果设备烧掉了,我们也有保险的。
    当然,说是这么说,不过地址是在南站那里,贝壳过去太困难了。反正我把这个过程说给猫咪听,她说,废话什么,直接给差评得了。卖家的东西在客户这里用出问题,应当负责运费给换一个。让客户自己带来带去非常不负责。然而作为一个死理性派,贝壳比较反对没有弄清事情就直接下结论,何况人家态度很好。(当然,这些承诺你信不信就是另一回事了)因此打算找个人检测一下输出,看看是否带有交流。
    然后,贝壳和小强说起这个问题,小强借出了他自己的ipad充电器。这个是上海苹果官方店里面买苹果附送的,带序列号,绝对正品。接上去——一样不行。可见并不是瑞能的问题,而是P81HD的屏幕太容易受到干扰了。当然,瑞能和苹果充电器本身有高频分量是一定的。为了解决这个问题,贝壳行险,在淘宝上买了一个三星galaxy的充电器,就是thomas借给我的那种。到货接上去试了试,一点问题都没有。这说明,三星的充电器在质量上比苹果的好多了。

2011年10月27日星期四

ApacheBench在性能分析时的一点注意

    废话不多说,上干货。
    简单来说,如果你用ab压网站,发现很多Failed requests。只要这些都是Length,就不算数。

2011年10月25日星期二

浮生半日

   先说一下,文写的是上上周去北京的事情,因为前面堆积的文太多了,所以拖到现在才发出来。
   早上先去了中关村。这次出来匆忙,忘记带usb数据线和otg线。结果跑到北京发现,要多呆几天就势必难免需要给手机充电。而我带了移动电源,却忘记带数据线。。。
   好久不去海龙,里面的商贩更加乱来。一根USB数据线,开出天价来。开始一个开20一根USB,35一根OTG。USB成本一般就是1元,最高不会超过5元。老子就算是旅游,也不是来当冤大头的好吧。何况老子15年前就在这买电子产品了,那会你还不知道中关村在哪呢。换下一个——我靠,改30了。再跑到HTC的专卖店,更加夸张了,看了一眼接口,报价50。恩,莫非是我没说明白。G2手机的数据线比较特殊,是T型口多一个角。这种线无法连接其他设备,但是普通USB线可以连接这种手机。我只是要一根普通USB线——50。
   好,你狠,我找下一家。下一家倒是靠谱很多,USB线10元,OTG20,虽然小贵,但是可以接受了。而且USB线和OTG的质量颇好,不算太冤枉。我干脆就让他们介绍一家3G上网卡店(通常介绍客人过去都是有回扣的,或者有合作,关系比较好)。中兴MF633的上网卡是在说明中明确表示支持Linux的,不过他们没有。所以我就挑了一个别人测试下来,肯定P81HD肯定支持的网卡,MF190。他们开价190,比淘宝贵了30。好吧,去掉邮费,这个也算合理利润。何况我要求现场试货,可退还的。
   测试下来,一切正常,我现在有3G上网能力了,很高兴,于是紧接着,乐极生悲了。我的P81HD挂着耳机线,出门的时候剐了一下,摔地上,贴膜喇伤了。真是无妄之灾,幸好,这个可以破财免灾。找个贴膜的,说P81是8寸4:3,尺寸特殊,需要裁。裁就裁吧。贴膜的是个汕头来的女的,手艺还不错。整个膜的中间没有气泡,手感比上个膜好,只要20。唯一的问题是屏幕下方部分边角,没有贴合平整。
   午饭还是在鼎好楼上吃的,依然是京东肉饼和酸梅汤,上次和猫咪一起吃的东西。不过今天的人更加少了,看来附近卖场一家接一家开门,对他们生意造成了很大冲击。酸梅汤比上次给力,可是肉饼却太难吃了。吃了半个,实在没胃口,加买了一些锅贴——呕,比肉饼更难吃。我看午饭就这样吧,再吃下去保不齐是个悲剧。
   猫咪说有空带点吃的回去,下午就跑一趟王府井吧。中关村去王府井最快的方式是四号线,中间要过西单。我索性在西单下车,逛了逛西单商场和图书大楼。大楼前的景观如故,就是稍显破旧。西单的一堆商场人山人海,比以前热闹多了。不过可惜的是,以前连着的两家KFC全没了。吉野家开了进去,外面修了一个小楼卖衣服,小下沉广场完全看不出样子了。临街一堆卖衣服鞋子的小店全拆掉了,改成了大卖场。周围车多,人也多。人不管车,横冲直撞。车怕人,左躲右闪,步履艰难。今天还看到了一辆京?00010的车,开的倒是很规矩,红灯停车,避让行人。不知道这种车的车主跑到西单来干嘛,不会是来买东西吧。。。
   西单到王府井不远,不过我不高兴坐地铁了。过地道坐99路,一路能看到天安门广场什么的,算是短途观光吧。西单地道里面已经有警察站岗了,里面一个卖艺的都没有。这里曾是西单女孩起家的地方,现在西单女孩上了春晚,这却没人卖艺了。不止地道,整个图书大厦前面,还有左安门车站,都是密集的警察执勤。不知道是惯例还是今天有什么事情。
   王府井这地方也算挺熟悉的,以前有空进城来玩,一个选项就是王府井。现在车水马龙更加了不得。不过热闹归热闹,其实商业氛围非常浮躁。我在王府井走了半天,找猫咪要吃的东西。结果连食品商店都没几家。大多数都是金店,工艺品店,高级餐厅,服装,玩具。日用品和食品几乎没见到。就算有,我找了一圈也没有。走的腿都快断了,好吧,试图在商业购物中心找日常吃食是我的错。说打算找一家一茶一座给自己的设备充电,顺便上个网,休息一下,喝点东西。点评上找到一家,走过去,保安说这里现在没有了,要走更远的路才有。好吧,别的店也可以,只要有电源,我自己有3G网络。不过我走了10多分钟,没有一家店里面有电源的。我了个去阿,我在南京路上随便找三家商场,问他们的保安。基本就能找到一家店,廉价的休息喝饮料,而且还有电源。好容易找了一家星巴克,居然还客满,没地方坐。好吧,鉴于我腿实在受不了了,我干脆到大食代去坐坐吃东西,顺便找一家小店给我的设备冲个电。
   今天在大食代碰到几件很有意思的事情。我刚开始吃锅贴的时候,有一对夫妻在吵架。男的是广东口音,女的是北京口音。量过人吵架的事情,听起来也有地域风格特征——但不是地域歧视哦。好吧,听夫妻吵架比较无聊。然后是喝果汁的时候,看到两个中国人样子的人在说英文。当他们两个不说了,我用英文问了问其中一个,样子比较像白领的年轻男性。他说他是新加坡人,所以只会说英文。我再稍微听了点他和老板的谈话,老板和他一样,是新加坡人,跑到中国经营一家小小的店面。老板说,也说不上喜欢不喜欢,反正就是混饭。白领样子的青年说他是来中国旅游的,去过一大堆地方,具体我记不请了,只记得一个蒙古。老板问他蒙古如何?他说还不错,不像想像中的差。
   在这个男人的旁边,是一对打扮入时的年轻姑娘。最奇怪的是,两个人用手语交谈。神奇之处在于,两个人一边吃东西,一边用手语交谈。甚至端着一个碗,打手语,喝一口,打手语,换手,打手语,夹菜,还是手语,吃下去,手语继续。看起来好像日本的手印表演一样,但是不是特意留意这桌,一点看不出突兀。看来无论什么情况,八卦都是女孩子的天性和本能。更奇怪的是,两个人手语流利,显然都是长期使用的。作为残疾人(没有鄙视的意思),两个姑娘都穿着入时,不知道她们是什么情况。
   再旁边,是两个老外,老老实实吃东西,没啥好说的。老头很像好莱坞电影里面的美国农场出来的顽固老头,旁边的女士不时的根他说话,他就是简单的点头,吃饭,吃饭,点头。旁边的女士一点也没有奇怪的和他继续说,他也没有不耐烦,用筷子夹起——一颗鱼丸?!我去阿,哪个美国顽固老头在好莱坞电影里玩出这手都可以当成杂技了好吧。说话间,外国老头又熟练的夹起一颗鱼丸吃掉。
   再旁边——好吧,我都奇怪为什么在短短一个小时内,能让我看到这么多有意思的东西——他们是一堆青年男女,男的坐左边,女的坐右边,有个坐错位置的,和旁边人贴的很紧——为什么你懂的。一帮人的年纪都不大,看起来像高中生的样子。他们的奇特之处在于,他们中有一半白人,而且是金发碧眼白皮肤,白到发红的正宗白人。当然,仅仅是这个还没什么奇怪的。问题是,其中有一个白人男孩身边是亚洲女孩,一个白人男孩身边是亚洲男孩,剩下的人不停的在照相。绯闻女孩剧组出外景来北京了?
   出门来,看到一对情侣。男的很正常,女的穿着执事服,梳着两个包包,单从头发来看,有点像银魂里面的神乐。画着很夸张的妆,一看就是cosplay。不过刚刚看的奇怪事情已经够多了,再来一个我也不怎么奇怪了。

From P81HD

旅行感想

    大巴最好的位置在中间靠前,靠近门的位置。后面比较颠簸,下坡的时候刹车片又有味道。前面出事故的时候比较严重。
    每次履行都肯定有计划外的支出——还不包括购物和消费——说白了就是明抢一票。很多消费,明面上说是非强制的,但是你不缴,肯定麻烦多多。这次旅行,几乎必须缴的自费项目有(没有强制项目),大理古城电瓶车,一人30,观光缆车,一人172(事先在旅行合同中说明),玉龙雪山景区车套票,一人50(事先在旅行合同中说明)。洱海游船,上船是站着的,要座位要么抢,要么15一人包座位。
    跟团旅游,赠送景点基本是不去的,除非这个景点不但不收门票,而且反而会给旅行社人头费。当然,给人头费的理由是客人在里面要有可观的消费。路上时间基本是忽悠的,导游告诉你一个小时,那差不多按照一个半小时来计算就好。搭配景点基本是不值得看的。要评价旅游项目,就要看主景点的名声和时间。尤其注意细节。例如大缆车可以看看雪山,小缆车基本就白来了。
    组团的几个常见问题是,餐标太低,不接受地陪投诉,变相购物,行程太紧。旅行团价格战的结果就是,大部分团的餐标都很低。桌子上吃的都是很难吃的东西,这就失去旅游的乐趣了。要自己加餐,一个是餐馆必须接受,另外如果用餐时间过长,其他客人等待,大家有意见,导游也会催。
    很多旅行社写明,对地陪导游的投诉必须在旅游结束时的地陪卡上反映,回来后不受理。您别傻,这就是不接受地陪投诉的意思。您别以为有问题等旅游结束的时候可以在意见卡上反应,好点的情况是,导游到一半的时候,就找你们来填卡了。要么是填了卡才敢给你出问题,要么就是你人还在导游手里,人生地不熟,有意见敢写么?差点的情况,据说有导游上车就让你填卡的,你是填呢,还是不填呢?最糟情况是,你连卡都见不着,导游直接找了几个人,自己填掉了。所以,凡是不能以行程结束后多少天内为基准进行反应的投诉,一概可以认为是不接受投诉。
    至于变相购物,这点见仁见智。我出去玩,大部分时间都有购买当地特产。作为买家,我总是试图买个物美价廉的东西。不过,除非是当地人,否则物美价廉是不可能的。所以购物基本呈现两级特征,高价正品,还有低价无保。如果购物能够事先说明,符合个人需要,并且能负担部分旅游费用,那我也不介意购物。然而跟团购物的问题是,导游往往会为了利益,使用不违规的最大力度促销。这样完全失去了旅游的乐趣,变成购物了。云南这里号称没有进店,但是导游在车上会介绍螺旋藻,翡翠什么的,不能不听。要买,到地方一会就买了跑。导游直说,他工资都是从里面赚的,我们购物的钱,他提百分之三的介绍费。然后这些钱要缴掉百分之七的税,在一个月没有投诉后拿到手。这个算不算购物,是否影响心情,就自己评价吧。
    最后一个问题,就是行程太紧,这点最影响心情。为了增加卖点,旅行社总是试图在短行程内加入最多的景点,很多客人也以为景点越多越好。其实每个景点多少时间都有相应的评估,旅游总体时间以这些时间略宽松为好。相对来说,自由行给出的时间评估都是比较准的。如果一次旅游上景点过于密集,那么每个景点的时间就会减少,景点间的路程还会压缩时间。最后就变成了上车睡觉,下车尿尿,到景点拍照,回家什么都不知道。
    如果自己出行,长途旅行最好的方式是使用公众交通,例如火车,飞机,等。自驾游通常限于不超过400公里的城市。原因很简单,不疲劳驾驶的情况下,最高可以一个人驾驶3小时,中间休息一次就好。即使高速上开到120,也就360公里,加上头尾,自驾4小时出去玩,已经是单人驾驶的极限。再远,需要多人轮流,而且车上太累,不如直接火车飞机。
    到当地后,有条件的可以租车游玩,没条件的可以包车游玩,最没条件的公众交通。不要随意跟团,团很不自由。要跟团索性在外地直接定好了团过去,到了当地跟团就实在没必要了。不过三种方式各有缺点。租车需要熟悉情况,碰到当地人拦路收费,野外抛锚没信号,虽说不一定出事,但是一定影响心情。包车一定要熟悉师傅,最好找靠谱的朋友推荐,否则不出事则已,一出事非小。就算拉到个山沟沟里面涨价,你也没什么办法的。公众交通不封闭上下,要注意哪里上车,哪里下车。尤其在一个陌生的地方,需要自己处理所有问题,比较辛苦。
    出发前,先确定你所需要的东西都带上了。如果去西部游玩,尤其注意带一个3g混合路由器。西部往往有时没有手机信号,有时只有普通网线,有时只有手机信号没网络。所以同时支持手机3g和有线,又自带电池的路由器相当有用。当然,如果您不是个计算机控,那当我没说。我只是假定来看我blog的都是计算机控而已。长期坐车的,带好围着脖子的靠枕和眼罩,耳塞。准备点黄连素片和蒙脱石散,闹肚子和便秘是旅行常见麻烦。
    其实个人认为我们需要旅行社做的,最好是来回机票,酒店预定,景点门票。前两者有,叫做旅行社自由行套餐。最后一个我不知道有没有。

From galaxy

2011年10月23日星期日

小悦悦。。。

    已经没什么好多数了,早在数年前,我曾说过,彭宇案不改判,中国社会迟早会路见不平,袖手旁观。不出两年,老头子摔伤已经没人敢扶。不出五年,小孩子被车压伤已经没人敢救。再过五年,就算街当中有个MM被当众勒索强暴也不会有人管了。
    不知道现在彭宇案的主角们如何了,趁着人在,赶快改判是正道。不仅是彭宇案,类似案件也必须全部改判。法院,包括高法必须向社会道歉,以扭转这个风气。
    另外顺手提一句,也别骂小悦悦案子中路过打酱油的那帮人了。幼童摔倒碾伤,司机不下车救助是法律问题,没有做到,当罚。父母未尽看护责任是法律问题,当骂。如果确实生活所迫,力不能及,当责。责怪路人者,是否自己在类似情况下能挺身而出呢?如果可以,彭宇案的时候,您有没有为彭宇挺身而出,上诉不平呢?
    我只能说,景德镇这个地方,除掉部分在监狱中的人,和部分精神病人外,谁都没资格责怪路人。

2011年10月21日星期五

十月五日

    今天本来安排了鲜花集市,不过猫咪对这个兴趣不大。我们就和导游说,放弃了这部分行程。今天广州还来一位同学,云南局的同学带着我们和他们去民族村。
    中午我们又在乡村小榭吃的午餐。这次云南局同事做东,人又多,就多了好几道菜。茉莉花炒鸡蛋很有特色,小米椒炒罗非鱼也很赞,就是辣了点。广州的同学刚刚结婚,这次是来休婚假的。他们刚刚结婚,比较辛苦,所以上火了。吃吃这些东西很好吃,就是不敢吃太多。
    下午我们就去了乡村小榭旁边的民族村。不骗大家,真的很大。我们一点不到进去,到四点半五点出来,只逛了一半多一点。建筑很有各个民族特色,可是对于我们不搞学术的游客来说,实在是记不住什么。藏族,摩梭人比较出名,也许还会记得。傣族侗族彝族瑶族白族比较大,能记得名字,可是却想不起文化特征。至于纳西族,我算是认得他们了。傈僳族,它牛族,独龙族,回头谁还记得啊。民族表演,跳的很热闹,我也说不出和阿里郎的区别。实话说,一段时间里挑一个特色民族,和游客深度接触,倒是比较好的让游客体验少数民族风情的办法。
    广州的同学很幸运,他们加上婚假,正好错开了国庆高峰,逆峰的结果就是超便宜的买到了去丽江的机票。他们和我们时间差不多,但是节约了车上的时间,又错开高峰不用排队,所以可以定定心心的走完所有的景点,例如我们没去的崇圣寺。唯一的缺点是门票价格太高。例如石林175,旅行社票价只要130,差不多25%的折扣。我们的所有门票大概1000-1100,旅行社大概700-800能拿到票。不过贝壳觉得还是这种旅游方法比较有意思。没有太赶的行程,没有早出晚归,有好吃的食物,这才叫旅游啊。

From galaxy

2011年10月19日星期三

十月四日

    云南行更新停了好久,中间好多事情。贝壳去北京出差拉,P81到手拉,jobs挂拉,上海地铁出问题拉。OK,事情差不多了,我们继续。

    今天的行程比较简单,七彩云南,石林。我们大约八点出发,十一点左右到了七彩云南,在里面停留到下午两点,包括一顿午餐。
    据说七彩云南是云南旅委的强制要求,凡是经过昆明去石林的旅游团都必须去。里面是很多旅游周边商品,主要是玉石和茶叶。据云南局的朋友说,七彩云南的东西绝对没有假货,但是价格比市面上贵出两三倍。今天去看的时候,银价是31元。翡翠看起来很漂亮,导游车上也介绍了很多辨识的技巧。不过大家千万记得一点,不懂不买,半懂更不要买。一点不懂,知道自己不行,买东西手下都有分寸,或者认品牌,或者托朋友,总之大多不会被乱斩的。但是懂一点点,往往就不知道分寸,仗着自己"内行"在那里乱买。不懂到没事,吃亏大部分都是懂一点点的。不仅是翡翠,大部分的东西都是这个道理。
    里面的茶叶大多是庆丰祥茶庄的,都是好东西。不过云南的大叶滇红,就是贝壳喝过的那种月光金枝,居然买到180。这个茶叶的正品贝壳查过,前年买到90,不算通胀贵了一倍。庆丰祥茶庄为了促销,还搞了茶艺表演。不过根本没什么东西。茶叶讲解一句不提茶文化,如何喝茶,如何拿杯子。全部都在说茶叶如何增值,如何保健。讲解员搞促销,茶艺师一字不发。而且居然喝过滇红的杯子直接喝熟茶,再喝生茶。其余什么普洱茶只要通风也说的出,完全没提避免日晒。当然,你买了茶会不会提醒贝壳就不知道了。
    我们不会不买,会的,知道在宰客也没道理伸头出去。所以就买了点土产,蘑菇,精油什么的。好歹不贵,又是完全不懂,眼不见心为静。一方面带点特产回来,一方面也算对导游有个交代了。
    另外,特别点名批评一下他们的午餐,还有驴妈妈网站,七彩云南购物点两个单位。自助餐,吃的不怎么好,而且管理混乱。我们排队十多分钟才轮到,他们一位叫朱继年的工作人员告诉后面一堆人,不用排队了。结果我就发飙了,当场骂了回去。然后我向导游投诉,他说这个事情需要直接向七彩云南反应,不归他管。但是我在园里又找不到投诉电话,所以打算回去投诉。另外,我也挺质疑他们的翡翠茶叶半年退换承诺的。对着还在园内的游客,管理这么差,投诉电话都找不到。对远在他乡的顾客,如何保证兑现承诺?
    七彩云南过后,就是石林。石林是彝族自治区,所以当地男的称阿黑哥,女的称阿诗玛。导游是当地的一位阿黑哥。他笑称石林是远看大石头,近看石头大,大人看脑袋,小孩看屁股。果然,里面人山人海都是人。景色还算漂亮,不过很多石头由于被游客反复抚摸,已经出现了类似包浆的效果。石林景点一般只来一次,第二次就没意思了。

From galaxy

2011年10月18日星期二

jobs

    不是果粉,不想跟风。
    不过他的想法实在的改变了这个世界,仅这点而言,值得我们记得,有这么一位人,在世界上走过。

2011年10月17日星期一

P81HD的特性和问题

情况简介和简评
1.续航问题
    5小时,正常使用没有问题,包括看电影。如果比这个短,那就说明你在待机时有程序在工作。这个细节不解释。如果开启3G,或者拖其他OTG设备,大概会减少到2小时左右。
2.3G问题
    别的不敢说,配送的eth网卡和MF190联通3G网卡可以顺利支持。
    接入3G网卡后自动识别,大概需要20s启动和初始化。监控流量可以用3g watchdog。我一个月包了200M,估计用不掉。
3.物理按键问题
    Home键的设计者是个白痴,这个键能不能换个地方?我每次拿的时候,都很容易误触。待机就唤醒,开机就程序消失。此为P81HD最白痴的特性,没有之一。
    没有物理的回退键也是个错误,状态栏经常崩溃,消失后系统就没法用,没有回退键。有时会自动启动,恢复正常状态。有时三五分钟依旧不恢复,必须重启机器。这是P81HD第二白痴的特性,没有物理回退键,学3.0用状态栏,状态栏又不稳定。
4.屏幕问题
    屏幕很清晰,但是细看的话颗粒很粗。从右边和下边看,屏幕发黑,典型的非IPS屏问题,视角很小。
5.性能评测
    实际能够使用的最大内存是282M,其余应当是系统使用了。去掉系统进程后,可以用于程序的内存大约是150M。CPU基本都够用,安装和删除程序很快,输入无卡顿。3D加速一般,切水果时略卡,可接受(我打了550多分)。看flash的时候有小幅卡顿,不严重,可接受。有少数时候,系统会失去反应。怀疑是内存耗尽,回收导致CPU耗尽。发生频率不高,每次大约需要10-20s恢复。在驱动3g/同步/后台发生其他行为的时候,前台程序明显很卡,甚至会丢失按键,严重时无法流畅使用。估计是前台程序的优先级调整有问题,在htc g2上也有类似问题,可能是android系统的通病。使用双核的系统明显没有这个问题。
6.手感问题
    512g,略重,再挑的时候希望轻一点。由于Home键的存在,手持的时候总要避开下方,并不很方便持拿。
7.零散错误
    在首次连接3G网卡的时候,出现方向显示和输入错误。现象是显示方向和正常一致,但是点击左边,右边出反应。
    在连接3G网卡的时候,反应缓慢。怀疑是由于开始同步和3G驱动导致CPU大量被使用。
    周边的点击有时会错位。
    有时莫名其妙死机,需要捅菊花。一周内发生十多次,不过其中有一多半发生在系统调整/安装程序的时候。

可解决的,或者不是问题的问题
1.root方法
    这不是个问题,装GingerBreak,直接重启,不多废话。
2.充电问题
    这是P81HD历来反应的第一问题,其实P81HD充电问题不一定和root有关,我没root的时候也碰到过。主要是这样的。你插入充电器,看到充电符号的时候,其实充电器不一定工作。只有你看到电量上升,才代表充电器工作正常。而且,当线被动过后,也可能会变成假充电状态。有充电符号没有实际充电。
    设备不支持USB充电,但是很幸运的,充电电压是5V,电流0.5-2.5A。所以你可以买一条USB2DC线路,将USB的5V电压直接充上去。原装的线也太短,不爽。
3.不支持联系人/日历同步,没有gtalk的问题
    默认的rom里面没有,你可以从这里下载到合适的apk文件。这些是从我手机(htc magic chock4 2.2 rom)中提取出来,2.2用的。安装后可以正常工作。
    本地下载链接(请不要盗链):GoogleCalendarSyncAdapter.apk GoogleContactsSyncAdapter.apk gtalk.apk
4.不支持的程序
    不要用flash11,至少到目前为止不行。用flash 10.3就好了。链接在这里
5.wifi channel 12/13
    中国设备规范中都不支持这两个频道,不要想了,在中国你就不应当使用这两个频道。
6.wifi tether
    默认机器是不可以adhoc的,不但不能接入其他设备(例如手机)开的adhoc,而且连自己设定里面做的wifi共享3G的功能都不能用,用之会死机,必须捅菊花。不过你可以用barnacle这个程序。这个程序很牛,可以绕过wpa_supplicant工作,直接将wifi置于adhoc模式。这样其他机器能看到这个共享点。但是注意,由于android无法连接到adhoc,所以,你手机做出来的wifi热点电脑能用,P81HD不能。P81HD做出来的,电脑能用,手机不能。

不能解决的问题
1.adhoc连接问题
    android设备无法连接到adhoc网络。据说这个特性是wpa_supplicant过滤了adhoc模式的所有网络所致。如果我闲的蛋疼,会去研究一下怎么绕过这个机制。直接使用网络上的补丁会导致网络无法连接。
2.vpn问题
    默认没有额外的kernel modules支持,没有openvpn文件,没有busybox工具。busybox可以安装busybox installer来进行安装,openvpn可以安装openvpn installer来进行安装。但是即使完整安装工具链,也没有办法加载tun模块,使用openvpn连接。cifs没有测试过。
    pptp/l2tp测试无法连接,服务器日志表明连接后马上断开,原因未知。
    安全隧道测试无法连接,原因未知。

2011年10月16日星期日

北京护照申请攻略(第二本)

    今天跑到北京办理新护照,才发现网络攻略需要大幅更新了。首先,北京原先办理都在东城区出入境管理处,但是现在普通公民护照业务已经不在这里办理了。我去了金宝街的东城区办事处办理,也可以去其他地方,不用考虑户口所在区问题。从朝阳门北小街到金宝街可以坐674,办事处目前是周一到周六9点到17点办公。
    金宝街这里贝壳干过半年,还算熟悉,不过这个办事处倒是头次来。流程是先照相,然后填写材料。必须照相,自带照片只能用于申请表,不能用于护照制作。即使办理过,也没有上次的数据留存。如果没带照片,加30可以把照片打出来当大头照用。照相本身免费。照相时必须注意,要穿深色衣服,最好有领。如果照片不过关,即使照相这里通过了,办理业务的时候也可能退回,还得重照,非常麻烦。
    照相后,找人剪下照片,并且填写材料。然后找复印柜台复印身份证,户口本,上本证件(如果有),一张五毛。拿这些材料去咨询,他会检查材料和表格完整性。如果没问题,就会拿到一个号码。排队后,有人会帮你办理。你的旧护照会被剪去角交还,并且给你一张白色回执。护照200一本,港澳通行证100一本。护照加注20,港澳通行证一个20。贝壳办理了护照更新加注,港澳通行证加港澳各一,360,比第一次的140翻了三倍。
    回执在旁边缴费(这点我一直不明白,为啥不一个地方办理,非要我们拿脚当流水线,就算是依次移动也好阿),然后就可以凭回执到期领取了。也可以邮寄,一本本地21,外地29。两本本地28,外地36。这次贝壳办理整个手续,总共付426,耗时大约40分钟到一个小时。有需要的朋友可以参考一下。

From P81HD

2011年10月13日星期四

我擦,又回来了

    这忖劲的,闪了十年整后,我又跑回了北京。半夜两点,二号航站楼,大巴出去就是航空食品公司,再过去是空无一人的彩虹桥。再下去照例是修了20多年,小学时候就参观过,现在居然还tmd在收费的天下第一收费站。窗外看看,靠,辅路还tm跟那用着呢,就多了根机场快线。
    从车窗抬头向上看,北京的夜空很漂亮,今天又是月圆之夜。以前经常偷偷跑出来看月亮,被爸妈打个半死。没想到多年后,有一天我会看到北京这么漂亮的夜空,而且不看不行。不知道明天从塔楼往外看,能不能看到碧空如洗的蓝天和连绵不绝的燕山。
    不过这次估计是我头次在机场高速进四环的时候没堵车。别说堵车了,车都不见几辆。京密路上车也很少——有几个有精神半夜三点不睡觉跟大街上飚车啊。这师傅还真tm牛,一辆大巴居然开上了100。发车不过十分钟,就过了牛王庙,跟国展停了第一站。这地跟原来差不多,就多了几个字,栏杆换了一套,漆皮完好。往前开,双安商场依旧灯火辉煌。
    改变的从来不是这个世界,改变的只有我们。

From P81HD

2011年10月12日星期三

十月三日

    今天从丽江出发,到大理洱海玩,睡在楚雄。早上八点出门,九点多就到了丽江旁边的观音峡。叫是叫的很好听,其实本地人都没听说过。导游说是一个浙江商人开发的,看看就好,不要去烧高香。进去看看,全是人工景点,里面还牵扯出徐霞客来。其实严格来说,全国每个地方往深里查,基本都能查出个啥名人来。搞不好一个破水潭经过专家考证,会变成传说中的桃花潭。大部分不是冲着文物去的就是冲着旅游去的,观音峡也不例外,就是扯虎皮拉大旗的宣传。
    十点多出发,大概十二点到了上次的兄弟鱼庄吃饭。鱼汤里面放了豆腐,比上次的水准有所下降。我们觉得吃不大饱,几个人一合计,自己问老板加了两个菜,吃的非常好。一人多出了大概15,比我们的餐标还高,不过按照我对旅游的定位——非常值。吃好午饭十二点半左右出发,两点到的龙龛码头,坐两点半的游船,三道茶表演就在船上。三道茶就不介绍了,这里有比较详细的解释。作为批量游客,我们拿到的杯子当然是小号纸杯,没那么好的水准。三道茶都有特色,猫咪喜欢甜茶,贝壳喜欢回味茶。表演还不错,一帮姑娘上去又唱又跳的。上面跳舞的白族姑娘都很漂亮,看起来觉得好像应该有少数民族血统,表演也没设陷阱讨钱什么的,总体来说还算值得。
    不过游船值得好好说一下。游船定时出发,到罗荃半岛停40分钟,金梭岛停20分钟。过期不侯后果自负。船上去后,座位是靠抢的。想舒服点?船上有卡座,自己掏钱,我们是一人十五。服务员还做了一笔糊涂帐。我们掏了100,两个人,服务员找我们六十,开了两个人的票子,上面写缴了六十。猫咪忘记数钱了,所以也没法找人家了。船上面写着,要像保护眼睛一样保护洱海,洱海水也清澈,但是水面上飘着一堆可疑的泡沫,不知道是什么。莫非是自插双目?
    罗荃岛上面有个庙,看看风景就好。还有个塔,不过在维修,也就没有靠近。前面是一座新修建的塔,门口有一堆操着东北口音的人在讲解少数民族风俗和佛塔参拜规矩。再向前,爬上来的坡上面,全是卖玩具卖吃的的小贩,和全国各大景点没什么区别。金梭岛就有特色多了,上面全是卖吃的和食物的,没有景点。猫咪买了熟的菱角,很好吃,可是很硬,舌头都会扎破。上面炒面,凉粉什么做的一碗粉要五元,吃倒是还不错。
    洱海很漂亮,可是游船就很无聊,又可是不坐就看不到好东西。旁边是大理古城和崇圣寺三塔,在洱海上可以看到。可是我们去的时候天气比较阴,光线不足,相机没有三脚架,照不到清晰的照片。如果有条件的话,贝壳建议旅行不要太赶,慢慢玩慢慢看。洱海古城崇圣寺大概要玩掉一天半的,旁边还有一个苍山森林公园,我们远远能看到缆车。我们这次太赶了,下来就全在照相上厕所,被导游催着赶快赶快赶往下一个景点。但是云南这里门票超贵的,自己玩门票钱太多,比吃饭住宿还多。
    晚上在楚雄吃野生菌火锅,说是说野生,其实就是火锅。菌类很多都是人工的,汤还可以。两餐并一餐后,我们还吃不大饱。可见旅行社为了抢生意,餐标已经低到什么地步了。

From galaxy

2011年10月11日星期二

十月一日

    首先说明一下,为什么十月一日这篇在十月二日这篇之后。因为这篇本来成功从galaxy上面同步到了gmail里面,但是错误的被手机所删除。由于同步,gmail中很快也找不到了。所以我被迫从galaxy中再弄出原始版本底稿,然后重新修润了一遍。这花了一点时间,导致这篇东西比十月二号更加晚才发出来。

    今早发生一件搞笑事情。预定是我们退房,旅行社派大巴来接我们。结果实际到的时候,大巴是来了,但是40多个人,只来了30人的大巴。早上去的人坐着,晚上去的人只有站着了,车位非常之拥挤。这点需要着重批评一下驴妈妈网站和景爱旅行社接送部。后来到了确认,旅行社把人数点错了。而且由于调度,我们出门比预定晚了将近一个小时。结果上来看,这直接导致了我们后面的大堵车。
    今天的行程基本乏善可陈,就是坐车,持续不断的坐车。八点从昆明出发,十一点在楚雄吃的午饭,大约160公里,开了四个小时,比预定的(估计是平时时间)两个半小时增加了很多。十二点不到出发,五点多一点才到了大理,几乎将近五个小时,比平时增加了一倍。主要原因是下午在祥云县过去一点的地方,碰到了一场大堵车。一条隧道,两车道,却左道封闭。结果并车的时候很容易碰擦,隧道内又不好处理,导致迟了三个小时到达下关。比我们早一点的车就没有碰到碰擦,早了很多到大理。
    在此提醒一下所有国庆,五一出来玩的朋友,大家都这么想,所以国庆非常堵。如果不打算在路上花费太多时间,建议还是平时搭两个休假去。这样大概能凑出4天的时间,也足够玩一些地方。另外吐槽一下中国的固定假期制度,大部分的假期都是国定假日,而不是年假,导致所有人旅游出行时间严重重合,是要提醒我们中国人很多么?不过想想看,固定假制度还是有一定的好处的。如果全是法定年假制度,我们不会有太多影响,可是有些人就休不到(因为老板强制或者变相强制加班)。不过不管如何,中国的休假还是少了点,而且缺乏法定年假是个事实。
    导游考虑到大理两个个景点,加上观音峡,今天不玩掉一个,回来的时候会太赶。所以还是坚持去了大理古城。时间只有45分钟,电瓶车却花了30一人。45分钟的电瓶车,标准的走马观花。仔细评价起来,大理古城属于原始建筑修复景观,不需要太长时间观看。但是即使如此,建议游览时间也在1.5-2小时左右。城墙没有西安的气魄和原始风貌,街道没有老街和乌镇的古朴,很鸡肋的一个景点,可惜在行程单上,所以导游非去不可。说起来,整个行程其实就是玉龙雪山,洱海和石林有价值。其他搭配景点都是鸡肋,赠送更是基本扯淡。
    另外,电瓶车下来,上车之前,有小贩挑着水果过来买。贝壳自己不会不买,隔壁李大哥试试觉得好吃,买了一些菠萝蜜。好心送了贝壳一个,结果猫咪弄不开。贝壳嘲笑了猫咪没力气后——自己也弄不开。隔壁大哥笑笑接过去说,不是这么弄的,这玩意一捏就开了。然后他一捏——囧了,他也捏不开。他不信,拿另一个一捏,还是不开。那个小贩总共就给了一个熟透的,剩下都是生的。所以导游提醒,说少数民族淳朴,那是汉人来之前的历史了。现在你能碰到的少数民族,都是商人,不然你碰不着。想想也是,我们是职业旅行团,又不是驴友,哪里碰得到原住的少数民族。要是碰到什么"民风淳朴"的事情,自己掂量一下是不是正在被骗呢。
    七点半左右,我们在兄弟鱼庄吃了晚饭。鱼汤很好吃,很鲜,里面放了很多胡椒。炸河虾也不错,晚饭比午饭好吃多了。导游说,我们每餐12元的餐标,能吃成这样实在是很心满意足了。我们八点多吃好饭出发,预订12点多到丽江。这一路都是普通国道,二级公路,没有高速,而且都是盘山公路。下雨夜路,不知道是否来得及。所以贝壳现在还在路上写这篇文章呢。

From galaxy

2011年10月10日星期一

十月二日下

    下午的行程是丽江古城,这里特别指出zoomy同学的攻略缺陷——石破天不在七一街,而在五一街。我们去金凯广场吃黑山羊火锅了,没事。倒是把同行大哥害得够呛。我们在丽江买了不少奇奇怪怪的小东西,大多是买个热闹,不要指望真假,也很难买到什么好东西,这里东西都是义乌批发来的。门口的西藏牦牛酸奶不错喝,比普通酸奶略略偏酸,风味很特别。古城的老建筑群很壮观,处处小桥流水很漂亮,可惜过度商业化开发,已经没有多少意思了。试想,一栋百年的老房子里面,放的全是摇滚,这个能靠谱到哪里去?个人感觉,和zoomy一样,里面全是发呆,上网,聊天,艳遇,泡妞,睡觉什么的。看看就好,住半个月啥的就绝对脑残非主流小清新了。
    金凯广场的山羊火锅很赞,我们吃的是导游推荐的本土黑山羊,估计和导游有关系吧。一盆里面一半羊肉一半腊排骨,锅底40,一斤羊肉40一斤腊排骨40,两个人吃很饱。羊肉汤非常鲜,不亚于过桥米线的汤头。腊排骨略咸,不过并不过分,比羊肉好吃。感觉上还算物美,是否价廉就见仁见智了。反正我们当成是在上海吃,还算可以。不过后来我们才知道,这老板的黑山羊是冒充的,羊肉皮到了锅子里面还是白的,真的黑山羊火锅煮出来皮也是黑的。同行的几个人吃了阿寿黑山羊,皮果然是黑的。虽然吃的同学说好像没什么太大区别,但是心里总是很不爽的。而且阿寿的青菜5元,本土的青菜20,服务很混乱。感叹一下,何必不信zoomy同学信导游呢?
    然后我们打车先回去酒店,再去古城。这一下惹出点麻烦。官房酒店有两家,我们查到靠近古城的是酒店,靠近束河的是别墅酒店。两家店都在香格里拉大道,上面又不写多少号,写了师傅也背不出。我们到了才发现有问题,再让师傅开车过去。结果一路发现都没有出租。师傅说,这个时间是做生意的高峰,到酒店就算了,到别墅会耽误生意,他也不高兴来。我们问师傅是否能等我们一下,他说不行,耽误生意。没办法,只好给他双倍。本来以为挺近,这一来一去就花了快60,实在是无谓的麻烦。
    晚上在酒吧里面喝酒,发现所谓酒吧真的很无聊,酒比北京后海还贵,里面只是听人唱歌。建议大家不是泡妞还是别去了,泡妞刚刚好,里面脑残文艺小清新一大把,个个求包养求419。很少碰到以结婚为目地的,省去你很多麻烦。当然,如果你试图在这里碰到个MM,以后以结婚为目的展开交往,那脑残的是你。里面点歌的,大部分都是公务员和垄断企业的员工,动辄就是电力,石油,电信。想想不奇怪,外企的小员工,哪里有钱来。私企的老板和外企的部门经理,倒是有钱了,可惜没时间。至于私企的小员工——那是又没钱又没时间。只有公务员,垄断企业这帮人,才能闲到到处去玩,而且可以美其名曰考察。我们去的时候还是国庆,尚且如此,平时就自己考虑吧。
    夜里出古城,发现人实在太多。人山人海超过国庆的城隍庙。回去的出租必须排队。这里的一点好处是,有警察指导排队维护秩序,还有专门的出租车区。来的车都是出租,应该是进行了节日限行。不过我们到别墅区,司机打表13,实际收了20。他倒是上车就说明了,而且上个司机也说过。古城入夜后,到这里基本要加收到20。就贝壳查下来也是市政府许可,不过总是让人很不爽。不过既然是市政府许可,也进行了应有的公示也说明,那也属于没办法的事情。需要在夜间打车的同学,自己考虑吧。不过既然能在古城泡吧到半夜,我想你也不会介意这一点车钱的。

From Galaxy

2011年10月8日星期六

十月二日上

    昨天果然迟到了,半夜一点才到。今早起来,早餐吃的还不错。有一个管家专门负责煮饭,专门的独栋小别墅。早餐大概十多道,东西很赞。说是五星级,还是有点道理的。今天导游换了一个,换成了云南当地的导游。丽江导游很特殊,全国唯一的公务员导游,工资超高。而且其他团到了丽江,必须换当地导游上去。我们的导游姓陈,父亲是藏族,本人是纳西族,说话很不客气,很拽。他也不怕你们投诉,只要不出大纰漏,这个公务员是铁定混下去的。云南为了打造精品旅游线路才搞出高价导游这么个思路,不过看来公务员制是最大的败笔。在最需要服务精神的旅游服务业,使用无法投诉的公务员制度,云南旅委的人脑袋被门夹过了吧。
    早上导游忽悠我们借棉衣和氧气瓶,氧气要80,酒店只有20。棉衣要30,下面借只有20。估计导游和老板有关系。不过导游提到,上面的高山黑彝族很排外,发现是下面借的衣服可能给扒了。其实哪那么容易,下面租的和自己买的很难分。不过想想强龙不压地头蛇,zoomy同学自己出来玩也被当地藏人收了200。没必要得罪当地人,还是摸鼻子认了吧。
    旅行的第一站是蓝月河峡谷,到了峡谷后全部要换电瓶车和环保车,以避免污染。从环保角度来说,还是很有道理的。不过全程电瓶车50,环保车20,大缆车152,很贵。比背包客栈上面列出的价格高了很多,我也不知道为什么,是国庆涨价还是通货膨胀,无法确认。
    蓝月河是一条很短的河流,导游介绍说,平时碧蓝,阴天浅绿,下雨时间长了,就是乳白。我们去的时候,正好下雨,河水颜色是浅绿接近乳白。山在两侧,云就从山上飘过,仿佛林中起烟,又像神仙降于地上。玉龙这里的山顶,都是藏在云中的。每次抬头,都能看到隐隐约约的山峰,和望不见的山顶。
    蓝月谷出来,电瓶车把我们送到环保车站。这里的环保车是绿色的,导游笑称是青蛙车。先到先坐,不是每个人都有座位。第二站是印象丽江,老谋子导演的。一贯风格,人很多,很震撼。不过我看不懂,导游也说,他也看不懂。出来就是坐大缆车上玉龙雪山了。首先要说明的是,雪山不是什么时候都有雪的。每年11,12,次年1月,能看到。不过见鬼的冷,条件恶劣,我们还要过春节,人少的很。我们上去的时候,什么雪都没有,而且还下着细雨,走在山上就像走在云里。这里要特别感谢微型摄像机的卖家,在这种恶劣环境下,还是录到了将近两个小时的像。
    山下面的商店有卖烤牦牛肉,还有鸡腿什么的,很好吃。不过脂肪类食物对高原反应不利,因此求保险的可以那里买一条巧克力吃。东西不错,就是贵了点。大索道挺值得一去,大概有五分钟的时间里面,都是在索道上面晃荡。我们去的时候刚好在下雨,就如同云海泛舟一样。
    至于高原反应,大家可以不用想的太可怕。贝壳上去后,就是有点头晕。身体反应大约相当于健身房里面登山机,六级到七级的阻力运动20分钟以上后。稍大运动量会产生喘气,但是休息半分钟就没事了。氧气瓶完全用不上,用过的人也说没作用。实际上由于是从3300米瞬间升高上去的,所以人体血液氧至少可以保持非剧烈运动5-10分钟。如果上去就反应了,绝对是吓出来的。在雪山上适应后,贝壳甚至可以唱歌。不过也不要轻视高原反应,一天以上在4000以上,或者晚上住在3500以上绝对是有风险的。一小时没事不代表一天没事,所以不要大意。
    路走到一半,猫咪就不行了,喘气,心跳加速,有点高原反应的症状。所以我们走了四分之三就不再往下走了。下栈道的时候,右腿外侧肌肉酸痛,判断是缺氧状态下强剂量运动导致的急性肌肉反应,坐坐就会没事。可惜下雨,栈道上没地方坐。下山的时候,还出现了嘴唇发白和紫斑,看起来吓人。不过贝壳的判断是,心理性因素居多。至于贝壳本人,只有偶尔头晕,不影响行走,呼吸一下就消失。拉着猫咪走了一路,什么事情都没有。

From galaxy

2011年10月7日星期五

九月三十日

    上午本来要坐春秋航空的9c8953航班从虹桥一号航站楼出发,结果居然碰到改机场,改到了浦东飞。当然,航班也肯定延迟的了。果然啊,航班延迟了!(这句是猫咪说的)不过还算运气,到了浦东后没有什么等待就起飞了,基本只延迟了一个小时,权当地面延迟算了。
    到了昆明,已经是将近一点。我饿的厉害,就查了查点评,叫门口的黑车师傅送我们到一家叫做乡村小榭的馆子。他们的菜非常赞,药膳鸡汤(好像是天麻炖鸡汤,老板说的不清楚,贝壳也没吃过,吃不出来),还有胡椒叶子炒牛肉都很好吃。量也比较足,三个菜,三人吃正好,两个人太饱。凉拌核桃也不错,就是小贵,在昆明要四十。
    下午去了滇池,十月份的滇池池水还比较清澈,没有传闻中绿藻长满水面的可怕。旁边的西山如刀削,云从山的那边涌过来,让山顶始终处于朦胧仙境之中。
    然后,猫咪的同学就过来了。云南局的同学很客气,带着我们满昆明的兜圈子。先去了正义路的步行街,还有景星街花鸟市场。那里有很多奇奇怪怪的东西,例如水烟筒和烟丝。水烟筒是一个竹筒,里面放水。上面放烟丝点着,吸烟的时候烟气就通过水,进行过滤。猫咪好像对这玩意很感兴趣的样子,一路大惊小怪的。两旁全是老建筑,据说原来还要多还要大,不过街道改造,很多都拆掉了。而且上面是老建筑,下面是一个借影碟的地方。感觉上下很不搭调。不过到了丽江我们才知道,比这个更不搭调的有的是。市场里面还有很多漂亮的木雕和银饰,牛角梳子,玉石琥珀什么的。本着不懂不买的宗旨,我们就不掺和了。
    然后我们看到了一只聪明的狗狗,毛色金黄,很漂亮。会算算术,认钞票,和游人一起摆pose合影。摆pose的时候还会跟着游人的动作调整姿势在那里臭美。合影每次一块,表演也没有讨要,就在那里放个盆而已。云南局同学的老婆说,还看到过这只狗狗和他的主人去买菜,狗狗叼着个篮子在后面跟着。估计是主人养的爱犬,只是没事时出来挣钱而已,不是专门训练了赚钱的。
    昆明的小吃很好吃,可惜都有点偏辣。有一种大米压成的薄饼,烧热了夹上酱料,还可以夹油条什么的,叫做烧洱块。趁热吃,很不错。这里的土豆用油炸过,加上花椒辣椒姜黄拌一下,也很不错。后来我们去吃了过桥米线,很正宗,汤很鲜。不过据说当地人吃的都是另一种,叫做小锅米线的。过桥米线是用带油的鸡汤保温,烫熟米线来吃,属于外卖送饭的吃法。不过注意,真的外卖时间长,烫熟烧熟过的米线还好,但是烫肉片就不安全了。小锅米线是用调料和米线一起在锅里煮,一口小锅只出一碗米线。味道酸辣开胃,和过桥米线截然不同。当地的笋很嫩,烤鱼也很好吃。唯一的问题就是烤鱼佐料。没有鲜艳的红色,入口也不辣。但是吃过几分钟,尤其再喝一口米线的热汤后,嘴巴里面又麻又辣,犹如针扎火烧一般。上次碰到这么厉害的辣椒已经是高中时候吃杨健的韩国泡椒,吃进去几秒就有反映。这次却迟了两分钟,又喝了口热汤,吃了个暗亏。
    晚上大家聊了一下旅游里面的注意事项,到哪里买什么东西什么的,就由人家送我们回酒店。真是太感谢他们了。

From galaxy

2011年10月6日星期四

航空和铁路事故对比

    老婆经常说怕坐飞机,因为飞机比铁路更加不安全。作为一个在机场长大的家伙,我对此嗤之以鼻。不过作为死理性派,我还是列出数据,对比一下。
    中国民用航空原属空军,后来分离为民航(东方,北方,南方,还有几个记不清了,加上飞国际的国航),时间是1982年。在82-97年的15年间,没有发生过有记载的空难。但是基于历史问题和意识形态问题,在91-95年,海峡上空发生过多次劫机飞往台湾的事件,还有劫机犯解送回大陆的飞机再被劫持的奇闻。当然,鉴于没有空难,也没有官方新闻,我们当八卦听就好。为了统一时间,我们从1985年开始计算。
    全部空难共计6次,601人,372人死亡,229人生还。
    而中国的铁路事故呢?原始链接大家猛击这里

1986年1月15日 京广 广东省韶关市乐昌县 247(武昌广州 爆炸 犯罪分子作案 7 38
1987年7月18日 京广 河南省漯河市孟庙站 297(郑州重庆 爆炸 犯罪分子作案 9 69
1988年1月7日 京广 湖南省郴州市永兴县‎马田墟站 272(广州西安 火灾 乘客携带油漆 34 30
1988年1月17日 拉滨 黑龙江省哈尔滨市五常县‎背荫河站 438(三棵树吉林
1615(货)
正面相撞 列车制动失灵、冒进信号 19 76
1988年1月24日 贵昆 云南省曲靖市宣威县 80(昆明上海 脱线 88 202 [5]
1988年3月24日
主条目
沪杭外绕线 上海市匡巷站 311(南京杭州
208(长沙上海
正面相撞 冒进信号 28 99 外籍乘客伤亡最多的一次铁路事故[12]
1988年7月1日 京广 河南省安阳市 415(郑州永定门 火灾 乘客携带 6 13 车体报废
1989年1月5日 川黔 四川省重庆市綦江县‎ 366(昆明重庆 手榴弹爆炸 犯罪分子作案 0 20
1989年4月30日 贵昆 贵州省六盘水市水城县‎‎小冲头站 571(贵阳大湾 炸药爆炸 犯罪分子作案 0 21
1989年6月26日 沪杭 上海市松江县 364(杭州上海 爆炸 24 39 铁路中断行车4小时7分
1989年6月28日 陇海线 河南省三门峡市贺家庄站 1905(货车) 颠覆 折角塞门关闭 4 13 铁路中断行车61小时[13]
1991年6月13日 京沪 安徽省蚌埠市固镇县‎ 109(北京苏州
1329(货)
追尾相撞 1 28 铁路中断行车18小时37分
1991年8月18日 京广 广东省韶关市大瑶山隧道 247(武昌广州 相撞 工作人员误判发生火灾,拉闸停车,乘客跳车,另一列车与之相撞  ?  ?
1992年3月21日 浙赣 湖南省株洲市五里墩站 211(广州宁波
1310(货)
相撞 冒进、冒出信号 15 25 机车、客货车车体报废,铁路中断行车35小时[14]
1993年7月10日 京广 河南省新乡市 163(北京成都
2011(货)
追尾相撞 40 48 车体报废,铁路中断行车11小时15分[15]
1994年1月15日 漯宝 河南省平顶山市宝丰县‎余官营站 250(襄樊北京
3173(货)
正面相撞 7 12 车体报废,铁路正线中断行车3小时6分
1997年4月29日 10:48 京广 湖南省岳阳市岳阳县‎荣家湾站 324(昆明郑州
818(长沙茶岭
追尾相撞 信号失误 126 230 机车报废[16]
1998年7月13日 10:11 湘黔 贵州省镇远县朝阳坝二号隧道 1913(货运列车 爆炸后机车颠覆 液化石油气泄漏燃烧爆炸 6 50 车体报废,朝阳坝二号隧道塌陷,铁路中断行车21天
1999年7月9日 22:43 京广 湖南省衡阳市茶山坳车站 461(武昌湛江 脱轨颠覆 司机违反操作规定,超速通过限速岔道 9 15 车箱报废五节、大破四节、中破二节、小破一节[17]
2001年4月20日 06:20 滨洲线 黑龙江省安达市安达市车站 T47(北京齐齐哈尔 脱轨颠覆 机车乘务员盲目出乘,违章蛮干,超速行车;车站值班员严重违章,漏抄命令,盲目指挥;列车调度员违反规章,作业不规范,对命令执行不检查 2 50 5辆客车颠覆[18] [19]
2005年7月31日 19:52 京哈 辽宁省沈阳市新城子区 K127(西安长春
33219(货物列车)
追尾相撞 信号电缆被盗 5 30 [20]
2006年4月11日 9:32 京九 广东省河源市 T159(青岛广州
1017(武昌汕头
相撞 信号故障,司机盲目行车;违反操作规定 2 18 [9]
2007年2月28日 2:05 南疆 新疆维吾尔自治区吐鲁番地区托克逊县 5807(乌鲁木齐阿克苏 脱线 瞬间大风 3 34 南疆铁路中断
2008年1月23日
主条目
20:48 胶济 山东省潍坊市 D59(北京四方 撞人 无资质包工队非法施工 18 9 [21]
2008年4月28日
主条目
4:38 胶济 山东省淄博市王村站 T195(北京青岛
5034(烟台徐州
相撞 超速 72 416 铁路中断行车21小时22分[22]
2008年6月30日 2:20 黎湛 广西壮族自治区玉林市陆川县 1322(广州重庆 脱线 山体滑坡掩埋线路 0 7 铁路中断行车35小时[23]
2009年6月29日
主条目
2:34 京广 湖南省郴州市郴州站 K9063(铜仁深圳西
K9017(长沙深圳
相撞 违反操作规定 3 63 [24]
2009年7月29日 4:30 焦柳 广西壮族自治区柳州市柳城县 1473(襄樊湛江 颠覆 路堑坍塌落石 4 34 [25]
2010年5月23日
主条目
2:10 沪昆 江西省抚州市东乡县 K859(上海南桂林 脱线 山体滑坡掩埋线路 19 71 铁路中断行车19小时[26]
2010年8月19日 3:15 宝成 四川省德阳市广汉市 K165(西安昆明 脱线 洪水冲垮桥梁 0 3 [27]
2011年7月23日
主条目
20:34 杭深 浙江省温州市 D301(北京南福州
D3115(杭州福州南
追尾导致脱线坠桥 尚未查明 40 192以上 [28][29][30]
    全部铁路事故,共计30次,伤者1955人以上,死者591人以上。
    结论,铁路事故无论是次数还是严重程度,都比航空高。然而航空事故的死亡比例远远高于铁路事故,因为航空一旦发生事故,基本是死绝的状态,没有什么救援的希望。如果你不打算碰到事故,尽量考虑航空。如果你打算事故后活下来,还是铁路可靠一些。
    另外,按照2000年后事故发生情况统计,航空线上的死者数量已经远远超过铁路线,唯独出事概率还比较低。东方航空是唯一一家出现过两次航空事故的公司,尽管第一次是紧急迫降,无人员死亡。从这点意义上考虑,航空和铁路的安全性评价——基本一致吧。