Translation

【译文】理查德·汉明《你和你的研究》

本文翻译自 https://www.cs.virginia.edu/~robins/YouAndYourResearch.html 最初了解该文来自 [[阮一峰]] 对该文的精简版介绍,https://www.ruanyifeng.com/blog/2016/04/you-and-your-research.html

理查德·汉明《你和你的研究》 #

贝尔通信研究所学术研讨会发言 1986 年 3 月 7 日 J. F. Kaiser  J. F. Kaiser 贝尔通信研究所 445 South Street
Morristown, NJ 07962-1910 jfk@bellcore.com

在贝尔通信研究学术报告系列的一个研讨会上,加利福尼亚州蒙特雷海军研究生院的教授、退休的贝尔实验室科学家理查德·W·哈明博士于 1986 年 3 月 7 日在莫里斯研究与工程中心向约 200 名贝尔核心员工和访客发表了一场非常有趣和激励人心的演讲,题为“你和你的研究”。这次演讲集中讨论了汉明对问题“为什么很少有科学家做出重大贡献,而很多人在长期内被遗忘?”的观察和研究。他在贝尔实验室工作了 30 年,拥有超过 40 年的经验,直接观察了许多科学家的行为,向科学家提出了非常尖锐的问题,问他们做了什么、如何做以及为什么做,他还研究了伟大科学家的生活和伟大贡献的产生,进行了内省并研究了创造力理论。这次演讲讨论了他在独立科学家的特性、能力、特点、工作习惯、态度和哲学方面所学到的东西。

为了使演讲中的信息更广泛地传播,本文对该演讲进行了仔细的录音转录。这份转录包括随后在问答环节中进行的讨论。与任何演讲一样,转录版本因为失去了演讲者的声音语调和手势而受到影响;必须听录音才能重新捕捉到演讲的那部分内容。虽然# 理查德·汉明的演讲录音完全可理解,但有些提问者的言论却不是。在录音不可理解的地方,我已经在括号中加入了我对提问者言论的印象。在有疑问且能确认提问者身份的情况下,我和每个提问者核实了对其言论解释的准确性。

关于理查德·W·汉明博士的介绍 #

作为贝尔通讯研究公司学术研讨会系列的演讲者,来自加利福尼亚州蒙特雷海军研究生院的理查德·W·汉明博士由贝尔通讯研究公司应用研究副总裁艾伦·G·钦诺威斯介绍。

Alan G. Chynoweth:各位同事,以及我了解到许多来自贝尔实验室的前同事今天也在这里与我们共聚一堂,我谨代表大家表示问候。今天是一个特别幸福的日子,我非常高兴地向大家介绍我多年的老朋友和同事 Richard Hamming,或者我们都熟知的 Dick Hamming。

汉明是数学和计算机科学领域中的伟大人物之一,我相信在座的观众不需要提醒。他在芝加哥大学和内布拉斯加大学接受了早期教育,并在伊利诺伊大学获得了博士学位;然后他在战争期间加入了洛斯阿拉莫斯项目。之后,于 1946 年,他加入了贝尔实验室。当然,那就是我遇到汉明的地方——当我加入贝尔实验室的物理研究组织时。那些日子里,我们习惯一起午餐,而这个来自数学领域的奇怪家伙总是很高兴加入我们。我们总是很高兴有他在一起,因为他带来了很多非正统的想法和观点。我可以向你保证那些午餐是很有启发性的。

虽然这些年来我们的职业道路并不是非常接近,但我一直在贝尔实验室的走廊里和碰到汉明,并一直非常钦佩他所做的事情。我认为事实证明了一切。要详细说明太长了,但是让我举个例子,他已经写了七本书,讲述了各种数学、计算机、编码和信息理论领域的书籍,其中三本已经进入了第二版。这毫无疑问证明了理查德·汉明的多产和地位。

我想上次见到他应该是在十年前的都柏林一个相当有趣的小型会议上,我们都是演讲者。像往常一样,他非常有趣。这只是他提出的挑衅性思想的又一个例子:我记得他说过,“有些波长人们看不见,有些声音人们听不到,也许计算机有些思维人们想不到。”有了理查德·汉明,我们不需要计算机。我认为我们将会听到一场非常有趣的演讲。

讲座:Richard W. Hamming 博士的 “你和你的研究” #

很高兴来到这里。我怀疑我是否配得上这样的介绍。我演讲的题目是:“你和你的研究”。这不是关于管理研究,而是关于你个人如何做你的研究。我可以讲另一个主题,但我现在不会,因为这次演讲是关于你的。我不是在谈论普通的研究,我说的是伟大的研究。为了描述伟大的研究,我偶尔也会说诺贝尔奖级别的工作,不过它不一定要获得诺贝尔奖,我说的是那些我们认为重要的事情。例如相对论、香农的信息理论,任何一种杰出的理论——我所说的就是这种东西。

