Total Pageviews

Wednesday, 24 May 2017

特朗普若被弹劾,中国担心什么?

自从FBI局长科米被特朗普炒了鱿鱼之后,弹劾(impeachment)一词就成了美国政界和媒体议论的最热门词汇。特朗普被弹劾的几率有多大,英国的博彩公司为此而开赌,而中国官媒和学者则猜测,如果特真被弹劾了,对中国意味着什么?
特朗普连续犯了几个民主体制最高首脑的大忌。他要FBI局长对他效忠,难道他不知道民主体制下的官员只忠于宪法和国家?他要求科米停止调查原国家安全顾问弗林的通俄案,难道他不知道这是明显干预司法,而干预司法在美国是要被弹劾的?他在白宫会见俄国大使,向其披露美国友邦提供的机密资料,难道他不知道俄国在大多数议员眼中,不是美国友邦而是竞争敌手?最大的问题是,特朗普难道不知道美国是个法治国家(NO ONE IS ABOVE THE LAW!)即便贵为总统,也不能凌驾于法律之上?
至于特朗普被弹劾的可能性有多大,首先要看证据有多少。特朗普犯的这些忌讳,都和特朗普竞选团队和俄国的接触有关。据一些政治评论家分析,这里的水很深,深的超出人们的想象。科米即将公开作证,有可能进一步提供更多的特朗普干扰司法的证据。特别检察官米勒的深入调查,可能会披露更多对特朗普不利的内幕。就在此时,已经接到传票的弗林决定用第五修正案保护自己,对所有问题闭口不语,并且拒绝上交调查委员会索要的所有证据和文件。现在看,弗林的缄默不语,正应着了他对克林顿阵营使用第五修正案的批评:你若心里没鬼,干嘛要使用第五修正案?
如果证据充分,特朗普能否被弹劾的一个必要条件,就是要看共和党内部的政治博弈。在共和党看来,无论是保特朗普还是弃特朗普,都要看是否有利于共和党在2018年期中选举中,继续保持对民主党的优势。如果这个优势被特朗普屡屡犯下的政治大忌所破解,或者彻底丧失乃至反转,共和党高层可能就会赞成弹劾特朗普。如果共和党团结一致护卫特朗普过关,特朗普被弹劾的可能性就是零。但现在已有一些较具分量的共和党议员认为,只要特朗普干扰司法的证据坐实,他就应被弹劾。
假如特朗普真的被弹劾了,对中国意味着什么呢?虽说自特朗普当选以来,他被弹劾的可能性,就一直被炒得热火朝天,但在这半年中,中国对特朗普的态度发生了过山车一样的变化。一月份的舆论调子还是,如特朗普被弹劾,中国将迎来大利好;到了五月份,这种乐观的调子基本上让位于担忧了。笔者的homework显示,中国方面至少有三大担心。
第一,担心现在的美中友好关系难以为继。特朗普竞选时的中国政策和上台后的中国政策发生了180度的变化,从一开始的以惩罚和对抗为主演变到今天的以称赞和合作为主,此时的中美关系,对中国而言,似乎渐入佳境,和习近平希望的“新型大国关系”越走越近。中国方面当然知道,特朗普眼下对中国示好,主要是因为他需要中国在朝鲜问题上帮助解套,但如果特朗普被弹劾下台,新一任总统是否还会像特朗普一样,看重美中两国的“新型大国关系”?
第二,担心南海问题在特朗普之后会有新的摩擦。特朗普目前对加强美国在那里的军事存在似乎不感兴趣。在主张“交易外交”的特朗普看,放弃对南海的强硬主张,以换取中国解决朝核问题和贸易问题,可能是值得一试的外交。就是在这种“交易外交”的尝试中,中国已经不失时机地完成了在南海诸岛的军事设施建设。如果让一个主张“亚洲再平衡”,并以此抑制中国扩张野心的人当总统,中美在南海问题上无疑会有新的摩擦。
第三,担心特朗普之后,新总统会重回TPP。特朗普上台不久即宣布退出TPP,如果他被弹劾下台,新总统可能会重回TPP。特朗普退出TPP的理由是,其协定不符合特朗普的贸易政策,新总统如果主张自由贸易,就有可能会推翻特朗普的选择,让美国重回TPP。这对中国来说,并非好事,习近平的“一带一路”将会受到抑制。
总之,特朗普被弹劾与否,和美中关系的走向密切相关,因而非常值得关注.

