SSH作为Socks代理的简单方法

VPN在实际使用中也不一定方便,如果只是想简单上个网,恰好在国外又有可以ssh远程登录的服务器,那么可以很方便的将ssh作为隧道转化成Socks代理,具体方法如下:

Windows下操作:

在 putty 中设置好要登录的服务器 ip,并在“连接-SSH-通道”中设置:源端口6080 动态 自动,然后增加
保存后打开,使用账号和密码登录,这样就建立好 socks 5 代理.
在相关软件中设置好代理参数 socks5: 127.0.0.1:6080 后便可以使用.

Xshell 类似,在 SSH Tunnnel 里面设置,选择 Socks5.

Mac 和 Linux 中操作:

在终端中运行 ssh -D 6080 user@theserver ,然后在浏览器或者软件中设置好代理参数 socks5: 127.0.0.1:6080 后便可以使用.

推荐浏览器设置

推荐使用 Firefox 和 Chrome 等,然后安装相应的proxy一键切换工具,如 Chrome Falcon Proxy; Firefox Proxy Selector 等。 当然,如果自己写一个 pac文件来自动控制哪些网站使用proxy,那就不属于本文的范畴了。

大气运动方程

$$ \overrightarrow{F}=-\frac{1}{\rho}\nabla p $$
$$ \frac{du}{dt}=-\frac{1}{\rho}\frac{\partial p}{\partial x} $$
$$ \frac{dv}{dt}=-\frac{1}{\rho}\frac{\partial p}{\partial y} $$
$$ p=\rho gT $$
$$ \frac{\partial p}{\partial z}=-\rho g$$

由牛顿第二定律:
$$ \overrightarrow{F}=ma $$
对于大气来说
$$ \overrightarrow{F}=-\frac{1}{\rho}\nabla p $$
考虑X-Z的二维平面
$$ \frac{\partial u}{\partial t}=-\frac{1}{\rho}\frac{\partial p}{\partial x} $$
$$ \frac{\partial p}{\partial z}=-\rho g$$

根据静力平衡关系:
$$ ln\frac{p_0}{p_1}=\frac{g[H_1(z)-H_0(z)]}{R\overline{T}} $$
其中$H_1(z)$是大气上界的高度,假设大气下界$H_0(z)$是平坦的,$p_0$为常数,$\overline{T}$是这层的平均温度,将此式对$x$求导,得到:
$$ \frac{\partial p_1}{\partial x}=p_1\frac{g[H_1(z)-H_0(z)]}{R\overline{T}^2}\frac{\partial \overline{T}}{\partial x} $$

