蚊章汇 - Jen Wike Huger
type: channel
link: https://linuxcn.bwsl.wang/author/514/
description: Jen Wike Huger
items: 你的第一门编程语言是什么？
items: 我们离不开的 Linux 内核模块
items: IT 人的 6 个晚上放松方式
items: 6 个开源的奇妙清单（Wunderlist）替代品
items: 九种用开源拯救地球的方法
items: 5 个 Linux 新手会犯的失误
items: Git 十四周年：你喜欢 Git 的哪一点？
items: 无服务器架构的三个意义
items: 让孩子爱上计算机和编程的 15 本书
items: 面向 Linux 和开源爱好者的书单

你的第一门编程语言是什么？
type: item
date: 2023-05-22T01:36:02+08:00
description: 以下是 24 位开源技术专家分享了他们开始编程之旅的故事。我向我们的贡献者提问了这个问题：“你的第一门编程语言是什么？”不过这个问题并不像看上去那样简单。下面的故事谈到了是谁向你建议了第一门编程语言，是什么促使你学习它。如果你是付费学习的，接下来又发生了什么。这里还涉及到你所在的阶段以及这个世界上正在发生的事情。让我们倾听这 24 位技术专家的故事吧。你的第一门编程语言是什么？BASIC。你花钱学习的吗？并不是。你是自己选择它的吗？不尽然。为什么这么说？那是 1979 年的圣诞节，我的父母（他们分别是学校的一名维护人员和一名公共卫生护士）省吃俭用地攒下了惊人的 1000 美元买下了一台 Tandy/Radio Shack TRS-80。它随附了一份涵盖了完整的 BASIC 编程语言的活页夹。我的父亲认为让我学习开发计算机软件是一个很好的将我从困境中解脱出来的方式。接下来发生了什么？我的父母给我和我的兄弟买了与“自学编程”相关的书籍，也订阅了相关的流行杂志。这些资源中提供了许多游戏的打印版的源代码。我们每个星期都花费大量的时间编写程序，然后一行一行地使用电脑自带的检查程序找出我们的打字错误并调试程序。当我们厌倦了游戏以后，我们开始修改它们。我们一开始只是简单地修改零零散散的字符串将一个罗马战斗策略游戏修改为一个太空战斗策略游戏。不过后来随着我们所做修改的复杂度的增加，我们最后开始开发我们自己的恐怖游戏。此后不久，我们开始通过信件分享我们的游戏磁盘，后来也通过当时仅 110bps 网速的电子公告板（BBS）分享我们的游戏。40 年之后，我可以同全世界共同创作，家庭网络连接性能提升了七个数量级以上，但是我仍然时常怀念那个周六，那一天，在我和我的兄弟共同创造的真实的恐怖游戏当中，我被我的弟弟击败。—— Jeremy Stanley你的第一门编程语言是什么？我的第一们编程语言是 BASIC，我在 7 年级的时候开始接触它。你是花钱学习的吗？如果你认为允许在午餐时间在计算机实验室里玩 《 德军总部 3D Wolfenstein 3D 》、《 我的世界 Minecraft 》、《 模拟城市 Sim City 》这些游戏，是对计算机科学足够感兴趣并学习 BASIC 语言的的花费的话，那就算是吧。你是自己选择它的吗？我不认为我当时曾确切地认识到还有第二选择。这是当时计算机实验室中仅有的内容，而且一些学长对它的介绍足以让我参与其中。我记得它不是计算机科学课程的一部分。为什么这么说？当时，我学习 BASIC 仅仅是因为乐趣。我仅仅用它来创造基于文本的“选择你自己的探险之旅”风格的游戏。从源代码创建一些兼具艺术性与趣味性的东西并让计算机运行它们这件事极大地吸引了我。我此前也使用过计算机，但这是我头一次让它为我做一些事情。接下来发生了什么？或许并不是巧合，我后来使用“选择你自己的探险之旅”风格的游戏来学习我后来接触到的每一种编程语言。这一经历以及在计算机游戏中的首次探索（既有商业游戏也有我自创的游戏）开始了我进一步深入计算机领域的旅程，一直到我 11 年级时我的父母买回了我们家的第一台电脑。三年后，我将这一段旅程转化为了我的第一份计算机领域的工作，我成为了一家研究公司的实习生，这家公司最终录用了我为他们的 IT 支持组的一员，这是我大学毕业后的第一份“真正意义上”的工作。将近 30 年后，我坚信是 BASIC（以及《模拟城市》）开启了我现在成为 SRE 的旅程，每天编写代码，与计算机集群为伍。—— Chris Collins你的第一门编程语言是什么？我玩过 BASIC 语言，但是我的第一门正式入门语言是 PL/I。我在我大学时的第一次编程课上学习它的。—— Heidi Ellis你的第一门编程语言是什么？我的第一门编程语言是 BASIC 语言。那是在 1981 年。我学习它是因为我买了一台能够启动进入 BASIC 编辑器的家用电脑，一台 TRS-80 彩色计算机。它拥有相当出众的 4K 容量的内存（没写错），而且它还可以在盒式磁带上存储程序。我希望让电脑做一些事情，因此我开始学习如何使用它能够理解的语言向它下达指令。一旦你第一次体验到程序成功运行的欣喜若狂的感受，你会发现我还想再次体验这种感觉。你还需要知道的是，如今已经过去 40 多年了。—— Matthew Helmke你的第一门编程语言是什么？我的第一门编程语言是 BASIC。它是 1977 年大学第一学期中我的计算机科学课程的一部分，因此我既没有自己花钱学习它，也不是自己选的它。不过我始终认为这是非常重大的第一步，因为它使我学会了如何像计算机一样思考（我有一个好老师）。随着我从经济学院毕业，这门课程并没有立即促成一些事情。不过，多年之后，我成为了一名 IT 项目经理。所以我没有做过程序员，不过我…

