Archive

Author Archive

你的美国签证上几颗星——三签美国

December 30th, 2011 No comments

第一次不使用美商会办理美国B-1签证。从头到尾都是自己弄得,也没有助理帮忙准备材料,没想到还是一如既往轻松的搞定了。简述一下流程:

首先联系美国公司办理邀请函,在等待邀请函的同时,拿护照去中信银行买签证费,降价了,只需要910块。需要带护照原件去。顺便买了那个电话卡。顺便说一下,那个电话卡蛮贵的。接下来打电话约面签,照相。

现在只需要填写DS-160表格,取代了之前的DS-156和DS-157。而且全部网上填写,最后打印一个确认页就行了。而且照片也只需要电子版了。

事实证明,使馆是不知道你什么约的面签的。只有门口有个小窗口检查预约登记,所以说,只要你能混进第一个门,是不是已经预约面签是不重要的(实际上,我前面那个人就没有预约,直接混进来的)。

流程变化了很多,材料已经不是内部传递了,收材料之后,会再退还给你,面谈的时候直接给VO。我还是只带了基本材料,护照、DS-160、邀请函。面试过程还是一如既往的简单:

VO:早上好,你去美国干什么?(VO默认用中文)

我:去参加一个meeting(我也用中文答)

VO:How long will you stay in US? (是不是觉得不会英语去参加meeting,感觉有些别扭,这算是考察英语水平吗?)

我:2 weeks

VO:Can you show me your previous passport? (因为有一个护照过期了)

我:(没说话,直接给他了)

VO:你通过了。

总共面试过程又是1分多钟。

回过头来,说美国签证。一直有个疑问,就是签证照片下面通常会有几个星号。有一个星号的“*”,有两个星号的“**”,还有另一种两个星号“* *”(中间多个空格),我还见过三个星号“***”。网上搜索过,却一直没有明确的答案。基本说法有两种,一种是校验,另一种是信任度(或者敏感度,星越少越好)。

 

Categories: Travelling Tags:

EMS现在NB大了——还有更差的服务吗?

April 17th, 2011 3 comments

EMS现在NB大了阿。因为前一阵旅行,家里没人,正好有一个EMS的快件到了,EMS配送人员就按照正常流程在门上留了一个条。上面大致内容为:您有一个编号为XXX的快件,但您家里没人,有无法联系。请按照下面电话联系投递部门,安排再次配送,否则12天后将被送回发件人。

13号回来以后,按照门条上的电话打过去到投递部,问:我前一阵不在国内,有个快递没收到,你们条上写的这个电话,你们能安排送一下吗?回答说:“不能”(我真的一个字都没改)。

我问为什么。估计接电话的大姐也觉得不合适了,就问了快递号。也说他们写字就能写清楚点儿,快递号里一个字符像0又像C,上面还有个拐弯。来回折腾了半天,接电话的大姐,说只能拿着条去投递部查。OK,谁让咱看不清您写的烂字呢。问地址,就说了个某路某角(除了“路”和“角”以外,都没听清),还没等我说话呢,来一个忙着收件呢,就给挂了。

这TM也太夸张了吧。北京市邮政速度物流有限公司张自忠营投部。

Categories: diary Tags:

Debian Lenny升级到Squeeze后MySQL无法启动的问题

February 6th, 2011 No comments

今天把VPS从Debian Lenny升级到Squeeze了,却发现MySQL无法启动了。而且无法安装mysql-server,Debian在升级的时候,同时升级了mysql-server到5.1。

运行

sudo apt-get install mysql-server

返回的结果是:

...
Unpacking mysql-server-5.1 (from .../mysql-server-5.1_5.1.49-3_amd64.deb) ...
Stopping MySQL database server: mysqld.
Selecting previously deselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.1.49-3_all.deb) ...
Processing triggers for man-db ...
Setting up mysql-client-5.1 (5.1.49-3) ...
Setting up mysql-server-5.1 (5.1.49-3) ...
Installing new version of config file /etc/init.d/mysql ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.1 (--configure):
 subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
                                      dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.1; however:
  Package mysql-server-5.1 is not configured yet.