泰坦尼克号.结案

看完全片,有理有据。情形大致是这样:先是,启航前,底仓就曾起火,烧了4天才扑灭,估计舱壁钢板已被大火烤得十分脆弱。而泰坦尼克号驶入浮冰区后,气温骤降,在这种天气下,海面上很容易出现海市蜃楼。而那天泰坦尼克号恰好驶入了海市蜃楼,致使瞭望员不能尽早发现前面的冰山。等到发现冰山时,离冰山已太近。这样驾驶员转向时,侧面的舱壁仍然不可避免的与冰山相撞,而侧面的舱壁已被起航前发生的大火烤得十分脆弱,这样侧面的舱壁就轻易的被冰山撕开了一道口子,海水灌入,悲剧就此注定。

没想到用此法来看youtube,无比流畅

此法就是http://briteming.blogspot.com/2017/05/obfs4tor.html
以前的ss以及这个在linux vps上搭建shadowsocks-over-websocket,用以翻墙 ,这二方法用来翻墙浏览文字内容,依然很流畅,但是看youtube就不那么流畅了。

惊艳的cygwin——Windows下的Linux命令行环境的配置和使用

到现在一直用的是GNU utilities for Win32,在Windows的CMD中使用*nix的命令工具包。 GNU utilities for Win32很久没有更新,utils的版本太低,很多功能没有(比如grep输出不支持彩色输出的选项–color)等等。另,在Windows的“cmd的自动补全”、“命令历史”、“bat编程”太弱,一直忍受着.

最近大半年版本管理使用Git,用的是msysgit。msysgit带了MSYS的Bash。用的过程中体验不错,很顺畅很有Linux的Feel了:
  • 有Git命令的自动补全
  • 彩色显示
  • 可以用Bash功能(自动补全、历史命令搜索等等)
  • bash脚本编程
昨天想到就倒腾了一下cygwin,效果惊艳啊!

安装

在cyginw的安装页面上下载setup.exe。
启动选择安装目录和Package的镜像站点(自动会缺省163的Package镜像站点),然后选择和调整要安装的Package。
# 163提供的镜像让Package下载分分钟搞定。163也提供了Ubuntu的镜像,163做得很赞!
安装后要调整(比如新增、删除)也使用setup来完成。
Package中有Git,需要就在安装时选上就可以了。
bash_completion包(命令补全的增强包)让cygwin补全更强劲,但会影响命令行自动补全速度和cygwin启动速度,建议先安装上,如果不能接受速度的变慢,就卸载掉这个包。
注:参见 有关 SVN、CYGWIN 和 NOTEPAD++
第一次启动时会生成Home目录,在${cygwin}/home/${YOUR_USER_NAME}。
# ${cygwin}表示你的cygwin安装目录.

显示

调整${HOME}/.bashrc文件,把注释掉别名打开:


alias df='df -h'
alias du='du -h'

alias whence='type -a'                        # where, of a sort
alias grep='grep --color'                     # show differences in colour
alias egrep='egrep --color=auto'              # show differences in colour
alias fgrep='fgrep --color=auto'              # show differences in colour

alias ls='ls -h --color=tty'                 # classify files in colour
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
alias ll='ls -l'                              # long list
alias la='ls -A'                              # all but . and ..
alias l='ls -CF'                              #
alias wch='which -a'

这样调整后,可以ls、grep、dir输出彩色显示。
另外加上命令的-h选项,这样文件大小以K、M、G显示,方便人阅读。
git输出(比如log、status)彩色显示,使用下面的命令配置:


git config --global color.ui auto

vi配置

${HOME}/.vimrc文件中加上: # 没有.vimrc文件就新建。
set number
set hlsearch
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set nocompatible
set backspace=indent,eol,start

syntax enable
说明:
  • syntax enable:打开语法高亮。cygwin的vi缺省没有打开。
  • set nocompatible和set backspace:配置backspace键,缺省backspace不起作用。
  • set fileencoding和set fileencodings:缺省文件编码和自动识别文件编码顺序
  • set number:显示行号
  • set hlsearch:搜索到内容高亮
参考资料:

配置盘符的链接

到D盘,要/cygdrive/d,可以新建符号链接/d,这样可以减少录入(MSYS的做法)
ln -s /cygdrive/c /c
ln -s /cygdrive/d /d
ln -s /cygdrive/e /e

自动补全不区分大小写

~/.bashrc文件中添加:
shopt -s nocaseglob
~/.inputrc文件中添加:
set completion-ignore-case on

配置按单词移动/删除

.inputrc文件中添加:
# Ctrl+Left/Right to move by whole words
"\e[1;5C": forward-word
"\e[1;5D": backward-word

# Ctrl+Backspace/Delete to delete whole words
"\e[3;5~": kill-word
"\C-_": backward-kill-word

Windows和cygwin路径的转换

cygwin的路径和Windows的路径表示不一样。
要注意的是,cygwin下的cd命令可以直接使用Windows的路径表示。
$ cd 'C:\Windows\System32\drivers\etc'
注:不要忘了加上单引号,因为\是bash元字符,用于转义。不用上单引号cd命令收到的参数值就不是C:\Windows\System32\drivers\etc,运行报错。
路径转换的需求减了大半。
cygpath命令来完成转换,相关的选项是:
  -a, --absolute        output absolute path
  -w, --windows         print Windows form of NAMEs (C:\WINNT)
  -u, --unix            (default) print Unix form of NAMEs (/cygdrive/c/winnt)
执行的例子:
$ cygpath -au 'C:\Windows\System32\drivers\etc'
/cygdrive/c/Windows/System32/drivers/etc
$ cygpath -aw '/cygdrive/c/Windows/System32/drivers/etc'
C:\Windows\System32\drivers\etc

在cygwin的打开指定文件或文件夹到文件浏览器

常常会有这样的需求,比如打开文件浏览器explorer,然后用乌龟看SVN日志等等。
可以使用使用命令直接打开指定文件或文件夹的位置到explorer
打开文件或文件夹脚本,可以这个脚本命名成xpl,放到PATH上。
# xplexplorer的缩写
#!/bin/bash 
cygwin=false;
case "`uname`" in CYGWIN*) cygwin=true ;;
esac

if [ "$1" = "" ]; then XPATH=. # 缺省是当前目录
else XPATH=$1
 if $cygwin; then XPATH="$(cygpath -C ANSI -w "$XPATH")";
 fi fi explorer $XPATH
打开文件或文件夹,并选中的脚本,可以这个脚本命名成xpf,放到PATH上。
# xpfexplorer and select file的缩写
#!/bin/bash 
cygwin=false;
case "`uname`" in CYGWIN*) cygwin=true ;;
esac

if [ "$1" = "" ]; then XPATH=. # 缺省是当前目录
else XPATH=$1
 if $cygwin; then XPATH="$(cygpath -C ANSI -w "$XPATH")";
 fi fi explorer '/select,' $XPATH 

文件权限问题

现象

Windows的文件的cygwin下没有权限:
$ rm foo.txt
error: open("foo.txt"): Permission denied
error: unable to index file foo.txt
$ ll foo.txt
----------+ 1 Jerry None 486 Dec 24 14:16 foo.txt
文件的权限显示的是----------+,没有读写的权限。

解决方法

