2020年11月

本周的开源软件亮点是 Timekpr-nExt。它是一个 GUI 应用,用于限制 Linux 系统中某些账户的电脑使用。对于不想让孩子花太多时间在电脑上的父母来说,这是一个方便的工具。

使用 Timekpr-nExt 在 Linux 上限制电脑使用

如果你家里有小孩,他们花太多时间在电脑上,你可能想对他们的使用进行一些限制。

可以让你根据一天的时间、一天、一周或者一月的小时数来限制某些账户的电脑使用。你也可以设置时间间隔来强制账户用户休息。

给定的时间超过后,用户会自动登出,直到满足限制条件才可以重新登录。

当然,这意味着你需要为孩子们单独设置非管理员(无 sudo 权限)账户。如果孩子们的账户也有管理员权限,他们可以很容易地改变设置。孩子们很聪明,你知道的。

Timekpr-nExt 的功能

除了一个令人讨厌的风格化的名字,Timekpr-nExt 有以下功能:

  • 将系统使用限制设置为按日智能限制、每日、每周或每月限制
  • 你还可以根据时间和小时设置访问限制
  • 用户可以看到关于他们还剩多少时间的通知
  • 设置锁定动作(终止会话、关闭、暂停或锁定屏幕)
  • 追踪账户的时间使用情况

请注意以下事项:

  • 仔细检查你正在配置的账户。不要把自己锁定
  • 每次更改配置时,请点击应用或设置按钮,否则更改将不会被设置
  • 儿童帐户不应该有管理员操作,否则他们会覆盖设置

这里阅读关于使用 Timekpr-nExt 的更多信息的文档

在 Linux 中安装 Timekpr-nExt

对于基于 Ubuntu 的 Linux 发行版(如 Mint、Linux Lite 等),有一个官方 PPA 可用。你可以通过以下命令逐步安装它:

sudo add-apt-repository ppa:mjasnik/ppa
sudo apt update
sudo apt install timekpr-next

Arch Linux 用户可以在 AUR 中找到它。对于其他用户,请检查你的发行版仓库。如果没有这样的包,你可以尝试使用源码。

再说一次,不要在主账户中使用 Timekpr-nExt。你可能会把自己锁在外面。

你会看到两个应用的实例。使用开头有 (SU) 的那个。

删除 Timekpr-nExt

我不能确定删除 Timekpr-nExt 是否也会删除你为用户设置的限制。手动恢复他们(间隔一天 24 小时)会是一个好主意。这里没有重置按钮。

要删除这个应用(如果你使用 PPA 安装它),使用以下命令:

sudo apt-get remove --purge timekpr-next

同时删除 PPA 仓库:

sudo add-apt-repository -r ppa:mjasnik/ppa

在 Linux 上屏蔽成人内容一样,这个应用也是专门针对儿童的。并不是每个人都会觉得它有用,但家里有小孩的人如果觉得有必要的话,可以使用它。

你是否使用其他应用来监控/限制儿童访问计算机?


via: https://itsfoss.com/timekpr-next/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

当你发现两款基于 Ubuntu 并由 KDE 驱动的 Linux 发行版,你会选择哪一个?

  • Kubuntu 是 Ubuntu 的官方 KDE 版本。
  • KDE Neon 是 KDE 自己发布的基于 Ubuntu 的发行版。

我知道这常常会让人感到困惑,尤其是当你从来没有使用过这两个版本,但有人推荐你使用它们。因此,为了帮助你做出决定,我想整理一份 KDE Neon 和 Kubuntu 的区别(和相似之处)。

让我们先开始了解相似之处,然后再继续了解不同之处。

注:根据你的系统,你对这两个发行版的体验可能有所不同。所以,请把这篇文章作为一个参考,而不是一个”哪个更好“的比较。

KDE Neon vs Kubuntu:功能上的比较

基于相似性比较发行版是一个不错的做法。所以,从理论上,我试图把最重要的区别写下来。

然而,值得注意的是,发行版的兼容性、性能和稳定性会根据你的硬件而有所不同,而这里没有考虑到这一点。

Ubuntu 作为基础

是的,这两个 Linux 发行版都是基于 Ubuntu 的,但 KDE Neon 只基于最新的 Ubuntu LTS 版本,而 Kubuntu 则提供了基于 Ubuntu LTS 的版本和非 LTS 版本。

所以,如果使用 KDE Neon,你可以期望在下一个 Ubuntu LTS 版本(每 2 年)的几个月后就能用上最新的 Ubuntu 功能。但是,对于 Kubuntu 来说,你可以选择一个非 LTS 版本,并尝试使用带有 6 个月的软件更新的最新 Ubuntu 版本。

KDE Neon 确实提供了测试版和开发者版,但这些都是为了测试预发布的 KDE 软件而提供的。

KDE Plasma 桌面

尽管这两个发行版都采用了 KDE plasma 桌面,而且你可以获得相同程度的定制,但 KDE Neon 会首先获得最新的 KDE Plasma 桌面。

如果你还不知道,KDE Neon 是由 KDE 官方团队开发的,由 Jonathan Riddell(Kubuntu 创始人)在被 Canonical 强制赶出 Kubuntu 后宣布的。

所以,不仅限于最新的 Plasma 桌面,如果你想尽快获得最新最好的 KDE,KDE Neon 是最佳选择。

Kubuntu 最终会得到更新的 KDE 软件的更新,但这需要时间。如果你不太确定需要最新的 KDE 软件/桌面,而只是需要一个稳定的 KDE 系统,你应该选择 Kubuntu LTS 版本。

预装软件

开箱即用,你会发现 Kubuntu 已经预装了一些必要的工具和应用程序,但是,对于 KDE Neon,你需要找到并安装一些应用和工具。

