【转载】 开源恩情课文:牢 Linus 爷爷用邮件打下俄罗斯维护者

明朗的朝阳从显示屏的反光中映入了办公桌,Greg Kroah-Hartman 小心翼翼地整理着邮件列表的反馈。Linus 爷爷放下了他用来修改内核的键盘,抬起头来,看着社区的讨论,不由得笑了笑:「又一个 PR 合并完毕了。时间过得这么快,不抓紧清理这些不合规的维护者怎么行呢!」  

Greg 皱着眉头:「Linus,你看社区的意见……会不会太过激了?」  

Linus 淡然一笑:「打开文件,带我去看看最新的 MAINTAINERS。」  

从控制台走到社区的讨论区,服务器日志里滚动着新提交的记录。PR 被合并,部分俄罗斯开发者的名字已经从列表中消失。但邮件列表的气氛却不像代码库那样平静。屏幕上显示着数百条评论,有人为这次的清理欢呼:「英明神武!社区必须保持合规性!」 也有人愤怒地质问:「开源的精神在哪里?规则不是自由的枷锁吗?」  

Linus 坐下,打开了另一个终端,发布了一条声明:「自由从来不意味着无序,我们的开源世界,必须符合国际规则。」Greg 低声劝道:「Linus,我们这样做,会不会损害开源的包容性?」Linus 挥了挥手:「包容性不应该是代码的漏洞。」  

这时,一个年轻的开发者发来了私信:「Linus 大神,我们只是写代码的,为什么要参与这些政治性的行为?」Linus 看着屏幕,淡淡地回答:「世界已经变了,开源不再是一个独立于现实的象牙塔。我们得适应环境,保持项目的未来。」

话音刚落,一个通知弹出:「社区新增争议性议题!合规问题在 GitHub 和社交媒体上引发讨论。」Greg 连忙跑进来说:「Linus,社区可能需要一个更详细的解释,我们这样可能影响贡献者的士气。」Linus 转头微微一笑:「士气是靠技术积累的,不是靠无原则的自由换来的。」

正当两人讨论时,一名志愿开发者上传了一段批评的视频,标题写道:「开源的铁幕,Linus 的规则」。视频里提到:「自由的代码已经成为政治的工具,开源再也不是那个无国界的精神家园。」  

Linus 把声明文档推到一边:「既然来了,就回应他们。」

他打开终端,输入了一条命令:「自由的代价是规则的约束。那些不符合规则的维护者,只能被清理。」

然而,代码的光芒并没有让争议平息。争论声继续在邮件列表和社交平台中激荡,越来越多的开发者开始质疑:「这还是开源吗?」  

Linus 站起身,走到窗口前,看着远方闪烁的服务器光点。他轻声说道:「自由从来不是无边无际的。规则让我们前行。」  

办公室的气氛如同初冬的寒风般冷清。社区的战士们,有些继续维护代码,有些选择了离开。新的提交依然在 Git 仓库中滚动,但开源的天空,似乎少了几分以往的明朗。

本文转载自哔哩哔哩动画,版权归原作者所有,作者是哔哩哔哩用户@左-岚点击此处查看原文

你看到的 「绿皮车」 真的是绿皮车吗?教你一招快速分辨普速铁路常见客车型号

「绿皮车」 不是绿皮车!一般来说,严格意义上的绿皮车车上只有风扇没有空调,可以开窗,冬天烧锅炉取暖。现在还在运行的严格意义上的绿皮车型号有 18 型客车和单层 25B 型客车。带空调的 18 型客车和 25B 型客车也可以算真正意义上的绿皮车,因为出厂涂装原色为绿。地方铁路原色涂装非绿,但也属于严格意义上的绿皮车。而 25G、25K、25T 原有涂装的颜色分别为红、蓝、白。自 2014 年起,中国铁路上的客车涂装渐渐地被统一为了墨绿色底色、明黄色条纹的涂装。

即使在铁路客车几乎全部被刷绿的情况下,仍然存在一种通过涂装快速分辨客车型号的方法:车厢涂装黄条两端的平行四边形数。