$$
\begin{eqnarray} %方程组开始
\left{ %方程组的左边包括大括号{
\begin{array}{lll} %设定列阵的格式:{lll}是三个L,表示三列的对齐方式为Left对齐
x^2 + y^2 &=& z^2 \ %$——分隔列的标记,\——表示换行
x^3 + y^3 &<& z^3 %$同上

\end{array} %方程列阵的结束
\right. %方程组的右边无符号,利用“.“来标示
\end{eqnarray} %方程组结束
$$

Sublime Text 开启对NCL的支持-附Vim NCL

NCL是一门小众的语言,Sublime Text 是最近比较火的一款扩展能力非常强的跨平台编辑器,因此即便是小众的NCL 也有人(LASG的Dong Li 啦)为他开发了NCL支持功能,包括语法高亮、自动补全等。 具体使用方法如下:

安装 Sublime Text

自不赘言 http://www.sublimetext.com

开启Package 管理包

通过 ctrl+或者 theView > Show Console ` Menu 打开 控制台,然后输入:

如果是 Sublime 2:

1
import urllib2,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

如果是 3:

1
import urllib.request,os,hashlib; h = '2deb499853c4371624f5a07e27c334aa' + 'bf8c4e67d14fb0525ba4f89698a6d7e1'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

添加 NCL扩展包

  • Open command palette (click menu Tools > Command Palette … or press ctrl-shift-p in Linux/Windows or cmd-shift-p in Mac).
  • Type Install Package (you can just type some characters of Install Package such as inst).
    Wait the completion of the loading (patience).
  • Type NCL and click the NCL item showing up.

Here we go!

Vim NCL

git clone https://github.com/xiexinyls/vim ~/.vim

也可以到 https://github.com/xiexinyls/vim 下载,然后放到 ~/.vim 目录下面,
当然注意 ~/.vimrc 文件

Brew your software in OS X

安装 brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

查找软件

brew search netcdf

查看软件信息

brew info netcdf

安装软件

brew install ncview gfortran cdo grads wget axel parallel

值得注意的是,brew会自动解决依赖问题,如ncview依赖netcdf,那么他会自动先安装netcdf,然后再安装ncview

如果编译一个软件需要参数,那么可以直接加上这些参数,如:

brew install --enable-fortran

安装小众软件

brew 目前将比较小众的一些软件分门别类,cdo 属于science类,同样地 ncview、netcdf等也属于这一类,而grads则分到binary 类,这类小众软件的formula默认是不下载的,需要预先“提取”一下:

brew tap homebrew/science homebrew/binary

自己创建brew安装包

如果需要的软件暂时还没有进入官方维护包内,那么可以创建一个新的 brew formula (以cdo为例, 更新:cdo目前已经正式进入官方的list中,因此不需要再手动创建,而只需要运行 brew install cdo 就好了)

brew create https://code.zmaw.de/attachments/download/2372/cdo-1.5.4.tar.gz

创建好了以后,修改 Formula文件,解决一些依赖问题

brew edit cdo

写入以下内容(依赖 netcdf, hdf5, proj)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'formula'
class Cdo < Formula
url 'https://code.zmaw.de/attachments/download/1690/cdo-1.5.2.tar.gz'
homepage ''
md5 'a01826b7c2906579f17c6dbc7d619479'
depends_on 'netcdf' # 这几句是手动添加的,增加依赖关系
depends_on 'hdf5'
depends_on 'proj'
def install
hdf5 = Formula.factory 'hdf5' # 这几句是手动添加的,增加依赖关系
netcdf = Formula.factory 'netcdf'
proj = Formula.factory 'proj'
system "./configure", "--with-hdf5=#{hdf5.prefix}","--with-proj=#{proj.prefix}","--disable-debug", "--disable-dependency-tracking","--with-netcdf=#{netcdf.prefix}", "--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
def test
# This test will fail and we won't accept that! It's enough to just
# replace "false" with the main program this formula installs, but
# it'd be nice if you were more thorough. Test the test with
# `brew test cdo`. Remove this comment before submitting
# your pull request!
system "false"
end
end

然后就可以编译安装啦

brew install cdo

SublimeText/TextMate remote editing with rmate

Preparation of Sublime Text 准备工作

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl 就可以了

Run subl --help

subl as default EDITOR

export EDITOR='subl -w'

Specifying -w will cause the subl command to not exit until the file is closed.

Install

Install rmate on remote server where you would like to

You can install rmate via gem:

1
gem install rmate

or just:

1
2
curl -Lo /usr/local/bin/rmate https://raw.github.com/textmate/rmate/master/bin/rmate
chmod a+x /usr/local/bin/rmate

or, you cqn install ported version of

用法 Usage:

  • First open Sublime Text or TextMate on your machine.
  • Then, open a tunnel to your server on your local machine
1
2
ssh -R 52698:localhost:52698 user@yourserver.org
这样
  • Finally, run rmate yourfile on the openned ssh shell and edit your file on your local machine

140618听音日志-Carl Orff 《布兰诗歌》

Carl Orff - Carmina Burana

EMI, London Symphony Orchestra, Andre Previn, 整体感觉,比较爆棚。

喜欢的 track:

  • 5 Ecce gratum 《圣洁的春》, 比较欢乐;* 11 Estunans interius 《我心中似火燃烧》, 这个独唱以及合唱……;
  • 15 Amor volat undique 《爱情到处飞扬》,童声合唱和女高音独唱,配乐和合唱都很好听;
  • 18 Circa mea pectora 《在我心中》,男中音独唱与合唱,欢快的合唱与韵味十足的独唱;
  • 22 Tempus est iocundum《这时辰多可爱》女高音,男中音与童声合唱, 合唱很有气势, 独唱的哥们腔调加上背景的配音, 简直句句“诛心”, 让人忍不住手舞足蹈、又或者跟着唱起来, 这段应该是最喜欢的一段了;* 当然 20 的后半段、第一段和最后一段经典的《命运女神》、第二段和倒数第二段大气磅礴的大合唱也很喜欢。

    这个录音版本有很多,Enigma 和 Era 都有基于这个的在创作,也很好听。说到 Enigma,偶然发现,这个乐队也是德国的,这样一来,除了古典的乐队如维也纳、柏林啥的,连摇滚和 New Age 中喜欢的乐队也几乎是德国的,如德国战车、蝎子乐队等;现场听得前两首歌剧《魔笛》和《蝙蝠》也都是德国(奥)的 :-)

    附歌词: http://www.classical.net/music/comp.lst/works/orff-cb/carmlyr.php

Hexo 一键群发_Hexo Batch Deploy

Hexo 架构的博客可以很方便地发布到 Github 等,而且因为是纯 md 文件,同时转化为全静态的文件,因此可以非常方便地在不同站点间同步。 这不,原本架构在 Github 上的博客,但是 Github 毕竟速度比较慢一些,所以同时还架在 Gitcafe 上了,这样国内访问就快多了,要是有自己的域名加上 DNSpod 的一些设置,可以让国内国外的访客分别访问最快的服务器。 原本是写了个 cron 脚本自动 rsync 到不同的目录的,现在才发现 Hexo 本身就有一键群发的功能,只需要在 _config.yml 文件里面配置好多个网站 git 地址就好了:
For Batch deploy with Hexo, just configure _config.yml :

1
2
3
4
5
6
7
8
# Deployment
## Docs: http://zespia.tw/hexo/docs/deployment.html
deploy:
type: git
repo:
github: https://github.com/daxiawj/daxiawj.github.io.git
gitcafe: https://gitcafe.com/daxiawj/daxiawj.git,gitcafe-pages
bitbucket: https://daxiawj@bitbucket.org/daxiawj/daxiawj.bitbucket.org.git

其中,gitcafe: https://gitcafe.com/daxiawj/daxiawj.git,gitcafe-pages 基本格式是 标签: repo,[branch][branch] 默认是 master

当然,还可以添加 rsync 等同步方式,以同步到自建的 apache 或者 nginx 静态站点上,此处不再赘述。

OSX: can't open X11 display

由于苹果公司果断放弃了自己维护 X11.app,只能用 XQuatz 来替代。但是在使用 XQuartz 的过程中经常遇到一些问题,比如环境变量的设置问题。今天遇到一个问题就是,自己点击安装的 XQuartz.app 是能正常运行的,但是在终端里面使用 xeys、GrADS 等软件的时候报错:“can’’t open display”。

大部分情况下,如果正确安装了 XQuartz 但是遇到这个问题的话,很可能是配置文件没能正确地起作用。

If XQuartz were installed and you can launch it, while can’t launch it in terminal, then you may solve it by:

1
2
3
launchctl unload -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
reboot

Then it should work!.

问题解决。

SFTP: Received message too long

After a slight modification to ~/.bashrc, my sftp connection always fails with FileZilla, XFTP, and commandline sftp, but Transmit in OS X works fine.

With verbose mode of command sftp, it tells ‘Received message too long’. Carefully checked ~/.bashrc, found that an echo was added for debugging, after remove the echo sentence, sftp works perfectly again.

So, if you want your sftp works fine, please be careful with shell config files like .bashrc or .cshrc or so, especially there are echo or other messages outputed.