从某些方面看,与 Kubuntu 相比,KDE Neon 可能是一个轻量级的发行版。然而,对于新的 Linux 用户来说,他们可能会发现 Kubuntu 是一个易于使用的体验,并预装了更多必要的软件和工具。

软件更新

如果你没有使用按流量计费的连接,这可能根本不重要。但是,我应该提一下,考虑到常规的 Ubuntu LTS 修复/更新以及 KDE 软件更新,KDE Neon 会有更多的软件更新。

对于 Kubuntu,你只会得到 Ubuntu LTS 的更新(除非你使用的是非 LTS 版本)。所以,从技术上讲,你会有更少的更新数量。

Ubuntu KDE 版与 Plasma 的体验差异

我知道如果你没有尝试过这两个版本,你可能会认为它们很相似。但是,Kubuntu 是 Ubuntu 的官方版本,它更注重 Ubuntu 在 KDE 桌面环境上的使用体验。

而 KDE Neon 在技术上是一样的,但它的目的是为了获得一流的 Plasma 桌面体验,并搭载最新的东西。

尽管这两个发行版开箱即可完美工作,但它们有不同的愿景和相应的开发工作。你只需要决定你自己想要什么,然后选择其中之一。

硬件兼容性

正如我前面提到的,这不是一个基于事实的观点。但是,根据我在网上快速了解用户分享的反馈或经验,似乎 Kubuntu 可以与各种旧硬件以及新硬件(可能追溯到 2012 年)一起工作,而 KDE Neon 可能不能。

只需要记住,如果你尝试 KDE Neon,但由于某些原因不能工作。你知道该怎么做。

总结

那么,你会选择哪个呢?KDE Neon 还是 Kubuntu?这完全是你的选择。

两者都是初学者友好的 Linux 发行版的不错选择,但如果你想要最新的 KDE Plasma 桌面,KDE Neon 会更有优势。你可以在我们的 KDE Neon 评测中阅读更多关于它的内容。

欢迎在下面的评论中告诉我你的想法,你觉得它们中的任何一个有什么好的/坏的地方。


via: https://itsfoss.com/kde-neon-vs-kubuntu/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

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

我已经使用了多少磁盘空间?

在 Linux 上查找可用磁盘空间的最简单的方法是使用 df 命令df 命令从字面意思上代表着 磁盘可用空间 disk free ,很明显,它将向你显示在 Linux 系统上的可用磁盘空间。

df -h

使用 -h 选项,它将以人类可读的格式(MB 和 GB)来显示磁盘空间。

这里是针对我 Dell XPS 系统的 df 命令的输出,它使用了加密磁盘并且只安装了 Linux:

在 Linux 中使用 df 命令检查可用磁盘空间

如果上面的输出使你感到困惑,不用担心。我将介绍一些关于在 Linux 中检查可用磁盘空间的东西。我也将为桌面 Linux 用户展示 GUI 方法。

方法 1: 使用 df 命令来检查在 Linux 中的可用磁盘空间(并理解它的输出)

当你使用 df 命令来检查磁盘空间时,它将显示一组“文件系统”,包括它们的大小、使用的空间和可用的空间。你实际的磁盘通常应该下面列表中的一个:

  • /dev/sda
  • /dev/sdb
  • /dev/nvme0n1p

这不是硬性的标准,但是它可以给予你一个指示,它可以让你能够很容易地从一堆文字中辨别出真正的磁盘。

你的 Linux 系统在你的磁盘上可能有一些用于引导 分区、EFI 分区、根分区、交换分区、家目录等的分区。在这种情况下,这些分区在“磁盘名称”的结尾处使用一个数字来标示,像 /dev/sda1/dev/nvme0n1p2 等等。

你可以从它们的挂载点来辨认出哪个分区是用于做什么的。根分区挂载在 /、EFI 分区在 /boot/EFI 等等。

就我的情况来说,我已经使用了根分区下磁盘空间(232 GB)的 41% 。如果你有 2 到 3 个大分区(像根分区、家目录分区等等),你将不得不在这里计算一下已使用的磁盘空间。

理解 df 命令输出

  • tmpfstmpfs(临时文件系统)用于在虚拟存储器中保持文件。你可以随意地忽略这个虚拟文件系统。
  • udevudev 文件系统 用于存储插入到你系统的设备(像 USB、网卡、CD ROM 等等)的相关信息。你也可以忽略它。
  • /dev/loop: 它们是环回设备。由于 snap 应用程序,在 Ubuntu 中查看磁盘时,你将看到很多的这样的设备。环回设备是虚拟设备,它们允许普通文件作为块设备文件来访问。使用环回设备,snap 应用程序在它们自己的虚拟磁盘中进行沙盒处理。尽管它们是在根分区下,但是你不需要单独计算它们使用的磁盘空间。

丢失了磁盘空间?检查你是否挂载了所有是磁盘和分区

记住,df 命令仅显示已挂载文件系统的磁盘空间。如果你在同一块磁盘上使用多个 Linux 发行版(或者多个操作系统),或者在你的系统上有多个磁盘,你需要先挂载它们,以便查看在这些分区和磁盘上的可用磁盘空间。

例如,我的 Intel NUC 有两个 SSD 磁盘,并且在其上有 4 个或 5 个 Linux 分区。仅当我明确地挂载它们时,df 命令才会显示更多磁盘。

你可以使用 lsblk 命令来查看在你系统上的所有磁盘和分区。

在你有了磁盘分区名称后,你可以用这种方式来挂载它:

sudo mount /dev/sdb2 /mnt

我希望这种方法能够给你提供一个在 Linux 上检查硬盘驱动器空间的好主意。让我们看看如何在 GUI 下来完成。

方法 2: 在 GUI 下检查可用磁盘使用情况