我们离不开的 Linux 内核模块
type: item
date: 2021-09-03T14:57:01+08:00
description: 开源爱好者们对他们所喜爱的 Linux 内核模块进行了评价。Linux 内核今年就要满 30 岁了! 如果你像我们一样对此特别重视，那么让我们本周用几个特别的文章来庆祝 Linux。今天，我们先来看看来自社区对“你不能没有哪个 Linux 内核模块？为什么？”的回答，让我们听听这 10 位爱好者是怎么说的。1我猜一些内核开发者听到我的回答后会尖叫着跑开。不过，我还是在这里列出了两个最具争议性的模块：第一个是 NVIDIA，因为我的工作笔记本和个人台式机上都有 NVIDIA 显卡。另一个可能产生的仇恨较少。VMware 的 VMNET 和 VMMON 模块，以便能够运行 VMware Workstation。— Peter Czanik2我最喜欢的是 zram 模块。它在内存中创建了一个压缩块设备，然后它可以作为交换分区使用。在内存有限的情况下（例如，在虚拟机上），还有如果你担心频繁的 I/O 操作会磨损你的 SSD 或者甚至更糟糕的基于闪存的存储，那么使用基于 zram 的交换分区是非常理想的。— Stephan Avenwedde3最有用的内核模块无疑是 snd-hda-intel，因为它支持大多数集成声卡。我可以一边听音乐，一边在 Linux 桌面上编码一个音频编曲器。— Joël Krähemann4如果没有我用 Broadcom 文件生成的 kmod-wl，我的笔记本就没有价值了。我有时会收到关于内核污染的信息，但没有无线网络的笔记本电脑有什么用呢？— Gregory Pittman5我不能没有蓝牙。没有它，我的鼠标、键盘、扬声器和耳机除了用来挡住门板还有啥用？— Gary Smith6我要冒昧地说 全 都是。 说真的，我们已经到了随机拿一块硬件，插入它，它就可以工作的地步。USB 串行适配器能正常工作显卡可以使用（尽管可能不是最好的）网卡正常工作声卡正常工作所有这些模块整体带来大量可以工作的驱动程序，令人印象深刻。我记得在过去那些糟糕的日子里，我们曾经大喊 xrandr 魔法字符串才能来使投影仪工作。而现在，是的，当设备基本不能正常工作时，才真的罕见。如果我不得不把它归结为一个，那就是 raid6。— John 'Warthog9' Hawley7对于这个问题，我想回到 20 世纪 90 年代末。我是一家小公司的 Unix 系统管理员（兼任 IS 经理）。我们的磁带备份系统死了，由于“小公司”预算有限，我们没有急于更换或现场维修。所以我们必须得把它送去维修。在那两个星期里，我们没有办法进行磁带备份。没有一个系统管理员愿意处于这种境地。但后来我想起了读过的 如何使用软盘磁带机，我们刚好有一台刚换下来的塔式电脑，它有一个软盘磁带机。于是我用 Linux 重新安装了它，设置了 ftape 内核驱动模块，进行了一些备份/恢复测试，然后将我们最重要的备份运行到 QIC 磁带上。在这两个星期里，我们依靠 ftape 备份重要数据。所以，对于那些让软盘磁带机在 1990 年代的 Linux 上工作的无名英雄，你真是太厉害了！— Jim Hall8嗯，这很简单。是 kvm 内核模块。就个人而言，我无法想象在没有虚拟机的情况下完成日常工作。我愿意相信我们大多数人都是这样。kvm 模块在使 Linux 成为云战略的核心方面也发挥了很大作用。— Gaurav Kamathe9对我来说，是 dm-crypt，它是用于 LUKS 的。参见：https://www.redhat.com/sysadmin/disk-encryption-lukshttps://manpages.debian.org/unstable/cryptsetup-bin/cryptsetup.8.en.html知道别人无法看到你的磁盘上的内容是非常棒的，例如，如果你的笔记本丢失或被盗时。— Maximilian Kolb10对于密码学基础，很难超越 crypto 模块和它的 C API，它是如此简洁明了。在日常生活中，还有什么比蓝牙提供的即插即用更有价值的吗？— Marty Kalin在评论中与我们分享。你的生活中不能没有什么 Linux 内核模块？via: https://opensource.com/article/21/8/linux-kernel-module作者：Jen Wike Huger 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

