如何使用多种编程语言而又不失理智
多语言编程环境是一把双刃剑,既带来好处,也带来可能威胁组织的复杂性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/185029g995fp7n999tzzyy.jpg">Media</a>如今,随着各种不同的编程语言的出现,许多组织已经变成了数字多语种组织digital polyglots。开源打开了一个语言和技术堆栈的世界,开发人员可以使用这些语言和技术堆栈来完成他们的任务,包括开发、支持过时的和现代的软件应用。与那些只说母语的人相比,通晓多种语言的人可以与数百万人交谈。在软件环境中,开发人员不会引入新的语言来达到特定的目的,也不会更好地交流。一些语言对于一项任务来说很棒,但是对于另一项任务来说却不行,因此使用多种编程语言可以让开发人员使用合适的工具来完成这项任务。这样,所有的开发都是多语种的;这只是野兽的本性。多语种环境的创建通常是渐进的和情景化的。例如,当一家企业收购一家公司时,它就承担了该公司的技术堆栈 —— 包括其编程语言。或者,随着技术领导的改变,新的领导者可能会将不同的技术纳入其中。技术也有过时的时候,随着时间的推移,增加了组织必须维护的编程语言和技术的数量。多语言环境对企业来说是一把双刃剑,既带来好处,也带来复杂性和挑战。最终,如果这种情况得不到控制,多语言将会扼杀…
多语言编程环境是一把双刃剑,既带来好处,也带来可能威胁组织的复杂性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/185029g995fp7n999tzzyy.jpg">Media</a>如今,随着各种不同的编程语言的出现,许多组织已经变成了数字多语种组织digital polyglots。开源打开了一个语言和技术堆栈的世界,开发人员可以使用这些语言和技术堆栈来完成他们的任务,包括开发、支持过时的和现代的软件应用。与那些只说母语的人相比,通晓多种语言的人可以与数百万人交谈。在软件环境中,开发人员不会引入新的语言来达到特定的目的,也不会更好地交流。一些语言对于一项任务来说很棒,但是对于另一项任务来说却不行,因此使用多种编程语言可以让开发人员使用合适的工具来完成这项任务。这样,所有的开发都是多语种的;这只是野兽的本性。多语种环境的创建通常是渐进的和情景化的。例如,当一家企业收购一家公司时,它就承担了该公司的技术堆栈 —— 包括其编程语言。或者,随着技术领导的改变,新的领导者可能会将不同的技术纳入其中。技术也有过时的时候,随着时间的推移,增加了组织必须维护的编程语言和技术的数量。多语言环境对企业来说是一把双刃剑,既带来好处,也带来复杂性和挑战。最终,如果这种情况得不到控制,多语言将会扼杀…
构建满足用户需求的云环境的五个步骤
在投入时间和资金开发你的云环境之前,确认什么是你的用户所需要的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/211650z744rkeq1erd8qep.png">Media</a>无论你如何定义,云就是你的用户展现其在组织中的价值的另一个工具。当谈论新的范例或者技术(云是两者兼有)的时候很容易被它的新特性所分心。由一系列无止境的问题引发的对话能够很快的被发展为功能愿景清单,所有下面的这些都是你可能已经考虑到的:是公有云、私有云还是混合云?会使用虚拟机还是容器,或者是两者?会提供自助服务吗?从开发到生产是完全自动的,还是它将需要手动操作?我们能以多块的速度做到?关于某某工具?这样的清单还可以列举很多。当开始 IT 现代化,或者数字转型,无论你是如何称呼的,通常方法是开始回答更高管理层的一些高层次问题,这种方法的结果是可以预想到的:失败。经过大范围的调研并且花费了数月的时间(如果不是几年的话)部署了这个最炫的新技术,而这个新的云技术却从未被使用过,而且陷入了荒废,直到它最终被丢弃或者遗忘在数据中心的一角和预算之中。这是因为无论你交付的是什么工具,都不是用户所想要或者需要的。更加糟糕的是,它可能是一个单一的工具,而用户真正需要的是一系列工具 —— 能够随着时ſ…
在投入时间和资金开发你的云环境之前,确认什么是你的用户所需要的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/211650z744rkeq1erd8qep.png">Media</a>无论你如何定义,云就是你的用户展现其在组织中的价值的另一个工具。当谈论新的范例或者技术(云是两者兼有)的时候很容易被它的新特性所分心。由一系列无止境的问题引发的对话能够很快的被发展为功能愿景清单,所有下面的这些都是你可能已经考虑到的:是公有云、私有云还是混合云?会使用虚拟机还是容器,或者是两者?会提供自助服务吗?从开发到生产是完全自动的,还是它将需要手动操作?我们能以多块的速度做到?关于某某工具?这样的清单还可以列举很多。当开始 IT 现代化,或者数字转型,无论你是如何称呼的,通常方法是开始回答更高管理层的一些高层次问题,这种方法的结果是可以预想到的:失败。经过大范围的调研并且花费了数月的时间(如果不是几年的话)部署了这个最炫的新技术,而这个新的云技术却从未被使用过,而且陷入了荒废,直到它最终被丢弃或者遗忘在数据中心的一角和预算之中。这是因为无论你交付的是什么工具,都不是用户所想要或者需要的。更加糟糕的是,它可能是一个单一的工具,而用户真正需要的是一系列工具 —— 能够随着时ſ…
Android 9.0 概览
第九代 Android 带来了更令人满意的用户体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/225123t86656zhbvbk6be6.jpg">Media</a>我们来谈论一下 Android。尽管 Android 只是一款内核经过修改的 Linux,但经过多年的发展,Android 开发者们(或许包括正在阅读这篇文章的你)已经为这个平台的演变做出了很多值得称道的贡献。当然,可能很多人都已经知道,但我们还是要说,Android 并不完全开源,当你使用 Google 服务的时候,就已经接触到闭源的部分了。Google Play 商店就是其中之一,它不是一个开放的服务。不过无论 Android 开源与否,这就是一个美味、营养、高效、省电的馅饼(LCTT 译注:Android 9.0 代号为 Pie)。我在我的 Essential PH-1 手机上运行了 Android 9.0(我真的很喜欢这款手机,也知道这家公司的境况并不好)。在我自己体验了一段时间之后,我认为它是会被大众接受的。那么 Android 9.0 到底好在哪里呢?下面我们就来深入探讨一下。我们的出发点是用户的角度,而不是开发人员的角度,因此我也不会深入探讨太底层的方面。手势操作Android 系统在新的手势操作方面投入了很多,但实际体验却不算太好。这个功能确实引起了我的兴趣。在这个功能发布之初,大家都对它了解甚少,纷纷猜测它会不会让用户使用多点触控的手势来浏览 Android 界面?又或者会不会是一个完全颠覆人们认知的东西?实际上,手势操作比大多数人设想的要更加微妙而ļ…
第九代 Android 带来了更令人满意的用户体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/29/225123t86656zhbvbk6be6.jpg">Media</a>我们来谈论一下 Android。尽管 Android 只是一款内核经过修改的 Linux,但经过多年的发展,Android 开发者们(或许包括正在阅读这篇文章的你)已经为这个平台的演变做出了很多值得称道的贡献。当然,可能很多人都已经知道,但我们还是要说,Android 并不完全开源,当你使用 Google 服务的时候,就已经接触到闭源的部分了。Google Play 商店就是其中之一,它不是一个开放的服务。不过无论 Android 开源与否,这就是一个美味、营养、高效、省电的馅饼(LCTT 译注:Android 9.0 代号为 Pie)。我在我的 Essential PH-1 手机上运行了 Android 9.0(我真的很喜欢这款手机,也知道这家公司的境况并不好)。在我自己体验了一段时间之后,我认为它是会被大众接受的。那么 Android 9.0 到底好在哪里呢?下面我们就来深入探讨一下。我们的出发点是用户的角度,而不是开发人员的角度,因此我也不会深入探讨太底层的方面。手势操作Android 系统在新的手势操作方面投入了很多,但实际体验却不算太好。这个功能确实引起了我的兴趣。在这个功能发布之初,大家都对它了解甚少,纷纷猜测它会不会让用户使用多点触控的手势来浏览 Android 界面?又或者会不会是一个完全颠覆人们认知的东西?实际上,手势操作比大多数人设想的要更加微妙而ļ…
如何从 Windows 7、8 和 10 创建可启动的 Linux USB 盘?
如果你倾向于从 Windows 系统迁移到 Linux 系统或计划在备用机上安装 Linux 系统,那么你须为此创建可启动的 USB 盘。Media
via https://linux.cn/article-10294-1.html
如果你倾向于从 Windows 系统迁移到 Linux 系统或计划在备用机上安装 Linux 系统,那么你须为此创建可启动的 USB 盘。Media
via https://linux.cn/article-10294-1.html
如何从 Windows 7、8 和 10 创建可启动的 Linux USB 盘?
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/094411g182yref81pix2f5.jpg">Media</a>如果你想了解 Linux,首先要做的是在你的系统上安装 Linux 系统。它可以通过两种方式实现,使用 Virtualbox、VMWare 等虚拟化应用,或者在你的系统上安装 Linux。如果你倾向于从 Windows 系统迁移到 Linux 系统或计划在备用机上安装 Linux 系统,那么你须为此创建可启动的 USB 盘。我们已经写过许多<a href="https://www.2daygeek.com/category/bootable-usb/">在 Linux 上创建可启动 USB 盘</a> 的文章,如 <a href="https://www.2daygeek.com/bootiso-a-simple-bash-script-to-securely-create-a-bootable-usb-device-in-linux-from-iso-file/">BootISO</a>、<a href="https://www.2daygeek.com/etcher-easy-way-to-create-a-bootable-usb-drive-sd-card-from-an-iso-image-on-linux/">Etcher</a> 和 <a href="https://www.2daygeek.com/create-a-bootable-usb-drive-from-an-iso-image-using-dd-command-on-linux/">dd 命令</a>,但我们从来没有机会写一篇文章关于在 Windows 中创建 Linux 可启动 USB 盘的文章。不管怎样,我们今天有机会做这件事了。在本文中,我们将向你展示如何从 Windows 10 创建可启动的 Ubuntu USB 盘。这些步骤也适用于其他 Linux,但你必须从下拉列表中选择相应的操作系统而不是 Ubuntu。步骤 1:下载 Ubuntu ISO访问 <a href="http://releases.ubuntu.com/">Ubuntu 发布</a> 页面并下载最新版本。我想建议你下载最新的 LTS 版而不是普通的发布。通过 MD5 或 SHA256 验证校验和,确保下载了正确的 ISO。输出值应与 Ubuntu 版本页面值匹配。步骤 2:下载 Universal USB Installer有许多程序可供使用,但我的首选是 <a href="https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/">Universal USB Installer</a>,它使用起来非常简单。只需访问 Universal USB Installer 页面并下载该程序即可。步骤3:创建可启动的 Ubuntu ISO这个程序在使用上不复杂&#…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/094411g182yref81pix2f5.jpg">Media</a>如果你想了解 Linux,首先要做的是在你的系统上安装 Linux 系统。它可以通过两种方式实现,使用 Virtualbox、VMWare 等虚拟化应用,或者在你的系统上安装 Linux。如果你倾向于从 Windows 系统迁移到 Linux 系统或计划在备用机上安装 Linux 系统,那么你须为此创建可启动的 USB 盘。我们已经写过许多<a href="https://www.2daygeek.com/category/bootable-usb/">在 Linux 上创建可启动 USB 盘</a> 的文章,如 <a href="https://www.2daygeek.com/bootiso-a-simple-bash-script-to-securely-create-a-bootable-usb-device-in-linux-from-iso-file/">BootISO</a>、<a href="https://www.2daygeek.com/etcher-easy-way-to-create-a-bootable-usb-drive-sd-card-from-an-iso-image-on-linux/">Etcher</a> 和 <a href="https://www.2daygeek.com/create-a-bootable-usb-drive-from-an-iso-image-using-dd-command-on-linux/">dd 命令</a>,但我们从来没有机会写一篇文章关于在 Windows 中创建 Linux 可启动 USB 盘的文章。不管怎样,我们今天有机会做这件事了。在本文中,我们将向你展示如何从 Windows 10 创建可启动的 Ubuntu USB 盘。这些步骤也适用于其他 Linux,但你必须从下拉列表中选择相应的操作系统而不是 Ubuntu。步骤 1:下载 Ubuntu ISO访问 <a href="http://releases.ubuntu.com/">Ubuntu 发布</a> 页面并下载最新版本。我想建议你下载最新的 LTS 版而不是普通的发布。通过 MD5 或 SHA256 验证校验和,确保下载了正确的 ISO。输出值应与 Ubuntu 版本页面值匹配。步骤 2:下载 Universal USB Installer有许多程序可供使用,但我的首选是 <a href="https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/">Universal USB Installer</a>,它使用起来非常简单。只需访问 Universal USB Installer 页面并下载该程序即可。步骤3:创建可启动的 Ubuntu ISO这个程序在使用上不复杂&#…
Python Web 应用程序 Django 框架简介
在这个比较 Python 框架的最后一篇中,让我们看看 Django。Media
via https://linux.cn/article-10295-1.html
在这个比较 Python 框架的最后一篇中,让我们看看 Django。Media
via https://linux.cn/article-10295-1.html
Python Web 应用程序 Django 框架简介
在这个比较 Python 框架的最后一篇中,让我们看看 Django。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/190045dzrvcvspc0gzvxch.png">Media</a>在本系列(由四部分组成)的前三篇文章中,我们讨论了 <a href="https://opensource.com/article/18/5/pyramid-framework">Pyramid</a>、<a href="https://opensource.com/article/18/4/flask">Flask</a> 和 <a href="https://opensource.com/article/18/6/tornado-framework">Tornado</a> 这 3 个 Web 框架。我们已经构建了三次相同的应用程序,最终我们遇到了 <a href="https://www.djangoproject.com">Django</a>。总的来说,Django 是目前 Python 开发人员使用的主要 Web 框架,并且原因显而易见。它擅长隐藏大量的配置逻辑,让你专注于能够快速构建大型应用程序。也就是说,当涉及到小型项目时,比如我们的待办事项列表应用程序,Django 可能有点像用消防水管来进行水枪大战。让我们来看看它们是如何结合在一起的。关于 DjangoDjango 将自己定位为“一个鼓励快速开发和整洁、实用的设计的高级 Python Web 框架。它由经验丰富的开发人员构建,解决了 Web 开发的很多麻烦,因此你可以专注于编写应用程序而无需重新发明轮子”。而且它确实做到了!这个庞大的 Web 框架附带了非常多的工具,以至于在开发过程中,如何将所有内容组合在一起协同工作可能是个谜。除了框架本身很大,Django 社区也是非常庞大的。事实上,它非常庞大和活跃,以至于有<a href="https://djangopackages.org/">一个网站</a>专门用于为人们收集第三方包,这些第三方包可集成进 Django 来做一大堆事情。包括从身份验证和授权到…
在这个比较 Python 框架的最后一篇中,让我们看看 Django。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/190045dzrvcvspc0gzvxch.png">Media</a>在本系列(由四部分组成)的前三篇文章中,我们讨论了 <a href="https://opensource.com/article/18/5/pyramid-framework">Pyramid</a>、<a href="https://opensource.com/article/18/4/flask">Flask</a> 和 <a href="https://opensource.com/article/18/6/tornado-framework">Tornado</a> 这 3 个 Web 框架。我们已经构建了三次相同的应用程序,最终我们遇到了 <a href="https://www.djangoproject.com">Django</a>。总的来说,Django 是目前 Python 开发人员使用的主要 Web 框架,并且原因显而易见。它擅长隐藏大量的配置逻辑,让你专注于能够快速构建大型应用程序。也就是说,当涉及到小型项目时,比如我们的待办事项列表应用程序,Django 可能有点像用消防水管来进行水枪大战。让我们来看看它们是如何结合在一起的。关于 DjangoDjango 将自己定位为“一个鼓励快速开发和整洁、实用的设计的高级 Python Web 框架。它由经验丰富的开发人员构建,解决了 Web 开发的很多麻烦,因此你可以专注于编写应用程序而无需重新发明轮子”。而且它确实做到了!这个庞大的 Web 框架附带了非常多的工具,以至于在开发过程中,如何将所有内容组合在一起协同工作可能是个谜。除了框架本身很大,Django 社区也是非常庞大的。事实上,它非常庞大和活跃,以至于有<a href="https://djangopackages.org/">一个网站</a>专门用于为人们收集第三方包,这些第三方包可集成进 Django 来做一大堆事情。包括从身份验证和授权到…
Akash Angle:你如何使用 Fedora?
这是 Fedora Magazine 上 Fedora 系列的一部分。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。Media
via https://linux.cn/article-10296-1.html
这是 Fedora Magazine 上 Fedora 系列的一部分。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。Media
via https://linux.cn/article-10296-1.html
Akash Angle:你如何使用 Fedora?
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105virxu2x6xa6iseur.jpg">Media</a>我们最近采访了Akash Angle 来了解他如何使用 Fedora。这是 Fedora Magazine 上 Fedora <a href="https://fedoramagazine.org/tag/how-do-you-fedora/">系列的一部分</a>。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。请通过<a href="https://fedoramagazine.org/submit-an-idea-or-tip/">反馈表单</a>与我们联系表达你对成为受访者的兴趣。Akash Angle 是谁?Akash 是一位不久前抛弃 Windows 的 Linux 用户。作为一名过去 9 年的狂热 Fedora 用户,他已经尝试了几乎所有的 Fedora 定制版和桌面环境来完成他的日常任务。是一位校友给他介绍了 Fedora。使用什么硬件?Akash 在工作时使用联想 B490。它配备了英特尔酷睿 i3-3310 处理器和 240GB 金士顿 SSD。Akash 说:“这台笔记本电脑非常适合一些日常任务,如上网、写博客,以及一些照片编辑和视频编辑。虽然不是专业的笔记本电脑,而且规格并不是那么高端,但它完美地完成了工作。“他使用一个入门级的罗技无线鼠标,并希望能有一个机械键盘。他的 PC 是一台定制桌面电脑,拥有最新的第 7 代 Intel i5 7400 处理器和 8GB Corsair Vengeance 内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105i6mi3q6h333t4csz.png">Media</a>使用什么软件?Akash 是 GNOME 3 桌面环境的粉丝。他喜欢该操作系统为完成基本任务而加入的华丽功能。出于实际原因,他更喜欢全新安来升级到最新 Fedora 版本。他认为 Fedora 29 可以说是最好的工作站。Akash 说这种说法得到了各种科技传播网站和开源新闻网站评论的支持。为了播放视频,ߢ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105virxu2x6xa6iseur.jpg">Media</a>我们最近采访了Akash Angle 来了解他如何使用 Fedora。这是 Fedora Magazine 上 Fedora <a href="https://fedoramagazine.org/tag/how-do-you-fedora/">系列的一部分</a>。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。请通过<a href="https://fedoramagazine.org/submit-an-idea-or-tip/">反馈表单</a>与我们联系表达你对成为受访者的兴趣。Akash Angle 是谁?Akash 是一位不久前抛弃 Windows 的 Linux 用户。作为一名过去 9 年的狂热 Fedora 用户,他已经尝试了几乎所有的 Fedora 定制版和桌面环境来完成他的日常任务。是一位校友给他介绍了 Fedora。使用什么硬件?Akash 在工作时使用联想 B490。它配备了英特尔酷睿 i3-3310 处理器和 240GB 金士顿 SSD。Akash 说:“这台笔记本电脑非常适合一些日常任务,如上网、写博客,以及一些照片编辑和视频编辑。虽然不是专业的笔记本电脑,而且规格并不是那么高端,但它完美地完成了工作。“他使用一个入门级的罗技无线鼠标,并希望能有一个机械键盘。他的 PC 是一台定制桌面电脑,拥有最新的第 7 代 Intel i5 7400 处理器和 8GB Corsair Vengeance 内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105i6mi3q6h333t4csz.png">Media</a>使用什么软件?Akash 是 GNOME 3 桌面环境的粉丝。他喜欢该操作系统为完成基本任务而加入的华丽功能。出于实际原因,他更喜欢全新安来升级到最新 Fedora 版本。他认为 Fedora 29 可以说是最好的工作站。Akash 说这种说法得到了各种科技传播网站和开源新闻网站评论的支持。为了播放视频,ߢ…
Emacs 系列(一):抛掉一切,投入 Emacs 和 org 模式的怀抱
我必须承认,在使用了几十年的 vim 后, 我被 Emacs 吸引了。Media
via https://linux.cn/article-10297-1.html
我必须承认,在使用了几十年的 vim 后, 我被 Emacs 吸引了。Media
via https://linux.cn/article-10297-1.html
Emacs 系列(一):抛掉一切,投入 Emacs 和 org 模式的怀抱
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/231923lumzvk4pm4zoguzw.png">Media</a>我必须承认,在使用了几十年的 vim 后, 我被 <a href="https://www.gnu.org/software/emacs/">Emacs</a> 吸引了。长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 <a href="https://gettingthingsdone.com/">GTD</a> 和 <a href="https://zenhabits.net/zen-to-done-the-simple-productivity-e-book/">ZTD</a> 之类的方法,但是像邮件或是大型文件这样的事务真的很难来组织安排。我一直在用 Asana 处理任务,用 Evernote 做笔记,用 Thunderbird 处理邮件,把 ikiwiki 和其他的一些项目组合作为个人知识库,而且还在电脑的归档了各种文件。当我的新工作需要将 Slack 也加入进来时,我终于忍无可忍了。许多 TODO 管理工具与电子邮件集成的很差。当你想做“提醒我在一周内回复这个邮件”之类的事时,很多时候是不可能的,因为这个工具不能以一种能够轻松回复的方式存储邮件。而这个问题在 Slack 上更为严重。就在那时,我偶然发现了 <a href="https://www.youtube.com/watch?v=oJTwQvgfgMM">Carsten Dominik 在 Google Talk 上关于 org 模式的讲话</a>。Carsten 是 org 模式的作者,即便是这个讲话已经有 10 年了,但它仍然很具有参考价值。我之前有用过 <a href="https://orgmode.org/">org 模式</a>,但是每次我都没有真正的深入研究它, 因为我当时的反应是“一个大纲编辑器?但我需要的是待办事项列表”。我就这么错过了它。但实际上 org 模式就是我所需要的。什么是 Emacs?什么是 org 模式?Emacs 最初是一个文本编辑器,现在依然是一个文本&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/231923lumzvk4pm4zoguzw.png">Media</a>我必须承认,在使用了几十年的 vim 后, 我被 <a href="https://www.gnu.org/software/emacs/">Emacs</a> 吸引了。长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 <a href="https://gettingthingsdone.com/">GTD</a> 和 <a href="https://zenhabits.net/zen-to-done-the-simple-productivity-e-book/">ZTD</a> 之类的方法,但是像邮件或是大型文件这样的事务真的很难来组织安排。我一直在用 Asana 处理任务,用 Evernote 做笔记,用 Thunderbird 处理邮件,把 ikiwiki 和其他的一些项目组合作为个人知识库,而且还在电脑的归档了各种文件。当我的新工作需要将 Slack 也加入进来时,我终于忍无可忍了。许多 TODO 管理工具与电子邮件集成的很差。当你想做“提醒我在一周内回复这个邮件”之类的事时,很多时候是不可能的,因为这个工具不能以一种能够轻松回复的方式存储邮件。而这个问题在 Slack 上更为严重。就在那时,我偶然发现了 <a href="https://www.youtube.com/watch?v=oJTwQvgfgMM">Carsten Dominik 在 Google Talk 上关于 org 模式的讲话</a>。Carsten 是 org 模式的作者,即便是这个讲话已经有 10 年了,但它仍然很具有参考价值。我之前有用过 <a href="https://orgmode.org/">org 模式</a>,但是每次我都没有真正的深入研究它, 因为我当时的反应是“一个大纲编辑器?但我需要的是待办事项列表”。我就这么错过了它。但实际上 org 模式就是我所需要的。什么是 Emacs?什么是 org 模式?Emacs 最初是一个文本编辑器,现在依然是一个文本&…
如何在 SUSE 12 Linux 中进入单用户模式?
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。Media
via https://linux.cn/article-10298-1.html
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。Media
via https://linux.cn/article-10298-1.html
如何在 SUSE 12 Linux 中进入单用户模式?
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233149a2mpf33zhmclgzmj.png">How to enter single user mode in SUSE 12 Linux</a>在这篇简短的文章中,我们将向你介绍在 SUSE 12 Linux 中进入单用户模式的步骤。在排除系统主要问题时,单用户模式始终是首选。单用户模式禁用网络并且没有其他用户登录,你可以排除许多多用户系统的情况,可以帮助你快速排除故障。单用户模式最常见的一种用处是<a href="https://kerneltalks.com/linux/recover-forgotten-root-password-rhel/">重置忘记的 root 密码</a>。1、暂停启动过程首先,你需要拥有机器的控制台才能进入单用户模式。如果它是虚拟机那就是虚拟机控制台,如果它是物理机那么你需要连接它的 iLO/串口控制台。重启系统并在 GRUB 启动菜单中按任意键停止内核的自动启动。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233154hsdd90wk34kfx3kb.png">Kernel selection menu at boot in SUSE 12</a>2、编辑内核的启动选项进入上面的页面后,在所选内核(通常是你首选的最新内核)上按 e 更新其启动选项。你会看到下面的页面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233156up79zzs77r9a9ddj.png">grub2 edits in SUSE 12</a>现在,向下滚动到内核引导行,并在行尾添加 init=/bin/bash,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233157xmowuwj43ujouadw.png">Edit to boot in single user shell</a>3、引导编辑后的内核现在按 Ctrl-x 或 F10 来启动这个编辑过的内核。内核将以单用户模式启动,你将看到 # 号提示符,即有服务器的 root 访问权限。此时,根文件系统以只读模式挂载Ӎ…
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233149a2mpf33zhmclgzmj.png">How to enter single user mode in SUSE 12 Linux</a>在这篇简短的文章中,我们将向你介绍在 SUSE 12 Linux 中进入单用户模式的步骤。在排除系统主要问题时,单用户模式始终是首选。单用户模式禁用网络并且没有其他用户登录,你可以排除许多多用户系统的情况,可以帮助你快速排除故障。单用户模式最常见的一种用处是<a href="https://kerneltalks.com/linux/recover-forgotten-root-password-rhel/">重置忘记的 root 密码</a>。1、暂停启动过程首先,你需要拥有机器的控制台才能进入单用户模式。如果它是虚拟机那就是虚拟机控制台,如果它是物理机那么你需要连接它的 iLO/串口控制台。重启系统并在 GRUB 启动菜单中按任意键停止内核的自动启动。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233154hsdd90wk34kfx3kb.png">Kernel selection menu at boot in SUSE 12</a>2、编辑内核的启动选项进入上面的页面后,在所选内核(通常是你首选的最新内核)上按 e 更新其启动选项。你会看到下面的页面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233156up79zzs77r9a9ddj.png">grub2 edits in SUSE 12</a>现在,向下滚动到内核引导行,并在行尾添加 init=/bin/bash,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233157xmowuwj43ujouadw.png">Edit to boot in single user shell</a>3、引导编辑后的内核现在按 Ctrl-x 或 F10 来启动这个编辑过的内核。内核将以单用户模式启动,你将看到 # 号提示符,即有服务器的 root 访问权限。此时,根文件系统以只读模式挂载Ӎ…
流量引导:网络世界的负载均衡解密
均衡网络流量的常用技术,它们的优势和利弊权衡。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/211656z8svszsmsxmbnmeg.jpg">Media</a>大型的多站点互联网系统,包括内容分发网络(CDN)和云服务提供商,用一些方法来均衡来访的流量。这篇文章我们讲一下常见的流量均衡设计,包括它们的技术手段和利弊权衡。早期的云计算服务提供商,可以提供单一一台客户 Web 服务器,分配一个 IP 地址,然后用一个便于人读的域名配置一个 DNS 记录指向这个 IP 地址,再将 IP 地址通过边界网关协议(BGP)宣告出去,BGP 是在不同网络之间交换路由信息的标准方式。这本身并不是负载均衡,但是能在冗余的多条网络路径中进行流量分发,而且可以利用网络技术让流量绕过不可用的网络,从而提高了可用性(也引起了<a href="https://www.noction.com/blog/bgp-and-asymmetric-routing">非对称路由</a>的现象)。简单的 DNS 负载均衡随着来自客户的流量变大,老板希望服务是高可用的。你上线第二台 web 服务器,它有自己独立的公网 IP 地址,然后你更新了 DNS 记录,把用户流量引到两台服务器上(内心希望它们均衡地提供服务)。在其中一台服务器出故障之前,这样做一直是没有问题的。假设你能很快地监测到故障,可以更新一下 DNS 配置(手动更新或者通过软件)删除解析到故障机器的记录。不幸的是,因为 DNS 记录会被缓存,在客&#…
均衡网络流量的常用技术,它们的优势和利弊权衡。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/211656z8svszsmsxmbnmeg.jpg">Media</a>大型的多站点互联网系统,包括内容分发网络(CDN)和云服务提供商,用一些方法来均衡来访的流量。这篇文章我们讲一下常见的流量均衡设计,包括它们的技术手段和利弊权衡。早期的云计算服务提供商,可以提供单一一台客户 Web 服务器,分配一个 IP 地址,然后用一个便于人读的域名配置一个 DNS 记录指向这个 IP 地址,再将 IP 地址通过边界网关协议(BGP)宣告出去,BGP 是在不同网络之间交换路由信息的标准方式。这本身并不是负载均衡,但是能在冗余的多条网络路径中进行流量分发,而且可以利用网络技术让流量绕过不可用的网络,从而提高了可用性(也引起了<a href="https://www.noction.com/blog/bgp-and-asymmetric-routing">非对称路由</a>的现象)。简单的 DNS 负载均衡随着来自客户的流量变大,老板希望服务是高可用的。你上线第二台 web 服务器,它有自己独立的公网 IP 地址,然后你更新了 DNS 记录,把用户流量引到两台服务器上(内心希望它们均衡地提供服务)。在其中一台服务器出故障之前,这样做一直是没有问题的。假设你能很快地监测到故障,可以更新一下 DNS 配置(手动更新或者通过软件)删除解析到故障机器的记录。不幸的是,因为 DNS 记录会被缓存,在客&#…
使用 MDwiki 将 Markdown 发布成 HTML
用这个有用工具从 Markdown 文件创建一个基础的网站。Media
via https://linux.cn/article-10300-1.html
用这个有用工具从 Markdown 文件创建一个基础的网站。Media
via https://linux.cn/article-10300-1.html
使用 MDwiki 将 Markdown 发布成 HTML
用这个有用工具从 Markdown 文件创建一个基础的网站。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220902kk0zo9hk0ky9k9zt.jpg">Media</a>有很多理由喜欢 Markdown,这是一门简单的语言,有易于学习的语法,它可以与任何文本编辑器一起使用。使用像 <a href="https://pandoc.org/">Pandoc</a> 这样的工具,你可以将 Markdown 文本转换为<a href="https://opensource.com/downloads/pandoc-cheat-sheet">各种流行格式</a>,包括 HTML。你还可以在 Web 服务器中自动执行转换过程。由 TimoDörr 创建的名为 <a href="http://dynalon.github.io/mdwiki/#!index.md">MDwiki</a> 的 HTML5 和 JavaScript 应用可以将一堆 Markdown 文件在浏览器请求它们时转换为网站。MDwiki 网站包含一个操作指南和其他信息可帮助你入门:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220906kbymvumjv990jymp.png">MDwiki site getting started</a><em>Mdwiki 网站的样子。</em>在 Web 服务器内部,基本的 MDwiki 站点如下所示:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220907v9v21t2qq629tzkn.png">MDwiki site inside web server</a><em>该站点的 web 服务器文件夹的样子</em>我将此项目的 MDwiki HTML 文件重命名为 START.HTML。还有一个处理导航的 Markdown 文件和一个 JSON 文件来保存一些配置设置。其他的都是网站内容。虽然整个网站设计被 MDwiki 固定了,但内容、样式和页面数量却没有。你可以在 <a href="http://dynalon.github.io/mdwiki/#!examples.md">MDwiki 站点</a>查看由 MDwiki 生成的一系列不同站点。公平地说,MDwiki 网站缺乏网页设计师可以实现的视觉吸引力 —— 但它们是功能性的,用户应该平衡其简单的外观与创建和编辑它们的速度和简易性。Markdown 有不同的风格,可以针对不同的特定目的扩展稳定的核心功能。MDwiki 使用 GitHub 风格…
用这个有用工具从 Markdown 文件创建一个基础的网站。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220902kk0zo9hk0ky9k9zt.jpg">Media</a>有很多理由喜欢 Markdown,这是一门简单的语言,有易于学习的语法,它可以与任何文本编辑器一起使用。使用像 <a href="https://pandoc.org/">Pandoc</a> 这样的工具,你可以将 Markdown 文本转换为<a href="https://opensource.com/downloads/pandoc-cheat-sheet">各种流行格式</a>,包括 HTML。你还可以在 Web 服务器中自动执行转换过程。由 TimoDörr 创建的名为 <a href="http://dynalon.github.io/mdwiki/#!index.md">MDwiki</a> 的 HTML5 和 JavaScript 应用可以将一堆 Markdown 文件在浏览器请求它们时转换为网站。MDwiki 网站包含一个操作指南和其他信息可帮助你入门:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220906kbymvumjv990jymp.png">MDwiki site getting started</a><em>Mdwiki 网站的样子。</em>在 Web 服务器内部,基本的 MDwiki 站点如下所示:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220907v9v21t2qq629tzkn.png">MDwiki site inside web server</a><em>该站点的 web 服务器文件夹的样子</em>我将此项目的 MDwiki HTML 文件重命名为 START.HTML。还有一个处理导航的 Markdown 文件和一个 JSON 文件来保存一些配置设置。其他的都是网站内容。虽然整个网站设计被 MDwiki 固定了,但内容、样式和页面数量却没有。你可以在 <a href="http://dynalon.github.io/mdwiki/#!examples.md">MDwiki 站点</a>查看由 MDwiki 生成的一系列不同站点。公平地说,MDwiki 网站缺乏网页设计师可以实现的视觉吸引力 —— 但它们是功能性的,用户应该平衡其简单的外观与创建和编辑它们的速度和简易性。Markdown 有不同的风格,可以针对不同的特定目的扩展稳定的核心功能。MDwiki 使用 GitHub 风格…
Systemd 定时器:三种使用场景
继续 systemd 教程,这些特殊的例子可以展示给你如何更好的利用 systemd 定时器单元。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/093439gam6n0m35b3hibic.jpg">Media</a>在这个 systemd 系列教程中,我们<a href="https://linux.cn/article-10182-1.html">已经在某种程度上讨论了 systemd 定时器单元</a>。不过,在我们开始讨论 sockets 之前,我们先来看三个例子,这些例子展示了如何最佳化利用这些单元。简单的类 cron 行为我每周都要去收集 <a href="https://popcon.debian.org/">Debian popcon 数据</a>,如果每次都能在同一时间收集更好,这样我就能看到某些应用程序的下载趋势。这是一个可以使用 cron 任务来完成的典型事例,但 systemd 定时器同样能做到:<pre class="prettyprint linenums"># 类 cron 的 popcon.timer[Unit]Description= 这里描述了下载并处理 popcon 数据的时刻[Timer]OnCalendar= Thu *-*-* 05:32:07Unit= popcon.service[Install]WantedBy= basic.target</pre>实际的 popcon.service 会执行一个常规的 wget 任务,并没有什么特别之处。这里的新内容是 OnCalendar= 指令。这个指令可以让你在一个特定日期的特定时刻来运行某个服务。在这个例子中,Thu 表示 “在周四运行”,*-*-* 表示“具体年份、月份和日期无关紧要”,这些可以翻译成 “不管年月日,只在每周四运行”。这样,你就设置了这个服务的运行时间。我选择在欧洲中部夏令时区的上午 5:30 左右运行,那个时候服务器不是很忙。如果你的服务器关闭了,而且刚好错过了每周的截止时间,你还可以在同一个计时器中使用像 anacron 一样的功能。<pre class="prettyprint linenums"># 具备类似 anacron 功能的…
继续 systemd 教程,这些特殊的例子可以展示给你如何更好的利用 systemd 定时器单元。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/093439gam6n0m35b3hibic.jpg">Media</a>在这个 systemd 系列教程中,我们<a href="https://linux.cn/article-10182-1.html">已经在某种程度上讨论了 systemd 定时器单元</a>。不过,在我们开始讨论 sockets 之前,我们先来看三个例子,这些例子展示了如何最佳化利用这些单元。简单的类 cron 行为我每周都要去收集 <a href="https://popcon.debian.org/">Debian popcon 数据</a>,如果每次都能在同一时间收集更好,这样我就能看到某些应用程序的下载趋势。这是一个可以使用 cron 任务来完成的典型事例,但 systemd 定时器同样能做到:<pre class="prettyprint linenums"># 类 cron 的 popcon.timer[Unit]Description= 这里描述了下载并处理 popcon 数据的时刻[Timer]OnCalendar= Thu *-*-* 05:32:07Unit= popcon.service[Install]WantedBy= basic.target</pre>实际的 popcon.service 会执行一个常规的 wget 任务,并没有什么特别之处。这里的新内容是 OnCalendar= 指令。这个指令可以让你在一个特定日期的特定时刻来运行某个服务。在这个例子中,Thu 表示 “在周四运行”,*-*-* 表示“具体年份、月份和日期无关紧要”,这些可以翻译成 “不管年月日,只在每周四运行”。这样,你就设置了这个服务的运行时间。我选择在欧洲中部夏令时区的上午 5:30 左右运行,那个时候服务器不是很忙。如果你的服务器关闭了,而且刚好错过了每周的截止时间,你还可以在同一个计时器中使用像 anacron 一样的功能。<pre class="prettyprint linenums"># 具备类似 anacron 功能的…