这个方法可在图片/视频拍摄时抖动较大、拍摄设备问题导致的型号、车次信息模糊不清时快速判断客车型号,从而正确判断其原有涂装 (即原色)。

判断方法:车厢涂装黄色条纹两端平行四边形数,2、3、5 分别对应 25B、25G、25K。25T 涂装黄色部分为简单的黄色长条,无图案。此方法不适用于 18 型、22 型客车。

作为一个铁路迷,笔者一直在向大众进行科普,避免大众对国铁的普速列车产生错误认知,并推广铁路文化。

【翻译】GIMP 教程 - 简单悬浮标志教程

目的

这个教程旨在介绍一些简单的命令和概念,以创建一个看似悬浮在背景之上的标志,如下图所示:
GIMP悬浮标志示例
我们将使用图层蒙版来隔离图像的一部分,例如将标志放置在任意背景上。此外,我们还将添加阴影效果,使对象看起来悬浮在背景之上。

开始

创建一个适合您标志的新图像:

  1. 文件 → 新建…
    这将打开 「创建新图像」 对话框,您可以在其中指定选项。
  2. 您可以将新图像尺寸设置为任何您想要的尺寸,但为了本教程,我将宽度设置为 256 像素,高度设置为 128 像素。我没有指定其他选项。准备好后,点击 「确定」 创建新图像。
  3. 您的画布上将显示新图像。可能是纯白色的 (具体颜色取决于您的 GIMP 设置处理新图像的方式)。

    用黑色填充新图像

  4. 首先,我们需要将新图像填充为黑色。第一步是确保前景色设置正确。点击颜色区域中的前景色,打开 「更改前景色」 对话框 (如果前景色已经是黑色,则无需执行此步骤,但学习一下也无妨)。
  5. 在 「更改前景色」 对话框中,我们将颜色设置为黑色 RGB(0, 0, 0)。
  6. 设置好前景色后,我们可以使用桶填充工具来填充图像:
    工具 → 绘画工具 → 桶填充
  7. 激活桶填充工具后,您的光标应如下图所示。此时,只需点击图像区域即可填充黑色。

    添加一些文本

  8. 现在我们需要在图像中添加文本以创建标志。为了看清我们在做什么,需要将前景色更改为黑色以外的颜色 (黑色文本在黑色背景上不易看清)。
  9. 您可以按照上述步骤再次设置前景色。如果背景色已经是白色,您可以通过点击颜色区域中的箭头来快速交换前景色和背景色。
  10. 设置好前景色后,我们可以使用文本工具添加文本:
    工具 → 文本
  11. 我们现在可以在画布上绘制一个框来容纳文本。您可以在画布上点击以定义文本框的左上角,然后拖动鼠标到右下角。此时不需要精确,因为之后可以调整边界。
  12. 定义文本框后,我们可以输入文本。在我的例子中,我将使用我的名字。
  13. 文本工具选项中,如果文本太小,您可以更改大小字段。例如,我将大小设置为 100 像素。
  14. 您可能不喜欢默认的字体。在这种情况下,我们可以通过点击图标更改字体,打开下拉菜单浏览 GIMP 系统中所有可用的字体。在我的例子中,我将字体更改为 「Tw Cen MT Bold」。
  15. 一旦我们得到满意的文本,我们可以创建一个包含所有可见图层的新图层 (文本图层和黑色背景图层):
    图层 → 从可见图层新建
  16. 此时,我们的图层调色板中将有三个图层:背景、文本 (「PAT」) 和我们新的图层 「Visible」。

    添加颜色

  17. 现在我们将在图像中添加一些颜色以增加趣味。我们首先在图像中添加一个新图层:
    图层 → 新图层…
  18. 使用等离子体插件填充新图层:
    滤镜 → 渲染 → 噪声 → 等离子体…
  19. 我保留了默认值并点击 「确定」,但您可以随意调整设置。现在我们的图层看起来像这样:
    GIMP等离子体图层

    凹凸贴图

  20. 现在我们将使用之前创建的文本在等离子体图层上生成一个假的 3D 形状。这个过程称为 「凹凸贴图」。我不会详细介绍这是如何工作的,因为最好是通过观察来理解。
  21. 打开凹凸贴图对话框:
    滤镜 → 地图 → 凹凸贴图…
  22. 凹凸贴图插件提供了一个很好的预览,显示插件的效果。
  23. 为了正确使用此插件,需要正确指向凹凸贴图的来源。在我们的例子中,来源是我们之前创建的文本图层 (图层名为 「Visible」)。因此,我们将点击凹凸贴图的微调器,并从列表中选择我们的 「Visible」 图层。
  24. 您可以随意调整选项。我唯一更改的是深度,以增加深度的错觉 (我在示例中将其设置为 6)。一旦看起来不错,点击 「确定」 按钮应用它。

    应用图层蒙版

  25. 现在我们将使用图层蒙版来隔离我们凹凸贴图的文本。首先我们需要向等离子体图层添加图层蒙版
    **图层 → 蒙版 → 添加图层蒙版…
  26. 向等离子体图层添加图层蒙版后,您的图层调色板应如下图所示:
    GIMP图层调色板带蒙版
  27. 记住,您可以通过查看哪个图层 (或蒙版) 周围有白色边框来判断哪个图层当前处于活动状态。上图中显示等离子体图层的蒙版处于活动状态 (白色边框围绕白色蒙版,因此很难注意到,但没有其他图层/蒙版周围有白色边框)。
  28. 我们现在要复制 「Visible」 图层,并将其粘贴到等离子体图层的蒙版中。首先,在图层调色板中左键单击 「Visible」 图层以激活它:
    GIMP图层调色板复制
  29. 激活图层后,我们现在复制它:
    编辑 → 复制
  30. 然后我们通过左键单击蒙版来再次激活等离子体图层的蒙版:
    GIMP凹凸贴图图层蒙版
  31. 激活蒙版后,我们现在将 「Visible」 图层粘贴回图像中:
    编辑 → 粘贴
  32. 这将在您的图像中插入一个浮动选择 (粘贴的图层)
    GIMP图层粘贴
  33. 为了将这个浮动选择放入蒙版中,我们需要锚定它:
    图层 → 锚定图层
  34. 这将锚定选择到蒙版上。我们的图像和图层现在应如下图所示:
    GIMP图层蒙版示例
  35. 我们现在可能想要添加一个不同颜色的背景,以帮助我们微调到目前为止的结果。按照之前创建等离子体图层的方法添加一个新图层,并将其放在等离子体图层下方 (您可以通过点击并拖动图层来更改图层调色板中的顺序)。
  36. 选择一个有趣的背景颜色,并用该颜色填充新图层。现在您的图层应如下图所示:
    GIMP图层蒙版背景

    调整色阶

  37. 我想要清理一下文本边缘,以得到我们目前的结果。目前,等离子体图层使用的蒙版是我们高斯模糊文本的副本。为了使其更加清晰,我们将调整该图层的蒙版色阶。
  38. 确保图层蒙版处于活动状态,然后通过菜单打开调整颜色色阶对话框:
    颜色 → 色阶…
  39. 我们现在想要稍微锐化蒙版的边缘:
    GIMP调整颜色色阶对话框
  40. 我们想要调整伽玛白点滑块。我开始时将白点滑块向下拖动以增加等离子体图层的突出度,然后推动伽玛以上调它。(如果您在跟随操作,您也可以直接复制我上面的值)。
  41. 目标是增加文本边缘的定义,而不会过于尖锐 (锯齿状)。玩转设置以查看它们如何影响您的结果。这是应用上述色阶后我的等离子体图层的样子:
    GIMP色阶应用后

    创建阴影

  42. 现在我们可能想要更精致一些,为标志添加一个阴影效果,使其看起来像是在背景上方浮动。我们已经有了解决方案所需的一切,只需移动一些东西即可。
  43. 复制您之前创建的带有原始模糊文本的 「Visible」 图层。选择图层以激活它,然后执行:
    图层 → 复制图层
  44. 或者右键单击 「Visible」 图层,并选择 「复制图层」:
    GIMP上下文复制图层
  45. 这将创建一个名为 「Visible copy」 的新图层。将其移动到背景颜色图层之上,紧挨着等离子体图层:
    GIMP阴影图层
  46. 这个图层将成为我们的阴影,但在修改之前,我们需要先做一些事情。首先,我们将图层颜色反转,使文本变为黑色:
    颜色 → 反转
  47. 然后我们需要更改图层,使所有白色区域透明。这可以在菜单中找到:
    图层 → 透明度 → 颜色到透明度…
  48. 层现在应该有黑色文本和透明背景。我们现在只是想要通过向下和向右稍微偏移来模拟高度。使用移动工具
    工具 → 变换工具 → 移动
  49. 如果我们按住 Shift 并在画布上点击,我们将限制移动工具仅修改活动图层 (我们的阴影图层)。将图层向右和向下拖动一点以模拟阴影。我最终得到的结果如下:
    ![GIMP 示例阴影]()
  50. 为了使阴影效果更佳,我们可以向阴影图层添加高斯模糊以使其更散开一些。我们还可以调整阴影图层的不透明度,使其略微透过背景。
  51. 在我的例子中,我应用了高斯模糊,半径为 10 像素,并将阴影图层的不透明度调整为 80%。
  52. 这是我的图像的最终状态:
    GIMP示例阴影高斯模糊

    结束

    这是我完成所有步骤后的最终悬浮标志图像:
    GIMP示例悬浮标志最终
    这个教程的有趣之处在于,我们可以在图像背后使用任何背景,而效果和阴影仍然存在:
    GIMP示例悬浮标志正弦波背景
    或者我们可以将其保存为 PNG 文件,没有任何背景,从而允许任何背景透出:
    GIMP示例悬浮标志无背景透明
    就这样!去创造您自己的悬浮标志吧。

    更正

    对于有兴趣的人,我提供了用于创建这个教程的.xcf.bz2 文件,您可以通过以下链接下载:Floating-Logo-Tut-patdavid.xcf.bz2 (96KB)

    Creative Commons By Share Alike

     

