2012年五月月 发布的文章

使用ssh通过http代理访问bitbucket

在很多公司内部,要想访问外部互联网都需要设置代理,我所在公司也是这样,有些时候这种限制真的可以让人骂娘。不过经过几年与代理的"斗争"后,大部分需 要访问外部网络的软件(比如subversion、apt-get、git、wgetc、filezilla等)经过设置后还都可以正常工作。不过前些日 子在折腾bitbucket上的源码库时又遇到了代理问题:无论通过https方式还是ssh方式都无法clone bitbucket上的git库。

之所以用bitbucket而不是github是因为前者提供免费的private repository,而后者则是收费的。今天又亟需访问bitbucket上的库,于是再次尝试突破代理的限制。

这次想到一个思路:ssh是否可以通过http代理出去呢?Google的结果告诉我:可以!于是眼前一亮,开始折腾。

首先要安装一个名为connect-proxy的链接代理软件:sudo apt-get install connect-proxy,软件不大,瞬间就安装完比。

然后创建~/.ssh/config配置文件(如果之前已经存在该文件,就打开该文件),将如下配置写入该配置文件:

## ssh access bitbucket.or via HTTP proxy
Host bitbucket.org
ProxyCommand connect -H user@proxy_server:port %h %p

## other sites, do NOT use proxy
Host *
ProxyCommand connect %h %p

这里的配置很清晰,当匹配到bitbucket.org这个host时,ssh经由http proxy访问相应的主机;其他主机,则直接访问。注意connect命令其实就是connect-proxy,通过ls -l命令可以看到/usr/bin/connect -> connect-proxy。保存该配置文件后,尝试clone一个bitbucket上的repository,例如:

$> git clone git@bitbucket.org:lindekleiv/jquery-ui-colorpicker.git

$> ~/proj/opensource$ git clone git@bitbucket.org:lindekleiv/jquery-ui-colorpicker.git
Initialized empty Git repository in /home/tonybai/proj/opensource/jquery-ui-colorpicker/.git/
Enter proxy authentication password for user@proxy_server:
remote: Counting objects: 33, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 33 (delta 18), reused 0 (delta 0)
Receiving objects: 100% (33/33), 16.04 KiB, done.
Resolving deltas: 100% (18/18), done.

可以看到命令执行后,会提示你输入访问代理的密码。输入正确的密码后,我们可以看到git可以顺利访问到bitbucket上的jquery-ui-colorpicker这个库了。

这里有一点挺让人糟心,那就是每次都得输入访问proxy server的密码,man connect-proxy也没有发现放置http_proxy代理密码的地方,用-h选项也不行。

注意这种用ssh访问的前提是将本地生成的公钥放置在你的bitbucket账户的"SSH keys"中了。

BTW,理论上这种ssh通过http代理的方式对github也同样适用。

翻译《七周七语言》的那些事儿

今天在互动出版网看到《七周七语言:理解多种编程范型》一书已经开卖了。看到自己参与翻译的第一本书出版了,心中还是很愉悦的,因为自己的辛苦付出终于有了结果。

一、缘起

能够参与到这本书的翻译完全是机缘巧合。记得2011年初我启动了一个《Programming in Haskell》的公共翻译项目,可是由于欠缺版权的考虑,中途不得不终止了该书的翻译。当时经dreamhead介绍联系到图灵刘江总编,希望人邮能 引进版权以促成该书的翻译,但刘总编考虑到该书是有关Haskell这门"小众"语言的,引进后受众面小,书很可能卖不出去,商业价值不高(后得知该书作 者Graham Hutton博士已经在与某出版社谈中文版版权的事宜了,并已经委托其一位同事进行中文版的翻译工作了)。不过刘总编说图灵当时已经引进了《Seven Languages in Seven Weeks》一书的中文版权,但第一译者戴玮因工作学习繁忙,可能无法按期完成全部翻译,问我是否愿意参与翻译。我的最初目标就是翻译一本英文技术书籍, 有这样的机会,而且书还可以在国内出版,于是我就欣然接下了这个翻译工作。

二、翻译过程