IT 人的 6 个晚上放松方式
type: item
date: 2021-07-24T18:07:27+08:00
description: 在结束了一天的远程会议、邮件往来、写代码和其他协作工作后，你在晚上如何放松自己呢？这个奇怪的时代一方面给我们放慢脚步的机会，但另一方面来说，却比以前更忙了，尤其是当你除了照顾自己还要照顾家人的时候。俗话说，空杯子倒不出酒。所以，让我们看看在关上电脑或者完成最后一件工作之后，能为自己做些什么？1、走出家门，做几次深呼吸，不要在乎是不是下雪天，让新鲜的空气从肺部充满全身。如果可以的话，在院子里走走，或者去街上逛逛。2、如果有时间的话，给自己沏杯茶，红茶含有咖啡因，最好不要晚上喝，可以喝绿茶或者花果茶，然后在你穿上鞋（或许还有外套）时让它稍微凉一下。把茶倒在保温杯里，在小区周围散散步。不用设置目标或者目的地，就随便走走。如果你时间不充裕的话，可以定一个 15 分钟的闹钟。3、放一首突然想到的歌，或者听之前想听但是一直没机会听的歌。4、如果你有时间的话，别在椅子上继续坐着，可以站起来跳一段舞活动活动，或者到床上平躺着，躺着的时候什么也不要想，放空自己，让大脑休息休息。研究表明，给大脑一段空白时间后可以更好的思考。5、打开你的 电子书应用 或者拿起一本纸质书，看纸质书相对来说对眼睛好点。享受轻松的阅读，如果不能长时间阅读的话，起码给自己留出能阅读一个章节的时间。6、制做一些美食。享受把从杂货店买到的基本的食材按照菜谱做成一份美味佳肴的成就感和兴奋感。你也可以在晚上把其中一些综合起来做，好好放松。如果你是 IT 人，那么无论是在 早上、中午、晚上用这些方式放松都很有效，因为现在我们都是在家工作，远程办公，没有和同事面对面交流时的闲暇。那么，你的晚上放松方式是什么?via: https://opensource.com/article/20/11/evening-rituals-working-tech作者：Jen Wike Huger 选题：lujun9972 译者：Arzelan 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

6 个开源的奇妙清单（Wunderlist）替代品
type: item
date: 2020-06-14T22:28:00+08:00
description: 喜欢列表？看看这个便捷的开源应用程序列表，以管理你所有的列表！奇妙清单（Wunderlist）是一款清单应用，受到很多人的喜爱，但从 2020 年 5 月 6 日起，它就永远停止了。它的网站鼓励现有用户下载并使用“微软待办”来代替它。这很诱人，因为它可以轻松导入你多年来制作的所有这些列表。不过话又说回来，也许这是个机会，可以“近藤麻理惠”一下这些列表，并削减一些事务。（你真的需要 30 个列表吗？很显然，我觉得我需要，所以我不做评判。）我有各种各样的清单，从“2020 年花园的植物”到“给丈夫的礼物”。有些是清单，有些是待办事项清单，有些是为了清单而清单。对我和我丈夫来说，最有用的清单是我们共享的杂货清单。我们都有手机上的应用程序，我们都把东西添加到列表中，但在他去购物之前，我们分别在手机上审查它（是的，你没看错），他把东西放进购物车时，他就会勾掉它。这让整个过程变得出奇的高效，我想我们节省了一些钱，因为我们喜欢坚持按清单购物。虽然奇妙清单的用户很喜欢它，但它并不是完全独一无二的。还有无数的列表应用。对于奇妙清单，我特别喜欢它将简洁性和设计感结合在一起，而且它成功实现了一些有用的功能，比如与他人分享和协作，列表的动态复选框，以及在移动和网页界面上的良好用户体验。我也很喜欢用它来做一个不“活跃”文档的列表：一个我不会每周都回顾或定期进展的列表，就像我用来进行头脑风暴的许多列表一样（包括我一直想写的小说...）。从这些年来我们发表的许多精彩文章中，我整理了一系列奇妙清单的开源替代方案，从简单的任务管理和待办事项清单到复杂的笔记记录和流程管理，这些列表工具可能会满足你的需求。或者，如果你是那个在丢得到处都是的纸条和便签上书写任务和备注的人，这可能是尝试这些数字工具之一的好时机。Tasks：可与 OwnCloud 配合Tasks 是一款自由开源的应用，你可以从 F-droid 安装。Tasks 是一款只适用于手机的应用，但它可以同步到各种地方，非常灵活。你可以将你的列表保存到 NextCloud 或 OwnCloud、Google Tasks、Apple Reminders 以及几乎所有你有账户的 CalDAV 服务器上。Tasks 的默认视图是每日视图，所以你输入的任何任务都被假定为从今天开始的任务。如果你像我一样，想维护几个不同的列表，你可以用标签来实现。当你创建一个标签时，你就为任务创建了一个类别。你可以为它指定一种颜色和一个图标，这样每个任务列表都是独一无二的。这需要一点时间来适应，但标签有很多优点。因为所有的任务都是有标签的，你可以通过点击你想过滤的标签来查看任务组，但你也可以按天甚至按地点过滤。这意味着，当你去采购杂货时，你的杂货列表会成为活跃的默认列表，而当你回到家时，你的日常生活列表又会成为活跃的列表。通过将你的数据同步到你的一个在线账户，你可以与亲人、合作者和同事分享列表。另一个伟大的功能是，如果你每天早上上班时都有相同的任务，或者每周杂货清单中有 20 个相同的项目，你可以创建定期重复的任务。评测者：Seth KenlonOpenTasks：适于长列表OpenTasks 是一款优秀的任务管理工具，可以创建带有各种设置的个人任务。它在创建任务时支持多种字段，从基本的东西，如名称和描述，到更复杂的项目，如选择任务是私人、公共还是机密。OpenTasks 与其他替代品最大的不同之处在于它在应用的主屏幕上使用了选项卡。这些选项卡可以让你快速看到到期的任务、即将开始的任务、按优先级排序的任务，以及按当前完成进度排序的任务。许多其他应用程序支持做这样的事情，但 OpenTasks 很快就能轻松访问这些列表。阅读完整的 OpenTasks 评测，作者：Joshua Allen Holm。Mirakel：嵌套列表的绝佳之选Mirakel 是一款任务管理应用，它拥有现代化的用户界面，并支持你在这样一款程序中可能想要的几乎所有格式。Mirakel 在基础层面上支持多个被称为“元列表”的列表。创建一个单独的任务有大量的选项，有截止日期、提醒、进度跟踪、标签、备注、子任务和文件附件，所有这些都构成了任务条目的一部分。阅读完整的 Mirakel 评测，作者：Joshua Allen Holm。Todo：简单有效，随处可用Todo.txt 是我不断反复推荐的两个待办事项和任务管理应用之一（另一个是 Org 模式）。而让我不断推荐的原因是，它简单、便携、易懂，而且有很多很棒的附加组件，即使一台机器有这个程序而其他机器上没有，也不会破坏它。而且由于它是一个 Bash shell 脚本，我从来没有发现不支持它的系统。阅读更多关于如何安装和使用 Todo.txt。阅读完整的 todo.txt 评测，作者：Kevin Sonney。Joplin：最佳私…