编辑/etc/fstab,在末尾加上下面的一行:
none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
关闭所有cygwin进程,再重启cygwin命令行。
显示文件权限已经正常-rw-r--r--
$ ll foo.txt
-rw-r--r-- 1 Jerry None 486 Dec 24 14:16 foo.txt
注意! 如果改了/etc/fstab但是没有生效,可以重启一下机器!

Windows命令的乱码

Windows命令的输出中文乱码,原因是Windows命令输出的编码是GBK。cygwin控制台mintty的编码缺省是UTF-8mintty的选项的【Text】把编码改成GBK即可。
参见:本文“文本配置:字体、编码”一节的截图。

命令窗口设置:字体、右键粘贴等等

这些设置对使用的舒适度至关重要。
cygwin的执行文件是mintty.exe,在命令窗口的标题的右键菜单上有【options】项,有这些配置项。

外观

配置光标显示、窗体透明。

文本配置:字体、编码

配置显示字体。
我喜欢用Consolas字体,这是Windows上一款质量很高的等宽字体。

右键粘贴配置

配置右键用于粘贴,缺省是弹出菜单。这个配置很方便!

效果图

展示了ls、grep输出的彩色显示,容器的字体效果。
vi的语法高亮就不再截图了。

后记

之前对cygwin这种适配的做法有偏见,觉得做得不会好。其实有了一个好点子,又有为之努力的人在,就会越来越好,从“丑小鸭”变成惊艳的“天鹅”。
谢谢这些为之不懈努力的人!
有了cygwin,让我对MacBook Pro的需求程度降低了,在Windows上还可以再呆一下子。 :)
OS作为一个工作环境,帮我方便的完成要做的事,关注点是:
  • 方便的大量的软件。Windows这一点太强。
  • 高质量的UI。Linux这一点太差。
  • 程序员要的舒适的命令行环境。Windows的cmd太弱,有了cygwin可顶一下。

相关资料

------------------------


复制命令行的输出,放在系统的剪贴板上

为什么要这么做?

  • 直接把命令的输出(比如grep/awk/sed/find或是你的程序输出结果)放到剪切板上,这么就可以在IM中CTRL + V粘贴后发出去。
    避免操作的繁琐和跳跃:把结果输出到文件、用文本编辑器打开文件、选中文本、CTRL + C。
  • 通过命令将文件内容拷贝到剪切板,以避免拷贝错误、操作的跳跃(跳到文件编辑器)

Windows下

使用系统自带的clip命令。
# 位于C:\Windows\system32\clip.exe
示例:
echo Hello | clip 
# 将字符串Hello放入Windows剪贴板

dir | clip
# 将dir命令输出(当前目录列表)放入Windows剪贴板

clip < README.TXT   
# 将readme.txt的文本放入Windows剪贴板

echo | clip 
# 将一个空行放入Windows剪贴板,即清空Windows剪贴板

Linux下

使用xsel命令。
示例:
cat README.TXT | xsel
cat README.TXT | xsel -b # 如有问题可以试试-b选项
xsel < README.TXT 
# 将readme.txt的文本放入剪贴板

xsel -c
# 清空剪贴板

Mac下

使用pbcopy命令。 # 对应有个pbpaste命令。
示例:
echo 'Hello World!' | pbcopy
# 将字符串Hello World放入剪贴板

最佳实践

要复制结果又想看到命令的输出

命令的结果输出时,如果给复制命令(即上面提到的命令clip、xsel、pbcopy)那么命令输出就看不到了。如果你想先看到命令的输出,可以下面这么做。
$ echo 'Hello World!' | tee tmp.file.txt
Hello World!
$ xsel < tmp.file.txt
$ rm tmp.file.txt
即先使用tee命令把输出输到控制台和一个文件中。
命令执行完成后,再把输出的内容放到剪贴板中。

复制SSH的公有KEY

使用下面的命令:
$ pbcopy < ~/.ssh/id_rsa.pub
注:不同系统使用不同的复制命令
避免用文本编辑器打开这个文件、选中文本、CTRL + C这样繁琐操作。