经过试译审核,顺利与图灵签订了翻译合同,我将负责翻译该书的PrologScalaHaskell三个章节。正式翻译是在2011年春节后开始的, 为了能在合同规定的第一个时间点交稿,我连续N天翻译到凌晨下半夜,工作日中午午休时间也在抓紧时间翻译,周末也不放松。因为是第一次翻译,生怕自己翻译 的不好,于是对原书中的每句话都字斟句酌,仔细揣摩。另外虽说此书是一本技术书籍,但作者给每门编程语言都赋予了一部电影中的典型人物角色,并用电影中的 情节或人物角色的特征作为章节的导引,这使得每章的开篇十分难于翻译,特别是当我不熟悉语言所对应的那部影片中的那个角色时,翻译更是举步维艰。为此,我 特意看了一遍"雨人(Rain Man)"和"星际旅行(Star Trek)",重温了"剪刀手爱德华(Edward Scissorhands)",为的就是能够更精确地定位本书作者所要表达的意思。Scala一章的第一稿提交后,我收到了图灵编辑不错的反馈。于是再接 再励,在2011年4月末交了全部初稿,5月中旬完成了中耕校对;2012年3月份完成排后稿的校对。

三、关于翻译方法和心得

这是我第一次参与翻译项目,说实在的真没有资格谈什么翻译方法,我也不是什么专业翻译人员。但在这本书的翻译过程中还是有若干经验和教训可以与大家分享的。

* 心态

我认识的参与过技术书籍翻译的朋友都说:翻译不是为了赚钱(那些以翻译为谋生手段的职业翻译除外),这点我深表认同。翻译工作是一件枯燥、辛苦甚至是费力 不讨好(出版后可能被拍砖)的工作。因此翻译前就要摆正心态,弄清楚自己为何要翻译,有了良好心态,才会有持续不断的动力,否则译着译着人就容易产生懈 怠,进度和质量都会下降,你需要这样一种战胜懈怠并持续下去的手段。

* 你是翻译质量的决定者

不要过于期望诸多编辑朋友会拿出百分百的时间对你的翻译内容进行校对,出版社的编辑们太忙了,一个人估计要至少负责10本以上书籍的出版工作,因此你才是翻译质量的决定者,从开始翻译的那一刻你就要保持高质量水准。

* 第一遍就要保持高质量,不要期待你能回头做二次翻译

第一遍翻译时,务必保证按顺序逐字逐句的高质量的翻译,一次到位;遇到难点也不要跳过,而是要集中精神搞定这个难点;否则你就会发现你积蓄的难点越来越 多,严重影响你后续翻译的情绪和心理。不要有回头做全面二次翻译的想法,因为你会发现那基本不可行,二次翻译时你会发现你的思路严重受制于第一次翻译的思 路,因此不仅不会提高什么质量,还会使你变得更加烦躁,严重影响翻译进度。

* 前后一致

保持前后章节的术语、句型等翻译的一致性。这点在翻译和校对时都要重点关注。

* 除了认真还是认真

不是所有人都是翻译天才,大部分译者,特别是技术书籍的译者,可能只是那个领域的从业人员(比如我),在翻译能力上存在不足。但万事就怕认真,认真可以尽量袮补在能力上不足,也是出品高质量译文的必要条件。

四、关于《七周七语言》一书

从本书的中文名字,你也许会将其与"21天学会C语言"之类的捷径书籍混为一谈,但本书的初衷与那些捷径书籍显然不同。本书意在让你在短时间内了解到多种 编程语言的范式和主要特性,并做简单的对比了解。书的作者也许并不期望你在看完某种语言后就彻底学会了这门语言,那显然不是本书的意图。如今也许是另一个 编程语言百家争鸣的时代,新的语言层出不穷,作者试图帮助大家在如此繁多的语言当中找到一些适合你投资、学习和使用的有前途的编程语言。

书的最终版本我也没有拿到,我也只是看了我所翻译的那三章,因此书的内容好坏我也不能妄加评论。这里是Amazon.com上关于此书的一些书评(中文翻译版),另外从本书获得了2011年Jolt大奖可以看出本书还是被业内专家一致看好的。

个人感觉出版的有些晚了,如果能与Jolt大奖的公布同步推出也许效果会更好。书的最终纸质版本我也没有拿到,尚不知书的印刷质量如何,另外翻译的质量如何还得需要大家评判。

最后十分感谢翻译过程刘江、杨海玲 、傅志红、李松峰、丁晓昀等各位老师对我的帮助。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats