[翻译]大道至简(原标题:少是指数级的多)

原文 Less is exponentially more 是 Rob Pike 自己整理的他在六月22日,旧金山的 Golang 会议上的演讲稿。清晰的介绍了 Go 的前世今生,来龙去脉。为了让更多的人能够更加清楚的认识到 Go 的优雅并喜爱上 Go,特翻译成中文,以飧读者。 —————-翻译分隔线—————- 大道至简 这是我(Rob Pike)在 2012 年六月,旧金山 Go 会议上的演讲内容。 这是一个私人演讲。我并未代表 Go 项目团队的任何人在此演讲,但我首先要感谢团队为 Go 的诞生和发展所做的一切。同时,我也要感谢旧金山 Go 社区给我这个演讲机会。 在几个星期之前我被问到,“在推出 Go 之后,什么令你感到最为惊奇?”我立刻有了一个答案:尽管我们希望 C++ 程序员来了解 Go 并作为一个可选的语言,但是更多的 Go 程序员来自如于 Python、Ruby。只有很少来自 C++。 我们——Ken,Robert 和我自己曾经是 C++ 程序员,我们设计新的语言是为了解决那些我们编写的软件中遇到的问题。而这些问题,其他 C++ 程序员似乎并不怎么在意,这看起来有些矛盾。 今天我想要谈谈是什么促使我们创建了 Go,以及为什么本不应该是这样会我们惊讶的结果。我承诺讨论 Go 会比讨论 C++ 多,即便你不了解 C++ …

[翻译]用 Go 实现零停机升级 TCP 服务

零停机升级几乎是现代网络服务的标配,其实现原理并不复杂……blablabla……( 从文件描述符讲起,省略一万字)。现在有人确认 Go 也可实现零停机升级 TCP 服务或者更加简短的叫法——热更新。 原文在此:Zero Downtime upgrades of TCP servers in Go —————-翻译分隔线—————- 用 Go 实现零停机升级 TCP 服务 最近在 golang-nuts 邮件列表上有篇帖子提到 Nginx 可以保持服务的时候进行升级,而无需停止它正在监听的 socket。秘诀是取消监听的 socket 上的 close-on-exec,然后 fork 并运行一个新的服务(用升级后的二进制文件),并用参数告诉它使用继承的文件描述符,而不是调用 scoket() 和 listen(s)。 于是我就想试试在 Go 中是否能做到同样的事情,以及对于标准库需要做什么样的修改来达到这个效果。最终我实现了这个功能,而且只需要很小的修改,接下来会解释一下是如何做到的。

[翻译]Go 版本 1 发布

原文:http://blog.golang.org/2012/03/go-version-1-is-released.html —————-翻译分隔线—————- Go 版本 1 发布 今天,在 Go 编程语言的开发上标记了一个主要的里程碑。我们宣布 Go 版本 1,或者简称为 Go 1,定义了一个语言和一系列的核心库作为基础,用于创建可信赖的产品、项目和出版物。 Go 1 是 Go 的第一个发布,提供了二进制包。可用于 Linux、FreeBSD、Mac OS X 以及,令人非常兴奋的——Windows。

[翻译]Go 环境设置

在最近的 weekly 版本中,golang 已经将大多数操作集成到了 go 这一个工具。并且环境变量的设置也发生了变化。不过蛋疼的是,如果不理解 GOPATH 的真正用法,只会让你蛋碎一地。 最常见的错误: 这篇文章,简短、清晰的解释了新的 go 环境应当如何设置。 作者 Frank Müller,原文在此:http://mue.tideland.biz/2012/02/go-environment-setup.html?spref=tw

[翻译]go 工具

go 工具来了,集大成,全整合。没了 Makefile 还真有点不习惯。此文甚好,早就想翻译了,无奈最近焦头烂额……不管怎么样,还是动手了。 原文要翻墙,访问请谨慎:The go tool —————-翻译分隔线—————- 线上介绍了 go 命令的最新 weekly 发布后,我决定写一些关于它的内容。我得承认,在第一次听说统一 go 工具的时候,我满是怀疑并对此非常恐惧。我担心它会像大多数其他语言特定的包管理器一样混乱。个人认为多数这种包管理器都是在重新发明轮子,并且与操作系统的包管理器发生冲突,让系统管理员生活的更加艰辛。另外,我确实喜欢 makefile,它们简单并且直接,工作得也很好。幸运的是,新的 go 工具驱散了我的恐惧!