在 Ubuntu 中使用 “Disk Usage Analyzer” 工具来在 GUI 的方式下检查可用磁盘空间是很容易的。

Disk Usage Analyzer 工具

在这里,你将看到所有实际的磁盘和分区。你可能需要单击一些分区来挂载它们。它显示所有已挂载分区的磁盘使用情况。

磁盘使用情况检查

使用 GNOME 的 Disks 实用程序来检查可用磁盘空间

除此之外,GNOME 的 Disks 实用程序也是非常容易使用的工具。

GNOME 的 Disks 工具

启动工具和选择磁盘。选择一个分区来查看可用磁盘空间。如果没有挂载分区,那么先通过单击 “▶” 图标来挂载它。

检查 Ubuntu 的桌面版本的可用磁盘空间

我认为在 Linux 上的所有主要桌面环境都有某种图形工具来检查磁盘使用情况。你可以在你是桌面 Linux 系统的菜单中搜索它。

结束语

当然,有很多方法和工具来检查磁盘空间。为此,我向你显示了最常用的命令行方法和 GUI 方法。

我也解释一些可能会让你很难理解磁盘使用情况的东西。希望你喜欢它。

如果你有问题或建议,请在评论区告诉我。


via: https://itsfoss.com/check-free-disk-space-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy

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

JavaScript 之所以能在编程语言中名列前茅,是有充分的理由的。

如 GitHub 的 The State of the Octoverse 报告的这张图所示,如果按 GitHub 上项目的贡献者数量统计,JavaScript 一直是最受欢迎的编程语言。

 title=