九种用开源拯救地球的方法
type: item
date: 2020-03-10T08:40:00+08:00
description: 这些主意都用到了有关的开源技巧。人们可以做些什么来拯救地球？这个问题可能会让人感到压抑，因为有时我们感觉个人可以做的贡献太少了。但是作为地球公民，我们从来不是一个人。所以，我向我们的作家社区征集了一些开源软件或硬件可以帮助改变现状的方法。以下是他们的回复。九种利用开源的方法来拯救地球的方式1、在你的终端禁用闪烁的光标这听起来可能有点傻，但是那个无关紧要的闪烁的光标可能导致每小时两瓦特的额外电力开销。如果要禁用光标闪烁，可以通过更改终端设置： 编辑 Edit > 偏好设置 Preferences > 光标 Cursor > 光标闪烁 Cursor blinking > 禁用 Disabled 。由 Mars Toktonaliev 推荐2、减少有关动物产品和加工食物的消费这样做的一种方法是在你的手机中添加这些开源的 App：Daily Dozen、OpenFoodFacts、OpenVegeMap 和 Food Restrictions。这些 App 可以帮助你准备一份健康的素食饮食计划，为你找到素食主义者和严格素食主义者可以就餐的餐厅，还可以帮助你把你的饮食需求告诉别人，即使他们不和你讲同一种语言。如果想要了解更多有关这些的 App 的信息，你可以阅读《4 款“吃草”的开源应用》。由 Joshua Allen Holm 推荐3、让旧电脑重焕新生怎么做？当然是用 Linux。通过给那些自己得不到新电脑的人创造一台新电脑来传递爱心，同时也可以避免让这台电脑进到垃圾填埋场。可以在 The Asian Penguins 看看我们是怎么做的。由 Stu Keroff 推荐4、在你不使用设备时关闭它们你可以使用带有主插座和控制插座的“智能插座板”。把你的电脑连接到主插座上，这样的话当你打开电脑时所有你连接到控制插座上的设备如显示器，打印机等也都会打开。一个更简单的、技术含量更低的方法是使用一个带有计时器的插座板。我在家里就是用的这个。你可以用计时器上的开关设定一个定时开关电源的时间表。这样可以在没有人在家时自动关闭网络打印机。或者以我的用了六年的笔记本电脑为例，我通过一个交替使用外接电源（插座打开）和使用电脑电池（插座关闭）的电源计划延长了电脑电池的寿命。由 Jim Hall 推荐5、减少供暖通风系统（HVAC）的使用在夏天，透过窗户的阳光可以为室内提供很多热量。使用 Home Assistant 可以基于一天中的时间的，甚至是基于太阳高度角自动调节窗帘和遮阳棚。由 Michael Hrivnak 推荐6、出门就把恒温器关闭或调低如果你的家用恒温器具有“离开”功能，你很容易忘记在出门时启用它。借助自动化，任何连接到网络的恒温器都可以在你不在家时自动节省能量。Stataway 就是一个这样项目。它通过调用你的手机的 GPS 坐标来决定是将你的恒温器设置为“在家”还是“离开”。由 Michael Hrivnak 推荐7、为未来储蓄算力我有一个主意：创建一个可以读取可选的能量阵列（如风能或太阳能）的输出的脚本。这个脚本应该将计算集群中的服务器从睡眠模式更改为激活模式，直到过量的电能（超出可以储存的部分）被用尽。然后在高产能时段使用这些过量的电能来进行需要大量计算的项目，比如渲染。这个过程本质应该是免费的，因为使用的能量无法被储存起来挪作它用。我相信现有的监控、能量管理和服务器阵列工具一定可以实现这个功能。那么剩下的只是一些整合上的问题，就可以让整个系统工作起来。由 Terry Hancock 推荐8、关掉你的灯根据 人工夜空亮度图集 World Atlas of Artificial Night Sky Brightness 的说法，光污染影响了全世界超过 80% 的人口。这一结论在 2016 年（遵循 CC-NC 4.0 协议）发表在公开访问的期刊《 科学进展 Science Advances 》上。关闭外部照明是一个可以使野生生物、人类健康受益并让我们享受夜晚的天空的快速途径，而且可以减少能量消耗。访问 darksky.org 来查看更多减少外部照明影响的方法。由 Michael Hrivnak 推荐9、减少你的 CPU 数量就我个人而言，我记得我以前有很多在地下室运行的电脑作为我的 IT 游乐场/实验室。我现在对于能源消耗更加注意了，所以确实大大地减少了我的 CPU 数量。我现在更喜欢利用虚拟机、区域和容器等技术。另外，我很高兴有小型电脑和 SoC 电脑这种东西，比如树莓派，因为我可以用一台这样的电脑做很多事情，比如运行一个 DNS 或者 Web 服务器，而无需使整个屋子变热并积累昂贵的电费账单。P.S. 这些电脑都运行于 Linux、FreeBSD，或者 Raspbian 系统！由 Alan Formy-Duvall 推荐via: ht…