[翻译]从 r60 到 Go 1

Go1 发布的日子越来越近,Golang 社区就像将开了的山泉水一样,泊泊的不断传来各种关于 Go1 的声音。 这篇文章总结得比较完整,很清晰,随即翻译于此。 原文:http://gophersays.com/from-r60-to-go1/ —————-翻译分割线—————- Go 1 已经到门口了,伙计们,它有许多变化! 这里是关于你必须知道的一些重要事情: Go 命令 新的 map delete 语法 Error 有了自己的包 重写的库 新的库

[翻译]Goroutine性能测试

原文在此:http://en.munknex.net/2011/12/golang-goroutines-performance.html ————————–翻译分割线————————– 概述 在这篇文章里,我将尝试评估 goroutine 的性能。goroutine 是类似轻量级线程的东西。为了提供原生的多任务,它(协同 channel 一起)被内建于Go中。 文档告诉我们: 它实际上是在同一个地址空间里创建成百上千个 goroutine。 因此,这个文章的重点就是测试并明确在如此巨大的并发运行函数的情况下所能承受的性能压力上限。

[翻译]Go 指南

英文版本是《A Tour of Go》。我看过之后觉得这种学习体验非常棒,随即按照规则翻译了中文版本: 《Go 指南》 这个中文版本是部署在 GAE 上的,由于受到功夫网的影响,国内用户无法正常访问。所以,大家八仙过海吧。 (人还在这里,心已经出去了……) 由于许多原因,可能有的朋友无法一窥墙外之物。也可以通过源码将指南安装到本地使用。指南中有详细的说明,转发到这里,诸位自便吧。代码我托管在了 http://bitbucket.org/mikespook/go-tour-zh。

[翻译]S代表着Simple

我从来都不是 SOAP 的拥护着。甚至,我对 xml 都会有一种天生的恐惧。别问我为啥,我也不知道。性情如此吧。 这个故事是我看过的最搞笑,也最命中 SOAP 的要害的段子。看完之后,我突然明白我为啥不那么喜欢 SOAP、WSDL、UDDI之类的了。 翻译至此,大家一起乐乐。 原文在此:http://harmful.cat-v.org/software/xml/soap/simple ———-翻译分割线———- S意味着Simple Pete Lacey 编撰 在 Burton 团体的应用平台服务组内,支持 REST 的人和支持 SOAP 的人已经进行了很久的论战。在大多数情况下这只是外部论战的一个缩影。在最近的一次交锋中,当讨论到 SOAP 和 web 服务的复杂性时,SOAP 的一方这样说到“在之前的 WS 情形下,SOAP 确实是简单的。这也就是 S 所代表的东西。” 那么现在是历史课时间。这是 2000 年,一个倍受折磨的开发者遇到了一个问题……

[翻译]Dennis Ritchie:Steve Jobs 的巨人肩膀

原文来自:http://www.wired.com/wiredenterprise/2011/10/thedennisritchieeffect/。 Jobs 和 dmr 老爹前后离开,让很多人不能不将其放在一起谈论。无论如何,他们都是伟大的人。有的时候在很短的时间里,这个世界同时失去两个伟大的人,是一件很难言语的事情。 “If I have seen further it is only by standing on the shoulders of giants.”- Isaac Newton. 仅以此向 dmr 老爹致敬。 ———————翻译分割线——————— Dennis Ritchie:Steve Jobs 的巨人肩膀 Cade Metz撰写 2011十月13日 7:14 pm 对 Dennis Ritchie 的悼念完全不能同 Steve Jobs 去世后在 Web 上纷飞的如潮水般的赞美相提并论。但是他们确实如此。 甚至更夸张一些。 “当 Steve Jobs 上周去世后,产生了声势浩大的哀悼活动,而这是另人感动和恰当的。虽然 Dennis 有着更大的成就,但是公众甚至不知道他是谁。”另一个程序界的传奇,现在是一名 Google 人,在著名的贝尔实验室工作的20年里同 Ritchie 每日穿过同一个门廊的 …