foobar? foo! bar!

#something

当我开始想要写这篇blog的时候开始觉得自己有点奇怪了。

首先,我是在写完了那篇论文审稿意见之后开始无聊的想仔细查找Shadowsocks的意义和使用。然后无意中发现了除了gui之外还有好多的客户端,例如Shadowsocks-go。当然download,解压缩之后发现里面有个图标简陋的客户端,打开是命令行样子,配置文件猜测就是json吧。

文件夹里有两个json:multi-server & sample-config。又找原作者在github上的readme仔细读了下,那个sample-config只是个例子,真正的配置文件应该是config.json。所以copy下重新编辑就可以了。基本明白了这个Shadowsocks-go 的用法了。

然后我打开了sample-config。发现里面用到了foobar和barfoo来代表密码。

总觉得好稀奇的样子,冥冥中还感觉好像自己曾经搜索过,但是真的想不起来了,所以开始google。

居然找到了csdn,然后有一层很简单的说道:“rfc3092 …”时间是2007-07-19。RFC是一系列文档,而且具有数目庞大的编号。但是我依然找到rfc3092,ok,原来里面详细的介绍了foo和bar的来源。

so,原来是foo和bar,不是foobar也不是barfoo……

那么他们包含的意思也挺有趣的。参考百度百科:

而foo是fu的变体,fu是英语习语fuck-up的缩写,同样是一团糟的意思。于是,若你有些编程经验,我想你应该已经明白了为何如今许多编程实例所涉及的事物均被冠名为foo。

—-摘自:编程黑马真言,王轶男。

首先我道歉,我看成王铁男。脑海里瞬间翻涌出了一个肌肉棒子,明显不符合编程黑马的设定。 往下仔细查看的话,会发现foo或许跟中国还有关系,“福”的英文发音。

bar是beyond all recognition的缩写,通俗点就是无法识别,一塌糊涂的意思。

来自维基:

单词“foobar”或分离的“foo”与“bar”常出现于程序设计的案例中,如同Hello World程序一样,它们常被用于向学习者介绍某种程序语言。

“foo”常被作为函数/方法的名称,而“bar”则常被用作变量名。

至此到下班时间了。

我查看了rfc3092英文文档,搜索了百度百科、维基百科,翻墙google了下。而一切的开端只是因为我想查Shadowsocks,而无意中发现了go客户端(其实还有cow……)。

所以我说我开始觉得我有点奇怪了。

ps:那么foobar2000其实就是fuck up beyond all recognition 2000!的意思了??想一想好像有点带感。