在 Fedora 系统上设置 zsh
对于一些人来说,终端可能会很吓人。但终端不仅仅是一个输入的黑屏。它通常运行一个 shell(外壳),如此称呼的原因是它围绕着内核。shell 是一个基于文本的界面,可让你在系统上运行命令。它有时也被称为 命令行解释器(command line interpreter)(CLI)。…
探秘“栈”之旅(II):结语、金丝雀和缓冲区溢出
上一周我们讲解了 栈是如何工作的 以及在函数的 序言(prologue)上栈帧是如何被构建的。今天,我们来看一下它的相反的过程,在函数 结语(epilogue)中栈帧是如何被销毁的。重新回到我们的 add.c 上:int add(int a, int b) { int result = a + b; return re…
面向数据科学的 Anaconda Python 入门
Anaconda 是一个完备的、开源的数据科学软件包,拥有超过 600 万社区用户。像很多人一样,我一直努力加入到快速发展的数据科学领域。我上过 Udemy 的 R 及 Python 语言编程课,那时我分别下载并安装了应用程序。当我试图解决各种依赖关系,安装类似 Numpy 和 …
解决构建全球社区带来的挑战
全球开源社区通常面临着语音壁垒、文化差异以及其它的挑战。如何去解决它们呢?今天的开源组织参与人员来自于全世界。你能预见到组建在线社区可能遇到哪些困难吗?有没有什么办法能够克服这些困难呢?为开源社区贡献力量的人共同合作推动软件的开发和发展。…
基于 FUSE 的 Bittorrent 文件系统
Bittorrent 已经存在了很长时间,它可以从互联网上共享和下载数据。市场上有大量的 GUI 和 CLI 的 Bittorrent 客户端。有时,你不能坐下来等待你的下载完成。你可能想要立即观看内容。这就是 BTFS 这个不起眼的文件系统派上用场的地方。使用 BTFS,你可以将…
一些常见的并发编程错误
Go 是一个内置支持并发编程的语言。借助使用 go 关键字去创建 协程(goroutine)(轻量级线程)和在 Go 中提供的 使用 信道 和 其它的并发 同步方法,使得并发编程变得很容易、很灵活和很有趣。另一方面,Go 并不会阻止一些因 Go 程序员粗心大意或者缺乏经验…
GDPR 将如何影响开源社区?
许多组织正在争先恐后地了解隐私法的变化如何影响他们的工作。2018 年 5 月 25 日,a href="https://www.eugdpr.org/eugdpr.org.html"> 通用数据保护条例(General Data Protection Regulation, GDPR) 开始生效。欧盟出台的该条例将在全球范围内对企业如何保护个人数据产生重大…
Git 分支操作介绍
在这个 Git 入门系列的第三篇中,我们来学习一下如何添加和删除 Git 分支。在本系列的前两篇文章中,我们开始使用 Git,学会如何克隆项目,修改、增加和删除内容。在这第三篇文章中,我将介绍 Git 分支,为何以及如何使用分支。 tree branches不妨用树来描…
最好的 Linux 工具献给老师和学生们
Linux 是一个适合每个人的平台。如果你有一份合适的工作,Linux 已经可以满足或超过它的需求,其中一个工作是教育。如果你是一名教师或一名学生,Linux 已经准备好帮助你在几乎任何级别的教育系统领域中畅游。从辅助学习、写作论文、管理课程,到管理整个机…
Pidgin:Skype for Business 的开源替代品
用可以和 Office 365 协同工作的开源软件换下你的专有化的沟通软件。技术正处在一个有趣的十字路口,Linux 统治服务器领域,但微软统治企业桌面。 Office 365、Skype for Business、Microsoft Teams、OneDrive、Outlook ......等等,这些是支配企业工作空间…
IT 自动化:如何去实现
想要你的整个团队都登上 IT 自动化之旅吗? IT 执行者们分享了他们的战略。在任何重要的项目或主动变更刚开始的时候,IT 的管理者在前进的道路上面临着普遍的抉择。第一条路径看上去是提供了一个从 A 到 B 的最短路径:简单的把项目强制分配给每个人去执行…
使用 GNU Parallel 提高 Linux 命令行执行效率
将您的计算机变成一个多任务的动力室。你是否有过这种感觉,你的主机运行速度没有预期的那么快?我也曾经有过这种感觉,直到我发现了 GNU Parallel。GNU Parallel 是一个 shell 工具,可以并行执行任务。它可以解析多种输入,让你可以同时在多份数据上运行…
5 个理由,开源助你求职成功 | Linux 中国
为开源项目工作可以给你或许从其他地方根本得不到的经验和人脉。你正在在繁华的技术行业中寻找工作吗?无论你是寻找新挑战的技术团体老手,还是正在寻找第一份工作的毕业生,参加开源项目都是可以让你在众多应聘者中脱颖而出的好方法。以下是从事开源项目工…
使用 Buildah 创建小体积的容器
技术问题推动了开源协作的力量。我最近加入了 Red Hat,在这之前我在另外一家科技公司工作了很多年。在我的上一份工作岗位上,我开发了不少不同类型的软件产品,这些产品是成功的,但都有版权保护。不仅法规限制了我们不能在公司外将软件共享,而且我们在公…
Linux vs. Unix:有什么不同?
深入了解这两个有许多共同的传统和相同的目标的操作系统之间的不同。如果你是位二、三十岁的软件开发人员,那么你已经成长在一个由 Linux 主导的世界。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额报告,但 Linux 的数据中…
3 个 Python 模板库比较
你的下一个 Python 项目需要一个模板引擎来自动生成 HTML 吗?这有几种选择。在我的日常工作中,我花费大量的时间将各种来源的数据转化为可读的信息。虽然很多时候这只是电子表格或某种类型的图表或其他数据可视化的形式,但也有其他时候,将数据以书面形式…
如何在 Linux 系统中结束进程或是中止程序
在 Linux 中有几种使用命令行或图形界面终止一个程序的方式。进程出错的时候,您可能会想要中止或是杀掉这个进程。在本文中,我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们使用 gedit 作为样例程序。使用命令行或字符终端界面Ctrl + C在命…
如何使用 Arduino 制作一个绘图仪
使用开源硬件和软件的 DIY 绘图仪可以自动地绘制、雕刻。在上学时,科学系的壁橱里藏着一台惠普绘图仪。虽然我在上学的期间可以经常使用它,但我还是想拥有一台属于自己的绘图仪。许多年之后,步进电机已经很容易获得了,我又在从事电子产品和微控制器方面…
Go 程序的持续分析
Google 最有趣的部分之一就是我们规模庞大的持续分析服务。我们可以看到谁在使用 CPU 和内存,我们可以持续地监控我们的生产服务以争用和阻止配置文件,并且我们可以生成分析和报告,并轻松地告诉我们可以进行哪些有重要影响的优化。我简单研究了 Stackdriv…
最小权限的容器编排
Docker 平台和容器已经成为打包、部署、和管理应用程序的标准。为了在一个集群内协调跨节点的容器,必须有一个关键的能力:一个容器编排器。 container orchestrator对于关键的集群化以及计划的任务,编排器是起重大作用的,比如:管理容器计划和资源分配。…