2023年1月

本文收录了 LCTT 自创和选用的翻译词汇。

为什么要自创翻译词汇?在翻译过程中,我们发现一些非缩写的英语术语沿袭使用了英语单词/短语,而没有得体的、公认的、正式的对应中文翻译。我们认为,中英文混杂是对原生语言的一种污染(英文缩写除外,这是为了减少冗长的语句),按照本地化的宗旨,应该对这些词汇进行翻译,并在必要时创造新的词汇。故此,我们在几年的翻译中,逐渐推敲和形成了一些新的译法,并在我们翻译的文章中使用和推广。

对这些译法,我们尽量遵循“信达雅”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。

我们采用的方法是:

  • 音似:中文读音近似于英文原词
  • 意近:中文字的意思接近英文原意
  • 组词:根据上述两条组成新的词汇,以避免和原有词汇混淆

此外,需要说明的是,有些译法可能已经被其他人在别的地方更早提出,但限于我们的学识和搜索能力,并未发现和了解到,并非我们故意剽窃。

顺便说一句,2014 年对 “Shebang”(#!)一词翻译时,来自于 LCTT 早期重要贡献者 GOLinux 提出的 “释伴” 译法,是我们第一次创造新的翻译词汇,也是我们形成这样的想法的起点。

除了自创的翻译词汇外,这里还收录了一些选用的翻译词汇。有一些词汇存在多种译法,我们在翻译和使用过程中,采用了某个译法,在此列出以保持一致。

F

Fork:复刻

Fork 行为/操作广泛用于进程管理、版本管理和软件衍生方面。此词汇也长期缺乏确定的译法。

此前,提议者对 Fork 给出了 “复刻” 的译法。基本意思是,根据上游/父本复制一份,然后在此基础上进行修改,从而形成“衍生品”。

有趣的是,我们发现 GitHub 的 部分中文文档 中也采用了此译法,不知道是不是受到了我们的影响。

  • 提议者:wxy
  • 首次链接:</article-7877-1.html>

H

Here Document:现场文档

在编程领域,“here document” 是一个常见的术语,特指在脚本语言(如 Perl、Bash)中,能够直接在代码内部嵌入并处理一个数据块或文本串的技术。尽管传统上我们将它翻译为“嵌入式文档” 或不翻译,但这个译法似乎并不能完全地体现出原文的感觉和含义。

为了让这个概念变得更为直观和易理解,我们建议将 “here document” 翻译为 “现场文档”。“现场”相比于“嵌入式”,更好的传达了文档就在代码的当前位置,或代码“现场”的含义。这样的译法也与原文 “here document” 中 “here”(这里)的含义更为契合。我们希望这个译法能够在未来得到更广泛的使用和认可,让编程的世界因语言的精准而变得更美好。

PS., 该译法和解释得到了 ChatGPT 的建议和生成。

  • 提议者:wxy
  • 首次链接:</article-16298-1.html>

L

Live:立付

Live 原意多指“现场”、“实时”,在计算机环境中使用时也多引用此意。但对它的翻译就颇费神,因为无论是在 Live Patch,还是更多见的 Live USB/CD、Live Session,其实都不好翻译为“现场”、“实时”。

提议者之前曾经尝试创造了新的“临场”词汇,但是感觉有些不够达意。经过推敲,提议者再次推荐使用“立付”,在照顾发音的同时,取其“立时交付”之意。这样,Live USB/CD 可以译做 “立付 USB/CD”,Live Session 可以译做 “立付会话”。

而对于 Live Stream,提议者建议依旧翻译为“直播”、“实时流”。对于 Live Patch,还是采用 “热补丁” 这样的意译。

  • 提议者:wxy
  • 首次链接(临场):</article-12854-1.html>
  • 首次链接(立付):</article-15499-1.html>

Repo(Repository):代码仓库/软件仓库

Repository 主要用于两个场景,一个是用于版本管理的代码仓库,一个是用于分发软件/组件/制品的软件仓库。

鉴于两种场景的差异,建议在使用时,分别注明“代码仓库”或“软件仓库”,也可简称为 “代码仓”或“软件仓”。

S

Shebang [ʃɪ'bæŋ]:释伴

Shebang(也称为 Hashbang)是一个由井号和叹号构成的字符序列(#!),出现在脚本文件的第一行的前两个字符,后跟解释器路径,如:#!/bin/sh,这通常是 Linux 中 shell 脚本的标准起始行。

长期以来,Shebang 都没有正式的中文名称。提议者将其翻译为:“释伴”,即解释伴随行的简称,同时又是 Shebang 的音译。(关于这个词汇的翻译,在下面的首次链接中有其它的建议和讨论。)

  • 提议者:GoLinux
  • 首次链接:</article-3664-1.html>

Shell :交互界面

Shell 是 Unix/Linux 等系统的 shbash 等命令行的接口程序,包括 DOS/Windows 的 command.com/cmd.exe 等其实也属于此类,只是通常不这样称呼。

这个词汇也是一个一直没有翻译而径直使用的计算机词汇。我们也没有见到(找到)合适的翻译。但是我们在 LCTT 译者 CanYellow 翻译的一篇文章中见到他将其翻译为 “交互界面”,我们认为这是一种好的翻译。

  • 提议者:CanYellow
  • 首次链接:</article-15469-1.html>

说明

此文档会根据建议不断更新,其固定地址为: https://github.com/LCTT/TranslateProject/blob/master/Dict.md ,欢迎大家提交议题或拉取请求来完善它。

无论你使用的是 while 循环、do/while 循环,还是无限循环,了解循环的工作原理对 Java 编程至关重要。

只要某些预定的条件为真,一个 while 循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据它发现的情况采取行动。Java 中的两种 while 循环是 whiledo/while

Java while 循环

while 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 while 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(<, >, ==, 等等):

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  int count = 0;
  while (count < 5) {
    System.out.printf("%d ", count);
    count++;
    }
  }
}

在这个简单的例子中,条件是变量 count 小于 5。因为 count 被实例化为 0,然后在 while 循环的代码中增加 1,所以程序总共迭代了 5 次:

$ java ./while.java
0 1 2 3 4

在它进行第六次迭代之前,条件不再是真的,所以循环结束。

while 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 count == 5 作为条件:

while (count == 5) {
    System.out.printf("%d ", count);
    count++;

当你运行这段代码时,它的构建和运行都很成功,但什么也没有发生:

$ java ./while.java
$

循环被跳过了,因为 count 被设置为 0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,count 也从未被递增。

与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。

Java do while 循环

while 循环相似,do/while 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环,循环中的代码至少运行一次,因为没有进入的入口,只有退出的出口:

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  int count = 9;
  do {
      System.out.printf("%d ", count);
      count++;
    } while(count == 5);
  }
}