热门语言,根据《The State of the Octoverse》(©2019,GitHub Corp

在本系列的 上一篇 中,我们深入了解了 JavaScript 的历史。在这篇文章中,我将分享它如此受欢迎的四个原因

1、JavaScript 适合初级、中级和高级开发人员

JavaScript 不需要任何环境设置,只要打开浏览器,比如 Chrome 浏览器,导航到开发者工具,就可以开始编码。编写一个 “Hello World” 的程序,就这么简单:

console.log("Hello World");

JavaScript 的灵活性最适合中级开发人员。该语言通过让开发人员专注于解决问题来帮助你完成任务。开发者可以混合使用插件和自己的代码片段来让一个应用程序工作。

虽然 JavaScript 比较容易上手,但它也并不是一下子就能掌握的。如果你想达到高级水平,这里有一些你需要了解的概念:

  • JavaScript 的多范式特性: JavaScript 同时支持函数式编程和面向对象编程(OOP)。
  • 在 JavaScript 中应用设计模式 模型-视图-*(MV*)设计模式一直是最流行的模式之一,并促成了多个现代框架的发展。
  • 带原型链的继承 JavaScript 由于其动态的特性,无法实现传统的 Java 基于类的模式下的 OOP。JavaScript 中的 OOP 是通过原型继承模型实现的。
  • 闭包 闭包可以从内部函数中访问外部函数的作用域。
  • 柯里化 Currying 柯里化是函数的一种转换,它将函数从 f(a, b, c) 的调用形式转换为 f(a)(b)(c) 调用形式。
  • PromisesObservables 这些可以帮助你处理异步函数。
  • TypeScript 在 JavaScript 中添加了静态类型。

2、全平台

JavaScript 可以在任何地方运行,包括:

  • 手机、平板电脑和笔记本电脑等设备。
  • 在客户端和服务器端。

这种在任何地方都能运行的能力使 JavaScript 成为一种通用语言。

3、开放标准和社区

ECMAScript 是 JavaScript 的标准化版本,也是一种开放的标准语言。公司可以使用 ECMAScript 来创建 JavaScript 的实现。根据维基百科,“ECMAScript 引擎是执行以 ECMAScript 语言标准编写的源代码(例如,JavaScript)的程序”。最流行的引擎 V8SpiderMonkey 是开源项目。

JavaScript 已经存在了 25 年,背后有一个庞大的社区。开发者们简直目不暇接,社区已经构建了如此多的插件和框架,以至于创造了“框架疲劳”这个词。

4、现代框架

现代框架如 ReactAngularVue.js 已经稳定下来,并且正在进行优化以获得更好的性能。大多数框架对开发者非常友好,有良好的社区支持。

未来

JavaScript 将长期存在。全栈开发和现代前端框架继续帮助 JavaScript 巩固其作为最受欢迎的编程语言之一的地位。

JavaScript 的下一波可能会将焦点放在。

  • Deno JavaScript 的现代安全运行时。
  • 网络组件: 可重复使用的自定义元素。
  • 与 AI 和 ML 的整合:SupernovaBAYOU 这样的项目在将 JavaScript 与人工智能和机器学习整合方面取得了实质性的突破。

via: https://opensource.com/article/20/11/javascript-popular

作者:Nimisha Mukherjee 选题:lujun9972 译者:wxy 校对:wxy

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

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客第三季(2):学习 BASIC音频脚本。

导语:以前,成为程序员需要博士学位,还要能够接触到像服务器之类有着举足轻重地位的硬件。直到 1965 年,一群工程师有了个激进的想法:让编程变得更易学、亲民。

像 BASIC 这样专为初学者设计的语言为许多人打开了编程世界的大门。Tom Cormen 和 Denise Dumas 回忆了 BASIC 是如何改变一切的。Avi Flombaum 和 Saron 则会向这个软件开发新时代的编程新手们提供关于挑选第一门语言的建议。最后,Femi Owolade-Coombes 和 Robyn Bergeron 会向我们讲述,新一代的程序员们,是如何通过游戏来接触编程的。

这些初学者语言的诞生,让每个人都有机会踏入编程的大门。同时,这也让整个产业欣欣向荣。

00:00:02 - Saron Yitbarek

1965 年是美国历史上发生重大变化的一年。《民权法案》就是在那年签署的。

00:00:09 - 新闻档案

国会通过了史上影响最为广泛的《民权法案》,并将它写进了法律里。

00:00:12 - Saron Yitbarek

作战部队被第一次被派往越南,男人们烧掉了他们的征兵证。

00:00:19 - 新闻档案

征兵名单被放在波士顿法院的台阶上,一群高中男生挥拳抗议。

00:00:25 - Saron Yitbarek

在纽约,披头士乐队举行了世界上第一场体育馆内的音乐会。但在距离这些大新闻很远的地方,一场与众不同的革命正在酝酿。

00:00:39

5 月 1 号,凌晨 4 点。 约翰·凯梅尼 John Kemeny 教授和一名本科生正在 达特茅斯 Dartmouth 的 GE 225 型电脑上忙碌着。他们运行了一个方才写好的程序。电传打字机的三行输出,永远地改变了计算机编程领域。

00:01:04

欢迎来到红帽原创播客《代码英雄》的第三季第 2 集。我是主持人,Saron Yitbarek。在这一集,我们将继续“编程语言的过去与未来”的旅程。在第 1 集中,我们深入研究了 Python,并了解了开源社区如何在其领导阶层的大动荡中生存下来。比起上一期节目,本次节目则会更注重于个人。我会先聊聊我邂逅入门语言时的体验,这种体验我们应该都有。我将带领你们领略我学习的第一门语言 Ruby,以及某些新手语言是如何用游戏的形式,来到我们身边的。

00:01:50

不过,我得先举个例子,好让大家都能明白“新手语言”到底是什么意思。这个例子就是 BASIC,它诞生于之前提到的 达特茅斯 Dartmouth 实验室的三行输出。在 1965 年的那个黎明, 约翰·凯梅尼 John Kemeny 作为创造者之一,见证了 BASIC 的诞生。

00:02:14

BASIC 的意思是“ 初学者的泛用符号指令代码 Beginner's All Purpose Symbolic Instruction Code ”。这里面的第一个词 “初学者” 正是其不凡之处所在。在那时候,即使是少量的编程工作,也需要一名博士来完成。这是一种极高的要求,需要有人接受专业教育,更不用说那些高级的硬件了。但是 凯梅尼 Kemeny 教授和他的团队希望改变现状。他们想知道:如果要编写一种所有人都可以使用的编程语言,那会是什么样的?当美国各地的青年们剧烈地抗议,要求变革时, 达特茅斯 Dartmouth 团队提出了一种另类的革命。

00:02:57

他们的秘密武器是一个房间那么大的大型电脑 —— GE 225。它重达 2000 磅,和这份不得了的重量相匹配的是,它具备某些全新的功能。那就是分时功能(LCTT 译注:也就是时间片,实现了多用户多进程快速切换的技术)。突然间,编程不再需要复杂的打孔卡系统或庞大的开关墙了。分时意味着程序们都可以同时执行,因为系统会根据不同用户的需要来回切换其处理内容。

00:03:31

分时意味着使用者可以用惊人的新方式来访问计算机。这是来自 达特茅斯 Dartmouth 的些许录音,记录了 BASIC 刚诞生的时候,65 班的一位本科生 John McGeachie 学习的实况。

00:03:47 - John McGeachie

我们把这台相当贵的、原本只能一次让一个人用的计算机变成了可以……让超过 30 人使用的东西。30 名本科生可以同时在这上面编程,还能快速得到输出。它是史无前例的简洁直接。

00:04:15 - Saron Yitbarek

约翰·凯梅尼 John Kemeny 联合另一位计算机文化的布道师 托马斯·卡茨 Thomas Kurtz 共同开发了 BASIC 语言。他们发现,分时让计算机使用变得更亲民,因此准入门槛降低了许多。而剩下的工作则是编写一门简单直白的编程语言。 一门像 BASIC 那样的语言。

00:04:39

他们开发了像 HELLOGOODBYE 这样的指令,来代替 LOG ONLOG OFF 命令。事实上,初版 BASIC 只有 14 个简单的指令,比如条件判断 IF,和 GOTO 之类的简单选项。

00:04:54 - Tom Cormen

我是 Tom Cormen。我是 达特茅斯 Dartmouth 大学的一名计算机科学教授。

00:04:59 - Saron Yitbarek

Cormen 教授将与我们谈论所谓“初学者的革命”,以及 BASIC 的出现如何成为时代精神的一部分。它带来了一个新世界,在其中,计算机技术对更多人来说不仅不再遥不可及,甚至还是激动人心的——编程甚至变得有点时髦了。

00:05:14 - Tom Cormen

据说在 1960 年时,男学生会在这里(计算机中心)约会,我真是不能想象如果发生在现在会是什么样子。但在那个时候,计算机中心一度是约会的最佳场所。

00:05:24 - Saron Yitbarek

这种在校园兴起的编程热潮,是“初学者语言”诞生所带来的直接结果。

00:05:31 - Tom Cormen

就如同我们过去说的那样,BASIC 为那些计算机爱好者降低了准入门槛。不想学习 FORTRAN 这类编程语言的社会科学家可以使用 BASIC。从事人文艺术的人们可以用它做文本处理,甚至用来创作艺术作品,这些完全可以用 BASIC 来完成。

00:05:55

没过几年,人们就开始写电脑游戏,也时常在编程中实现 GUI。

00:06:03 - Saron Yitbarek

对于所有那些认为自己不太可能成为程序员的孩子们,编程领域的大门,突然间以一种近乎直观的方式打开了。它使得我想起来 葛丽丝·哈伯 Grace Hopper (LCTT 译注:参见上一季。元祖级程序员,美国海军准将,COBOL 的重要编写者。她也是世界上第一个在计算机领域使用 “bug” 这个词的人。)所追求的那种世界。当我们上一季谈到 哈伯 Hopper 时,我们谈到了她的语言创新如何将编程带到更多人眼前。BASIC 的此时此刻就像是 哈伯 Hopper 梦想的延续。

00:06:29 - Tom Cormen

我非常确信,如果 葛丽丝·哈伯 Grace Hopper 能看到更多人开始写代码,她会非常高兴。她可能会喜欢 BASIC 和 COBOL 的不同之处,因为这种不同为人们提供了更多的选择。他们可以写 COBOL,可以写 FORTRAN,可以写 BASIC,可以写 ALGOL,可以选择当时任何流行的语言。

00:06:54 - Saron Yitbarek

Tom Cormen 是 达特茅斯 Dartmouth 计算机科学系的一名教授。当初,计算机技术中的几大变化催生了新一代的程序员。分时功能使并发工作成为可能,而 BASIC 使入门编程变得简单了。这两个因素结合在一起,创造出了改变游戏规则的星星之火。很快,编程就不仅是大型机构的专利。这一代程序员中有像 比尔·盖茨 Bill Gates 史蒂夫·沃兹尼亚克 Steve Wozniak 这样的特立独行者,也有在个人电脑上每天默默耕耘的开发者。

00:07:32 - Denise Dumas

BASIC 能够在程序出错时立即给使用者以反馈。这让它的使用体验变得不同,它将你吸在一起,使你继续前进;这种交互是有意义的,就因为它是一种交互。

00:07:50 - Saron Yitbarek

这位是 Denise Dumas,她带领“ 红帽企业版操作系统 Red Hat® Enterprise Linux® ”工程师团队。

00:07:55 - Denise Dumas

我认为 BASIC 使编程变得民主了许多,因为 BASIC 把它自身交予学生、大众,当时的其他语言——像是 COBOL、FORTRAN 之类——根本做不到这一点。当 CRT(阴极射线管)流行的时候,BASIC 更为火爆,因为在你输入了信息之后,输出不再是被打印在一张纸上,而是显示在你面前的屏幕上。

00:08:26 - Denise Dumas

我们现在有时候会嘲笑命令行,对吧?一切都图形化了,命令行还是一如往常,但它比命令行之前的时代有了很大的改进。这一重大改进就是,你输入指令能够立即得到回应了。我认为 BASIC 降低了准入门槛,虽然我是那种控制狂,我喜欢汇编,但我还是会这么说的。BASIC 使编程变得更加平易近人。

00:08:59 - Saron Yitbarek

BASIC 在 1980 年代带来的这份激情一直延续到了今日。现在,有许多语言能被初学者用作进入编程世界的光明大道。但如今发生了另一些重要的改变:编程入门不再只有进入大学学习一途。如果将入门的方式比作道路,那么,今日,条条大路通罗马。

00:09:29

尽管 BASIC 很神奇,但 葛丽丝·哈伯 Grace Hopper 的梦想不会止步于此。如今,初学者有上百种方法可以开始编程。就我而言,我是在纽约市一家名为 Flatiron 的编程学校学习的第一门语言。我为那个项目准备了几个月,我阅读了所有可能的编程资源和教程,以确保它们也许能让我在训练营中获得最大收益。我想了解当今人们是如何接触自己的入门语言的。所以,今天我采访了自己当初的那位老师。

00:10:03 - Avi Flombaum

我是 Avi Flombaum。

00:10:04 - Saron Yitbarek

Avi 是 Flatiron 学校的创始人之一。对我来说,探究所有有关入门语言的思想,以及我们对入门语言的方法与 BASIC 的旧时代相比有什么变化,是一种享受。

00:10:26

当你教别人该如何编程时,先从哪里下手呢?我记得当我学习第一门编程语言时,我觉得这一切可真是太奇怪了。我在大学读的是英语专业,在学校里我很喜欢数学,也喜欢有机化学。我喜欢很多不同类型的科目,各种各样的东西,但是没有什么是和编程有关的。因此,我也没办法将编程比作什么。它自成一套,就像一个自己的小世界。所以,作为老师,你会从哪里开始呢?

00:10:49 - Avi Flombaum

我认为生活中你所熟悉的任何事物,曾经都是陌生的。只有经历过,真正花时间去做,才会让你对它感到习惯。这是不断重复练习的问题,只关乎你投入的时间的多少。我认为编程之所以困难,之所以让人感觉如此陌生,是因为它用极其特殊的语法来表达一些东西。没有任何歧义,没有错误的余地。要么成功,要么失败。当我们互相交流的时候,我们一般没有那种要求。一切都必须完全正确。一个逗号丢了,一个括号缺了,就全坏了。

00:11:32

我总是说,计算机是愚蠢的,为了使计算机理解我们的意思,我们必须做到完美。

00:11:37 - Saron Yitbarek

你说的这一点我喜欢。我同意,这很棒。

00:11:43 - Avi Flombaum

是啊。

00:11:44 - Saron Yitbarek

对我来说,我喜欢的入门语言是 Ruby。根据经验,我可以告诉你,这是一种非常可爱的入门语言。当你阅读代码时,感觉就像你在阅读英语。它有很多不错的库;这里插播一则知识补充。Ruby 的创造者 松本行弘 Yukihiro Matsumoto 是通过学习 BASIC 进入编程领域的。

00:12:06

如今,许多新手可能会改用 Python 或 JavaScript,而我想知道,Avi 你是否认为有最理想的入门语言。

00:12:18

我想知道,是否有首选的入门语言?如果某人没有技术背景,没有编程经验,也没有计算机科学学历而进入这个领域,那么他们就是从一开始,甚至说从零开始……随着时间的推移,有没有更好的初始语言冒出来呢?

00:12:39 - Avi Flombaum

好吧,首先,我要说的是每个人都没有背景。没有谁是天生的程序员,因此,无论你是有计算机科学学历,还是在社区中心里学习,抑或读书自学,每个人都是从初学者开始的。然后,就初学者的首选语言而言,我认为你最先看到的语言就是最好的。我对初学者的建议始终是,选择一种语言并学习它,不要改变。我认为,初学者最容易犯错的是,我先学习 Python,然后对它感到沮丧,说 Python 很烂,现在我要去用 JavaScript 了。他们学习 JavaScript,然后对 JavaScript 感到沮丧,然后又换了起来。

00:13:22

如你所知,我个人认为 Ruby 是一种很棒的初学者语言。我认为它的语法真的很漂亮。它的价值,明确地就是要使你(程序员)感到高兴。我不知道是否有其他任何使程序员开心的语言。我知道人们发明了许多语言来使机器开心,但我认为 Ruby 确实很自然。

00:13:44 - Saron Yitbarek

这一点我们可以达成共识。但是同样,这里没有错误的答案。毕竟,入门语言就是这样。它只是开始。我们所有人都有一生的时间用来学习,而且,选择一种语言而不是另一种语言,并不会阻止你成为出色的程序员。

00:14:05

我喜欢画画,但我不会为了一支笔而死去活来。我不会因为我使用的笔而大动干戈,我为我所创造的东西而激动。那么从你的经验来看,为什么会这样呢?在大家面前辩护,让大家相信你对一种编程语言的看法是正确的,这样的一种思潮是从何而来的呢?

00:14:23 - Avi Flombaum

我也不知道。因为我很喜欢你关于笔与作品的比喻,我首先想到的是……在我的设想中,人们死死地抓住工具,恐怕是因为作品并不吸引人。

00:14:41 - Saron Yitbarek

哈哈,那真好笑。

00:14:42 - Avi Flombaum

如果你做的东西就是不厉害,不伟大,对这个世界也没有太大的价值,你还想捍卫你的手艺,你唯一能指出的就是,是啊,看我把那把锤子挥得多好。当然,房子虽然倒了,但那把锤子,那把锤子真的很棒,我知道怎么用。作为一个人……我也觉得建造出的东西比你建造它的方式更重要。

00:15:09 - Saron Yitbarek

说得好。现在,初学者不止可以选择 BASIC 或者 FORTRAN,我们已经拥有一整套的入门语言清单,但总有一种危险,那就是你忘记了这些语言仍然是达到目的的一种手段。语言是工具,不是你要制作的东西。

00:15:27 - Avi Flombaum

我认为技术的价值在于,为人们创造有意义的事物。说到底,如果你确实是一名非常非常好的程序员,但是你做的东西没有人需要,没有人喜欢……它没有为世界增加价值,但是你真的真的非常擅长这门手艺,只是找不到能产生影响的方法,我想你可能会深入研究并讨论所使用的工具。

00:15:56 - Saron Yitbarek

好吧,非常感谢 Avi,感谢你分享你的所有经验以及对编程语言的想法。那我们就谈到这里?

00:16:01 - Avi Flombaum

是的,这非常好玩,很高兴再次跟你交流,我希望大家都找到自己喜欢的语言,每天都能用它来工作。

00:16:10 - Saron Yitbarek

听起来不错。

00:16:13

Avi Flombaum 是 Flatiron 学校的联合创始人之一。

00:16:20 - Saron Yitbarek

编程学校可以将教育和知识获取的精神提升到一个全新的高度。这是我们在 达特茅斯 Dartmouth 看到的一切的延续;但如今,在一个多样化的开发生态系统中,新的、更加自然的入门方式将会不断涌现,初学者们已经有了更理想的手段来开始他们的编程“游戏”;有时,他们甚至会以玩游戏的方式入门。

00:16:45 - CO.LAB 参与者

你试过其他键吗?试试 G 键。

00:16:52 - Saron Yitbarek

现在,在这暂停。这不是一群年轻的程序员在默默地背诵 O'Reilly 的课本,也不是在 Flatiron 学校的讲座。这其实是红帽在伦敦 泰特现代美术馆 Tate Modern 里运行的一个小实验室。那些孩子呢?他们在学习写代码。对于新一代来说,编程的乐趣就是他们首先体会到的。

00:17:13 - Femi Owolade-Coombes

好的。嗨,我叫 Femi,也叫 Hackerfemo。

00:17:17 - Saron Yitbarek

Femi Owolade-Coombes 只有 13 岁,但他已经是新一代程序员中的一名领袖。

00:17:26 - Femi Owolade-Coombes

我八岁的时候第一次接触到编程,那时我去 约克 York 参加一项活动。活动本身其实是数学主题的,不过我在那里看到了个很酷的东西——合法地黑入 Minecraft。作为八岁的孩子,那时候的我认为那真的很酷。所以我就这样喜欢上了编程。

00:17:47 - Saron Yitbarek

他并不孤单。Minecraft 已经将一代人引入了编程领域,而且它做到了没有过去几代人所经历的痛苦和枯燥的学习。游戏的魔力正在消除障碍。 Minecraft 是基于 Java™ 的,它也为该语言注入了新的活力,催生了一大群新的 Java 粉丝。

00:18:11

但不一定是 Java。对于 Femi来 说,Python 是他在 Minecraft 中发现的语言。

00:18:16 - Femi Owolade-Coombes

当你使用 树莓派 Raspberry Pi 版的 Minecraft 时,你可以用 Python,因为树莓派上的 Minecraft 是特殊编写的版本。它很酷,只要导入这个库,你就可以黑进去,到处放置爆炸性的 TNT;你可以在自己身后创建方块,也可以创造建筑物。你可以拿它做各种各样的事。

00:18:42

当我第一次玩它时,我发现可以添加很多类似 mod 的东西(LCTT 译注:一类加载于电子游戏上的插件,玩家可以通过 mod 改变游戏的行为方式),这很酷。mod 这东西本身就有点像黑进游戏一样,但 mod 的存在让我意识到,我们也可以用正规的方法改变游戏,让它以你希望的方式行事。我认为这真的很酷。

00:18:57 - Saron Yitbarek

Femi 打开了一个编程世界,而通往世界的大门是他最喜欢的游戏。然后,他做了一件了不起的事情。他开始向其他孩子分享那扇门。

00:19:10 - Femi Owolade-Coombes

嗯,我想与同伴分享我的知识。因为我觉得,你知道吗?他们会非常喜欢的,我也会因此度过愉快的时光。我想与其他所有人共享这些,这样他们就能了解它,甚至可以参与编程。

00:19:30 - Saron Yitbarek

Femi 将此事贯彻到底,创办了 南伦敦树莓酱 South London Raspberry Jam (LCTT 译注:这个名称典出“树莓派”;jam 也有即兴演奏的意思,常用于一些赛事。),在那里,他已经看到了全新一代的编程者,他们正挑战人们以往对编程初体验的预判。除了那些 Minecraft 黑客,像 Scratch 或 Fruit 这样的可视化语言也让越来越年轻的用户拥有基础知识可以实现编程。

00:19:54 - Femi Owolade-Coombes

我确实喜欢玩游戏这个点子,比起在课堂上学习代码,我最喜欢的是能够控制游戏中发生的事情,而代码是背后的魔法,代码给了你那种非常酷的能力,让游戏做你想要的事情。

00:20:15 - Saron Yitbarek

Femi 的妈妈告诉我们,当她发现玩游戏并非一种弊大于利的追求时,她有多么高兴。我喜欢他的故事,因为这故事是从游戏开始的,却没有结束于游戏。他建立了一个属于年轻程序员的、了不起的社区;Femi 自己的代码生涯也在起飞,不再是围绕着 Minecraft 了。他在 HTML、JavaScript 和 CSS 领域工作,建立网站,做网页设计。他甚至在用 Unity 打造自己的游戏。

00:20:44 - Femi Owolade-Coombes

每个人都应该有权利学习编程,因为这是未来。

00:20:53 - Saron Yitbarek

Minecraft 真的是一所巨型编程大学吗?明日的程序员,是否会通过游戏和玩耍来吸收新的语言呢?只通过环境渗透能否真正地学习语言?

00:21:06 - Robyn Bergeron

嗨,我叫 Robyn Bergeron。

00:21:08 - Saron Yitbarek

Robyn 是 Red Hat 的 Ansible® 社区架构师 community architect ,她有几个孩子,这些孩子们偶然间接触到了编程。

00:21:18 - Robyn Bergeron

那是晚饭时刻。我在做饭,每个人对这件事情都印象深刻。我的女儿来到厨房,她说:“妈妈,我在 Minecraft 中提交了一个错误!”我从事软件工作,我看到过很多很多错误报告,而且我真的很好奇,在那个宇宙中,这意味着什么。是说我在 Twitter 上和别人聊了聊,说它坏了,还是什么?我让她给我看看,于是她打开了电脑,她已经在 Mojang 的系统中创建了一个 JIRA 帐户。

00:21:53 - Saron Yitbarek

我们应该注意到,罗宾的女儿在当时只有 11 岁。

00:21:57 - Robyn Bergeron

她把表格填得像模像样。我见过很多内容不完整的错误报告,也见过很多口吻过于尖锐的错误报告。但这是一个完美的报告……这份报告里有说“发生了什么事”,“我预期会发生什么事”,以及“如何重现错误”。对于很多人来说,这是他们与项目的第一次互动,无论是商业的、专有的软件项目,比如一个电子游戏,还是一个开源软件项目。我很自豪,我告诉她,之后我们完全可以去参加 Minecraft 大会,因为他们一直很想去。

00:22:33 - Saron Yitbarek

Robyn 意识到,当我们其他人从事日常工作时,孩子们却开始了一场革命。以下是在那场 Minecraft 大会上发生的事情。

00:22:43 - Robyn Bergeron

我们去参加主题演讲,我说,就算我们在最后一刻去也会没事的,会在第二排找到位置。但我的设想完全错了,我们坐得就跟房间后面那 10 个大屏幕一样靠后。不过这并没有减少孩子们的热情。大会的其中一天,全体开发人员也在会议上出场了。当工程师们出来的时候,所有在场的孩子都站起来尖叫。如果你看过披头士乐队表演的视频,那这时候就像披头士乐队来美国时一样。我不能相信他们就在我们眼前,这是难以置信的一幕!在会议期间,人们都在试图得到他们的签名,这是……我和我的孩子坐在那里,我在想,我开发操作系统,连接互联网,这样你们才能在一起玩游戏吧?我们做错了什么,才会如此默默无闻呢?

00:23:36 - Robyn Bergeron

但是孩子们就像,我长大后要成为使用 JavaScript 的人!是的,那个活动带来的热烈氛围令人着迷,但……这是一个电子游戏。

00:23:51 - Saron Yitbarek

在 70 年代的某一段时间,每个人的入门语言都是 BASIC;然后可能是 C。近来,人们开始使用 Java 或 Python,但是可视化语言编程和游戏正在催生我们鲜有设想的编程未来。

00:24:10 - Robyn Bergeron

尽管对于已经从事多年编程工作的人来说,这似乎微不足道,但我开始游玩的那一刻,我甚至没有意识到,我其实是在学习一种可以让我受益终生的东西。

00:24:23 - Saron Yitbarek

Robyn Bergeron 是红帽的 Ansible 社区架构师 community architect

00:24:32

BASIC 邀请大学生进入编程世界,而 Minecraft 等游戏则邀请小学生进入当今编程世界。但是从某种意义上说,创造的动力并没有改变。那些大学生在学习 BASIC?是的,他们经常用它来编写游戏。最常见的似乎是足球题材。

00:24:54

创新精神是驱使我们学习编程语言的第一推动力。这种驱动力让我们使世界变得更好,或变得更加有趣。

00:25:08

下次,在第 3 集中,我们会讲述,全新的编程语言究竟从何而来?我们会了解到,巨大挑战是如何推动着开发人员从过去的语言中走出来,并在今天创造出新事物的。

00:25:26

《代码英雄》是 Red Hat 的原创播客。如果你想更深入地了解 BASIC 的起源或在本集中听到的其他内容,请转至 redhat.com/commandlineheroes

00:25:37

我是 Saron Yitbarek。在下期节目到来之前,也请继续编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/learning-the-basics

作者:Red Hat 选题:bestony 译者:erlinux 校对:acyanbird, Northurland, wxy

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

你在寻找新的电子书阅读软件吗?来看看这四款适用于安卓的可靠的开源电子书阅读器吧。

谁不想有一个好的阅读体验?与其将时间浪费在社交媒体或即时消息软件上,不如在自己的安卓手机或平板上阅读一本书、杂志或其他文档。

要做到这一点,你需要的是一个适合的电子书阅读软件。接下来让我们来看一看四款可靠的、开源安卓电子书阅读器。

Book Reader

那我们先从我最喜欢的一款开源安卓电子书阅读器开始:Book Reader。它基于现在专有的 FBReader 应用的开源老版本。像 FBReader 的早期版本一样,Book Reader 小而简单,但是好用。

优点:

  • 易于操作。
  • 该应用界面遵循安卓的 Material Design 指南,因此非常干净。
  • 你可以为电子书添加书签,并将文本分享至你设备上的其他应用。
  • 不断提供除英语外的其他语言的支持。

缺点

  • Book Reader 的自定义选项较少。
  • 没有内置词典或支持外部词典的功能。

支持的电子书格式:

Book Reader 支持 EPUB、.mobi、PDF、DjVu、HTML、纯文本、 Word 文档、RTF 和 FictionBook

 title=

Book Reader 的源码在 GNU GPL 3.0 下授权,你可以在GitLab中找到它。

Cool Reader

Cool Reader 是一个灵活易用的电子书软件。虽然我觉得该软件的图标会让想起 Windows vista 中的图标,但它确实有一些好用的功能。

优点

  • 高度自定义,你可以更改字体、行宽、段间距、连字符、字体大小、页边距以及背景色。
  • 你可以覆盖书中的样式表。我发现这对于两三本将所有文本设置为小写字母的书很有用。
  • 它会在设备启动时自动搜寻设备中的新书资源。你也可以查阅古腾堡计划互联网档案馆中的书籍。

缺点

  • Cool Reader 的界面并不是极简或者说最现代化的。
  • 虽然它开箱即用,但实际上你需要调整一些配置来更舒适地使用 Cool Reader。
  • 应用的默认词典是专有的,尽管你可以用开源的词典来替换掉它。

支持的电子书格式:

你可以使用 Cool Reader 来浏览 EPUB、小说、纯文本、RTF、HTML、CHM 和 TCR(Psion 系列掌上电脑的电子书格式)文件。

 title=

Cool Reader 的源码在 GNU GPL 2 下授权,你可以在 Sourceforge 中找到它。

KOReader

KOReader 最初是为了 E Ink 电子书阅读器创建的,但后来发现它可用于安卓。在测试它时,我发现 KOReader 在同等程度下既有用又令人沮丧。很明显它绝不是一款不好的应用,但不会是我的首选。

优点

  • 高度自定义。
  • 支持多种语言。
  • 它允许你使用词典(若你已安装)或者 Wikipedia(若你已连接至网络)来查单词。

缺点

  • 每一本书你都需要改变设置。在你打开一本新书时,KOReader 不会记住相关设置
  • 它的界面会让人觉得是一款专门的电子书阅读器。该应用没有安卓的外形和感受。

支持的电子书格式:

你可以查阅 PDF、DjVu、CBT、以及 CBZ 电子书。它也支持 EPUB、小说、.mobi、Word 文档、文本文件和 CHM 文件。

 title=

Cool Reader 的源码在 GNU Affero GPL 3.0 下授权,你可以在 GitHub 上找到它。

Booky McBookface

是的,这确实是这款电子书阅读器的名字。它是这篇文章中最基础的电子书阅读器,但不要因此(或者这个傻乎乎的名字)使你失望。Booky McBookface 易于使用,并且有一件事它做的很好。

优点

  • 没有多余的装饰。只有你和你的电子书。
  • 界面简洁。
  • 在安卓启动栏中的长按软件图标会弹出一个菜单,你可以从中打开正在阅读的最后一本书、获得未读书籍的列表、或者查找并打开设备上的一本书。

缺点

  • 软件中几乎没有配置选项——你可以更改字体大小和亮度,仅此而已。
  • 你需要使用屏幕底部的按钮浏览电子书。点击屏幕边缘无法操作。
  • 无法为电子书添加书签。

支持的电子书格式

你可以使用该软件阅读 EPUB 格式、HTML 文档,或纯文本格式的电子书。

 title=

Booky McBookface 的源码在 GNU GPL 3.0 下授权,你可以在 GitHub 中找到它。

你有最喜欢的安卓开源电子书阅读器吗?在社区中留言分享一下吧。


via: https://opensource.com/article/19/10/open-source-ereaders-android

作者:Scott Nesbitt 选题:lujun9972 译者:chenmu-kk 校对:wxy

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