dpkg: error processing mysql-server (--configure):
 dependency problems - leaving unconfigured
configured to not write apport reports
                                      Errors were encountered while processing:
 mysql-server-5.1
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方案:

sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.backup
sudo cp /etc/mysql/my.cnf.dpkg-dist /etc/mysql/my.cnf

然后重新安装mysql-server即可

对于iPhone使用1年的感受

November 3rd, 2010 8 comments

iPhone正式使用差不多1年了。近来,越来越的人开始选择iPhone做为手机,尤其是iPhone4(话说iPhone4的屏幕真的相当不错)。当我第一眼看到iPhone4真机的时候,还是被震撼了,看到iPhone4的屏幕后,3GS的屏幕就只能用垃圾形容了。我自然动了再次更换iPhone的心。

在使用1年iPhone以后,还是对他有一些评价的。人们总是更多的注意到优点,而我则在此更多的提到他的缺点:

  1. 文件系统过于封闭。在未经过越狱的情况下,应用程序只能在自己的sandbox中运行,也自然只能访问sandbox中的文件。跨应用程序的访问,则只能限制在Camera Roll中的照片。由此则引发了更多的问题
  2. 邮件附件:iPhone的mail是没办法添加附件的(虽然可以通过复制的功能添加图片作为附件)。这就有一个很严重的问题,如果某人发了一个带有Word/Excel的邮件,需要我填写后发回去。mail几乎没办法做到的。虽然最新的iOS4已经允许在第三方应用中打开邮件附件,但却没有办法添加回mail中。(对此唯一的解决办法就是通过第三方应用发送邮件,但没办法回复到同一个thread里面)。
  3. 文件共享:文件不能在两个设备之间传送(通过蓝牙或者WiFi,除了图片),当然iPhone里压根就没有文件管理器(所谓的文件管理器,只是管理自己sandbox的文件)。
  4. 邮件:在回复和转发的时候,邮件头并不像Outlook那样,会显示“From:”,“To:”,“CC:”,“BCC:”,“Subject”等,而是只写着“On <date/time>, <someone> wrote:”或者“Below is the forwarded message:”,紧跟着邮件正文。这种情况下,你是看不到之前的被转发的邮件,哪些人已经看到了邮件。对于同一封邮件,一大堆收件人的情况,非常不方便。
  5. 费电,非常费电:由于工作关系,我开启3G、推送邮件,手机基本上坚持24小时都已经是奇迹了。
  6. 同步:你只能在特定的某台电脑上同步你的手机,而当你尝试在其他电脑上同步,会看到提示要删除设备上的所有对象。
  7. 视频通话:即使是最新的iPhone4,也只能实现在WiFi网络下的的FaceTime;而无论是现在哪款iPhone,都不能实现在3G网络下“标准”的视频通话。
  8. 不支持Flash
  9. 短信没有发送回执:这年头,短信回执已经是很多手机的标配了。虽然Windows Mobile手机的短信回执很垃圾,但总比没有强。短信回执最好的应该就是Sony Ericsson的手机了。每个发送的消息都被标记上一个图标,当发送成功,收到短信回执以后,图标会变成一个对勾,表示发送成功。
  10. 彩信显示没有播放,没有分页:彩信在iPhone上会被展开成每一条独立的消息,类似中国移动的“新闻早晚报”这样的消息,在iPhone上看起来,就会连在一起,阅读体验非常之差。并且,彩信的打开速度很慢。

最后说说优点:

  1. 屏幕效果真的非常好
  2. 界面效果和用户体验真的非常棒
  3. 整体设计真的非常漂亮

注:以上均为在“未越狱”的情况下的评价。如果越狱(Jail Break),以上很多功能都可以实现。

Categories: Computer Science Tags: , ,

Debian上安装l2tpd/IPSec VPN服务

June 24th, 2010 4 comments

本文主要介绍在Debian Lenny下安装l2tpd/IPSec VPN服务。

配置openswan

运行如下命令安装openswan

sudo apt-get install openswan

编辑/etc/ipsec.conf,修改如下行:

net_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
protostack=netkey

并在在文件最后一行,加上:

include /etc/ipsec.d/l2tp-psk.conf

复制l2tp-psk.conf文件

cp /etc/ipsec.d/examples/l2tp-psk.conf /etc/ipsec.d/l2tp-psk.conf

编辑l2tp-psk.conf文件,修改如下,并将其中的YOUR.IP.ADDRESS.HERE替换为主机的IP地址:

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=YOUR.IP.ADDRESS.HERE
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

编辑/etc/ipsec.secrets文件,其中YourPSKHere为将来PSK的Secret,YOUR.IP.ADDRESS.HERE为主机IP:

YOUR.IP.ADDRESS.HERE %any: PSK "YourPSKHere"

禁用accept_redirects和send_redirects,运行如下的命令(可能需要root用户权限)

for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done

IPSec的配置就已经结束了。可以运行

sudo ipsec verify

来确认配置是否正确。输出的结果如下:

$ sudo ipsec verify

Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.24/K2.6.18.8-x86_64-linode10 (netkey)
Checking for IPsec support in kernel                            [OK]
NETKEY detected, testing for disabled ICMP send_redirects       [OK]
NETKEY detected, testing for disabled ICMP accept_redirects     [OK]
Checking for RSA private key (/etc/ipsec.secrets)               [OK]
Checking that pluto is running                                  [OK]
Pluto listening for IKE on udp 500                              [OK]
Pluto listening for NAT-T on udp 4500                           [OK]
Two or more interfaces found, checking IP forwarding            [OK]
Checking NAT and MASQUERADEing
Checking for 'ip' command                                       [OK]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]

最后一项的DISABLED并不会影响配置。另外,如果在检测Pluto时提示了Command not found。请安装lsof。

重新启动ipsec,使配置生效

sudo /etc/init.d/ipsec restart

配置xl2tpd

运行如下命令安装xl2tpd

sudo apt-get install xl2tpd

编辑/etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
length bit = yes
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd

复制/etc/ppp/options.l2tpd

cp /etc/ppp/options /etc/ppp/options.l2tpd

编辑/etc/ppp/options.l2tpd,修改其中项目如下:

require-mschap-v2
ms-dns 208.67.222.222
ms-dns 208.67.220.220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

配置VPN用户,编辑/etc/ppp/chap-secrets文件,添加如下行(替换其中的username为今后登录的用户名,password为密码)

username l2tpd password *

启动xl2tpd

sudo /etc/init.d/xl2tpd restart

设置iptables转发

iptables –table nat –append POSTROUTING –jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

设置ipv4转发,修改/etc/sysctl.conf中的如下行:

net.ipv4.ip_forward=1

运行如下命令:

sysctl -p

l2tp VPN至此就已经配置完了。使用如下参数配置VPN客户端,即可连接:
服务器(Server):YOUR.IP.ADDRESS.HERE (或对应的域名)
用户名(Username):username (在/etc/ppp/chap-secrets)
密码(Password):password (在/etc/ppp/chap-secrets)
密钥(PSK/Secret):YourPSKHere (在/etc/ipsec.secret中配置的)

如果客户端连接显示“server did not respond”,通常说明openswan的版本不对,Debian Lenny自带的版本貌似有些问题。在命令行运行如下命令,即可安装openswan-2.6.24:

sudo aptitude install libgmp3-dev gawk flex bison
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar xf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs
sudo make install
sudo apt-get remove openswan
sudo /etc/init.d/ipsec restart
Categories: Computer Science Tags: , , ,

月租50块、100块、400块和600块车位的区别

June 13th, 2010 3 comments

每月50块的:

只是进门费,没车位就不让进。

每月100块的:

随便进,随便停,只要不堵路中间。

每月400块的:

随便进,保证有车位了,就是你得慢慢找。B1没有去B2,B2没有去B3,总有一位留给你。

每月600块的:

进门问好,出门帮忙刷卡。这个车位就是你的,谁给占了,保安帮你打架去。

Categories: diary Tags: , ,

解决在Mac OSX下无法mount AFP的share的问题