5 个 Linux 新手会犯的失误
type: item
date: 2019-06-09T18:37:23+08:00
description: Linux 爱好者们分享了他们犯下的一些最大错误。终身学习是明智的 —— 它可以让你的思维敏捷，让你在就业市场上更具竞争力。但是有些技能比其他技能更难学，尤其是那些小菜鸟错误，当你尝试修复它们时可能会花费你很多时间，给你带来很大困扰。以学习 Linux 为例。如果你习惯于在 Windows 或 MacOS 图形界面中工作，那么转移到 Linux，要将不熟悉的命令输入到终端中，可能会有很大的学习曲线。但是，其回报是值得的，因为已经有数以百万计的人们已经证明了这一点。也就是说，这趟学习之旅并不是一帆风顺的。我们让一些 Linux 爱好者回想了一下他们刚开始使用 Linux 的时候，并告诉我们他们犯下的最大错误。“不要进入[任何类型的命令行界面（CLI）工作]时就期望命令会以合理或一致的方式工作，因为这可能会导致你感到挫折。这不是因为设计选择不当 —— 虽然当你在键盘上敲击时就像在敲在你的脑袋上一样 —— 而是反映了这些系统是历经了几代的软件和操作系统的发展而陆续添加完成的事实。顺其自然，写下或记住你需要的命令，并且（尽量不要）在事情不是你所期望的时感到沮丧。” —— Gina Likins“尽可能简单地复制和粘贴命令以使事情顺利进行，首先阅读命令，至少对将要执行的操作有一个大致的了解，特别是如果有管道命令时，如果有多个管道更要特别注意。有很多破坏性的命令看起来无害 —— 直到你意识到它们能做什么（例如 rm、dd），而你不会想要意外破坏什么东西（别问我怎么知道）。” —— Katie McLaughlin“在我的 Linux 之旅的早期，我并不知道我所处在文件系统中的位置的重要性。我正在删除一些我认为是我的主目录的文件，我输入了 sudo rm -rf *，然后就删除了我系统上的所有启动文件。现在，我经常使用 pwd 来确保我在发出这样的命令之前确认我在哪里。幸运的是，我能够使用 USB 驱动器启动被搞坏的笔记本电脑并恢复我的文件。” —— Don Watkins“不要因为你认为‘权限很难理解’而你希望应用程序可以访问某些内容时就将整个文件系统的权限重置为 777。”—— Matthew Helmke“我从我的系统中删除一个软件包，而我没有检查它依赖的其他软件包。我只是让它删除它想删除要的东西，最终导致我的一些重要程序崩溃并变得不可用。” —— Kedar Vijay Kulkarni你在学习使用 Linux 时犯过什么错误？请在评论中分享。via: https://opensource.com/article/19/4/linux-rookie-mistakes作者：Jen Wike Huger 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