在这个示例代码中,count 被设置为 9。循环重复的条件是 count 等于 5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行:

$ java ./do.java
9

Java 无限循环

无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。

假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(c)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用 break 函数来强制结束循环:

package com.opensource.example;

public class Example {
  public static void main(String[] args) {

  long myTime = System.currentTimeMillis();

  int c;

  if ( myTime%2 == 0 ) {
      c = 128;
  } else {
      c = 1024;
  }

  while(true) {
    System.out.printf("%d Zombies\n", c);

    // break for convenience
    if ( c <= 0 ) { break; }
    c--;
    }
  }
}

你可能要运行几次才能触发不同的僵尸总数,但有时你的程序会迭代 128 次,有时会迭代 1024 次:

$ java ./zcount.java
1024 Zombies
1023 Zombies
[...]
0 Zombies

你能说出为什么循环的终点是 0 而不是 -1 吗?

Java 循环

循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while 循环、do/while 循环还是无限循环,了解循环的工作原理都是至关重要的。


via: https://opensource.com/article/23/1/java-loops

作者:Seth Kenlon 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

甲骨文新的授权模式导致 Java 使用成本激增

甲骨文公司修改了 Oracle Java SE 订阅模式,在新的模式下,Java 将按每个员工授权,而不是像旧模式允许的那样按每个用户或每个处理器授权。尽管甲骨文公司承诺允许用户可以根据他们目前的订阅模式进行续约,但随着时间的推移,它可能会对用户施加压力,让他们采用新的模式。这种转变将惩罚那些花了多年时间尽量减少 Java 使用量的公司,因为他们发现无论他们使用多少Java,都要按员工收费。有分析称,有的公司的 Java 成本上升了 10 倍,平均在 2 到 4 倍的增长。

消息来源:The Register
老王点评:是时候抛弃甲骨文的 Java 了。

GitHub 用户数突破 1 亿

成立于 2008 年的 GitHub 宣布,现在有 1 亿名开发者在使用该平台。与 GitHub 十年前的 300 万用户、五年前微软以 75 亿美元收购它时声称的 2800 万用户,以及三个月前透露的 9000 多万用户相比,这一数字有了大幅提升。在 2019 年的一次主题演讲中,其前 CEO 说,该公司的目标是到 2025 年达到 1 亿名开发者,所以实际上是提前两年达成了目标。