GIMP Tutorial - GIMP Quickies (text & images) by Pat David
GIMP 教程 - GIMP 快速操作 (文本 & 图片) 由 谢大大 使用 ChatGLM 翻译
原文与译文根据 Creative Commons Attribution-ShareAlike 3.0 Unported License 发布。

一种利用 kexec 从 Live 引导安装完成的 GNU/Linux 系统的想法

目前很多 GNU/Linux 发行版 (以下简称 「Linux 系统」) 都提供 Live 环境,供用户测试,基本等同于一个完整的操作系统,可以安装各种软件,包括 kexec 工具 (Debian 系为 kexec-utils 软件包)。而 kexec 允许计算机从当前运行的 Linux 内核直接跳转到新的内核,跳过引导阶段以减少重启时间。一次经历,使我产生了一个大胆的想法:通过 kexec 从 Live 系统直接启动已安装的系统,减少重启时间。


我的经历


最近,我在给我的服务器安装 Proxmox VE,但发现安装盘不能正常使用,于是我启动到了另外一个 Live 系统,打算重新格式化 U 盘刷安装镜像。安装盘做好后我突然想起来 kexec 可以直接启动另一个内核,于是我先安装了 kexec-utils,再打开安装盘,找到安装盘的内核、initrd 和 grub 配置文件,然后执行了


kexec -l /media/PVE/boot/vmlinuz --append=< 从 grub 配置文件复制的参数> --initrd=/media/PVE/boot/initrd.img

接下来,kexec -e,顺利进入 PVE 安装程序,跳过了服务器漫长的开机自检。


想法


既然可以从 Live 环境进入另一个安装程序,那么应该可以进入已安装的系统,毕竟都是 Linux 系统。我觉得这样可以节省不少时间。


我的思路如下:



  • Live 环境下的内核启用 kexec 支持,用户空间预置 kexec 工具;

  • 安装程序在生成 grub 配置文件的同时生成对应的 kexec 命令;

  • 安装完成时,添加一个 「快速进入新系统」 的按钮,点击后可直接执行 kexec -e

  • 跳过漫长的开机自检,直接进入新系统!


(后面不知道怎么写了,到此为止吧。)