Git 十四周年：你喜欢 Git 的哪一点？
type: item
date: 2019-04-10T08:23:00+08:00
description: Git 为软件开发所带来的巨大影响是其它工具难以企及的。在 Linus Torvalds 开发 Git 后的十四年间，它为软件开发所带来的影响是其它工具难以企及的：在 StackOverflow 的 2018 年开发者调查 中，87% 的受访者都表示他们使用 Git 来作为他们项目的版本控制工具。显然，没有其它工具能撼动 Git 版本控制管理工具（SCM）之王的地位。为了在 4 月 7 日 Git 的十四周年这一天向 Git 表示敬意，我问了一些爱好者他们最喜欢 Git 的哪一点。以下便是他们所告诉我的：（为了便于理解，部分回答已经进行了小幅修改）“我无法忍受 Git。无论是难以理解的术语还是它的分布式。使用 Gerrit 这样的插件才能使它像 Subversion 或 Perforce 这样的集中式仓库管理器使用的工具的一半好用。不过既然这次的问题是‘你喜欢 Git 的什么？’，我还是希望回答：Git 使得对复杂的源代码树操作成为可能，并且它的回滚功能使得实现一个要 20 次修改才能更正的问题变得简单起来。”— Sweet Tea Dorminy“我喜欢 Git 是因为它不会强制我执行特定的工作流程，并且开发团队可以自由地以适合自己的方式来进行团队开发，无论是拉取请求、以电子邮件递送差异文件或是给予所有人推送的权限。”— Andy Price“我从 2006、2007 年的样子就开始使用 Git 了。我喜欢 Git 是因为，它既适用于那种从未离开过我电脑的小项目，也适用于大型的团队合作的分布式项目。Git 使你可以从（几乎）所有的错误提交中回滚到先前版本，这个功能显著地减轻了我在软件版本管理方面的压力。”— Jonathan S. Katz“我很欣赏 Git 那种 底层命令和高层命令 的理念。用户可以使用 Git 有效率地分享任何形式的信息，而不需要知道其内部工作原理。而好奇的人可以透过其表层的命令，而发现其为许多代码分享平台提供了支持的可以定位内容的文件系统。”— Matthew Broberg“我喜欢 Git 是因为浏览、开发、构建、测试和向我的 Git 仓库中提交代码的工作几乎都能用它来完成。它经常会调动起我参与开源项目的积极性。”— Daniel Oh“Git 是我用过的首个版本控制工具。数年间，它从一个可怕的工具变成了一个友好的工具。我喜欢它使你在修改代码的时候更加自信，因为它能保证你主分支的安全（除非你强制提交了一段考虑不周的代码到主分支）。你可以检出先前的提交来撤销更改，这一点也是很棒的。”— Kedar Vijay Kulkarni“我之所以喜欢 Git 是因为它淘汰了一些其它的版本控制工具。没人使用 VSS，而 Subversion 可以和 git-svn 一起使用（如果必要），BitKeeper 则和 Monotone 一样只为老一辈所知。当然，我们还有 Mercurial，不过在我几年之前用它来为 Firefox 添加 AArch64 支持时，我觉得它仍是那种还未完善的工具。部分人可能还会提到 Perforce、SourceSafe 或是其它企业级的解决方案，我只想说它们在开源世界里并不流行。”— Marcin Juszkiewicz“我喜欢内置的 SHA1 化对象模型（commit → tree → blob）的简易性。我也喜欢它的高层命令。同时我也将它作为对 JBoss/Red Hat Fuse 的补丁机制。并且这种机制确实有效。我还喜欢 Git 的 三棵树的故事。”— Grzegorz Grzybek“我喜欢 自动生成的 Git 说明页（这个页面虽然听起来是有关 Git 的，但是事实上这是一个没有实际意义的页面，不过它总是会给人一种像是真的 Git 页面的感觉…），这使得我对 Git 的敬意油然而生。”— Marko Myllynen“Git 改变了我作为开发者的生活。它使得 SCM 问题从世界上消失得无影无踪。”— Joel Takvorian看完这十个爱好者的回答之后，就轮到你了：你最欣赏 Git 的什么？请在评论区分享你的看法！via: https://opensource.com/article/19/4/what-do-you-love-about-git作者：Jen Wike Huger 选题：lujun9972 译者：zhs852 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

无服务器架构的三个意义
type: item
date: 2018-12-12T07:11:10+08:00
description: 以及，对于 无服务器 Serverless 架构，什么时候该用，什么时候不该用呢？如果将如今互联网体验中最方便实用的那一部分去掉，那么留下来的基本就是 客户端-服务端 client-server 模式了。这一个模式在互联网建立初期就已经在使用了，直到目前都没有太大的变化，也就是说，这个模式仍然在为我们服务。那么，当人们谈论 无服务器 Serverless 架构的时候，到底是指什么呢？其实，无服务器架构并不是说不使用服务器了。恰恰相反，客户端-服务端模式仍然在其中发挥着重要的作用。无服务器架构实际上指的是能够让开发者在不需要关心服务器上架、为操作系统打补丁、创建容器镜像这些工作的情况下，就能够完成编码、部署和创建应用这一整套流程的架构。无服务器架构的三个重要意义一些缺乏开发经验的人员现在要参与到开发工作中来了。无服务器架构能够让他们尽量只学习必要的工作内容，把更多的时间放在更具创造性的开发工作中。开发者不再需要重复造轮子。运行和维护服务器、为操作系统打补丁、创建容器等这一系列工作，都可以由更专业的无服务器架构提供商来完成。最现实的一点是，如果不使用无服务器架构，那么在服务器管理方面，总需要有一个作最终决策的人。当服务器发生崩溃时，或是需要在服务器上执行某些操作时，总是需要这样一个统领全局的人来作出决策。因此最佳的方案是使用无服务器架构。什么时候该用或者不该用无服务器架构？听起来无服务器架构是个好东西。但事实上，无服务器架构并不是万能的，在使用之前还需要考虑以下这些因素：成本使用范围时间控制方式其中值得注意的是控制方式。现在已经有一些项目为开发者提供了操作和控制无服务器架构计算环境的工具了，Apache OpenWhisk 就是其中之一。为什么要将无服务器架构开源？关于这方面的更多内容，可以观看无服务器架构方面的专家 Saron Yitbarek 在 Command Line Heroes 节目中的访谈。via: https://opensource.com/article/18/12/serverless-podcast-command-line-heros作者：Jen Wike Huger 选题：lujun9972 译者：HankChow 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