消息来源:Tech Crunch
老王点评:要不是在某些地方访问 GitHub 经常性抽风,可能 GitHub 能更快完成这一目标吧。

ChatGPT 在寻找和解决程序错误方面表现优异

研究人员将 40 段有错误的代码交给四个不同的代码修复系统:ChatGPT、Codex、CoCoNut 和标准 APR(自动程序修复)。在第一轮测试中,ChatGPT 解决了 19 个问题,Codex 解决了 21 个,CoCoNut 解决了 19 个,而标准 APR 方法则解决了 7 个。然而,通过和 ChatGPT 对话,提供了有关问题和错误的更多信息后,最终 ChatGPT 解决了 31 个问题。

消息来源:《PC 杂志》
老王点评:看看,不仅仅能写程序,还能替你挑错,甚至修改错误,所以,程序员们可能真的快被淘汰了。

想让你的终端有一个复古的外观?本指南将帮助你在 Linux 发行版中安装 Cool Retro Terminal 应用程序。

酷炫复古终端

你有没有想过如何在你的 Linux 终端中模仿那些老式 CRT 显示器的外观?

那些 CRT 屏幕有自己的粉丝。如果你把苹果 2 或 IBM 3278 终端之类与今天的 4K 显示器显示相比较,它们的外观真的很酷。我并不是说 4K 显示器不好,但有时传统的显示器会让我们想起那些过去的日子。闲话少说。让我们开始安装这个应用程序。

Cool Retro Terminal

该应用程序是自由开源的。它被称为 cool-retro-term。它是轻量级的,有许多自定义选项,有预先设置的配置文件,如 Apple 2 等。它还能在你的终端中提供那些静态噪音和扫描线效果。很酷,不是吗?

它是用 Qt 构建的,需要 Qt 5.2 或更高版本。如果你使用的是最新的 Linux 发行版,在依赖性方面你应该没问题。

绿色扫描线主题

如何下载和安装 Cool Retro Terminal

Ubuntu、Linux Mint 和其他基于 Debian 的发行版:

使用下面的简单命令在你的 Ubuntu 和其他相关发行版中安装这个应用程序:

sudo apt install cool-retro-term

Arch Linux:

这个软件包在 Arch 用户仓库(AUR)中可用。如果你没有启用 AUR,请使用 本指南 启用它,然后使用以下命令来安装它:

pacman -S cool-retro-term

Fedora、RHEL 和其他相关发行版:

对于 Fedora 和其他相关的 Linux,使用下面的命令来安装这个应用程序:

sudo dnf install cool-retro-term

Appimage:

也有一个 AppImage 格式的独立的可执行程序,你可以直接下载并运行。不需要安装。按照下面的命令来做:

wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage
chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage
./Cool-Retro-Term-1.1.1-x86_64.AppImage

注意:在 GitHub 中,没有 1.2.0 以后的版本的 AppImage 构建版。

配置

安装完成后,你可以在应用程序菜单中找到终端应用程序 “Cool Retro Term”。那么,启动该应用程序并享受其中吧。

请记住,这覆盖你的 Linux 发行版中的默认控制台/终端应用程序。它是一个独立的控制台应用程序。

配置选项可以通过右键菜单访问。

上下文菜单给你提供了以下预设。然后你可以通过设置窗口对它们中的每一个进行颜色和外观设置的配置。例如,如果你想要更多的透明度、对比度或更多的噪音、环境光或闪烁。所有这些都可以从下面的设置窗口通过几个选项进行配置。

而且,你可以轻松地制作你自己的主题。

Cool Retro Term 中的预装主题

设置中的各种效果

总结

Cool Retro Terminal 是一个用于 Linux 桌面的老式显示管终端,它可以让你体验到如同坐在复古终端前的感觉。你可能喜欢,也可能不喜欢,而且人们几乎不把它作为日常使用。但它仍然是一个漂亮的终端,可以时不时地体验一下,以摆脱平凡的终端。

你喜欢复古的外观吗?你最喜欢的主题是什么?请在下面的评论区告诉我。


via: https://www.debugpoint.com/cool-retro-terminal/

作者:Arindam 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一份用简单直白的语句来解释开源的新手指南。

要是你想要(或需要)知道 开源 的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词,因为这个词总是被人不断的提起。

我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。Git、数据科学、软件的来龙去脉……直到一年后的今天,我依然感到难以消化。