May 30th, 2010 No comments

最近突然发现,一直以来用的挺好的AFP服务,突然不能访问了。具体的现象如下:

  1. 使用Registered User打开通过Bonjour服务显示在Finder侧边栏的AFP服务,点击以后,一直显示Connecting,没有反应
  2. 使用Guest打开通过Bonjour服务显示在Finder侧边栏的AFP服务,点击以后,能够列出部分share的列表
  3. 通过Finder的Connect to Server,可以连接任何指定的AFP share
  4. 通过Finder的Connect to Server,只指定服务器名称,而不包含AFP share的名字(如:afp://192.168.1.10/),能够列出全部的share,但选择其中一个share并连接,一直显示Connecting,没有反应

一直以为是NAS的AFP服务出了问题,但无论是重新启动AFP服务,还是重新启动Bonjour服务,甚至是重新启动NAS服务器,都无法解决。

之后想到了是OSX的问题,但重新启动OSX后,也没有任何好转。通过日志也没有找到任何相关的信息。

经过一段时间的搜索,终于发现了该问题的原因:是OSX在share的最顶层目录中写入了OSX特有的一些隐藏文件和文件夹。通过Web File Manager或者SSH删除这些文件和文件夹后,问题解决。这些文件包括:

  • .AppleDB
  • .AppleDesktop
  • .AppleDouble
  • .TemporaryItems
  • :2eTemporaryItems
  • Network Trash Folder
  • Temporary Items
  • ._.TemporaryItems
  • .DS_Store
  • :2eDS_Store

另外,还可以禁止OSX在网络设备上创建resource fork的文件。在Terminal中,输入如下命令并重新登录即可:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Migrate Single Disk to RAID5 in QNAP 409 Pro

April 11th, 2010 3 comments

由于NAS上的硬盘即将告急,又赶上近期硬盘稍有降价。就趁机添置了2块1TB的硬盘,准备添加到NAS上使用。目前的情况是,当硬盘容量超过1TB时,一个好的灾难恢复机制就显得非常重要了。3块硬盘正好组建RAID5,可以容许1块硬盘损坏,但总容量则变为:最小单块容量×(硬盘数-1)。

QNAP 409 Pro号称有Online RAID Migration功能,我的理解就是,所谓Online,就是所有的服务都不需要停止,也不会在此过程中出现中断。然而,QNAP的RAID迁移过程,还是让我受了不少罪的。

Day 1:直接在Web管理界面上选择Single Disk,然后迁移到RAID5。迁移过程开始后,进度基本按照每半小时1%的速度进行着。在将近48小时的时候,未知原因,迁移过程中断。没有错误提示,没有日志,没有数据丢失。

Day 3:经过搜索论坛后,发现有人与我有类似的经历,解决的的方法是关掉所有的后台服务。依此进行,关掉全部AFP、SAMBA、MySQL等服务。仍然是在50%的位置中断。在SSH查看过程时,发现前10%有个mke2fs的进程;从11%到50%,则有一个cp -a的进程。

Day 5:重新启动NAS,确保kill掉所有的无关进程,重新迁移。从11%起,硬盘进入Read Only模式。但在50%时,再次中断。此时却发现_httpd_进程没有了,web管理页面自然也就没有了,重启后仍然没有。

Day 7:准备采取最后的方案,备份数据,然后重新设置服务器。在备份数据的时候,突然想到其他的方案。采用其他的迂回方案。首先remove以前的Single Disk,插入新的2块硬盘。在Web页面(经过换盘重启后不知道什么原因恢复了),创建新的RAID1(镜像)。然后在线插入以前的硬盘,识别后,通过SSH,将全部数据复制到新的Volume里面。接下来重新从Web管理页面将RAID1迁移到RAID5。然而,我却发现,这个迁移过程和之前的过程如出一辙,仍然是将RAID1的一块硬盘,与新硬盘组成一个新的Volume,然后把旧的数据复制进去。再进行迁移。可这次居然再50%之后没有停下来,Web页面能够看到迁移过程,提示剩余600分钟。。在此经过大约8小时,迁移完成,数据也没有丢失。

Single Disk to RAID 5的迁移过程

这个迁移的过程,貌似有些山寨:

  1. 新增的两块硬盘,组成新的Volume(degraded RAID5),加载点为/share/mdx_tmp(迁移过程的0%到10%)
  2. 通过cp,直接复制旧数据到新的volume,在此过程中,磁盘属于Read Only模式(迁移过程的11%到50%)
  3. 将旧的磁盘格式化,合并到新的volume里面
  4. 通过RAID5的sync,最终实现RAID5

RAID1迁移到RAID5的过程与之类似,因为RAID1两块硬盘互为镜像,所以迁移的过程中,可以直接断开一块硬盘,并执行上面的过程。

从这里看出来,这个迁移过程并不能算是完全的“online”。首先,需要停止所有的网络服务(包括SAMBA,AFP等);其次,即使可以不停止这些服务,迁移过程的11%~50%也是Read Only模式的,并不能实现完整的服务。

这里的经验是:

  • 迁移之前,停止所有的服务,并且停止所有有访问硬盘的进程
  • 备份,迁移之前备份还是非常重要的
  • 大约1TB的数据,迁移的时间大约为72小时。其中创建degraded RAID5大约需要2个小时,复制数据需要48小时,剩下的大约24小时为最后的迁移和sync的过程

Linode VPS上安装pptpd VPN服务

February 12th, 2010 3 comments

从购买了Linode VPS服务之后,就一直考虑弄个VPN。今天终于实现了,该文档讲述了如何在Linode上配置基于pptpd的VPN服务,以及一些troubleshooting的问题。

前提:必须有VPS;必须有SSH。

接下来的步骤将完成pptpd的安装:

  1. 安装pptpd服务
    sudo apt-get install pptpd
  2. 修改pptpd服务的配置文件/etc/pptpd.conf(只需要修改最后的localip和remoteip部分):
    localip 192.168.10.1
    remoteip 192.168.10.100-150
    
  3. 修改/etc/ppp/chap-secrets文件
    username pptpd password *
  4. 设置pptpd的DNS服务器,修改/etc/ppp/pptpd-options文件:
    ms-dns 208.67.222.222
    ms-dns 208.67.220.220
    
  5. 设置ip4v转发,修改/etc/sysctl.conf文件,去掉如下行的注释:
    net.ipv4.ip_forward=1
  6. 使ipv4转发生效,运行:
    sysctl -p
  7. 重新启动pptpd服务,运行:
    /etc/init.d/pptpd restart
  8. 开启ipv4转发,运行如下命令:
    /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
    /sbin/iptables -p FORWARD ACCEPT
    

需要注意的是,我的VPS不知为什么,FORWARD rule默认的action是DROP(可能是由于我之前配制了防火墙的缘故。这也令我在一段时间内,纠结于为啥VPN无法正常转发。

Categories: Computer Science Tags: , , , ,

iPhone通讯录中文条目在英文环境下的排序问题

January 30th, 2010 8 comments

由于工作的关系,另一方面是iPhone中文翻译的习惯问题,我个人更偏向在英文系统下操作iPhone。iPhone的操作系统可以完美的支持各国语言文字和风格,但是在英文环境下,通讯录的中文条目将无法按照中文的习惯排序,更无法分类在右侧的首字母分类中,如下图所示:

这些联系人被分类到#中,且“兰”、“关”、“冯”、“刘”的排序顺序也是不正确的。实际上这些问题在中文环境中确实没有问题的。在非jailbreak环境下,也无法通过修改系统文件的方法修改排序方式。

使用如下的方法,即可正确的将联系人分类,且排序也是正常的。

首先选择一个联系人,进入编辑状态。点击最下面的add field。再选中Phonetic Last Name。

输入该联系的拼音。用同样的方法添加Phonetic First Name。添加后,在联系人中会显示该联系人的拼音姓名。

回到通讯录列表,即可看到联系人正确的显示在列表中,且无论是在Contact还是Phone中,都可以正确排序和分类。连Search中也可以使用拼音排序。

Categories: Computer Science Tags: , , ,