InfraPub 为您找到相关结果 517

如何写好技术文档 — 来自十多年的文档经验总结

,它的价值马上就体现出来了。而一份文档,随着时间的推移,它的价值才会逐渐体现出来。 你可能只一次文档,将来它会被阅读上百次、上千次,因为一份好的文档可以在未来替你向别人回答类似下面这些问题。 1. 为什么当时是这么决策的? 2. 为什么代码是这样实现的? 3. 这个项目里都有哪些概念? 4. …… 文档同样对于作者也有非常大的收益: - 帮你构思规范化API: 文档的过程也是你审视你API的过程,文档时会让你思考你API设计是否合理,考虑是否周全。如果你没用语言将API描述出来,那么说明你当前的API设计是不合理的。 - 文档也是代码的另一种展现: 比如你两年后回过头来看你过的代码,如果有注释和文档,你可以很快速理解代码。 - 让你的代码看起来更专业: 我们都有个感觉,只要文档...阅读全文

博文 2021-07-30 16:15:13 joseph

PHP 7.4 有哪些新特性

PHP 7.4 的GA版今天正式发布了。PHP 7.4发布后,PHP 7.3或其它的PHP 7版本都可以升级到PHP 7.4版。 PHP 7.4 的主要特性包括以下几个, 短闭包函数(short closure)预加载提交性能属性类型限定Improved type variance(不会翻译)三元运算简数组展开运算新增类的魔术方:serialization数字分隔符运算优先顺序允许在__toString中抛出异常支持反射引用新增字节分割函数移除php短标签弃用左关联运算符不再向后兼容的变更 短闭包函数 短闭包函数可以减少冗余代码: array_map(function (User $user) { return $user->id; }, $users) array_map(fn...阅读全文

博文 2019-11-29 20:45:16 debian.cn

王垠:如何掌握所有的程序语言

很多编程初学者至今还在给我信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。 今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经过,然而现在我想把它重新一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想,有了更精准的表达。 如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助: 你是编程初学者,不知道该选择什么程序语言来入门。 你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。 你的团队为使用哪种程序语言争...阅读全文

博文 2017-07-10 10:13:17 debian.cn

2017 热门开源自动化测试框架优缺点对比

1. Robot Framework Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持(Windows、Linux 或 MacOS )。 优点: 通过使用关键字驱动测试(KDT)方简化了自动化测试过程,方便测试人员创建易读的测试。 测试数据语简单易用。 生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。 具有高度可扩展性。 可通过 pabot 或 Selenium Grid 执行并行测试。 缺点: 自定义 HTML 报告较为麻烦。 如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用...阅读全文

博文 2017-11-15 08:52:47 debian.cn

都是颗粒 为什么SSD有寿命、内存却没有?

。 SSD则是外部存储,用来长久保存数据,属于非易失性存储,断电后数据还在,但是相对速度慢、延迟高,HDD机械硬盘、U盘、光盘等也是此类。 SSD的存储介质是NAND闪存颗粒,需要施加不同的电压、改变内部状态来存储数据,随着时间的流逝、读次数的增加,会出现物理性的损耗,最终不可用。 NAND闪存的寿命一般用P/E编程擦次数来描述,满一次容量就损失一次P/E。 SLC大约是10万次,MLC只有5000次左右,TLC就只大概2000次,QLC仅为1000次上下,所以不得不依靠更多管理技术和算来辅助,以保持寿命。 但另一方面,SLC、MLC、TLC、QLC的存储密度越来越大,SSD容量也越来越大,满的概率越来越低,所以整个SSD的实际寿命其实并没有大大缩短,一般应用无需过分担忧寿命问题。...阅读全文

使用 MongoDB 之前应该知道的 14 件事

“模式浏览器(Schema Explorer)”这样可以执行定期模式检查的特性也是值得拥有的。 忘记排序规则(排序顺序) 这比其他任何的配置错误都会导致更多的挫折和时间浪费。MongoDB 默认使用 二进制排序规则 。这对任何地方的文化都是不利的。在 80 年代,大小敏感、重音敏感、二进制排序规则,和念珠、土耳其长衫和卷胡子一起,被视为奇怪的时代错误。现在,他们没辩解了。在现实生活中,motorbike 和 Motorbike 就是一样,而 Britain 和 britain 就是同一个地方。小字母和大字母只是书上的等价。就不要让我再说重音字符排序规则了。当你创建一个 MongoDB 数据库时,使用一种合乎系统 用户语言和文化 的 重音敏感、大小敏感 排序规则。这使得字符串数据的检...阅读全文

GitHub 发布10月21日系统故障分析报告

Raft 共识机制之上达成共识。Orchestrator 可以实现应用程序无支持的拓扑,因此必须注意将 Orchestrator 的配置与应用程序级别的期望保持一致。 然而 21 日,在上述网络分区中,Orchestrator 在主数据中心中一直保持活跃,根据 Raft 的共识机制,它开始了一个取消领导选举的过程。美国西海岸数据中心和美国东海岸公有云 Orchestrator 节点能够建立合规数量并开始对群集进行故障转移,以便将入指向美国西海岸数据中心。Orchestrator 继续组织美国西海岸数据库集群拓扑,当连接恢复时,应用层立即开始将入流量引导到西海岸站点的新当选者。 美国东海岸数据中心的数据库服务器包含一段短暂的入时间,但尚未复制到美国西海岸的设施。由于两个数据中心中的数据库集群...阅读全文

希捷:明年奉上24TB HAMR硬盘

当然,无论西数还是希捷都在努力开发新的存储技术,目前出货的14TB和即将推出的16TB、18TB都是传统充氦垂直记录技术,接下来就要上新的HAMR热辅助磁记录技术,2030年前有望带来100TB的总容量。 希捷此前称会在2018年内出样HAMR硬盘,2019年量产,初期容量20TB,而最新说让人更加振奋: 希捷表示,HAMR技术进展顺利,下一代大容量近线硬盘的单盘容量可达24TB,预计2019年批量上市。 当然,希捷还有多驱动技术(Multi-Actuator),硬盘内存同时使用多个机械臂进行读操作,大幅提升性能,读速度可达480MB/s,基本逼近SATA SSD的水准。...阅读全文

博文 2018-05-03 12:02:35 debian.cn

490MB/s 金士顿新款外置SSD发布:最高960GB

随着互联网的高速发展,云存储技术已经相当成熟了,网盘成了人们工作和学习中不可缺少的部分。尽管如此,离线存储技术也无被取代,毕竟在没有网络的情况下,离线存储才是最佳的解决方案。 而目前使用的最多的且最方便的离线存储设备就是U盘,凭借小巧便携的体型设计赢得了广大用户的喜爱,但随着数据的日益膨胀,小小的U盘无论是在读速度还是在容量上已经无满足我们日益增长的存储需求。 而今天,金士顿在CES大会上展示了一款离线存储设备——HyperX Savage EXO外置SSD。HyperX Savage EXO外置SSD外壳采用聚碳酸酯打造,存储颗粒为3D TLC NAND闪存,拥有480GB和960GB两种容量可供选择。 外置SSD的接口为USB3.1 Gen 2,带宽高达10Gbps,实际连续读...阅读全文

博文 2018-01-08 20:54:57 debian.cn

Debian 主机如何配置静态 IP 地址?

做个记录,主要是几个关键字的,仅供参考。 `cat /etc/network/interfaces` 内容如下: ``` # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network...阅读全文

prometheus通过node_exporter抓取的数据准确计算磁盘使用率

) 诡异的df算 主要的原因就是每个分区有一个给管理员的预留空间,保证即使普通用户满其空间,管理员还可以进行操作,普通用户的可使用空间是总空间减去预留空间,该文章并给出了具体的预留空间计算规则 reserved = fsu_blocksize * (fsu_bfree - fsu_bavail) 然后看了node_exporter的源码,核心的代码在github.com/prometheus/node_exporter/collector/filesystem_linux.go的101行 stats = append(stats, filesystemStats{ labels: labels, size: float64(buf.Blocks) * float64(buf.Bsize...阅读全文

博文 2021-01-30 20:26:49 中文开源技术社区

在 Mac OS X 上安装 Nessus 10

在 macOS 上安装 Nessus 10 macOS安装Nessus一、下载二、 安装三、初始化登录四、 安装插件和创建配置文件五、重启服务编译插件六、验证七、如何更新插件 macOS安装Nessus 修复部分破解方在安装Nessus10重启之后重置授权问题。 一、下载 下载 macOS:https://sysin.org/blog/macOS/ 下载 Nessus:https://sysin.org/blog/nessus-10/ 或者链接:https://pan.baidu.com/s/1DrkX1nbysFgdmbO4657JIg?pwd=9jxl 提取码:9jxl 下载插件: 插件版本202301231642 链接:https://pan.baidu.com/s...阅读全文

Ruby 2.5.0 稳定版发布

代码覆盖。分支代码覆盖指检查哪些分支被覆盖到,哪些没有。而方覆盖在指可以测量方是否被调用。基于这些新特性运行你的测试用例,你可以精确地知道哪些分支和方被运行,并更精确地计算测试的代码覆盖程度。[功能 #13901] 新增 Hash#slice [功能 #8499] 和 Hash#transform_keys。[功能 #13583] Struct.new 现在可以被用于创建含有关键字参数的类。[功能 #11925] Enumerable#any?, all?, none? 和 one? 可以接受一个模式作为参数。[功能 #11286] 删除顶层常量查找。[功能 #11547] 我们最喜爱的库之一 pp.rb,现已自动加载。无需手动 require "pp" 来加载。[功能...阅读全文

博文 2017-12-25 21:59:41 debian.cn

健康学习到150岁 - 人体系统调优不完全指南

去年 5 月曾经了一篇文章介绍了下 [Lex Fridman 大佬的日常生活安排](https://zhuanlan.zhihu.com/p/371254789) ,后续我也根据他的方对自己的日常生活做了一系列规范和改进。这一年整体实行下来,效果还是非常显著的,本文的最后会对我的一些实践以及借助的工具做一些分享。...阅读全文

GlusterFS 和 Ceph 比比看

Ceph 的差异。顾名思义,GlusterFS 是来自 Linux 世界的文件系统,并且遵守所有 POSIX 标准。尽管你可以将 GlusterFS 轻松集成到面向 Linux 的环境中,但在 Windows 环境中集成 GlusterFS 很难。 Ceph 是一种全新的存储方,对应于 Swift 对象存储。在对象存储中,应用程序不会入文件系统,而是使用存储中的直接 API 访问入存储。因此,应用程序能够绕过操作系统的功能和限制。如果已经开发了一个应用程序来入 Ceph 存储,那么使用哪个操作系统无关紧要。结果是,Ceph 存储在 Windows 环境中像在 Linux 环境中一样容易集成。 基于 API 的存储访问并不是应用程序可以访问 Ceph 的唯一方式。为了最佳的集成,还有一个...阅读全文

博文 2017-08-09 10:35:29 debian.cn

2016 年 Go 语言使用习惯调查

Go 语言官方博客公布了 2016 年 Go 语言使用调查。在 3,595 名被调查者中,89% 称他们在工作中或工作之外用 Go 编程;63% 称他们的工作是 Web 开发,但只有 9% 的人只从事 Web 开发,一半以上被调查者的工作涉及三个以上领域;63% 的人用 Go 开发命令行程序,60% API 或 RPC 服务,52% Web 服务。 被调查者对 Go 的满意度非常高(这显然与被调查者这一群体高度相关),他们主要在 Linux 上进行开发,其次是 MacOS,第三是 Windows;最爱的编辑器是 Vim,其次是 VSCode、Atom、IntelliJ、Sublime Text 和 Emacs;大部分人主要通过 Stack Overflow 寻找 Go 相关问题的答...阅读全文

博文 2021-01-28 17:50:23 debian.cn

Golang 面试题搜集

/blob/master/question/q007.md) - [语题目二](https://github.com/lifei6671/interview-go/blob/master/question/q008.md) - [goroutine和channel使用一](https://github.com/lifei6671/interview-go/blob/master/question/q009.md) - [实现阻塞读的并发安全Map](https://github.com/lifei6671/interview-go/blob/master/question/q010.md) - [高并发下的锁与map读问题](https://github.com/lifei6671...阅读全文

Go 泛型草案更新,明年8月Go 1.17引入

Go 团队近日在博客介绍了 Go 泛型的最新进展。 Go 团队表示他们一直在完善泛型的设计草案,并为此编了一个类型检查器——可按照设计草案中的说明,解析使用泛型的 Go 代码并报告任何类型的错误。为了收集社区的反馈,他们还编了示例代码并在草案中提供。 根据收集的反馈和了解的信息,Go 团队发布了更新后的泛型设计草案。 "The design is fully backward compatible with Go 1",完全兼容 Go 1 新版草案最大的变化是放弃了关于 contracts 的想。因为团队认为 contracts 和 interface 类型之间的区别会令人感到困扰,所以他们正在消除这种区别。类型参数现在受 interface 类型约束,当 interface 类型仅...阅读全文

博文 2020-06-23 07:40:34 debian.cn

使用 Go 语言的三个原因

几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 Go 是重要的编程语言的原因。 安全 个人而言,你和我或许完全有能力在 C 中编程序,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过40年的经验,用 C 的程序员也无可靠地这样做。 尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,程序员根本无安全地管理自己的内存。现在是离开 C 的时候了。 Go 不需要程序员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯...阅读全文

博文 2021-01-28 17:50:28 debian.cn

微软宣布年底关闭开源软件托管平台 CodePlex

真正核心,但这种情况过去几年有所改变。该公司于 2015 年推出了开源项目 .NET 和 Visual Studio Code 开源文字编辑器,2016 年 8 月份推出 PowerShell。 哈里道,人们可能无在 CodePlex 上继续创造新的项目。该网站将在 10 月份变为只读,并在 12 月份关闭。届时,人们依然可以浏览上面的代码。 来源: 网易科技报道 作者:小小...阅读全文

博文 2021-01-28 17:50:25 debian.cn

Debian中文怎么读 如何正确发音

Debian 是 Debian 项目的创始人 Ian Murdock 和他的妻子 Debra 的名字缩。值得一提的是,Debian 是第一个 Linux 发行版,它首次发布于 1993 年 9 月。 根据 Debian 的官方网站建议,它应该这样读:Deb'-ee-en ,“得比恩”,重音在第一音节。“得变” 有点接近,因为是重音,deb 应该发成类似“跌”的发音。 也就是“跌扁”,“蝶变”。 这里提供两种很标准的 Debian 标准发音,供参考。 第一个发音是带西班牙口音的 Debian 发音方式(MP3文件下载): 这一个是较美式的 Debian 读(MP3文件下载):...阅读全文

博文 2018-01-02 18:36:25 debian.cn

深入学习golang — channel

) { // Start handlers for i := 0; i < MaxOutstanding; i++ { go handle(clientRequests) } <-quit // Wait to be told to exit. } 开始就启动固定数量的handle goroutine,每个goroutine都直接从channel中读取请求。这种比较简单,但是不知道有没有“惊群”问题?有待后续分析goroutine的实现。 5. 传递channel的channel channel作为go语言的一种原生类型,自然可以通过channel进行传递。通过channel传递channel,可以非常简单优美的解决一些实际中的问题。 在上一节中,我们主goroutine通过channel将请求传递给工作...阅读全文

博文 2021-01-25 12:39:17 博客园

六大算法之三:动态规划【转载】

)确定决策并出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方和状态转移方程。 (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。 一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以出状态转移方程(包括边界条件)。 实际应用中可以按以下几个简化的步骤进行设计: (1)分析最优解的性质,并刻画其结构特征。 (2)递归的定义最优解。 (3)以自底向上或自顶向下的记忆化方式(备忘录)计算出最优值 (4)根据计算最优值时得到的信息,构造问题的最优解 算实现的说明 动态规划的主要难点在...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

Go1.16 新特性:一文快速上手 Go embed

在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无把应用程序运行起来了。因为无读取到静态文件的资源。 无将静态资源编译打包进二进制文件的话,通常会有两种解决方: 第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文件中。 第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文

博文 2021-02-17 08:44:12 CSDN

Python Web 框架 Flask 1.0 正式发布

多线程处理开发过程中的并发请求。 之前不推荐使用的 flask.ext 已被完全删除。 在调试模式下访问 request.form 的缺失密钥时会显示更有用的错误提醒,以避免开发者混淆常见的错误来源。 app.logger 的行为已大大简化,更容易定制。 test_client 新增用于发布 JSON 数据的 json 参数,Response 对象新增 get_json 方来在测试中将数据解码为 JSON 。 新增 test_cli_runner ,用于测试应用程序的 CLI 命令。 大量文档已被重,更清晰明了。这是一项长期持续的工作。 教程和相应的示例已被重。新的示例使用结构化布局并详细介绍每个方面,以帮助新用户更好地规避常见问题并适应 Flask 。 细节请查阅发行说明...阅读全文

博文 2018-04-27 23:21:17 debian.cn

Ubuntu 创始人爆粗口: 开源社区弥漫着“反社会人格”

图片来自于 Youtube 关于近期关于放弃 Unity 的决定,Google+用户 Maartin Kozub 在文章中道: 这个决定并不能简单的用惋惜和悲伤而形容,因为 Canonical 所从事开始的多个项目也宣告了死亡。 我认为当前最大的问题是大部分开源开发者无深入理解,也不会进而欣赏面向对象的编程语言(C++)。他们依然还习惯使用 C 语言来编程一些丑陋的代码,也许有些时候利用个性化定制功能能够让 C 更加接近于 C++,但无疑会增加门槛和降低可读性。所以,为何不直接使用 C++?最典型的例子就是 Wayland。 在另一方面,Canonical 是目前极少数创建优秀和简洁开源 C++代码的公司/社区,就像 Mir 一样能够充分利用各种现代化 C++功能。 Mark...阅读全文

博文 2021-01-28 17:50:26 debian.cn

Angular 6.0 即将发布 承诺更小更快更易用

Material 和其他解决方案的最新版本将一起发布,以便开发人员更好地访问最新版本的 Angular。 根据 Fluin 的说,团队将重点放在缩小尺寸上,Angular 6 中的捆绑包将更小 ,以便为用户提供更快的体验。 团队正在通过更新到最新版本的 Webpack 来实现这一点。 此外,最新版本将引入一种新的方式来连接应用程序和服务中的模块。 例如,团队正在增加服务引用模块的能力,这样如果服务没有被使用,它就会消失,从而简化包的大小。 版本 6 也更新为 RxJS,即,使用 Observables 进行反应式编程的库 。 根据 Angular 的说,这使得编异步或基于回调的代码更容易。 在易于使用的一方面,该团队正在向 CLI 界面介绍更新 。 这个新命令将自动让用户保持最新状态并更新正在使用的...阅读全文

博文 2018-04-24 09:41:33 debian.cn

Golang 之禅: 如何写优质代码

在本月初的 GopherCon 上,知名 Go 语言贡献者与布道师 Dave Cheney 发表了名为《The Zen of Go》的演讲,之后他整理了演讲内容在博客中分享,由于内容过长,他又了一个简洁版本: 完整版:https://dave.cheney.net/2020/02/23/the-zen-of-go简洁版:https://the-zen-of-go.netlify.com 这里简单翻译一下简洁版本的内容:编简单、可读、可维护的 Go 代码的十个工程要点。 每个包实现单一目标 设计良好的 Go 软件包提供一个单一的思路,以及一系列相关的行为。一个好的 Go 软件包首先需要选择一个好名字,使用电梯则(30 秒内向客户讲清楚一个方案),仅用一个词来思考你的软件包要提供什么功能...阅读全文

博文 2020-02-25 20:48:33 debian.cn

项目总结报告应该怎么写

。总结报告的形成明确报告需要的思维和目的后,我们如何形成报告呢?报告形成步骤如下。​1.明确项目分析维度项目分析的维度不同,后期确定的指标也会不同。一般以项目总结的目的为基准方向,确定分析维度。分析维度可以从产品立项到发布每个阶段作为分析维度,也可以按照项目中的角色为维度进行分析。以输入的项目总结为例,按照产品、开发、测试的测试角色为横向维度进行分析,然后纵向深入分析每个维度的数据。​2.项目指标抽取我们在进行指标抽取时,会先根据项目分析维度形成一个指标集,如下图。​指标的选取方式有两种:根据问题选取指标和固定通用指标。根据问题选指标是先收集项目中明确感知到的问题,对问题进行归类(归类分组思想),然后选取可以反映此问题的指标进行数据分析,一个问题可能对应多个指标。以输入为例,当前版本出现...阅读全文

为什么 Django 能持续统治 Python 开发世界

对于 Python 开发者来说,web 开发框架真可谓玲琅满目。然而 Django , 毋庸置疑的成为最受青睐的 web 框架。通过本篇博客,我来为大家讲解下为什么相比 Flask、Pyramid、Tornado、Bottle、Diesel、Pecan、Falcon 这些流行的 Python web 框架,Python 开发者更倾向于选择 Django。 再大肆宣扬Django之前,让我们简单了解一下web框架 Web框架是一个代码库,使开发人员更容易构建动态网站、Web应用程序和Web服务。 众所周知的是,每个网站都有一些通用的功能(如处理会话,数据验证等等),一些您每次创建网站时都需要编的功能。 这使开发任务平淡乏味。 然而,使用Web框架可以让您每次创建网站都需要重新编通用功能代...阅读全文

博文 2017-07-21 14:15:11 debian.cn

Golang 操作 Kafka 样例

,以及更低的端到端延迟 持久性日志:Kafka可以为一种外部的持久性日志的分布式系统提供服务。这种日志可以在节点间备份数据,并为故障节点数据回复提供一种重新同步的机制。Kafka中日志压缩功能为这种用提供了条件。在这种用中,Kafka类似于Apache BookKeeper项目。 1.1.4. Kafka中包含以下基础概念 1.Topic(话题):Kafka中用于区分不同类别信息的类别名称。由producer指定 2.Producer(生产者):将消息发布到Kafka特定的Topic的对象(过程) 3.Consumers(消费者):订阅并处理特定的Topic中的消息的对象(过程) 4.Broker(Kafka服务集群):已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服...阅读全文

博文 2023-01-10 13:46:09 掘金

使用 setfacl 管理文件的访问控制列表ACL

如果你是在一个大型组织,你运行了 NFS 或者 Samba 服务给不同的用户,你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。Linux(以及其他Unix等POSIX兼容的操作系统)有一个被称为访问控制列表(ACL)的权限控制方,它是一种权限分配之外的普遍范式。例如,默认情况下你需要维护3个权限组:owner、group和other。 使用ACL后,你可以设置权限给其他用户或组,而不单只是简单的"other"。可以允许指定的用户A、B、C拥有权限而不再是让他们整个组拥有权限。 ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btrfs等。如果你不确定你的文件系统是否支持ACL,请参考文档。 首先我们需要安装工具来管理ACL...阅读全文

Docker 快速入门之 Dockerfile

用于执行命令,并且是在新的一层上执行,并把执行后的结果提交,也就是生成新的一层。基于这个问题,我们在使用 RUN 指令时应该尽可能的把要执行的命令一次完,以减少最后生成的镜像的层数。语: RUN RUN ["executable", "param1", "param2"] 3.3 CMD CMD 指令用于给容器启动时指定一个用于执行的命令,例如上例中的 nginx 启动命令。 语: CMD ["executable","param1","param2"] CMD ["param1","param2"] ### 用于给 ENTRYPOINT 指令提供默认参数 CMD command param1 param2 3.4 LABEL LABEL 指令用于为镜像指定标签,可...阅读全文

博文 2017-12-16 13:50:31 debian.cn

Kiwi TCMS 7.1 发布:开源测试用例管理系统

Kiwi TCMS 是一个集测试计划、测试运行和测试用例于一身的管理系统,用 Python 和 Django 编。7.1 版本如下: 支持的升级路径: 5.3 (or older) -> 5.3.1 5.3.1 (or newer) -> 6.0.1 6.0.1 -> 6.1 6.1 -> 6.1.1 6.1.1 -> 6.2 (or newer) Improvements 将 Django 从 2.2.5 更新到 2.2.6将 python-GitLab 从 1.11.0 更新到 1.12.1pygithub 从 1.43.8 更新到 1.44psycopg2 从 2.8.3 更新到 2.8.4在所有遥测页面中添加帮助工具提示添加超链接验证 Fixes Issue #1147 API...阅读全文

博文 2019-10-31 09:34:07 debian.cn

登陆 jumpserver 跳板机每天只输入一次2FA token的方法

自从跳板机升级后,无所不在的二次验证 token 让小x很是恼火。使用 ssh clone session ,就可以避免每次登陆,都需要输入一次 2FA 验证 Code。 ** Linux 或 Mac OS 系统 ** 在 Linux 或者 Mac OS 下很简单,只需要修改或者创建 ~/.ssh/config 文件,入以下内容即可, ``` #file:~/.ssh/config Host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p ``` 这样第一次登陆跳板机时正常输入token,只要这个 session 没有退出,再次登陆就可以复用这个 SSH Session, 不需要再输入...阅读全文

下一个LTS内核版本确定为 Linux Kernel 4.9

Linux内核维护者Greg Kroah-Hartman在私人Google+发布一条短消息,将Linux Kernel 4.9分支标记为“longterm”,意味着4.9版本将会作为长期支持版本。 事实上关于Linux Kernel 4.9是否是长期支持版本的故事要从2016年8月12日开始说起,当时Greg Kroah-Hartman在Google+上发布信息,说“4.9 == next LTS kernel”;去年9月6日,Greg Kroah-Hartman改变了这个想,表示将会在Kernel.org网站上保留给4.9当作“长期支持”的权利。 在他的私人博客中道:“因为很多人滥用这个通知这给我们造成了很大的困扰, 因此我保留是否选择4.9作为长期支持的权利。如果是这样,我可能会重...阅读全文

如何更改 Linux 的 I/O 调度器

Linux 的 I/O 调度器是一个以块式 I/O 访问存储卷的进程,有时也叫磁盘调度器。Linux I/O 调度器的工作机制是控制块设备的请求队列:确定队列中哪些 I/O 的优先级更高以及何时下发 I/O 到块设备,以此来减少磁盘寻道时间,从而提高系统的吞吐量。 目前 Linux 上有如下几种 I/O 调度算: noop - 通常用于内存存储的设备。 cfq - 完全公平调度器。进程平均使用IO带宽。 Deadline - 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。 Anticipatory - 启发式调度,类似 Deadline 算,但是引入预测机制提高性能。 查看设备当前的 I/O 调度器: # cat /sys/block//queue/scheduler 假设磁...阅读全文

博文 2021-01-28 17:50:25 debian.cn

OpenSSL 1.1.1 LTS 版本发布,支持 TLS v1.3

OpenSSL 1.1.1 已发布,这是新的长期支持版本(LTS),开发团队承诺至少提供五年支持。自 1.1.0 发布以来,已有超过 200 位个人贡献者提交了近 5000 个 commits。OpenSSL 1.1.1 最重要的变化就是添加对 TLS v1.3 (RFC8446) 的支持。 TLS v1.3 的优势包括: 由于减少了客户端和服务器之间所需的往返次数,缩短了连接时间。 在某些情况下,客户端能够立即开始将加密数据发送到服务器而无需与服务器进行任何往返(称为 0-RTT 或“early data”)。 由于删除了各种过时和不安全的加密算及握手加密,提高了安全性。 OpenSSL 1.1.1 其他亮点包括: 完全重 OpenSSL 随机数生成器以引入以下功能: The...阅读全文

Debian 安装包的简单制作

在Linux分发软件有两种形式,一种是源码,一种是安装包。当目标机器不带有编译环境,且不能联网时,安装包就是唯一的方案了。 Linux 下的安装包有多种格式,不同Linux使用的格式并不完全相同。市场上主流的安装包格式是*.deb *.rpm 其中deb是debian系列的安装包,rpm是CentOS系列的安装包。 本文主要介绍的是一种简单的deb安装包的制作方,使用范围有限。如需了解更多可以阅读Debian 新维护人员手册 所需工具 如果没有安装dpkg工具包的话,就先安装(一般是默认安装的) sudo apt-get install dpkg 文件结构 example-package ├── DEBIAN (必须) │ ├── control (必须) │ └── md5sums...阅读全文

博文 2021-01-28 17:50:14 debian.cn

几种常用的方法论、思维方式

论,就是关于人们认识世界、改造世界方的经验性的理论,它是一种以解决问题为目标的体系或系统,通常涉及对问题阶段、任务、工具、方技巧的论述。方论会对一系列具体的方进行分析研究、总结并最终提出较为一般性的原则。 这里汇总介绍几种方论。 吉德林则 美国通用汽车公司管理顾问查尔斯·吉德林提出:把难题清清楚楚地出来,便已经解决了一半。只有先认清问题,才能很好地解决问题。这种观点在管理学上被称为吉德林则。 墨菲定律(Murphy's Law) 主要内容有四个方面:一、任何事都没有表面看起来那么简单;二、所有的事都会比你预计的时间长;三、会出错的事总会出错;四、如果你担心某种情况发生,那么它就更有可能发生。 彼德原理 每个人在层级组织里都会得到晋升,直到不能胜任为止。换句话说,一个人...阅读全文

谷歌开源了代码评审规范:好坏代码应这样来判断

谷歌开源了一套代码评审(Code Review)规范,它是谷歌一套通用的工程实战指南,几乎涵盖了所有编程语言与各种类型的项目,这个规范代表了谷歌长期发展以来最佳实战经验的集合,谷歌表示希望开源项目或其他组织能够从这套规范中受益。 代码评审,也称代码复查,如果一个团队正在使用任务分支工作流,那么在所有代码编完成并通过自动化测试之后,在代码合并之前,就会启动代码评审。通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平,代码评审的所有工具和过程都是为了这个目的而构建的。代码评审对于敏捷团队来说的作用如下: 代码评审共享知识通过代码评审可以更好的进行工作评估代码评审能让你享受休假通过代码评审指导新工程师 既然代码评审要进行众多的检查,那么找一个优秀的评审者就非常重要了。一般对于变更列...阅读全文

博文 2019-09-10 17:19:13 debian.cn

高性能日志采集工具 logpipe 简单介绍

日志文件增长,某些应用会在目标目录下产生多个日志文件甚至现在不能确定将来的日志文件名,架构上要支持多输入多输出流式日志采集传输,为了达成以上需求,我研究了所需技术,评估实现难度并不高,就自研了 logpipe。 logpipe 是一个分布式、高可用的用于采集、传输、对接落地的日志工具,采用了插件风格的框架结构设计,支持多输入多输出按需配置组件用于流式日志收集架构,无第三方依赖。 logpipe 的一种用是能异步实时监控集群里的所有日志目录,一旦有文件新增或追加,立即采集并传输到大存储上以相同日志文件名合并落地,或者入 HDFS。异步意味着不影响应用输出日志的性能,实时意味着一有日志立即采集,很多日志采集工具如 flume-ng、logstash 介绍文档通篇不提采集方式是否实时还是周期...阅读全文

Debian 使用VSFtpd安装配置架设FTP服务器

. Vsftpd添加FTP账号 A. 登录Linux主机后,运行命令:”useradd ftp-clin003 -s /sbin/nologin “。该账户路径默认指向/home/ftp-clin003目录;如果需要将用户指向其他目录,请运行命令:useradd ftp-clin003 -s /sbin/nologin –d /www(其他目录) B. 设置ftp-clin003用户密码,运行命令:”passwd ftp-clin003” ; 输入两次密码,匹配成功后,就设置好了ftp-clin003用户的密码了。 C.测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。 umask=022 umask=022中”022″是八进制的,如果换成二进制是...阅读全文

博文 2021-01-28 17:50:09 debian.cn

Monit:开源服务器监控工具

/checkoracle.pl every "* 8-19 * * 1-5" 示例3:在星期日0AM到3AM之间不要在备份窗口中运行检查,否则运行具有常规轮询周期频率的检查。 check process mysqld with pidfile /var/run/mysqld.pid not every "* 0-3 * * 0" 注意不要使用特定的分钟,因为Monit可能不会在那分钟运行。 服务重启限制 Monit提供了一种重启限制机制,用于服务在较长时间内拒绝启动或响应的情况。超时语句的语如下(关键字在大): IF RESTART CYCLE(S) THEN 该行动值是常见的任何一个动作或超时(为向后兼容,等于取消监视行动)。 下面是一个示例,如果Monit将...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

开源软件对于商业机构的6大好处

持周期,以避免更新混乱的出现。 2、有利于产品的长期发展 福布斯杂志指出,90%的初创公司最后都会失败,而他们当中,只有不到一半的中小型公司存活期能超过5年。如果在产品开发的中途突然出现需要更换供应商的问题,那迁移的成本就很高了。所以,要避免选择只有一个供应商支持的产品。 而开源使得社区成员能够协同编软件。如 OpenStack 就是由多个公司及个体志愿者共同编的。这么做,就能保证,在一个供应商出现问题的情况下,其他供应商能继续支持。而且,软件一经开源,企业就会长期投入开发团队以实现产品开发。使用源代码的好处就是,你可以聘用贡献者来保证开发的活跃性。 3、更安全 以开源的方式进行开发,可以很直观地看到,供应商是如何对待安全问题,以及是否在积极保证产品安全。研究源代码并执行独立代码审核,也...阅读全文

博文 2017-11-15 23:41:11 debian.cn

Debian 11壁纸评选结果出炉:包豪斯风格的Homeworld胜出

适用于 Debian 11 “Bullseye”的壁纸评选工作已经于11月9日结束,在通过投票统计之后 Debian 团队宣布“Homeworld”这款壁纸胜出,将会作为 Debian 11 的默认壁纸和全球用户见面。 Debian 11 登录界面 Debian 11 安装界面 在关于该壁纸的说明中道:“Homeworld 是一款受包豪斯运动启发的一款主题。包豪斯运动是 19 世纪诞生于德国的一种艺术风格,特征是独特的结构和设计方。由于结构和设计是软件建设的核心,我希望在这种艺术风格和 Debian 之间建立某种联系”。 在用户安装和使用 Debian 11 中,用户会在多个地方看到“Homeworld”主题。首先是在 Debian 的安装程序中,在横幅上会显示 Homeworld 的...阅读全文

博文 2020-11-13 10:01:07 debian.cn

Debian 有什么含义 如何发音

Debian 是个组合单词,它是由 Debian 项目创始人 Ian Murdock 和他的妻子 Debra 的名字缩。是Linux的一个版本。Debian 是一套为了您的计算机所设计的自由操作系统。Debian 使用 Linux 核心, 但大部份的基本工具则来自 GNU 计划,本站有一篇关于Debian 项目的详细介绍,推荐看看。 Debian 怎么读才是标准的,正确的发音呢? 其实这个问题不难,我们可以通过一些视频网站,对项目创始人、或者知名开源人士的访谈来判断如何正确年出 Debian。Youtube上也有专门的视频介绍Debian的发音,参考这里。通过对比,我们可以发现百度翻译上的发音,就是很标准的 Debian 发音。多听几遍,我们就知道如何正确念出 Debian 了。常听到的...阅读全文

博文 2011-12-22 23:14:35 debian.cn

K8S中Pod的四个阶段及状态分析

Kubernetes 中, pod 从创建到成功运行会分别处于不同的阶段,每个阶段又分为不同的状态,本文将简单介绍这个环节。 在 K8S 源码中,使用了 PodPhase 这个变量定义这几个阶段信息,如下图所示: 运行中(PodRunning):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。等待中(PodPending): 创建 Pod 的请求已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。可能的原因有,数据到etcd,调度,pull镜像,启动容器这四个阶段中的任何一个阶段,pending 伴随的事件通常会有:ADDED, Modified这两个事件的产生。等待时间包括调度 Pod 的时间和下...阅读全文

博文 2020-07-15 13:11:45 debian.cn

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

Ian Murdock 走了,但 Debian 常在。今天就从与 Ian Murdock 的访谈来回顾一下 Ian 的 Debian 往事。 Debian 社区前几日宣布,Debian 的著名创始者 Ian Murdock 已经去世,死因至今不明。到官方公布具体死因之前,恐怕我们多猜测也无益。今天,不如让我们一起来回顾一下 Murdock 对免费软件的发展做出的贡献。 1999 年 11 月,我曾有幸与 Murdock 有过一次访谈。我为《Rebel Code:Linux and the Open Source Revolution》这本书共做过 50 多次访谈,这就是其中一回。虽说在书中我只引用了 Murdock 所说的寥寥几句,不过如今,借着这个时机,我想用 Murdock 自己的话...阅读全文

博文 2021-01-28 17:50:13 debian.cn