但这正是为什么我要写这篇文章。我想要让开源变得不那么令人生畏。毕竟,开源的中心是一个支持型的学习社区 —— 这个社区对所有人开放,无论你是否有技术经验。

我会从基础中的基础开始。

什么是开源?

在此声明,业界对开源的定义可以在 开放源代码促进会 Open Source Initiative 的网站找到。

然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者用它做任何你想做的事。

这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。

开源只要 0 元

这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目营利的公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利?

拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以从产品的管理,数据的储存,以及对客户的支持中获利。

很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户解决软件问题并为客户解答疑惑。数据储存也并非免费,这也是能为公司带来收入的另一领域。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。

  • 开源代码是公开访问的:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改和重新发布。
  • 你可以用这份代码做任何你想做的事:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整该项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和其他所有人对其修改。
  • 任何人都可以贡献开源项目:这是真的吗?是的,但有限制。所有有 合适技能 的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。

比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。”

幸运的是,项目里的工作通常有法可依。开源项目通常有着贡献指南和行为准则,所以你不用担心你会加入什么使得项目脱轨的东西。

为什么选择开源呢?

那么,在众多贡献之后(如果这些贡献完成的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价?

这个问题有很多回答。我在这里给出了一些:

  • 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。
  • 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目、极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。
  • 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。

我该如何参与呢?

现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?”

不要害怕 —— 即便是 新手 也欢迎为开源项目做贡献。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被“鸟类百科”所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里愉快地共存)。

你需要会写代码来贡献开源吗?与大众认知相违的是,你不需要。项目“需要举全村之力”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。

简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎可以保证会被张开双臂欢迎。

现在就加入开源吧

还是不确定应该从哪开始?这里有些能帮助你的想法和资源:

  • Up For Grabs 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。
  • 来看看 GitHub 上的这份 新手友好项目 列表吧。
  • 如果你还是缺乏灵感,考虑一下贡献(或一起“飞”) 红帽 Red Hat 的开放设计系统 PatternFly
  • LCTT 夹带私货:你还可以通过参与 LCTT 的翻译工作来首次体验如何参与开源,这几乎简单到你只需要懂一点点英文和一些热情,本文就是由开源贡献者翻译贡献而成的。入口在此: https://linux.cn/lctt/

via: https://opensource.com/article/22/11/get-started-open-source

作者:Katie Edwards 选题:lkxed 译者:yzuowei 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

谷歌裁掉了很多重要的开源开发者

许多被开除的人是谷歌开源项目办公室(OSPO)和其他开源工作中最优秀的人。这包括 18 年前创建谷歌 OSPO 的 Chris DiBona;还有 Samba 的共同创造者,前谷歌开发者生态系统的项目经理,以及新招聘的负责谷歌开源安全计划的人等等。

消息来源:The Register
老王点评:这时候我们要问一句,“谷歌还爱开源”吗?并不是开源的人不能裁,对谷歌来说,这些开源专家并没有他们自己想象中的那么重要。他们只是裁人算法下的牺牲品。

沃顿商学院的副教授要求学生使用 ChatGPT

出于对利用 ChatGPT 作弊的担忧,一些学区已经禁止使用它,但沃顿商学院的副教授 Ethan Mollick 不仅允许学生使用 ChatGPT,而且将其列为要求,并将 AI 政策纳入教学大纲。他说,“我们是在一个有计算器的世界教学生数学。现在的挑战是教育者要教学生世界如何再次改变,以及他们如何适应这种改变。”他指出,使用人工智能是一项 “新兴技能”;它可能是错误的,学生应该根据其他来源检查其结果;他们将对该工具提供的任何错误或遗漏负责。

消息来源:NPR
老王点评:积极正面的去迎接新技术的到来,而不是螳臂当车。

GitHub 质疑对 Copilot 滥用开源代码的指控

GitHub、微软和 OpenAI 在周四给法庭的文件中说,由一群匿名版权所有者提出的投诉没有足够具体地概述他们的指控。他们认为,原告缺乏提起诉讼的资格,因为他们未能证明他们因该公司的行为而受到具体伤害。并称,诉讼中没有指明他们滥用的特定版权作品或他们违反的合同。文件中还称,这些版权指控将 “一头撞上合理使用原则”,该原则允许在某些情况下未经许可使用版权作品。

消息来源:路透社
老王点评:首先,GitHub 恐怕否认不了 Copilot 是从 GitHub 上存储的代码进行学习的,甚至是直接原样复制了代码。而是否是“合理使用”,可能不仅仅要看判例,还要看这些代码使用的许可证。