让孩子爱上计算机和编程的 15 本书
type: item
date: 2018-06-28T19:15:45+08:00
description: 以及，还有三本是给宝宝的。在工作之余，我听说不少技术专家透露出让他们自己的孩子学习更多关于 Linux 和 开源知识的意愿，他们中有的来自高管层，有的来自普通岗位。其中一些似乎时间比较充裕，伴随其孩子一步一步成长。另一些人可能没有充足的时间让他们的孩子看到为何 Linux 和 开源如此之酷。也许他们能抽出时间，但这不一定。在这个大世界中，有太多有趣、有价值的事物。不论是哪种方式，如果你的或你认识的孩子愿意学习使用编程和硬件，实现游戏或机器人之类东西，那么这份书单很适合你。面向儿童 Linux 和 开源爱好者的 15 本书《零基础学 Raspberry Pi》，作者 Carrie Anne Philbin在对编程感兴趣的儿童和成人中，体积小小的、仅信用卡一般大的树莓派引起了强烈的反响。你台式机能做的事情它都能做，具备一定的基础编程技能后，你可以让它做更多的事情。本书操作简明、项目风趣、技能扎实，是一本儿童可用的终极编程指南。（Joshua Allen Holm 推荐，评论节选于本书的内容提要）《Python 编程快速上手：让繁琐工作自动化》，作者 Al Sweigart这是一本经典的编程入门书，行文足够清晰，11 岁及以上的编程爱好者都可以读懂本书并从中受益。读者很快就会投入到真实且实用的任务中，在此过程中顺便掌握了优秀的编程实践。最好的一点是，如果你愿意，你可以在互联网上阅读本书。（DB Clinton 推荐并评论）《Scratch 游戏编程》，作者 Jon Woodcock本书适用于 8-12 岁没有或仅有有限编程经验的儿童。作为一本直观的可视化入门书，它使用有趣的图形和易于理解的操作，教导年轻的读者如何使用 Scratch 这款流行的自由编程语言构建他们自己的编程项目。（Joshua Allen Holm 推荐，评论节选于本书的内容提要）《用 Python 巧学数学》，作者 Amit Saha无论你是一名学生还是教师，只要你对使用 Python 学习数学感兴趣，不妨读读本书。在逻辑上，本书带领读者一步一步地从基础到更为复杂的操作，从最开始简单的 Python shell 数字运算，到使用类似 matplotlib 这样的 Python 库实现数据可视化，读者可以很容易跟上作者的思路。本书充分调动你的好奇心，感叹 Python 与 数学结合的威力。（Don Watkins 推荐并评论）《编程女生：学习编程，改变世界》，作者 Reshma Saujani作者是 Girls Who Code 运动的发起人，该运动得到 Sheryl Sandberg、 Malala Yousafzai 和 John Legend 支持。本书一部分是编程介绍，一部分女生赋能，这两部分都写得很有趣。本书包括动态艺术作品、零基础的编程原理讲解以及在 Pixar 和 NASA 等公司工作的女生的真实故事。这本书形象生动，向读者展示了计算机科学在我们生活中发挥的巨大作用以及其中的趣味。（Joshua Allen Holm 推荐，评论节选于本书的内容提要）《Python 游戏编程快速上手》，作者 Al Sweigart本书将让你学会如何使用流行的 Python 编程语言编写计算机游戏，不要求具有编程经验！入门阶段编写 刽子手 Hangman ，猜数字， 井字游戏 Tic-Tac-Toe 这样的经典游戏，后续更进一步编写高级一些的游戏，例如文字版寻宝游戏，以及带音效和动画的 碰撞与闪避 collision-dodgoing 游戏。（Joshua Allen Holm 推荐，评论节选于本书的内容提要）《Lauren Ipsum：关于计算机科学和一些不可思议事物的故事》，作者 Carlos Bueno本书采用爱丽丝梦游仙境的风格，女主角 Lauren Ipsum 来到一个稍微具有魔幻色彩的世界。世界的自然法则是逻辑学和计算机科学，世界谜题只能通过学习计算机编程原理并编写代码完成。书中没有提及计算机，但其作为世界的核心存在。（DB Clinton 推荐并评论）《Java 轻松学》，作者 Bryson PayneJava 是全世界最流行的编程语言，但众所周知上手比较难。本书让 Java 学习不再困难，通过若干实操项目，让你马上学会构建真实可运行的应用。（Joshua Allen Holm 推荐，评论节选于本书的内容提要）《终身幼儿园》，作者 Mitchell Resnick幼儿园正变得越来越像学校。在本书中，学习专家 Mitchel Resnick 提出相反的看法：学校（甚至人的一生）应该更像幼儿园。要适应当今快速变化的世界，各个年龄段的人们都必须学会开创性思维和行动；想要达到这个目标，最好的方式就是更加专注于想象、创造、玩耍、分享和反馈，就像孩子在传统幼儿园中那样。…