那我是如何开始这项研究的呢?在洛斯阿拉莫斯,我被召来管理那些其他人已经运行起来的计算机,这样那些科学家和物理学家就可以回到他们的工作中。我认为我是一个替罪羊。我发现虽然身体上我和他们一样,但他们与我不同。坦白地说,我非常羡慕。我想知道他们与我不同的原因。我近距离看到了费曼,我也看到了费米和泰勒。我看到了奥本海默。我看到了汉斯 · 贝特:他是我的老板。我看到了许多非常有能力的人。我对那些做事的人和那些可能会做事的人之间的差异非常感兴趣。

当我来到贝尔实验室时,我加入了一个非常有成效的部门。那时 Bode 是部门主管;香农也在那里,还有其他人。我继续思考“为什么”和“有什么区别”。后来我通过阅读传记、自传,并向人们询问“你是怎么做到这一点的?”来进一步探究这些问题。我试图找出区别所在。这就是这次演讲的内容。

...

【译文】使用 WireGuard 远程接入局域网

原文地址:https://www.laroberto.com/remote-lan-access-with-wireguard/

本文中,让我们来看看如何使用WireGuard建立一个简单而安全的隧道(VPN)到你的本地局域网(homelab)。我们将采用VPS的方式,这样我们就不必向互联网暴露任何端口。

我们将模拟以下设置

角色:

  • Router - 将作为你的局域网网关(向内)的机器。
  • Server - 具有公网IP的机器,所有客户将连接到它,也被称为Bounce Server。
  • Client - 你,试图在某个地方远程连接到局域网。

配置 #

注意:所有的机器都基于 Ubuntu,根据你选择的 Linux 发行版调整设置

Server 和 Router #

对于Server 和Router执行以下操作

sudo apt update && sudo apt upgrade
sudo apt install wireguard
wg genkey | tee privatekey | wg pubkey > publickey
sudo sysctl net.ipv4.ip_forward=1

注意:要持久化 IP 转发,编辑 /etc/sysctl.conf,添加 net.ipv4.ip_forward=1

对于Server,创建 /etc/wireguard/wg0.conf:

[Interface]
Address = 192.168.10.1/32
ListenPort = 51820
PrivateKey = <Server's Private Key>

# Router Peer
[Peer]
PublicKey = <Router's Public Key>
AllowedIPs = 192.168.10.0/24, 10.0.20.0/24

对于Router,创建 /etc/wireguard/wg0.conf:

...

【译文】如何轻松配置 WireGuard

在网上搜索 WireGuard 时机缘巧合发现的一篇非常不错的教程,之所以说机缘巧合,是先在知乎专栏发现了一篇机翻的文章,虽然机翻质量很差,但浏览发现确实是我需要的资料,遂找到原文翻译,光荣属于原作者 Stavros Korokithakis,glory belongs to Stavros Korokithakis :)。原文链接 How to easily configure WireGuard 以下是译文。

WireGuard非常棒!

最近你可能注意到了网络上关于 WireGuard 的口碑谈论。WireGuard 是一个非常简单的VPN,它使用最先进的密码技术。其口碑既来自于 WireGuard 本身的简单好用,也来自它将默认包含于 Linux 内核。Linus Torvalds 本人说他很喜欢 WireGuard,这在软件社区风靡一时,因为我们并不知道 Linus 居然能够表达爱或者除了憎恶之外的任何情感。

我在 WireGuard 使用中遇到的唯一问题是缺少文档,更准确地说是缺少预期的文档。快速入门指南提到了一个配置文件,但它从未告诉你应该如何编写这个配置文件,而且它还假设你比我更熟悉网络知识。

因为宇宙形成的初始条件决定了一切,所以 WireGuard 的文档终将不足,我将违背造物主向你展示如何轻松配置和运行它。我们开始吧!

简短概述 #

![[Pasted image 20241118205757.png]] 一个看起来有点结实的守卫,确保你不会下意识地觉得这个帖子干燥无聊。

WireGuard 的核心是创建从一台计算机到另一台计算机的接口。它实际上不能让你访问网络任何一端的其他计算机或通过 VPN 服务器转发所有流量,或类似的任何内容。它只是直接、快速且安全地连接两台计算机。

要做除此之外的任何事情,你需要为它配置网络,而这并不再 WireGuard 文档的范围内,但就 VPN 来说这很重要。幸运的是,WireGuard 附带了一个帮助脚本wg-quick,几乎可以满足普通用户的所有需求。注意 wg-quick的配置文件与wg可执行文件不兼容,但我们只需要wg-quick,所以不用担心这个。

让我们开始设置一切。

安装和设置 #

要安装 WireGuard,请参阅安装页面,它应该非常简单。安装后,你需要为访问 VPN 的每台计算机生成一个私钥和一个公钥。由于 WireGuard 的设计,一个链接两端的计算机都需要拥有对方的公钥。

让我们生成这些密钥。在位于 VPN 中的每台计算机上,创建目录 /etc/wireguard/,并在每台计算机上刚刚创建的目录中,执行这些命令:

$ umask 077  # This makes sure credentials don't leak in a race condition.
$ wg genkey | tee privatekey | wg pubkey> publickey

这将在每台计算机上生成两个文件privatekeypublickeypublickey文件用于告诉全世界,privatekey文件是秘密的,应该保留在生成它的计算机上。

...