参考资料

后记

还在用的Windows、吐槽弱暴命令行cmd的程序猿们,推荐使用cygwin
--------------

如何在Windows下使用GNU命令

Unix/Linux系统下的命令比起Windows要完整的多。
这些命令用起来真是其乐无穷啊~ :)
  • grep
  • find
  • sort
  • awk
  • sed
  • wc
  • less / more
  • head / tail
  • cat / tac
  • tee
  • xargs
  • ……
在Unix/Linux下使用后再到Windows下,Windows下的cmd相形见绌,实在是不爽。既然这是个问题,总会有人注意到,去解决。
这些GNU命令在Window下是有Port的。在Windows下使用GNU命令有多种方案可选。

一、使用命令的Native的Port

我偏爱这种方式,在Windows的Cmd中使用命令。
  1. 下载和配置

Native命令下载地址在: http://unxutils.sourceforge.net
上面列出有两个下载: http://unxutils.sourceforge.net/UnxUtils.ziphttp://unxutils.sourceforge.net/UnxUpdates.zip 一些更新的命令 
# 原始地址可能已经不能下载,但是使用迅雷是可以下载的(会从镜像站下载)
把UnxUtils.zip解压到一个目录下,比如D:\bin\UnxUtils
Native命令位于D:\bin\UnxUtils\usr\local\wbin 目录下,把这目录加到PATH环境变量中,这们大功告成,重启Cmd可以用了。
UnxUpdates.zip中更新的命令,直接覆盖D:\bin\UnxUtils\usr\local\wbin目录下。
PS:
可以把路径D:\bin也加到环境变量PATH中,这个路径下可以放自己的命令或是批处理(BAT)文件。比如下文提到的dsb.bat、xpl.bat、xpf.bat 等等。
  1. 要调整的问题

用的过程中你会发现
  • date
  • echo
  • find
三个命令使用的不是Unix Port的那个,原因是
  • date、echo是Cmd的内部命令。
  • find在C:\Windows\system32目录下已经有了一个。
我的解决方法是,把D:\bin\UnxUtils\usr\local\wbin下的这三个命令重命名,前面加上u:
  • udate
  • uecho
  • ufind
好,来一个示例:
删除一个目录下所有的Eclipse工程文件
1
ufind -iname .project -or -iname .settings | xargs rm -rf
  1. 你可能不知道的Windows自带命令的用法

Windows下已有的命令也可以。

explorer

即文件浏览器。
加上选项,打开文件或是文件夹并选中。
加上下面的选项(/select,),会打开文件文件浏览器,并选中文件夹c:/windows。
1
explorer /select, c:/windows
可以作两个批处理文件,减少键入:
xpl.bat (打开指定的文件)
1
@ start "Title Placeholder" explorer %*
xpf.bat (打开文件或是文件夹并选中)
1
@ start "Title Placeholder" explorer /select, %*

dir

加上 /s /b 选项后,只会列出指定的文件。很适合用来搜索文件。
命令行搜索速度很快。
可以作一个批处理文件,减少键入:(见上图的最后一个示例)
dsb.bat
1
@ dir /s /b %*
PS: 
有关CMD的小技巧参见我的文章《Windows的CMD使用小技巧》。

二、使用Cygwin http://www.cygwin.com/

Cygwin通过一个中间层,模拟Linux API(cygwin1.dll)。然后把Linux的命令Port过来。
使用Cygwin提供了一个Shell。
优点
Port的命令比较全。连gcc都有。
缺点
路径是模仿Unix的,访问Windows下的文件,路径很怪,/media/c/Program files/

参照资料:

  • UNIX Command Line Tools For MS-Windows XP / Vista / 7 Operating Systems
http://www.cyberciti.biz/faq/unix-command-line-utilities-for-windows/ - Cygwin is a Linux-like environment for Windows http://www.cygwin.com/ - some ports of common GNU utilities to native Win32 http://unxutils.sourceforge.net/