面向 Linux 和开源爱好者的书单
type: item
date: 2018-06-11T16:55:40+08:00
description: 看看我们现在在读什么？最近我在作者社区征集分享大家正在读的书。大家生活阅历和工作岗位各不相同，共同点是每天都与 Linux 和开源打交道。享受这份不可思议的书单吧，其中大部分是免费的，可以下载。在书单中，你可能发现一直想读的书、完全陌生的书以及像老朋友一样的已经读过的书。我们期待你给出对书单的看法，可以在分享在下方的评论区，也可以通过 #Linuxbooks 和 #opensourcebooks 主题词分享在 Twitter 上。加入你书单的 17 本书文末，还附赠了一篇科幻小说作品。FreeDOS 的 23 年岁月，作者 Jim Hall从去年起，FreeDOS 项目已经 23 岁了。虽然在 23 年中并没有什么特殊事件，但该项目决定庆祝这个里程碑，形式为分享不同人群使用 FreeDOS 或对 FreeDOS 做出贡献的故事。这本以 CC BY 协议开源的书籍收录了一系列短文，描绘了 FreeDOS 从 1994 开始的历程，以及人们现在如何使用 FreeDOS。（Jim Hall 推荐并评论）JavaScript 编程精解，作者 Marijn Haverbeke这本书基于无处不在的编程语言 Javascript，教你编写制作精美的程序。你可以学习语言的基本知识和高级特性，学习如何编写可在浏览器或 Node.js 环境中运行的程序。本书包含 5 个有趣的项目，例如制作游戏平台，甚至编写你自己的编程语言，在这过程中你会更加深入理解真实的编程。（Rahul Thakoor 推荐并评论）使用开源打造未来，作者 VM (Vicky) Brasseur如果你希望在开源领域做出贡献但无从下手，这本书会教会你。内容包括如何确定要加入的项目，以及如何做出你的首次贡献。（Ben Cotton 推荐并评论）Git 团队协作，作者 Emma Jane Hogbin WestbyGit 是一款版本管理系统，被个人和团队广泛使用；但其强大的功能也意味着复杂性。这本书指导你如何在团队环境中有效地使用 Git。想了解更多信息，请参考我们的深入点评。（Ben Cotton 推荐并评论）谈判力，作者 Fisher, Ury 及 Patton 哈佛谈判项目 The Harvard Negotiation Project 成立于 20 世纪七十年代，是一个经济学家、心理学家、社会学家和政治学者共同参与的学术项目，目标是建立一个让谈判各方都受益更多的谈判框架。他们的框架和技巧已经在各类场景发挥作用，其中包括 1978 年埃及与以色列之间的签订的 戴维营协议 Camp David Accords 。 原则式谈判 Principled Negotiation 包括理解谈判参与者的真实需求，以及基于该信息达成各方都可接受的条款。同样的技巧可以在处理人与人之间的纠纷、关于车辆与房屋的谈判以及与保险公司的商讨时发挥作用。这与开源软件开发有什么联系呢？在某种意义上，开源领域中的一切都是谈判。提交漏洞报告就是指出某些代码工作不正常，让某些人放下手头工作并优先处理该漏洞。邮件列表中对完成某些工作的正确方式的激烈讨论或对功能请求的评论，都是一种关于项目范畴和目标的谈判，通常是在信息不充足情况下进行的。将上述对话视为一种探索，试图理解为何其它人提出来某些需求，让其明白你为何持有另外的观点，可以让你在开源项目中显著地改善人际关系和提高工作效率。（Dave Neary 推荐并评论）只是为了好玩：Linux 之父 Linus Torvalds 自传，作者 Linus Torvalds 等Linux 是一款令人惊奇的、强力的操作系统，引发了关于透明和开放的运动。驱动 Linux 的开源思潮对传统商业和资本增值模型造成冲击。在本书中，你会了解到 Linus 本人及 Linux 操作系统的过人之处。洞悉那些改变 Linus 命运的经历，这些经历让他从一个喜欢折腾他祖父钟表的怪人，转变成编写全球主流操作系统 Linux 的大师。（Don Watkins 推荐并评论）1 个月速成 Linux，作者 Steven Ovadia这本书用于教会非技术领域的用户如何使用桌面版 Linux，读者每天花费一小时即可。这本书覆盖面比较很广，包括选择桌面环境、安装软件以及如何使用 Git。阅读完这本书，你可以完全使用 Linux 替换掉其它操作系统。（Steven Ovadia 推荐并评论）Linux 实战，作者 David Clinton这本身介绍了不少 Linux 管理工具的干货，适用于想提升技术水平的人群，包括 IT 专家、开发者、DevOps 专家等。本书不是割裂地介绍各种技术，而是按照真实项目组织内容，例如异地备份自动化、Web 服务器安全加密以及搭建可以安全连接公司资源的 VPN 等。更多内容可以参考作…